diff --git a/src/main.cpp b/src/main.cpp index 4ac6407..34033a1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,6 +7,11 @@ int main( int argc, char* argv[] ) { setUpLogging(); + LOG( INFO ) << "Settings File: " + << settings::initializeAndGetSettingsPath(); + + LOG( INFO ) << settings::getSettingsAndValues(); + MyQApplication mainEventLoop( argc, argv ); mainEventLoop.setOrganizationName( application_strings::applicationOrganizationName ); @@ -40,8 +45,6 @@ int main( int argc, char* argv[] ) mainEventLoop.organizationName(), mainEventLoop.applicationName() ); advsettings::OverlayController::setAppSettings( &appSettings ); - LOG( INFO ) << "Settings File: " - << settings::initializeAndGetSettingsPath(); QQmlEngine qmlEngine; diff --git a/src/settings/internal/settings_controller.h b/src/settings/internal/settings_controller.h index 55a2b25..14d5d89 100644 --- a/src/settings/internal/settings_controller.h +++ b/src/settings/internal/settings_controller.h @@ -10,6 +10,38 @@ namespace settings { +template std::string valueToString( Value value ) +{ + using std::is_same; + if constexpr ( is_same::value ) + { + return value ? "true" : "false"; + } + else if constexpr ( is_same::value + || is_same::value ) + { + return std::to_string( value ); + } + if constexpr ( is_same::value ) + { + return value; + } +} + +template +[[nodiscard]] std::string + returnSettingsAndValues( std::array v ) +{ + std::string s = "default"; + + for ( const auto& setting : v ) + { + s += setting.qtInfo().settingName + ": '" + + valueToString( setting.value() ) + "' | "; + } + + return s; +} template void verifySettings( std::array v ) noexcept { @@ -40,8 +72,6 @@ void verifySettings( std::array v ) noexcept exit( ReturnErrorCode::SETTING_INCORRECT_INDEX ); } } - - LOG( DEBUG ) << "Settings for '" << typeid( Enum ).name() << "' verified."; } class SettingsController @@ -58,6 +88,20 @@ public: verifySettings( m_intSettings ); } + std::string getSettingsAndValues() const noexcept + { + std::string s; + s += returnSettingsAndValues( m_boolSettings ); + + s += returnSettingsAndValues( m_doubleSettings ); + + s += returnSettingsAndValues( m_stringSettings ); + + s += returnSettingsAndValues( m_intSettings ); + + return s; + } + std::string getSettingsFileName() const noexcept { return getQSettings().fileName().toStdString(); diff --git a/src/settings/settings.cpp b/src/settings/settings.cpp index dd32d50..61ec2a9 100644 --- a/src/settings/settings.cpp +++ b/src/settings/settings.cpp @@ -68,4 +68,9 @@ std::string initializeAndGetSettingsPath() return settingController.getSettingsFileName(); } +std::string getSettingsAndValues() +{ + return settingController.getSettingsAndValues(); +} + } // namespace settings diff --git a/src/settings/settings.h b/src/settings/settings.h index 993d2ea..26dc546 100644 --- a/src/settings/settings.h +++ b/src/settings/settings.h @@ -102,6 +102,8 @@ enum class IntSetting std::string initializeAndGetSettingsPath(); +std::string getSettingsAndValues(); + void saveChangedSettings(); void saveAllSettings();