From 2a0514fff925f64dd62f71108bfdc4e7c36690e9 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 1 Apr 2014 12:12:48 +0200 Subject: [PATCH] refs #198 , added utility methods for read/write settings --- src/blackmisc/settingutilities.cpp | 49 ++++++++++++++++++++++++++++++ src/blackmisc/settingutilities.h | 15 +++++++++ 2 files changed, 64 insertions(+) diff --git a/src/blackmisc/settingutilities.cpp b/src/blackmisc/settingutilities.cpp index 00b2616e5..2fcde4c3c 100644 --- a/src/blackmisc/settingutilities.cpp +++ b/src/blackmisc/settingutilities.cpp @@ -1,4 +1,6 @@ #include "settingutilities.h" +#include +#include namespace BlackMisc { @@ -29,6 +31,24 @@ namespace BlackMisc return rps; } + /* + * Value not changed + */ + CStatusMessage CSettingUtilities::valueNotChangedMessage(const QString &valueName) + { + return CStatusMessage(CStatusMessage::TypeSettings, CStatusMessage::SeverityWarning, + QString("Value %1 not changed").arg(valueName)); + } + + /* + * Value changed + */ + CStatusMessage CSettingUtilities::valueChangedMessage(const QString &valueName) + { + return CStatusMessage(CStatusMessage::TypeSettings, CStatusMessage::SeverityInfo, + QString("Value %1 changed").arg(valueName)); + } + /* * leading path */ @@ -52,5 +72,34 @@ namespace BlackMisc p.append('/').append(part3); return p; } + + /* + * Init settings dir, if required create it + */ + bool CSettingUtilities::initSettingsDirectory() + { + QDir dir(CSettingUtilities::getSettingsDirectory()); + if (dir.exists()) return true; + return dir.mkpath("."); + } + + /* + * Directory + */ + const QString &CSettingUtilities::getSettingsDirectory() + { + static QString dir = QStandardPaths::writableLocation(QStandardPaths::DataLocation).append("/BlackBox"); + return dir; + } + + /* + * File + */ + const QString &CSettingUtilities::getSettingsFile() + { + static QString file(QString(CSettingUtilities::getSettingsDirectory()).append("/settings.json")); + return file; + } + } } diff --git a/src/blackmisc/settingutilities.h b/src/blackmisc/settingutilities.h index 7927370cb..9c0ac2fab 100644 --- a/src/blackmisc/settingutilities.h +++ b/src/blackmisc/settingutilities.h @@ -49,12 +49,27 @@ namespace BlackMisc //! \brief Wrong path messages static BlackMisc::CStatusMessageList wrongPathMessages(const QString &path = ""); + //! \brief Value not changed message + static BlackMisc::CStatusMessage valueNotChangedMessage(const QString &valueName); + + //! \brief Value changed message + static BlackMisc::CStatusMessage valueChangedMessage(const QString &valueName); + //! \brief Remove leading path static QString removeLeadingPath(const QString &path); //! \brief Append setting paths static QString appendPaths(const QString &part1, const QString &part2, const QString &part3 = ""); + //! \brief prepare the settings directory, if required create it + static bool initSettingsDirectory(); + + //! \brief get the settings directory + static const QString &getSettingsDirectory(); + + //! \brief get the settings directory + static const QString &getSettingsFile(); + }; } // namespace } // namespace