taskswitcher/testapplications/tstestpluginmanager/tspluginmanager/lunchwidget.cpp
changeset 117 c63ee96dbe5f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/testapplications/tstestpluginmanager/tspluginmanager/lunchwidget.cpp	Thu Sep 16 12:11:40 2010 +0100
@@ -0,0 +1,152 @@
+/*
+* 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 "lunchwidget.h"
+#include <QRect>
+#include <QPainter>
+#include <QUrl>
+#include <hbapplication>
+#include <tstestpropertydefs.h>
+#include <HbComboBox>
+#include <HbCheckBox>
+#include <qservicemanager.h>
+
+
+QTM_USE_NAMESPACE
+
+#define hbApp qobject_cast<HbApplication*>(qApp)
+
+lunchwidget::lunchwidget(QGraphicsItem *parent)
+    : HbWidget(parent), mPluginPublisher(TsTestProperty::KTsTestPath)
+{
+    mLoadLabel = new HbLabel;
+    QServiceManager manager;
+    bool ok = manager.addService(":/tsfakelplugin.xml");
+    if (!ok) {
+        int err  = manager.error();
+        QString mess;
+        mess = tr("Load service: %1").arg(err);
+        mLoadLabel->setPlainText(mess);
+    }
+    else {
+        mLoadLabel->setPlainText("Load service: Ok");
+    }
+    
+    mTenLabel= new HbLabel("10x");        
+    mOneLabel= new HbLabel("1x");            
+    
+    
+    mAdd = new HbPushButton("Add");
+    mRemove = new HbPushButton("Remove all");
+    
+    
+    mTenCombo = new HbComboBox();
+    mOneCombo = new HbComboBox();
+    for (int i=0; i<10; i++) {
+        QString num;
+        num.setNum(i);
+        mTenCombo->addItem(num);
+        mOneCombo->addItem(num);
+    }
+    mRunningCheckBox = new HbCheckBox("Is Running");
+    mRunningCheckBox->setCheckState(Qt::Checked);
+    mCloseableCheckBox = new HbCheckBox("Is Closeable");
+    mCloseableCheckBox->setCheckState(Qt::Checked);
+    
+    mGridLayout = new QGraphicsGridLayout();
+    mGridLayout->addItem(mOneLabel, 0, 0, 1, 3);
+    mGridLayout->addItem(mTenLabel, 0, 3, 1, 3);
+    mGridLayout->addItem(mOneCombo, 1, 0, 1, 3);
+    mGridLayout->addItem(mTenCombo, 1, 3, 1, 3);
+    mGridLayout->addItem(mRunningCheckBox, 2, 0, 1, 6);
+    mGridLayout->addItem(mCloseableCheckBox, 3, 0, 1, 6);
+    mGridLayout->addItem(mAdd, 4, 0, 1, 6);
+    mGridLayout->addItem(mRemove, 5, 0, 1, 6);
+    mGridLayout->addItem(mLoadLabel, 6, 0, 1, 6);    
+    setLayout(mGridLayout);
+
+
+    connect(mAdd, SIGNAL(released()), this, SLOT(add()));
+    connect(mRemove, SIGNAL(released()), this, SLOT(remove()));
+    
+    
+    mPluginPublisher.setValue(TsTestProperty::KPluginPath, 0);
+    mPluginPublisher.sync();
+
+}
+
+lunchwidget::~lunchwidget()
+{
+
+}
+
+void lunchwidget::add()
+{
+    int ten = mTenCombo->currentText().toInt();
+    int one = mOneCombo->currentText().toInt();
+    int num = ten*10+one;
+    bool running = false;
+    bool closeable = false;
+    if (mRunningCheckBox->checkState() == Qt::Checked) {
+        running = true;
+    }
+    if (mCloseableCheckBox->checkState() == Qt::Checked) {
+        closeable = true;
+    }
+    
+    int message = 0;
+    setByte(message, 0, num);
+    setByte(message, 1, running);
+    setByte(message, 2, closeable);
+    
+    mPluginPublisher.setValue(TsTestProperty::KPluginPath, message);
+    mPluginPublisher.sync();
+}
+
+void lunchwidget::remove()
+{
+    int message = -1;    
+    
+    mPluginPublisher.setValue(TsTestProperty::KPluginPath, message);
+    mPluginPublisher.sync();
+}
+    
+
+void lunchwidget::setByte(int& numtoset, int byte, char value)
+{
+    if(byte>3 || byte<0) {
+        return;
+    }
+    int multiple = 255;//0b00000000000000000000000011111111;
+    unsigned int temp = 0;
+    temp = temp | value;
+    temp = temp & multiple;
+    temp = temp << byte*8;
+    numtoset = numtoset | temp;
+}
+
+char lunchwidget::byte(int numtoget, int byte)
+{
+    char ret = 0;
+    if(byte>3 || byte<0) {
+        return ret;
+    }
+    numtoget = numtoget>>8*byte;
+    ret = static_cast<char>(numtoget);
+    
+    return ret;
+    
+}