--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/launcher/src/launchermainwindow.cpp Tue Aug 31 15:15:20 2010 +0300
@@ -0,0 +1,121 @@
+/*
+* Copyright (c) 2010 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 <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbdocumentloader.h>
+
+#include "enginewrapper.h"
+#include "commonActions.h"
+#include "applicationview.h"
+#include "outputview.h"
+#include "launchermainwindow.h"
+
+// Here we create custom document loader to be able to use custom views in XML.
+class LauncherDocumentLoader : public HbDocumentLoader
+{
+public:
+ virtual QObject *createObject(const QString& type, const QString &name);
+};
+
+QObject *LauncherDocumentLoader::createObject(const QString& type, const QString &name)
+{
+ // Application view
+ if (type == ApplicationView::staticMetaObject.className()) {
+ QObject *object = new ApplicationView;
+ object->setObjectName(name);
+ return object;
+ }
+
+ // Output view
+ else if (type == OutputView::staticMetaObject.className()) {
+ QObject *object = new OutputView;
+ object->setObjectName(name);
+ return object;
+ }
+
+ return HbDocumentLoader::createObject(type, name);
+}
+
+
+LauncherMainWindow::LauncherMainWindow( QWidget *parent ) : HbMainWindow( parent )
+ ,mEngineWrapper(0)
+ ,mApplicationView(0)
+ ,mOutputView(0)
+ ,mCommonActions(0)
+ {
+ }
+
+LauncherMainWindow::~LauncherMainWindow ()
+ {
+ if(mCommonActions)
+ delete mCommonActions;
+ if(mEngineWrapper)
+ delete mEngineWrapper;
+ }
+
+int LauncherMainWindow::init( HbApplication &app )
+ {
+
+ // Create Engine Wrapper and initialize it
+ mEngineWrapper = new EngineWrapper(this);
+ if (!mEngineWrapper->init()) {
+ return EXIT_FAILURE;
+ }
+
+ // Create common actions class for actions that are used in all views of Launcher
+ mCommonActions = new CommonActions(mEngineWrapper, &app);
+
+ // Create document loader
+ LauncherDocumentLoader loader;
+
+ // Create application view
+ mApplicationView = ApplicationView::create(loader, mCommonActions, mEngineWrapper);
+ // Add view to main window
+ addView(mApplicationView);
+
+ loader.reset();
+
+ // Create output view
+ mOutputView = OutputView::create(loader, mCommonActions);
+ // Add view to main window
+ addView(mOutputView);
+
+ // Show ApplicationView at startup
+ setCurrentView(mApplicationView);
+
+ // Show HbMainWindow
+ show();
+
+ return 0;// no errors
+ }
+
+void LauncherMainWindow::openApplicationView()
+ {
+ setCurrentView(mApplicationView);
+ }
+
+void LauncherMainWindow::openOutputView()
+ {
+ setCurrentView(mOutputView);
+ }
+
+void LauncherMainWindow::printText(const QString &text)
+ {
+ mOutputView->printText(text);
+ }