aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/filedialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui/filedialog.h')
-rw-r--r--src/qmmpui/filedialog.h188
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