diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-12-07 19:51:53 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-12-07 19:51:53 +0000 |
| commit | 0d80d978bf3af3345132a98a2abde4e973e1e793 (patch) | |
| tree | 56fe11dad1d26e36b1d9b62a19a8daf61fb826f4 /src | |
| parent | 65961a1623e8eb9a264574ad2f4208b1e46c5651 (diff) | |
| download | qmmp-0d80d978bf3af3345132a98a2abde4e973e1e793.tar.gz qmmp-0d80d978bf3af3345132a98a2abde4e973e1e793.tar.bz2 qmmp-0d80d978bf3af3345132a98a2abde4e973e1e793.zip | |
library: added settings form
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9580 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/General/library/library.pro | 9 | ||||
| -rw-r--r-- | src/plugins/General/library/libraryfactory.cpp | 6 | ||||
| -rw-r--r-- | src/plugins/General/library/settingsdialog.cpp | 33 | ||||
| -rw-r--r-- | src/plugins/General/library/settingsdialog.h | 27 | ||||
| -rw-r--r-- | src/plugins/General/library/settingsdialog.ui | 131 |
5 files changed, 201 insertions, 5 deletions
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 <QtPlugin> #include <qmmp/qmmp.h> #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 <QDir> +#include <qmmpui/filedialog.h> +#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<QListWidgetItem *> 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 <QDialog> + +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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>SettingsDialog</class> + <widget class="QDialog" name="SettingsDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>423</width> + <height>292</height> + </rect> + </property> + <property name="windowTitle"> + <string>Media Library Settings</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> + <number>6</number> + </property> + <item row="0" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>List of directories for scanning:</string> + </property> + </widget> + </item> + <item row="1" column="0" rowspan="4"> + <widget class="QListWidget" name="dirsListWidget"/> + </item> + <item row="1" column="1"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>68</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="1"> + <widget class="QToolButton" name="addDirButton"> + <property name="text"> + <string>Add</string> + </property> + <property name="icon"> + <iconset theme="list-add"> + <normaloff>.</normaloff>.</iconset> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="QToolButton" name="removeDirButton"> + <property name="text"> + <string>Remove</string> + </property> + <property name="icon"> + <iconset theme="list-remove"> + <normaloff>.</normaloff>.</iconset> + </property> + </widget> + </item> + <item row="4" column="1"> + <spacer name="verticalSpacer_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>68</height> + </size> + </property> + </spacer> + </item> + <item row="5" column="0" colspan="2"> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>SettingsDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>248</x> + <y>254</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>SettingsDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>316</x> + <y>260</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui> |
