konq_dirpart.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __konqdirpart_h
00021 #define __konqdirpart_h
00022
00023 #include <qstring.h>
00024 #include <kparts/part.h>
00025 #include <kparts/browserextension.h>
00026 #include <kfileitem.h>
00027 #include <kdatastream.h>
00028 #include <kio/global.h>
00029 #include <libkonq_export.h>
00030
00031 class KDirLister;
00032 namespace KParts { class BrowserExtension; }
00033 class KonqPropsView;
00034 class QScrollView;
00035 class KAction;
00036 class KToggleAction;
00037 class KonqDirPartBrowserExtension;
00038
00039 class LIBKONQ_EXPORT KonqDirPart: public KParts::ReadOnlyPart
00040 {
00041 Q_OBJECT
00042
00043 friend class KonqDirPartBrowserExtension;
00044
00045 public:
00046 KonqDirPart( QObject *parent, const char *name );
00047
00048 virtual ~KonqDirPart();
00049
00053 void setBrowserExtension( KonqDirPartBrowserExtension * extension )
00054 { m_extension = extension; }
00055
00056 KonqDirPartBrowserExtension * extension()
00057 { return m_extension; }
00058
00062 void setDirLister( KDirLister* lister );
00063
00064
00065 QScrollView * scrollWidget();
00066
00067 virtual void saveState( QDataStream &stream );
00068 virtual void restoreState( QDataStream &stream );
00069
00073 void lmbClicked( KFileItem * fileItem );
00074
00077 void mmbClicked( KFileItem * fileItem );
00078
00079 void setNameFilter( const QString & nameFilter ) { m_nameFilter = nameFilter; }
00080
00081 QString nameFilter() const { return m_nameFilter; }
00082
00083 void setFilesToSelect( const QStringList & filesToSelect ) { m_filesToSelect = filesToSelect; }
00084
00099 void setMimeFilter (const QStringList& filters);
00100
00105 QStringList mimeFilter() const;
00106
00107
00108 KonqPropsView * props() const { return m_pProps; }
00109
00113 virtual void disableIcons( const KURL::List & lst ) = 0;
00114
00119 void resetCount();
00120
00124 void newItems( const KFileItemList & entries );
00125
00129 void deleteItem( KFileItem * fileItem );
00130
00134 void emitTotalCount();
00135
00136
00145 void emitCounts( const KFileItemList & lst, bool selectionChanged );
00146
00154 void emitCounts( const KFileItemList & lst );
00155
00156 void emitMouseOver( const KFileItem * item );
00157
00163 void updatePasteAction();
00164
00170 virtual void newIconSize( int size );
00171
00176 void setIconSize( int size );
00177
00181 void setFindPart( KParts::ReadOnlyPart * part );
00182
00183 KParts::ReadOnlyPart * findPart() const { return m_findPart; }
00184
00185 virtual const KFileItem * currentItem() = 0;
00186
00187 virtual KFileItemList selectedFileItems() { return KFileItemList(); }
00188
00193 bool closeURL ();
00194
00195 signals:
00196
00200 void aboutToOpenURL();
00201
00206 void findOpen( KonqDirPart * );
00207
00212 void findOpened( KonqDirPart * );
00213
00217 void findClosed( KonqDirPart * );
00218
00223 void itemsAdded( const KFileItemList& );
00224
00229 void itemRemoved( const KFileItem* );
00230
00235 void itemsFilteredByMime( const KFileItemList& );
00236
00237 public slots:
00238
00243 bool openURL (const KURL&);
00244
00250 void slotFindClosed();
00251
00255 void slotStartAnimationSearching();
00256
00260 void slotStopAnimationSearching();
00261
00262 void slotBackgroundSettings();
00263
00268 void slotClipboardDataChanged();
00269
00270 void slotIncIconSize();
00271 void slotDecIconSize();
00272
00273 void slotIconSizeToggled( bool );
00274
00275
00276 virtual void slotStarted() = 0;
00277 virtual void slotCanceled() = 0;
00278 virtual void slotCompleted() = 0;
00279 virtual void slotNewItems( const KFileItemList& ) = 0;
00280 virtual void slotDeleteItem( KFileItem * ) = 0;
00281 virtual void slotRefreshItems( const KFileItemList& ) = 0;
00282 virtual void slotClear() = 0;
00283 virtual void slotRedirection( const KURL & ) = 0;
00284
00285 private slots:
00286 void slotIconChanged(int group);
00287 protected:
00292 virtual bool doOpenURL( const KURL& ) = 0;
00293 virtual bool doCloseURL () = 0;
00294
00295 protected:
00296
00297 QString m_nameFilter;
00298 QStringList m_filesToSelect;
00299
00300 KonqPropsView * m_pProps;
00301
00302 KAction *m_paIncIconSize;
00303 KAction *m_paDecIconSize;
00304 KToggleAction *m_paDefaultIcons;
00305 KToggleAction *m_paHugeIcons;
00306 KToggleAction *m_paLargeIcons;
00307 KToggleAction *m_paMediumIcons;
00308 KToggleAction *m_paSmallIcons;
00309
00310 KParts::ReadOnlyPart * m_findPart;
00311 KonqDirPartBrowserExtension * m_extension;
00312
00313
00314 int m_iIconSize[5];
00315 KIO::filesize_t m_lDirSize;
00316 uint m_lFileCount;
00317 uint m_lDirCount;
00318
00319 private:
00320 void saveFindState( QDataStream& );
00321 void restoreFindState( QDataStream& );
00322
00323 void adjustIconSizes();
00324
00325 class KonqDirPartPrivate;
00326 KonqDirPartPrivate* d;
00327 };
00328
00329 class LIBKONQ_EXPORT KonqDirPartBrowserExtension : public KParts::BrowserExtension
00330 {
00331 public:
00332 KonqDirPartBrowserExtension( KonqDirPart* dirPart )
00333 : KParts::BrowserExtension( dirPart )
00334 , m_dirPart( dirPart )
00335 {}
00336
00344 virtual void saveState( QDataStream &stream );
00345 virtual void restoreState( QDataStream &stream );
00346
00347 private:
00348 KonqDirPart* m_dirPart;
00349 };
00350
00351 #endif
|