diff -r 87476091b3f5 -r 1db7cc813a4e homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsoperatorhandler_p.cpp --- a/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsoperatorhandler_p.cpp Fri Jul 23 13:47:57 2010 +0300 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsoperatorhandler_p.cpp Fri Aug 06 13:36:36 2010 +0300 @@ -14,21 +14,27 @@ * Description: hsoperatorhandler_p.cpp * */ -#ifndef NO_QT_EXTENSIONS +#ifdef QT_EXTENSIONS #include -#include #include #include "hsoperatorhandler_p.h" #include "hsmenuservice.h" #include "caentry.h" #include "caservice.h" -const int AppLibUid = 0x20022F97; -const int IconId = 0x00000001; -const int OperatorAppUid = 0x00000002; -const int OperatorUrl = 0x00000003; -const int OperatorText = 0x00000004; +const int AppLibUid = 0x20022F97; +const int IncludeOperatorStore = 0x00000001; +const int OperatorStoreType = 0x00000002; +const int OperatorStoreTitle = 0x00000003; +const int OperatorStoreURL = 0x00000004; +const int OperatorStoreIconSkinID = 0x00000005; +const int OperatorStoreApplication = 0x00000006; +const int OperatorStore1stPopUp = 0x00000007; +const int RemoveOviStore = 0x00000008; +const char *operatorStoreIconPath + = "z:/private/20022F35/customsvg/operatorstore.svg"; + // ======== MEMBER FUNCTIONS ======== @@ -38,9 +44,13 @@ */ HsOperatorHandlerPrivate::HsOperatorHandlerPrivate(QObject *parent): QObject(parent), + mOviStorePresent(false), + mOperatorStorePresent(false), + mStoreType(NoneType), mOperatorEntry(0), mIcon(), - mText() + mOperatorStoreTitle(), + mOperatorStoreFirst(false) { readCentralRepository(); } @@ -72,12 +82,39 @@ } /*! - Returns Operator icon predefined in Central Repositoryicon - \retval icon + Returns Operator title text predefined in Central Repositoryicon + \retval text */ QString HsOperatorHandlerPrivate::text() { - return mText; + return mOperatorStoreTitle; +} + +/*! + Returns Ovi Store presence value predefined in Central Repositoryicon + \retval true if Ovi Store should be present in toolbar + */ +bool HsOperatorHandlerPrivate::oviStorePresent() +{ + return mOviStorePresent; +} + +/*! + Returns Operator Store presence value predefined in Central Repositoryicon + \retval true if Operator Store should be present in toolbar + */ +bool HsOperatorHandlerPrivate::operatorStorePresent() +{ + return mOperatorStorePresent; +} + +/*! + Returns if Operator Store should first in toolbar + \retval true if Operator Store should first in toolbar + */ +bool HsOperatorHandlerPrivate::operatorStoreFirst() +{ + return mOperatorStoreFirst; } /*! @@ -87,41 +124,15 @@ */ HbIcon HsOperatorHandlerPrivate::createIcon(XQSettingsManager *crManager) { - qDebug("HsOperatorHandlerPrivate::createIcon"); - HbIcon icon; - - XQCentralRepositorySettingsKey iconKey(AppLibUid, IconId); - QVariant iconVarian = crManager->readItemValue( - iconKey, XQSettingsManager::TypeString); - - if (!iconVarian.isNull() && !iconVarian.toString().isEmpty()) { - qDebug() << "HsOperatorHandlerPrivate::createIcon" - << iconVarian.toString(); - icon = HbIcon(iconVarian.toString()); + QVariant variant = getVariantFromKey( + crManager, + OperatorStoreIconSkinID, + XQSettingsManager::TypeString); + if (!variant.isNull() && !variant.toString().isEmpty()) { + return HbIcon(variant.toString()); + } else { + return HbIcon(operatorStoreIconPath); } - return icon; -} - -/*! - Creates text based on Central Repository - \param crManager settings manager - \retval icon - */ -QString HsOperatorHandlerPrivate::readText(XQSettingsManager *crManager) -{ - qDebug("HsOperatorHandlerPrivate::readText"); - QString text; - - XQCentralRepositorySettingsKey textKey(AppLibUid, OperatorText); - QVariant textVariant = crManager->readItemValue( - textKey, XQSettingsManager::TypeString); - - if (!textVariant.isNull() && textVariant.isValid()) { - qDebug() << "HsOperatorHandlerPrivate::createIcon" - << textVariant.toString(); - text = textVariant.toString(); - } - return text; } /*! @@ -132,19 +143,14 @@ CaEntry *HsOperatorHandlerPrivate::createAppEntry( XQSettingsManager *crManager) { - qDebug("HsOperatorHandlerPrivate::createAppEntry"); - XQCentralRepositorySettingsKey appUidKey(AppLibUid, OperatorAppUid); - QVariant appUidVariant = crManager->readItemValue( - appUidKey, XQSettingsManager::TypeString); - - if (!appUidVariant.isNull() && !appUidVariant.toString().isEmpty()) { - qDebug() << "HsOperatorHandlerPrivate::createAppEntry" - << appUidVariant.toString(); - + QVariant variant = getVariantFromKey( + crManager, OperatorStoreApplication, XQSettingsManager::TypeString); + if (!variant.isNull()) { CaEntry *operatorEntry = new CaEntry; operatorEntry->setEntryTypeName(applicationTypeName()); operatorEntry->setAttribute( - applicationUidEntryKey(), appUidVariant.toString()); + applicationUidEntryKey(), variant.toString()); + return operatorEntry; } return NULL; @@ -158,20 +164,104 @@ CaEntry *HsOperatorHandlerPrivate::createUrlEntry( XQSettingsManager *crManager) { - qDebug("HsOperatorHandlerPrivate::createUrlEntry"); - CaEntry *operatorEntry = new CaEntry; + QVariant variant = getVariantFromKey( + crManager, OperatorStoreURL, XQSettingsManager::TypeString); + if (!variant.isNull()) { + CaEntry *operatorEntry = new CaEntry; + operatorEntry->setEntryTypeName(urlTypeName()); + operatorEntry->setAttribute(urlEntryKey(), variant.toString()); + + return operatorEntry; + } + return NULL; +} + - XQCentralRepositorySettingsKey urlKey(AppLibUid, OperatorUrl); - QVariant urlVariant = crManager->readItemValue( - urlKey, XQSettingsManager::TypeString); +/*! + Generic function to get stores presence values + \param crManager settings manager + \param storePresenceKey store key(Ovi or Operator) + \retval entry + */ +bool HsOperatorHandlerPrivate::storeValue( + XQSettingsManager *crManager, int storePresenceKey) +{ + QVariant variant = getVariantFromKey( + crManager, storePresenceKey, XQSettingsManager::TypeInt); + if (!variant.isNull()) { + return bool(variant.toInt()); + } + return false; +} + +/*! + Generic function to get QVariant for CR key + \param crManager settings manager + \param crKey CR key + \param type type of QVariant to be returned + \retval QVariant + */ +QVariant HsOperatorHandlerPrivate::getVariantFromKey( + XQSettingsManager *crManager, int crKey, XQSettingsManager::Type type) +{ + XQCentralRepositorySettingsKey presenceKey(AppLibUid, crKey); + QVariant presenceVariant = crManager->readItemValue( + presenceKey, type); - if (!urlVariant.isNull() && !urlVariant.toString().isEmpty()) { - operatorEntry->setEntryTypeName(urlTypeName()); - operatorEntry->setAttribute(urlEntryKey(), urlVariant.toString()); - qDebug() << "HsOperatorHandlerPrivate::createUrlEntry" - << urlVariant.toString(); + if (presenceVariant.isValid()) { + qDebug() << "HsOperatorHandlerPrivate::storePresent" + << presenceVariant.toInt(); + return presenceVariant; + } + return QVariant(); +} + +/*! + Generic function to get store type(Url/App) + \param crManager settings manager + \retval HsStoreType store type + */ +HsOperatorHandlerPrivate::HsStoreType + HsOperatorHandlerPrivate::operatorStoreType( + XQSettingsManager *crManager) +{ + QVariant variant = getVariantFromKey( + crManager, OperatorStoreType, XQSettingsManager::TypeInt); + if (!variant.isNull()) { + return HsOperatorHandlerPrivate::HsStoreType(variant.toInt()); } - return operatorEntry; + return NoneType; +} + +/*! + Creates text based on Central Repository + \param crManager settings manager + \retval icon + */ +QString HsOperatorHandlerPrivate::operatorStoreTitle(XQSettingsManager *crManager) +{ + QVariant variant = getVariantFromKey( + crManager, OperatorStoreTitle, XQSettingsManager::TypeString); + if (!variant.isNull()) { + return variant.toString(); + } + return QString(); +} + +/*! + Retrives information if Operator Store should first in toolbarbased + (from Central Repository) + \param crManager settings manager + \retval true if Operator Store should be first + */ +bool HsOperatorHandlerPrivate::operatorStoreFirst(XQSettingsManager *crManager) +{ + QVariant variant = getVariantFromKey( + crManager, OperatorStore1stPopUp, XQSettingsManager::TypeInt); + if (!variant.isNull()) { + return bool(variant.toInt()); + } + return false; } /*! @@ -180,12 +270,21 @@ void HsOperatorHandlerPrivate::readCentralRepository() { XQSettingsManager *crManager = new XQSettingsManager; + //this key indicates that ovi store should be removed + mOviStorePresent = !storeValue(crManager, RemoveOviStore); + //this key indicates that operator store should be added + mOperatorStorePresent = storeValue(crManager, IncludeOperatorStore); - mIcon = createIcon(crManager); - mText = readText(crManager); - mOperatorEntry = createAppEntry(crManager); - if (!mOperatorEntry) { - mOperatorEntry = createUrlEntry(crManager); + if (mOperatorStorePresent) { + mStoreType = operatorStoreType(crManager); + if (mStoreType == ApplicationType) { + mOperatorEntry = createAppEntry(crManager); + } else { + mOperatorEntry = createUrlEntry(crManager); + } + mOperatorStoreTitle = operatorStoreTitle(crManager); + mOperatorStoreFirst = operatorStoreFirst(crManager); + mIcon = createIcon(crManager); } delete crManager; }