29 #include <QtGui/QCheckBox> 30 #include <QtGui/QKeyEvent> 31 #include <QtGui/QFileDialog> 32 #include <QtGui/QApplication> 33 #include <QtGui/QDesktopWidget> 48 #if defined(Q_WS_WIN) || defined(Q_WS_MAEMO_5) 57 QStringList kdeFilter;
59 foreach(
const QString& mimeType, mimeTypes ) {
63 kdeFilter.append(mime->
patterns().join(QLatin1String(
" ")) +
70 *allExtensions = allExt.join(QLatin1String(
" "));
77 static QString
qtFilter(
const QStringList& _filters)
80 const QStringList filters = _filters;
82 foreach (
const QString& current, filters) {
85 int p = current.indexOf(
'|');
91 new_f = current.left(p);
92 new_name = current.mid(p+1);
95 new_name = new_name.replace(
'(',
'[').replace(
')',
']').trimmed();
98 QStringList allfiltersUnique;
99 const QStringList origList( new_f.split(
' ', QString::SkipEmptyParts) );
100 foreach (
const QString& origFilter, origList) {
101 if (!allfiltersUnique.contains(origFilter, Qt::CaseInsensitive))
102 allfiltersUnique += origFilter.toLower();
105 if (!converted.isEmpty())
108 converted += (new_name +
" (" + allfiltersUnique.join(
" ") + QLatin1Char(
')'));
112 converted.replace(
"\\/",
"/");
125 if (filter.isEmpty())
126 filters +=
i18n(
"*|All files");
129 int pos = filter.indexOf(
'/');
130 if (pos > 0 && filter[pos - 1] !=
'\\')
131 filters =
mime2KdeFilter(filter.split(QLatin1Char(
' '), QString::SkipEmptyParts));
133 filters = filter.split(
'\n', QString::SkipEmptyParts);
142 if(fileModuleService)
154 kDebug() <<
"Failed to load configured file module" << moduleName;
156 kDebug() <<
"Falling back to default file module.";
164 class KFileDialogPrivate
177 KUrl startDir()
const 179 if (!s_startDir.isEmpty())
181 if (!selectedUrls.isEmpty())
182 return selectedUrls.first();
187 static KUrl staticStartDir(
const KUrl& defaultDir )
189 if ( s_startDir.isEmpty() )
193 static KUrl s_startDir;
194 static bool s_allowNative;
196 QString selectedFilter;
209 KFileDialogPrivate::Native::s_allowNative)
213 static bool isNative()
215 if(!KFileDialogPrivate::Native::s_allowNative)
221 static QString getOpenFileName(
const KUrl& startDir,
const QString& filter,
223 QString *selectedFilter);
224 static KUrl getOpenUrl(
const KUrl& startDir,
const QString& filter,
225 QWidget *parent,
const QString& caption,
226 QString *selectedFilter);
227 static QStringList getOpenFileNames(
const KUrl& startDir,
const QString& filter,
228 QWidget *parent,
const QString& caption,
229 QString *selectedFilter);
230 static KUrl::List getOpenUrls(
const KUrl& startDir,
const QString& filter,
231 QWidget *parent,
const QString& caption,
232 QString *selectedFilter);
233 static QString getSaveFileName(
const KUrl&
dir,
const QString& filter,
234 QWidget *parent,
const QString& caption,
235 KFileDialog::Options options, QString *selectedFilter);
236 static KUrl getSaveUrl(
const KUrl& dir,
const QString& filter,
237 QWidget *parent,
const QString& caption,
238 KFileDialog::Options options, QString *selectedFilter);
240 ~KFileDialogPrivate()
250 KUrl KFileDialogPrivate::Native::s_startDir;
251 bool KFileDialogPrivate::Native::s_allowNative =
true;
256 :
KDialog( parent , Qt::WindowMinMaxButtonsHint),
260 d(
new KFileDialogPrivate )
270 KFileDialogPrivate::Native::s_startDir = startDir;
272 int pos = filter.indexOf(
'/');
273 if (pos > 0 && filter[pos - 1] !=
'\\')
274 setMimeFilter(filter.split(QLatin1Char(
' '), QString::SkipEmptyParts));
281 restoreDialogSize(d->cfgGroup);
284 d->w->setFilter(filter);
285 setMainWidget(fileQWidget);
287 d->w->okButton()->show();
288 connect(d->w->okButton(), SIGNAL(clicked()), SLOT(slotOk()));
289 d->w->cancelButton()->show();
290 connect(d->w->cancelButton(), SIGNAL(clicked()), SLOT(slotCancel()));
299 connect(fileQWidget, SIGNAL(fileSelected(
KUrl)),
300 SIGNAL(fileSelected(
KUrl)));
301 connect(fileQWidget, SIGNAL(fileHighlighted(
KUrl)),
302 SIGNAL(fileHighlighted(
KUrl)));
303 connect(fileQWidget, SIGNAL(fileSelected(QString)),
304 SIGNAL(fileSelected(QString)));
305 connect(fileQWidget, SIGNAL(fileHighlighted(QString)),
306 SIGNAL(fileHighlighted(QString)));
307 connect(fileQWidget, SIGNAL(selectionChanged()),
308 SIGNAL(selectionChanged()));
309 connect(fileQWidget, SIGNAL(filterChanged(QString)),
310 SIGNAL(filterChanged(QString)));
312 connect(fileQWidget, SIGNAL(accepted()), SLOT(accept()));
316 d->w->setCustomWidget(QString(), customWidget);
329 d->w->setLocationLabel(text);
335 d->native->filter = filter;
338 d->w->setFilter(filter);
345 return d->w->currentFilter();
349 const QString& defaultType )
351 d->w->setMimeFilter(mimeTypes, defaultType);
354 QString allExtensions;
356 if (defaultType.isEmpty() && (mimeTypes.count() > 1)) {
357 filters.prepend(allExtensions + QLatin1Char(
'|') +
i18n(
"All Supported Files"));
359 d->native->filter = filters.join(QLatin1String(
"\n"));
366 d->native->filter.clear();
376 QString filter = d->native->selectedFilter.split(
";;").replaceInStrings(
"/",
"\\/")[0];
377 filter = filter.mid(filter.indexOf(
'(') + 1, filter.indexOf(
')') - filter.indexOf(
'(') - 1);
381 return d->w->currentMimeFilter();
393 d->w->setPreviewWidget(w);
401 d->w->setInlinePreviewShown(show);
407 int fontSize = fontMetrics().height();
408 QSize goodSize(48 * fontSize, 30 * fontSize);
409 QSize screenSize = QApplication::desktop()->availableGeometry(
this).size();
410 QSize minSize(screenSize / 2);
411 QSize maxSize(screenSize * qreal(0.9));
412 return (goodSize.expandedTo(minSize).boundedTo(maxSize));
428 setResult( QDialog::Accepted );
447 d->native->selectedUrls.clear();
448 d->native->selectedUrls.append(url);
451 d->w->setUrl(url, clearforward);
457 d->native->selectedUrls.clear();
458 d->native->selectedUrls.append(
KUrl(name) );
461 d->w->setSelection(name);
465 const QString& filter,
466 QWidget *parent,
const QString& caption)
468 return KFileDialogPrivate::getOpenFileName(startDir, filter, parent, caption, 0);
471 QString KFileDialogPrivate::getOpenFileName(
const KUrl& startDir,
472 const QString& filter,
475 QString *selectedFilter)
477 if (KFileDialogPrivate::isNative() && (!startDir.isValid() || startDir.
isLocalFile())) {
478 return QFileDialog::getOpenFileName(
480 caption.isEmpty() ?
i18n(
"Open") : caption,
481 KFileDialogPrivate::Native::staticStartDir( startDir ).toLocalFile(),
490 dlg.setCaption(caption.isEmpty() ?
i18n(
"Open") : caption);
493 if(selectedFilter) *selectedFilter = dlg.currentMimeFilter();
494 return dlg.selectedFile();
498 const QString& filter,
499 WId parent_id,
const QString& caption)
501 if (KFileDialogPrivate::isNative() && (!startDir.isValid() || startDir.
isLocalFile()))
504 KFileDialogPrivate::Native::s_allowNative =
false;
506 if( parent == NULL && parent_id != 0 )
519 const QString& filter,
521 const QString& caption)
523 return KFileDialogPrivate::getOpenFileNames(startDir, filter, parent, caption, 0);
526 QStringList KFileDialogPrivate::getOpenFileNames(
const KUrl& startDir,
527 const QString& filter,
529 const QString& caption,
530 QString *selectedFilter)
532 if (KFileDialogPrivate::isNative() && (!startDir.isValid() || startDir.
isLocalFile())) {
533 return QFileDialog::getOpenFileNames(
535 caption.isEmpty() ?
i18n(
"Open") : caption,
536 KFileDialogPrivate::Native::staticStartDir( startDir ).toLocalFile(),
537 qtFilter( filter ), selectedFilter );
540 KFileDialogPrivate::Native::s_allowNative =
false;
553 QWidget *parent,
const QString& caption)
555 return KFileDialogPrivate::getOpenUrl(startDir, filter, parent, caption, 0);
557 KUrl KFileDialogPrivate::getOpenUrl(
const KUrl& startDir,
const QString& filter,
558 QWidget *parent,
const QString& caption,
559 QString *selectedFilter)
561 if (KFileDialogPrivate::isNative() && (!startDir.isValid() || startDir.
isLocalFile())) {
562 const QString fileName( KFileDialogPrivate::getOpenFileName(
563 startDir, filter, parent, caption, selectedFilter) );
566 KFileDialogPrivate::Native::s_allowNative =
false;
579 const QString& filter,
581 const QString& caption)
583 return KFileDialogPrivate::getOpenUrls(startDir, filter, parent, caption, 0);
587 const QString& filter,
589 const QString& caption,
590 QString *selectedFilter)
592 if (KFileDialogPrivate::isNative() && (!startDir.isValid() || startDir.
isLocalFile())) {
593 const QStringList fileNames( KFileDialogPrivate::getOpenFileNames(
594 startDir, filter, parent, caption, selectedFilter) );
597 KFileDialogPrivate::Native::s_allowNative =
false;
613 d->w->setConfirmOverwrite(enable);
619 const QString& caption)
621 if (KFileDialogPrivate::isNative() && (!startDir.isValid() || startDir.
isLocalFile())) {
622 QString result( QFileDialog::getExistingDirectory(parent, caption,
623 KFileDialogPrivate::Native::staticStartDir( startDir ).toLocalFile(),
624 QFileDialog::ShowDirsOnly) );
632 const QString& caption)
634 if (KFileDialogPrivate::isNative() && (!startDir.isValid() || startDir.
isLocalFile())) {
635 return QFileDialog::getExistingDirectory(parent, caption,
636 KFileDialogPrivate::Native::staticStartDir( startDir ).toLocalFile(),
637 QFileDialog::ShowDirsOnly);
646 const QString& caption)
648 if (KFileDialogPrivate::isNative() && (!startDir.isValid() || startDir.
isLocalFile())) {
653 KFileDialogPrivate::Native::s_allowNative =
false;
658 dlg.setCaption( caption.isEmpty() ?
i18n(
"Open") : caption );
659 dlg.setInlinePreviewShown(
true );
663 return dlg.selectedUrl();
669 return d->native->selectedUrls.isEmpty() ?
KUrl() : d->native->selectedUrls.first();
670 return d->w->selectedUrl();
676 return d->native->selectedUrls;
677 return d->w->selectedUrls();
683 return selectedUrl().toLocalFile();
684 return d->w->selectedFile();
690 return selectedUrls().toStringList();
691 return d->w->selectedFiles();
698 return d->w->baseUrl();
703 const QString& caption)
707 return KFileDialogPrivate::getSaveFileName(dir, filter, parent, caption, Options(0), 0);
712 const QString& caption, Options options)
714 return KFileDialogPrivate::getSaveFileName(dir, filter, parent, caption, options, 0);
717 QString KFileDialogPrivate::getSaveFileName(
const KUrl&
dir,
const QString& filter,
718 QWidget *parent,
const QString& caption,
719 KFileDialog::Options options, QString *selectedFilter)
721 if (KFileDialogPrivate::isNative()) {
722 bool defaultDir = dir.isEmpty();
723 bool specialDir = !defaultDir && dir.
protocol() ==
"kfiledialog";
725 QString recentDirClass;
729 else if ( !specialDir && !defaultDir ) {
736 const QString result = QFileDialog::getSaveFileName(
738 caption.isEmpty() ?
i18n(
"Save As") : caption,
739 KFileDialogPrivate::Native::staticStartDir( startDir ).toLocalFile(),
742 selectedFilter, opts );
743 if (!result.isEmpty()) {
744 if (!recentDirClass.isEmpty())
762 if (!filename.isEmpty())
770 const QString& caption)
774 return getSaveFileNameWId(dir, filter, parent_id, caption, Options(0));
779 const QString& caption, Options options)
781 if (KFileDialogPrivate::isNative()) {
787 if( parent == NULL && parent_id != 0 )
799 if (!filename.isEmpty())
806 QWidget *parent,
const QString& caption)
810 return KFileDialogPrivate::getSaveUrl(dir, filter, parent, caption, Options(0), 0);
814 QWidget *parent,
const QString& caption, Options options)
816 return KFileDialogPrivate::getSaveUrl(dir, filter, parent, caption, options, 0);
818 KUrl KFileDialogPrivate::getSaveUrl(
const KUrl& dir,
const QString& filter,
819 QWidget *parent,
const QString& caption,
820 KFileDialog::Options options, QString *selectedFilter)
822 if (KFileDialogPrivate::isNative() && (!dir.isValid() || dir.
isLocalFile())) {
823 const QString fileName( KFileDialogPrivate::getSaveFileName(
824 dir, filter, parent, caption, options, selectedFilter) );
828 KFileDialogPrivate::Native::s_allowNative =
false;
858 return d->native->mode;
864 return d->w->okButton();
869 return d->w->cancelButton();
874 return d->w->locationEdit();
879 return d->w->filterWidget();
884 return d->w->actionCollection();
891 d->w->setKeepLocation(keep);
898 return d->w->keepsLocation();
906 d->w->setOperationMode(static_cast<KAbstractFileWidget::OperationMode>(mode));
921 if ( e->key() == Qt::Key_Escape )
924 d->w->cancelButton()->animateClick();
942 QString& recentDirClass )
949 if (KFileDialogPrivate::isNative())
950 KFileDialogPrivate::Native::s_startDir = directory;
956 return d->w->toolBar();
967 if (!d->native || !KFileDialogPrivate::Native::s_allowNative) {
968 KFileDialogPrivate::Native::s_allowNative =
true;
969 return KDialog::exec();
974 int res = QDialog::Rejected;
975 switch (d->native->operationMode) {
979 KUrl url( KFileDialogPrivate::getOpenUrl(
980 d->native->startDir(), d->native->filter, parentWidget(), windowTitle(), &d->native->selectedFilter ) );
981 if (url.isEmpty() || !url.isValid()) {
982 res = QDialog::Rejected;
985 d->native->selectedUrls.clear();
986 d->native->selectedUrls.append(url);
987 res = QDialog::Accepted;
991 KUrl::List urls( KFileDialogPrivate::getOpenUrls(
992 d->native->startDir(), d->native->filter, parentWidget(), windowTitle(), &d->native->selectedFilter ) );
993 if (urls.isEmpty()) {
994 res = QDialog::Rejected;
997 d->native->selectedUrls = urls;
998 res = QDialog::Accepted;
1003 d->native->startDir(), parentWidget(), windowTitle()) );
1004 if (url.isEmpty() || !url.isValid()) {
1005 res = QDialog::Rejected;
1008 d->native->selectedUrls.clear();
1009 d->native->selectedUrls.append(url);
1010 res = QDialog::Accepted;
1016 KUrl url( KFileDialogPrivate::getSaveUrl(
1017 d->native->startDir(), d->native->filter, parentWidget(), windowTitle(), Options(0), &d->native->selectedFilter ) );
1018 if (url.isEmpty() || !url.isValid()) {
1019 res = QDialog::Rejected;
1022 d->native->selectedUrls.clear();
1023 d->native->selectedUrls.append(url);
1024 res = QDialog::Accepted;
1029 d->native->startDir(), parentWidget(), windowTitle()) );
1030 if (url.isEmpty() || !url.isValid()) {
1031 res = QDialog::Rejected;
1034 d->native->selectedUrls.clear();
1035 d->native->selectedUrls.append(url);
1036 res = QDialog::Accepted;
1046 if (res == QDialog::Accepted) {
1057 #define KF_EXTERN extern __declspec(dllimport) 1059 #define KF_EXTERN extern 1064 QFileDialog::Options options);
1068 const QString &
dir,
const QString &filter,
1069 QString *selectedFilter,
1070 QFileDialog::Options options);
1074 const QString &
dir,
const QString &filter,
1075 QString *selectedFilter,
1076 QFileDialog::Options options);
1080 const QString &
dir,
const QString &filter,
1081 QString *selectedFilter,
1082 QFileDialog::Options options);
1090 class KFileDialogQtOverride
1093 KFileDialogQtOverride()
1095 if(!qt_filedialog_existing_directory_hook)
1096 qt_filedialog_existing_directory_hook=&getExistingDirectory;
1097 if(!qt_filedialog_open_filename_hook)
1098 qt_filedialog_open_filename_hook=&getOpenFileName;
1099 if(!qt_filedialog_open_filenames_hook)
1100 qt_filedialog_open_filenames_hook=&getOpenFileNames;
1101 if(!qt_filedialog_save_filename_hook)
1102 qt_filedialog_save_filename_hook=&getSaveFileName;
1105 ~KFileDialogQtOverride() {
1106 if(qt_filedialog_existing_directory_hook == &getExistingDirectory)
1107 qt_filedialog_existing_directory_hook = 0;
1108 if(qt_filedialog_open_filename_hook == &getOpenFileName)
1109 qt_filedialog_open_filename_hook = 0;
1110 if(qt_filedialog_open_filenames_hook == &getOpenFileNames)
1111 qt_filedialog_open_filenames_hook=0;
1112 if(qt_filedialog_save_filename_hook == &getSaveFileName)
1113 qt_filedialog_save_filename_hook=0;
1119 static QString qt2KdeFilter(
const QString &
f)
1122 QTextStream str(&filter, QIODevice::WriteOnly);
1123 QStringList
list(f.split(
";;").replaceInStrings(
"/",
"\\/"));
1124 QStringList::const_iterator it(
list.begin()),
1128 for(; it!=
end; ++it)
1130 int ob=(*it).lastIndexOf(
'('),
1131 cb=(*it).lastIndexOf(
')');
1139 str << (*it).mid(ob+1, (cb-ob)-1) <<
'|' << (*it).mid(0, ob);
1149 static void kde2QtFilter(
const QString &orig,
const QString &kde, QString *sel)
1153 QStringList
list(orig.split(
";;"));
1154 QStringList::const_iterator it(
list.begin()),
1158 for(; it!=
end; ++it)
1159 if(-1!=(pos=(*it).indexOf(kde)) && pos>0 &&
1160 (
'('==(*it)[pos-1] ||
' '==(*it)[pos-1]) &&
1161 (*it).length()>=kde.length()+pos &&
1162 (
')'==(*it)[pos+kde.length()] ||
' '==(*it)[pos+kde.length()]))
1170 static QString getExistingDirectory(
QWidget *parent,
const QString &caption,
const QString &dir,
1171 QFileDialog::Options options)
1173 if (KFileDialogPrivate::isNative()) {
1174 if(qt_filedialog_existing_directory_hook)
1175 qt_filedialog_existing_directory_hook=0;
1176 return QFileDialog::getExistingDirectory(parent, caption, dir, options);
1188 static QString getOpenFileName(
QWidget *parent,
const QString &caption,
const QString &dir,
1189 const QString &filter, QString *selectedFilter,
1190 QFileDialog::Options options)
1192 if (KFileDialogPrivate::isNative()) {
1193 if(qt_filedialog_open_filename_hook)
1194 qt_filedialog_open_filename_hook=0;
1195 return QFileDialog::getOpenFileName(parent, caption, dir, filter, selectedFilter, options);
1214 static QStringList getOpenFileNames(
QWidget *parent,
const QString &caption,
const QString &dir,
1215 const QString &filter, QString *selectedFilter,
1216 QFileDialog::Options options)
1218 if (KFileDialogPrivate::isNative()) {
1219 if(qt_filedialog_open_filenames_hook)
1220 qt_filedialog_open_filenames_hook=0;
1221 return QFileDialog::getOpenFileNames(parent, caption, dir, filter, selectedFilter, options);
1240 static QString getSaveFileName(
QWidget *parent,
const QString &caption,
const QString &dir,
1241 const QString &filter, QString *selectedFilter,
1242 QFileDialog::Options options)
1244 if (KFileDialogPrivate::isNative()) {
1245 if(qt_filedialog_save_filename_hook)
1246 qt_filedialog_save_filename_hook=0;
1247 return QFileDialog::getSaveFileName(parent, caption, dir, filter, selectedFilter, options);
1271 #include "kfiledialog.moc"
static KAbstractFileModule * fileModule()
QStringList(* _qt_filedialog_open_filenames_hook)(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options)
QString i18n(const char *text)
QString toLocalFile(AdjustPathOption trailing=LeaveTrailingSlash) const
KToolBar * toolBar() const
Returns a pointer to the toolbar.
virtual QWidget * createFileWidget(const KUrl &startDir, QWidget *parent)=0
the returned widget implements the KAbstractFileWidget interface
KF_EXTERN _qt_filedialog_open_filename_hook qt_filedialog_open_filename_hook
void setFilter(const QString &filter)
Sets the filter to be used to filter.
static Ptr serviceByDesktopName(const QString &_name)
MimetypeJob * mimetype(const KUrl &url, JobFlags flags=DefaultFlags)
Find mimetype for one file or directory.
static QStringList getOpenFileNames(const KUrl &startDir=KUrl(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and returns the selected filenames or an empty list if none was chosen...
T * createInstance(QObject *parent=0, const QVariantList &args=QVariantList(), QString *error=0) const
KPushButton * okButton() const
virtual QSize sizeHint() const
static Ptr findByPath(const QString &path, mode_t mode=0, bool fast_mode=false, int *accuracy=0)
~KFileDialog()
Destructs the file dialog.
QString(* _qt_filedialog_open_filename_hook)(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options)
virtual void slotCancel()
Always show an inline preview.
const char * name(StandardAction id)
static KAbstractFileModule * s_module
void add(const QString &fileClass, const QString &directory)
Associates directory with fileClass.
QString(* _qt_filedialog_save_filename_hook)(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options)
static quint32 f(DES_KEY *key, quint32 r, char *subkey)
static KUrl fromPath(const QString &text)
KConfigGroup group(const QByteArray &group)
static KFileDialogQtOverride qtOverride
static KUrl getExistingDirectoryUrl(const KUrl &startDir=KUrl(), QWidget *parent=0, const QString &caption=QString())
Creates a modal directory-selection dialog and returns the selected directory or an empty string if n...
KUrl::List selectedUrls() const
static void setStartDir(const KUrl &directory)
static void add(const KUrl &url)
Add a new item to the Recent Document menu.
void clearFilter()
Clears any mime- or namefilter.
QString pathOrUrl() const
static QDebug kDebug(bool cond, int area=KDE_DEFAULT_DEBUG_AREA)
virtual void setCaption(const QString &caption)
This combobox shows a number of recent URLs/directories, as well as some default directories.
KSharedConfigPtr config()
Provides a user (and developer) friendly way to select files and directories.
QString comment(const KUrl &url=KUrl()) const
QString(* _qt_filedialog_existing_directory_hook)(QWidget *parent, const QString &caption, const QString &dir, QFileDialog::Options options)
virtual KUrl selectDirectory(const KUrl &startDir, bool localOnly, QWidget *parent, const QString &caption)=0
Creates a modal file dialog and returns the selected directory or an empty string if none was chosen...
KF_EXTERN _qt_filedialog_save_filename_hook qt_filedialog_save_filename_hook
QStringList patterns() const
const bool NATIVE_FILEDIALOGS_BY_DEFAULT
File dialogs are native by default on Windows.
void setLocationLabel(const QString &text)
Sets the text to be displayed in front of the selection.
OperationMode operationMode() const
static QString qtFilter(const QStringList &_filters)
QString selectedFile() const
Returns the full path of the selected file in the local filesystem.
virtual void setStartDir(const KUrl &directory)=0
void setKeepLocation(bool keep)
Sets whether the filename/url should be kept when changing directories.
void setUrl(const KUrl &url, bool clearforward=true)
Sets the directory to view.
static QString getOpenFileName(const KUrl &startDir=KUrl(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and return the selected filename or an empty string if none was chosen...
void setMode(KFile::Modes m)
Sets the mode of the dialog.
QStringList selectedFiles() const
Returns a list of all selected local files.
void setOperationMode(KFileDialog::OperationMode)
Sets the operational mode of the filedialog to Saving, Opening or Other.
QStringList mimeTypes(Mode mode=Writing)
Returns a list of MIME types for all KImageIO supported formats.
void setInlinePreviewShown(bool show)
Forces the inline previews to be shown or hidden, depending on show.
static QString getOpenFileNameWId(const KUrl &startDir, const QString &filter, WId parent_id, const QString &caption)
Use this version only if you have no QWidget available as parent widget.
KActionCollection * actionCollection() const
static int find(const QByteArray &buf, int begin, const char c1)
returns the position of the first occurrence of any of the given characters c1 or comma ('...
static QString getSaveFileName(const KUrl &startDir=KUrl(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and returns the selected filename or an empty string if none was chosen...
Confirm whether to overwrite file to save.
static KUrl::List getOpenUrls(const KUrl &startDir=KUrl(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and returns the selected URLs or an empty list if none was chosen...
static void setMainWindow(QWidget *subwindow, WId mainwindow)
KMimeType::Ptr currentFilterMimeType()
Returns the mimetype for the desired output format.
static KUrl getSaveUrl(const KUrl &startDir=KUrl(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and returns the selected filename or an empty string if none was chosen...
OperationMode
Defines some default behavior of the filedialog.
QString currentFilter() const
Returns the current filter as entered by the user or one of the predefined set via setFilter()...
KFileFilterCombo * filterWidget() const
Interface to the module that contains the file widget.
static KUrl getStartUrl(const KUrl &startDir, QString &recentDirClass)
This method implements the logic to determine the user's default directory to be listed.
static const char s_defaultFileModuleName[]
static QString getExistingDirectory(const KUrl &startDir=KUrl(), QWidget *parent=0, const QString &caption=QString())
Creates a modal directory-selection dialog and returns the selected directory (local only) or an empt...
static KUrl getOpenUrl(const KUrl &startDir=KUrl(), const QString &filter=QString(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog and returns the selected URL or an empty string if none was chosen...
static KAbstractFileModule * loadFileModule(const QString &moduleName)
QString dir(const QString &fileClass)
Returns the most recently used directory accociated with this file-class.
QString currentMimeFilter() const
The mimetype for the desired output format.
T readEntry(const QString &key, const T &aDefault) const
void setPreviewWidget(KPreviewWidgetBase *w)
Adds a preview widget and enters the preview mode.
virtual void hideEvent(QHideEvent *)
virtual KUrl getStartUrl(const KUrl &startDir, QString &recentDirClass)=0
KAbstractFileWidget * fileWidget()
Returns the KFileWidget that implements most of this file dialog.
void setConfirmOverwrite(bool enable)
Sets whether the dialog should ask before accepting the selected file when KFileDialog::OperationMode...
static QDebug kWarning(bool cond, int area=KDE_DEFAULT_DEBUG_AREA)
static QStringList mime2KdeFilter(const QStringList &mimeTypes, QString *allExtensions=0)
static KUrl getImageOpenUrl(const KUrl &startDir=KUrl(), QWidget *parent=0, const QString &caption=QString())
Creates a modal file dialog with an image previewer and returns the selected url or an empty string i...
QString url(AdjustPathOption trailing=LeaveTrailingSlash) const
static Ptr mimeType(const QString &name, FindByNameOption options=ResolveAliases)
KFile::Modes mode() const
Returns the mode of the filedialog.
KF_EXTERN _qt_filedialog_open_filenames_hook qt_filedialog_open_filenames_hook
virtual void keyPressEvent(QKeyEvent *)
bool keepsLocation() const
virtual void keyPressEvent(QKeyEvent *e)
Reimplemented to animate the cancel button.
KFileDialog(const KUrl &startDir, const QString &filter, QWidget *parent, QWidget *widget=0)
Constructs a file dialog.
void setMimeFilter(const QStringList &types, const QString &defaultType=QString())
Sets the filter up to specify the output type.
KPushButton * cancelButton() const
static QString getSaveFileNameWId(const KUrl &startDir, const QString &filter, WId parent_id, const QString &caption)
This function accepts the window id of the parent window, instead of QWidget*.
static KUrl join(const List &_list)
virtual void hideEvent(QHideEvent *event)
Reimplemented for saving the dialog geometry.
KUrlComboBox * locationEdit() const
KF_EXTERN _qt_filedialog_existing_directory_hook qt_filedialog_existing_directory_hook
QStringList list(const QString &fileClass)
Returns a list of directories associated with this file-class.
void setSelection(const QString &name)
Sets the file name to preselect to name.