kfileiconview.h
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
00033 #include <kfile.h>
00034
00039 class KFileIconViewItem : public KIconViewItem
00040 {
00041 public:
00042 KFileIconViewItem( QIconView *parent, const QString &text,
00043 const QPixmap &pixmap,
00044 KFileItem *fi )
00045 : KIconViewItem( parent, text, pixmap ), inf( fi ) {}
00049 KFileIconViewItem( QIconView *parent, KFileItem *fi )
00050 : KIconViewItem( parent ), inf( fi ) {}
00051
00052 virtual ~KFileIconViewItem();
00053
00057 KFileItem *fileInfo() const {
00058 return inf;
00059 }
00060
00061 private:
00062 KFileItem *inf;
00063
00064 private:
00065 class KFileIconViewItemPrivate;
00066 KFileIconViewItemPrivate *d;
00067
00068 };
00069
00070 namespace KIO {
00071 class Job;
00072 }
00073
00082 class KFileIconView : public KIconView, public KFileView
00083 {
00084 Q_OBJECT
00085
00086 public:
00087 KFileIconView(QWidget *parent, const char *name);
00088 virtual ~KFileIconView();
00089
00090 virtual QWidget *widget() { return this; }
00091 virtual void clearView();
00092 virtual void setAutoUpdate( bool ) {}
00093
00094 virtual void updateView( bool );
00095 virtual void updateView(const KFileItem*);
00096 virtual void removeItem(const KFileItem*);
00097
00098 virtual void listingCompleted();
00099
00100 virtual void insertItem( KFileItem *i );
00101 virtual void setSelectionMode( KFile::SelectionMode sm );
00102
00103 virtual void setSelected(const KFileItem *, bool);
00104 virtual bool isSelected(const KFileItem *i) const;
00105 virtual void clearSelection();
00106 virtual void selectAll();
00107 virtual void invertSelection();
00108
00109 virtual void setCurrentItem( const KFileItem * );
00110 virtual KFileItem * currentFileItem() const;
00111 virtual KFileItem * firstFileItem() const;
00112 virtual KFileItem * nextItem( const KFileItem * ) const;
00113 virtual KFileItem * prevItem( const KFileItem * ) const;
00114
00118 void setIconSize( int size );
00119
00123 void setPreviewSize( int size );
00124
00128 int iconSize() const { return myIconSize; }
00129
00130 void ensureItemVisible( const KFileItem * );
00131
00132 virtual void setSorting(QDir::SortSpec sort);
00133
00134 virtual void readConfig( KConfig *, const QString& group = QString::null );
00135 virtual void writeConfig( KConfig *, const QString& group = QString::null);
00136
00137
00138 void mimeTypeDeterminationFinished();
00139 void determineIcon( KFileIconViewItem *item );
00140 QScrollView *scrollWidget() const { return (QScrollView*) this; }
00141 void setAcceptDrops(bool b)
00142 {
00143 KIconView::setAcceptDrops(b);
00144 viewport()->setAcceptDrops(b);
00145 }
00146
00147 public slots:
00152 void showPreviews();
00153
00154 void zoomIn();
00155
00156 void zoomOut();
00157
00162 virtual void arrangeItemsInGrid( bool updated = true );
00163
00164 protected:
00168 virtual void keyPressEvent( QKeyEvent * );
00169
00173 virtual void hideEvent( QHideEvent * );
00174
00175
00176 virtual void showEvent( QShowEvent * );
00177
00178 virtual bool eventFilter( QObject *o, QEvent *e );
00179
00180
00181 virtual QDragObject *dragObject();
00182 virtual void contentsDragEnterEvent( QDragEnterEvent *e );
00183 virtual void contentsDragMoveEvent( QDragMoveEvent *e );
00184 virtual void contentsDragLeaveEvent( QDragLeaveEvent *e );
00185 virtual void contentsDropEvent( QDropEvent *ev );
00186
00187
00188 bool acceptDrag(QDropEvent* e ) const;
00189
00190 private slots:
00191 void selected( QIconViewItem *item );
00192 void slotActivate( QIconViewItem * );
00193 void highlighted( QIconViewItem *item );
00194 void showToolTip( QIconViewItem *item );
00195 void removeToolTip();
00196 void slotActivateMenu( QIconViewItem *, const QPoint& );
00197 void slotSelectionChanged();
00198
00199 void slotSmallColumns();
00200 void slotLargeRows();
00201 void slotPreviewsToggled( bool );
00202
00203 void slotPreviewResult( KIO::Job * );
00204 void gotPreview( const KFileItem *item, const QPixmap& pix );
00205 void slotAutoOpen();
00206
00207 signals:
00214 void dropped(QDropEvent *event, KFileItem *fileItem);
00221 void dropped(QDropEvent *event, const KURL::List &urls, const KURL &url);
00222
00223 private:
00224 KMimeTypeResolver<KFileIconViewItem,KFileIconView> *m_resolver;
00225
00226 QLabel *toolTip;
00227 int th;
00228 int myIconSize;
00229
00230 virtual void insertItem(QIconViewItem *a, QIconViewItem *b) { KIconView::insertItem(a, b); }
00231 virtual void setSelectionMode(QIconView::SelectionMode m) { KIconView::setSelectionMode(m); }
00232 virtual void setSelected(QIconViewItem *i, bool a, bool b) { KIconView::setSelected(i, a, b); }
00233
00234 bool canPreview( const KFileItem * ) const;
00235 void stopPreview();
00236
00237 void updateIcons();
00238
00239 inline KFileIconViewItem * viewItem( const KFileItem *item ) const {
00240 if ( item )
00241 return (KFileIconViewItem *) item->extraData( this );
00242 return 0L;
00243 }
00244
00245 void initItem(KFileIconViewItem *item, const KFileItem *i,
00246 bool updateTextAndPixmap );
00247
00248 protected:
00249 virtual void virtual_hook( int id, void* data );
00250 private:
00251 class KFileIconViewPrivate;
00252 KFileIconViewPrivate *d;
00253 };
00254
00255 #endif // KFILESIMPLEVIEW_H
This file is part of the documentation for kio Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Sep 23 17:12:22 2004 by
doxygen 1.3.8-20040913 written by
Dimitri van Heesch, © 1997-2003