kdiroperator.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KDIROPERATOR_H_
00022 #define KDIROPERATOR_H_
00023
00024 #include <qwidget.h>
00025 #include <qptrstack.h>
00026
00027 #include <kaction.h>
00028 #include <kcompletion.h>
00029
00030 #include <kdirlister.h>
00031
00032 #include <kfileview.h>
00033 #include <kfileitem.h>
00034 #include <kfile.h>
00035
00036 class QPopupMenu;
00037 class QTimer;
00038
00039 class KAction;
00040 class KDirLister;
00041 class KToggleAction;
00042 class KActionSeparator;
00043 class KActionMenu;
00044 class QWidgetStack;
00045 class KProgress;
00046 namespace KIO {
00047 class DeleteJob;
00048 }
00049
00098 class KDirOperator : public QWidget
00099 {
00100 Q_OBJECT
00101
00102 public:
00107 enum ActionTypes { SortActions = 1,
00108 ViewActions = 2,
00109 NavActions = 4,
00110 FileActions = 8,
00111 AllActions = 15 };
00119 KDirOperator(const KURL& urlName = KURL(),
00120 QWidget *parent = 0, const char* name = 0);
00124 virtual ~KDirOperator();
00125
00129
00130 void setShowHiddenFiles ( bool s ) { showHiddenAction->setChecked( s ); }
00131
00135 bool showHiddenFiles () const { return showHiddenAction->isChecked(); }
00136
00140 void close();
00141
00149 void setNameFilter(const QString& filter);
00150
00155 const QString& nameFilter() const { return dir->nameFilter(); }
00156
00174 void setMimeFilter( const QStringList& mimetypes );
00175
00179 QStringList mimeFilter() const { return dir->mimeFilters(); }
00180
00188 void clearFilter();
00189
00193 KURL url() const;
00194
00200
00201 void setURL(const KURL& url, bool clearforward);
00202
00207 void setCurrentItem( const QString& filename );
00208
00219
00220 void setView(KFileView *view);
00221
00226 KFileView * view() const { return m_fileView; }
00227
00232 QWidget * viewWidget() const { return m_fileView ? m_fileView->widget() : 0L; }
00233
00238
00239 void setView(KFile::FileView view);
00240
00244 void setSorting( QDir::SortSpec );
00245
00249 QDir::SortSpec sorting() const { return mySorting; }
00250
00254 bool isRoot() const { return url().path() == QChar('/'); }
00255
00259 KDirLister *dirLister() const { return dir; }
00260
00265 KProgress * progressBar() const;
00266
00278
00279 void setMode( KFile::Mode m );
00283 KFile::Mode mode() const;
00284
00290
00291 void setPreviewWidget(const QWidget *w);
00292
00297 const KFileItemList * selectedItems() const {
00298 return ( m_fileView ? m_fileView->selectedItems() : 0L );
00299 }
00300
00304 inline bool isSelected( const KFileItem *item ) const {
00305 return ( m_fileView ? m_fileView->isSelected( item ) : false );
00306 }
00307
00312 int numDirs() const;
00313
00318 int numFiles() const;
00319
00328 KCompletion * completionObject() const {
00329 return const_cast<KCompletion *>( &myCompletion );
00330 }
00331
00340 KCompletion *dirCompletionObject() const {
00341 return const_cast<KCompletion *>( &myDirCompletion );
00342 }
00343
00389 KActionCollection * actionCollection() const { return myActionCollection; }
00390
00408
00409 void setViewConfig( KConfig *config, const QString& group );
00410
00418 KConfig *viewConfig();
00419
00427 QString viewConfigGroup() const;
00428
00442 virtual void readConfig( KConfig *, const QString& group = QString::null );
00443
00450 virtual void writeConfig( KConfig *, const QString& group = QString::null );
00451
00452
00463 void setOnlyDoubleClickSelectsFiles( bool enable );
00464
00470 bool onlyDoubleClickSelectsFiles() const;
00471
00480
00481 bool mkdir( const QString& directory, bool enterDirectory = true );
00482
00490
00491 KIO::DeleteJob * del( const KFileItemList& items,
00492 bool ask = true, bool showProgress = true );
00493
00502
00503 KIO::DeleteJob * del( const KFileItemList& items, QWidget *parent,
00504 bool ask = true, bool showProgress = true );
00505
00509 void clearHistory();
00510
00520
00521 void setEnableDirHighlighting( bool enable );
00522
00529 bool dirHighlighting() const;
00530
00535 bool dirOnlyMode() const { return dirOnlyMode( myMode ); }
00536
00537 static bool dirOnlyMode( uint mode ) {
00538 return ( (mode & KFile::Directory) &&
00539 (mode & (KFile::File | KFile::Files)) == 0 );
00540 }
00541
00546 void setupMenu(int whichActions);
00547
00552 virtual void setAcceptDrops(bool b);
00553
00559
00560 void setDropOptions(int options);
00561
00562 protected:
00577 virtual KFileView* createView( QWidget* parent, KFile::FileView view );
00581
00582 void setDirLister( KDirLister *lister );
00583
00584 virtual void resizeEvent( QResizeEvent * );
00585
00590 void setupActions();
00591
00596 void updateSortActions();
00597
00602 void updateViewActions();
00603
00609 void setupMenu();
00610
00618 void prepareCompletionObjects();
00619
00625 bool checkPreviewSupport();
00626
00627 public slots:
00631
00632 void back();
00633
00637
00638 void forward();
00639
00643
00644 void home();
00645
00649
00650 void cdUp();
00651
00655 void updateDir();
00656
00660
00661 void rereadDir();
00662
00666
00667 void mkdir();
00668
00672
00673 void deleteSelected();
00674
00680 void updateSelectionDependentActions();
00681
00685 QString makeCompletion(const QString&);
00686
00690 QString makeDirCompletion(const QString&);
00691
00692 protected slots:
00697 void resetCursor();
00698
00703 void pathChanged();
00704
00709 void insertNewFiles(const KFileItemList &newone);
00710
00715 void itemDeleted(KFileItem *);
00716
00720
00721 void selectDir(const KFileItem *item );
00722
00726 void selectFile(const KFileItem *item);
00727
00731 void highlightFile(const KFileItem* i) { emit fileHighlighted( i ); }
00732
00736 virtual void activatedMenu( const KFileItem *, const QPoint& pos );
00737
00741 void sortByName() { byNameAction->setChecked( true ); }
00742
00746 void sortBySize() { bySizeAction->setChecked( true ); }
00747
00751 void sortByDate() { byDateAction->setChecked( true ); }
00752
00756 void sortReversed() { reverseAction->setChecked( !reverseAction->isChecked() ); }
00757
00761 void toggleDirsFirst() { dirsFirstAction->setChecked( !dirsFirstAction->isChecked() ); }
00762
00766 void toggleIgnoreCase() { caseInsensitiveAction->setChecked( !caseInsensitiveAction->isChecked() ); }
00767
00772 void slotCompletionMatch(const QString& match);
00773
00774 signals:
00775 void urlEntered(const KURL& );
00776 void updateInformation(int files, int dirs);
00777 void completion(const QString&);
00778 void finishedLoading();
00779
00785 void viewChanged( KFileView * newView );
00786
00792 void fileHighlighted( const KFileItem *item );
00793 void dirActivated( const KFileItem *item );
00794 void fileSelected( const KFileItem *item );
00803 void dropped(const KFileItem *item, QDropEvent*event, const KURL::List&urls);
00804 private:
00808 QPtrStack<KURL> backStack;
00809
00813 QPtrStack<KURL> forwardStack;
00814
00815 KDirLister *dir;
00816 KURL currUrl;
00817
00818 KCompletion myCompletion;
00819 KCompletion myDirCompletion;
00820 bool myCompleteListDirty;
00821 QDir::SortSpec mySorting;
00822
00827 bool checkPreviewInternal() const;
00828
00833 void checkPath(const QString& txt, bool takeFiles = false);
00834
00835 void connectView(KFileView *);
00836
00837 KFileView *m_fileView;
00838 KFileItemList pendingMimeTypes;
00839
00840
00841 int m_viewKind;
00842 int defaultView;
00843
00844 KFile::Mode myMode;
00845 KProgress *progress;
00846
00847 const QWidget *myPreview;
00848
00849
00850
00851 KActionMenu *actionMenu;
00852
00853 KAction *backAction;
00854 KAction *forwardAction;
00855 KAction *homeAction;
00856 KAction *upAction;
00857 KAction *reloadAction;
00858 KActionSeparator *actionSeparator;
00859 KAction *mkdirAction;
00860
00861 KActionMenu *sortActionMenu;
00862 KRadioAction *byNameAction;
00863 KRadioAction *byDateAction;
00864 KRadioAction *bySizeAction;
00865 KToggleAction *reverseAction;
00866 KToggleAction *dirsFirstAction;
00867 KToggleAction *caseInsensitiveAction;
00868
00869 KActionMenu *viewActionMenu;
00870 KRadioAction *shortAction;
00871 KRadioAction *detailedAction;
00872 KToggleAction *showHiddenAction;
00873 KToggleAction *separateDirsAction;
00874
00875 KActionCollection *myActionCollection;
00876 KActionCollection *viewActionCollection;
00877
00878 private slots:
00882 void slotDetailedView();
00883 void slotSimpleView();
00884 void slotToggleHidden( bool );
00885
00886 void slotSeparateDirs();
00887 void slotDefaultPreview();
00888 void togglePreview( bool );
00889
00890 void slotSortByName();
00891 void slotSortBySize();
00892 void slotSortByDate();
00893 void slotSortReversed();
00894 void slotToggleDirsFirst();
00895 void slotToggleIgnoreCase();
00896
00897 void slotStarted();
00898 void slotProgress( int );
00899 void slotShowProgress();
00900 void slotIOFinished();
00901 void slotCanceled();
00902 void slotRedirected( const KURL& );
00903
00904 void slotViewActionAdded( KAction * );
00905 void slotViewActionRemoved( KAction * );
00906 void slotViewSortingChanged( QDir::SortSpec );
00907
00908 void slotClearView();
00909 void slotRefreshItems( const KFileItemList& items );
00910
00911 void slotProperties();
00912
00913 void insertViewDependentActions();
00914
00915 private:
00916 static bool isReadable( const KURL& url );
00917
00918 protected:
00919 virtual void virtual_hook( int id, void* data );
00920 private:
00921 class KDirOperatorPrivate;
00922 KDirOperatorPrivate *d;
00923 };
00924
00925 #endif
This file is part of the documentation for kio Library Version 3.2.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Mar 4 22:44:22 2004 by
doxygen 1.3.6-20040222 written by
Dimitri van Heesch, © 1997-2003