summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2017-11-09 00:12:19 +0100
committerAndy Shaw <andy.shaw@qt.io>2017-11-10 16:30:27 +0000
commit4c2cae795117897847c0ba0e9b9ff20fa6e4eda9 (patch)
tree4106600b035ee565a61b688380c3081f78222ef3
parent9df140339230d92690758ebc3e3b6cc6c1a5e8e3 (diff)
downloadqttools-4c2cae795117897847c0ba0e9b9ff20fa6e4eda9.tar.gz
Call removeDatabase() when there is no QSqlDatabase object in scope
If there is a QSqlDatabase or QSqlQuery object around still that is active then when removing the database it will output a warning. Since the database was not opened here we just need to ensure the object is deleted first before we remove it. Task-number: QTBUG-59664 Change-Id: I95d658e178e3e5b95231e4d9525bf5994f5969c5 Reviewed-by: René J.V. Bertin <rjvbertin@gmail.com> Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
-rw-r--r--src/assistant/help/qhelpdbreader.cpp18
-rw-r--r--src/assistant/help/qhelpdbreader_p.h1
2 files changed, 14 insertions, 5 deletions
diff --git a/src/assistant/help/qhelpdbreader.cpp b/src/assistant/help/qhelpdbreader.cpp
index 3b364dfb1..6574ac90e 100644
--- a/src/assistant/help/qhelpdbreader.cpp
+++ b/src/assistant/help/qhelpdbreader.cpp
@@ -79,6 +79,19 @@ bool QHelpDBReader::init()
if (!QFile::exists(m_dbName))
return false;
+ if (!initDB()) {
+ QSqlDatabase::removeDatabase(m_uniqueId);
+ return false;
+ }
+
+ m_initDone = true;
+ m_query = new QSqlQuery(QSqlDatabase::database(m_uniqueId));
+
+ return true;
+}
+
+bool QHelpDBReader::initDB()
+{
QSqlDatabase db = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), m_uniqueId);
db.setConnectOptions(QLatin1String("QSQLITE_OPEN_READONLY"));
db.setDatabaseName(m_dbName);
@@ -87,13 +100,8 @@ bool QHelpDBReader::init()
%2 - The unique id for the connection
%3 - The actual error string */
m_error = tr("Cannot open database '%1' '%2': %3").arg(m_dbName, m_uniqueId, db.lastError().text());
- QSqlDatabase::removeDatabase(m_uniqueId);
return false;
}
-
- m_initDone = true;
- m_query = new QSqlQuery(db);
-
return true;
}
diff --git a/src/assistant/help/qhelpdbreader_p.h b/src/assistant/help/qhelpdbreader_p.h
index 48005d35e..aca4c8afa 100644
--- a/src/assistant/help/qhelpdbreader_p.h
+++ b/src/assistant/help/qhelpdbreader_p.h
@@ -108,6 +108,7 @@ private:
const QString &relFileName, const QString &anchor) const;
QString mergeList(const QStringList &list) const;
QString quote(const QString &string) const;
+ bool initDB();
bool m_initDone = false;
QString m_dbName;