kio
kfiledetailview.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KFILEDETAILVIEW_H
00022 #define KFILEDETAILVIEW_H
00023
00024 class KFileItem;
00025 class QWidget;
00026 class QKeyEvent;
00027
00028 #include <klistview.h>
00029 #include <kmimetyperesolver.h>
00030
00031 #include "kfileview.h"
00032
00037 class KIO_EXPORT KFileListViewItem : public KListViewItem
00038 {
00039 public:
00040 KFileListViewItem( QListView *parent, const QString &text,
00041 const QPixmap &icon, KFileItem *fi )
00042 : KListViewItem( parent, text ), inf( fi ) {
00043 setPixmap( 0, icon );
00044 setText( 0, text );
00045 }
00046
00050 KFileListViewItem( QListView *parent, KFileItem *fi )
00051 : KListViewItem( parent ), inf( fi ) {
00052 init();
00053 }
00054
00055 KFileListViewItem( QListView *parent, const QString &text,
00056 const QPixmap &icon, KFileItem *fi,
00057 QListViewItem *after)
00058 : KListViewItem( parent, after ), inf( fi ) {
00059 setPixmap( 0, icon );
00060 setText( 0, text );
00061 }
00062 ~KFileListViewItem() {
00063 inf->removeExtraData( listView() );
00064 }
00065
00069 KFileItem *fileInfo() const {
00070 return inf;
00071 }
00072
00073 virtual QString key( int , bool ) const {
00074 return m_key;
00075 }
00076
00077 void setKey( const QString& key ) { m_key = key; }
00078
00079 QRect rect() const
00080 {
00081 QRect r = listView()->itemRect(this);
00082 return QRect( listView()->viewportToContents( r.topLeft() ),
00083 QSize( r.width(), r.height() ) );
00084 }
00085
00089 void init();
00090
00091 private:
00092 KFileItem *inf;
00093 QString m_key;
00094
00095 private:
00096 class KFileListViewItemPrivate;
00097 KFileListViewItemPrivate *d;
00098
00099 };
00100
00109 class KIO_EXPORT KFileDetailView : public KListView, public KFileView
00110 {
00111 Q_OBJECT
00112
00113 public:
00114 KFileDetailView(QWidget *parent, const char *name);
00115 virtual ~KFileDetailView();
00116
00117 virtual QWidget *widget() { return this; }
00118 virtual void clearView();
00119 virtual void setAutoUpdate( bool ) {}
00120
00121 virtual void setSelectionMode( KFile::SelectionMode sm );
00122
00123 virtual void updateView( bool );
00124 virtual void updateView(const KFileItem*);
00125 virtual void removeItem( const KFileItem *);
00126 virtual void listingCompleted();
00127
00128 virtual void setSelected(const KFileItem *, bool);
00129 virtual bool isSelected(const KFileItem *i) const;
00130 virtual void clearSelection();
00131 virtual void selectAll();
00132 virtual void invertSelection();
00133
00134 virtual void setCurrentItem( const KFileItem * );
00135 virtual KFileItem * currentFileItem() const;
00136 virtual KFileItem * firstFileItem() const;
00137 virtual KFileItem * nextItem( const KFileItem * ) const;
00138 virtual KFileItem * prevItem( const KFileItem * ) const;
00139
00140 virtual void insertItem( KFileItem *i );
00141
00142
00143 virtual void setSorting( QDir::SortSpec );
00144
00145 void ensureItemVisible( const KFileItem * );
00146
00147
00148 void mimeTypeDeterminationFinished();
00149 void determineIcon( KFileListViewItem *item );
00150 QScrollView *scrollWidget() const { return (QScrollView*) this; }
00151
00152 virtual void readConfig( KConfig *, const QString& group = QString::null );
00153 virtual void writeConfig( KConfig *, const QString& group = QString::null);
00154
00155 signals:
00162 void dropped(QDropEvent *event, KFileItem *fileItem);
00169 void dropped(QDropEvent *event, const KURL::List &urls, const KURL &url);
00170
00171 protected:
00172 virtual void keyPressEvent( QKeyEvent * );
00173
00174
00175 virtual QDragObject *dragObject();
00176 virtual void contentsDragEnterEvent( QDragEnterEvent *e );
00177 virtual void contentsDragMoveEvent( QDragMoveEvent *e );
00178 virtual void contentsDragLeaveEvent( QDragLeaveEvent *e );
00179 virtual void contentsDropEvent( QDropEvent *ev );
00180 virtual bool acceptDrag(QDropEvent* e ) const;
00181
00182 int m_sortingCol;
00183
00184 protected slots:
00185 void slotSelectionChanged();
00186
00187 private slots:
00188 void slotSortingChanged( int );
00189 void selected( QListViewItem *item );
00190 void slotActivate( QListViewItem *item );
00191 void highlighted( QListViewItem *item );
00192 void slotActivateMenu ( QListViewItem *item, const QPoint& pos );
00193 void slotAutoOpen();
00194
00195 private:
00196 virtual void insertItem(QListViewItem *i) { KListView::insertItem(i); }
00197 virtual void setSorting(int i, bool b) { KListView::setSorting(i, b); }
00198 virtual void setSelected(QListViewItem *i, bool b) { KListView::setSelected(i, b); }
00199
00200 inline KFileListViewItem * viewItem( const KFileItem *item ) const {
00201 if ( item )
00202 return (KFileListViewItem *) item->extraData( this );
00203 return 0L;
00204 }
00205
00206 void setSortingKey( KFileListViewItem *item, const KFileItem *i );
00207
00208
00209 bool m_blockSortingSignal;
00210 KMimeTypeResolver<KFileListViewItem,KFileDetailView> *m_resolver;
00211
00212 protected:
00213 virtual void virtual_hook( int id, void* data );
00214 private:
00215 class KFileDetailViewPrivate;
00216 KFileDetailViewPrivate *d;
00217 };
00218
00219 #endif // KFILEDETAILVIEW_H