aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-03-01 09:02:42 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-03-01 09:02:42 +0000
commit6881ea9bb9c92635d7c17513481020345f2d81ce (patch)
tree127febe8804743d54934a1f2b3b2487a144c0d7c
parentd9ebb46571b0ab266fcce6b180897c3930d24792 (diff)
downloadqmmp-6881ea9bb9c92635d7c17513481020345f2d81ce.tar.gz
qmmp-6881ea9bb9c92635d7c17513481020345f2d81ce.tar.bz2
qmmp-6881ea9bb9c92635d7c17513481020345f2d81ce.zip
changed file dialog api
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6140 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/FileDialogs/FileDialogs.pro2
-rw-r--r--src/qmmpui/filedialog.cpp46
-rw-r--r--src/qmmpui/filedialog.h71
-rw-r--r--src/qmmpui/qtfiledialog.cpp53
-rw-r--r--src/qmmpui/qtfiledialog_p.h25
5 files changed, 48 insertions, 149 deletions
diff --git a/src/plugins/FileDialogs/FileDialogs.pro b/src/plugins/FileDialogs/FileDialogs.pro
index fcf8a2d83..ea5213012 100644
--- a/src/plugins/FileDialogs/FileDialogs.pro
+++ b/src/plugins/FileDialogs/FileDialogs.pro
@@ -1,2 +1,2 @@
TEMPLATE = subdirs
-SUBDIRS += QmmpFileDialog TwoPanelFileDialog
+#SUBDIRS += QmmpFileDialog TwoPanelFileDialog
diff --git a/src/qmmpui/filedialog.cpp b/src/qmmpui/filedialog.cpp
index c317a22c0..ea2e3f8c6 100644
--- a/src/qmmpui/filedialog.cpp
+++ b/src/qmmpui/filedialog.cpp
@@ -102,7 +102,8 @@ QString FileDialog::getExistingDirectory(QWidget *parent,
const QString &caption,
const QString &dir)
{
- return instance()->existingDirectory(parent,caption,dir);
+ QStringList l = instance()->exec(parent, dir, FileDialog::AddDir, caption);
+ return l.isEmpty() ? QString() : l.at(0);
}
QString FileDialog::getOpenFileName(QWidget *parent,
@@ -111,21 +112,23 @@ QString FileDialog::getOpenFileName(QWidget *parent,
const QString &filter,
QString *selectedFilter)
{
- return instance()->openFileName(parent,caption,dir,filter,selectedFilter);
+ QStringList l = instance()->exec(parent, dir, FileDialog::AddFile, caption, filter, selectedFilter);
+ return l.isEmpty() ? QString() : l.at(0);
}
QStringList FileDialog::getOpenFileNames(QWidget *parent, const QString &caption,
const QString &dir,const QString &filter,
QString *selectedFilter)
{
- return instance()->openFileNames(parent,caption,dir,filter,selectedFilter);
+ return instance()->exec(parent, dir, FileDialog::AddFiles, caption, filter, selectedFilter);
}
QString FileDialog::getSaveFileName (QWidget *parent, const QString &caption,
const QString& dir, const QString &filter,
QString *selectedFilter)
{
- return instance()->saveFileName(parent,caption,dir,filter,selectedFilter);
+ QStringList l = instance()->exec(parent, dir, FileDialog::SaveFile, caption, filter, selectedFilter);
+ return l.isEmpty() ? QString() : l.at(0);
}
void FileDialog::popup(QWidget *parent,
@@ -216,41 +219,6 @@ void FileDialog::raise(const QString &dir, Mode mode, const QString &caption, co
Q_UNUSED(mask);
}
-QString FileDialog::existingDirectory(QWidget *parent, const QString &caption, const QString &dir)
-{
- FileDialog *instance = FileDialog::createDefault();
- QString dir_path = instance->existingDirectory(parent, caption, dir);
- delete instance;
- return dir_path;
-}
-
-QString FileDialog::openFileName(QWidget *parent, const QString &caption, const QString &dir,
- const QString &filter, QString *selectedFilter)
-{
- FileDialog *instance = FileDialog::createDefault();
- QString file_path = instance->openFileName(parent, caption, dir, filter, selectedFilter);
- delete instance;
- return file_path;
-}
-
-QStringList FileDialog::openFileNames(QWidget *parent, const QString &caption, const QString &dir,
- const QString &filter, QString *selectedFilter)
-{
- FileDialog *instance = FileDialog::createDefault();
- QStringList list = instance->openFileNames(parent, caption, dir, filter, selectedFilter);
- delete instance;
- return list;
-}
-
-QString FileDialog::saveFileName(QWidget *parent, const QString &caption, const QString &dir,
- const QString &filter, QString *selectedFilter)
-{
- FileDialog *instance = FileDialog::createDefault();
- QString file_path = instance->saveFileName(parent, caption, dir, filter, selectedFilter);
- delete instance;
- return file_path;
-}
-
void FileDialog::init(QObject* receiver, const char* member, QString *dir)
{
m_lastDir = dir;
diff --git a/src/qmmpui/filedialog.h b/src/qmmpui/filedialog.h
index 3aa5ec1d5..39baa3846 100644
--- a/src/qmmpui/filedialog.h
+++ b/src/qmmpui/filedialog.h
@@ -157,76 +157,35 @@ protected:
*/
FileDialog();
/*!
- * This is a function that will open modal file dialog and
- * return an existing directory selected by the user.
- *
- * @param parent Parent widget.
- * @param caption Dialog title.
- * @param dir Default directory.
+ * Object destructor
*/
- virtual QString existingDirectory(QWidget *parent,
- const QString &caption,
- const QString &dir);
+ virtual ~FileDialog();
/*!
- * This is a function that will open modal file dialog and
- * return an existing file selected by the user.
- * Subclass should reimplement this function.
- * @param parent Parent widget.
- * @param caption Dialog title.
+ * Opens nonmodal file dialog. Selected file dialog should support nonmodal mode.
+ * Otherwise this function does nothing.
+ * Nonmodal dialog subclass should reimplement this function.
* @param dir Default directory.
- * @param filter Filer used by file dialog
- * (example: "Audio (*.mp3 *.ogg);;Text files (*.txt);;XML files (*.xml)").
- * @param selectedFilter Default selected filter
- */
- virtual QString openFileName( QWidget *parent,
- const QString &caption,
- const QString &dir,
- const QString &filter,
- QString *selectedFilter);
- /*!
- * This is a function that will open modal file dialog and
- * return an existing files selected by the user.
- * Subclass should reimplement this function.
- * @param parent Parent widget.
+ * @param mode File dialog mode.
* @param caption Dialog title.
- * @param dir Default directory.
- * @param filter Filer used by file dialog
- * (example: "Audio (*.mp3 *.ogg);;Text files (*.txt);;XML files (*.xml)").
- * @param selectedFilter Default selected filter
+ * @param mask Filer used by file dialog
*/
- virtual QStringList openFileNames(QWidget *parent,
- const QString &caption,
- const QString &dir,
- const QString &filter,
- QString *selectedFilter);
+ virtual void raise(const QString &dir, Mode mode,
+ const QString &caption, const QStringList &mask);
/*!
* This is a function that will open modal file dialog and
- * return a file name selected by the user. The file does not have to exist.
+ * return a file(s) or directory name selected by the user.
* Subclass should reimplement this function.
* @param parent Parent widget.
- * @param caption Dialog title.
* @param dir Default directory.
+ * @param mode File dialog mode.
+ * @param caption Dialog title.
* @param filter Filer used by file dialog
* (example: "Audio (*.mp3 *.ogg);;Text files (*.txt);;XML files (*.xml)").
* @param selectedFilter Default selected filter.
*/
- virtual QString saveFileName (QWidget *parent, const QString &caption, const QString &dir,
- const QString &filter, QString *selectedFilter);
- /*!
- * Object destructor
- */
- virtual ~FileDialog();
- /*!
- * Opens nonmodal file dialog. Selected file dialog should support nonmodal mode.
- * Otherwise this function does nothing.
- * Nonmodal dialog subclass should reimplement this function.
- * @param dir Default directory.
- * @param mode File dialog mode.
- * @param caption Dialog title.
- * @param mask Filer used by file dialog
- */
- virtual void raise(const QString &dir = QString(), Mode mode = AddFiles,
- const QString &caption = QString(), const QStringList &mask = QStringList());
+ virtual QStringList exec(QWidget *parent, const QString &dir, Mode mode,
+ const QString &caption, const QString &filter = QString(),
+ QString *selectedFilter = 0) = 0;
private slots:
void updateLastDir(const QStringList&);
diff --git a/src/qmmpui/qtfiledialog.cpp b/src/qmmpui/qtfiledialog.cpp
index 96275a907..2a13c6a5e 100644
--- a/src/qmmpui/qtfiledialog.cpp
+++ b/src/qmmpui/qtfiledialog.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2012 by Ilya Kotov *
+ * Copyright (C) 2008-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -51,36 +51,25 @@ QtFileDialog::~QtFileDialog()
qDebug("QtFileDialog::~QtFileDialog()");
}
-QString QtFileDialog::existingDirectory(QWidget *parent,
- const QString &caption,
- const QString &dir)
+QStringList QtFileDialog::exec(QWidget *parent, const QString &dir, FileDialog::Mode mode,
+ const QString &caption, const QString &filter, QString *selectedFilter)
{
- return QFileDialog::getExistingDirectory(parent,caption,dir, QFileDialog::ShowDirsOnly);
-}
-
-QString QtFileDialog::openFileName(QWidget *parent,
- const QString &caption,
- const QString &dir,const QString &filter,
- QString *selectedFilter)
-{
- Q_UNUSED(selectedFilter);
- return QFileDialog::getOpenFileName(parent,caption,dir,filter);
-}
-
-QStringList QtFileDialog::openFileNames(QWidget *parent,
- const QString &caption,
- const QString &dir,
- const QString &filter,
- QString *selectedFilter)
-{
- return QFileDialog::getOpenFileNames(parent,caption,dir,filter,selectedFilter);
-}
-
-QString QtFileDialog::saveFileName (QWidget *parent,
- const QString &caption,
- const QString &dir,
- const QString &filter,
- QString *selectedFilter)
-{
- return QFileDialog::getSaveFileName(parent,caption,dir,filter,selectedFilter);
+ QStringList list;
+ if(mode == FileDialog::AddFile)
+ {
+ list << QFileDialog::getOpenFileName(parent,caption,dir,filter,selectedFilter);
+ }
+ else if(mode == FileDialog::AddDir || mode == FileDialog::AddDirs)
+ {
+ list << QFileDialog::getExistingDirectory(parent,caption,dir, QFileDialog::ShowDirsOnly);
+ }
+ else if(mode == FileDialog::AddFiles || mode == FileDialog::AddDirsFiles || mode == FileDialog::PlayDirsFiles)
+ {
+ list << QFileDialog::getOpenFileNames(parent,caption,dir,filter,selectedFilter);
+ }
+ else if(mode == FileDialog::SaveFile)
+ {
+ list << QFileDialog::getSaveFileName(parent,caption,dir,filter,selectedFilter);
+ }
+ return list;
}
diff --git a/src/qmmpui/qtfiledialog_p.h b/src/qmmpui/qtfiledialog_p.h
index dccc89c46..a33992bd1 100644
--- a/src/qmmpui/qtfiledialog_p.h
+++ b/src/qmmpui/qtfiledialog_p.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2012 by Ilya Kotov *
+ * Copyright (C) 2008-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -21,7 +21,6 @@
#define QTFILEDIALOG_H
#include <QObject>
-
#include "filedialog.h"
class QTranslator;
@@ -50,26 +49,10 @@ class QtFileDialog : public FileDialog
{
public:
virtual ~QtFileDialog();
- QString existingDirectory(QWidget *parent ,
- const QString & ,
- const QString &dir);
-
- QString openFileName(QWidget *parent,
- const QString &caption,
- const QString &dir,
- const QString &filter,
- QString *selectedFilter);
-
- QStringList openFileNames(QWidget *parent,
- const QString &caption,
- const QString &dir,
- const QString &filter, QString *selectedFilter);
- QString saveFileName (QWidget *parent,
- const QString &caption,
- const QString & dir,
- const QString &filter,
- QString *selectedFilter);
+ virtual QStringList exec(QWidget *parent, const QString &dir, Mode mode,
+ const QString &caption, const QString &filter,
+ QString *selectedFilter);
};
#endif