diff -r 52d644758b05 -r 76d2cf7a585e logsui/logsapp/src/logsmainwindow.cpp --- a/logsui/logsapp/src/logsmainwindow.cpp Fri Aug 06 14:57:47 2010 +0300 +++ b/logsui/logsapp/src/logsmainwindow.cpp Mon Aug 23 18:14:51 2010 +0300 @@ -18,14 +18,17 @@ #include "logsmainwindow.h" #include "logslogger.h" #include +#include #include // ----------------------------------------------------------------------------- // LogsMainWindow::LogsMainWindow // ----------------------------------------------------------------------------- // -LogsMainWindow::LogsMainWindow() : HbMainWindow(), mForeground(false) +LogsMainWindow::LogsMainWindow() + : HbMainWindow(), mForeground(false), mLocaleChanged(false) { + qApp->installEventFilter(this); } // ----------------------------------------------------------------------------- @@ -43,7 +46,6 @@ void LogsMainWindow::sendAppToBackground() { LOGS_QDEBUG( "logs [UI] -> LogsMainWindow::sendAppToBackground" ); - mForeground = false; XQServiceUtil::toBackground(true); LOGS_QDEBUG( "logs [UI] <- LogsMainWindow::sendAppToBackground" ); } @@ -55,7 +57,6 @@ void LogsMainWindow::bringAppToForeground() { LOGS_QDEBUG( "logs [UI] -> LogsMainWindow::bringAppToForeground" ); - mForeground = true; show(); raise(); LOGS_QDEBUG( "logs [UI] <- LogsMainWindow::bringAppToForeground" ); @@ -87,3 +88,31 @@ HbMainWindow::keyPressEvent(event); } +// ----------------------------------------------------------------------------- +// LogsMainWindow::eventFilter +// ----------------------------------------------------------------------------- +// +bool LogsMainWindow::eventFilter(QObject *obj, QEvent *event) +{ + if (event->type() == QEvent::ApplicationActivate) { + LOGS_QDEBUG( "logs [UI] -> eventFilter(), QEvent::ApplicationActivate" ); + mForeground = true; + if (mLocaleChanged) { + LOGS_QDEBUG( "logs [UI] -> locale changed when we were on BG" ); + emit localeChanged(); + mLocaleChanged = false; + } + emit appGainedForeground(); + } else if (event->type() == QEvent::ApplicationDeactivate) { + LOGS_QDEBUG( "logs [UI] -> eventFilter(), QEvent::ApplicationDeactivate" ); + mForeground = false; + } else if (event->type() == QEvent::LocaleChange) { + if (mForeground) { + emit localeChanged(); + } else { + mLocaleChanged = true; + } + } + + return HbMainWindow::eventFilter(obj,event); +}