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 KURLBar;
00047 class KURLComboBox;
00048 class KFileFilterCombo;
00049 class KFileView;
00050 class KFileItem;
00051 class KPushButton;
00052 class KToolBar;
00053 class KPreviewWidgetBase;
00054
00055 struct KFileDialogPrivate;
00056
00078 class KFileDialog : public KDialogBase
00079 {
00080 Q_OBJECT
00081
00082 public:
00083
00095 enum OperationMode { Other = 0, Opening, Saving };
00096
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
00161
00165 ~KFileDialog();
00166
00170 KURL selectedURL() const;
00171
00175 KURL::List selectedURLs() const;
00176
00180 KURL baseURL() const;
00181
00186 QString selectedFile() const;
00187
00191 QStringList selectedFiles() const;
00192
00200 void setURL(const KURL &url, bool clearforward = true);
00201
00207 void setSelection(const QString& name);
00208
00226 void setOperationMode( KFileDialog::OperationMode );
00227
00235 OperationMode operationMode() const;
00236
00248 void setKeepLocation( bool keep );
00249
00254 bool keepsLocation() const;
00255
00290 void setFilter(const QString& filter);
00291
00299 QString currentFilter() const;
00300
00311 void setFilterMimeType(const QString &label, const KMimeType::List &types, const KMimeType::Ptr &defaultType) KDE_DEPRECATED;
00312
00321 KMimeType::Ptr currentFilterMimeType();
00322
00334 void setMimeFilter( const QStringList& types,
00335 const QString& defaultType = QString::null );
00336
00345 QString currentMimeFilter() const;
00346
00350 void clearFilter();
00351
00366 void setPreviewWidget(const QWidget *w) KDE_DEPRECATED;
00367
00379 void setPreviewWidget(const KPreviewWidgetBase *w);
00380
00406 static QString getOpenFileName(const QString& startDir= QString::null,
00407 const QString& filter= QString::null,
00408 QWidget *parent= 0,
00409 const QString& caption = QString::null);
00410
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
00443
00444
00470 static KURL getOpenURL(const QString& startDir = QString::null,
00471 const QString& filter= QString::null,
00472 QWidget *parent= 0,
00473 const QString& caption = QString::null);
00474
00475
00476
00502 static KURL::List getOpenURLs(const QString& startDir= QString::null,
00503 const QString& filter= QString::null,
00504 QWidget *parent = 0,
00505 const QString& caption= QString::null);
00506
00507
00508
00536 static QString getSaveFileName(const QString& startDir= QString::null,
00537 const QString& filter= QString::null,
00538 QWidget *parent= 0,
00539 const QString& caption = QString::null);
00540
00568 static KURL getSaveURL(const QString& startDir= QString::null,
00569 const QString& filter= QString::null,
00570 QWidget *parent= 0,
00571 const QString& caption = QString::null);
00572
00573
00592 static QString getExistingDirectory(const QString & startDir = QString::null,
00593 QWidget * parent = 0,
00594 const QString& caption= QString::null);
00595
00618 static KURL getExistingURL(const QString & startDir = QString::null,
00619 QWidget * parent = 0,
00620 const QString& caption= QString::null);
00639 static KURL getImageOpenURL( const QString& startDir = QString::null,
00640 QWidget *parent = 0,
00641 const QString& caption = QString::null );
00642 virtual void show();
00643
00647 void setMode( KFile::Mode m );
00648
00670 void setMode( unsigned int m );
00671
00676 KFile::Mode mode() const;
00677
00685 void setLocationLabel(const QString& text);
00686
00699 KToolBar *toolBar() const { return toolbar; }
00700
00705 KPushButton *okButton() const;
00706
00711 KPushButton *cancelButton() const;
00712
00728 KURLBar *speedBar();
00729
00734 KActionCollection *actionCollection() const;
00735
00740 int pathComboIndex();
00741
00754 static KURL getStartURL( const QString& startDir, QString& recentDirClass );
00755
00760 static void setStartDir( const KURL& directory );
00761
00762 signals:
00770 void fileSelected(const QString&);
00771
00775 void fileHighlighted(const QString&);
00776
00785 void selectionChanged();
00786
00797 void filterChanged( const QString& filter );
00798
00799 protected:
00800 KToolBar *toolbar;
00801
00802 static KURL *lastDirectory;
00803
00804 KURLComboBox *locationEdit;
00805
00806 KFileFilterCombo *filterWidget;
00807
00811 virtual void keyPressEvent( QKeyEvent *e );
00812
00817 void init(const QString& startDir, const QString& filter, QWidget* widget);
00818
00823 virtual void initGUI();
00824
00829 void multiSelectionChanged();
00830
00834 virtual void readConfig( KConfig *, const QString& group = QString::null );
00835
00839 virtual void writeConfig( KConfig *, const QString& group = QString::null );
00840
00844 virtual void readRecentFiles( KConfig * );
00845
00849 virtual void saveRecentFiles( KConfig * );
00850
00857 KURL::List tokenize(const QString& line) const;
00858
00863 KURL getCompleteURL(const QString&);
00864
00871 QString currentFilterExtension();
00872
00881 void updateAutoSelectExtension();
00882
00883
00884 protected slots:
00885 void urlEntered( const KURL& );
00886 void enterURL( const KURL& url );
00887 void enterURL( const QString& url );
00888 void locationActivated( const QString& url );
00889
00893
00894 void toolbarCallback(int);
00898
00899 void pathComboChanged( const QString& );
00903
00904 void dirCompletion( const QString& );
00905
00906 void slotFilterChanged();
00907 void fileHighlighted(const KFileItem *i);
00908 void fileSelected(const KFileItem *i);
00909 void slotStatResult(KIO::Job* job);
00910 void slotLoadingFinished();
00911
00912 void fileCompletion( const QString& );
00916 void toggleSpeedbar( bool );
00917
00921 virtual void updateStatusLine(int dirs, int files);
00922
00923 virtual void slotOk();
00924 virtual void accept();
00925 virtual void slotCancel();
00926
00927 void slotAutoSelectExtClicked();
00928 void addToRecentDocuments();
00929 void initSpeedbar();
00930
00931 private slots:
00932 void slotLocationChanged( const QString& text );
00933
00934 private:
00935 KFileDialog(const KFileDialog&);
00936 KFileDialog operator=(const KFileDialog&);
00937
00938 void setLocationText( const QString& text );
00939 void updateLocationWhatsThis();
00940
00941 void appendExtension(KURL &url);
00942 void updateLocationEditExtension(const QString &);
00943
00944 static void initStatic();
00945
00946 protected:
00947 KDirOperator *ops;
00948 bool autoDirectoryFollowing;
00949
00950 KURL::List& parseSelectedURLs() const;
00951
00952 protected:
00953 virtual void virtual_hook( int id, void* data );
00954 private:
00955 KFileDialogPrivate *d;
00956 };
00957
00958 #endif