diff options
| author | Pierre Bourdon <delroth@gmail.com> | 2014-02-23 07:33:03 +0100 |
|---|---|---|
| committer | Pierre Bourdon <delroth@gmail.com> | 2014-02-23 07:48:06 +0100 |
| commit | 70f3a069f2b760b2add51046781be625bef758db (patch) | |
| tree | 23b74ddd0815882d3a598c67ac11fc7ecf95e98a /Source/Core/DolphinWX/LogConfigWindow.cpp | |
| parent | 60a5d8900bd2bf63e4af32d60ec7f69053e13297 (diff) | |
Revert "Merge pull request #83 from lioncash/remove-console"
This breaks Linux stdout logging.
This reverts commit 7ac5b1f2f805b2bc553492606cf71b6609fa0ae7, reversing
changes made to 9bc14012fccf92f38b7d270ec82f7dac522986c5.
Revert "Merge pull request #77 from lioncash/remove-console"
This reverts commit 9bc14012fccf92f38b7d270ec82f7dac522986c5, reversing
changes made to b18a33377d7229a66226a524186d24c57f1d56aa.
Conflicts:
Source/Core/Common/LogManager.cpp
Source/Core/DolphinWX/Frame.cpp
Source/Core/DolphinWX/FrameAui.cpp
Source/Core/DolphinWX/LogConfigWindow.cpp
Source/Core/DolphinWX/LogWindow.cpp
Diffstat (limited to 'Source/Core/DolphinWX/LogConfigWindow.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/LogConfigWindow.cpp | 79 |
1 files changed, 77 insertions, 2 deletions
diff --git a/Source/Core/DolphinWX/LogConfigWindow.cpp b/Source/Core/DolphinWX/LogConfigWindow.cpp index 26cd3c1d51..389acb81f9 100644 --- a/Source/Core/DolphinWX/LogConfigWindow.cpp +++ b/Source/Core/DolphinWX/LogConfigWindow.cpp @@ -18,6 +18,7 @@ #include <wx/validate.h> #include <wx/windowid.h> +#include "Common/ConsoleListener.h" #include "Common/FileUtil.h" #include "Common/IniFile.h" #include "Common/Log.h" @@ -62,8 +63,18 @@ void LogConfigWindow::CreateGUIControls() // Options m_writeFileCB = new wxCheckBox(this, wxID_ANY, _("Write to File")); m_writeFileCB->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &LogConfigWindow::OnWriteFileChecked, this); + m_writeConsoleCB = new wxCheckBox(this, wxID_ANY, _("Write to Console")); + m_writeConsoleCB->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &LogConfigWindow::OnWriteConsoleChecked, this); m_writeWindowCB = new wxCheckBox(this, wxID_ANY, _("Write to Window")); m_writeWindowCB->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &LogConfigWindow::OnWriteWindowChecked, this); + m_writeDebuggerCB = NULL; +#ifdef _MSC_VER + if (IsDebuggerPresent()) + { + m_writeDebuggerCB = new wxCheckBox(this, wxID_ANY, _("Write to Debugger")); + m_writeDebuggerCB->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &LogConfigWindow::OnWriteDebuggerChecked, this); + } +#endif wxButton *btn_toggle_all = new wxButton(this, wxID_ANY, _("Toggle All Log Types"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); @@ -76,7 +87,18 @@ void LogConfigWindow::CreateGUIControls() // Sizers wxStaticBoxSizer* sbOutputs = new wxStaticBoxSizer(wxVERTICAL, this, _("Logger Outputs")); sbOutputs->Add(m_writeFileCB, 0, wxDOWN, 1); - sbOutputs->Add(m_writeWindowCB, 0); + sbOutputs->Add(m_writeConsoleCB, 0, wxDOWN, 1); +#ifdef _MSC_VER + if (m_writeDebuggerCB) + { + sbOutputs->Add(m_writeWindowCB, 0, wxDOWN, 1); + sbOutputs->Add(m_writeDebuggerCB, 0); + } + else +#endif + { + sbOutputs->Add(m_writeWindowCB, 0); + } wxStaticBoxSizer* sbLogTypes = new wxStaticBoxSizer(wxVERTICAL, this, _("Log Types")); sbLogTypes->Add(m_checks, 1, wxEXPAND); @@ -112,8 +134,21 @@ void LogConfigWindow::LoadSettings() // Get the logger output settings from the config ini file. ini.Get("Options", "WriteToFile", &m_writeFile, false); m_writeFileCB->SetValue(m_writeFile); + ini.Get("Options", "WriteToConsole", &m_writeConsole, true); + m_writeConsoleCB->SetValue(m_writeConsole); ini.Get("Options", "WriteToWindow", &m_writeWindow, true); m_writeWindowCB->SetValue(m_writeWindow); +#ifdef _MSC_VER + if (IsDebuggerPresent()) + { + ini.Get("Options", "WriteToDebugger", &m_writeDebugger, true); + m_writeDebuggerCB->SetValue(m_writeDebugger); + } + else +#endif + { + m_writeDebugger = false; + } // Run through all of the log types and check each checkbox for each logging type // depending on its set value within the config ini. @@ -139,7 +174,12 @@ void LogConfigWindow::SaveSettings() // Save the enabled/disabled states of the logger outputs to the config ini. ini.Set("Options", "WriteToFile", m_writeFile); + ini.Set("Options", "WriteToConsole", m_writeConsole); ini.Set("Options", "WriteToWindow", m_writeWindow); +#ifdef _MSC_VER + if (IsDebuggerPresent()) + ini.Set("Options", "WriteToDebugger", m_writeDebugger); +#endif // Save all enabled/disabled states of the log types to the config ini. for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i) @@ -180,6 +220,21 @@ void LogConfigWindow::OnWriteFileChecked(wxCommandEvent& event) } } +void LogConfigWindow::OnWriteConsoleChecked(wxCommandEvent& event) +{ + for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i) + { + m_writeConsole = event.IsChecked(); + if (m_checks->IsChecked(i)) + { + if (m_writeConsole) + m_LogManager->AddListener((LogTypes::LOG_TYPE)i, m_LogManager->GetConsoleListener()); + else + m_LogManager->RemoveListener((LogTypes::LOG_TYPE)i, m_LogManager->GetConsoleListener()); + } + } +} + void LogConfigWindow::OnWriteWindowChecked(wxCommandEvent& event) { for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i) @@ -195,6 +250,21 @@ void LogConfigWindow::OnWriteWindowChecked(wxCommandEvent& event) } } +void LogConfigWindow::OnWriteDebuggerChecked(wxCommandEvent& event) +{ + for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i) + { + m_writeDebugger = event.IsChecked(); + if (m_checks->IsChecked(i)) + { + if (m_writeDebugger) + m_LogManager->AddListener((LogTypes::LOG_TYPE)i, (LogListener *)m_LogManager->GetDebuggerListener()); + else + m_LogManager->RemoveListener((LogTypes::LOG_TYPE)i, (LogListener *)m_LogManager->GetDebuggerListener()); + } + } +} + void LogConfigWindow::OnToggleAll(wxCommandEvent& WXUNUSED(event)) { for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i) @@ -215,14 +285,19 @@ void LogConfigWindow::ToggleLog(int _logType, bool enable) { if (m_writeWindow) m_LogManager->AddListener(logType, (LogListener *)m_LogWindow); - if (m_writeFile) m_LogManager->AddListener(logType, m_LogManager->GetFileListener()); + if (m_writeConsole) + m_LogManager->AddListener(logType, m_LogManager->GetConsoleListener()); + if (m_writeDebugger) + m_LogManager->AddListener(logType, m_LogManager->GetDebuggerListener()); } else { m_LogManager->RemoveListener(logType, (LogListener *)m_LogWindow); m_LogManager->RemoveListener(logType, m_LogManager->GetFileListener()); + m_LogManager->RemoveListener(logType, m_LogManager->GetConsoleListener()); + m_LogManager->RemoveListener(logType, m_LogManager->GetDebuggerListener()); } } |
