--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxcpplugin/src/vmbxcpgroup.cpp Fri Mar 19 09:40:14 2010 +0200
@@ -0,0 +1,227 @@
+/*
+ * 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 <hbsettingformdataitem.h> // TODO: remember to replace this during API switch
+#include <cpitemdatahelper.h>
+#include "vmbxuiengine.h"
+#include "vmbxcpgroup.h"
+#include "loggerutil.h"
+
+// TODO: To get signals from ui control in QtControlPanelwk38 package you have
+// to fix the mistyped connect
+// in qtcontrolpanel\qtcontrolpanel\cpframework\src\cpsettingformitemdata.cpp:
+// "lineEditTextChanged" is mistyped as "lineEditTextChangge"
+
+// -----------------------------------------------------------------------------
+// Comment me!
+// -----------------------------------------------------------------------------
+//
+VmbxCpGroup::VmbxCpGroup(
+ const QString &/*configFile*/,
+ const HbDataFormModelItem *parent) :
+ CpSettingFormItemData( parent ),
+ mEditorCsVoice1( 0 ) // TODO: null member pointers as it is good practice
+{
+}
+
+// -----------------------------------------------------------------------------
+// Comment me!
+// -----------------------------------------------------------------------------
+//
+VmbxCpGroup::VmbxCpGroup(
+ HbDataFormModelItem::DataItemType type,
+ const QString &label,
+ const QString &/*configFile*/,
+ const HbDataFormModelItem *parent,
+ CpItemDataHelper &itemDataHelper ) :
+ CpSettingFormItemData( type, label, parent ),
+ mEditorCsVoice1( 0 ),// TODO: null member pointers as it is good practice
+ mEditorCsVoice2( 0 ),
+ mEditorCsVideo1( 0 )
+{
+ _DBGLOG2("VmbxCpGroup::VmbxCpGroup label=",label)
+ mUiEngine = new VmbxUiEngine();
+ beforeLoadingConfigPlugins( itemDataHelper );
+ _DBGLOG("VmbxCpGroup::VmbxCpGroup <")
+}
+
+// -----------------------------------------------------------------------------
+// Comment me!
+// -----------------------------------------------------------------------------
+//
+// Todo: rename this method
+void VmbxCpGroup::beforeLoadingConfigPlugins( CpItemDataHelper &itemDataHelper )
+{
+ _DBGLOG("VmbxCpGroup::beforeLoadingConfigPlugins >")
+
+ // HbSettingFormDataItem::appendChild takes ownership
+
+ QString newUiValue("");
+
+ mEditorCsVoice1 = new CpSettingFormItemData(
+ HbDataFormModelItem::TextItem, tr("Call mailbox") );
+ _DBGLOG("VmbxCpGroup::beforeLoadingConfigPlugins appendChild")
+ itemDataHelper.addConnection(
+ mEditorCsVoice1,
+ SIGNAL(textChanged(QString)),
+ mUiEngine, SLOT(uiCsVoice1Changed(QString) )
+ );
+ appendChild( mEditorCsVoice1 );
+
+ // Todo: add csVoice2 if ALS supported
+
+ // Todo: add video only if supported
+ //mEditorCsVideo1 = new CpSettingFormItemData(
+ // HbDataFormModelItem::TextItem, tr("Video mailbox") );
+ //_DBGLOG("VmbxCpGroup::beforeLoadingConfigPlugins appendChild")
+ //appendChild( mEditorCsVideo1 );
+
+ // TODO: get all ps addresses AND THEIR NAMES from engine and add ui controls for them
+ // Set UI control pointers to mPsServiceEditors
+
+ updateAllMailboxesToUi();
+
+ // TODO: below connect ui editing signals and allow ui control
+ // eidting if vmbx allows editing
+
+ // TODO: here check CS ALS editing permission and connnect signal
+ // and enable editing
+
+ // TODO: here check video editing permission and connect signal
+ // if ok
+
+ // No need for Video ALS on UI, implement later if necessary.
+
+
+ // Editing of PS Services is not allowed by default, disable ui editing
+ // for them.
+
+ _DBGLOG("VmbxCpGroup::beforeLoadingConfigPlugins <")
+}
+
+// -----------------------------------------------------------------------------
+// Comment me!
+// -----------------------------------------------------------------------------
+//
+VmbxCpGroup::~VmbxCpGroup()
+{
+ _DBGLOG("VmbxCpGroup::~VmbxCpGroup")
+ if ( mUiEngine ) {
+ delete mUiEngine;
+ }
+ // TODO: check cleanup, this is draft project version
+}
+
+// -----------------------------------------------------------------------------
+// Comment me!
+// -----------------------------------------------------------------------------
+//
+void VmbxCpGroup::updateCsVoicePrimaryToUi()
+{
+ _DBGLOG("VmbxCpGroup::updateCsVoicePrimaryToUi")
+ if ( mEditorCsVoice1 &&mUiEngine) {
+ QString newUiValue("");
+ mUiEngine->GetCsVoice1Number( newUiValue );
+ mEditorCsVoice1->setContentWidgetData( "text", newUiValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+// Comment me!
+// -----------------------------------------------------------------------------
+//
+void VmbxCpGroup::updateCsVoiceAlsToUi()
+{
+ _DBGLOG("VmbxCpGroup::updateCsVoiceAlsToUi")
+ if ( mEditorCsVoice2 && mUiEngine )
+ {
+ QString newUiValue("");
+ mUiEngine->GetCsVoice1Number( newUiValue );
+ _DBGLOG2( "VmbxCpGroup::updateCsVoiceAlsToUi newUiValue=", newUiValue)
+ mEditorCsVoice2->setContentWidgetData( "text", newUiValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+// Comment me!
+// -----------------------------------------------------------------------------
+//
+void VmbxCpGroup::updateCsVideoPrimaryToUi()
+{
+ _DBGLOG("VmbxCpGroup::updateCsVoiceAlsToUi")
+ if ( mEditorCsVideo1 && mUiEngine )
+ {
+ QString newUiValue("");
+ mUiEngine->GetCsVideo1Number( newUiValue );
+ _DBGLOG2( "VmbxCpGroup::updateCsVideoPrimaryToUi newUiValue=", newUiValue)
+ mEditorCsVideo1->setContentWidgetData( "text", newUiValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+// Comment me!
+// -----------------------------------------------------------------------------
+//
+void VmbxCpGroup::updatePsServicesToUi()
+{
+ _DBGLOG("VmbxCpGroup::updatePsServicesToUi EMPTY METHOD WAITING FOR IMPLEMENTING")
+ /*
+ TODO: Set values from engine to ui
+ NOTICE: IT IS POSSIBLE THAT PS SERVICES WILL NOT BE DISPLAYED BY VMBX
+ CONTROL PANEL WHEN WE GET THE NEW UI CONCEPT!!!!!!
+ */
+}
+
+// -----------------------------------------------------------------------------
+// Comment me!
+// -----------------------------------------------------------------------------
+//
+void VmbxCpGroup::updateDefaultMailboxToUi()
+{
+ _DBGLOG("VmbxCpGroup::updateDefaultMailboxToUi EMPTY METHOD WAITING FOR IMPLEMENTING")
+ // TODO: implement me!
+ // Consider should you check here if the number length of the default mailbox
+ // and reset the default mailbox type selection to "none" if it is.
+ // If you do so, remember to save the new value to engine.
+}
+
+// -----------------------------------------------------------------------------
+// Comment me!
+// -----------------------------------------------------------------------------
+//
+void VmbxCpGroup::updateAllMailboxesToUi()
+{
+ _DBGLOG("VmbxCpGroup::updateAllMailboxesToUi")
+ updateCsVoicePrimaryToUi();
+ updateCsVoiceAlsToUi();
+ //updateCsVideoPrimaryToUi();
+ updatePsServicesToUi();
+ updateDefaultMailboxToUi();
+}
+
+// -----------------------------------------------------------------------------
+// Notification slot for engine signal about Voice Mailbox entries' changes
+// -----------------------------------------------------------------------------
+//
+void VmbxCpGroup::voiceMailboxEngineEntriesUpdated()
+{
+ _DBGLOG("VmbxCpGroup::voiceMailboxEngineEntriesUpdated")
+ /* TODO: consider is there need to pass the actual modified data
+ and mailbox type enum to slot (here) so only needed data can be updated.
+ */
+ updateAllMailboxesToUi();
+}