Paper over some bad logic in logwindow with more bad logic :p (that is, log checkbox values now load OK even if you disable the logwindow). really should stop with all this addlistener / removelistener stuff and just add them once and then enable/disable. would be much clearer. but too lazy.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2714 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hrydgard 2009-03-21 17:00:07 +00:00
parent 6bec794002
commit d1285b75ee
1 changed files with 13 additions and 9 deletions

View File

@ -212,9 +212,8 @@ void CLogWindow::OnClear(wxCommandEvent& WXUNUSED (event))
m_log->Clear(); m_log->Clear();
m_logSection.Enter(); m_logSection.Enter();
//msgQueue.Clear() int msgQueueSize = (int)msgQueue.size();
int msgQueueSize = msgQueue.size(); for (int i = 0; i < msgQueueSize; i++)
for (unsigned int i = 0; i < msgQueueSize; i++)
msgQueue.pop(); msgQueue.pop();
m_logSection.Leave(); m_logSection.Leave();
@ -227,12 +226,12 @@ void CLogWindow::OnClear(wxCommandEvent& WXUNUSED (event))
void CLogWindow::OnToggleAll(wxCommandEvent& WXUNUSED (event)) void CLogWindow::OnToggleAll(wxCommandEvent& WXUNUSED (event))
{ {
static bool enableAll = false; static bool enableAll = false;
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i) for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
{ {
ToggleLog(i, enableAll); ToggleLog(i, enableAll);
} }
SaveSettings();
enableAll = !enableAll; enableAll = !enableAll;
} }
@ -244,19 +243,24 @@ void CLogWindow::UpdateChecks()
{ {
// [F|RES] hide the window while we fill it... wxwidgets gets trouble // [F|RES] hide the window while we fill it... wxwidgets gets trouble
// if you don't do it (at least the win version) // if you don't do it (at least the win version)
m_checks->Show(false); m_checks->Freeze();
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; i++) for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; i++)
{ {
m_checks->Append(wxString::FromAscii(m_logManager->getFullName( (LogTypes::LOG_TYPE)i ))); m_checks->Append(wxString::FromAscii(m_logManager->getFullName( (LogTypes::LOG_TYPE)i )));
} }
m_checks->Show(true); m_checks->Thaw();
} }
m_checks->Freeze();
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; i++) for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; i++)
{ {
m_checks->Check(i, m_logManager->isListener((LogTypes::LOG_TYPE)i, this)); m_checks->Check(i,
m_logManager->isListener((LogTypes::LOG_TYPE)i, this) ||
m_logManager->isListener((LogTypes::LOG_TYPE)i, m_console) ||
m_logManager->isListener((LogTypes::LOG_TYPE)i, m_fileLog));
} }
m_checks->Thaw();
} }
// When an option is changed, save the change // When an option is changed, save the change
@ -329,6 +333,8 @@ void CLogWindow::OnLogCheck(wxCommandEvent& event)
{ {
int i = event.GetInt(); int i = event.GetInt();
ToggleLog(i, m_checks->IsChecked(i)); ToggleLog(i, m_checks->IsChecked(i));
SaveSettings();
} }
void CLogWindow::ToggleLog(int _logType, bool enable) void CLogWindow::ToggleLog(int _logType, bool enable)
@ -354,8 +360,6 @@ void CLogWindow::ToggleLog(int _logType, bool enable)
m_logManager->removeListener(logType, m_fileLog); m_logManager->removeListener(logType, m_fileLog);
m_logManager->removeListener(logType, m_console); m_logManager->removeListener(logType, m_console);
} }
SaveSettings();
} }
void CLogWindow::OnLogTimer(wxTimerEvent& WXUNUSED(event)) void CLogWindow::OnLogTimer(wxTimerEvent& WXUNUSED(event))