KIO
kdirlister.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 kdirlister_h
00022 #define kdirlister_h
00023
00024 #include "kfileitem.h"
00025 #include "kdirnotify.h"
00026
00027 #include <QtCore/QString>
00028 #include <QtCore/QStringList>
00029
00030 #include <kurl.h>
00031
00032 class KJob;
00033 namespace KIO { class Job; class ListJob; }
00034
00057 class KIO_EXPORT KDirLister : public QObject
00058 {
00059 friend class KDirListerCache;
00060
00061 Q_OBJECT
00062 Q_PROPERTY( bool autoUpdate READ autoUpdate WRITE setAutoUpdate )
00063 Q_PROPERTY( bool showingDotFiles READ showingDotFiles WRITE setShowingDotFiles )
00064 Q_PROPERTY( bool dirOnlyMode READ dirOnlyMode WRITE setDirOnlyMode )
00065 Q_PROPERTY( bool autoErrorHandlingEnabled READ autoErrorHandlingEnabled )
00066 Q_PROPERTY( bool delayedMimeTypes READ delayedMimeTypes WRITE setDelayedMimeTypes )
00067 Q_PROPERTY( QString nameFilter READ nameFilter WRITE setNameFilter )
00068 Q_PROPERTY( QStringList mimeFilter READ mimeFilters WRITE setMimeFilter RESET clearMimeFilter )
00069
00070 public:
00071 enum OpenUrlFlag
00072 {
00073 NoFlags = 0x0,
00074
00075 Keep = 0x1,
00076
00077
00078
00079
00080 Reload = 0x2
00081
00082
00083
00084 };
00085
00086 Q_DECLARE_FLAGS(OpenUrlFlags, OpenUrlFlag)
00087
00088
00091 KDirLister( QObject* parent = 0 );
00092
00096 virtual ~KDirLister();
00097
00114 virtual bool openUrl( const KUrl& _url, OpenUrlFlags _flags = NoFlags );
00115
00123 virtual void stop();
00124
00134 virtual void stop( const KUrl& _url );
00135
00140 bool delayedMimeTypes() const;
00141
00150 void setDelayedMimeTypes( bool delayedMimeTypes );
00151
00152
00158 bool autoUpdate() const;
00159
00165 virtual void setAutoUpdate( bool enable );
00166
00174 bool autoErrorHandlingEnabled() const;
00175
00185 void setAutoErrorHandlingEnabled( bool enable, QWidget *parent );
00186
00194 bool showingDotFiles() const;
00195
00204 virtual void setShowingDotFiles( bool _showDotFiles );
00205
00212 bool dirOnlyMode() const;
00213
00219 virtual void setDirOnlyMode( bool dirsOnly );
00220
00229 KUrl url() const;
00230
00239 KUrl::List directories() const;
00240
00245 virtual void emitChanges();
00246
00258 virtual void updateDirectory( const KUrl& _dir );
00259
00264 bool isFinished() const;
00265
00272 KFileItem rootItem() const;
00273
00279 virtual KFileItem findByUrl( const KUrl& _url ) const;
00280
00286 virtual KFileItem findByName( const QString& name ) const;
00287
00298 virtual void setNameFilter( const QString &filter );
00299
00305 QString nameFilter() const;
00306
00318 virtual void setMimeFilter( const QStringList &mimeList );
00319
00334 void setMimeExcludeFilter(const QStringList &mimeList );
00335
00336
00342 virtual void clearMimeFilter();
00343
00348 QStringList mimeFilters() const;
00349
00356 bool matchesFilter( const QString& name ) const;
00357
00365 bool matchesMimeFilter( const QString& mime ) const;
00366
00372 void setMainWindow( QWidget *window );
00373
00378 QWidget *mainWindow();
00379
00384 enum WhichItems
00385 {
00386 AllItems = 0,
00387 FilteredItems = 1
00388 };
00389
00406 KFileItemList items( WhichItems which = FilteredItems ) const;
00407
00427 KFileItemList itemsForDir( const KUrl& dir,
00428 WhichItems which = FilteredItems ) const;
00429
00440 static KFileItem cachedItemForUrl(const KUrl& url);
00441
00442 Q_SIGNALS:
00443
00453 void started( const KUrl& _url );
00454
00458 void completed();
00459
00465 void completed( const KUrl& _url );
00466
00470 void canceled();
00471
00477 void canceled( const KUrl& _url );
00478
00485 void redirection( const KUrl& _url );
00486
00492 void redirection( const KUrl& oldUrl, const KUrl& newUrl );
00493
00498 void clear();
00499
00505 void clear( const KUrl& _url );
00506
00513 void newItems( const KFileItemList& items );
00514
00519 void itemsFilteredByMime( const KFileItemList& items );
00520
00526 void deleteItem( const KFileItem &_fileItem );
00527
00536 void itemsDeleted( const KFileItemList& items );
00537
00546 void refreshItems( const QList<QPair<KFileItem, KFileItem> >& items );
00547
00553 void infoMessage( const QString& msg );
00554
00560 void percent( int percent );
00561
00566 void totalSize( KIO::filesize_t size );
00567
00572 void processedSize( KIO::filesize_t size );
00573
00578 void speed( int bytes_per_second );
00579
00580 protected:
00581 enum Changes {
00582 NONE=0, NAME_FILTER=1, MIME_FILTER=2, DOT_FILES=4, DIR_ONLY_MODE=8
00583 };
00584
00597 virtual bool matchesFilter( const KFileItem& ) const;
00598
00611 virtual bool matchesMimeFilter( const KFileItem& ) const;
00612
00620 virtual bool doNameFilter( const QString& name, const QList<QRegExp>& filters ) const;
00621
00629 virtual bool doMimeFilter( const QString& mime, const QStringList& filters ) const;
00630
00632 virtual void handleError( KIO::Job * );
00633
00634 private:
00635 class Private;
00636 Private* const d;
00637 friend class Private;
00638
00639 Q_PRIVATE_SLOT( d, void _k_slotInfoMessage( KJob*, const QString& ) )
00640 Q_PRIVATE_SLOT( d, void _k_slotPercent( KJob*, unsigned long ) )
00641 Q_PRIVATE_SLOT( d, void _k_slotTotalSize( KJob*, qulonglong ) )
00642 Q_PRIVATE_SLOT( d, void _k_slotProcessedSize( KJob*, qulonglong ) )
00643 Q_PRIVATE_SLOT( d, void _k_slotSpeed( KJob*, unsigned long ) )
00644 };
00645
00646 Q_DECLARE_OPERATORS_FOR_FLAGS(KDirLister::OpenUrlFlags)
00647
00648 #endif
00649