aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-12-07 19:51:53 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-12-07 19:51:53 +0000
commit0d80d978bf3af3345132a98a2abde4e973e1e793 (patch)
tree56fe11dad1d26e36b1d9b62a19a8daf61fb826f4 /src/plugins/General
parent65961a1623e8eb9a264574ad2f4208b1e46c5651 (diff)
downloadqmmp-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/plugins/General')
-rw-r--r--src/plugins/General/library/library.pro9
-rw-r--r--src/plugins/General/library/libraryfactory.cpp6
-rw-r--r--src/plugins/General/library/settingsdialog.cpp33
-rw-r--r--src/plugins/General/library/settingsdialog.h27
-rw-r--r--src/plugins/General/library/settingsdialog.ui131
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>