diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2016-03-01 09:02:42 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2016-03-01 09:02:42 +0000 |
| commit | 6881ea9bb9c92635d7c17513481020345f2d81ce (patch) | |
| tree | 127febe8804743d54934a1f2b3b2487a144c0d7c /src | |
| parent | d9ebb46571b0ab266fcce6b180897c3930d24792 (diff) | |
| download | qmmp-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
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/FileDialogs/FileDialogs.pro | 2 | ||||
| -rw-r--r-- | src/qmmpui/filedialog.cpp | 46 | ||||
| -rw-r--r-- | src/qmmpui/filedialog.h | 71 | ||||
| -rw-r--r-- | src/qmmpui/qtfiledialog.cpp | 53 | ||||
| -rw-r--r-- | src/qmmpui/qtfiledialog_p.h | 25 |
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 |
