diff options
| author | Mat M <mathew1800@gmail.com> | 2016-10-02 16:33:18 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-10-02 16:33:18 -0400 |
| commit | 10cccd922818fb49d9df2a0e31ade0f7beebd5e5 (patch) | |
| tree | 7b5fa561db9305cb84790bfcc0264f8bdaa5750f /Source | |
| parent | f292df233150c4ea2bdee38379c4fca1209b53fe (diff) | |
| parent | d1475dfb9ce44b675a3bf002101c07ff5076145f (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.cpp | 3 | ||||
| -rw-r--r-- | Source/Core/DolphinWX/LogConfigWindow.h | 2 | ||||
| -rw-r--r-- | Source/Core/DolphinWX/LogWindow.cpp | 18 | ||||
| -rw-r--r-- | Source/Core/DolphinWX/LogWindow.h | 2 |
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(); }; |
