kio
kfileiconview.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 KFILEICONVIEW_H
00022 #define KFILEICONVIEW_H
00023
00024 class KFileItem;
00025 class QWidget;
00026 class QLabel;
00027
00028 #include <kiconview.h>
00029 #include <kiconloader.h>
00030 #include <kfileview.h>
00031 #include <kmimetyperesolver.h>
00032 #include <kfile.h>
00033
00038 class KIO_EXPORT KFileIconViewItem : public KIconViewItem
00039 {
00040 public:
00041 KFileIconViewItem( QIconView *parent, const QString &text,
00042 const QPixmap &pixmap,
00043 KFileItem *fi )
00044 : KIconViewItem( parent, text, pixmap ), inf( fi ) {}
00048 KFileIconViewItem( QIconView *parent, KFileItem *fi )
00049 : KIconViewItem( parent ), inf( fi ) {}
00050
00051 virtual ~KFileIconViewItem();
00052
00056 KFileItem *fileInfo() const {
00057 return inf;
00058 }
00059
00060 private:
00061 KFileItem *inf;
00062
00063 private:
00064 class KFileIconViewItemPrivate;
00065 KFileIconViewItemPrivate *d;
00066
00067 };
00068
00069 namespace KIO {
00070 class Job;
00071 }
00072
00081 class KIO_EXPORT KFileIconView : public KIconView, public KFileView
00082 {
00083 Q_OBJECT
00084
00085 public:
00086 KFileIconView(QWidget *parent, const char *name);
00087 virtual ~KFileIconView();
00088
00089 virtual QWidget *widget() { return this; }
00090 virtual void clearView();
00091 virtual void setAutoUpdate( bool ) {}
00092
00093 virtual void updateView( bool );
00094 virtual void updateView(const KFileItem*);
00095 virtual void removeItem(const KFileItem*);
00096
00097 virtual void listingCompleted();
00098
00099 virtual void insertItem( KFileItem *i );
00100 virtual void setSelectionMode( KFile::SelectionMode sm );
00101
00102 virtual void setSelected(const KFileItem *, bool);
00103 virtual bool isSelected(const KFileItem *i) const;
00104 virtual void clearSelection();
00105 virtual void selectAll();
00106 virtual void invertSelection();
00107
00108 virtual void setCurrentItem( const KFileItem * );
00109 virtual KFileItem * currentFileItem() const;
00110 virtual KFileItem * firstFileItem() const;
00111 virtual KFileItem * nextItem( const KFileItem * ) const;
00112 virtual KFileItem * prevItem( const KFileItem * ) const;
00113
00117 void setIconSize( int size );
00118
00122 void setPreviewSize( int size );
00123
00131 void setIgnoreMaximumSize(bool ignoreSize=true);
00132
00136 int iconSize() const { return myIconSize; }
00137
00138 void ensureItemVisible( const KFileItem * );
00139
00140 virtual void setSorting(QDir::SortSpec sort);
00141
00142 virtual void readConfig( KConfig *, const QString& group = QString::null );
00143 virtual void writeConfig( KConfig *, const QString& group = QString::null);
00144
00145
00146 void mimeTypeDeterminationFinished();
00147 void determineIcon( KFileIconViewItem *item );
00148 QScrollView *scrollWidget() const { return (QScrollView*) this; }
00149 void setAcceptDrops(bool b)
00150 {
00151 KIconView::setAcceptDrops(b);
00152 viewport()->setAcceptDrops(b);
00153 }
00154
00155 public slots:
00162 void showPreviews();
00163
00164 void zoomIn();
00165
00166 void zoomOut();
00167
00172 virtual void arrangeItemsInGrid( bool updated = true );
00173
00174 protected:
00178 virtual void keyPressEvent( QKeyEvent * );
00179
00183 virtual void hideEvent( QHideEvent * );
00184
00185
00186 virtual void showEvent( QShowEvent * );
00187
00188 virtual bool eventFilter( QObject *o, QEvent *e );
00189
00190
00191 virtual QDragObject *dragObject();
00192 virtual void contentsDragEnterEvent( QDragEnterEvent *e );
00193 virtual void contentsDragMoveEvent( QDragMoveEvent *e );
00194 virtual void contentsDragLeaveEvent( QDragLeaveEvent *e );
00195 virtual void contentsDropEvent( QDropEvent *ev );
00196
00197
00198 bool acceptDrag(QDropEvent* e ) const;
00199
00200 private slots:
00201 void selected( QIconViewItem *item );
00202 void slotActivate( QIconViewItem * );
00203 void highlighted( QIconViewItem *item );
00204 void showToolTip( QIconViewItem *item );
00205 void removeToolTip();
00206 void slotActivateMenu( QIconViewItem *, const QPoint& );
00207 void slotSelectionChanged();
00208
00209 void slotSmallColumns();
00210 void slotLargeRows();
00211 void slotPreviewsToggled( bool );
00212
00213 void slotPreviewResult( KIO::Job * );
00214 void gotPreview( const KFileItem *item, const QPixmap& pix );
00215 void slotAutoOpen();
00216
00217 signals:
00224 void dropped(QDropEvent *event, KFileItem *fileItem);
00231 void dropped(QDropEvent *event, const KURL::List &urls, const KURL &url);
00232
00233 private:
00234 KMimeTypeResolver<KFileIconViewItem,KFileIconView> *m_resolver;
00235
00236 QLabel *toolTip;
00237 int th;
00238 int myIconSize;
00239
00240 virtual void insertItem(QIconViewItem *a, QIconViewItem *b) { KIconView::insertItem(a, b); }
00241 virtual void setSelectionMode(QIconView::SelectionMode m) { KIconView::setSelectionMode(m); }
00242 virtual void setSelected(QIconViewItem *i, bool a, bool b) { KIconView::setSelected(i, a, b); }
00243
00244 bool canPreview( const KFileItem * ) const;
00245 void stopPreview();
00246
00247 void updateIcons();
00248
00249 inline KFileIconViewItem * viewItem( const KFileItem *item ) const {
00250 if ( item )
00251 return (KFileIconViewItem *) item->extraData( this );
00252 return 0L;
00253 }
00254
00255 void initItem(KFileIconViewItem *item, const KFileItem *i,
00256 bool updateTextAndPixmap );
00257
00258 protected:
00259 virtual void virtual_hook( int id, void* data );
00260 private:
00261 class KFileIconViewPrivate;
00262 KFileIconViewPrivate *d;
00263 };
00264
00265 #endif // KFILESIMPLEVIEW_H