controlpanel/src/cpframework/src/cputility.cpp
changeset 32 20bd089f4aaa
parent 31 2c9d3aa5bea2
child 34 8844afdb7529
--- a/controlpanel/src/cpframework/src/cputility.cpp	Thu Apr 01 03:17:51 2010 +0800
+++ b/controlpanel/src/cpframework/src/cputility.cpp	Thu Apr 01 03:23:37 2010 +0800
@@ -15,68 +15,16 @@
 *
 */
 #include "cputility.h"
-#include <qstring>
-#include <qdir>
-#include <qfileinfo>
+#include <QString>
+#include <QDir>
+#include <QFileInfo>
 #include "cpbasepath.h"
-#include "cppluginloader.h"
+#include <cppluginloader.h>
+#include <cpplugininterface.h>
 #include <cppluginplatinterface.h>
+#include <cplogger.h>
 #include <cpsettingformentryitemdata.h>
-#include "cpcategorysettingformitemdata.h"
-#include "cppluginconfigreader.h"
-
-void CpUtility::buildConfigPluginItems(HbDataFormModelItem *parent,
-									   const QString &configFile,
-									   CpItemDataHelper &itemDataHelper)
-{
-    if (!parent) {
-        return;
-    }
 
-	QString configPath(configFile);
-	QFileInfo fi(configFile);
-	if (!fi.isAbsolute()) {
-		QStringList dirs = CpUtility::cpcfgDirs();
-		foreach(const QString &dir,dirs) {
-			configPath = dir + fi.fileName();
-			if (QFileInfo(configPath).exists()) {
-				break;		
-			}
-		}
-	}
-    	
-    QList<CpPluginConfig> cpPluginConfigs = CpPluginConfigReader(configPath).readCpPluginConfigs();
-		
-	foreach(const CpPluginConfig &cpPluginConfig, cpPluginConfigs)  {
-		CpPluginPlatInterface *plugin = CpPluginLoader().loadCpPlugin(cpPluginConfig.mPluginFile);
-
-		if (plugin) {
-			CpSettingFormItemData *itemData = plugin->createSettingFormItemData(itemDataHelper);
-			if (itemData) {
-				//append the new created setting form item to its parent item.
-				parent->appendChild(itemData);
-
-				if (CpCategorySettingFormItemData *categoryItemData 
-					= qobject_cast<CpCategorySettingFormItemData*>(itemData)) {
-					categoryItemData->initialize(itemDataHelper);
-				}
-
-				//set the description from config if it is empty.
-				if (CpSettingFormEntryItemData *cpEntryItemData
-					= qobject_cast<CpSettingFormEntryItemData*>(itemData)) {
-						if (cpEntryItemData->text().isEmpty()) {
-							cpEntryItemData->setText(cpPluginConfig.mDisplayName);
-						}
-						if (cpEntryItemData->description().isEmpty()) {
-							cpEntryItemData->setDescription(cpPluginConfig.mDescription);
-						}
-				}
-
-			}
-		}
-
-	} //end foreach
-}
 
 
 QStringList CpUtility::drives()
@@ -84,8 +32,10 @@
 	static QStringList drives;
 
 	if (drives.empty()) {
+        CPFW_LOG("device drives:");
 #ifdef WIN32
 		drives.append("C:");
+        CPFW_LOG("C:");
 #else
 		QFileInfoList fileInfoList = QDir::drives();
 		foreach(const QFileInfo &fileInfo,fileInfoList) {
@@ -94,14 +44,15 @@
 				str = str.left(2);
 			}
 			drives.append(str);
+            CPFW_LOG(str);
 		}
-#endif
+#endif  
 	}
 
 	return drives;
 }
 
-static QStringList listDirs(const QString &baseDir)
+static QStringList directoriesFromAllDrives(const QString &baseDir)
 {
 	QStringList dirs;
 
@@ -110,26 +61,40 @@
 		QString dir = drive + baseDir + QDir::separator();
 		if (QFileInfo(dir).exists()) {
 			dirs.append(dir);
+            CPFW_LOG(dir);
 		}
 	}
 
 	return dirs;
 }
 
-QStringList CpUtility::pluginDirs()
+QStringList CpUtility::pluginDirectories()
 {
 	static QStringList dirs;
 	if (dirs.empty()) {
-		dirs = listDirs(CP_PLUGIN_PATH);
+        CPFW_LOG("ControlPanel plugin derectories:")
+		dirs = directoriesFromAllDrives(CP_PLUGIN_PATH);
 	}
 	return dirs;
 }
 
-QStringList CpUtility::cpcfgDirs()
+QStringList CpUtility::applicationPluginDirectories()
 {
 	static QStringList dirs;
 	if (dirs.empty()) {
-		dirs = listDirs(CP_PLUGIN_CONFIG_PATH);
+        CPFW_LOG("ControlPanel application plugin derectories:");
+//		dirs = directoriesFromAllDrives(CP_APPLICATION_PLUGIN_PATH);
+	}	
+	return dirs;
+}
+
+
+QStringList CpUtility::configFileDirectories()
+{
+	static QStringList dirs;
+	if (dirs.empty()) {
+        CPFW_LOG("ControlPanel configuration file derectories:");
+		dirs = directoriesFromAllDrives(CP_PLUGIN_CONFIG_PATH);
 	}
 	return dirs;
 }