summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/LogConfigWindow.cpp
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2014-02-23 07:33:03 +0100
committerPierre Bourdon <delroth@gmail.com>2014-02-23 07:48:06 +0100
commit70f3a069f2b760b2add51046781be625bef758db (patch)
tree23b74ddd0815882d3a598c67ac11fc7ecf95e98a /Source/Core/DolphinWX/LogConfigWindow.cpp
parent60a5d8900bd2bf63e4af32d60ec7f69053e13297 (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.cpp79
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());
}
}