controlpanelui/src/cpcategorymodel/src/cputility.cpp
changeset 12 624337f114fe
parent 11 10d0dd0e43f1
equal deleted inserted replaced
11:10d0dd0e43f1 12:624337f114fe
    16 */
    16 */
    17 #include "cputility.h"
    17 #include "cputility.h"
    18 #include <QString>
    18 #include <QString>
    19 #include <QDir>
    19 #include <QDir>
    20 #include <QFileInfo>
    20 #include <QFileInfo>
    21 #include "cpbasepath.h"
    21 #include <cpbasepath.h>
    22 #include <cppluginloader.h>
    22 #include <cppluginloader.h>
    23 #include <cpplugininterface.h>
    23 #include <cpplugininterface.h>
    24 #include <cppluginplatinterface.h>
    24 #include <cppluginplatinterface.h>
    25 #include <cplogger.h>
    25 #include <cplogger.h>
    26 #include <cpsettingformentryitemdata.h>
    26 #include <cpsettingformentryitemdata.h>
    27 #include "cpcategorysettingformitemdata.h"
    27 #include "cpcategorysettingformitemdata.h"
    28 #include "cppluginconfigreader.h"
    28 #include "cppluginconfigreader.h"
    29 #include "cpplaceholderitemdata.h"
    29 #include "cpplaceholderitemdata.h"
       
    30 
       
    31 
       
    32 static bool setEntryItemContentIfEmpty(CpSettingFormItemData *itemData, 
       
    33         const CpPluginConfig &pluginConfig)
       
    34 {
       
    35     CpSettingFormEntryItemData *entryItemData = qobject_cast< CpSettingFormEntryItemData* > (itemData);
       
    36     if (!entryItemData) {
       
    37         return false;
       
    38     }
       
    39     
       
    40     if (entryItemData->text().isEmpty()) {
       
    41         entryItemData->setText(pluginConfig.mDisplayName);
       
    42     }
       
    43     if (entryItemData->description().isEmpty()) {
       
    44         entryItemData->setDescription(pluginConfig.mDescription);
       
    45     }
       
    46     if (entryItemData->iconName().isEmpty()) {
       
    47         entryItemData->setIconName(
       
    48                   CP_RESOURCE_PATH
       
    49                   + QDir::separator() 
       
    50                   + ICON_SUB_PATH 
       
    51                   + QDir::separator() 
       
    52                   + QLatin1String("qgn_prop_set_default_sub.svg") );
       
    53     }
       
    54     
       
    55     return true;
       
    56 }
       
    57 
    30 
    58 
    31 void CpUtility::buildConfigPluginItems(HbDataFormModelItem *parent,
    59 void CpUtility::buildConfigPluginItems(HbDataFormModelItem *parent,
    32 									   const QString &configFile,
    60 									   const QString &configFile,
    33 									   CpItemDataHelper &itemDataHelper)
    61 									   CpItemDataHelper &itemDataHelper)
    34 {
    62 {
    56         CPFW_LOG(QLatin1String("Load plugin: ") + pluginConfig.mPluginFile + " from " + configPath);
    84         CPFW_LOG(QLatin1String("Load plugin: ") + pluginConfig.mPluginFile + " from " + configPath);
    57 
    85 
    58 		QList<CpSettingFormItemData*> itemDataList;
    86 		QList<CpSettingFormItemData*> itemDataList;
    59 		
    87 		
    60         //firstly, handle CpPluginInterface
    88         //firstly, handle CpPluginInterface
    61 		if (CpPluginInterface *plugin = CpPluginLoader().loadCpPlugin(pluginConfig.mPluginFile)) {
    89 		if (CpPluginInterface *plugin = CpPluginLoader().loadCpPluginInterface(pluginConfig.mPluginFile)) {
    62             CPFW_LOG("Load  root component CpPluginInterface succeed.");
    90             CPFW_LOG("Load  root component CpPluginInterface succeed.");
    63 			itemDataList = plugin->createSettingFormItemData(itemDataHelper);
    91 			itemDataList = plugin->createSettingFormItemData(itemDataHelper);
    64 		}
    92 		}
    65         //handle CpPluginPlatInterface
    93         //handle CpPluginPlatInterface
    66 		else if (CpPluginPlatInterface *plugin = CpPluginLoader().loadPlatCpPlugin(pluginConfig.mPluginFile)) {
    94 		else if (CpPluginPlatInterface *plugin = CpPluginLoader().loadPlatCpPlugin(pluginConfig.mPluginFile)) {
    74 
   102 
    75 		else {
   103 		else {
    76             CPFW_LOG(QLatin1String("Load plugin:") + pluginConfig.mPluginFile + QLatin1String(" failed."));
   104             CPFW_LOG(QLatin1String("Load plugin:") + pluginConfig.mPluginFile + QLatin1String(" failed."));
    77             #ifdef _DEBUG
   105             #ifdef _DEBUG
    78               CPFW_LOG(QLatin1String("***Add a placeholder."));
   106               CPFW_LOG(QLatin1String("***Add a placeholder."));
    79               parent->appendChild(new CpPlaceHolderItemData(itemDataHelper,pluginConfig));
   107               itemDataList.append(new CpPlaceHolderItemData(itemDataHelper,pluginConfig));
    80             #endif
   108             #endif
    81 		}
   109 		}
    82 
   110 
    83 		if (itemDataList.count()) {
   111 		if (itemDataList.count()) {
    84 			foreach(CpSettingFormItemData *itemData,itemDataList) {
   112 			foreach(CpSettingFormItemData *itemData,itemDataList) {
    89 					if (CpCategorySettingFormItemData *categoryItemData 
   117 					if (CpCategorySettingFormItemData *categoryItemData 
    90 						= qobject_cast<CpCategorySettingFormItemData*>(itemData)) {
   118 						= qobject_cast<CpCategorySettingFormItemData*>(itemData)) {
    91 						categoryItemData->initialize(itemDataHelper);
   119 						categoryItemData->initialize(itemDataHelper);
    92 					}
   120 					}
    93 
   121 
    94 					//set the description from config if it is empty.
   122 					//set the text and description from config if it is empty.
    95 					if (CpSettingFormEntryItemData *cpEntryItemData
   123 					setEntryItemContentIfEmpty(itemData,pluginConfig);
    96 						= qobject_cast<CpSettingFormEntryItemData*>(itemData)) {
       
    97 						if (cpEntryItemData->text().isEmpty()) {
       
    98 							cpEntryItemData->setText(pluginConfig.mDisplayName);
       
    99 						}
       
   100 						if (cpEntryItemData->description().isEmpty()) {
       
   101 							cpEntryItemData->setDescription(pluginConfig.mDescription);
       
   102 						}
       
   103 					}
       
   104 
       
   105 				}
   124 				}
   106 			} //end foreach
   125 			} //end foreach
   107 		}
   126 		}
   108 
   127 
   109 	} //end foreach
   128 	} //end foreach