From 6a4b275d40e98a5b4b2dbd4e586c9531a2f6a5fa Mon Sep 17 00:00:00 2001 From: Jonathan White Date: Sun, 28 Jan 2018 10:14:36 -0500 Subject: [PATCH] Minor changes to address comments --- src/core/Config.cpp | 2 +- src/core/Database.cpp | 11 ++++------- src/gui/DatabaseTabWidget.cpp | 2 +- src/gui/SettingsWidgetGeneral.ui | 2 +- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/core/Config.cpp b/src/core/Config.cpp index 328dfaed8..f42bb6044 100644 --- a/src/core/Config.cpp +++ b/src/core/Config.cpp @@ -111,7 +111,7 @@ void Config::init(const QString& fileName) m_defaults.insert("RememberLastDatabases", true); m_defaults.insert("RememberLastKeyFiles", true); m_defaults.insert("OpenPreviousDatabasesOnStartup", true); - m_defaults.insert("AutoSaveAfterEveryChange", false); + m_defaults.insert("AutoSaveAfterEveryChange", true); m_defaults.insert("AutoReloadOnChange", true); m_defaults.insert("AutoSaveOnExit", false); m_defaults.insert("BackupBeforeSave", false); diff --git a/src/core/Database.cpp b/src/core/Database.cpp index 9a1fe0b3d..70affdc58 100644 --- a/src/core/Database.cpp +++ b/src/core/Database.cpp @@ -476,7 +476,7 @@ Database* Database::unlockFromStdin(QString databaseFilename, QString keyFilenam * * This function uses QTemporaryFile instead of QSaveFile due to a bug * in Qt (https://bugreports.qt.io/browse/QTBUG-57299) that may prevent - * the QSaveFile from renaming itself when using DropBox, Drive, or OneDrive. + * the QSaveFile from renaming itself when using Dropbox, Drive, or OneDrive. * * The risk in using QTemporaryFile is that the rename function is not atomic * and may result in loss of data if there is a crash or power loss at the @@ -554,7 +554,7 @@ QString Database::writeDatabase(QIODevice* device) /** * Remove the old backup and replace it with a new one - * backups are named .old.kdbx4 + * backups are named .old.kdbx * * @param filePath Path to the file to backup * @return @@ -562,11 +562,8 @@ QString Database::writeDatabase(QIODevice* device) bool Database::backupDatabase(QString filePath) { QString backupFilePath = filePath; - backupFilePath.replace(".kdbx", ".old.kdbx", Qt::CaseInsensitive); - if (!backupFilePath.endsWith(".old.kdbx")) { - // Fallback in case of poorly named file - backupFilePath = filePath + ".old"; - } + auto re = QRegularExpression("(?:\\.kdbx)?$", QRegularExpression::CaseInsensitiveOption); + backupFilePath.replace(re, ".old.kdbx"); QFile::remove(backupFilePath); return QFile::copy(filePath, backupFilePath); } diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp index 1765a9cdf..47ff597b8 100644 --- a/src/gui/DatabaseTabWidget.cpp +++ b/src/gui/DatabaseTabWidget.cpp @@ -325,7 +325,7 @@ bool DatabaseTabWidget::saveDatabase(Database* db, QString filePath) dbStruct.dbWidget->blockAutoReload(true); // TODO: Make this async, but lock out the database widget to prevent re-entrance - bool useAtomicSaves = config()->get("UseAtomicSaves").toBool(); + bool useAtomicSaves = config()->get("UseAtomicSaves", true).toBool(); QString errorMessage = db->saveToFile(filePath, useAtomicSaves, config()->get("BackupBeforeSave").toBool()); dbStruct.dbWidget->blockAutoReload(false); diff --git a/src/gui/SettingsWidgetGeneral.ui b/src/gui/SettingsWidgetGeneral.ui index f8414f07c..5ed952f1f 100644 --- a/src/gui/SettingsWidgetGeneral.ui +++ b/src/gui/SettingsWidgetGeneral.ui @@ -95,7 +95,7 @@ - Safely save database files (may be incompatible with DropBox, etc) + Safely save database files (may be incompatible with Dropbox, etc) true