--- a/coreapplicationuis/devicepowermenuplugin/src/hbdevicepowermenuwidegt.cpp Tue Aug 31 15:24:25 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,438 +0,0 @@
-/*
- * 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 "hbdevicepowermenuwidegt_p.h"
-#include "hbdevicepowermenupluginerrors_p.h"
-#include <HbInstance.h>
-
-//resuorces
-QString POWER_MENU_DOCML(":/xml/powermenu.docml");
-QString VOLUME_DECREASE_ICON(":/images/decrement.svg");
-QString VOLUME_INCREASE_ICON(":/images/increment.svg");
-QString VOLUME_UNMUTE_ICON(":/images/unmuted.svg");
-QString VOLUME_MUTE_ICON(":/images/muted.svg");
-//For Localization
-QString LOCALE_PATH("/resource/qt/translations/");
-QString TS_FILE("power_menu");
-
-//Widget names
-QString MAIN_DLG("maindialog");
-QString PWR_SILENCE("Silence");
-QString PWR_VOLUME("Volume");
-QString PWR_VIBARTE("Vibrate");
-QString PWR_OFFLINE("Offline");
-QString PWR_POWEROFF("PowerOff");
-QString PWR_CONTAINER("container_1");
-
-//DO not modify these strings
-QString KVolumeLevel("VolumeLevel");
-QString KSilenceLatchOn("SilenceLatchOn"); //Used to latch silencebutton
-QString KVibrationEnable("VibrationEnable");
-QString KOfflineEnable("OfflineEnable");
-QString KCypherOff("CypherOff"); //used to poweroffButtonEnabled/Disabled
-QString KShutDown("ShutDown");
-
-//Used for Orientation of PowerMenu
-qreal KVerticalX = 175;
-//width of PowerMenu
-qreal KPMWidth = 360;
-
-/**
- * Constructor
- */
-HbDevicePowerMenuWidget::HbDevicePowerMenuWidget(const QVariantMap ¶meters)
- :mDeviceDialogError(NoError),
- mVolumeLevel(0),
- mShowVolume(false),
- mVibrationChecked(true),
- mOfflineChecked(true),
- mSilencelatched(true),
- mCypherOff(true),
- mDialogWidget(NULL),
- mSilenceButton(NULL),
- mVolumeSlider(NULL),
- mVibarte(NULL),
- mOffline(NULL),
- mPowerOffButton(NULL),
- mLoader(NULL),
- mHbTranslator(NULL)
- {
- // mMainWindow(NULL),
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::Constructor:Begin") ) );
- if (preConstructDialog())
- {
- //Translator loaded succesfully then olny construct widgets
- constructDialog(parameters);
- }
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::Constructor:End") ) );
- }
-
-/**
- * Destructor
- */
-HbDevicePowerMenuWidget::~HbDevicePowerMenuWidget()
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::Destructor()") ) );
- cleanupMemory();
- }
-
-/**
- * Implementation of HbDeviceDialogInterface method
- * sets parameters of custom widget
- */
-bool HbDevicePowerMenuWidget::setDeviceDialogParameters(const QVariantMap ¶meters)
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::setDeviceDialogParameters:Begin") ) );
- if(parameters.contains(KVolumeLevel))
- {
- mVolumeLevel = parameters.value(KVolumeLevel).toInt();
- }
- if(parameters.contains(KSilenceLatchOn))
- {
- mSilencelatched = parameters.value(KSilenceLatchOn).toBool();
- //If SilenceMode is Enabled then MasterVolume control is Disabled
- mShowVolume = mSilencelatched? false:true;
- }
- if(parameters.contains(KVibrationEnable))
- {
- mVibrationChecked = parameters.value(KVibrationEnable).toBool();
- }
- if(parameters.contains(KOfflineEnable))
- {
- mOfflineChecked = parameters.value(KOfflineEnable).toBool();
- }
- if(parameters.contains(KCypherOff))
- {
- mCypherOff = parameters.value(KCypherOff).toBool();
- }
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::setDeviceDialogParameters:End") ) );
- return true;
- }
-
-/**
- * Returns error code
- */
-int HbDevicePowerMenuWidget::deviceDialogError() const
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::deviceDialogError") ) );
- return mDeviceDialogError;
- }
-
-/**
- * Close DeviceDialog
- */
-void HbDevicePowerMenuWidget::closeDeviceDialog(bool byClient)
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::closeDeviceDialog:Begin") ) );
- Q_UNUSED(byClient);
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::closeDeviceDialog:End") ) );
- mDialogWidget->close();
- }
-
-/**
- * Implementation of HbDeviceDialogInterface method
- */
-HbPopup* HbDevicePowerMenuWidget::deviceDialogWidget() const
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::deviceDialogWidget") ) );
- return mDialogWidget;
- }
-
-/**
- * Implementation of HbDeviceDialogInterface method
- * to get signals from action events
- */
-QObject* HbDevicePowerMenuWidget::signalSender() const
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::signalSender") ) );
- return const_cast<HbDevicePowerMenuWidget*>(this);
- }
-
-/**
- * Before loading docml and widgets Translator must be loaded
- */
-bool HbDevicePowerMenuWidget::preConstructDialog()
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::preConstructDialog:Begin") ) );
- //Translator
- mHbTranslator = new HbTranslator(LOCALE_PATH,TS_FILE);
- if(!mHbTranslator)
- {
- //Translator is failed to create
- mDeviceDialogError = UnknownDeviceDialogError;
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::preConstructDialog:MemoryAllocation Failed") ) );
- return false;
- }
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::preConstructDialog:End") ) );
- return true;
- }
-
-/**
- * Constrcuts customized widget dialog by loading the UI from docml and
- * initializes all parameters and attributes.
- * Throws bad-memory on Un-succesful memory allocations
- */
-void HbDevicePowerMenuWidget::constructDialog(const QVariantMap ¶meters)
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::constructDialog:Begin") ) );
- bool dialogLoaded(false);
- //Docml loader
- mLoader = new HbDocumentLoader();
- if(!mLoader)
- {
- //Document Loader failed to create
- mDeviceDialogError = UnknownDeviceDialogError;
- cleanupMemory();
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::constructDialog:mLoader::MemoryAllocation Failed") ) );
- return;
- }
- mLoader->load(POWER_MENU_DOCML, &dialogLoaded);
- Q_ASSERT_X(dialogLoaded, "HbDevicePowerMenuWidget", "Invalid xml file");
- //Widgets
- if (dialogLoaded)
- {
- //Dialog loaded succesfully from docml
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::constructDialog:dialogLoaded:Begin") ) );
-
- //Initialize Parameters received
- setDeviceDialogParameters(parameters);
- mDialogWidget = qobject_cast <HbDialog *>(mLoader->findWidget(MAIN_DLG));
- //Find the handles for all widget items
- mSilenceButton = qobject_cast <HbPushButton *>(mLoader->findWidget(PWR_SILENCE));
- mVolumeSlider = qobject_cast <HbSlider *>(mLoader->findWidget(PWR_VOLUME));
- mVibarte = qobject_cast <HbCheckBox *>(mLoader->findWidget(PWR_VIBARTE));
- mOffline = qobject_cast <HbCheckBox *>(mLoader->findWidget(PWR_OFFLINE));
- mPowerOffButton = qobject_cast <HbPushButton *>(mLoader->findWidget(PWR_POWEROFF));
- QGraphicsWidget *widget(NULL);
- widget = mLoader->findWidget(PWR_CONTAINER);
- if (!(IsValidHandles()&&(widget)))
- {
- //Atleast, One of the Handles are not allocated memory
- mDeviceDialogError = UnknownDeviceDialogError;
- cleanupMemory();
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::constructDialog:Widgets::MemoryAllocation Failed") ) );
- return;
- }
- //Sets Speaker icon
- setSpeakerIcon();
- //Customize slider to VolumeSlider
- customizeVolumeSlider();
- mDialogWidget->setContentWidget(widget);
- //SetWidget Attributes
- //1. Volume
- mVolumeSlider->setSliderPosition(mVolumeLevel);
- mVolumeSlider->setEnabled(mShowVolume);
- //This will avoid IPC calls while dragging the Slider
- mVolumeSlider->setTracking(false);
- bool ok = connect(mVolumeSlider,SIGNAL(valueChanged(int)) , this , SLOT(handleVolumeChanged(int)));
- Q_ASSERT_X(ok, "VolumeSlider", "Invalid IncrementDecrement Change");
-
- //2.Silence Mode
- mSilenceButton->setDown(mSilencelatched);
- ok = connect(mSilenceButton,SIGNAL(clicked(bool)) , this , SLOT(handleSilenceMode(bool)));
- Q_ASSERT_X(ok, "SilenceButton", "Invalid Clicked");
-
- //3.Master Vibration
- mVibarte->setChecked(mVibrationChecked);
- ok = connect(mVibarte,SIGNAL(stateChanged(int)) , this , SLOT(handleVibrationToggled(int)));
- Q_ASSERT_X(ok, "Vibrator", "Invalid Vibrator Toggeld");
-
- //4.Offline
- mOffline->setChecked(mOfflineChecked);
- ok = connect(mOffline,SIGNAL(stateChanged(int)) , this , SLOT(handleOfflineToggled(int)));
- Q_ASSERT_X(ok, "Vibrator", "Invalid Offline Toggeld");
-
- //5.Power off
- mPowerOffButton->setEnabled(mCypherOff);
- ok = connect(mPowerOffButton,SIGNAL(clicked(bool)) , this , SLOT(handlePowerOff(bool)));
- Q_ASSERT_X(ok, "PowerOffButton", "Invalid Clicked");
-
- //Dialog dismiss only with Tap outside
- mDialogWidget->setTimeout(HbPopup::NoTimeout);
- mDialogWidget->setDismissPolicy(HbPopup::TapOutside);
- mDialogWidget->setPreferredWidth(KPMWidth);
-
- connect(mDialogWidget,SIGNAL(aboutToClose()),this, SLOT(closedialog()));
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::constructDialog:dialogLoaded:End") ) );
- }
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::constructDialog:End") ) );
- }
-
-/**
- * Checks whether all Hadles for widgets DialogWidget,
- * SilenceButton, Vibrate, Offline and Poweroff Button allocated memory.
- * Returns True, if all Handles allocated memory.
- * Flase, atleast one of them NOT allocated memory.
- */
-bool HbDevicePowerMenuWidget::IsValidHandles()
- {
- if((!mDialogWidget) || (!mSilenceButton) || (!mVolumeSlider)||(!mVibarte) || (!mOffline) || (!mPowerOffButton))
- {
- return false;
- }
- else{
- //All handles are allocated memory
- return true;
- }
- }
-
-/**
- * Sets Mute/Unmute icon for Volume slider
- * Mute/Unmute icon to display the current status of Silence Mode.
- * Mute icon dispalyed when Device in Silence mode.
- * Unmute icon dispalyed when Device Non-Silence mode.
- */
-void HbDevicePowerMenuWidget::setSpeakerIcon()
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::setSpeakerIcon:Begin") ) );
- QString speakerIcon= ( mSilencelatched )? VOLUME_MUTE_ICON : VOLUME_UNMUTE_ICON ;
- mVolumeSlider->setElementIcon(HbSlider:: IconElement,HbIcon(speakerIcon));
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::setSpeakerIcon:End") ) );
- }
-
-
-/**
- * Customizes the slider to Vloume Slider
- */
-void HbDevicePowerMenuWidget::customizeVolumeSlider()
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::customizeVolumeSlider:Begin") ) );
- //Construct Volume Slider from the HbSlider
- mVolumeSlider->setSliderElements(QList<QVariant>()
- << HbSlider::DecreaseElement
- << HbSlider::TrackElement
- << HbSlider::IncreaseElement
- << HbSlider::IconElement );
-
- // To set DecreaseIcon and IncreseIcon
- mVolumeSlider->setElementIcon(HbSlider::DecreaseElement, HbIcon(VOLUME_DECREASE_ICON));
- mVolumeSlider->setElementIcon(HbSlider:: IncreaseElement, HbIcon(VOLUME_INCREASE_ICON));
- //set Range of volume
- mVolumeSlider->setRange(1,10);
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::customizeVolumeSlider:End") ) );
- }
-
-/**
- * Slot
- * Widget is about to Close.
- */
-void HbDevicePowerMenuWidget::closedialog()
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::closedialog:Begin") ) );
- emit deviceDialogClosed();
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::closedialog:Begin") ) );
- }
-
-/**
- * Slot
- */
-void HbDevicePowerMenuWidget::handleVolumeChanged(int aVolume)
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::handleVolumeChanged:Begin") ) );
- mVolumeLevel = aVolume;
- //inform the client may be through data changed etc.
- QVariantMap mDataToSend;
- QVariant volume(mVolumeLevel);
- mDataToSend.insert(KVolumeLevel, volume);
- emit deviceDialogData(mDataToSend);
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::handleVolumeChanged:Begin") ) );
- }
-
-/**
- * Slot
- * Switch between the states to latch down and latch up.
- * In case of Silence mode, The Silence button id latched down and Disables Volume control.
- * In case of Non-Silence mode, The Silence button id latched Up and enables Volume control.
- */
-void HbDevicePowerMenuWidget::handleSilenceMode(bool aState)
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::handleSilenceMode:Begin") ) );
- Q_UNUSED(aState);
- mShowVolume = !(mShowVolume);
- mSilencelatched = !(mSilencelatched);
- mSilenceButton->setDown(mSilencelatched);
- mVolumeSlider->setEnabled(mShowVolume);
- setSpeakerIcon();
- //inform the client may be through data changed etc.
- QVariantMap mDataToSend;
- QVariant silence(mSilencelatched);
- mDataToSend.insert(KSilenceLatchOn, silence);
- emit deviceDialogData(mDataToSend);
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::handleSilenceMode:End") ) );
- }
-
-/**
- * Slot
- */
-void HbDevicePowerMenuWidget::handlePowerOff(bool aState)
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::handlePowerOff:Begin") ) );
- Q_UNUSED(aState);
- QVariantMap mDataToSend;
- QVariant shutdown(true);
- mDataToSend.insert(KShutDown, shutdown);
- emit deviceDialogData(mDataToSend);
- emit deviceDialogClosed();
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::handlePowerOff:End") ) );
- }
-
-/**
- * Slot
- */
-void HbDevicePowerMenuWidget::handleOfflineToggled(int aOfflineToggel)
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::handleOfflineToggled:Begin") ) );
- mOfflineChecked = aOfflineToggel;
- QVariantMap mDataToSend;
- QVariant offline(mOfflineChecked);
- mDataToSend.insert(KOfflineEnable, offline);
- emit deviceDialogData(mDataToSend);
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::handleOfflineToggled:End") ) );
- }
-
-/**
- * Slot
- */
-void HbDevicePowerMenuWidget::handleVibrationToggled(int aVibrationToggel)
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::handleVibrationToggled:Begin") ) );
- mVibrationChecked = aVibrationToggel;
- QVariantMap mDataToSend;
- QVariant vibration(mVibrationChecked);
- mDataToSend.insert(KVibrationEnable, vibration);
- emit deviceDialogData(mDataToSend);
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::handleVibrationToggled:End") ) );
- }
-
-/**
- * Cleans up memory allocations
- */
-void HbDevicePowerMenuWidget::cleanupMemory()
- {
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::cleanupMemory:Begin") ) );
- if(mLoader)
- {
- delete mLoader;
- }
- if(mHbTranslator)
- {
- delete mHbTranslator;
- }
- TRACES( RDebug::Print( _L("HbDevicePowerMenuWidget::cleanupMemory:End") ) );
- }
-