diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-06-19 13:54:07 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2008-06-19 13:54:07 +0000 |
| commit | c2a415452b1dc62b68cb3f5cd9ca4214e2299e84 (patch) | |
| tree | 95b8e4df59e5678992e4f13cbeb331feb57bf2d2 /src/qmmpui/filedialog.h | |
| parent | 41f4d6994cff2aa55638b5b4f47146d82ebf185d (diff) | |
| download | qmmp-c2a415452b1dc62b68cb3f5cd9ca4214e2299e84.tar.gz qmmp-c2a415452b1dc62b68cb3f5cd9ca4214e2299e84.tar.bz2 qmmp-c2a415452b1dc62b68cb3f5cd9ca4214e2299e84.zip | |
enabled qmmp file dialog
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@428 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/filedialog.h')
| -rw-r--r-- | src/qmmpui/filedialog.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/src/qmmpui/filedialog.h b/src/qmmpui/filedialog.h new file mode 100644 index 000000000..cbf9af07b --- /dev/null +++ b/src/qmmpui/filedialog.h @@ -0,0 +1,125 @@ +#ifndef FILEDIALOG_H +#define FILEDIALOG_H + +#include <QString> +#include <QStringList> + +#include <QFileDialog> +#include <QMap> + +#define interface struct + +interface FileDialogFactory; + + +///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////// FILE DIALOG ////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +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(); + + static bool isModal(); + static void popup(const QString& = QString(),Mode = AddFiles,const QStringList& nameFilters = QStringList(), + QObject* receiver = 0, const char* member = 0); +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 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()) + { + ; + } + + static bool registerFactory(FileDialogFactory*); +public: + static void registerBuiltinFactories(); + static void registerExternalFactories(); +protected: + static FileDialog* instance(); + static FileDialog* defaultInstance(); +private: + static QMap <QString,FileDialogFactory*> factories; + static FileDialog* _instance; + static QString m_current_factory; + bool m_initialized; +}; + +///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + + + +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 + + |
