diff -r 5aa7c7ec6b8e -r 3487b2ea501a controlpanelui/src/cpprofilewrapper/src/cpprofilemodel_p.cpp --- 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 #include #include +#include #include #include #include @@ -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; }