Revert "Merge pull request #83 from lioncash/remove-console"
This breaks Linux stdout logging. This reverts commit7ac5b1f2f8, reversing changes made to9bc14012fc. Revert "Merge pull request #77 from lioncash/remove-console" This reverts commit9bc14012fc, reversing changes made tob18a33377d. 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
This commit is contained in:
@@ -418,6 +418,8 @@ void CCodeWindow::OpenPages()
|
||||
Parent->ToggleLogWindow(true);
|
||||
if (bShowOnStart[IDM_LOGCONFIGWINDOW - IDM_LOGWINDOW])
|
||||
Parent->ToggleLogConfigWindow(true);
|
||||
if (bShowOnStart[IDM_CONSOLEWINDOW - IDM_LOGWINDOW])
|
||||
Parent->ToggleConsole(true);
|
||||
if (bShowOnStart[IDM_REGISTERWINDOW - IDM_LOGWINDOW])
|
||||
ToggleRegisterWindow(true);
|
||||
if (bShowOnStart[IDM_BREAKPOINTWINDOW - IDM_LOGWINDOW])
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
#include <wx/aui/framemanager.h>
|
||||
|
||||
#include "Common/Common.h"
|
||||
#include "Common/ConsoleListener.h"
|
||||
#include "Common/FileUtil.h"
|
||||
#include "Common/Thread.h"
|
||||
|
||||
@@ -309,8 +310,11 @@ CFrame::CFrame(wxFrame* parent,
|
||||
for (int i = 0; i <= IDM_CODEWINDOW - IDM_LOGWINDOW; i++)
|
||||
bFloatWindow[i] = false;
|
||||
|
||||
if (ShowLogWindow)
|
||||
SConfig::GetInstance().m_InterfaceLogWindow = true;
|
||||
if (ShowLogWindow) SConfig::GetInstance().m_InterfaceLogWindow = true;
|
||||
|
||||
// Give it a console early to show potential messages from this onward
|
||||
ConsoleListener *Console = LogManager::GetInstance()->GetConsoleListener();
|
||||
if (SConfig::GetInstance().m_InterfaceConsole) Console->Open();
|
||||
|
||||
// Start debugging maximized
|
||||
if (UseDebugger) this->Maximize(true);
|
||||
@@ -388,6 +392,8 @@ CFrame::CFrame(wxFrame* parent,
|
||||
ToggleLogWindow(true);
|
||||
if (SConfig::GetInstance().m_InterfaceLogConfigWindow)
|
||||
ToggleLogConfigWindow(true);
|
||||
if (SConfig::GetInstance().m_InterfaceConsole)
|
||||
ToggleConsole(true);
|
||||
}
|
||||
|
||||
// Show window
|
||||
@@ -675,6 +681,7 @@ void CFrame::OnRenderWindowSizeRequest(int width, int height)
|
||||
// Add space for the log/console/debugger window
|
||||
if (SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain &&
|
||||
(SConfig::GetInstance().m_InterfaceLogWindow ||
|
||||
SConfig::GetInstance().m_InterfaceConsole ||
|
||||
SConfig::GetInstance().m_InterfaceLogConfigWindow) &&
|
||||
!m_Mgr->GetPane(wxT("Pane 1")).IsFloating())
|
||||
{
|
||||
|
||||
@@ -127,6 +127,7 @@ public:
|
||||
void UpdateGameList();
|
||||
void ToggleLogWindow(bool bShow);
|
||||
void ToggleLogConfigWindow(bool bShow);
|
||||
void ToggleConsole(bool bShow);
|
||||
void PostEvent(wxCommandEvent& event);
|
||||
void StatusBarMessage(const char * Text, ...);
|
||||
void ClearStatusBar();
|
||||
@@ -237,6 +238,7 @@ private:
|
||||
void ResetToolbarStyle();
|
||||
void TogglePaneStyle(bool On, int EventId);
|
||||
void ToggleNotebookStyle(bool On, long Style);
|
||||
void ResizeConsole();
|
||||
// Float window
|
||||
void DoUnfloatPage(int Id);
|
||||
void OnFloatingPageClosed(wxCloseEvent& event);
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <wx/aui/framemanager.h>
|
||||
|
||||
#include "Common/Common.h"
|
||||
#include "Common/ConsoleListener.h"
|
||||
#include "Common/FileUtil.h"
|
||||
#include "Common/IniFile.h"
|
||||
#include "Common/StringUtil.h"
|
||||
@@ -56,6 +57,7 @@ void CFrame::OnManagerResize(wxAuiManagerEvent& event)
|
||||
m_LogWindow->winpos = m_Mgr->GetPane(_T("Pane 1")).dock_direction;
|
||||
}
|
||||
event.Skip();
|
||||
ResizeConsole();
|
||||
}
|
||||
|
||||
void CFrame::OnPaneClose(wxAuiManagerEvent& event)
|
||||
@@ -68,10 +70,14 @@ void CFrame::OnPaneClose(wxAuiManagerEvent& event)
|
||||
if (!g_pCodeWindow)
|
||||
{
|
||||
if (nb->GetPage(0)->GetId() == IDM_LOGWINDOW ||
|
||||
nb->GetPage(0)->GetId() == IDM_LOGCONFIGWINDOW)
|
||||
nb->GetPage(0)->GetId() == IDM_LOGCONFIGWINDOW ||
|
||||
nb->GetPage(0)->GetId() == IDM_CONSOLEWINDOW)
|
||||
{
|
||||
// Closing a pane containing the logwindow or a console closes both
|
||||
SConfig::GetInstance().m_InterfaceConsole = false;
|
||||
SConfig::GetInstance().m_InterfaceLogWindow = false;
|
||||
SConfig::GetInstance().m_InterfaceLogConfigWindow = false;
|
||||
ToggleConsole(false);
|
||||
ToggleLogWindow(false);
|
||||
ToggleLogConfigWindow(false);
|
||||
}
|
||||
@@ -157,6 +163,59 @@ void CFrame::ToggleLogConfigWindow(bool bShow)
|
||||
TogglePane();
|
||||
}
|
||||
|
||||
void CFrame::ToggleConsole(bool bShow)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
GetMenuBar()->FindItem(IDM_CONSOLEWINDOW)->Check(bShow);
|
||||
|
||||
if (bShow)
|
||||
{
|
||||
// If the console doesn't exist, we create it
|
||||
if (!GetConsoleWindow())
|
||||
{
|
||||
ConsoleListener *Console = LogManager::GetInstance()->GetConsoleListener();
|
||||
Console->Open();
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowWindow(GetConsoleWindow(), SW_SHOW);
|
||||
}
|
||||
|
||||
// Create the parent window if it doesn't exist
|
||||
wxPanel *ConsoleParent = (wxPanel*)FindWindowById(IDM_CONSOLEWINDOW);
|
||||
if (!ConsoleParent) ConsoleParent = new wxPanel(this, IDM_CONSOLEWINDOW,
|
||||
wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _("Console"));
|
||||
|
||||
wxWindow *ConsoleWin = new wxWindow();
|
||||
ConsoleWin->SetHWND((WXHWND)GetConsoleWindow());
|
||||
ConsoleWin->AdoptAttributesFromHWND();
|
||||
ConsoleWin->Reparent(ConsoleParent);
|
||||
|
||||
ConsoleParent->Enable();
|
||||
const int nbIndex = IDM_CONSOLEWINDOW - IDM_LOGWINDOW;
|
||||
DoAddPage(ConsoleParent,
|
||||
g_pCodeWindow ? g_pCodeWindow->iNbAffiliation[nbIndex] : 0,
|
||||
g_pCodeWindow ? bFloatWindow[nbIndex] : false);
|
||||
}
|
||||
else // Hide
|
||||
{
|
||||
if(GetConsoleWindow())
|
||||
ShowWindow(GetConsoleWindow(), SW_HIDE); // WIN32
|
||||
|
||||
wxPanel *ConsoleParent = (wxPanel*)FindWindowById(IDM_CONSOLEWINDOW);
|
||||
if (ConsoleParent)
|
||||
ConsoleParent->Disable();
|
||||
|
||||
// Then close the page
|
||||
DoRemovePage(ConsoleParent, true);
|
||||
}
|
||||
|
||||
// Hide or Show the pane
|
||||
if (!g_pCodeWindow)
|
||||
TogglePane();
|
||||
#endif
|
||||
}
|
||||
|
||||
void CFrame::OnToggleWindow(wxCommandEvent& event)
|
||||
{
|
||||
bool bShow = GetMenuBar()->IsChecked(event.GetId());
|
||||
@@ -173,6 +232,11 @@ void CFrame::OnToggleWindow(wxCommandEvent& event)
|
||||
SConfig::GetInstance().m_InterfaceLogConfigWindow = bShow;
|
||||
ToggleLogConfigWindow(bShow);
|
||||
break;
|
||||
case IDM_CONSOLEWINDOW:
|
||||
if (!g_pCodeWindow)
|
||||
SConfig::GetInstance().m_InterfaceConsole = bShow;
|
||||
ToggleConsole(bShow);
|
||||
break;
|
||||
case IDM_REGISTERWINDOW:
|
||||
g_pCodeWindow->ToggleRegisterWindow(bShow);
|
||||
break;
|
||||
@@ -200,7 +264,7 @@ void CFrame::ClosePages()
|
||||
{
|
||||
ToggleLogWindow(false);
|
||||
ToggleLogConfigWindow(false);
|
||||
|
||||
ToggleConsole(false);
|
||||
if (g_pCodeWindow)
|
||||
{
|
||||
g_pCodeWindow->ToggleCodeWindow(false);
|
||||
@@ -242,6 +306,8 @@ void CFrame::OnNotebookPageClose(wxAuiNotebookEvent& event)
|
||||
ToggleLogWindow(false);
|
||||
if (Ctrl->GetPage(event.GetSelection())->GetId() == IDM_LOGCONFIGWINDOW)
|
||||
ToggleLogConfigWindow(false);
|
||||
if (Ctrl->GetPage(event.GetSelection())->GetId() == IDM_CONSOLEWINDOW)
|
||||
ToggleConsole(false);
|
||||
if (Ctrl->GetPage(event.GetSelection())->GetId() == IDM_REGISTERWINDOW)
|
||||
g_pCodeWindow->ToggleRegisterWindow(false);
|
||||
if (Ctrl->GetPage(event.GetSelection())->GetId() == IDM_BREAKPOINTWINDOW)
|
||||
@@ -264,6 +330,7 @@ void CFrame::OnFloatingPageClosed(wxCloseEvent& event)
|
||||
void CFrame::OnFloatingPageSize(wxSizeEvent& event)
|
||||
{
|
||||
event.Skip();
|
||||
ResizeConsole();
|
||||
}
|
||||
|
||||
void CFrame::OnFloatWindow(wxCommandEvent& event)
|
||||
@@ -356,6 +423,7 @@ void CFrame::OnAllowNotebookDnD(wxAuiNotebookEvent& event)
|
||||
{
|
||||
event.Skip();
|
||||
event.Allow();
|
||||
ResizeConsole();
|
||||
}
|
||||
|
||||
void CFrame::ShowResizePane()
|
||||
@@ -735,6 +803,33 @@ void CFrame::OnSelectPerspective(wxCommandEvent& event)
|
||||
DoLoadPerspective();
|
||||
}
|
||||
|
||||
void CFrame::ResizeConsole()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
// Get the console parent window
|
||||
wxWindow * Win = FindWindowById(IDM_CONSOLEWINDOW);
|
||||
if (!Win) return;
|
||||
|
||||
const int wxBorder = 2, Border = 4,
|
||||
MenuBar = 30, ScrollBar = 19;
|
||||
|
||||
// Get the client size
|
||||
int X = Win->GetSize().GetX();
|
||||
int Y = Win->GetSize().GetY();
|
||||
int InternalWidth = X - wxBorder*2 - ScrollBar;
|
||||
int InternalHeight = Y - wxBorder*2;
|
||||
int WindowWidth = InternalWidth + Border*2 +
|
||||
/*max out the width in the word wrap mode*/ 100;
|
||||
int WindowHeight = InternalHeight + MenuBar;
|
||||
// Resize buffer
|
||||
ConsoleListener* Console = LogManager::GetInstance()->GetConsoleListener();
|
||||
Console->PixelSpace(0,0, InternalWidth, InternalHeight, false);
|
||||
// Move the window to hide the border
|
||||
MoveWindow(GetConsoleWindow(), -Border-wxBorder, -MenuBar-wxBorder,
|
||||
WindowWidth + 100, WindowHeight, true);
|
||||
#endif
|
||||
}
|
||||
|
||||
static int Limit(int i, int Low, int High)
|
||||
{
|
||||
if (i < Low) return Low;
|
||||
@@ -999,6 +1094,11 @@ wxFrame * CFrame::CreateParentFrame(wxWindowID Id, const wxString& Title,
|
||||
|
||||
Frame->Bind(wxEVT_CLOSE_WINDOW, &CFrame::OnFloatingPageClosed, this);
|
||||
|
||||
if (Id == IDM_CONSOLEWINDOW_PARENT)
|
||||
{
|
||||
Frame->Bind(wxEVT_SIZE, &CFrame::OnFloatingPageSize, this);
|
||||
}
|
||||
|
||||
// Main sizer
|
||||
Frame->SetSizer(m_MainSizer);
|
||||
// Minimum frame size
|
||||
|
||||
@@ -258,11 +258,17 @@ void CFrame::CreateMenu()
|
||||
viewMenu->AppendSeparator();
|
||||
viewMenu->AppendCheckItem(IDM_LOGWINDOW, _("Show &Log"));
|
||||
viewMenu->AppendCheckItem(IDM_LOGCONFIGWINDOW, _("Show Log &Configuration"));
|
||||
viewMenu->AppendCheckItem(IDM_CONSOLEWINDOW, _("Show &Console"));
|
||||
viewMenu->AppendSeparator();
|
||||
|
||||
#ifndef _WIN32
|
||||
viewMenu->Enable(IDM_CONSOLEWINDOW, false);
|
||||
#endif
|
||||
|
||||
if (g_pCodeWindow)
|
||||
{
|
||||
viewMenu->Check(IDM_LOGWINDOW, g_pCodeWindow->bShowOnStart[0]);
|
||||
viewMenu->Check(IDM_CONSOLEWINDOW, g_pCodeWindow->bShowOnStart[1]);
|
||||
|
||||
const wxString MenuText[] = {
|
||||
wxTRANSLATE("&Registers"),
|
||||
@@ -285,6 +291,7 @@ void CFrame::CreateMenu()
|
||||
{
|
||||
viewMenu->Check(IDM_LOGWINDOW, SConfig::GetInstance().m_InterfaceLogWindow);
|
||||
viewMenu->Check(IDM_LOGCONFIGWINDOW, SConfig::GetInstance().m_InterfaceLogConfigWindow);
|
||||
viewMenu->Check(IDM_CONSOLEWINDOW, SConfig::GetInstance().m_InterfaceConsole);
|
||||
}
|
||||
|
||||
wxMenu *platformMenu = new wxMenu;
|
||||
|
||||
@@ -130,6 +130,7 @@ enum
|
||||
// Views
|
||||
IDM_LOGWINDOW,
|
||||
IDM_LOGCONFIGWINDOW,
|
||||
IDM_CONSOLEWINDOW,
|
||||
IDM_REGISTERWINDOW,
|
||||
IDM_BREAKPOINTWINDOW,
|
||||
IDM_MEMORYWINDOW,
|
||||
@@ -141,6 +142,7 @@ enum
|
||||
// Float Window IDs
|
||||
IDM_LOGWINDOW_PARENT,
|
||||
IDM_LOGCONFIGWINDOW_PARENT,
|
||||
IDM_CONSOLEWINDOW_PARENT,
|
||||
IDM_REGISTERWINDOW_PARENT,
|
||||
IDM_BREAKPOINTWINDOW_PARENT,
|
||||
IDM_MEMORYWINDOW_PARENT,
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,18 +28,20 @@ public:
|
||||
private:
|
||||
LogManager *m_LogManager;
|
||||
CLogWindow *m_LogWindow;
|
||||
bool m_writeFile, m_writeWindow;
|
||||
bool m_writeFile, m_writeConsole, m_writeWindow, m_writeDebugger;
|
||||
bool enableAll;
|
||||
|
||||
// Controls
|
||||
wxCheckBox *m_writeFileCB, *m_writeWindowCB;
|
||||
wxCheckBox *m_writeFileCB, *m_writeConsoleCB, *m_writeWindowCB, *m_writeDebuggerCB;
|
||||
wxCheckListBox* m_checks;
|
||||
wxRadioBox *m_verbosity;
|
||||
|
||||
void CreateGUIControls();
|
||||
void OnVerbosityChange(wxCommandEvent& event);
|
||||
void OnWriteFileChecked(wxCommandEvent& event);
|
||||
void OnWriteConsoleChecked(wxCommandEvent& event);
|
||||
void OnWriteWindowChecked(wxCommandEvent& event);
|
||||
void OnWriteDebuggerChecked(wxCommandEvent& event);
|
||||
void OnToggleAll(wxCommandEvent& event);
|
||||
void ToggleLog(int _logType, bool enable);
|
||||
void OnLogCheck(wxCommandEvent& event);
|
||||
|
||||
@@ -29,9 +29,11 @@
|
||||
#include <wx/aui/framemanager.h>
|
||||
|
||||
#include "Common/Common.h"
|
||||
#include "Common/ConsoleListener.h"
|
||||
#include "Common/FileUtil.h"
|
||||
#include "Common/IniFile.h"
|
||||
#include "Common/LogManager.h"
|
||||
#include "Core/Console.h"
|
||||
#include "DolphinWX/Frame.h"
|
||||
#include "DolphinWX/LogWindow.h"
|
||||
#include "DolphinWX/WxUtils.h"
|
||||
@@ -42,6 +44,7 @@
|
||||
|
||||
BEGIN_EVENT_TABLE(CLogWindow, wxPanel)
|
||||
EVT_CLOSE(CLogWindow::OnClose)
|
||||
EVT_TEXT_ENTER(IDM_SUBMITCMD, CLogWindow::OnSubmit)
|
||||
EVT_BUTTON(IDM_CLEARLOG, CLogWindow::OnClear)
|
||||
EVT_CHOICE(IDM_FONT, CLogWindow::OnFontChange)
|
||||
EVT_CHECKBOX(IDM_WRAPLINE, CLogWindow::OnWrapLineCheck)
|
||||
@@ -84,7 +87,18 @@ void CLogWindow::CreateGUIControls()
|
||||
|
||||
// Get the logger output settings from the config ini file.
|
||||
ini.Get("Options", "WriteToFile", &m_writeFile, false);
|
||||
ini.Get("Options", "WriteToConsole", &m_writeConsole, true);
|
||||
ini.Get("Options", "WriteToWindow", &m_writeWindow, true);
|
||||
#ifdef _MSC_VER
|
||||
if (IsDebuggerPresent())
|
||||
{
|
||||
ini.Get("Options", "WriteToDebugger", &m_writeDebugger, true);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
m_writeDebugger = false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
|
||||
{
|
||||
@@ -101,6 +115,16 @@ void CLogWindow::CreateGUIControls()
|
||||
else
|
||||
m_LogManager->RemoveListener((LogTypes::LOG_TYPE)i, m_LogManager->GetFileListener());
|
||||
|
||||
if (m_writeConsole && enable)
|
||||
m_LogManager->AddListener((LogTypes::LOG_TYPE)i, m_LogManager->GetConsoleListener());
|
||||
else
|
||||
m_LogManager->RemoveListener((LogTypes::LOG_TYPE)i, m_LogManager->GetConsoleListener());
|
||||
|
||||
if (m_writeDebugger && enable)
|
||||
m_LogManager->AddListener((LogTypes::LOG_TYPE)i, m_LogManager->GetDebuggerListener());
|
||||
else
|
||||
m_LogManager->RemoveListener((LogTypes::LOG_TYPE)i, m_LogManager->GetDebuggerListener());
|
||||
|
||||
m_LogManager->SetLogLevel((LogTypes::LOG_TYPE)i, (LogTypes::LOG_LEVELS)(verbosity));
|
||||
}
|
||||
|
||||
@@ -185,15 +209,25 @@ void CLogWindow::SaveSettings()
|
||||
ini.Save(File::GetUserPath(F_LOGGERCONFIG_IDX));
|
||||
}
|
||||
|
||||
void CLogWindow::OnSubmit(wxCommandEvent& WXUNUSED (event))
|
||||
{
|
||||
if (!m_cmdline) return;
|
||||
Console_Submit(WxStrToStr(m_cmdline->GetValue()).c_str());
|
||||
m_cmdline->SetValue(wxEmptyString);
|
||||
}
|
||||
|
||||
void CLogWindow::OnClear(wxCommandEvent& WXUNUSED (event))
|
||||
{
|
||||
m_Log->Clear();
|
||||
|
||||
|
||||
{
|
||||
std::lock_guard<std::mutex> lk(m_LogSection);
|
||||
int msgQueueSize = (int)msgQueue.size();
|
||||
for (int i = 0; i < msgQueueSize; i++)
|
||||
msgQueue.pop();
|
||||
}
|
||||
|
||||
m_LogManager->GetConsoleListener()->ClearScreen();
|
||||
}
|
||||
|
||||
void CLogWindow::UnPopulateBottom()
|
||||
|
||||
@@ -65,7 +65,7 @@ private:
|
||||
bool m_ignoreLogTimer;
|
||||
LogManager *m_LogManager;
|
||||
std::queue<std::pair<u8, wxString> > msgQueue;
|
||||
bool m_writeFile, m_writeWindow, m_LogAccess;
|
||||
bool m_writeFile, m_writeConsole, m_writeWindow, m_writeDebugger, m_LogAccess;
|
||||
|
||||
// Controls
|
||||
wxBoxSizer *sBottom;
|
||||
@@ -82,6 +82,7 @@ private:
|
||||
void PopulateBottom();
|
||||
void UnPopulateBottom();
|
||||
void OnClose(wxCloseEvent& event);
|
||||
void OnSubmit(wxCommandEvent& event);
|
||||
void OnFontChange(wxCommandEvent& event);
|
||||
void OnWrapLineCheck(wxCommandEvent& event);
|
||||
void OnClear(wxCommandEvent& event);
|
||||
|
||||
Reference in New Issue
Block a user