From 0d80d978bf3af3345132a98a2abde4e973e1e793 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Mon, 7 Dec 2020 19:51:53 +0000 Subject: library: added settings form git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9580 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/General/library/library.pro | 9 +- src/plugins/General/library/libraryfactory.cpp | 6 +- src/plugins/General/library/settingsdialog.cpp | 33 +++++++ src/plugins/General/library/settingsdialog.h | 27 +++++ src/plugins/General/library/settingsdialog.ui | 131 +++++++++++++++++++++++++ 5 files changed, 201 insertions(+), 5 deletions(-) create mode 100644 src/plugins/General/library/settingsdialog.cpp create mode 100644 src/plugins/General/library/settingsdialog.h create mode 100644 src/plugins/General/library/settingsdialog.ui (limited to 'src/plugins/General') diff --git a/src/plugins/General/library/library.pro b/src/plugins/General/library/library.pro index 4cfcc18fe..ef8527e79 100644 --- a/src/plugins/General/library/library.pro +++ b/src/plugins/General/library/library.pro @@ -5,10 +5,12 @@ TARGET = $$PLUGINS_PREFIX/General/library QT += sql concurrent HEADERS += libraryfactory.h \ - library.h + library.h \ + settingsdialog.h SOURCES += libraryfactory.cpp \ - library.cpp + library.cpp \ + settingsdialog.cpp #RESOURCES = translations/translations.qrc @@ -19,3 +21,6 @@ unix { target.path = $$PLUGIN_DIR/General INSTALLS += target } + +FORMS += \ + settingsdialog.ui diff --git a/src/plugins/General/library/libraryfactory.cpp b/src/plugins/General/library/libraryfactory.cpp index 782d48681..50894cabe 100644 --- a/src/plugins/General/library/libraryfactory.cpp +++ b/src/plugins/General/library/libraryfactory.cpp @@ -22,6 +22,7 @@ #include #include #include "library.h" +#include "settingsdialog.h" //#include "historysettingsdialog.h" #include "libraryfactory.h" @@ -31,7 +32,7 @@ GeneralProperties LibraryFactory::properties() const properties.name = tr("Media Library Plugin"); properties.shortName = "library"; properties.hasAbout = true; - properties.hasSettings = false; + properties.hasSettings = true; properties.visibilityControl = false; return properties; } @@ -43,8 +44,7 @@ QObject *LibraryFactory::create(QObject *parent) QDialog *LibraryFactory::createConfigDialog(QWidget *parent) { - Q_UNUSED(parent); - return nullptr; + return new SettingsDialog(parent); } void LibraryFactory::showAbout(QWidget *parent) diff --git a/src/plugins/General/library/settingsdialog.cpp b/src/plugins/General/library/settingsdialog.cpp new file mode 100644 index 000000000..dd039eaf6 --- /dev/null +++ b/src/plugins/General/library/settingsdialog.cpp @@ -0,0 +1,33 @@ +#include +#include +#include "settingsdialog.h" +#include "ui_settingsdialog.h" + +SettingsDialog::SettingsDialog(QWidget *parent) : + QDialog(parent), + m_ui(new Ui::SettingsDialog) +{ + m_ui->setupUi(this); + m_lastPath = QDir::homePath(); +} + +SettingsDialog::~SettingsDialog() +{ + delete m_ui; +} + +void SettingsDialog::on_addDirButton_clicked() +{ + QString path = FileDialog::getExistingDirectory(this, tr("Select Directories for Scanning"), m_lastPath); + if(!path.isEmpty()) + { + m_ui->dirsListWidget->addItem(path); + m_lastPath = QFileInfo(path).absolutePath(); + } +} + +void SettingsDialog::on_removeDirButton_clicked() +{ + QList items = m_ui->dirsListWidget->selectedItems(); + qDeleteAll(items); +} diff --git a/src/plugins/General/library/settingsdialog.h b/src/plugins/General/library/settingsdialog.h new file mode 100644 index 000000000..e35e7dbb7 --- /dev/null +++ b/src/plugins/General/library/settingsdialog.h @@ -0,0 +1,27 @@ +#ifndef SETTINGSDIALOG_H +#define SETTINGSDIALOG_H + +#include + +namespace Ui { +class SettingsDialog; +} + +class SettingsDialog : public QDialog +{ + Q_OBJECT + +public: + explicit SettingsDialog(QWidget *parent = 0); + ~SettingsDialog(); + +private slots: + void on_addDirButton_clicked(); + void on_removeDirButton_clicked(); + +private: + Ui::SettingsDialog *m_ui; + QString m_lastPath; +}; + +#endif // SETTINGSDIALOG_H diff --git a/src/plugins/General/library/settingsdialog.ui b/src/plugins/General/library/settingsdialog.ui new file mode 100644 index 000000000..e4468b1c8 --- /dev/null +++ b/src/plugins/General/library/settingsdialog.ui @@ -0,0 +1,131 @@ + + + SettingsDialog + + + + 0 + 0 + 423 + 292 + + + + Media Library Settings + + + + 6 + + + 6 + + + 6 + + + + + List of directories for scanning: + + + + + + + + + + Qt::Vertical + + + + 20 + 68 + + + + + + + + Add + + + + .. + + + + + + + Remove + + + + .. + + + + + + + Qt::Vertical + + + + 20 + 68 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + SettingsDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + SettingsDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + -- cgit v1.2.3-13-gbd6f