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
#include <kfile.h>
00032
#include <kurl.h>
00033
#include <kmimetype.h>
00034
#include <kio/jobclasses.h>
00035
00036
class QCheckBox;
00037
class QHBoxLayout;
00038
class QGridLayout;
00039
class QLabel;
00040
class QPopupMenu;
00041
class QVBoxLayout;
00042
00043
class KActionCollection;
00044
class KDirOperator;
00045
class KURLBar;
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 KIO_EXPORT KFileDialog :
public KDialogBase
00078 {
00079 Q_OBJECT
00080
00081
public:
00082
00094 enum OperationMode { Other = 0, Opening, Saving };
00095
00119 KFileDialog(
const QString& startDir,
const QString& filter,
00120
QWidget *parent,
const char *name,
00121
bool modal);
00122
00159 KFileDialog(
const QString& startDir,
const QString& filter,
00160
QWidget *parent,
const char *name,
00161
bool modal,
QWidget* widget);
00162
00163
00167 ~KFileDialog();
00168
00172
KURL selectedURL() const;
00173
00177
KURL::List selectedURLs() const;
00178
00182
KURL baseURL() const;
00183
00188
QString selectedFile() const;
00189
00193
QStringList selectedFiles() const;
00194
00202
void setURL(const
KURL &url,
bool clearforward = true);
00203
00209
void setSelection(const
QString& name);
00210
00228
void setOperationMode( KFileDialog::OperationMode );
00229
00237 OperationMode operationMode() const;
00238
00250
void setKeepLocation(
bool keep );
00251
00256
bool keepsLocation() const;
00257
00292
void setFilter(const
QString& filter);
00293
00301
QString currentFilter() const;
00302
00313
void setFilterMimeType(const
QString &label, const
KMimeType::List &types, const
KMimeType::Ptr &defaultType) KDE_DEPRECATED;
00314
00323
KMimeType::Ptr currentFilterMimeType();
00324
00336
void setMimeFilter( const
QStringList& types,
00337 const
QString& defaultType =
QString::null );
00338
00347
QString currentMimeFilter() const;
00348
00352
void clearFilter();
00353
00368
void setPreviewWidget(const
QWidget *w) KDE_DEPRECATED;
00369
00381
void setPreviewWidget(const
KPreviewWidgetBase *w);
00382
00408 static
QString getOpenFileName(const
QString& startDir=
QString::null,
00409 const
QString& filter=
QString::null,
00410
QWidget *parent= 0,
00411 const
QString& caption =
QString::null);
00412
00413
00422 static
QString getOpenFileNameWId(const
QString& startDir,
00423 const
QString& filter,
00424 WId parent_id, const
QString& caption);
00425
00451 static
QStringList getOpenFileNames(const
QString& startDir=
QString::null,
00452 const
QString& filter=
QString::null,
00453
QWidget *parent = 0,
00454 const
QString& caption=
QString::null);
00455
00456
00457
00483 static
KURL getOpenURL(const
QString& startDir =
QString::null,
00484 const
QString& filter=
QString::null,
00485
QWidget *parent= 0,
00486 const
QString& caption =
QString::null);
00487
00488
00489
00515 static
KURL::List getOpenURLs(const
QString& startDir=
QString::null,
00516 const
QString& filter=
QString::null,
00517
QWidget *parent = 0,
00518 const
QString& caption=
QString::null);
00519
00520
00521
00549 static
QString getSaveFileName(const
QString& startDir=
QString::null,
00550 const
QString& filter=
QString::null,
00551
QWidget *parent= 0,
00552 const
QString& caption =
QString::null);
00553
00554
00560 static
QString getSaveFileNameWId(const
QString& dir, const
QString& filter,
00561 WId parent_id,
00562 const
QString& caption);
00563
00591 static
KURL getSaveURL(const
QString& startDir=
QString::null,
00592 const
QString& filter=
QString::null,
00593
QWidget *parent= 0,
00594 const
QString& caption =
QString::null);
00595
00596
00615 static
QString getExistingDirectory(const
QString & startDir =
QString::null,
00616
QWidget * parent = 0,
00617 const
QString& caption=
QString::null);
00618
00641 static
KURL getExistingURL(const
QString & startDir =
QString::null,
00642
QWidget * parent = 0,
00643 const
QString& caption=
QString::null);
00662 static
KURL getImageOpenURL( const
QString& startDir =
QString::null,
00663
QWidget *parent = 0,
00664 const
QString& caption =
QString::null );
00665 virtual
void show();
00666
00670
void setMode(
KFile::Mode m );
00671
00693
void setMode(
unsigned int m );
00694
00699
KFile::Mode mode() const;
00700
00708
void setLocationLabel(const
QString& text);
00709
00722 KToolBar *toolBar()
const {
return toolbar; }
00723
00728
KPushButton *okButton() const;
00729
00734
KPushButton *cancelButton() const;
00735
00751
KURLBar *speedBar();
00752
00757
KActionCollection *actionCollection() const;
00758
00763
int pathComboIndex();
00764
00777 static
KURL getStartURL( const
QString& startDir,
QString& recentDirClass );
00778
00783 static
void setStartDir( const
KURL& directory );
00784
00785 signals:
00793
void fileSelected(const
QString&);
00794
00798
void fileHighlighted(const QString&);
00799
00808
void selectionChanged();
00809
00820
void filterChanged( const QString& filter );
00821
00822 protected:
00823
KToolBar *toolbar;
00824
00825 static
KURL *lastDirectory;
00826
00827
KURLComboBox *locationEdit;
00828
00829 KFileFilterCombo *filterWidget;
00830
00834 virtual
void keyPressEvent(
QKeyEvent *e );
00835
00840
void init(const QString& startDir, const QString& filter,
QWidget* widget);
00841
00846 virtual
void initGUI();
00847
00852
void multiSelectionChanged();
00853
00857 virtual
void readConfig(
KConfig *, const QString& group = QString::null );
00858
00862 virtual
void writeConfig( KConfig *, const QString& group = QString::null );
00863
00867 virtual
void readRecentFiles( KConfig * );
00868
00872 virtual
void saveRecentFiles( KConfig * );
00873
00880
KURL::List tokenize(const QString& line) const;
00881
00886
KURL getCompleteURL(const QString&);
00887
00894 QString currentFilterExtension();
00895
00904
void updateAutoSelectExtension();
00905
00906
00907 protected slots:
00908
void urlEntered( const
KURL& );
00909
void enterURL( const KURL& url );
00910
void enterURL( const QString& url );
00911
void locationActivated( const QString& url );
00912
00916
00917
void toolbarCallback(
int);
00921
00922
void pathComboChanged( const QString& );
00926
00927
void dirCompletion( const QString& );
00928
00929
void slotFilterChanged();
00930
void fileHighlighted(const
KFileItem *i);
00931
void fileSelected(const
KFileItem *i);
00932
void slotStatResult(KIO::Job* job);
00933
void slotLoadingFinished();
00934
00935
void fileCompletion( const QString& );
00939
void toggleSpeedbar(
bool );
00940
00944
void toggleBookmarks(
bool show);
00945
00949 virtual
void updateStatusLine(
int dirs,
int files);
00950
00951 virtual
void slotOk();
00952 virtual
void accept();
00953 virtual
void slotCancel();
00954
00955
void slotAutoSelectExtClicked();
00956
void addToRecentDocuments();
00957
void initSpeedbar();
00958
00959 private slots:
00960
void slotLocationChanged( const QString& text );
00961
00962 private:
00963 KFileDialog(const KFileDialog&);
00964 KFileDialog operator=(const KFileDialog&);
00965
00966
void setLocationText( const QString& text );
00967
void updateLocationWhatsThis();
00968
00969
void appendExtension(KURL &url);
00970
void updateLocationEditExtension(const QString &);
00971
00972 static
void initStatic();
00973
00974 protected:
00975
KDirOperator *ops;
00976
bool autoDirectoryFollowing;
00977
00978 KURL::List& parseSelectedURLs() const;
00979
00980 protected:
00981 virtual
void virtual_hook(
int id,
void* data );
00982 private:
00983 KFileDialogPrivate *d;
00984 };
00985
00986 #endif