00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __KFILEDIALOG_H__
00026 #define __KFILEDIALOG_H__
00027
00028 #include <qstring.h>
00029
00030 #include <kdialogbase.h>
00031
00032 #include <kfile.h>
00033 #include <kurl.h>
00034 #include <kmimetype.h>
00035 #include <kio/jobclasses.h>
00036
00037 class QCheckBox;
00038 class QHBoxLayout;
00039 class QGridLayout;
00040 class QLabel;
00041 class QPopupMenu;
00042 class QVBoxLayout;
00043
00044 class KActionCollection;
00045 class KDirOperator;
00046 class KURLComboBox;
00047 class KFileFilterCombo;
00048 class KFileView;
00049 class KFileItem;
00050 class KPushButton;
00051 class KToolBar;
00052 class KPreviewWidgetBase;
00053
00054 struct KFileDialogPrivate;
00055
00077 class KFileDialog : public KDialogBase
00078 {
00079 Q_OBJECT
00080
00081 public:
00093 enum OperationMode { Other = 0, Opening, Saving };
00094
00117 KFileDialog(const QString& startDir, const QString& filter,
00118 QWidget *parent, const char *name,
00119 bool modal);
00120
00157 KFileDialog(const QString& startDir, const QString& filter,
00158 QWidget *parent, const char *name,
00159 bool modal, QWidget* widget);
00160
00164 ~KFileDialog();
00165
00169 KURL selectedURL() const;
00170
00174 KURL::List selectedURLs() const;
00175
00179 KURL baseURL() const;
00180
00185 QString selectedFile() const;
00186
00190 QStringList selectedFiles() const;
00191
00199 void setURL(const KURL &url, bool clearforward = true);
00200
00206 void setSelection(const QString& name);
00207
00225 void setOperationMode( KFileDialog::OperationMode );
00226
00234 OperationMode operationMode() const;
00235
00247 void setKeepLocation( bool keep );
00248
00253 bool keepsLocation() const;
00254
00288 void setFilter(const QString& filter);
00289
00300 QString currentFilter() const;
00301
00312 void setFilterMimeType(const QString &label, const KMimeType::List &types, const KMimeType::Ptr &defaultType);
00313
00322 KMimeType::Ptr currentFilterMimeType();
00323
00335 void setMimeFilter( const QStringList& types,
00336 const QString& defaultType = QString::null );
00337
00346 QString currentMimeFilter() const;
00347
00351 void clearFilter();
00352
00367 void setPreviewWidget(const QWidget *w);
00368
00380 void setPreviewWidget(const KPreviewWidgetBase *w);
00381
00407 static QString getOpenFileName(const QString& startDir= QString::null,
00408 const QString& filter= QString::null,
00409 QWidget *parent= 0,
00410 const QString& caption = QString::null);
00411
00412
00438 static QStringList getOpenFileNames(const QString& startDir= QString::null,
00439 const QString& filter= QString::null,
00440 QWidget *parent = 0,
00441 const QString& caption= QString::null);
00442
00468 static KURL getOpenURL(const QString& startDir = QString::null,
00469 const QString& filter= QString::null,
00470 QWidget *parent= 0,
00471 const QString& caption = QString::null);
00472
00473
00499 static KURL::List getOpenURLs(const QString& startDir= QString::null,
00500 const QString& filter= QString::null,
00501 QWidget *parent = 0,
00502 const QString& caption= QString::null);
00503
00531 static QString getSaveFileName(const QString& startDir= QString::null,
00532 const QString& filter= QString::null,
00533 QWidget *parent= 0,
00534 const QString& caption = QString::null);
00535
00563 static KURL getSaveURL(const QString& startDir= QString::null,
00564 const QString& filter= QString::null,
00565 QWidget *parent= 0,
00566 const QString& caption = QString::null);
00585 static QString getExistingDirectory(const QString & startDir = QString::null,
00586 QWidget * parent = 0,
00587 const QString& caption= QString::null);
00588
00611 static KURL getExistingURL(const QString & startDir = QString::null,
00612 QWidget * parent = 0,
00613 const QString& caption= QString::null);
00632 static KURL getImageOpenURL( const QString& startDir = QString::null,
00633 QWidget *parent = 0,
00634 const QString& caption = QString::null );
00638 virtual void show();
00639
00643 void setMode( KFile::Mode m );
00644
00666 void setMode( unsigned int m );
00667
00672 KFile::Mode mode() const;
00673
00681 void setLocationLabel(const QString& text);
00682
00695 KToolBar *toolBar() const { return toolbar; }
00696
00701 KPushButton *okButton() const;
00702
00707 KPushButton *cancelButton() const;
00708
00713 KActionCollection *actionCollection() const;
00714
00719 int pathComboIndex();
00720
00733 static KURL getStartURL( const QString& startDir, QString& recentDirClass );
00734
00735
00736 signals:
00744 void fileSelected(const QString&);
00745
00749 void fileHighlighted(const QString&);
00750
00759 void selectionChanged();
00760
00771 void filterChanged( const QString& filter );
00772
00773 protected:
00774 KToolBar *toolbar;
00775
00776 static KURL *lastDirectory;
00777
00778 KURLComboBox *locationEdit;
00779
00780 KFileFilterCombo *filterWidget;
00781
00786 void addDirEntry(KFileItem *entry, bool disableUpdating);
00787
00792 void init(const QString& startDir, const QString& filter, QWidget* widget);
00793
00798 virtual void initGUI();
00799
00804 void multiSelectionChanged();
00805
00809 virtual void readConfig( KConfig *, const QString& group = QString::null );
00810
00814 virtual void writeConfig( KConfig *, const QString& group = QString::null );
00815
00819 virtual void readRecentFiles( KConfig * );
00820
00824 virtual void saveRecentFiles( KConfig * );
00825
00832 KURL::List tokenize(const QString& line) const;
00833
00834 protected slots:
00835 void urlEntered( const KURL& );
00836 void enterURL( const KURL& url );
00837 void enterURL( const QString& url );
00838 void locationActivated( const QString& url );
00839
00843 void toolbarCallback(int);
00844
00845 void slotFilterChanged();
00846 void pathComboChanged( const QString& );
00847 void fileHighlighted(const KFileItem *i);
00848 void fileSelected(const KFileItem *i);
00849 void slotStatResult(KIO::Job* job);
00850 void slotLoadingFinished();
00851
00852 void dirCompletion( const QString& );
00853 void fileCompletion( const QString& );
00857 void toggleSpeedbar( bool );
00858
00862 virtual void updateStatusLine(int dirs, int files);
00863
00864 virtual void slotOk();
00865 virtual void accept();
00866 virtual void slotCancel();
00867
00868 void addToRecentDocuments();
00869 void initSpeedbar();
00870
00871 private:
00872 KFileDialog(const KFileDialog&);
00873 KFileDialog operator=(const KFileDialog&);
00874 static void initStatic();
00875
00876 protected:
00877 KDirOperator *ops;
00878 bool autoDirectoryFollowing;
00879
00880 KURL::List& parseSelectedURLs() const;
00881
00882 protected:
00883 virtual void virtual_hook( int id, void* data );
00884 private:
00885 KFileDialogPrivate *d;
00886 };
00887
00888 #endif