controlpanelui/examples/pluginlauncherclient/src/mainview.cpp
branchRCL_3
changeset 34 90fe62538f66
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/controlpanelui/examples/pluginlauncherclient/src/mainview.cpp	Tue Aug 31 15:15:28 2010 +0300
@@ -0,0 +1,118 @@
+/*
+* 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 "mainview.h"
+#include <hbmenu.h>
+#include <hbaction.h>
+#include <qcoreapplication.h>
+#include <cppluginlauncher.h>
+#include <QStringList>
+#include <cpbasesettingview.h>
+#include <hbmessagebox.h>
+#include <xqaiwrequest.h>
+#include <XQServiceRequest.h>
+#include <QTimer>
+
+MainView::MainView(QGraphicsItem *parent/* = 0*/)
+: HbView(parent),mRequest(0)
+{
+	init();
+}
+
+MainView::~MainView()
+{
+    delete mRequest;
+}
+
+void MainView::init()
+{
+  setTitle(tr("CpPlugin Launcher"));  
+  
+  HbMenu *menu = new HbMenu();
+  setMenu(menu);
+  
+  HbAction *action = menu->addAction(tr("Launch View(in process)"));
+  connect(action, SIGNAL(triggered()), this, SLOT(launchInProcessProfileView()));
+
+  action = menu->addAction(tr("Launch View(QtHighway)"));
+  connect(action, SIGNAL(triggered()), this, SLOT(launchQtHighwayProfileView()));
+}
+
+void MainView::launchInProcessProfileView()
+{
+    CpBaseSettingView *settingView = CpPluginLauncher::launchSettingView("cppersonalizationplugin.dll","profile_view");
+    if (settingView) {
+        connect(settingView,SIGNAL(returnValueDelivered(QVariant)),this,SLOT(handleReturnValue(QVariant)));
+    }
+}
+
+void MainView::launchQtHighwayProfileView()
+{
+    if (mRequest) {
+        delete mRequest;
+        mRequest = 0;
+    }
+    
+    mRequest = mAppMgr.create("com.nokia.symbian.ICpPluginLauncher", "launchSettingView(QString,QVariant)", true);
+
+    if (!mRequest)
+    {
+        return;
+    }
+    else
+    {
+        connect(mRequest, SIGNAL(requestOk(QVariant)), SLOT(handleReturnValue(QVariant)));
+        connect(mRequest, SIGNAL(requestError(int,QString)), SLOT(handleError(int,QString)));
+    }
+
+
+    // Set arguments for request 
+    QList<QVariant> args;
+    args << QVariant( "cppersonalizationplugin.dll" );
+    args << QVariant ( "profile_view" );
+    mRequest->setArguments(args);
+
+    mRequest->setSynchronous(false);
+    
+    QTimer::singleShot(20* 1000, this, SLOT(closeSettingView()));
+    
+    // Make the request
+    if (!mRequest->send())
+    {
+        //report error     
+    }
+    
+}
+
+void MainView::handleReturnValue(const QVariant &returnValue)
+{
+    HbMessageBox::information( QString("Return value:") + returnValue.toString());
+}
+
+void MainView::handleError(int errorCode,const QString &errorMessage)
+{
+    HbMessageBox::information( QString("handle error:") + errorMessage);
+}
+
+void MainView::closeSettingView()
+{   
+    if (mRequest) {
+        delete mRequest;
+        mRequest = 0;
+    }
+}
+
+//End of File