# HG changeset patch # User Matti Hamalainen # Date 1510148811 -7200 # Node ID 76afbf6508c89cbbdbd91d592ee693f68debbc36 # Parent 0b94ad4ea02944767711abf8e3b5ecb7faa688b0 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. diff -r 0b94ad4ea029 -r 76afbf6508c8 src/main.cpp --- 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("

Varoitus!

"), + tr("Edellisestä onnistuneesta tietokannan varmuuskopioinnista on kulunut %1 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: diff -r 0b94ad4ea029 -r 76afbf6508c8 src/main.h --- 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);