aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/General/library/library.cpp19
-rw-r--r--src/plugins/General/library/libraryfactory.cpp2
-rw-r--r--src/plugins/General/library/librarywidget.cpp2
-rw-r--r--src/plugins/General/library/settingsdialog.cpp6
-rw-r--r--src/plugins/General/library/settingsdialog.ui102
5 files changed, 86 insertions, 45 deletions
diff --git a/src/plugins/General/library/library.cpp b/src/plugins/General/library/library.cpp
index b174f4fa8..9c9582e9f 100644
--- a/src/plugins/General/library/library.cpp
+++ b/src/plugins/General/library/library.cpp
@@ -55,7 +55,7 @@ Library::Library(QPointer<LibraryWidget> *libraryWidget, QObject *parent) :
if(createTables())
qDebug("Library: database initialization finished");
else
- qWarning("Library: plugin is disabled");
+ qWarning("Library: unable to create table");
}
}
QSqlDatabase::removeDatabase(CONNECTION_NAME);
@@ -80,6 +80,20 @@ Library::Library(QPointer<LibraryWidget> *libraryWidget, QObject *parent) :
m_libraryWidget->data()->refresh();
}
});
+
+ if(settings.value("Library/recreate_db", false).toBool())
+ {
+ settings.setValue("Library/recreate_db", false);
+
+ {
+ QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", CONNECTION_NAME);
+ db.open();
+ db.exec("DELETE FROM track_library");
+ db.close();
+ }
+ QSqlDatabase::removeDatabase(CONNECTION_NAME);
+ startDirectoryScanning();
+ }
}
Library::~Library()
@@ -114,6 +128,9 @@ void Library::showLibraryWindow()
if(m_libraryWidget->data()->isWindow())
m_libraryWidget->data()->show();
+
+ if(m_future.isRunning())
+ m_libraryWidget->data()->setBusyMode(true);
}
void Library::startDirectoryScanning()
diff --git a/src/plugins/General/library/libraryfactory.cpp b/src/plugins/General/library/libraryfactory.cpp
index e23063033..530dae0e3 100644
--- a/src/plugins/General/library/libraryfactory.cpp
+++ b/src/plugins/General/library/libraryfactory.cpp
@@ -60,7 +60,7 @@ QWidget *LibraryFactory::createWidget(int id, QWidget *parent)
if(!m_library.isNull())
{
if(m_library->isRunning())
- m_libraryWidget->setEnabled(false);
+ m_libraryWidget->setBusyMode(true);
m_library->showAction()->setVisible(false);
}
diff --git a/src/plugins/General/library/librarywidget.cpp b/src/plugins/General/library/librarywidget.cpp
index 790ed410d..f7f3f126b 100644
--- a/src/plugins/General/library/librarywidget.cpp
+++ b/src/plugins/General/library/librarywidget.cpp
@@ -85,7 +85,7 @@ void LibraryWidget::setBusyMode(bool enabled)
if(enabled)
{
- m_busyIndicator = new QLabel(tr("Scanning of directories..."), this);
+ m_busyIndicator = new QLabel(tr("Scanning directories..."), this);
m_busyIndicator->setFrameShape(QFrame::Box);
m_busyIndicator->resize(m_busyIndicator->sizeHint());
m_busyIndicator->move(width() / 2 - m_busyIndicator->width() / 2 , height() / 2 - m_busyIndicator->height() / 2);
diff --git a/src/plugins/General/library/settingsdialog.cpp b/src/plugins/General/library/settingsdialog.cpp
index 703f8748f..f67b2997c 100644
--- a/src/plugins/General/library/settingsdialog.cpp
+++ b/src/plugins/General/library/settingsdialog.cpp
@@ -20,6 +20,8 @@
#include <QDir>
#include <QSettings>
+#include <QSqlDatabase>
+#include <QSqlQuery>
#include <qmmp/qmmp.h>
#include <qmmpui/filedialog.h>
#include "settingsdialog.h"
@@ -34,6 +36,8 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
m_lastPath = settings.value("Library/last_path", QDir::homePath()).toString();
QStringList dirs = settings.value("Library/dirs").toStringList();
m_ui->dirsListWidget->addItems(dirs);
+ m_ui->showYearCheckBox->setChecked(settings.value("Library/show_year", false).toBool());
+ m_ui->recreateDatabaseCheckBox->setChecked(settings.value("Library/recreate_db", false).toBool());
}
SettingsDialog::~SettingsDialog()
@@ -51,6 +55,8 @@ void SettingsDialog::accept()
dirs << m_ui->dirsListWidget->item(i)->text();
settings.setValue("Library/dirs", dirs);
+ settings.setValue("Library/show_year", m_ui->showYearCheckBox->isChecked());
+ settings.setValue("Library/recreate_db", m_ui->recreateDatabaseCheckBox->isChecked());
QDialog::accept();
}
diff --git a/src/plugins/General/library/settingsdialog.ui b/src/plugins/General/library/settingsdialog.ui
index 9dc8ca0f7..0624669d3 100644
--- a/src/plugins/General/library/settingsdialog.ui
+++ b/src/plugins/General/library/settingsdialog.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>479</width>
- <height>378</height>
+ <width>412</width>
+ <height>342</height>
</rect>
</property>
<property name="windowTitle">
@@ -23,58 +23,76 @@
<property name="bottomMargin">
<number>6</number>
</property>
- <item row="0" column="0" colspan="3">
- <widget class="QLabel" name="label">
- <property name="text">
- <string>List of directories for scanning:</string>
+ <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>
- <item row="1" column="0" colspan="3">
- <widget class="QListWidget" name="dirsListWidget"/>
- </item>
- <item row="2" column="0">
- <widget class="QPushButton" name="addDirButton">
+ <item row="4" column="0" colspan="2">
+ <widget class="QCheckBox" name="recreateDatabaseCheckBox">
<property name="text">
- <string>Add</string>
- </property>
- <property name="icon">
- <iconset theme="list-add">
- <normaloff>.</normaloff>.</iconset>
+ <string>Recreate database</string>
</property>
</widget>
</item>
- <item row="2" column="1">
- <widget class="QPushButton" name="removeDirButton">
+ <item row="3" column="0" colspan="2">
+ <widget class="QCheckBox" name="showYearCheckBox">
<property name="text">
- <string>Remove</string>
- </property>
- <property name="icon">
- <iconset theme="list-remove">
- <normaloff>.</normaloff>.</iconset>
+ <string>Show album year</string>
</property>
</widget>
</item>
- <item row="2" column="2">
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>267</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
+ <item row="2" column="0" colspan="2">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QPushButton" name="addDirButton">
+ <property name="text">
+ <string>Add</string>
+ </property>
+ <property name="icon">
+ <iconset theme="list-add">
+ <normaloff>.</normaloff>.</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="removeDirButton">
+ <property name="text">
+ <string>Remove</string>
+ </property>
+ <property name="icon">
+ <iconset theme="list-remove">
+ <normaloff>.</normaloff>.</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>264</width>
+ <height>17</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
</item>
- <item row="3" column="0" colspan="3">
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ <item row="1" column="0" colspan="2">
+ <widget class="QListWidget" name="dirsListWidget"/>
+ </item>
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>List of directories for scanning:</string>
</property>
</widget>
</item>