vmbx/vmbxengine/src/vmbxqtuihandler.cpp
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
child 21 0a6dd2dc9970
--- a/vmbx/vmbxengine/src/vmbxqtuihandler.cpp	Tue Aug 31 15:45:17 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,419 +0,0 @@
-/*
-* Copyright (c) 2009-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: 
-*
-*
-*/
-
-// qt
-#include <QString>
-#include <QRegExp>
-#include <QCoreApplication>
-#include <hbinputdialog.h>
-#include <hblabel.h>
-#include <hbaction.h>
-#include <hbmessagebox.h>
-#include <hblineedit.h>
-#include <hbinputeditorinterface.h>
-#include <hbinputstandardfilters.h>
-#include <hbinputfilter.h> 
-#include <hblistwidget.h>
-#include <hbnotificationdialog.h>
-#include <dialogwaiter.h>
-
-#include <cvoicemailboxentry.h>
-#include <cvoicemailbox.h>
-
-#include "vmbxqtuihandler.h"
-#include "voicemailboxdefsinternal.h"
-#include "vmbxlogger.h"
-
-// ======== MEMBER FUNCTIONS ==================================================
-
-// ----------------------------------------------------------------------------
-// VmbxQtUiHandler::VmbxQtUiHandler
-// (Constructor).
-// ----------------------------------------------------------------------------
-//
-VmbxQtUiHandler::VmbxQtUiHandler(QObject* parent): QObject(parent),
-        iTranslator(0), iCommonTranslator(0), iQueryDialog(NULL)
-{
-    VMBLOGSTRING("VmbxQtUiHandler::VmbxQtUiHandler")
-    init();
-    VMBLOGSTRING("VmbxQtUiHandler::VmbxQtUiHandler Exit")
-}
-
-// ----------------------------------------------------------------------------
-// VmbxQtUiHandler::~VmbxQtUiHandler
-// (Destructor).
-// ----------------------------------------------------------------------------
-//
-VmbxQtUiHandler::~VmbxQtUiHandler()
-{
-    VMBLOGSTRING("VmbxQtUiHandler::~VmbxQtUiHandler")
-    if ( iQueryDialog ) {
-        delete iQueryDialog;
-        iQueryDialog = NULL;
-        VMBLOGSTRING("VmbxQtUiHandler::~VmbxQtUiHandler delete iQueryDialog")
-    }
-    VMBLOGSTRING("VmbxQtUiHandler::~VmbxQtUiHandler Exit")
-}
-
-// ----------------------------------------------------------------------------
-// VmbxQtUiHandler::Init
-//
-// ----------------------------------------------------------------------------
-//
-void  VmbxQtUiHandler::init()
-{
-    VMBLOGSTRING("VmbxQtUiHandler::init")
-    QString lang = QLocale::system().name();
-    VMBLOGSTRING2("VmbxQtUiHandler::init lang type %S",
-            lang.utf16())
-    QString path = "Z:/resource/qt/translations/";
-    bool translatorLoaded = iTranslator.load("vmbx_"+lang, path);
-    VMBLOGSTRING2("VmbxQtUiHandler::init load vmbx result %d",
-            translatorLoaded)
-    // Install vmbx localization
-    if (translatorLoaded) {
-        VMBLOGSTRING("VmbxQtUiHandler::init qApp !")
-        qApp->installTranslator(&iTranslator);
-    }
-    // Install common localization, for select type "cancel".
-    bool loaded = iCommonTranslator.load( "common_"+lang, path);
-    VMBLOGSTRING2("VmbxQtUiHandler::init load common result %d",
-        loaded)
-    if (loaded) {
-        VMBLOGSTRING("VmbxQtUiHandler::init qApp !!")
-        qApp->installTranslator(&iCommonTranslator);
-    }
-    VMBLOGSTRING("VmbxQtUiHandler::init Exit")
-}
-
-// ----------------------------------------------------------------------------
-// VmbxQtUiHandler::ShowVmbxQueryDialog
-// (show query dialog).
-// ----------------------------------------------------------------------------
-//
-void VmbxQtUiHandler::showVmbxQueryDialog(const TVmbxType& aType,
-                          QString& aNumber, int& aResult)
-{
-    VMBLOGSTRING("VmbxQtUiHandler::showVmbxQueryDialog")
-    QString header;
-    if (EVmbxVoice == aType) {
-        header = hbTrId("txt_vmbx_title_voice_mailbox_number");
-    } else if (EVmbxVideo == aType) {
-        // type of EVmbxVideo
-        header = hbTrId("txt_vmbx_title_video_mailbox_number");
-    } else {
-        aResult = KErrCancel;
-        VMBLOGSTRING( "VmbxQtUiHandler::showVmbxQueryDialog type error" )
-        return;
-    }
-    if (iQueryDialog) {
-        delete iQueryDialog;
-        iQueryDialog = 0;
-    }
-        
-    
-    iQueryDialog = new HbInputDialog();
-    iQueryDialog->setDismissPolicy(HbDialog::NoDismiss);
-    iQueryDialog->setTimeout(HbDialog::NoTimeout);
-
-    iQueryDialog->setModal(true);
-    // Set heading content
-    iQueryDialog->setPromptText(header);
-
-    // Set HbLineEdit  Content 
-    iQueryDialog->lineEdit()->setText(aNumber); // default text
-    iQueryDialog->lineEdit()->setMaxLength(KVmbxPhoneCharMaxLength);
-    HbEditorInterface inputMode(iQueryDialog->lineEdit());
-    inputMode.setFilter(HbPhoneNumberFilter::instance());
-    bool ret = connect(iQueryDialog->lineEdit(), SIGNAL(textChanged(QString)),
-        this, SLOT(updatePrimaryAction(QString)));    
-    VMBLOGSTRING2( "VmbxQtUiHandler::showVmbxQueryDialog connect textChanged %d", ret)
-    
-    DialogWaiter waiter;
-    HbAction *primary = 0;
-    if (iQueryDialog->actions().count()>= 1) {
-        primary = qobject_cast<HbAction*>(iQueryDialog->actions().at(0));
-    }
-    
-    iQueryDialog->open(&waiter, SLOT(done(HbAction *)));
-    iQueryDialog->lineEdit()->setFocus(); // Enable the VKB
-    
-    HbAction *result = waiter.wait();
-    if (result == primary) {
-        VMBLOGSTRING( "VmbxQtUiHandler::showVmbxQueryDialog select OK" )
-        // asign OK KEY value
-        aResult = KErrNone;
-        aNumber = iQueryDialog->lineEdit()->text();
-    } else {
-        aResult = KErrCancel;
-    }
-    
-    disconnect(iQueryDialog->lineEdit(), SIGNAL(textChanged(QString)),
-            this, SLOT(updatePrimaryAction(QString))); 
-    
-
-    // TODO Delete Operation will case panic on EM
-    
-#ifdef __WINS__
-    iQueryDialog->close();
-#else
-    delete iQueryDialog;
-    iQueryDialog = 0;
-#endif // __WINS__
-
-    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,"Define number:"
-    defineListDialog->setHeadingWidget(new HbLabel(
-            hbTrId("txt_vmbx_title_select_mailbox")));
-    // Create a define list 
-    HbListWidget *list = new HbListWidget();
-    //Voice Mailbox
-    list->addItem(hbTrId("txt_vmbx_list_voice_mailbox"));
-    //Video Mailbox
-    list->addItem(hbTrId("txt_vmbx_list_video_mailbox"));
-    // Set content widget
-    defineListDialog->setContentWidget(list);
-
-    //  Sets the "Cancel"-action/button
-    HbAction *cancelAction = 
-        new HbAction(hbTrId("txt_common_button_cancel"),defineListDialog);
-    defineListDialog->addAction(cancelAction);
-    
-    connect(list, SIGNAL(activated(HbListWidgetItem *)), 
-        defineListDialog, SLOT(close()));
-    DialogWaiter waiter;
-    defineListDialog->open(&waiter, SLOT(done(HbAction *)));
-    HbAction *result = waiter.wait();
-    if (cancelAction == result){
-        aType = EVmbxNone;
-        aResult = KErrCancel;
-    } else {
-        // Select one item
-        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)
-        
-#ifdef __WINS__
-    defineListDialog->close();
-#else
-    delete defineListDialog;
-    defineListDialog = 0;
-#endif // __WINS__  
-
-    VMBLOGSTRING("VmbxQtUiHandler::showDefineSelectionDialog Exit")
-}
-
-// ----------------------------------------------------------------------------
-// VmbxQtUiHandler::showCallSelectionDialog
-// (show call selection dialog).
-// ----------------------------------------------------------------------------
-//
-void VmbxQtUiHandler::showCallSelectionDialog(
-    const QList<CVoiceMailboxEntry *> entryList,
-    TVoiceMailboxParams &params, int &result )
-{
-    VMBLOGSTRING("VmbxQtUiHandler::showCallSelectionDialog")
-    int count = entryList.count();
-    VMBLOGSTRING("VmbxQtUiHandler::showCallSelectionDialog new before")
-    HbDialog* callListDialog = new HbDialog();
-    VMBLOGSTRING("VmbxQtUiHandler::showCallSelectionDialog new after")
-    callListDialog->setDismissPolicy(HbDialog::NoDismiss);
-    callListDialog->setTimeout(HbDialog::NoTimeout);
-    callListDialog->setModal(true);
-    // Set heading widget,"select mailbox"
-    callListDialog->setHeadingWidget(new HbLabel(
-               hbTrId("txt_vmbx_title_select_mailbox")));
-    // Create a call list 
-    HbListWidget *list = new HbListWidget();
-    // Set content widget
-    callListDialog->setContentWidget(list);
-
-    QList<TVoiceMailboxParams> paramsList;
-    TVoiceMailboxParams entryParams;
-    for (int i = 0; i < count; i++) {
-        TVmbxType vmbxType = entryList[i]->VoiceMailboxType();
-        entryParams.iType = vmbxType;
-        entryParams.iServiceId = entryList[i]->ServiceId();
-        paramsList.append(entryParams);
-        switch (vmbxType) {
-            case EVmbxVoice:
-                {
-                list->addItem(hbTrId("txt_vmbx_list_voice_mailbox"));
-                break;
-                }
-            case EVmbxVideo:
-                {
-                list->addItem(hbTrId("txt_vmbx_list_video_mailbox"));
-                break;
-                }
-            case EVmbxVoip:
-                {
-                // Get name
-                TPtrC vmbxName( KNullDesC );
-                int voipRes = entryList[i]->GetVmbxName(vmbxName);
-                VMBLOGSTRING2( "VmbxQtUiHandler::showCallSelectionDialogL\
-                    : voipRes=%I", voipRes );
-                if (KErrNone == voipRes) {
-                    QString voipName;
-                    if (vmbxName.Length() > 0) {
-                        voipName=QString::fromUtf16(
-                            vmbxName.Ptr(), vmbxName.Length());
-                        // add voip item
-                        list->addItem(voipName);
-                    }
-                }
-                break;
-                }
-            default:
-                break;
-        }
-    }
-    //  Sets the "Cancel"-action/button
-    HbAction *cancelAction = 
-        new HbAction(hbTrId("txt_common_button_cancel"),callListDialog);
-    callListDialog->addAction(cancelAction);
-    
-    connect(list, SIGNAL(activated(HbListWidgetItem *)), 
-            callListDialog, SLOT(close()));
-    DialogWaiter waiter;
-    callListDialog->open(&waiter, SLOT(done(HbAction *)));
-    HbAction *action = waiter.wait();
-    if (cancelAction == action){
-        params.iType = EVmbxNone;
-        params.iServiceId = KVmbxServiceIdNone;
-        result = KErrCancel;
-    } else {
-        // Select one item
-        result = KErrNone;
-        int currentItem = list->row(list->currentItem());
-        VMBLOGSTRING2("VmbxQtUiHandler::showCallSelectionDialog:\
-            currentItem %d", currentItem)
-        params.iType = paramsList[currentItem].iType;
-        params.iServiceId = paramsList[currentItem].iServiceId;
-    }
-    VMBLOGSTRING2("VmbxQtUiHandler::showCallSelectionDialog: params.iType %d",
-        params.iType)
-    VMBLOGSTRING2("VmbxQtUiHandler::showCallSelectionDialog: result%d",
-        result)
-    
-#ifdef __WINS__
-    callListDialog->close();
-#else
-    delete callListDialog;
-    callListDialog = 0;
-#endif // __WINS__  
-    VMBLOGSTRING("VmbxQtUiHandler::showCallSelectionDialog Exit")
-}
-
-// ----------------------------------------------------------------------------
-// VmbxQtUiHandler::showInformationNote
-// (show information note).
-// ----------------------------------------------------------------------------
-//
-void VmbxQtUiHandler::showInformationNote(const TVmbxNoteType aType)
-{
-    VMBLOGSTRING("VmbxQtUiHandler::showInformationNote")
-    QString noteText;
-    VMBLOGSTRING2("VmbxQtUiHandler::showInformationNote type =%d", aType)
-    switch (aType) {
-    case EInvalidNumber:
-        // Need to comfirm with ui designer
-        noteText = hbTrId("Invalid phone number.");
-        break;
-    case ENotAllowUserEditing:
-        //User not allow to edit.
-        noteText = hbTrId("Number not provisioned");
-        break;
-    case ESavedToPhoneMemory:
-    case ESavedToSimMemory:	
-        //Voice mailbox number saved to Phone memory.
-        noteText = hbTrId("txt_vmbx_dpopinfo_voice_mailbox_number_saved");
-        break;
-    case EVideoNumberSaved:
-        //Video call mailbox saved.
-        noteText = hbTrId("txt_vmbx_dpopinfo_video_mailbox_number_saved");
-        break;
-    case EDefineVoiceNumber:
-        //Define voice mailbox.
-        noteText = hbTrId("txt_vmbx_dpopinfo_define_voice_mailbox_number");
-        break;
-    case EDefineVideoNumber:
-        //Define video mailbox.
-        noteText = hbTrId("txt_vmbx_dpopinfo_define_video_mailbox_number");
-        break;
-    default:
-        VMBLOGSTRING("VmbxQtUiHandler::ShowInformationNote default")
-        break;
-    }
-    HbNotificationDialog::launchDialog(noteText);
-    VMBLOGSTRING("VmbxQtUiHandler::showInformationNote Exit")
-}
-
-// ----------------------------------------------------------------------------
-// VmbxQtUiHandler::updatePrimaryAction
-// (show information note).
-// ----------------------------------------------------------------------------
-//
-void VmbxQtUiHandler::updatePrimaryAction(const QString &aInput)
-{
-    if (iQueryDialog) {    
-        QAction *ok = iQueryDialog->actions().at(0);
-        if (ok) {
-            if ( aInput.isEmpty() || aInput.contains(QRegExp("\\d\\d\\d"))){
-                if (!ok->isEnabled()){
-                    ok->setEnabled(true);
-                    VMBLOGSTRING("VmbxQtUiHandler::updatePrimaryAction enable OK")
-                }
-            } else {
-                if (ok->isEnabled()){
-                    ok->setEnabled(false);
-                    VMBLOGSTRING("VmbxQtUiHandler::updatePrimaryAction disable OK")  
-                }
-            }
-        }
-    }
-}
-
-//End of file