diff -r a5692c68d772 -r 593f946f4fec controlpanelui/src/cpapplication/src/cpmainwindow.cpp --- a/controlpanelui/src/cpapplication/src/cpmainwindow.cpp Fri Jun 25 17:12:20 2010 +0800 +++ b/controlpanelui/src/cpapplication/src/cpmainwindow.cpp Wed Sep 29 10:09:58 2010 +0800 @@ -21,16 +21,26 @@ #include #include #include - +#include //CpMainWindow implementation CpMainWindow::CpMainWindow(QWidget *parent /*= 0*/, Hb::WindowFlags windowFlags /*= Hb::WindowFlagNone*/) -: HbMainWindow(parent,windowFlags) +: HbMainWindow(parent,windowFlags),mStartupTimer(0) { + // start a zero interval timer to identify the startup of control panel is finished. + mStartupTimer = new QTimer(this); + connect(mStartupTimer, SIGNAL(timeout()), this, SLOT(onStartupFininshed())); + mStartupTimer->start(); } CpMainWindow::~CpMainWindow() { - + CpMainView *mainView = qobject_cast(views().first()); + if(mainView != 0) { + mainView->saveActivity(); + } + if(mStartupTimer != 0) { + delete mStartupTimer; + } } bool CpMainWindow::event(QEvent *e) @@ -43,6 +53,20 @@ return HbMainWindow::event(e); } +/** + * Emit applicationReady signal when start up process is finished. + */ +void CpMainWindow::onStartupFininshed() +{ + // emit applicationReady signal when the all initilizing event has been deal with. + // only emit it once + emit applicationReady(); + if (mStartupTimer != 0) { + mStartupTimer->stop(); + delete mStartupTimer; + mStartupTimer = 0; + } +} //End of File