aboutsummaryrefslogtreecommitdiff
path: root/src/ui
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/ui
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/ui')
-rw-r--r--src/ui/CMakeLists.txt2
-rw-r--r--src/ui/configdialog.cpp2
-rw-r--r--src/ui/eqwidget.cpp2
-rw-r--r--src/ui/filedialog.cpp296
-rw-r--r--src/ui/filedialog.h109
-rw-r--r--src/ui/mainwindow.cpp8
-rw-r--r--src/ui/ui.pro2
7 files changed, 7 insertions, 414 deletions
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt
index d20634781..23da7421a 100644
--- a/src/ui/CMakeLists.txt
+++ b/src/ui/CMakeLists.txt
@@ -48,7 +48,6 @@ SET(ui_SRCS
eqslider.cpp
eqtitlebar.cpp
eqwidget.cpp
- filedialog.cpp
fileloader.cpp
jumptotrackdialog.cpp
keyboardmanager.cpp
@@ -102,7 +101,6 @@ SET(ui_MOC_HDRS
eqtitlebar.h
eqwidget.h
fft.h
- filedialog.h
fileloader.h
inlines.h
jumptotrackdialog.h
diff --git a/src/ui/configdialog.cpp b/src/ui/configdialog.cpp
index 9c5566f33..eac2272a6 100644
--- a/src/ui/configdialog.cpp
+++ b/src/ui/configdialog.cpp
@@ -36,10 +36,10 @@
#include <qmmpui/generalfactory.h>
#include <qmmpui/general.h>
#include <qmmpui/generalhandler.h>
+#include <qmmpui/filedialog.h>
#include "skin.h"
-#include "filedialog.h"
#include "pluginitem.h"
#include "configdialog.h"
#include "skinreader.h"
diff --git a/src/ui/eqwidget.cpp b/src/ui/eqwidget.cpp
index 7fcabfedd..459d99974 100644
--- a/src/ui/eqwidget.cpp
+++ b/src/ui/eqwidget.cpp
@@ -22,8 +22,8 @@
#include <QMenu>
#include <QInputDialog>
#include <QCloseEvent>
+#include <qmmpui/filedialog.h>
-#include "filedialog.h"
#include "skin.h"
#include "eqslider.h"
#include "eqtitlebar.h"
diff --git a/src/ui/filedialog.cpp b/src/ui/filedialog.cpp
deleted file mode 100644
index 0c844e8db..000000000
--- a/src/ui/filedialog.cpp
+++ /dev/null
@@ -1,296 +0,0 @@
-#include "filedialog.h"
-
-#include <QSettings>
-
-
-#include <QApplication>
-#include <QPluginLoader>
-
-
-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-
-#include "playlistmodel.h"
-
-FileDialog* FileDialog::_instance = 0;
-
-QMap<QString,FileDialogFactory*> FileDialog::factories = QMap<QString,FileDialogFactory*>();
-
-FileDialog::FileDialog() : QObject(), m_initialized(false)
-{
-}
-
-
-bool FileDialog::isModal()
-{
- return instance()->modal();
-}
-
-
-void FileDialog::init(QObject* o)
-{
- if(!m_initialized && !instance()->modal())
- {
- PlayListModel* model = NULL;
- if( ( model = qobject_cast<PlayListModel*>(o)) )
- {
- connect(this,SIGNAL(filesAdded(const QStringList&)),model,SLOT(addFileList(const QStringList&)));
- m_initialized = true;
- }
- }
-}
-
-
-
-QString FileDialog::getExistingDirectory( QWidget * parent, const QString & caption, const QString & dir,bool def)
-{
- QString s;
- if(def)
- s = defaultInstance()->existingDirectory(parent,caption,dir);
- else
- s = instance()->existingDirectory(parent,caption,dir);
- delete _instance;
- _instance = 0;
- return s;
-}
-
-QString FileDialog::getOpenFileName(QWidget * parent,
- const QString & caption,
- const QString & dir,
- const QString & filter,
- QString * selectedFilter,bool def)
-{
- QString s;
- if(def)
- s = defaultInstance()->openFileName(parent,caption,dir,filter,selectedFilter);
- else
- s = instance()->openFileName(parent,caption,dir,filter,selectedFilter);
- delete _instance;
- _instance = 0;
- return s;
-}
-
-QStringList FileDialog::getOpenFileNames(QWidget * parent, const QString & caption , const QString & dir ,
- const QString & filter, QString * selectedFilter,bool def)
-{
- QStringList sl;
- if(def)
- sl = defaultInstance()->openFileNames(parent,caption ,dir ,filter, selectedFilter);
- else
- sl = instance()->openFileNames(parent,caption,dir,filter,selectedFilter);
- delete _instance;
- _instance = 0;
- return sl;
-}
-
-QString FileDialog::getSaveFileName ( QWidget * parent, const QString & caption,
- const QString & dir, const QString & filter, QString * selectedFilter,bool def)
-{
- QString s;
- if(def)
- s = defaultInstance()->saveFileName(parent,caption,dir,filter,selectedFilter);
- else
- s = instance()->saveFileName(parent,caption,dir,filter,selectedFilter);
- delete _instance;
- _instance = 0;
- return s;
-}
-
-
-QString FileDialog::existingDirectory(QWidget *, const QString &, const QString &)
-{
- return QString();
-}
-
-QString FileDialog::openFileName(QWidget *, const QString &, const QString &, const QString &, QString *)
-{
- return QString();
-}
-
-QStringList FileDialog::openFileNames(QWidget *, const QString &, const QString &, const QString &, QString *)
-{
- return QStringList();
-}
-
-QString FileDialog::saveFileName(QWidget *, const QString &, const QString &, const QString &, QString *)
-{
- return QString();
-}
-
-
-void FileDialog::registerBuiltinFactories()
-{
- registerFactory(new QtFileDialogFactory());
- //registerFactory(new QmmpFileDialogFactory());
-}
-
-void FileDialog::registerExternalFactories()
-{
- QDir pluginsDir (QDir::homePath()+"/.qmmp/plugins/FileDialogs");
-
- foreach (QString fileName, pluginsDir.entryList(QDir::Files))
- {
- QPluginLoader loader(pluginsDir.absoluteFilePath(fileName));
- QObject *plugin = loader.instance();
- if (loader.isLoaded())
- qDebug("FileDialog: plugin loaded - %s", qPrintable(fileName));
- else
- qDebug("FileDialog: %s",qPrintable(loader.errorString()));
-
- FileDialogFactory *fct = 0;
- if (plugin)
- fct = qobject_cast<FileDialogFactory *>(plugin);
-
- if (fct)
- if (!registerFactory(fct))
- qDebug("Warning: Plugin with name %s is already registered...",
- qPrintable(fct->name()));
- }
-}
-
-bool FileDialog::registerFactory(FileDialogFactory *f)
-{
- QString name = f->name();
- if (!factories.contains(name))
- {
- factories.insert(name,f);
- return true;
- }
- return false;
-}
-
-QString FileDialog::m_current_factory = QString();
-
-FileDialog* FileDialog::instance()
-{
- if(_instance && _instance->modal())
- {
- delete _instance;
- _instance = 0;
- }
-
- if(factories.isEmpty())
- {
- registerBuiltinFactories();
- registerExternalFactories();
- }
-
- QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
- QString f_dialogName =
- settings.value("FileDialog",QtFileDialogFactory::QtFileDialogFactoryName).toString();
-
- QStringList names = factories.keys();
-
- if(m_current_factory != f_dialogName || !_instance)
- {
- if(_instance)
- delete _instance;
-
- foreach(QString name,names)
- {
- if(name == f_dialogName)
- {
- _instance = factories[name]->create();
- m_current_factory = f_dialogName;
- break;
- }
- }
-
- if(!_instance)
- _instance = factories[QtFileDialogFactory::QtFileDialogFactoryName]->create();
- }
- //else if(!_instance->modal())
- //return _instance;
- // _instance->raise();
- return _instance;
-
-}
-
-FileDialog* FileDialog::defaultInstance()
-{
- if(_instance)
- {
- delete _instance;
- _instance = 0;
- }
-
- if(factories.isEmpty())
- {
- registerBuiltinFactories();
- registerExternalFactories();
- }
-
- _instance = factories[QtFileDialogFactory::QtFileDialogFactoryName]->create();
-
- return _instance;
-}
-
-QStringList FileDialog::registeredFactories()
-{
- if(factories.isEmpty())
- {
- registerBuiltinFactories();
- registerExternalFactories();
- }
- return factories.keys();
-}
-
-
-void FileDialog::popup(QObject* o,const QString& d,Mode m,const QStringList& f)
-{
- FileDialog* inst = instance();
- inst->init(o);
- inst->raise(d,m,f);
-}
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-
-
-QtFileDialog::~QtFileDialog()
-{
- qWarning("QtFileDialog::~QtFileDialog()");
-}
-
-QString QtFileDialog::existingDirectory(QWidget * parent, const QString & caption, const QString & dir)
-{
- return QFileDialog::getExistingDirectory(parent,caption,dir,QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly);
-}
-
-QString QtFileDialog::openFileName(QWidget * parent,const QString & caption,const QString & dir,const QString & filter,
- QString * 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);
-}
-
-
-
-
-
-
-FileDialog* QtFileDialogFactory::create()
-{
- return new QtFileDialog();
-}
-
-QString QtFileDialogFactory::name()
-{
- return QtFileDialogFactoryName;
-}
-
-QString QtFileDialogFactory::QtFileDialogFactoryName = "Qt File Dialog";
-
-
diff --git a/src/ui/filedialog.h b/src/ui/filedialog.h
deleted file mode 100644
index f8e6c4f93..000000000
--- a/src/ui/filedialog.h
+++ /dev/null
@@ -1,109 +0,0 @@
-#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(QObject* ,const QString& = QString(),Mode = AddFiles,const QStringList& nameFilters = QStringList());
- 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*);
- 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
-
-
diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
index e80ea9cd1..14f56ec47 100644
--- a/src/ui/mainwindow.cpp
+++ b/src/ui/mainwindow.cpp
@@ -31,6 +31,7 @@
#include <qmmpui/playlistparser.h>
#include <qmmpui/playlistformat.h>
#include <qmmpui/commandlinemanager.h>
+#include <qmmpui/filedialog.h>
#include "textscroller.h"
#include "mainwindow.h"
@@ -45,7 +46,6 @@
#include "jumptotrackdialog.h"
#include "aboutdialog.h"
#include "addurldialog.h"
-#include "filedialog.h"
#include "listwidget.h"
#include "visualmenu.h"
#include "builtincommandlineoption.h"
@@ -458,7 +458,8 @@ void MainWindow::addDir()
m_lastDir = s+"../";
}
else
- FileDialog::popup(m_playListModel,m_lastDir,FileDialog::AddDirs,Decoder::nameFilters());
+ FileDialog::popup(m_lastDir,FileDialog::AddDirs,Decoder::nameFilters(),
+ m_playListModel, SLOT(addFileList(const QStringList&)));
}
void MainWindow::addFile()
@@ -497,7 +498,8 @@ void MainWindow::addFile()
m_lastDir = files.at(0);
}
else
- FileDialog::popup(m_playListModel,m_lastDir,FileDialog::AddFiles,Decoder::nameFilters());
+ FileDialog::popup(m_lastDir,FileDialog::AddFiles,Decoder::nameFilters(),
+ m_playListModel, SLOT(addFileList(const QStringList&)));
}
diff --git a/src/ui/ui.pro b/src/ui/ui.pro
index cd28f33a4..e6ac09941 100644
--- a/src/ui/ui.pro
+++ b/src/ui/ui.pro
@@ -53,7 +53,6 @@ HEADERS += mainwindow.h \
aboutdialog.h \
timeindicator.h \
keyboardmanager.h \
- filedialog.h \
unixdomainsocket.h \
addurldialog.h \
skinreader.h \
@@ -105,7 +104,6 @@ SOURCES += mainwindow.cpp \
aboutdialog.cpp \
timeindicator.cpp \
keyboardmanager.cpp \
- filedialog.cpp \
unixdomainsocket.cpp \
addurldialog.cpp \
skinreader.cpp \