aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/filedialog.h
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-06-19 13:54:07 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-06-19 13:54:07 +0000
commitc2a415452b1dc62b68cb3f5cd9ca4214e2299e84 (patch)
tree95b8e4df59e5678992e4f13cbeb331feb57bf2d2 /src/qmmpui/filedialog.h
parent41f4d6994cff2aa55638b5b4f47146d82ebf185d (diff)
downloadqmmp-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.h125
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
+
+