From 408ac8a395e5b444a3329485180c97e0b16bfdbb Mon Sep 17 00:00:00 2001 From: WrinklyNinja Date: Tue, 17 Sep 2013 12:53:53 +0100 Subject: [PATCH] Changed debug settings handling. Tidied up init on app startup, and settings are now applied immediately on settings window exit, instead of requiring an app restart. --- src/gui/main.cpp | 42 +++++++++++++++++++++++------------------- src/gui/settings.cpp | 19 +++++++++++++++++++ 2 files changed, 42 insertions(+), 19 deletions(-) diff --git a/src/gui/main.cpp b/src/gui/main.cpp index d390363f..9a67aff9 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -196,27 +196,31 @@ bool BossGUI::OnInit() { } //Set up logging. - unsigned int verbosity = _settings["Debug Verbosity"].as(); - if (verbosity > 0) { - boost::log::add_file_log( - boost::log::keywords::file_name = g_path_log.string().c_str(), - boost::log::keywords::format = ( - boost::log::expressions::stream - << "[" << boost::log::expressions::format_date_time< boost::posix_time::ptime >("TimeStamp", "%H:%M:%S") << "]" - << " [" << boost::log::trivial::severity << "]: " - << boost::log::expressions::smessage - ) - ); - if (verbosity == 1) - boost::log::core::get()->set_filter(boost::log::trivial::severity >= boost::log::trivial::warning); //Log all warnings, errors and fatals. - else if (verbosity == 2) - boost::log::core::get()->set_filter(boost::log::trivial::severity >= boost::log::trivial::debug); //Log debugs, infos, warnings, errors and fatals. + boost::log::add_file_log( + boost::log::keywords::file_name = g_path_log.string().c_str(), + boost::log::keywords::format = ( + boost::log::expressions::stream + << "[" << boost::log::expressions::format_date_time< boost::posix_time::ptime >("TimeStamp", "%H:%M:%S") << "]" + << " [" << boost::log::trivial::severity << "]: " + << boost::log::expressions::smessage + ) + ); + boost::log::add_common_attributes(); + if (_settings["Debug Verbosity"]) { + unsigned int verbosity = _settings["Debug Verbosity"].as(); + if (verbosity == 0) + boost::log::core::get()->set_logging_enabled(false); else { - boost::log::core::get()->set_filter(boost::log::trivial::severity >= boost::log::trivial::trace); //Log everything. + boost::log::core::get()->set_logging_enabled(true); + + if (verbosity == 1) + boost::log::core::get()->set_filter(boost::log::trivial::severity >= boost::log::trivial::warning); //Log all warnings, errors and fatals. + else if (verbosity == 2) + boost::log::core::get()->set_filter(boost::log::trivial::severity >= boost::log::trivial::debug); //Log debugs, infos, warnings, errors and fatals. + else + boost::log::core::get()->set_filter(boost::log::trivial::severity >= boost::log::trivial::trace); //Log everything. } - boost::log::add_common_attributes(); - } else - boost::log::core::get()->set_logging_enabled(false); //Disable all logging. + } //Specify location of language dictionaries boost::locale::generator gen; diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index c7502614..27e0221f 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -25,6 +25,11 @@ #include "../backend/globals.h" #include #include +#include +#include +#include +#include +#include using namespace std; @@ -208,6 +213,20 @@ void SettingsFrame::OnQuit(wxCommandEvent& event) { _settings["Debug Verbosity"] = DebugVerbosityChoice->GetSelection(); + unsigned int verbosity = _settings["Debug Verbosity"].as(); + if (verbosity == 0) + boost::log::core::get()->set_logging_enabled(false); + else { + boost::log::core::get()->set_logging_enabled(true); + + if (verbosity == 1) + boost::log::core::get()->set_filter(boost::log::trivial::severity >= boost::log::trivial::warning); //Log all warnings, errors and fatals. + else if (verbosity == 2) + boost::log::core::get()->set_filter(boost::log::trivial::severity >= boost::log::trivial::debug); //Log debugs, infos, warnings, errors and fatals. + else + boost::log::core::get()->set_filter(boost::log::trivial::severity >= boost::log::trivial::trace); //Log everything. + } + _settings["Update Masterlist"] = UpdateMasterlistBox->IsChecked(); _settings["View Report Externally"] = reportViewBox->IsChecked();