diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-07-09 18:54:22 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-07-09 18:54:22 +0000 |
| commit | e85b77286f66edecdc3707065e39b31f2e220f5a (patch) | |
| tree | 8d92254944d3c9391c61231bc114758f9ac23370 /src/qmmpui/filedialog.h | |
| parent | c0a9e456b6a935b67f2d3357a9cef7170cfee418 (diff) | |
| download | qmmp-e85b77286f66edecdc3707065e39b31f2e220f5a.tar.gz qmmp-e85b77286f66edecdc3707065e39b31f2e220f5a.tar.bz2 qmmp-e85b77286f66edecdc3707065e39b31f2e220f5a.zip | |
completed file dialog support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@443 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/filedialog.h')
| -rw-r--r-- | src/qmmpui/filedialog.h | 188 |
1 files changed, 105 insertions, 83 deletions
diff --git a/src/qmmpui/filedialog.h b/src/qmmpui/filedialog.h index cbf9af07b..259021e14 100644 --- a/src/qmmpui/filedialog.h +++ b/src/qmmpui/filedialog.h @@ -1,3 +1,23 @@ +/************************************************************************** +* Copyright (C) 2008 by Ilya Kotov * +* forkotov02@hotmail.ru * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU General Public License * +* along with this program; if not, write to the * +* Free Software Foundation, Inc., * +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * +***************************************************************************/ + #ifndef FILEDIALOG_H #define FILEDIALOG_H @@ -7,119 +27,121 @@ #include <QFileDialog> #include <QMap> -#define interface struct - -interface FileDialogFactory; +#include "filedialogfactory.h" -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////// FILE DIALOG ////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +/** + @author Vladimir Kuznetsov <vovanec@gmail.com> + */ class FileDialog : public QObject { Q_OBJECT public: - enum Mode{AddFiles,AddDirs,SaveFiles}; - static QString getExistingDirectory( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(),bool = FALSE); - static QString getOpenFileName(QWidget * parent = 0,const QString & caption = QString(),const QString & dir = QString(),const QString & filter = QString(), - QString * selectedFilter = 0,bool = FALSE); - static QStringList getOpenFileNames( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), - const QString & filter = QString(), QString * selectedFilter = 0,bool = FALSE); - static QString getSaveFileName ( QWidget * parent = 0, const QString & caption = QString(), - const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0,bool = FALSE); - static QStringList registeredFactories(); - + enum Mode{AddFile = 0, AddDir, AddFiles, AddDirs, AddDirsFiles, SaveFile}; + + static QString getExistingDirectory(QWidget *parent = 0, + const QString &caption = QString(), + const QString &dir = QString()); + + static QString getOpenFileName(QWidget *parent = 0, + const QString &caption = QString(), + const QString &dir = QString(), + const QString &filter = QString(), + QString *selectedFilter = 0); + + static QStringList getOpenFileNames(QWidget *parent = 0, + const QString &caption = QString(), + const QString &dir = QString(), + const QString &filter = QString(), + QString *selectedFilter = 0); + + static QString getSaveFileName (QWidget *parent = 0, + const QString &caption = QString(), + const QString &dir = QString(), + const QString &filter = QString(), + QString *selectedFilter = 0); + + static void popup(QWidget *parent = 0, + Mode = AddFiles, + QString *dir = 0, + QObject *receiver = 0, + const char *member = 0, + const QString &caption = QString(), + const QString &filters = QString()); + + static QList <FileDialogFactory*> registeredFactories(); static bool isModal(); - static void popup(const QString& = QString(),Mode = AddFiles,const QStringList& nameFilters = QStringList(), - QObject* receiver = 0, const char* member = 0); + static void setEnabled(FileDialogFactory *factory); + static bool isEnabled(FileDialogFactory *factory); + + signals: void filesAdded(const QStringList&); protected: FileDialog(); - virtual QString existingDirectory( QWidget* , const QString& , const QString& ); - virtual QString openFileName( QWidget* ,const QString& ,const QString& ,const QString& , QString* ); - virtual QStringList openFileNames( QWidget* , const QString& , const QString& ,const QString& , QString* ); - virtual QString saveFileName ( QWidget* , const QString& ,const QString& , const QString& , QString* ); + virtual QString existingDirectory(QWidget *parent, + const QString &caption, + const QString &dir); + + virtual QString openFileName( QWidget *parent, + const QString &caption, + const QString &dir, + const QString &filter, + QString *selectedFilter); + + virtual QStringList openFileNames(QWidget *parent, + const QString &caption, + const QString &dir, + const QString &filter, + QString *selectedFilter); + + virtual QString saveFileName ( QWidget *parent , + const QString &caption, + const QString &dir, + const QString &filter , + QString *selectedFilter); + virtual bool modal()const { return TRUE; - } + }; + virtual ~FileDialog() { ; - } - void init(QObject* receiver, const char* member); - virtual void raise(const QString& = QString(),Mode = AddFiles,const QStringList& = QStringList()) + }; + + void init(QObject* receiver, const char* member, QString *dir); + + virtual void raise(const QString &dir = QString(), + Mode mode = AddFiles, + const QString &caption = QString(), + const QStringList &mask = QStringList()) { - ; + Q_UNUSED(dir); + Q_UNUSED(mode); + Q_UNUSED(caption); + Q_UNUSED(mask); } - static bool registerFactory(FileDialogFactory*); -public: - static void registerBuiltinFactories(); - static void registerExternalFactories(); -protected: static FileDialog* instance(); static FileDialog* defaultInstance(); + static bool registerFactory(FileDialogFactory *factory, const QString &name); + static void registerBuiltinFactories(); + static void registerExternalFactories(); + +private slots: + void updateLastDir(const QStringList&); + private: static QMap <QString,FileDialogFactory*> factories; static FileDialog* _instance; static QString m_current_factory; bool m_initialized; + QString *m_lastDir; }; -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - - -interface FileDialogFactory -{ - virtual FileDialog* create() = 0; - virtual QString name() = 0; - virtual ~FileDialogFactory() - { - ; - } -}; - -Q_DECLARE_INTERFACE(FileDialogFactory, "FileDialogFactory/1.0"); - - -//////////////////////////////////////////// QT FILE DIALOG //////////////////////////////////////////////////////////////////// - -class QtFileDialog : public FileDialog -{ -public: - virtual ~QtFileDialog(); - virtual QString existingDirectory(QWidget * parent , const QString & , const QString & dir); - virtual QString openFileName(QWidget * parent,const QString & caption,const QString & dir,const QString & filter, - QString * selectedFilter); - virtual QStringList openFileNames(QWidget * parent, const QString & caption , const QString & dir , - const QString & filter, QString * selectedFilter); - virtual QString saveFileName ( QWidget * parent, const QString & caption, - const QString & dir, const QString & filter, QString * selectedFilter); -}; - - -class QtFileDialogFactory : public QObject, public FileDialogFactory -{ - Q_OBJECT - Q_INTERFACES(FileDialogFactory); -public: - virtual FileDialog* create(); - virtual QString name(); - virtual ~QtFileDialogFactory() - { - ; - } - static QString QtFileDialogFactoryName; -}; - - #endif |
