controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilesgroupitemdata.cpp
--- a/controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilesgroupitemdata.cpp Fri Mar 19 09:29:29 2010 +0200
+++ b/controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilesgroupitemdata.cpp Fri Apr 16 14:59:22 2010 +0300
@@ -18,16 +18,26 @@
#include <QStringList>
#include <cpsettingformentryitemdataimpl.h>
#include <cpbasesettingview.h>
+#include <cpitemdatahelper.h>
+#include <hbmessagebox.h>
#include "cpprofilesettingform.h"
+#include "cpmastervolumevaluecontroller.h"
+#include "cppersonalizationcustomviewitem.h"
+
CpProfilesGroupItemData::CpProfilesGroupItemData(CpItemDataHelper &itemDataHelper)
-: CpSettingFormItemData(HbDataFormModelItem::GroupItem,tr("Profiles"))
+: CpSettingFormItemData(HbDataFormModelItem::GroupItem,tr("Profiles")),mProfileModel(0)
{
+ mProfileModel = new CpProfileModel();
initItems(itemDataHelper);
}
CpProfilesGroupItemData::~CpProfilesGroupItemData()
{
+ delete mProfileModel;
+ if (mMasterVolumeValueController != 0) {
+ delete mMasterVolumeValueController;
+ }
}
namespace
@@ -39,21 +49,80 @@
{
}
};
-};
+}
void CpProfilesGroupItemData::initItems(CpItemDataHelper &itemDataHelper)
{
+ itemDataHelper.addItemPrototype(new CpPersonalizationCustomViewItem);
HbDataFormModelItem *activeProfileItem = new HbDataFormModelItem(
HbDataFormModelItem::RadioButtonListItem,tr("Profiles"));
-
+ //enable the profile activating
+ // why come into slots twice when select a item?
+ itemDataHelper.addConnection(activeProfileItem,SIGNAL(itemSelected(int)),this,SLOT(activateProfile(int)));
+
+ mCurrentProfileId = static_cast<ProfileWrapperProfileId>(mProfileModel->activeProfileId());
+ // QString warnningNote = "Profile Id = "+ mCurrentProfileId;
+ //HbMessageBox::information(warnningNote);
QStringList items;
- items << tr("Normal") << tr("Meeting") << tr("Silent");
+ items << tr("General") << tr("Meeting") << tr("Silent");
activeProfileItem->setContentWidgetData("items",items);
- activeProfileItem->setContentWidgetData("selected",0);
+ switch (mCurrentProfileId) {
+ case EProfileWrapperGeneralId:
+ activeProfileItem->setContentWidgetData("selected",0);
+ break;
+ case EProfileWrapperSilentId:
+ activeProfileItem->setContentWidgetData("selected",2);
+ break;
+ case EProfileWrapperMeetingId:
+ activeProfileItem->setContentWidgetData("selected",1);
+ break;
+ default:
+ // HbMessageBox::information("unknown id of profile");
+ break;
+ };
+
+ appendChild(activeProfileItem);
+
+ mMasterVolume = new HbDataFormModelItem(static_cast<HbDataFormModelItem::DataItemType>(MasterVolumeSliderItem));
- appendChild(activeProfileItem);
+ mMasterVolumeValueController = new CpMasterVolumeValueController(mProfileModel, mMasterVolume,
+ itemDataHelper, activeProfileItem);
+ this->appendChild(mMasterVolume);
HbDataFormModelItem *editProfileItem = new CpSettingFormEntryItemDataImpl<CpProfileSettingView>(
itemDataHelper,tr("Edit profiles"));
appendChild(editProfileItem);
}
+void CpProfilesGroupItemData::activateProfile(int profileIndex)
+{
+ switch (profileIndex) {
+ case 0: // general
+ {
+ mProfileModel->activateProfile(EProfileWrapperGeneralId);
+ int volumeValue = mProfileModel->ringVolume();
+ // update the master volume when profile changed
+ // should be used profileChangedObserver in the future;
+ mMasterVolume->setEnabled(true);
+ mMasterVolume->setContentWidgetData("value", volumeValue);
+ break;
+ }
+ case 1: // meeting
+ {
+ mProfileModel->activateProfile(EProfileWrapperMeetingId);
+ int volumeValue = mProfileModel->ringVolume();
+ mMasterVolume->setEnabled(true);
+ mMasterVolume->setContentWidgetData("value", volumeValue);
+ break;
+ }
+ case 2: // silent
+ {
+ mProfileModel->activateProfile(EProfileWrapperSilentId);
+ mMasterVolume->setContentWidgetData("value", 0);
+ mMasterVolume->setEnabled(false);
+ break;
+ }
+ default:
+ break;
+
+ }
+}