controlpanelui/src/cpapplication/src/cpmainwindow.cpp
author hgs
Thu, 30 Sep 2010 16:15:53 +0800
changeset 41 ab0490982943
parent 33 0cfa53de576f
child 43 aae8b749572d
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0""
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "cpmainwindow.h"
hgs
parents:
diff changeset
    19
#include "cpmainview.h"
hgs
parents:
diff changeset
    20
#include <cpplugininterface.h>
hgs
parents:
diff changeset
    21
#include <cpcategorysettingformitemdata.h>
hgs
parents:
diff changeset
    22
#include <hbapplication.h>
hgs
parents:
diff changeset
    23
#include <cpevent.h>
41
hgs
parents: 33
diff changeset
    24
#include <QTimer>
19
hgs
parents:
diff changeset
    25
//CpMainWindow implementation
hgs
parents:
diff changeset
    26
CpMainWindow::CpMainWindow(QWidget *parent /*= 0*/, Hb::WindowFlags windowFlags /*= Hb::WindowFlagNone*/)
41
hgs
parents: 33
diff changeset
    27
: HbMainWindow(parent,windowFlags),mStartupTimer(0)
19
hgs
parents:
diff changeset
    28
{
41
hgs
parents: 33
diff changeset
    29
    // start a zero interval timer to identify the startup of control panel is finished.
hgs
parents: 33
diff changeset
    30
    mStartupTimer = new QTimer(this);         
hgs
parents: 33
diff changeset
    31
    connect(mStartupTimer, SIGNAL(timeout()), this, SLOT(onStartupFininshed()));
hgs
parents: 33
diff changeset
    32
    mStartupTimer->start();
19
hgs
parents:
diff changeset
    33
}
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
CpMainWindow::~CpMainWindow()
hgs
parents:
diff changeset
    36
{
33
hgs
parents: 22
diff changeset
    37
    CpMainView *mainView = qobject_cast<CpMainView *>(views().first());
41
hgs
parents: 33
diff changeset
    38
    if(mainView != 0) {
33
hgs
parents: 22
diff changeset
    39
        mainView->saveActivity();
41
hgs
parents: 33
diff changeset
    40
    }
hgs
parents: 33
diff changeset
    41
    if(mStartupTimer != 0) {
hgs
parents: 33
diff changeset
    42
        delete mStartupTimer;
hgs
parents: 33
diff changeset
    43
    } 
19
hgs
parents:
diff changeset
    44
}
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
bool CpMainWindow::event(QEvent *e)
hgs
parents:
diff changeset
    47
{
hgs
parents:
diff changeset
    48
    if (e->type() == (QEvent::Type)(CpCreatePluginItemDataEvent::CreatePluginItemData)) {
hgs
parents:
diff changeset
    49
        CpCreatePluginItemDataEvent *event = static_cast<CpCreatePluginItemDataEvent*>(e);
hgs
parents:
diff changeset
    50
        ::createCpPluginItemData(event);
hgs
parents:
diff changeset
    51
        e->accept();
hgs
parents:
diff changeset
    52
    }
hgs
parents:
diff changeset
    53
    return HbMainWindow::event(e);
hgs
parents:
diff changeset
    54
}
hgs
parents:
diff changeset
    55
41
hgs
parents: 33
diff changeset
    56
/**
hgs
parents: 33
diff changeset
    57
 * Emit applicationReady signal when start up process is finished.
hgs
parents: 33
diff changeset
    58
 */
hgs
parents: 33
diff changeset
    59
void CpMainWindow::onStartupFininshed()
hgs
parents: 33
diff changeset
    60
{
hgs
parents: 33
diff changeset
    61
    // emit applicationReady signal when the all initilizing event has been deal with.
hgs
parents: 33
diff changeset
    62
    // only emit it once
hgs
parents: 33
diff changeset
    63
    emit applicationReady();
hgs
parents: 33
diff changeset
    64
    if (mStartupTimer != 0) {
hgs
parents: 33
diff changeset
    65
        mStartupTimer->stop();
hgs
parents: 33
diff changeset
    66
        delete mStartupTimer;
hgs
parents: 33
diff changeset
    67
        mStartupTimer = 0;
hgs
parents: 33
diff changeset
    68
    }    
hgs
parents: 33
diff changeset
    69
}
19
hgs
parents:
diff changeset
    70
//End of File
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72