diff -r ff3b6d0fd310 -r ae8abd0db65c vmbx/vmbxengine/src/vmbxqtuihandler.cpp --- /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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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