kio
kfileview.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
00022 #ifndef KFILEVIEW_H
00023 #define KFILEVIEW_H
00024
00025 class QPoint;
00026 class KActionCollection;
00027
00028 #include <qwidget.h>
00029
00030 #include "kfileitem.h"
00031 #include "kfile.h"
00032
00037 class KIO_EXPORT KFileViewSignaler : public QObject
00038 {
00039 Q_OBJECT
00040
00041 public:
00046 void activate( const KFileItem *item ) {
00047 if ( item->isDir() )
00048 emit dirActivated( item );
00049 else
00050 emit fileSelected( item );
00051 }
00056 void highlightFile(const KFileItem *i) { emit fileHighlighted(i); }
00057
00058 void activateMenu( const KFileItem *i, const QPoint& pos ) {
00059 emit activatedMenu( i, pos );
00060 }
00061
00062 void changeSorting( QDir::SortSpec sorting ) {
00063 emit sortingChanged( sorting );
00064 }
00065
00066 void dropURLs(const KFileItem *i, QDropEvent*e, const KURL::List&urls) {
00067 emit dropped(i, e, urls);
00068 }
00069
00070 signals:
00071 void dirActivated(const KFileItem*);
00072
00073 void sortingChanged( QDir::SortSpec );
00074
00079 void fileHighlighted(const KFileItem*);
00080 void fileSelected(const KFileItem*);
00081 void activatedMenu( const KFileItem *i, const QPoint& );
00082 void dropped(const KFileItem *, QDropEvent*, const KURL::List&);
00083 };
00084
00098 class KIO_EXPORT KFileView {
00099
00100 public:
00101 KFileView();
00102
00106 virtual ~KFileView();
00107
00111 void addItemList(const KFileItemList &list);
00112
00118 virtual QWidget *widget() = 0;
00119
00123 QWidget *widget() const { return const_cast<KFileView*>(this)->widget(); }
00124
00128 void setCurrentItem( const QString &filename );
00129
00134 virtual void setCurrentItem( const KFileItem *item ) = 0;
00135
00141 virtual KFileItem *currentFileItem() const = 0;
00142
00146 virtual void clear();
00147
00156 virtual void updateView(bool f = true);
00157
00158 virtual void updateView(const KFileItem*);
00159
00164 virtual void removeItem(const KFileItem *item);
00165
00171 virtual void listingCompleted();
00172
00177 QDir::SortSpec sorting() const { return m_sorting; }
00178
00193 virtual void setSorting(QDir::SortSpec sort);
00194
00199 bool isReversed() const { return (m_sorting & QDir::Reversed); }
00200
00201 void sortReversed();
00202
00206 uint count() const { return filesNumber + dirsNumber; }
00207
00211 uint numFiles() const { return filesNumber; }
00212
00216 uint numDirs() const { return dirsNumber; }
00217
00218 virtual void setSelectionMode( KFile::SelectionMode sm );
00219 virtual KFile::SelectionMode selectionMode() const;
00220
00221 enum ViewMode {
00222 Files = 1,
00223 Directories = 2,
00224 All = Files | Directories
00225 };
00226 virtual void setViewMode( ViewMode vm );
00227 virtual ViewMode viewMode() const { return view_mode; }
00228
00234 QString viewName() const { return m_viewName; }
00235
00240 void setViewName( const QString& name ) { m_viewName = name; }
00241
00242 virtual void setParentView(KFileView *parent);
00243
00252 virtual void insertItem( KFileItem *i);
00253
00258 virtual void clearView() = 0;
00259
00264 virtual void ensureItemVisible( const KFileItem *i ) = 0;
00265
00270 virtual void clearSelection() = 0;
00271
00277 virtual void selectAll();
00278
00283 virtual void invertSelection();
00284
00289 virtual void setSelected(const KFileItem *, bool enable) = 0;
00290
00295 virtual bool isSelected( const KFileItem * ) const = 0;
00296
00300 const KFileItemList * selectedItems() const;
00301
00305 const KFileItemList * items() const;
00306
00307 virtual KFileItem * firstFileItem() const = 0;
00308 virtual KFileItem * nextItem( const KFileItem * ) const = 0;
00309 virtual KFileItem * prevItem( const KFileItem * ) const = 0;
00310
00321 void setOnlyDoubleClickSelectsFiles( bool enable ) {
00322 myOnlyDoubleClickSelectsFiles = enable;
00323 }
00324
00330 bool onlyDoubleClickSelectsFiles() const {
00331 return myOnlyDoubleClickSelectsFiles;
00332 }
00333
00338 bool updateNumbers(const KFileItem *i);
00339
00345 virtual KActionCollection * actionCollection() const;
00346
00347 KFileViewSignaler * signaler() const { return sig; }
00348
00349 virtual void readConfig( KConfig *, const QString& group = QString::null );
00350 virtual void writeConfig( KConfig *, const QString& group = QString::null);
00351
00359 enum DropOptions {
00360 AutoOpenDirs = 1
00361 };
00367
00368 void setDropOptions(int options);
00369
00375 int dropOptions();
00376
00390 static QString sortingKey( const QString& value, bool isDir, int sortSpec);
00391
00398 static QString sortingKey( KIO::filesize_t value, bool isDir,int sortSpec);
00399
00404 static int autoOpenDelay();
00405
00406 protected:
00411 KFileViewSignaler *sig;
00412
00413 private:
00414 static QDir::SortSpec defaultSortSpec;
00415 QDir::SortSpec m_sorting;
00416 QString m_viewName;
00417
00421 uint filesNumber;
00422 uint dirsNumber;
00423
00424 ViewMode view_mode;
00425 KFile::SelectionMode selection_mode;
00426
00427
00428
00429 mutable KFileItemList m_itemList;
00430
00431 mutable KFileItemList *m_selectedList;
00432 bool myOnlyDoubleClickSelectsFiles;
00433
00434 protected:
00435 virtual void virtual_hook( int id, void* data );
00436
00437 enum { VIRTUAL_SET_DROP_OPTIONS = 1 };
00438 void setDropOptions_impl(int options);
00439 private:
00440 class KFileViewPrivate;
00441 KFileViewPrivate *d;
00442 };
00443
00444 #endif // KFILEINFOLISTWIDGET_H