--- a/controlpanelui/src/cpprofilewrapper/src/cpprofilemodel_p.cpp Fri Sep 17 08:29:50 2010 +0300
+++ b/controlpanelui/src/cpprofilewrapper/src/cpprofilemodel_p.cpp Mon Oct 04 00:18:12 2010 +0300
@@ -33,6 +33,7 @@
#include <MProfileFeedbackSettings.h>
#include <MProfileSetFeedbackSettings.h>
#include <MProfilesNamesArray.h>
+#include <MProfileSetName.h>
#include <settingsinternalcrkeys.h>
#include <hbglobal.h>
#include <QtCore/QStringList>
@@ -50,8 +51,7 @@
* Constructor
*/
CpProfileModelPrivate::CpProfileModelPrivate()
- : mEngine(0),
- mProfileNames(0),
+ : mEngine(0),
q_ptr(0)
{
@@ -66,8 +66,6 @@
CPFW_LOG("CpProfileModelPrivate::CpProfileModelPrivate(), START.");
TRAP_IGNORE(
mEngine = CreateProfileEngineExtended2L();
- mProfileNames = mEngine->ProfilesNamesArrayLC();
- CleanupStack::Pop(); // pop the pointer of mProfileNames
/*
* Currently, engine part will return all previous version of profile
* so some invalid profile will be added in the new list, to avoid this
@@ -94,9 +92,6 @@
if (mEngine!=0) {
mEngine->Release();
}
- if (mProfileNames) {
- delete mProfileNames;
- }
mProfileList.clear();
}
@@ -110,14 +105,35 @@
if (!isValidProfile(profileId)) {
return QString();
}
+ QString profileName;
+ QT_TRAP_THROWING(
+ MProfile *profile = mEngine->Profile2L(profileId);
+ const MProfileName &name = profile->ProfileName();
+ if (name.Name().Length() > 0) {
+ profileName = XQConversions::s60DescToQString(name.Name());
+ }
+ profile->Release();
+ )
+ return profileName;
- const MProfileName* name = mProfileNames->ProfileName(profileId);
- QString profileName;
- if (name != 0) {
- profileName = XQConversions::s60DescToQString(name->Name());
- }
- CPFW_LOG("CpProfileModelPrivate::profileName(), END.");
- return profileName;
+}
+
+/*
+ * Set profile name with \a profileId.
+ */
+void CpProfileModelPrivate::setProfileName(int profileId, const QString &name)
+{
+ HBufC *des = XQConversions::qStringToS60Desc( name );
+ QT_TRAP_THROWING(
+ CleanupStack::PushL(des);
+ MProfileExtended *profileExtend = mEngine->Profile2L(profileId);
+ CleanupStack::PushL(profileExtend);
+ MProfileSetName &profileSetName = profileExtend->ProfileSetName();
+ profileSetName.SetNameL(*des);
+ mEngine ->CommitChangeL(*profileExtend);
+ CleanupStack::Pop(2); // des, profileExtend
+ profileExtend->Release();
+ )
}
/*
@@ -126,15 +142,17 @@
QStringList CpProfileModelPrivate::profileNames() const
{
CPFW_LOG("CpProfileModelPrivate::profileNames(), START.");
- QStringList nameList;
-
- foreach(int profileId, mProfileList) {
- const MProfileName *name = mProfileNames->ProfileName(profileId);
- if (name != 0) {
- nameList.append(XQConversions::s60DescToQString(name->Name()));
- }
+ QStringList nameList;
+ foreach(int profileId, mProfileList) {
+ QT_TRAP_THROWING(
+ MProfile *profile = mEngine->Profile2L(profileId);
+ const MProfileName &name = profile->ProfileName();
+ if (name.Name().Length() > 0) {
+ nameList.append(XQConversions::s60DescToQString(name.Name()));
+ }
+ profile->Release();
+ )
}
-
CPFW_LOG("CpProfileModelPrivate::profileNames(), END.");
return nameList;
}