diff -r 2fee987ebaff -r ab0490982943 controlpanelui/src/cpapplication/src/cpmainwindow.cpp --- a/controlpanelui/src/cpapplication/src/cpmainwindow.cpp Thu Sep 02 17:11:27 2010 +0800 +++ b/controlpanelui/src/cpapplication/src/cpmainwindow.cpp Thu Sep 30 16:15:53 2010 +0800 @@ -21,20 +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) - { + if(mainView != 0) { mainView->saveActivity(); - } + } + if(mStartupTimer != 0) { + delete mStartupTimer; + } } bool CpMainWindow::event(QEvent *e) @@ -47,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