--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/powersaveutilities/cppsmplugin/src/cppsmview.cpp Wed Aug 18 09:58:19 2010 +0300
@@ -0,0 +1,204 @@
+/*
+ * Copyright (c) 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:
+ *
+ */
+#include "cppsmview.h"
+#include <hbdataform.h>
+#include <qstringlist>
+#include <QDebug>
+#include <hbdataformmodel.h>
+#include <cpsettingformitemdata.h>
+#include <hbmessagebox.h>
+#include <hblineedit.h>
+#include <hwrmpowerstatesdkpskeys.h>
+#include <hwrmdomainpskeys.h>
+#include <e32property.h>
+#include <psmclient.h>
+#include <psmsettings.h>
+#include <hwrmpowerstatesdkpskeys.h>
+#include <centralrepository.h>
+#include <settingsinternalcrkeys.h>
+#include <hbcheckbox.h>
+#include <e32debug.h>
+
+CpPsmView::CpPsmView(QGraphicsItem *parent) :
+ CpBaseSettingView(0,parent),iCheckBoxItem(0),iTrans(new HbTranslator("powermanagement"))
+{
+ RDebug::Print( _L("CpPsmView::CpPsmView:Begin") );
+ iForm = new HbDataForm();
+ iModel = new HbDataFormModel();
+ iForm->setHeading(hbTrId("txt_power_management_subhead_power_management"));
+ //our view has 3 items first one being toggle button for enabling and disabling PSM
+ iPowerSaveMode = iModel->appendDataFormItem(HbDataFormModelItem::ToggleValueItem,
+ hbTrId("txt_power_list_power_save_mode"));
+ iPsmClient = CPsmClient::NewL( *this );
+ iPsmClient->RequestPowerSaveModeNotification();
+ TInt mode;
+ TInt err = iPsmClient->PsmSettings().GetCurrentMode( mode );
+ //setting of toggle value to on or off depends on the current mode
+ if( mode == EPsmsrvModePowerSave )
+ {
+ iPowerSaveMode->setContentWidgetData(QString("text"), hbTrId("txt_power_setlabel_val_off"));
+ }
+ else
+ {
+ iPowerSaveMode->setContentWidgetData(QString("text"), hbTrId("txt_power_setlabel_val_on"));
+ }
+
+ iForm->addConnection(iPowerSaveMode,SIGNAL(clicked()), this,SLOT(toggleChange()));
+
+ RDebug::Print( _L("CpPsmView::toggle button added") );
+ //this is the second item which is a text item which is readonly and describes what PSM does
+ HbDataFormModelItem *dataItem2 = iModel->appendDataFormItem(HbDataFormModelItem::TextItem);
+ //setting the maxrows property of hblineedit
+ dataItem2->setContentWidgetData("maxRows",11);
+ //setting the text property of hblineedit
+ dataItem2->setContentWidgetData("text",hbTrId("txt_power_list_activating_power_save_mode_will_con"));
+ dataItem2->setContentWidgetData("readOnly" , true);
+ RDebug::Print( _L("CpPsmView::text item added") );
+
+ //now the third item which is checkbox item for enabling psm automatically when low power
+ iCheckBoxItem = iModel->appendDataFormItem(
+ HbDataFormModelItem::CheckBoxItem);
+ //setting the text property of check box.
+ iCheckBoxItem->setContentWidgetData("text",hbTrId("txt_power_list_activate_power_save_mode_automatica"));
+ RDebug::Print( _L("CpPsmView::check box added") );
+
+ CRepository* repository( NULL );
+ TRAPD(err1,repository =CRepository::NewL(KCRUidDeviceManagementSettings));
+ TInt value;
+ err1 = repository->Get( KSettingsPowerSavingQuery, value );
+
+ if ( err1 == KErrNone )
+ {
+ //checkbox state is initialised based on cenrep key and default value of the key is 1 (meaning unchecked)
+ if(value==0)
+ {
+ RDebug::Print( _L("CpPsmView::checkbox state is checked ") );
+ iCheckBoxItem->setContentWidgetData("checkState",2);
+ }
+ }
+ delete repository;
+ iForm->addConnection(iCheckBoxItem,SIGNAL(stateChanged(int)),this,SLOT(checkBoxStateChanged(int)));
+
+
+ err = iPsmClient->PsmSettings().GetCurrentMode( mode );
+
+ if ( err == KErrNone && mode == EPsmsrvModePowerSave )
+ {
+ //if device is in powersavemode then disable the checkbox
+ RDebug::Print( _L("CpPsmView::checkbox disabled ") );
+ iCheckBoxItem->setEnabled(0);
+ }
+
+ iForm->setModel(iModel);
+ setWidget(iForm);
+ RDebug::Print( _L("CpPsmView::end "));
+}
+
+CpPsmView::~CpPsmView()
+{
+RDebug::Print( _L("CpPsmView::destructor begin ") );
+delete iTrans;
+delete iPsmClient;
+RDebug::Print( _L("CpPsmView::destructor end ") );
+}
+
+
+void CpPsmView::checkBoxStateChanged(int state)
+{
+ // store your changes
+ //state=1 means ->"checked" else it is "un-checked"
+ RDebug::Print( _L("CpPsmView::checkBoxStateChanged begin ") );
+ CRepository* repository( NULL );
+
+ TRAPD( err, repository = CRepository::NewL( KCRUidDeviceManagementSettings ) );
+
+ if ( err == KErrNone )
+ {
+ TInt value( 0 );
+ //default value of the key is 1 meaning unchecked,so if the checkbox is checked then state=1 so key is set to 0
+ if(state)
+ {
+ err = repository->Set( KSettingsPowerSavingQuery, value );
+ RDebug::Print( _L("CpPsmView::checkBoxStateChanged checked ") );
+ }
+ else
+ {
+ err = repository->Set( KSettingsPowerSavingQuery, 1 );
+ RDebug::Print( _L("CpPsmView::checkBoxStateChanged unchecked ") );
+ }
+ }
+
+ delete repository;
+ RDebug::Print( _L("CpPsmView::checkBoxStateChanged end ") );
+
+}
+
+void CpPsmView::toggleChange()
+ {
+ // iPsmClient = CPsmClient::NewL( *this );
+ RDebug::Print( _L("CpPsmView::toggleChange begin ") );
+ TInt mode;
+ TInt err = iPsmClient->PsmSettings().GetCurrentMode( mode );
+
+ if ( err == KErrNone )
+ {
+ if( mode == EPsmsrvModeNormal || mode == EPsmsrvPartialMode )
+ {
+ iPsmClient->CancelPowerSaveModeNotificationRequest();
+ iPsmClient->ChangePowerSaveMode( EPsmsrvModePowerSave );
+ // powerSaveMode->setContentWidgetData(QString("additionalText"), QString("off"));
+ RDebug::Print( _L("CpPsmView::toggleChange psm on ") );
+ }
+ else
+ {
+ iPsmClient->CancelPowerSaveModeNotificationRequest();
+ iPsmClient->ChangePowerSaveMode( EPsmsrvModeNormal );
+ // powerSaveMode->setContentWidgetData(QString("text"), QString("on"));
+ RDebug::Print( _L("CpPsmView::toggleChange psm off ") );
+ }
+ }
+ RDebug::Print( _L("CpPsmView::toggleChange end ") );
+ }
+
+
+void CpPsmView::PowerSaveModeChanged( const TPsmsrvMode aMode )
+ {
+ RDebug::Print( _L("CpPsmView::PowerSaveModeChanged begin ") );
+ iPsmClient->RequestPowerSaveModeNotification();
+ if( aMode == EPsmsrvModePowerSave )
+ {
+ //device in psm mode so disable checkbox and set the value of toggle button to off
+ iCheckBoxItem->setEnabled(0);
+ iPowerSaveMode->setContentWidgetData(QString("text"), hbTrId("txt_power_setlabel_val_off"));
+ RDebug::Print( _L("CpPsmView::PowerSaveModeChanged powersavemode enabled ") );
+ }
+ else
+ {
+ //device is in normal mode so enable checkbox and set the value of toggle button to on
+ iCheckBoxItem->setEnabled(1);
+ iPowerSaveMode->setContentWidgetData(QString("text"), hbTrId("txt_power_setlabel_val_on"));
+ RDebug::Print( _L("CpPsmView::PowerSaveModeChanged powersavemode disabled ") );
+ }
+ RDebug::Print( _L("CpPsmView::PowerSaveModeChanged end ") );
+ }
+
+
+void CpPsmView::PowerSaveModeChangeError( const TInt aError )
+ {
+ RDebug::Print( _L("CpPsmView::PowerSaveModeChangeError ") );
+ }
+