From e1d67586140fe18d48acf6fb4fef1556b15b091c Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 21 Mar 2021 15:52:23 +0000 Subject: 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 --- src/plugins/General/library/library.cpp | 19 ++++- src/plugins/General/library/libraryfactory.cpp | 2 +- src/plugins/General/library/librarywidget.cpp | 2 +- src/plugins/General/library/settingsdialog.cpp | 6 ++ 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, 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, 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 #include +#include +#include #include #include #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 @@ 0 0 - 479 - 378 + 412 + 342 @@ -23,58 +23,76 @@ 6 - - - - List of directories for scanning: + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - + + - Add - - - - .. + Recreate database - - + + - Remove - - - - .. + Show album year - - - - Qt::Horizontal - - - - 267 - 20 - - - + + + + + + Add + + + + .. + + + + + + + Remove + + + + .. + + + + + + + Qt::Horizontal + + + + 264 + 17 + + + + + - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + List of directories for scanning: -- cgit v1.2.3-13-gbd6f