diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-03-21 15:52:23 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-03-21 15:52:23 +0000 |
| commit | e1d67586140fe18d48acf6fb4fef1556b15b091c (patch) | |
| tree | 8d732141d5f055de12255ee89c24271526a6475c | |
| parent | 0871f8bb3d5ff1f19ebab5b660ccfe13ec959f43 (diff) | |
| download | qmmp-e1d67586140fe18d48acf6fb4fef1556b15b091c.tar.gz qmmp-e1d67586140fe18d48acf6fb4fef1556b15b091c.tar.bz2 qmmp-e1d67586140fe18d48acf6fb4fef1556b15b091c.zip | |
library: added feature to recreate database
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9769 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/plugins/General/library/library.cpp | 19 | ||||
| -rw-r--r-- | src/plugins/General/library/libraryfactory.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/General/library/librarywidget.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/General/library/settingsdialog.cpp | 6 | ||||
| -rw-r--r-- | src/plugins/General/library/settingsdialog.ui | 102 |
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> |
