diff options
Diffstat (limited to 'src/ui/filedialog.cpp')
| -rw-r--r-- | src/ui/filedialog.cpp | 296 |
1 files changed, 0 insertions, 296 deletions
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"; - - |
