--- a/src/qtgui/guiutils.cpp
+++ b/src/qtgui/guiutils.cpp
@@ -27,8 +27,9 @@
#include "base64.h"
#include "transcode.h"
-#include <qsettings.h>
-#include <qstringlist.h>
+#include <QSettings>
+#include <QStringList>
+#include <QFileDialog>
RclDynConf *g_dynconf;
@@ -324,3 +325,30 @@
prefs.asearchSubdirHist.push_front(QString::fromUtf8(it->c_str()));
}
}
+
+QString myGetFileName(bool isdir, QString caption)
+{
+ LOGDEB1(("myFileDialog: isdir %d\n", isdir));
+ QFileDialog dialog(0, caption);
+
+ if (isdir) {
+ dialog.setFileMode(QFileDialog::Directory);
+ dialog.setOptions(QFileDialog::ShowDirsOnly);
+ } else {
+ dialog.setFileMode(QFileDialog::AnyFile);
+ dialog.setAcceptMode(QFileDialog::AcceptSave);
+ }
+ dialog.setViewMode(QFileDialog::List);
+ QFlags<QDir::Filter> flags = QDir::NoDotAndDotDot | QDir::Hidden;
+ if (isdir)
+ flags |= QDir::Dirs;
+ else
+ flags |= QDir::Dirs | QDir::Files;
+ dialog.setFilter(flags);
+
+
+ if (dialog.exec() == QDialog::Accepted) {
+ return dialog.selectedFiles().value(0);
+ }
+ return QString();
+}