vmbx/vmbxengine/src/vmbxqtuihandler.cpp
changeset 12 ae8abd0db65c
child 19 e44a8c097b15
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxengine/src/vmbxqtuihandler.cpp	Fri Mar 19 09:40:14 2010 +0200
@@ -0,0 +1,272 @@
+/*
+* 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: 
+*
+*
+*/
+
+// qt
+#include <QtGui/QtGui>
+#include <QString>
+#include <QObject>
+
+#include <hbdialog.h>
+#include <hblabel.h>
+#include <hbaction.h>
+#include <hbtextedit.h>
+#include <hbmessagebox.h>
+#include <hbvalidator.h>
+#include <hblineedit.h>
+#include <hbinputeditorinterface.h>
+#include <hblistwidget.h>
+
+#include "vmbxqtuihandler.h"
+#include "voicemailboxdefsinternal.h"
+#include "vmbxlogger.h"
+
+// ======== MEMBER FUNCTIONS ==================================================
+
+// ----------------------------------------------------------------------------
+// VmbxQtUiHandler::VmbxQtUiHandler
+// (Constructor).
+// ----------------------------------------------------------------------------
+//
+VmbxQtUiHandler::VmbxQtUiHandler(QObject* parent): QObject(parent)
+{
+    VMBLOGSTRING("VmbxQtUiHandler::VmbxQtUiHandler")
+    VMBLOGSTRING("VmbxQtUiHandler::VmbxQtUiHandler Exit")
+}
+
+// ----------------------------------------------------------------------------
+// VmbxQtUiHandler::~VmbxQtUiHandler
+// (Destructor).
+// ----------------------------------------------------------------------------
+//
+VmbxQtUiHandler::~VmbxQtUiHandler()
+{
+    VMBLOGSTRING("VmbxQtUiHandler::~VmbxQtUiHandler")
+    VMBLOGSTRING("VmbxQtUiHandler::~VmbxQtUiHandler Exit")
+}
+
+// ----------------------------------------------------------------------------
+// VmbxQtUiHandler::ShowVmbxQueryDialog
+// (show query dialog).
+// ----------------------------------------------------------------------------
+//
+void VmbxQtUiHandler::showVmbxQueryDialog(const TVmbxType& aType,
+                          const TVmbxQueryMode& aMode,
+                          QString& aNumber, int& aResult)
+{
+    VMBLOGSTRING("VmbxQtUiHandler::showVmbxQueryDialog")
+
+    HbDialog *displayPopup = new HbDialog();
+    displayPopup->setDismissPolicy(HbDialog ::NoDismiss);
+    displayPopup->setTimeout(HbDialog ::NoTimeout);
+
+    displayPopup->setModal(true);
+    QString header;
+    if (EVmbxVoice == aType) {
+        if (EVmbxDefineMode == aMode) {
+            header = tr("Define voice mailbox:");
+        } else {
+            header = tr("Change voice mailbox:");
+        }
+    } else {
+        // type of EVmbxVideo
+        if (EVmbxDefineMode == aMode) {
+            header = tr("Define video mailbox:");
+        } else {
+            header = tr("Change video mailbox:");
+        }
+    }
+    // Set the label as heading widget
+    displayPopup->setHeadingWidget(new HbLabel(header));
+    // Set the HbLineEdit as Content widget
+    // Define parameters for text box
+    HbLineEdit *lineEdit = new HbLineEdit();
+    lineEdit->setText( aNumber ); // default text
+    //lineEdit->setMaximumRows( 3 ); // just a magic number
+    HbEditorInterface inputMode(lineEdit); // Enables VKB
+    inputMode.setInputMode( HbInputModeNumeric );
+    // Limit charachter set
+    HbValidator *val = new HbValidator;
+    QRegExp r;
+    r.setPattern("[0123456789*#+]{0,255}"); // define what characters can be entered
+    val->setMasterValidator(new QRegExpValidator(r,0));
+    lineEdit->setValidator( val );
+
+    displayPopup->setContentWidget( lineEdit ); // ownership moved
+
+    HbAction* okAction = new HbAction(tr("Ok"));
+    // Sets the "OK"-action/button
+    displayPopup->setPrimaryAction(okAction);
+    bool ret = connect(okAction, SIGNAL(triggered()),
+        displayPopup, SLOT(close()));
+    VMBLOGSTRING2( "VmbxQtUiHandler::showVmbxQueryDialog:connect ok %d",
+        ret )
+    //  Sets the "Back"-action/button
+    HbAction* cancelAction =  new HbAction(tr("Cancel"));
+    displayPopup->setSecondaryAction(cancelAction);
+    ret = connect(okAction, SIGNAL(triggered()),
+        displayPopup, SLOT(close()));
+    VMBLOGSTRING2( "VmbxQtUiHandler::showVmbxQueryDialog:connect cancel %d",
+        ret )
+    VMBLOGSTRING( "VmbxQtUiHandler::ShowVmbxQueryDialog to show" )
+    HbAction* result = displayPopup->exec();
+    if( okAction == result ) {
+        VMBLOGSTRING( "VmbxQtUiHandler::showVmbxQueryDialog select OK" )
+        // asign OK KEY value
+        aResult = KErrNone;
+        aNumber = lineEdit->text();
+        VMBLOGSTRING2( "VmbxQtUiHandler::showVmbxQueryDialog number = %s",
+            aNumber.utf16() )
+    } else {
+        aResult = KErrCancel;
+    }
+    delete val;
+    val = 0;
+    delete displayPopup;
+    displayPopup = 0;
+    VMBLOGSTRING2("VmbxQtUiHandler::showVmbxQueryDialog aResult = %d", aResult)
+    VMBLOGSTRING("VmbxQtUiHandler::showVmbxQueryDialog Exit")
+}
+
+// ----------------------------------------------------------------------------
+// VmbxQtUiHandler::showDefineSelectionDialog
+// (Shoe define list dialog).
+// ----------------------------------------------------------------------------
+//
+void VmbxQtUiHandler::showDefineSelectionDialog(
+    TVmbxType& aType, int& aResult)
+{
+    VMBLOGSTRING("VmbxQtUiHandler::showDefineSelectionDialog")
+    HbDialog* defineListDialog = new HbDialog();
+    defineListDialog->setDismissPolicy(HbDialog::NoDismiss);
+    defineListDialog->setTimeout(HbDialog::NoTimeout);
+
+    defineListDialog->setModal(true);
+    // Set heading widget
+    defineListDialog->setHeadingWidget(new HbLabel(tr("Define number:")));
+    // Create a define list 
+    HbListWidget *list = new HbListWidget();
+    list->addItem(tr("Voice Mailbox"));
+    list->addItem(tr("Video Mailbox"));
+    // Set content widget
+    defineListDialog->setContentWidget(list);
+
+    HbAction* okAction = new HbAction(tr("Ok"));
+    // Sets the "OK"-action/button
+    defineListDialog->setPrimaryAction(okAction);
+    //  Sets the "Back"-action/button
+    HbAction* cancelAction =  new HbAction(tr("Cancel"));
+    defineListDialog->setSecondaryAction(cancelAction);
+
+    connect(list, SIGNAL(activated(HbListWidgetItem*)), 
+        defineListDialog, SLOT(close()));
+    HbAction* result = defineListDialog->exec();
+
+    if (cancelAction == result){
+        aType = EVmbxNone;
+        aResult = KErrCancel;
+    } else {
+    // OK or single click items
+        aResult = KErrNone;
+        int currentItem = list->row(list->currentItem());
+        VMBLOGSTRING2("VmbxQtUiHandler::showDefineSelectionDialog:\
+            currentItem %d", currentItem)
+        if (0 == currentItem) {
+            aType = EVmbxVoice;
+        } else {
+            aType = EVmbxVideo;
+        }
+    }
+    VMBLOGSTRING2("VmbxQtUiHandler::showDefineSelectionDialog: aType%d", aType)
+    VMBLOGSTRING2("VmbxQtUiHandler::showDefineSelectionDialog: aResult%d", \
+        aResult)
+    delete defineListDialog;
+    defineListDialog = 0;
+    VMBLOGSTRING("VmbxQtUiHandler::showDefineSelectionDialog Exit")
+}
+// ----------------------------------------------------------------------------
+// VmbxQtUiHandler::ShowInformationNote
+// (show information note).
+// ----------------------------------------------------------------------------
+//
+void VmbxQtUiHandler::showInformationNote(int aNoteType)
+{
+    VMBLOGSTRING("VmbxQtUiHandler::showInformationNote")
+    QString noteText;
+    QString iconName;
+    VMBLOGSTRING2("VmbxQtUiHandler::~showInformationNote type =%d", aNoteType)
+    switch (aNoteType) {
+    case EInvalidNumber:
+        noteText = tr("Invalid phone number.");
+        iconName = "note_error";
+        break;
+    case ESavedToPhoneMemory:
+        noteText = tr("Voice mailbox number saved to Phone memory.");
+        iconName = "note_info";
+        break;
+    case ESavedToSimMemory:
+        noteText = tr("Voice mailbox number saved to Sim card.");
+        iconName = "note_info";
+        break;
+    case EVideoNumberSaved:
+        noteText = tr("Video call mailbox saved.");
+        iconName = "note_info";
+        break;
+    default:
+        VMBLOGSTRING("VmbxQtUiHandler::ShowInformationNote default")
+        break;
+    }
+
+    HbMessageBox *msgBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+    msgBox->setText(noteText);
+    msgBox->setIcon(HbIcon(iconName));
+    msgBox->exec();
+    delete msgBox;
+    VMBLOGSTRING("VmbxQtUiHandler::~ShowInformationNote Exit")
+    
+}
+
+// ----------------------------------------------------------------------------
+// VmbxQtUiHandler::ShowSaveEmptyNote
+// (show information note).
+// ----------------------------------------------------------------------------
+//
+void VmbxQtUiHandler::showSaveEmptyNote(const TVmbxType& aType)
+{
+    VMBLOGSTRING("VmbxQtUiHandler::~showSaveEmptyNote")
+    QString noteText;
+    VMBLOGSTRING2("VmbxQtUiHandler::~showSaveEmptyNote type = %d", aType)
+    switch (aType) {
+    case EVmbxVoice:
+        noteText = tr("Voice mailbox number not defined.");
+        break;
+    case EVmbxVideo:
+        noteText = tr("Video mailbox number not defined.");
+        break;
+    default:
+        VMBLOGSTRING("VmbxQtUiHandler::ShowSaveEmptyNote default")
+        break;
+    }
+    HbMessageBox *msgBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+    msgBox->setText(noteText);
+    msgBox->setIcon(HbIcon("note_error"));
+    msgBox->exec();
+    delete msgBox;
+    VMBLOGSTRING("VmbxQtUiHandler::~ShowSaveEmptyNote Exit")
+}
+
+//End of file