homescreenapp/stateplugins/hsmenuworkerstateplugin/tsrc/t_hsmenuworkerstateplugin/src/hsscene_mock.cpp
author hgs
Wed, 06 Oct 2010 16:06:24 +0300
changeset 97 66b5fe3c07fd
parent 90 3ac3aaebaee5
permissions -rw-r--r--
201039_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
90
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 <HbInstance>
hgs
parents:
diff changeset
    19
#include "hsdomainmodeldatastructures.h"
hgs
parents:
diff changeset
    20
#include "hsscene.h"
hgs
parents:
diff changeset
    21
#include "hspage.h"
hgs
parents:
diff changeset
    22
#include "hswidgethost.h"
hgs
parents:
diff changeset
    23
#include "hswallpaper.h"
hgs
parents:
diff changeset
    24
#include "hsconfiguration.h"
hgs
parents:
diff changeset
    25
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    26
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    27
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    28
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    29
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    30
//
90
hgs
parents:
diff changeset
    31
HsScene::~HsScene()
hgs
parents:
diff changeset
    32
{
hgs
parents:
diff changeset
    33
    delete mWallpaper;
hgs
parents:
diff changeset
    34
    qDeleteAll(mPages);
hgs
parents:
diff changeset
    35
}
hgs
parents:
diff changeset
    36
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    37
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    38
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    39
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    40
//
90
hgs
parents:
diff changeset
    41
int HsScene::databaseId() const
hgs
parents:
diff changeset
    42
{
hgs
parents:
diff changeset
    43
    return mDatabaseId;
hgs
parents:
diff changeset
    44
}
hgs
parents:
diff changeset
    45
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    46
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    47
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    48
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    49
//
90
hgs
parents:
diff changeset
    50
bool HsScene::load()
hgs
parents:
diff changeset
    51
{
hgs
parents:
diff changeset
    52
    int pageCount = property("pageCount").toInt();
hgs
parents:
diff changeset
    53
    int defaultPageIndex = property("defaultPageIndex").toInt();
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
    mDatabaseId = 1; //Just one scene in the test
hgs
parents:
diff changeset
    56
    if (HSCONFIGURATION_GET(sceneType) == HsConfiguration::SceneWallpaper) {
hgs
parents:
diff changeset
    57
        mWallpaper = new HsSceneWallpaper(this);
hgs
parents:
diff changeset
    58
    }
hgs
parents:
diff changeset
    59
    
hgs
parents:
diff changeset
    60
    for (int i = 0; i < pageCount; ++i) {
hgs
parents:
diff changeset
    61
        HsPage *page = new HsPage;
hgs
parents:
diff changeset
    62
        page->load();
hgs
parents:
diff changeset
    63
        mPages << page;
hgs
parents:
diff changeset
    64
    }
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
    if(defaultPageIndex > -1){
hgs
parents:
diff changeset
    67
        mActivePage = mPages[defaultPageIndex];
hgs
parents:
diff changeset
    68
        mActivePage->setRemovable(false);
hgs
parents:
diff changeset
    69
    }
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
    return true;
hgs
parents:
diff changeset
    72
}
hgs
parents:
diff changeset
    73
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    74
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    75
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    76
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    77
//
90
hgs
parents:
diff changeset
    78
HsWallpaper *HsScene::wallpaper() const
hgs
parents:
diff changeset
    79
{
hgs
parents:
diff changeset
    80
    return mWallpaper;
hgs
parents:
diff changeset
    81
}
hgs
parents:
diff changeset
    82
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    83
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    84
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    85
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    86
//
90
hgs
parents:
diff changeset
    87
QList<HsPage *> HsScene::pages() const
hgs
parents:
diff changeset
    88
{
hgs
parents:
diff changeset
    89
    return mPages;
hgs
parents:
diff changeset
    90
}
hgs
parents:
diff changeset
    91
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    92
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    93
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    94
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    95
//
90
hgs
parents:
diff changeset
    96
bool HsScene::addPage(HsPage *page)
hgs
parents:
diff changeset
    97
{
hgs
parents:
diff changeset
    98
    if (!page) {
hgs
parents:
diff changeset
    99
        return false;
hgs
parents:
diff changeset
   100
    }
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
    if (mPages.contains(page)) {
hgs
parents:
diff changeset
   103
        return true;
hgs
parents:
diff changeset
   104
    }
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
    mPages << page;
hgs
parents:
diff changeset
   107
    return true;
hgs
parents:
diff changeset
   108
}
hgs
parents:
diff changeset
   109
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   110
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   111
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   112
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   113
//
90
hgs
parents:
diff changeset
   114
bool HsScene::removePage(HsPage *page)
hgs
parents:
diff changeset
   115
{
hgs
parents:
diff changeset
   116
    if (!page) {
hgs
parents:
diff changeset
   117
        return false;
hgs
parents:
diff changeset
   118
    }
hgs
parents:
diff changeset
   119
    return mPages.removeOne(page);
hgs
parents:
diff changeset
   120
}
hgs
parents:
diff changeset
   121
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   122
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   123
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   124
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   125
//
90
hgs
parents:
diff changeset
   126
bool HsScene::setActivePage(HsPage *page)
hgs
parents:
diff changeset
   127
{
hgs
parents:
diff changeset
   128
    if (!page) {
hgs
parents:
diff changeset
   129
        return false;
hgs
parents:
diff changeset
   130
    }
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
    if (!mPages.contains(page)) {
hgs
parents:
diff changeset
   133
        return false;
hgs
parents:
diff changeset
   134
    }
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
    mActivePage = page;
hgs
parents:
diff changeset
   137
    return true;
hgs
parents:
diff changeset
   138
}
hgs
parents:
diff changeset
   139
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   140
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   141
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   142
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   143
//
90
hgs
parents:
diff changeset
   144
bool HsScene::setActivePageIndex(int index)
hgs
parents:
diff changeset
   145
{
hgs
parents:
diff changeset
   146
    if (index < 0 || mPages.count() <= index) {
hgs
parents:
diff changeset
   147
        return false;
hgs
parents:
diff changeset
   148
    }
hgs
parents:
diff changeset
   149
    return setActivePage(mPages[index]);
hgs
parents:
diff changeset
   150
}
hgs
parents:
diff changeset
   151
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   152
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   153
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   154
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   155
//
90
hgs
parents:
diff changeset
   156
HsPage *HsScene::activePage() const
hgs
parents:
diff changeset
   157
{
hgs
parents:
diff changeset
   158
    return mActivePage;
hgs
parents:
diff changeset
   159
}
hgs
parents:
diff changeset
   160
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   161
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   162
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   163
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   164
//
90
hgs
parents:
diff changeset
   165
int HsScene::activePageIndex() const
hgs
parents:
diff changeset
   166
{
hgs
parents:
diff changeset
   167
    return mPages.indexOf(mActivePage);
hgs
parents:
diff changeset
   168
}
hgs
parents:
diff changeset
   169
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   170
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   171
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   172
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   173
//
90
hgs
parents:
diff changeset
   174
void HsScene::setActiveWidget(HsWidgetHost *widget)
hgs
parents:
diff changeset
   175
{
hgs
parents:
diff changeset
   176
    mActiveWidget = widget;
hgs
parents:
diff changeset
   177
}
hgs
parents:
diff changeset
   178
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   179
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   180
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   181
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   182
//
90
hgs
parents:
diff changeset
   183
HsWidgetHost *HsScene::activeWidget() const
hgs
parents:
diff changeset
   184
{
hgs
parents:
diff changeset
   185
    return mActiveWidget;
hgs
parents:
diff changeset
   186
}
hgs
parents:
diff changeset
   187
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   188
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   189
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   190
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   191
//
90
hgs
parents:
diff changeset
   192
void HsScene::setOnline(bool online)
hgs
parents:
diff changeset
   193
{
hgs
parents:
diff changeset
   194
    mIsOnline = online;
hgs
parents:
diff changeset
   195
    foreach (HsPage *page, mPages) {
hgs
parents:
diff changeset
   196
        page->setOnline(online);
hgs
parents:
diff changeset
   197
    }
hgs
parents:
diff changeset
   198
}
hgs
parents:
diff changeset
   199
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   200
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   201
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   202
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   203
//
90
hgs
parents:
diff changeset
   204
bool HsScene::isOnline()const
hgs
parents:
diff changeset
   205
{
hgs
parents:
diff changeset
   206
    return mIsOnline;
hgs
parents:
diff changeset
   207
}
hgs
parents:
diff changeset
   208
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   209
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   210
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   211
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   212
//
90
hgs
parents:
diff changeset
   213
HsScene *HsScene::instance()
hgs
parents:
diff changeset
   214
{
hgs
parents:
diff changeset
   215
    if (!mInstance) {
hgs
parents:
diff changeset
   216
        mInstance = new HsScene;
hgs
parents:
diff changeset
   217
    }
hgs
parents:
diff changeset
   218
    return mInstance;
hgs
parents:
diff changeset
   219
}
hgs
parents:
diff changeset
   220
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   221
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   222
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   223
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   224
//
90
hgs
parents:
diff changeset
   225
HsScene *HsScene::takeInstance()
hgs
parents:
diff changeset
   226
{
hgs
parents:
diff changeset
   227
    HsScene *instance = mInstance;
hgs
parents:
diff changeset
   228
    mInstance = 0;
hgs
parents:
diff changeset
   229
    return instance;
hgs
parents:
diff changeset
   230
}
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   231
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   232
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   233
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   234
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   235
//
90
hgs
parents:
diff changeset
   236
void HsScene::setInstance(HsScene *instance)
hgs
parents:
diff changeset
   237
{
hgs
parents:
diff changeset
   238
    if (mInstance != instance) {
hgs
parents:
diff changeset
   239
        delete mInstance;
hgs
parents:
diff changeset
   240
        mInstance = instance; 
hgs
parents:
diff changeset
   241
    }    
hgs
parents:
diff changeset
   242
}
hgs
parents:
diff changeset
   243
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   244
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   245
// Listens for application background/foreground changes.
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   246
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   247
//
90
hgs
parents:
diff changeset
   248
bool HsScene::eventFilter(QObject *watched, QEvent *event)
hgs
parents:
diff changeset
   249
{
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   250
    switch (event->type()) {
90
hgs
parents:
diff changeset
   251
        case QEvent::ApplicationActivate:
hgs
parents:
diff changeset
   252
            mActivePage->showWidgets();
hgs
parents:
diff changeset
   253
            break;
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   254
        case QEvent::ApplicationDeactivate:
90
hgs
parents:
diff changeset
   255
            mActivePage->hideWidgets();
hgs
parents:
diff changeset
   256
            break;
hgs
parents:
diff changeset
   257
        default:
hgs
parents:
diff changeset
   258
            break;
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   259
    }
90
hgs
parents:
diff changeset
   260
    return QObject::eventFilter(watched, event);
hgs
parents:
diff changeset
   261
}
hgs
parents:
diff changeset
   262
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   263
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   264
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   265
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   266
//
90
hgs
parents:
diff changeset
   267
HsScene::HsScene(QObject *parent)
hgs
parents:
diff changeset
   268
  : QObject(parent),
hgs
parents:
diff changeset
   269
    mDatabaseId(-1),
hgs
parents:
diff changeset
   270
    mWallpaper(0),
hgs
parents:
diff changeset
   271
    mActivePage(0),
hgs
parents:
diff changeset
   272
    mActiveWidget(0),
hgs
parents:
diff changeset
   273
    mIsOnline(true)
hgs
parents:
diff changeset
   274
{
hgs
parents:
diff changeset
   275
}
hgs
parents:
diff changeset
   276
hgs
parents:
diff changeset
   277
/*!
hgs
parents:
diff changeset
   278
    Points to the scene instance.
hgs
parents:
diff changeset
   279
*/
hgs
parents:
diff changeset
   280
HsScene *HsScene::mInstance = 0;