Work on better recycle bin + ability to update DB schemas.
This commit is contained in:
parent
f4f278119a
commit
504950f631
12 changed files with 92 additions and 62 deletions
|
@ -71,8 +71,8 @@ project(rssguard)
|
||||||
|
|
||||||
set(APP_NAME "RSS Guard")
|
set(APP_NAME "RSS Guard")
|
||||||
set(APP_LOW_NAME "rssguard")
|
set(APP_LOW_NAME "rssguard")
|
||||||
set(APP_VERSION "2.0.0.3")
|
set(APP_VERSION "2.0.0.4")
|
||||||
set(FILE_VERSION "2,0,0,3")
|
set(FILE_VERSION "2,0,0,4")
|
||||||
set(APP_AUTHOR "Martin Rotter")
|
set(APP_AUTHOR "Martin Rotter")
|
||||||
set(APP_URL "http://bitbucket.org/skunkos/rssguard")
|
set(APP_URL "http://bitbucket.org/skunkos/rssguard")
|
||||||
set(APP_URL_ISSUES "http://bitbucket.org/skunkos/rssguard/issues")
|
set(APP_URL_ISSUES "http://bitbucket.org/skunkos/rssguard/issues")
|
||||||
|
@ -642,27 +642,17 @@ endif(${USE_QT_5})
|
||||||
# Installation stage.
|
# Installation stage.
|
||||||
if(WIN32 OR OS2)
|
if(WIN32 OR OS2)
|
||||||
message(STATUS "[${APP_LOW_NAME}] You will probably install on Windows or OS/2.")
|
message(STATUS "[${APP_LOW_NAME}] You will probably install on Windows or OS/2.")
|
||||||
install(TARGETS ${EXE_NAME}
|
install(TARGETS ${EXE_NAME} RUNTIME DESTINATION ./)
|
||||||
RUNTIME DESTINATION ./)
|
|
||||||
install(TARGETS ${UPDATER_EXE_NAME}
|
|
||||||
RUNTIME DESTINATION ./${UPDATER_SUBFOLDER})
|
|
||||||
|
|
||||||
# Copy DLLs and other binary files for main installation and updater.
|
# Copy DLLs and other binary files for main installation and updater.
|
||||||
if(WIN32 AND NOT ${USE_QT_5})
|
if(WIN32 AND NOT ${USE_QT_5})
|
||||||
install(FILES ${APP_DLLS_QT4_MSVC2010}
|
install(FILES ${APP_DLLS_QT4_MSVC2010} DESTINATION ./)
|
||||||
DESTINATION ./)
|
install(FILES ${APP_DLLS_QT4_MSVC2010_IMAGEFORMATS} DESTINATION ./imageformats)
|
||||||
install(FILES ${APP_DLLS_QT4_MSVC2010_IMAGEFORMATS}
|
install(FILES ${APP_DLLS_QT4_MSVC2010_SQLDRIVERS} DESTINATION ./sqldrivers)
|
||||||
DESTINATION ./imageformats)
|
|
||||||
install(FILES ${APP_DLLS_QT4_MSVC2010_SQLDRIVERS}
|
|
||||||
DESTINATION ./sqldrivers)
|
|
||||||
|
|
||||||
install(FILES ${APP_DLLS_QT4_MSVC2010}
|
|
||||||
DESTINATION ./${UPDATER_SUBFOLDER})
|
|
||||||
endif(WIN32 AND NOT ${USE_QT_5})
|
endif(WIN32 AND NOT ${USE_QT_5})
|
||||||
|
|
||||||
if(BUNDLE_ICON_THEMES)
|
if(BUNDLE_ICON_THEMES)
|
||||||
install(DIRECTORY resources/graphics/icons/mini-kfaenza
|
install(DIRECTORY resources/graphics/icons/mini-kfaenza DESTINATION ./icons)
|
||||||
DESTINATION ./icons)
|
|
||||||
endif(BUNDLE_ICON_THEMES)
|
endif(BUNDLE_ICON_THEMES)
|
||||||
|
|
||||||
install(DIRECTORY resources/skins/base
|
install(DIRECTORY resources/skins/base
|
||||||
|
@ -707,50 +697,30 @@ elseif(APPLE)
|
||||||
set(APPLE_PREFIX ${CMAKE_INSTALL_PREFIX}/${EXE_NAME}.app/Contents/Resources)
|
set(APPLE_PREFIX ${CMAKE_INSTALL_PREFIX}/${EXE_NAME}.app/Contents/Resources)
|
||||||
|
|
||||||
if(BUNDLE_ICON_THEMES)
|
if(BUNDLE_ICON_THEMES)
|
||||||
install(DIRECTORY resources/graphics/icons/mini-kfaenza
|
install(DIRECTORY resources/graphics/icons/mini-kfaenza DESTINATION ${APPLE_PREFIX}/icons)
|
||||||
DESTINATION ${APPLE_PREFIX}/icons)
|
|
||||||
endif(BUNDLE_ICON_THEMES)
|
endif(BUNDLE_ICON_THEMES)
|
||||||
|
|
||||||
install(DIRECTORY resources/skins
|
install(DIRECTORY resources/skins DESTINATION ${APPLE_PREFIX})
|
||||||
DESTINATION ${APPLE_PREFIX})
|
install(DIRECTORY resources/misc DESTINATION ${APPLE_PREFIX})
|
||||||
install(DIRECTORY resources/misc
|
install(FILES resources/graphics/${APP_LOW_NAME}_128.png DESTINATION ${APPLE_PREFIX} RENAME ${APP_LOW_NAME}.png)
|
||||||
DESTINATION ${APPLE_PREFIX})
|
install(FILES resources/graphics/${APP_LOW_NAME}_plain_128.png DESTINATION ${APPLE_PREFIX} RENAME ${APP_LOW_NAME}_plain.png)
|
||||||
install(FILES resources/graphics/${APP_LOW_NAME}_128.png
|
install(FILES ${APP_QM} DESTINATION ${APPLE_PREFIX}/l10n)
|
||||||
DESTINATION ${APPLE_PREFIX}
|
install(FILES ${APP_TEXT} DESTINATION ${APPLE_PREFIX}/information)
|
||||||
RENAME ${APP_LOW_NAME}.png)
|
|
||||||
install(FILES resources/graphics/${APP_LOW_NAME}_plain_128.png
|
|
||||||
DESTINATION ${APPLE_PREFIX}
|
|
||||||
RENAME ${APP_LOW_NAME}_plain.png)
|
|
||||||
install(FILES ${APP_QM}
|
|
||||||
DESTINATION ${APPLE_PREFIX}/l10n)
|
|
||||||
install(FILES ${APP_TEXT}
|
|
||||||
DESTINATION ${APPLE_PREFIX}/information)
|
|
||||||
elseif(UNIX)
|
elseif(UNIX)
|
||||||
message(STATUS "[${APP_LOW_NAME}] You will probably install on Linux.")
|
message(STATUS "[${APP_LOW_NAME}] You will probably install on Linux.")
|
||||||
install(TARGETS ${EXE_NAME}
|
install(TARGETS ${EXE_NAME} RUNTIME DESTINATION bin)
|
||||||
RUNTIME DESTINATION bin)
|
|
||||||
|
|
||||||
if(BUNDLE_ICON_THEMES)
|
if(BUNDLE_ICON_THEMES)
|
||||||
install(DIRECTORY resources/graphics/icons/mini-kfaenza
|
install(DIRECTORY resources/graphics/icons/mini-kfaenza DESTINATION share/${APP_LOW_NAME}/icons)
|
||||||
DESTINATION share/${APP_LOW_NAME}/icons)
|
|
||||||
endif(BUNDLE_ICON_THEMES)
|
endif(BUNDLE_ICON_THEMES)
|
||||||
|
|
||||||
install(DIRECTORY resources/skins/base
|
install(DIRECTORY resources/skins/base DESTINATION share/${APP_LOW_NAME}/skins)
|
||||||
DESTINATION share/${APP_LOW_NAME}/skins)
|
install(DIRECTORY resources/misc DESTINATION share/${APP_LOW_NAME})
|
||||||
install(DIRECTORY resources/misc
|
install(FILES ${CMAKE_BINARY_DIR}/resources/desktop/${APP_LOW_NAME}.desktop DESTINATION share/applications)
|
||||||
DESTINATION share/${APP_LOW_NAME})
|
install(FILES resources/graphics/${APP_LOW_NAME}_128.png DESTINATION share/pixmaps RENAME ${APP_LOW_NAME}.png)
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/resources/desktop/${APP_LOW_NAME}.desktop
|
install(FILES resources/graphics/${APP_LOW_NAME}_plain_128.png DESTINATION share/rssguard/icons RENAME ${APP_LOW_NAME}_plain.png)
|
||||||
DESTINATION share/applications)
|
install(FILES ${APP_QM} DESTINATION share/${APP_LOW_NAME}/l10n)
|
||||||
install(FILES resources/graphics/${APP_LOW_NAME}_128.png
|
install(FILES ${APP_TEXT} DESTINATION share/${APP_LOW_NAME}/information)
|
||||||
DESTINATION share/pixmaps
|
|
||||||
RENAME ${APP_LOW_NAME}.png)
|
|
||||||
install(FILES resources/graphics/${APP_LOW_NAME}_plain_128.png
|
|
||||||
DESTINATION share/rssguard/icons
|
|
||||||
RENAME ${APP_LOW_NAME}_plain.png)
|
|
||||||
install(FILES ${APP_QM}
|
|
||||||
DESTINATION share/${APP_LOW_NAME}/l10n)
|
|
||||||
install(FILES ${APP_TEXT}
|
|
||||||
DESTINATION share/${APP_LOW_NAME}/information)
|
|
||||||
endif(WIN32 OR OS2)
|
endif(WIN32 OR OS2)
|
||||||
|
|
||||||
# Custom target for packaging.
|
# Custom target for packaging.
|
||||||
|
|
|
@ -12,7 +12,7 @@ CREATE TABLE IF NOT EXISTS Information (
|
||||||
inf_value TEXT NOT NULL
|
inf_value TEXT NOT NULL
|
||||||
);
|
);
|
||||||
-- !
|
-- !
|
||||||
INSERT INTO Information VALUES (1, 'schema_version', '0.0.1');
|
INSERT INTO Information VALUES (1, 'schema_version', '0.0.2');
|
||||||
-- !
|
-- !
|
||||||
DROP TABLE IF EXISTS Categories;
|
DROP TABLE IF EXISTS Categories;
|
||||||
-- !
|
-- !
|
||||||
|
@ -68,6 +68,7 @@ CREATE TABLE IF NOT EXISTS Messages (
|
||||||
author TEXT NOT NULL,
|
author TEXT NOT NULL,
|
||||||
date_created BIGINT NOT NULL CHECK (date_created != 0),
|
date_created BIGINT NOT NULL CHECK (date_created != 0),
|
||||||
contents TEXT,
|
contents TEXT,
|
||||||
|
is_hidden INTEGER(1) NOT NULL DEFAULT 0 CHECK (is_hidden >= 0 AND is_hidden <= 1),
|
||||||
|
|
||||||
FOREIGN KEY (feed) REFERENCES Feeds (id)
|
FOREIGN KEY (feed) REFERENCES Feeds (id)
|
||||||
);
|
);
|
||||||
|
|
|
@ -6,7 +6,7 @@ CREATE TABLE IF NOT EXISTS Information (
|
||||||
inf_value TEXT NOT NULL
|
inf_value TEXT NOT NULL
|
||||||
);
|
);
|
||||||
-- !
|
-- !
|
||||||
INSERT INTO Information VALUES (1, 'schema_version', '0.0.1');
|
INSERT INTO Information VALUES (1, 'schema_version', '0.0.2');
|
||||||
-- !
|
-- !
|
||||||
DROP TABLE IF EXISTS Categories;
|
DROP TABLE IF EXISTS Categories;
|
||||||
-- !
|
-- !
|
||||||
|
@ -62,6 +62,7 @@ CREATE TABLE IF NOT EXISTS Messages (
|
||||||
author TEXT NOT NULL,
|
author TEXT NOT NULL,
|
||||||
date_created INTEGER NOT NULL CHECK (date_created != 0),
|
date_created INTEGER NOT NULL CHECK (date_created != 0),
|
||||||
contents TEXT,
|
contents TEXT,
|
||||||
|
is_hidden INTEGER(1) NOT NULL DEFAULT 0 CHECK (is_hidden >= 0 AND is_hidden <= 1),
|
||||||
|
|
||||||
FOREIGN KEY (feed) REFERENCES Feeds (id)
|
FOREIGN KEY (feed) REFERENCES Feeds (id)
|
||||||
);
|
);
|
||||||
|
|
|
@ -6,7 +6,7 @@ CREATE TABLE IF NOT EXISTS Information (
|
||||||
inf_value TEXT NOT NULL
|
inf_value TEXT NOT NULL
|
||||||
);
|
);
|
||||||
-- !
|
-- !
|
||||||
INSERT INTO Information VALUES (1, 'schema_version', '0.0.1');
|
INSERT INTO Information VALUES (1, 'schema_version', '0.0.2');
|
||||||
-- !
|
-- !
|
||||||
DROP TABLE IF EXISTS Categories;
|
DROP TABLE IF EXISTS Categories;
|
||||||
-- !
|
-- !
|
||||||
|
@ -62,6 +62,7 @@ CREATE TABLE IF NOT EXISTS Messages (
|
||||||
author TEXT NOT NULL,
|
author TEXT NOT NULL,
|
||||||
date_created INTEGER NOT NULL CHECK (date_created != 0),
|
date_created INTEGER NOT NULL CHECK (date_created != 0),
|
||||||
contents TEXT,
|
contents TEXT,
|
||||||
|
is_hidden INTEGER(1) NOT NULL DEFAULT 0 CHECK (is_hidden >= 0 AND is_hidden <= 1),
|
||||||
|
|
||||||
FOREIGN KEY (feed) REFERENCES Feeds (id)
|
FOREIGN KEY (feed) REFERENCES Feeds (id)
|
||||||
);
|
);
|
2
resources/misc/db_update_mysql_0.0.1_0.0.2.sql
Normal file
2
resources/misc/db_update_mysql_0.0.1_0.0.2.sql
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE Messages
|
||||||
|
ADD COLUMN is_pdeleted INTEGER(1) NOT NULL DEFAULT 0 CHECK (is_pdeleted >= 0 AND is_pdeleted <= 1);
|
2
resources/misc/db_update_sqlite_0.0.1_0.0.2.sql
Normal file
2
resources/misc/db_update_sqlite_0.0.1_0.0.2.sql
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE Messages
|
||||||
|
ADD COLUMN is_pdeleted INTEGER(1) NOT NULL DEFAULT 0 CHECK (is_pdeleted >= 0 AND is_pdeleted <= 1);
|
|
@ -1,4 +1,20 @@
|
||||||
<body>
|
<body>
|
||||||
|
<center><h2>2.0.0.4</h2></center>
|
||||||
|
|
||||||
|
Fixed:
|
||||||
|
<ul>
|
||||||
|
<li>Database is now correctly restored when using SQLite memory databases.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
Added:
|
||||||
|
<ul>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
Changed:
|
||||||
|
<ul>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
<center><h2>2.0.0.3</h2></center>
|
<center><h2>2.0.0.3</h2></center>
|
||||||
|
|
||||||
Fixed:
|
Fixed:
|
||||||
|
|
|
@ -145,14 +145,15 @@ void MessagesModel::setupHeaderData() {
|
||||||
/*: Tooltip for url of message.*/ tr("Url") <<
|
/*: Tooltip for url of message.*/ tr("Url") <<
|
||||||
/*: Tooltip for author of message.*/ tr("Author") <<
|
/*: Tooltip for author of message.*/ tr("Author") <<
|
||||||
/*: Tooltip for creation date of message.*/ tr("Created on") <<
|
/*: Tooltip for creation date of message.*/ tr("Created on") <<
|
||||||
/*: Tooltip for contents of message.*/ tr("Contents");
|
/*: Tooltip for contents of message.*/ tr("Contents") <<
|
||||||
|
/*: Tooltip for "pdeleted" column in msg list.*/ tr("Permanently deleted");
|
||||||
|
|
||||||
m_tooltipData << tr("Id of the message.") << tr("Is message read?") <<
|
m_tooltipData << tr("Id of the message.") << tr("Is message read?") <<
|
||||||
tr("Is message deleted?") << tr("Is message important?") <<
|
tr("Is message deleted?") << tr("Is message important?") <<
|
||||||
tr("Id of feed which this message belongs to.") <<
|
tr("Id of feed which this message belongs to.") <<
|
||||||
tr("Title of the message.") << tr("Url of the message.") <<
|
tr("Title of the message.") << tr("Url of the message.") <<
|
||||||
tr("Author of the message.") << tr("Creation date of the message.") <<
|
tr("Author of the message.") << tr("Creation date of the message.") <<
|
||||||
tr("Contents of the message.");
|
tr("Contents of the message.") << tr("Is message permanently deleted from recycle bin?");
|
||||||
}
|
}
|
||||||
|
|
||||||
Qt::ItemFlags MessagesModel::flags(const QModelIndex &index) const {
|
Qt::ItemFlags MessagesModel::flags(const QModelIndex &index) const {
|
||||||
|
|
|
@ -91,6 +91,9 @@
|
||||||
#define APP_DB_SQLITE_PATH "data/database/local"
|
#define APP_DB_SQLITE_PATH "data/database/local"
|
||||||
#define APP_DB_SQLITE_FILE "database.db"
|
#define APP_DB_SQLITE_FILE "database.db"
|
||||||
|
|
||||||
|
// Keep this in sync with schema versions declared in SQL initialization code.
|
||||||
|
#define APP_DB_SCHEMA_VERSION "0.0.2"
|
||||||
|
#define APP_DB_UPDATE_FILE_PATTERN "data_update_%1_%2_3.sql"
|
||||||
#define APP_DB_COMMENT_SPLIT "-- !\n"
|
#define APP_DB_COMMENT_SPLIT "-- !\n"
|
||||||
#define APP_DB_WEB_PATH "data/database/web"
|
#define APP_DB_WEB_PATH "data/database/web"
|
||||||
|
|
||||||
|
@ -132,6 +135,7 @@
|
||||||
#define MSG_DB_AUTHOR_INDEX 7
|
#define MSG_DB_AUTHOR_INDEX 7
|
||||||
#define MSG_DB_DCREATED_INDEX 8
|
#define MSG_DB_DCREATED_INDEX 8
|
||||||
#define MSG_DB_CONTENTS_INDEX 9
|
#define MSG_DB_CONTENTS_INDEX 9
|
||||||
|
#define MSG_DB_PDELETED_INDEX 10
|
||||||
|
|
||||||
// Indexes of columns as they are DEFINED IN THE TABLE for CATEGORIES.
|
// Indexes of columns as they are DEFINED IN THE TABLE for CATEGORIES.
|
||||||
#define CAT_DB_ID_INDEX 0
|
#define CAT_DB_ID_INDEX 0
|
||||||
|
|
|
@ -472,6 +472,7 @@ void MessagesView::adjustColumns() {
|
||||||
header()->setSectionResizeMode(MSG_DB_AUTHOR_INDEX, QHeaderView::Interactive);
|
header()->setSectionResizeMode(MSG_DB_AUTHOR_INDEX, QHeaderView::Interactive);
|
||||||
header()->setSectionResizeMode(MSG_DB_DCREATED_INDEX, QHeaderView::Interactive);
|
header()->setSectionResizeMode(MSG_DB_DCREATED_INDEX, QHeaderView::Interactive);
|
||||||
header()->setSectionResizeMode(MSG_DB_CONTENTS_INDEX, QHeaderView::Interactive);
|
header()->setSectionResizeMode(MSG_DB_CONTENTS_INDEX, QHeaderView::Interactive);
|
||||||
|
header()->setSectionResizeMode(MSG_DB_PDELETED_INDEX, QHeaderView::Interactive);
|
||||||
#else
|
#else
|
||||||
// Setup column resize strategies.
|
// Setup column resize strategies.
|
||||||
header()->setResizeMode(MSG_DB_ID_INDEX, QHeaderView::Interactive);
|
header()->setResizeMode(MSG_DB_ID_INDEX, QHeaderView::Interactive);
|
||||||
|
@ -484,6 +485,7 @@ void MessagesView::adjustColumns() {
|
||||||
header()->setResizeMode(MSG_DB_AUTHOR_INDEX, QHeaderView::Interactive);
|
header()->setResizeMode(MSG_DB_AUTHOR_INDEX, QHeaderView::Interactive);
|
||||||
header()->setResizeMode(MSG_DB_DCREATED_INDEX, QHeaderView::Interactive);
|
header()->setResizeMode(MSG_DB_DCREATED_INDEX, QHeaderView::Interactive);
|
||||||
header()->setResizeMode(MSG_DB_CONTENTS_INDEX, QHeaderView::Interactive);
|
header()->setResizeMode(MSG_DB_CONTENTS_INDEX, QHeaderView::Interactive);
|
||||||
|
header()->setResizeMode(MSG_DB_PDELETED_INDEX, QHeaderView::Interactive);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Hide columns.
|
// Hide columns.
|
||||||
|
@ -492,6 +494,7 @@ void MessagesView::adjustColumns() {
|
||||||
hideColumn(MSG_DB_FEED_INDEX);
|
hideColumn(MSG_DB_FEED_INDEX);
|
||||||
hideColumn(MSG_DB_URL_INDEX);
|
hideColumn(MSG_DB_URL_INDEX);
|
||||||
hideColumn(MSG_DB_CONTENTS_INDEX);
|
hideColumn(MSG_DB_CONTENTS_INDEX);
|
||||||
|
hideColumn(MSG_DB_PDELETED_INDEX);
|
||||||
|
|
||||||
qDebug("Adjusting column resize modes for MessagesView.");
|
qDebug("Adjusting column resize modes for MessagesView.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -287,10 +287,23 @@ QSqlDatabase DatabaseFactory::sqliteInitializeFileBasedDatabase(const QString &c
|
||||||
else {
|
else {
|
||||||
query_db.next();
|
query_db.next();
|
||||||
|
|
||||||
|
QString installed_db_schema = query_db.value(0).toString();
|
||||||
|
|
||||||
|
if (!updateDatabaseSchema(installed_db_schema)) {
|
||||||
|
qFatal("Database schema was not updated from '%s' to '%s' successully.",
|
||||||
|
qPrintable(installed_db_schema),
|
||||||
|
qPrintable(APP_DB_SCHEMA_VERSION));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
qDebug("Database schema was updated from '%s' to '%s' successully.",
|
||||||
|
qPrintable(installed_db_schema),
|
||||||
|
qPrintable(APP_DB_SCHEMA_VERSION));
|
||||||
|
}
|
||||||
|
|
||||||
qDebug("File-based SQLite database connection '%s' to file '%s' seems to be established.",
|
qDebug("File-based SQLite database connection '%s' to file '%s' seems to be established.",
|
||||||
qPrintable(connection_name),
|
qPrintable(connection_name),
|
||||||
qPrintable(QDir::toNativeSeparators(database.databaseName())));
|
qPrintable(QDir::toNativeSeparators(database.databaseName())));
|
||||||
qDebug("File-based SQLite database has version '%s'.", qPrintable(query_db.value(0).toString()));
|
qDebug("File-based SQLite database has version '%s'.", qPrintable(installed_db_schema));
|
||||||
}
|
}
|
||||||
|
|
||||||
query_db.finish();
|
query_db.finish();
|
||||||
|
@ -306,6 +319,23 @@ QString DatabaseFactory::sqliteDatabaseFilePath() const {
|
||||||
return m_sqliteDatabaseFilePath + QDir::separator() + APP_DB_SQLITE_FILE;
|
return m_sqliteDatabaseFilePath + QDir::separator() + APP_DB_SQLITE_FILE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool DatabaseFactory::updateDatabaseSchema(const QString &source_db_schema_version) {
|
||||||
|
switch (m_activeDatabaseDriver) {
|
||||||
|
case SQLITE:
|
||||||
|
case SQLITE_MEMORY:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MYSQL:
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: tady udělat update databázového schématu na novou verzi.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
QSqlDatabase DatabaseFactory::connection(const QString &connection_name,
|
QSqlDatabase DatabaseFactory::connection(const QString &connection_name,
|
||||||
DesiredType desired_type) {
|
DesiredType desired_type) {
|
||||||
switch (m_activeDatabaseDriver) {
|
switch (m_activeDatabaseDriver) {
|
||||||
|
@ -349,9 +379,7 @@ void DatabaseFactory::sqliteSaveMemoryDatabase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatabaseFactory::determineDriver() {
|
void DatabaseFactory::determineDriver() {
|
||||||
QString db_driver = qApp->settings()->value(APP_CFG_DB,
|
QString db_driver = qApp->settings()->value(APP_CFG_DB, "database_driver", APP_DB_SQLITE_DRIVER).toString();
|
||||||
"database_driver",
|
|
||||||
APP_DB_SQLITE_DRIVER).toString();
|
|
||||||
|
|
||||||
if (db_driver == APP_DB_MYSQL_DRIVER && QSqlDatabase::isDriverAvailable(APP_DB_SQLITE_DRIVER)) {
|
if (db_driver == APP_DB_MYSQL_DRIVER && QSqlDatabase::isDriverAvailable(APP_DB_SQLITE_DRIVER)) {
|
||||||
// User wants to use MySQL and MySQL is actually available. Use it.
|
// User wants to use MySQL and MySQL is actually available. Use it.
|
||||||
|
|
|
@ -86,6 +86,7 @@ class DatabaseFactory : public QObject {
|
||||||
// SQLITE stuff.
|
// SQLITE stuff.
|
||||||
//
|
//
|
||||||
QString sqliteDatabaseFilePath() const;
|
QString sqliteDatabaseFilePath() const;
|
||||||
|
bool updateDatabaseSchema(const QString &source_db_schema_version);
|
||||||
|
|
||||||
//
|
//
|
||||||
// MySQL stuff.
|
// MySQL stuff.
|
||||||
|
|
Loading…
Add table
Reference in a new issue