controlpanelui/src/cpplugins/volumeplugin/src/cpvolumecontroller.cpp
changeset 19 36aa4756ee82
parent 12 624337f114fe
child 28 e0b83131558d
child 40 593f946f4fec
equal deleted inserted replaced
12:624337f114fe 19:36aa4756ee82
    25 	#include <cpprofilemodel.h>
    25 	#include <cpprofilemodel.h>
    26 #endif
    26 #endif
    27 //#include <hbslider.h>
    27 //#include <hbslider.h>
    28 //#include <hbpushbutton.h>
    28 //#include <hbpushbutton.h>
    29 
    29 
       
    30 #include <xqsettingsmanager.h>
       
    31 #include <ProfileEngineInternalCRKeys.h>
       
    32 #include <ProfileInternal.hrh>
       
    33 
    30 CpVolumeController::CpVolumeController(CpProfileModel *profileModel,
    34 CpVolumeController::CpVolumeController(CpProfileModel *profileModel,
    31                                        const QList<HbDataFormModelItem *> &itemList,
    35                                        const QList<HbDataFormModelItem *> &itemList,
    32                                        CpItemDataHelper &itemDataHelper): 
    36                                        CpItemDataHelper &itemDataHelper) : 
    33                                            mProfileModel(profileModel),
    37                                        mProfileModel(profileModel),
    34                                            mItemList(itemList)
    38                                        mItemList(itemList),
       
    39                                        mSettingManager(0)
    35 															 
    40 															 
    36 {
    41 {
    37 	//itemDataHelper.addConnection(mMasterVolumeItem,SIGNAL(beepActivated()),this,SLOT(onBeepActivated()));
    42 	//itemDataHelper.addConnection(mMasterVolumeItem,SIGNAL(beepActivated()),this,SLOT(onBeepActivated()));
    38 	//itemDataHelper.addConnection(mMasterVolumeItem,SIGNAL(silentActivated()),this,SLOT(onSilentActivated()));
    43 	//itemDataHelper.addConnection(mMasterVolumeItem,SIGNAL(silentActivated()),this,SLOT(onSilentActivated()));
    39 	//itemDataHelper.addConnection(mMasterVolumeItem,SIGNAL(normalValueChanged(int)),this,SLOT(onNormalValueChanged(int)));
    44 	//itemDataHelper.addConnection(mMasterVolumeItem,SIGNAL(normalValueChanged(int)),this,SLOT(onNormalValueChanged(int)));
    40 	//updateMasterVolumeValue();
    45 	//updateMasterVolumeValue();
       
    46     
       
    47     
    41     itemDataHelper.addConnection(
    48     itemDataHelper.addConnection(
    42                 mItemList.at(CpVolumeGroupItemData::EVolumeSilenceItem), SIGNAL(toggled(bool)),
    49                 mItemList.at(CpVolumeGroupItemData::EVolumeSilenceItem), SIGNAL(toggled(bool)),
    43                 this, SLOT(silenceModeChange(bool))
    50                 this, SLOT(silenceModeChange(bool))
    44             );
    51             );
       
    52     
       
    53     
    45     itemDataHelper.addConnection(
    54     itemDataHelper.addConnection(
    46                 mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem), SIGNAL(valueChanged(int)),
    55                 mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem), SIGNAL(valueChanged(int)),
    47                 this, SLOT(masterVolumeChange(int))
    56                 this, SLOT(masterVolumeChange(int))
    48             );
    57             );
    49     itemDataHelper.addConnection(
    58     itemDataHelper.addConnection(
    50                 mItemList.at(CpVolumeGroupItemData::EVolumeMasterVibraItem), SIGNAL(stateChanged(int)),
    59                 mItemList.at(CpVolumeGroupItemData::EVolumeMasterVibraItem), SIGNAL(stateChanged(int)),
    51                 this, SLOT(masterVibraChange(int))
    60                 this, SLOT(masterVibraChange(int))
    52             );
    61             );
    53     update();
    62     updateUi();
       
    63     
       
    64     mSettingManager = new XQSettingsManager();
       
    65     
       
    66     XQCentralRepositorySettingsKey silenceKey(KCRUidProfileEngine.iUid,KProEngSilenceMode);
       
    67     mSettingManager->startMonitoring(silenceKey,XQSettingsManager::TypeInt);
       
    68    
       
    69     XQCentralRepositorySettingsKey masterVolumeKey
       
    70                                     (KCRUidProfileEngine.iUid,KProEngMasterVolume);
       
    71     mSettingManager->startMonitoring(masterVolumeKey,XQSettingsManager::TypeInt);
       
    72     
       
    73     XQCentralRepositorySettingsKey masterVibraKey
       
    74                                     (KCRUidProfileEngine.iUid,KProEngMasterVibra);
       
    75     mSettingManager->startMonitoring(masterVibraKey,XQSettingsManager::TypeInt);
       
    76     
       
    77     connect(mSettingManager, SIGNAL(valueChanged (XQSettingsKey, QVariant)),
       
    78             this, SLOT(settingValueChanged(XQSettingsKey, QVariant)));
    54 }
    79 }
    55 
    80 
    56 CpVolumeController::~CpVolumeController()
    81 CpVolumeController::~CpVolumeController()
    57 {
    82 {
    58 
    83     delete mSettingManager;
    59 }
    84 }
    60 
       
    61 /*void CpMasterVolumeValueController::onBeepActivated()
       
    62 {
       
    63 #ifdef Q_OS_SYMBIAN
       
    64 	mProfileModel->activateBeep();
       
    65 #endif
       
    66 }*/
       
    67 
    85 
    68 void CpVolumeController::silenceModeChange(bool isSilence)
    86 void CpVolumeController::silenceModeChange(bool isSilence)
    69 {
    87 {
    70 #ifdef Q_OS_SYMBIAN
    88 #ifdef Q_OS_SYMBIAN
    71 	mProfileModel->setSilenceMode(isSilence);
    89 	mProfileModel->setSilenceMode(isSilence);
    72 	HbDataFormModelItem *masterVolume = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem);
    90 #endif
    73     masterVolume->setEnabled(!isSilence);
    91 }
    74 #endif
    92 
    75 }
       
    76 
    93 
    77 void CpVolumeController::masterVolumeChange(int value)
    94 void CpVolumeController::masterVolumeChange(int value)
    78 {
    95 {
    79 #ifdef Q_OS_SYMBIAN
    96 #ifdef Q_OS_SYMBIAN
    80 	mProfileModel->setMasterVolume( volumeLevelToInt( (CpVolumeController::VolumeLevel)value ) );
    97 	mProfileModel->setMasterVolume( volumeLevelToInt( (CpVolumeController::VolumeLevel)value ) );
    88 #ifdef Q_OS_SYMBIAN
   105 #ifdef Q_OS_SYMBIAN
    89     mProfileModel->setMasterVibra(state);
   106     mProfileModel->setMasterVibra(state);
    90 #endif
   107 #endif
    91 }
   108 }
    92 
   109 
    93 void CpVolumeController::update()
   110 void CpVolumeController::updateUi()
    94 {
   111 {
    95 #ifdef Q_OS_SYMBIAN
   112 #ifdef Q_OS_SYMBIAN
    96 	bool isSilenceMode = mProfileModel->isSilenceMode();
   113 	bool isSilenceMode = mProfileModel->silenceMode();
    97 	HbDataFormModelItem *silenceIndicator = mItemList.at(CpVolumeGroupItemData::EVolumeSilenceItem);
   114 	HbDataFormModelItem *silenceIndicator = mItemList.at(CpVolumeGroupItemData::EVolumeSilenceItem);
    98 	silenceIndicator->setContentWidgetData("checked",isSilenceMode);
   115 	if(silenceIndicator) {
       
   116 			silenceIndicator->setContentWidgetData("checked",isSilenceMode);		
       
   117 	}
    99 	HbDataFormModelItem *masterVolume = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem);
   118 	HbDataFormModelItem *masterVolume = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem);
   100 	if (masterVolume) {
   119 	if (masterVolume) {
   101 	    CPFW_LOG("::updateMasterVolumeValue(), Start using profile model.");
   120 	    CPFW_LOG("::updateMasterVolumeValue(), Start using profile model.");
   102 	    QMap<QString, QVariant> iconMaps;
   121 	    QMap<QString, QVariant> iconMaps;
   103 	    if (isSilenceMode) {
   122 	    if (isSilenceMode) {
   104 	        CPFW_LOG("::updateMasterVolumeValue(), Got silent state.");
   123 	        CPFW_LOG("::updateMasterVolumeValue(), Got silent state.");
       
   124 	        iconMaps.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg"));
       
   125 	        iconMaps.insert(QString("IncreaseElement"), QVariant(":/icon/hb_vol_slider_increment.svg"));
   105 	        iconMaps.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_muted.svg"));
   126 	        iconMaps.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_muted.svg"));
   106 	    }
   127 	    }
   107 	    else {
   128 	    else {
       
   129             iconMaps.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg"));
       
   130 	        iconMaps.insert(QString("IncreaseElement"), QVariant(":/icon/hb_vol_slider_increment.svg"));
   108 	        iconMaps.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_unmuted.svg"));
   131 	        iconMaps.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_unmuted.svg"));
   109 	        CPFW_LOG("::updateMasterVolumeValue(), Got ring volume.");	        
       
   110 	    }
   132 	    }
   111 	    masterVolume->setContentWidgetData("elementIcons", iconMaps);
   133 	    masterVolume->setContentWidgetData("elementIcons", iconMaps);
   112 	    masterVolume->setEnabled(!isSilenceMode);
   134 	    masterVolume->setEnabled(!isSilenceMode);
   113 	    //masterVolume->setContentWidgetData("enabled",!isSilenceMode);
   135 	    //masterVolume->setContentWidgetData("enabled",!isSilenceMode);
   114 	    masterVolume->setContentWidgetData("value",intToVolumeLevel(mProfileModel->masterVolume()));
   136 	    masterVolume->setContentWidgetData("value",intToVolumeLevel(mProfileModel->masterVolume()));
   123 
   145 
   124 int CpVolumeController::volumeLevelToInt( CpVolumeController::VolumeLevel volumeLevel )
   146 int CpVolumeController::volumeLevelToInt( CpVolumeController::VolumeLevel volumeLevel )
   125 {
   147 {
   126     switch( volumeLevel ){
   148     switch( volumeLevel ){
   127         case VolumenLevelSoft:
   149         case VolumenLevelSoft:
   128             return 1;
   150             return EProfileMasterVolumeSoft;
   129         case VolumeLevelMed:
   151         case VolumeLevelMed:
   130             return 5;
   152             return EProfileMasterVolumeMed;
   131         case VolumeLevelLoud:
   153         case VolumeLevelLoud:
   132             return 10;
   154             return EProfileMasterVolumeLoud;
       
   155         default:
       
   156         		return 1;            	
   133     }
   157     }
   134 }
   158 }
   135 CpVolumeController::VolumeLevel CpVolumeController::intToVolumeLevel( int value )
   159 CpVolumeController::VolumeLevel CpVolumeController::intToVolumeLevel( int value )
   136 {
   160 {
   137     if( value < 4 ) {
   161     if( value < 4 ) {
   140         return VolumeLevelMed;
   164         return VolumeLevelMed;
   141     else{
   165     else{
   142         return VolumeLevelLoud;
   166         return VolumeLevelLoud;
   143     }
   167     }
   144 }
   168 }
       
   169 
       
   170 void CpVolumeController::settingValueChanged(const XQSettingsKey &key, const QVariant &value)
       
   171 {
       
   172     if (key.uid() == KCRUidProfileEngine.iUid && key.key() == KProEngSilenceMode) {
       
   173         HbDataFormModelItem *masterVolume = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem);
       
   174         if (masterVolume) {
       
   175         		QMap<QString, QVariant> iconMaps;
       
   176         		if (value.toBool()) {
       
   177                     iconMaps.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg"));
       
   178         		    iconMaps.insert(QString("IncreaseElement"), QVariant(":/icon/hb_vol_slider_increment.svg"));
       
   179         			iconMaps.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_muted.svg"));
       
   180         		}
       
   181         		else {
       
   182                     iconMaps.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg"));
       
   183         		    iconMaps.insert(QString("IncreaseElement"), QVariant(":/icon/hb_vol_slider_increment.svg"));
       
   184         		    iconMaps.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_unmuted.svg"));
       
   185         		}
       
   186         		masterVolume->setContentWidgetData("elementIcons", iconMaps);
       
   187             masterVolume->setEnabled(!value.toBool());
       
   188         }
       
   189         HbDataFormModelItem *silenceMode = mItemList.at(CpVolumeGroupItemData::EVolumeSilenceItem);
       
   190         if (silenceMode) {
       
   191             silenceMode->setContentWidgetData("checked",value.toInt() != 0);
       
   192         }
       
   193     }
       
   194     else if (key.uid() == KCRUidProfileEngine.iUid && key.key() == KProEngMasterVolume) {
       
   195         HbDataFormModelItem *masterVolume = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem);
       
   196         if (masterVolume) {
       
   197             masterVolume->setContentWidgetData("value",intToVolumeLevel(value.toInt()));
       
   198         }
       
   199     }
       
   200     else if (key.uid() == KCRUidProfileEngine.iUid && key.key() == KProEngMasterVibra) {
       
   201         HbDataFormModelItem *masterVibra = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVibraItem);
       
   202         if (masterVibra) {
       
   203             masterVibra->setContentWidgetData("checkState",(value.toInt() ? 2 : 0));
       
   204         }
       
   205     }
       
   206 }
       
   207 
       
   208 //End of File