summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorMat M <mathew1800@gmail.com>2016-10-02 16:33:18 -0400
committerGitHub <noreply@github.com>2016-10-02 16:33:18 -0400
commit10cccd922818fb49d9df2a0e31ade0f7beebd5e5 (patch)
tree7b5fa561db9305cb84790bfcc0264f8bdaa5750f /Source
parentf292df233150c4ea2bdee38379c4fca1209b53fe (diff)
parentd1475dfb9ce44b675a3bf002101c07ff5076145f (diff)
Merge pull request #4231 from ligfx/fix_sigabrt_when_quitting_from_dock
Move LogWindow/LogConfigWindow destructor logic -> OnClose
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/DolphinWX/LogConfigWindow.cpp3
-rw-r--r--Source/Core/DolphinWX/LogConfigWindow.h2
-rw-r--r--Source/Core/DolphinWX/LogWindow.cpp18
-rw-r--r--Source/Core/DolphinWX/LogWindow.h2
4 files changed, 14 insertions, 11 deletions
diff --git a/Source/Core/DolphinWX/LogConfigWindow.cpp b/Source/Core/DolphinWX/LogConfigWindow.cpp
index d6c6b76860..da517d288f 100644
--- a/Source/Core/DolphinWX/LogConfigWindow.cpp
+++ b/Source/Core/DolphinWX/LogConfigWindow.cpp
@@ -25,13 +25,14 @@ LogConfigWindow::LogConfigWindow(wxWindow* parent, wxWindowID id)
_("Log Configuration")),
enableAll(true)
{
+ Bind(wxEVT_CLOSE_WINDOW, &LogConfigWindow::OnClose, this);
SetMinSize(wxSize(100, 100));
m_LogManager = LogManager::GetInstance();
CreateGUIControls();
LoadSettings();
}
-LogConfigWindow::~LogConfigWindow()
+void LogConfigWindow::OnClose(wxCloseEvent& event)
{
SaveSettings();
}
diff --git a/Source/Core/DolphinWX/LogConfigWindow.h b/Source/Core/DolphinWX/LogConfigWindow.h
index f9a3a4806d..3259c060ec 100644
--- a/Source/Core/DolphinWX/LogConfigWindow.h
+++ b/Source/Core/DolphinWX/LogConfigWindow.h
@@ -15,7 +15,6 @@ class LogConfigWindow : public wxPanel
{
public:
LogConfigWindow(wxWindow* parent, wxWindowID id = wxID_ANY);
- ~LogConfigWindow();
void SaveSettings();
void LoadSettings();
@@ -32,6 +31,7 @@ private:
void CreateGUIControls();
void OnVerbosityChange(wxCommandEvent& event);
+ void OnClose(wxCloseEvent& event);
void OnWriteFileChecked(wxCommandEvent& event);
void OnWriteConsoleChecked(wxCommandEvent& event);
void OnWriteWindowChecked(wxCommandEvent& event);
diff --git a/Source/Core/DolphinWX/LogWindow.cpp b/Source/Core/DolphinWX/LogWindow.cpp
index 940c647da1..1b47f16883 100644
--- a/Source/Core/DolphinWX/LogWindow.cpp
+++ b/Source/Core/DolphinWX/LogWindow.cpp
@@ -149,18 +149,20 @@ void CLogWindow::CreateGUIControls()
m_cmdline->SetFocus();
}
-CLogWindow::~CLogWindow()
-{
- for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
- {
- m_LogManager->RemoveListener((LogTypes::LOG_TYPE)i, LogListener::LOG_WINDOW_LISTENER);
- }
-}
-
void CLogWindow::OnClose(wxCloseEvent& event)
{
SaveSettings();
event.Skip();
+ RemoveAllListeners();
+}
+
+void CLogWindow::RemoveAllListeners()
+{
+ for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
+ {
+ m_LogManager->RemoveListener(static_cast<LogTypes::LOG_TYPE>(i),
+ LogListener::LOG_WINDOW_LISTENER);
+ }
}
void CLogWindow::SaveSettings()
diff --git a/Source/Core/DolphinWX/LogWindow.h b/Source/Core/DolphinWX/LogWindow.h
index c3236acd3e..61fa12f71c 100644
--- a/Source/Core/DolphinWX/LogWindow.h
+++ b/Source/Core/DolphinWX/LogWindow.h
@@ -28,7 +28,6 @@ public:
CLogWindow(CFrame* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL,
const wxString& name = _("Log"));
- ~CLogWindow();
void SaveSettings();
void Log(LogTypes::LOG_LEVELS, const char* text) override;
@@ -63,5 +62,6 @@ private:
void OnWrapLineCheck(wxCommandEvent& event);
void OnClear(wxCommandEvent& event);
void OnLogTimer(wxTimerEvent& WXUNUSED(event));
+ void RemoveAllListeners();
void UpdateLog();
};