logsui/tsrc/logsservicestester/logsservicetesterwidget.cpp
changeset 6 41c0a814d878
child 15 76d2cf7a585e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/logsui/tsrc/logsservicestester/logsservicetesterwidget.cpp	Fri Jun 11 13:38:41 2010 +0300
@@ -0,0 +1,187 @@
+/*
+* 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 <QGraphicsLinearLayout>
+#include <QScopedPointer>
+#include <QDebug>
+
+#include <hbmessagebox.h>
+#include <hblabel.h>
+#include <hbpushbutton.h>
+#include <hblineedit.h>
+#include <hbcombobox.h>
+#include <hbcheckbox.h>
+#include <xqappmgr.h>
+#include <xqaiwrequest.h>
+#include <logsservices.h>
+
+#include "logsservicetesterwidget.h"
+#include "logsservicetesterappcloser.h"
+#include "logsdefs.h"
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+LogsServiceTesterWidget::LogsServiceTesterWidget(QGraphicsItem *parent ) :
+    HbWidget(parent), 
+    mViewIndex(0), 
+    mShowDialpad(false), 
+    mDialpadText(QString())
+{
+    qDebug() << "[LOGS_TESTER]-> LogsServiceTesterWidget::LogsServiceTesterWidget()";
+    mAppCloser = new LogsServiceTesterAppCloser(this);
+    connect(mAppCloser, SIGNAL(closed()), this, SLOT(dialerClosed()), 
+            Qt::QueuedConnection);
+    connect(mAppCloser, SIGNAL(closeError(int)), this, SLOT(dialerCloseError(int)),
+            Qt::QueuedConnection);
+    
+    HbLabel* comboLabel = new HbLabel("Select logs view:");
+    
+    mComboBox = new HbComboBox();
+    mComboBox->addItem( "Recent view", QVariant(LogsServices::ViewAll));
+    mComboBox->addItem( "Received view", QVariant(LogsServices::ViewReceived));
+    mComboBox->addItem( "Called view", QVariant(LogsServices::ViewCalled));
+    mComboBox->addItem( "Missed view", QVariant(LogsServices::ViewMissed));
+
+    mCheckBox = new HbCheckBox("Show dialpad");
+    
+    HbLabel* editorLabel = new HbLabel("Launch dialpad with number:");
+    mEditor = new HbLineEdit();
+    mEditor->setInputMethodHints(Qt::ImhPreferNumbers);
+    
+    HbPushButton* newService = new HbPushButton("Start Dialer via new service name");
+    newService->setPreferredHeight(60);
+    connect(newService, SIGNAL(clicked()), this, SLOT(startNewService()));
+
+    HbPushButton* oldService = new HbPushButton("Start Dialer via old service name");
+    oldService->setPreferredHeight(60);
+    connect(oldService, SIGNAL(clicked()), this, SLOT(startOldService()));
+
+    HbPushButton* killDialer = new HbPushButton("Kill Dialer");
+    killDialer->setPreferredHeight(60);
+    connect(killDialer, SIGNAL(clicked()), mAppCloser, SLOT(closeDialerApp()));
+    
+    QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical);
+    layout->addItem(comboLabel);
+    layout->addItem(mComboBox);
+    layout->addItem(mCheckBox);
+    layout->addItem(editorLabel);
+    layout->addItem(mEditor);
+    layout->addItem(newService);
+    layout->addItem(oldService);
+    layout->addItem(killDialer);
+    setLayout(layout);
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+LogsServiceTesterWidget:: ~LogsServiceTesterWidget()
+{
+    qDebug() << "[LOGS_TESTER] <-> LogsServiceTesterWidget::~LogsServiceTesterWidget()";
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LogsServiceTesterWidget::fetchData()
+{
+    qDebug() << "[LOGS_TESTER] LogsServiceTesterWidget::fetchData()";
+    int index = mComboBox->currentIndex()>0 ? mComboBox->currentIndex() : 0;
+    mViewIndex = mComboBox->itemData(index).toInt();
+    qDebug() << "[LOGS_TESTER] viewIndex: " << mViewIndex;
+    
+    mShowDialpad = (mCheckBox->checkState() == Qt::Checked) ? true : false;
+    qDebug() << "[LOGS_TESTER] showDialpad: " << mShowDialpad;
+    
+    mDialpadText = mEditor->text();
+    qDebug() << "[LOGS_TESTER] dialpadText: " << mDialpadText;
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LogsServiceTesterWidget::startNewService()
+{
+    qDebug() << "[LOGS_TESTER] -> LogsServiceTesterWidget::startNewService()";
+    fetchData();
+
+    XQApplicationManager appMgr;
+    QScopedPointer<XQAiwRequest> request(appMgr.create( QLatin1String(logsServiceName),
+                    QLatin1String(logsInterfaceName),
+                    QLatin1String(logsOperationName),
+                    false));
+    if (!request.isNull()) {
+        int retValue = -1; 
+        QList<QVariant> arglist;
+        QVariantMap map;
+        map.insert(logsViewIndexParam, QVariant(mViewIndex));
+        map.insert(logsShowDialpadParam, QVariant(mShowDialpad));
+        map.insert(logsDialpadTextParam, QVariant(mDialpadText));
+        
+        arglist.append(QVariant(map));
+        request->setArguments(arglist);
+        QVariant ret(retValue);
+        
+        request->send(ret);
+    }
+    qDebug() << "[LOGS_TESTER] <- LogsServiceTesterWidget::startNewService()";
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LogsServiceTesterWidget::startOldService()
+{
+    qDebug() << "[LOGS_TESTER] -> LogsServiceTesterWidget::startOldService()";
+    fetchData();
+    LogsServices::start( (LogsServices::LogsView)mViewIndex, mShowDialpad, mDialpadText );
+    qDebug() << "[LOGS_TESTER] <- LogsServiceTesterWidget::startOldService()";
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LogsServiceTesterWidget::dialerClosed()
+{
+    HbMessageBox::information("Dialer closed");
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LogsServiceTesterWidget::dialerCloseError(int error)
+{
+    QString errorMsg;
+    if (error == LogsServiceTesterAppCloser::ErrorAppNotRunning) {
+        errorMsg = QString("Dialer not running");
+    } else if (error == LogsServiceTesterAppCloser::ErrorClosingOngoing) {
+        errorMsg = QString("Dialer closing is already ongoing");
+    } else  if (error == LogsServiceTesterAppCloser::ErrorClosingTimeout) {
+        errorMsg = QString("Dialer closing timeout");
+    } else {
+        errorMsg = QString("Dialer closing error: %1").arg(error);
+    } 
+    HbMessageBox::warning(errorMsg);
+}