Mercurial > hg > syntilista
changeset 190:76afbf6508c8
Add check for last successful database backup, and show a warning dialog at
startup if more than 7 days have passed since. Only if backups are enabled
etc.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 08 Nov 2017 15:46:51 +0200 |
parents | 0b94ad4ea029 |
children | 79da81b9e184 |
files | src/main.cpp src/main.h |
diffstat | 2 files changed, 26 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main.cpp Tue Nov 07 15:46:28 2017 +0200 +++ b/src/main.cpp Wed Nov 08 15:46:51 2017 +0200 @@ -31,6 +31,7 @@ int dbBackupMode; QString dbBackupURL; QString dbBackupSecret; + QDateTime dbLastBackup; } settings; @@ -259,6 +260,7 @@ settings.dbBackupMode = tmpst.value("dbBackupMode", BACKUP_NONE).toInt(); settings.dbBackupURL = tmpst.value("dbBackupURL", QString()).toString(); settings.dbBackupSecret = tmpst.value("dbBackupSecret", QString()).toString(); + settings.dbLastBackup = tmpst.value("dbLastBackup", QDateTime::fromSecsSinceEpoch(0)).toDateTime(); // Check commandline arguments for configuring backup settings if (argc >= 2 && strcmp(argv[1], "config") == 0) @@ -448,6 +450,19 @@ new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Return), this, SLOT(focusDebtEdit())); new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_P), this, SLOT(on_button_Print_clicked())); + + // Check for successful backup + qint64 threshold = 7; + qint64 delta = settings.dbLastBackup.msecsTo(QDateTime::currentDateTimeUtc()); + if (settings.dbBackupMode != BACKUP_NONE && + QDateTime::fromSecsSinceEpoch(0).msecsTo(settings.dbLastBackup) > 0 && + delta > (1000 * 60 * 60 * 24) * threshold) + { + slErrorMsg( + tr("<h1>Varoitus!</h1>"), + tr("Edellisestä onnistuneesta tietokannan varmuuskopioinnista on kulunut <b>%1</b> päivää."). + arg(delta / (1000 * 60 * 60 * 24))); + } } @@ -485,6 +500,15 @@ } +void SyntilistaMainWindow::backupSuccess() +{ + QSettings tmpst(APP_VENDOR, APP_ID); + slLog("INFO", "Backup successful."); + + tmpst.setValue("dbLastBackup", QDateTime::currentDateTimeUtc()); +} + + void SyntilistaMainWindow::backupDatabase() { QString dbFilename = settings.dataPath + QDir::separator() + APP_SQLITE_FILE; @@ -643,7 +667,7 @@ switch (code) { case 200: - slLog("INFO", "Backup successful."); + backupSuccess(); break; case 403:
--- a/src/main.h Tue Nov 07 15:46:28 2017 +0200 +++ b/src/main.h Wed Nov 08 15:46:51 2017 +0200 @@ -164,6 +164,7 @@ void updatePersonList(); void updateMiscValues(); void backupDatabase(); + void backupSuccess(); bool printDocumentPage(const bool getPageInfo, const int page, QPainter *pt, QPrinter *printer);