aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-09-03 19:09:07 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-09-03 19:09:07 +0000
commitc88e5e9cf4c7526609834993e4f5dd9f5ae2c931 (patch)
tree2d6fc5edf75542dc31be580fdec1966311a9404b
parent37b7bcea340dcde81e95fb55a99d9e89967ebafb (diff)
downloadqmmp-c88e5e9cf4c7526609834993e4f5dd9f5ae2c931.tar.gz
qmmp-c88e5e9cf4c7526609834993e4f5dd9f5ae2c931.tar.bz2
qmmp-c88e5e9cf4c7526609834993e4f5dd9f5ae2c931.zip
added file dialog plugin path; file dialog api cleanup
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2929 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.cpp12
-rw-r--r--src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.h5
-rw-r--r--src/qmmpui/configdialog.cpp4
-rw-r--r--src/qmmpui/filedialog.cpp347
-rw-r--r--src/qmmpui/filedialog.h99
-rw-r--r--src/qmmpui/filedialogfactory.h13
-rw-r--r--src/qmmpui/pluginitem.cpp2
-rw-r--r--src/qmmpui/qtfiledialog.cpp3
-rw-r--r--src/qmmpui/qtfiledialog_p.h6
9 files changed, 214 insertions, 277 deletions
diff --git a/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.cpp b/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.cpp
index bf2bf97eb..a358d6d7d 100644
--- a/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.cpp
+++ b/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.cpp
@@ -1,5 +1,5 @@
/**************************************************************************
-* Copyright (C) 2008 by Ilya Kotov *
+* Copyright (C) 2008-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -25,8 +25,6 @@
#include "qmmpfiledialogimpl.h"
#include "qmmpfiledialog.h"
-
-
QmmpFileDialog::QmmpFileDialog()
{
m_dialog = new QmmpFileDialogImpl();
@@ -37,11 +35,6 @@ void QmmpFileDialog::handleSelected(/*const QStringList& s */)
{
}
-bool QmmpFileDialog::modal()const
-{
- return false;
-}
-
QmmpFileDialog::~QmmpFileDialog()
{
qWarning("QmmpFileDialog::~QmmpFileDialog()");
@@ -120,7 +113,8 @@ const FileDialogProperties QmmpFileDialogFactory::properties() const
FileDialogProperties properties;
properties.name = tr("Qmmp File Dialog");
properties.shortName = "qmmp_dialog";
- properties.hasAbout =true;
+ properties.hasAbout = true;
+ properties.modal = false;
return properties;
}
diff --git a/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.h b/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.h
index 835d58332..d727ca721 100644
--- a/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.h
+++ b/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.h
@@ -1,5 +1,5 @@
/**************************************************************************
-* Copyright (C) 2008 by Ilya Kotov *
+* Copyright (C) 2008-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -32,7 +32,6 @@ class QmmpFileDialog : public FileDialog
public:
QmmpFileDialog();
virtual ~QmmpFileDialog();
- bool modal()const;
void raise(const QString &dir = QString(),
Mode mode = AddFiles,
@@ -74,7 +73,7 @@ private:
class QmmpFileDialogFactory : public QObject, public FileDialogFactory
{
Q_OBJECT
- Q_INTERFACES(FileDialogFactory);
+ Q_INTERFACES(FileDialogFactory)
public:
virtual FileDialog* create();
virtual const FileDialogProperties properties() const;
diff --git a/src/qmmpui/configdialog.cpp b/src/qmmpui/configdialog.cpp
index f97b9aa06..38458baaa 100644
--- a/src/qmmpui/configdialog.cpp
+++ b/src/qmmpui/configdialog.cpp
@@ -238,9 +238,9 @@ void ConfigDialog::loadPluginsInfo()
load file dialogs information
*/
item = new QTreeWidgetItem (m_ui->treeWidget, QStringList() << tr("File Dialogs"));
- foreach(FileDialogFactory *factory, FileDialog::registeredFactories())
+ foreach(FileDialogFactory *factory, *FileDialog::factories())
{
- new PluginItem (item, factory, "Unknown");
+ new PluginItem (item, factory, FileDialog::file(factory));
}
m_ui->treeWidget->addTopLevelItem(item);
item->setExpanded(true);
diff --git a/src/qmmpui/filedialog.cpp b/src/qmmpui/filedialog.cpp
index 9408ab881..75befcd7e 100644
--- a/src/qmmpui/filedialog.cpp
+++ b/src/qmmpui/filedialog.cpp
@@ -30,132 +30,20 @@
#include "qtfiledialog_p.h"
-FileDialog* FileDialog::_instance = 0;
+//static functions
+FileDialog* FileDialog::m_instance = 0;
+QList<FileDialogFactory*> *FileDialog::m_factories = 0;
+QHash <FileDialogFactory*, QString> *FileDialog::m_files = 0;
+FileDialogFactory *FileDialog::m_currentFactory = 0;
-QMap<QString,FileDialogFactory*> FileDialog::factories = QMap<QString,FileDialogFactory*>();
-
-FileDialog::FileDialog() : QObject(), m_initialized(false)
-{
- m_lastDir = 0;
-}
-
-bool FileDialog::isModal()
-{
- return instance()->modal();
-}
-
-void FileDialog::setEnabled(FileDialogFactory *factory)
-{
- if (factories.isEmpty())
- {
- registerBuiltinFactories();
- registerExternalFactories();
- }
- QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- settings.setValue("FileDialog", factories.key(factory));
-}
-
-bool FileDialog::isEnabled(FileDialogFactory *factory)
-{
- if (factories.isEmpty())
- {
- registerBuiltinFactories();
- registerExternalFactories();
- }
- QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- QString f_dialogName = settings.value("FileDialog", "qt_dialog").toString();
- return factories.value(f_dialogName) == factory;
-}
-
-void FileDialog::init(QObject* receiver, const char* member, QString *dir)
-{
- m_lastDir = dir;
- if (m_initialized)
- disconnect();
- if (receiver && member)
- {
- connect(this,SIGNAL(filesAdded(const QStringList&)), receiver, member);
- connect(this,SIGNAL(filesAdded(const QStringList&)), SLOT(updateLastDir(const QStringList&)));
- m_initialized = true;
- }
-}
-
-QString FileDialog::getExistingDirectory(QWidget *parent,
- const QString &caption,
- const QString &dir)
-{
- return instance()->existingDirectory(parent,caption,dir);
-}
-
-QString FileDialog::getOpenFileName(QWidget *parent,
- const QString &caption,
- const QString &dir,
- const QString &filter,
- QString *selectedFilter)
-{
- return instance()->openFileName(parent,caption,dir,filter,selectedFilter);
-}
-
-QStringList FileDialog::getOpenFileNames(QWidget *parent, const QString &caption,
- const QString &dir,const QString &filter,
- QString *selectedFilter)
+void FileDialog::checkFactories()
{
- return instance()->openFileNames(parent,caption,dir,filter,selectedFilter);
-}
-
-QString FileDialog::getSaveFileName (QWidget *parent, const QString &caption,
- const QString& dir, const QString &filter,
- QString *selectedFilter)
-{
- return instance()->saveFileName(parent,caption,dir,filter,selectedFilter);
-}
-
-//virtual
-QString FileDialog::existingDirectory(QWidget *parent, const QString &caption, const QString &dir)
-{
- FileDialog *instance = FileDialog::defaultInstance();
- QString dir_path = instance->existingDirectory(parent, caption, dir);
- delete instance;
- return dir_path;
-}
-
-QString FileDialog::openFileName(QWidget *parent, const QString &caption, const QString &dir,
- const QString &filter, QString *selectedFilter)
-{
- FileDialog *instance = FileDialog::defaultInstance();
- QString file_path = instance->openFileName(parent, caption, dir, filter, selectedFilter);
- delete instance;
- return file_path;
-}
+ if(m_factories)
+ return;
-QStringList FileDialog::openFileNames(QWidget *parent, const QString &caption, const QString &dir,
- const QString &filter, QString *selectedFilter)
-{
- FileDialog *instance = FileDialog::defaultInstance();
- QStringList list = instance->openFileNames(parent, caption, dir, filter, selectedFilter);
- delete instance;
- return list;
-}
-
-QString FileDialog::saveFileName(QWidget *parent, const QString &caption, const QString &dir,
- const QString &filter, QString *selectedFilter)
-{
- FileDialog *instance = FileDialog::defaultInstance();
- QString file_path = instance->saveFileName(parent, caption, dir, filter, selectedFilter);
- delete instance;
- return file_path;
-}
-
-
-void FileDialog::registerBuiltinFactories()
-{
- FileDialogFactory *fct = new QtFileDialogFactory();
- qApp->installTranslator(fct->createTranslator(qApp));
- registerFactory(fct);
-}
-
-void FileDialog::registerExternalFactories()
-{
+ m_factories = new QList<FileDialogFactory *>;
+ m_files = new QHash <FileDialogFactory*, QString>;
+ m_factories->append(new QtFileDialogFactory);
QDir pluginsDir (Qmmp::pluginsPath());
pluginsDir.cd("FileDialogs");
foreach (QString fileName, pluginsDir.entryList(QDir::Files))
@@ -165,18 +53,17 @@ void FileDialog::registerExternalFactories()
if (loader.isLoaded())
qDebug("FileDialog: loaded plugin %s", qPrintable(fileName));
else
- qDebug("FileDialog: %s",qPrintable(loader.errorString()));
+ qWarning("FileDialog: %s",qPrintable(loader.errorString()));
- FileDialogFactory *fct = 0;
+ FileDialogFactory *factory = 0;
if (plugin)
- fct = qobject_cast<FileDialogFactory *>(plugin);
+ factory = qobject_cast<FileDialogFactory *>(plugin);
- if (fct)
+ if (factory)
{
- if (!registerFactory(fct))
- qDebug("Warning: Plugin with name %s is already registered...",
- qPrintable(fileName));
- qApp->installTranslator(fct->createTranslator(qApp));
+ m_factories->append(factory);
+ m_files->insert(factory, fileName);
+ qApp->installTranslator(factory->createTranslator(qApp));
}
}
#ifndef Q_OS_WIN32
@@ -199,76 +86,61 @@ void FileDialog::registerExternalFactories()
#endif
}
-bool FileDialog::registerFactory(FileDialogFactory *factory)
+QList <FileDialogFactory*> *FileDialog::factories()
{
- if (!factories.contains(factory->properties().shortName))
- {
- factories.insert(factory->properties().shortName, factory);
- return true;
- }
- return false;
+ checkFactories();
+ return m_factories;
}
-QString FileDialog::m_current_factory = QString();
-
-FileDialog* FileDialog::instance()
+void FileDialog::setEnabled(FileDialogFactory *factory)
{
- if (factories.isEmpty())
- {
- registerBuiltinFactories();
- registerExternalFactories();
- }
-
+ checkFactories();
QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- QString f_dialogName = settings.value("FileDialog", "qt_dialog").toString();
-
- QStringList names = factories.keys();
+ settings.setValue("FileDialog", factory->properties().shortName);
+}
- if (!names.contains(f_dialogName))
- f_dialogName = "qt_dialog";
+bool FileDialog::isEnabled(FileDialogFactory *factory)
+{
+ checkFactories();
+ QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
+ QString name = settings.value("FileDialog", "qt_dialog").toString();
+ return factory->properties().shortName == name;
+}
- if (m_current_factory != f_dialogName || !_instance)
- {
- if (_instance)
- {
- delete _instance;
- _instance = 0;
- }
+QString FileDialog::file(FileDialogFactory *factory)
+{
+ checkFactories();
+ return m_files->value(factory);
+}
- foreach(QString name,names)
- {
- if (name == f_dialogName)
- {
- _instance = factories[name]->create();
- m_current_factory = f_dialogName;
- break;
- }
- }
+QString FileDialog::getExistingDirectory(QWidget *parent,
+ const QString &caption,
+ const QString &dir)
+{
+ return instance()->existingDirectory(parent,caption,dir);
+}
- if (!_instance)
- _instance = factories["qt_dialog"]->create();
- }
- return _instance;
+QString FileDialog::getOpenFileName(QWidget *parent,
+ const QString &caption,
+ const QString &dir,
+ const QString &filter,
+ QString *selectedFilter)
+{
+ return instance()->openFileName(parent,caption,dir,filter,selectedFilter);
}
-FileDialog* FileDialog::defaultInstance()
+QStringList FileDialog::getOpenFileNames(QWidget *parent, const QString &caption,
+ const QString &dir,const QString &filter,
+ QString *selectedFilter)
{
- if (factories.isEmpty())
- {
- registerBuiltinFactories();
- registerExternalFactories();
- }
- return factories["qt_dialog"]->create();
+ return instance()->openFileNames(parent,caption,dir,filter,selectedFilter);
}
-QList <FileDialogFactory*> FileDialog::registeredFactories()
+QString FileDialog::getSaveFileName (QWidget *parent, const QString &caption,
+ const QString& dir, const QString &filter,
+ QString *selectedFilter)
{
- if (factories.isEmpty())
- {
- registerBuiltinFactories();
- registerExternalFactories();
- }
- return factories.values();
+ return instance()->saveFileName(parent,caption,dir,filter,selectedFilter);
}
void FileDialog::popup(QWidget *parent,
@@ -285,7 +157,7 @@ void FileDialog::popup(QWidget *parent,
FileDialog* inst = instance();
inst->setParent(parent);
inst->init(receiver, member, dir);
- if (!inst->modal())
+ if (!m_currentFactory->properties().modal)
inst->raise(*dir, m, caption, filters.split(";;"));
else
{
@@ -305,6 +177,107 @@ void FileDialog::popup(QWidget *parent,
}
}
+FileDialog* FileDialog::instance()
+{
+ checkFactories();
+ FileDialogFactory *selected = 0;
+
+ QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
+ QString name = settings.value("FileDialog", "qt_dialog").toString();
+ foreach(FileDialogFactory *factory, *m_factories)
+ {
+ if(factory->properties().shortName == name)
+ {
+ selected = factory;
+ break;
+ }
+ }
+
+ if(!selected)
+ selected = m_factories->at(0);
+
+ if(selected == m_currentFactory && m_instance)
+ return m_instance;
+
+ if(m_instance)
+ {
+ delete m_instance;
+ m_instance = 0;
+ }
+
+ m_currentFactory = selected;
+ m_instance = m_currentFactory->create();
+ return m_instance;
+}
+
+FileDialog* FileDialog::createDefault()
+{
+ return m_factories->at(0)->create();
+}
+
+//base implementation
+FileDialog::FileDialog() : QObject(), m_initialized(false)
+{
+ m_lastDir = 0;
+}
+
+FileDialog::~FileDialog() {}
+
+void FileDialog::raise(const QString &dir, Mode mode, const QString &caption, const QStringList &mask)
+{
+ Q_UNUSED(dir);
+ Q_UNUSED(mode);
+ Q_UNUSED(caption);
+ Q_UNUSED(mask);
+}
+
+QString FileDialog::existingDirectory(QWidget *parent, const QString &caption, const QString &dir)
+{
+ FileDialog *instance = FileDialog::createDefault();
+ QString dir_path = instance->existingDirectory(parent, caption, dir);
+ delete instance;
+ return dir_path;
+}
+
+QString FileDialog::openFileName(QWidget *parent, const QString &caption, const QString &dir,
+ const QString &filter, QString *selectedFilter)
+{
+ FileDialog *instance = FileDialog::createDefault();
+ QString file_path = instance->openFileName(parent, caption, dir, filter, selectedFilter);
+ delete instance;
+ return file_path;
+}
+
+QStringList FileDialog::openFileNames(QWidget *parent, const QString &caption, const QString &dir,
+ const QString &filter, QString *selectedFilter)
+{
+ FileDialog *instance = FileDialog::createDefault();
+ QStringList list = instance->openFileNames(parent, caption, dir, filter, selectedFilter);
+ delete instance;
+ return list;
+}
+
+QString FileDialog::saveFileName(QWidget *parent, const QString &caption, const QString &dir,
+ const QString &filter, QString *selectedFilter)
+{
+ FileDialog *instance = FileDialog::createDefault();
+ QString file_path = instance->saveFileName(parent, caption, dir, filter, selectedFilter);
+ delete instance;
+ return file_path;
+}
+
+void FileDialog::init(QObject* receiver, const char* member, QString *dir)
+{
+ m_lastDir = dir;
+ if (m_initialized)
+ disconnect();
+ if (receiver && member)
+ {
+ connect(this,SIGNAL(filesAdded(const QStringList&)), receiver, member);
+ connect(this,SIGNAL(filesAdded(const QStringList&)), SLOT(updateLastDir(const QStringList&)));
+ m_initialized = true;
+ }
+}
void FileDialog::updateLastDir(const QStringList& list)
{
diff --git a/src/qmmpui/filedialog.h b/src/qmmpui/filedialog.h
index 766feb4cc..73ec61b79 100644
--- a/src/qmmpui/filedialog.h
+++ b/src/qmmpui/filedialog.h
@@ -1,5 +1,5 @@
/**************************************************************************
-* Copyright (C) 2008-2009 by Ilya Kotov *
+* Copyright (C) 2008-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -23,13 +23,10 @@
#include <QString>
#include <QStringList>
-
#include <QFileDialog>
-#include <QMap>
-
+#include <QHash>
#include "filedialogfactory.h"
-
/*! @brief The FileDialog class is the base interface class of the file dialogs.
* @author Vladimir Kuznetsov <vovanec@gmail.com>
*/
@@ -38,6 +35,23 @@ class FileDialog : public QObject
Q_OBJECT
public:
/*!
+ * Returns a list of registered file dialog factories.
+ */
+ static QList <FileDialogFactory*> *factories();
+ /*!
+ * Selects current file dialog factory.
+ */
+ static void setEnabled(FileDialogFactory *factory);
+ /*!
+ * Returns \b true if file dialog \b factory is used by default, otherwise returns \b false
+ */
+ static bool isEnabled(FileDialogFactory *factory);
+ /*!
+ * Returns plugin file path.
+ * @param factory File dialog plugin factory.
+ */
+ static QString file(FileDialogFactory *factory);
+ /*!
* Enum of available file dialog modes
*/
enum Mode
@@ -127,28 +141,13 @@ public:
const char *member = 0,
const QString &caption = QString(),
const QString &filters = QString());
- /*!
- * Returns a list of registered file dialog factories.
- */
- static QList <FileDialogFactory*> registeredFactories();
- /*!
- * Returns \b true if selected file dialog doesn't support nonmodal mode, otherwise returns \b false
- */
- static bool isModal();
- /*!
- * Selects current file dialog factory.
- */
- static void setEnabled(FileDialogFactory *factory);
- /*!
- * Returns \b true if file dialog \b factory is used by default, otherwise returns \b false
- */
- static bool isEnabled(FileDialogFactory *factory);
signals:
/*!
* Emitted when the add button has pressed. Subclass should emit this signal.
*/
void filesAdded(const QStringList&);
+
protected:
/*!
* Object constructor.
@@ -208,26 +207,12 @@ protected:
* (example: "Audio (*.mp3 *.ogg);;Text files (*.txt);;XML files (*.xml)").
* @param selectedFilter Default selected filter.
*/
- virtual QString saveFileName ( QWidget *parent ,
- const QString &caption,
- const QString &dir,
- const QString &filter ,
- QString *selectedFilter);
- /*!
- * Returns \b true if file dialog doesn't support nonmodal mode, otherwise returns \b false
- * Subclass should reimplement this function.
- */
- virtual bool modal()const
- {
- return true;
- }
+ virtual QString saveFileName (QWidget *parent, const QString &caption, const QString &dir,
+ const QString &filter, QString *selectedFilter);
/*!
* Object destructor
*/
- virtual ~FileDialog()
- {
- ;
- };
+ virtual ~FileDialog();
/*!
* Opens nonmodal file dialog. Selected file dialog should support nonmodal mode.
* Otherwise this function does nothing.
@@ -237,40 +222,22 @@ protected:
* @param caption Dialog title.
* @param mask Filer used by file dialog
*/
- 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);
- }
- /*!
- * Returns a pointer to the selected file dialog instance.
- */
- static FileDialog* instance();
- /*!
- * Returns a pointer to the default file dialog instance.
- */
- static FileDialog* defaultInstance();
- /*!
- * Registers file dialog \b factory
- * Returns \b false if \b factory is already registered, otherwise returns \b true
- */
- static bool registerFactory(FileDialogFactory *factory);
+ virtual void raise(const QString &dir = QString(), Mode mode = AddFiles,
+ const QString &caption = QString(), const QStringList &mask = QStringList());
private slots:
void updateLastDir(const QStringList&);
private:
+ static void checkFactories();
+ static FileDialog* instance();
+ static FileDialog* createDefault();
+ static QList<FileDialogFactory*> *m_factories;
+ static FileDialogFactory *m_currentFactory;
+ static FileDialog* m_instance;
+ static QHash <FileDialogFactory*, QString> *m_files;
+
void init(QObject* receiver, const char* member, QString *dir);
- static void registerBuiltinFactories();
- static void registerExternalFactories();
- static QMap <QString,FileDialogFactory*> factories;
- static FileDialog* _instance;
- static QString m_current_factory;
bool m_initialized;
QString *m_lastDir;
};
diff --git a/src/qmmpui/filedialogfactory.h b/src/qmmpui/filedialogfactory.h
index deb51ac74..9a1334e32 100644
--- a/src/qmmpui/filedialogfactory.h
+++ b/src/qmmpui/filedialogfactory.h
@@ -26,7 +26,7 @@ class FileDialog;
class QWidget;
class QString;
-/*! @brief Helper class to store file dialog plugin properies.
+/*! @brief Helper class to store file dialog plugin properties.
*/
class FileDialogProperties
{
@@ -37,11 +37,14 @@ public:
FileDialogProperties()
{
hasAbout = false;
+ modal = true;
}
- bool hasAbout; /*!< Should be \b true if the file dialog plugin has about dialog, otherwise should be
- * \b false */
- QString name; /*!< File dialog plugin full name */
- QString shortName; /*!< File dialog short name for internal usage */
+ bool hasAbout; /*!< Should be \b true if the file dialog plugin has about dialog,
+ * otherwise should be \b false */
+ QString name; /*!< File dialog plugin full name */
+ QString shortName; /*!< File dialog short name for internal usage */
+ bool modal; /*!< Should be \b true if the file dialog doesn't support nonmodal mode,
+ * otherwise should be \b false */
};
/*! @brief File dialog plugin interface.
* @author Vladimir Kuznetsov <vovanec@gmail.com>
diff --git a/src/qmmpui/pluginitem.cpp b/src/qmmpui/pluginitem.cpp
index fb97a2df7..98221c69a 100644
--- a/src/qmmpui/pluginitem.cpp
+++ b/src/qmmpui/pluginitem.cpp
@@ -103,7 +103,7 @@ PluginItem::PluginItem(QTreeWidgetItem *parent, OutputFactory *factory, const QS
}
PluginItem::PluginItem(QTreeWidgetItem *parent, FileDialogFactory *factory, const QString &path)
- : QTreeWidgetItem(parent, QStringList() << factory->properties().name << path, FILE_DIALOG)
+ : QTreeWidgetItem(parent, QStringList() << factory->properties().name << path.section('/',-1), FILE_DIALOG)
{
setCheckState(0, FileDialog::isEnabled(factory) ? Qt::Checked : Qt::Unchecked);
m_has_about = factory->properties().hasAbout;
diff --git a/src/qmmpui/qtfiledialog.cpp b/src/qmmpui/qtfiledialog.cpp
index db04f96d1..5bbe13e27 100644
--- a/src/qmmpui/qtfiledialog.cpp
+++ b/src/qmmpui/qtfiledialog.cpp
@@ -34,10 +34,11 @@ const FileDialogProperties QtFileDialogFactory::properties() const
properties.name = tr("Qt File Dialog");
properties.shortName = "qt_dialog";
properties.hasAbout = false;
+ properties.modal = true;
return properties;
}
-void QtFileDialogFactory::showAbout(QWidget*){};
+void QtFileDialogFactory::showAbout(QWidget*){}
QTranslator *QtFileDialogFactory::createTranslator(QObject *parent)
{
diff --git a/src/qmmpui/qtfiledialog_p.h b/src/qmmpui/qtfiledialog_p.h
index d78812e1f..dccc89c46 100644
--- a/src/qmmpui/qtfiledialog_p.h
+++ b/src/qmmpui/qtfiledialog_p.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008 by Ilya Kotov *
+ * Copyright (C) 2008-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -33,9 +33,9 @@ class QTranslator;
class QtFileDialogFactory : public QObject, public FileDialogFactory
{
Q_OBJECT
- Q_INTERFACES(FileDialogFactory);
+ Q_INTERFACES(FileDialogFactory)
public:
- QtFileDialogFactory(){};
+ QtFileDialogFactory(){}
FileDialog* create();
const FileDialogProperties properties() const;
void showAbout(QWidget*);