--- 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 <cpcategorysettingformitemdata.h>
#include <hbapplication.h>
#include <cpevent.h>
-
+#include <QTimer>
//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<CpMainView *>(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