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 |