homescreenapp/hsapplication/tsrc/t_hsapplication/t_hsapplicationexe/src/hsscene_mock.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreenapp/hsapplication/tsrc/t_hsapplication/t_hsapplicationexe/src/hsscene_mock.cpp Mon Sep 20 10:19:07 2010 +0300
@@ -0,0 +1,183 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include <HbInstance>
+#include "hsdomainmodeldatastructures.h"
+#include "hsscene.h"
+#include "hspage.h"
+#include "hswidgethost.h"
+#include "hswallpaper.h"
+#include "hsconfiguration.h"
+
+HsScene::~HsScene()
+{
+ delete mWallpaper;
+ qDeleteAll(mPages);
+}
+
+int HsScene::databaseId() const
+{
+ return mDatabaseId;
+}
+
+bool HsScene::load()
+{
+ return true;
+}
+
+HsWallpaper *HsScene::wallpaper() const
+{
+ return mWallpaper;
+}
+
+QList<HsPage *> HsScene::pages() const
+{
+ return mPages;
+}
+
+bool HsScene::addPage(HsPage *page)
+{
+ if (!page) {
+ return false;
+ }
+
+ if (mPages.contains(page)) {
+ return true;
+ }
+
+ mPages << page;
+ return true;
+}
+
+bool HsScene::removePage(HsPage *page)
+{
+ if (!page) {
+ return false;
+ }
+ return mPages.removeOne(page);
+}
+
+bool HsScene::setActivePage(HsPage *page)
+{
+ if (!page) {
+ return false;
+ }
+
+ if (!mPages.contains(page)) {
+ return false;
+ }
+
+ mActivePage = page;
+ return true;
+}
+
+bool HsScene::setActivePageIndex(int index)
+{
+ if (index < 0 || mPages.count() <= index) {
+ return false;
+ }
+ return setActivePage(mPages[index]);
+}
+
+HsPage *HsScene::activePage() const
+{
+ return mActivePage;
+}
+
+int HsScene::activePageIndex() const
+{
+ return mPages.indexOf(mActivePage);
+}
+
+void HsScene::setActiveWidget(HsWidgetHost *widget)
+{
+ mActiveWidget = widget;
+}
+
+HsWidgetHost *HsScene::activeWidget() const
+{
+ return mActiveWidget;
+}
+
+void HsScene::setOnline(bool online)
+{
+ mIsOnline = online;
+ foreach (HsPage *page, mPages) {
+ page->setOnline(online);
+ }
+}
+
+bool HsScene::isOnline()const
+{
+ return mIsOnline;
+}
+
+/*!
+ Singleton.
+*/
+HsScene *HsScene::instance()
+{
+ return mInstance;
+}
+
+HsScene *HsScene::takeInstance()
+{
+ HsScene *instance = mInstance;
+ mInstance = 0;
+ return instance;
+}
+
+void HsScene::setInstance(HsScene *instance)
+{
+ if (mInstance != instance) {
+ delete mInstance;
+ mInstance = instance;
+ }
+}
+
+/*!
+ Listens for application background/foreground changes.
+*/
+bool HsScene::eventFilter(QObject *watched, QEvent *event)
+{
+ switch (event->type()) {
+ case QEvent::ApplicationActivate:
+ mActivePage->showWidgets();
+ break;
+ case QEvent::ApplicationDeactivate:
+ mActivePage->hideWidgets();
+ break;
+ default:
+ break;
+ }
+ return QObject::eventFilter(watched, event);
+}
+
+HsScene::HsScene(QObject *parent)
+ : QObject(parent),
+ mDatabaseId(-1),
+ mWallpaper(0),
+ mActivePage(0),
+ mActiveWidget(0),
+ mIsOnline(true)
+{
+}
+
+/*!
+ Points to the scene instance.
+*/
+HsScene *HsScene::mInstance = 0;