From 26c0acfe811b4494d4aeb0763362eedddcff4806 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Thu, 7 Jan 2021 16:41:08 +0000 Subject: library: fixed some issues git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9618 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/General/library/librarymodel.cpp | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'src/plugins/General/library/librarymodel.cpp') diff --git a/src/plugins/General/library/librarymodel.cpp b/src/plugins/General/library/librarymodel.cpp index 511927391..ca42b3ef0 100644 --- a/src/plugins/General/library/librarymodel.cpp +++ b/src/plugins/General/library/librarymodel.cpp @@ -26,6 +26,8 @@ #include #include "librarymodel.h" +#define CONNECTION_NAME "qmmp_library_view" + class LibraryTreeItem { public: @@ -59,6 +61,12 @@ LibraryModel::LibraryModel(QObject *parent) : QAbstractItemModel(parent) LibraryModel::~LibraryModel() { delete m_rootItem; + + if(QSqlDatabase::contains(CONNECTION_NAME)) + { + QSqlDatabase::database(CONNECTION_NAME).close(); + QSqlDatabase::removeDatabase(CONNECTION_NAME); + } } Qt::ItemFlags LibraryModel::flags(const QModelIndex &index) const @@ -113,7 +121,7 @@ void LibraryModel::fetchMore(const QModelIndex &parent) LibraryTreeItem *parentItem = static_cast(parent.internalPointer()); - QSqlDatabase db = QSqlDatabase::database("qmmp_library_1"); + QSqlDatabase db = QSqlDatabase::database(CONNECTION_NAME); if(!db.isOpen()) return; @@ -225,9 +233,18 @@ void LibraryModel::refresh() beginResetModel(); m_rootItem->clear(); - QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "qmmp_library_1"); - db.setDatabaseName(Qmmp::configDir() + "/" + "library.sqlite"); - db.open(); + QSqlDatabase db; + + if(QSqlDatabase::contains(CONNECTION_NAME)) + { + db = QSqlDatabase::database(CONNECTION_NAME); + } + else + { + db = QSqlDatabase::addDatabase("QSQLITE", CONNECTION_NAME); + db.setDatabaseName(Qmmp::configDir() + "/" + "library.sqlite"); + db.open(); + } if(!db.isOpen()) { @@ -254,7 +271,7 @@ void LibraryModel::refresh() QList LibraryModel::getUrls(const QModelIndex &index) const { - QSqlDatabase db = QSqlDatabase::database("qmmp_library_1"); + QSqlDatabase db = QSqlDatabase::database(CONNECTION_NAME); QList urls; if(!db.isOpen()) return urls; -- cgit v1.2.3-13-gbd6f