controlpanelui/src/cpcategorymodel/src/cppluginconfigreader.h
branchRCL_3
changeset 34 90fe62538f66
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/controlpanelui/src/cpcategorymodel/src/cppluginconfigreader.h	Tue Aug 31 15:15:28 2010 +0300
@@ -0,0 +1,80 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This class reads cpcfg files.
+*
+*/
+
+/* configuration format:
+ 
+  <childplugins>
+    <plugin displayname = "Personalization" id = "0xE195181a" dll = "cppersonaliztionplugin.dll">
+      <desc>This is Personalization</desc>
+    </plugin>
+    <plugin displayname = "Communication" id = "0xE195181b" dll = "cpcommunicationplugin.dll">
+      <desc>This is Communication</desc>
+    </plugin>
+    <plugin displayname = "Application settings" id = "0xE195181c" dll = "cpapplicationsettingsplugin.dll">
+      <desc>This is Application settings</desc>
+    </plugin>
+    <plugin displayname = "Device" id = "0xE195181d" dll = "cpdeviceplugin.dll">
+      <desc>This is Device</desc>
+    </plugin>
+  </childplugins>
+*/
+
+/* Usage:
+
+  const QString file("\\resource\\qt\\plugins\\controlpanel\\config\\applicationsettingsplugin.cpcfg");
+  
+  CpPluginConfigReader cfgReader(file);
+  QList<CpPluginConfig> cfgList = cfgReader.readCpPluginConfigs();
+  
+  foreach (CpPluginConfig cfg, cfgList)
+  {
+    cfg.dump();
+  }
+*/
+
+#ifndef CPPLUGINCONFIGREADER_H
+#define CPPLUGINCONFIGREADER_H
+
+#include <QString>
+#include <QList>
+#include "cppluginconfig.h"
+
+class QXmlStreamReader;
+
+class CpPluginConfigReader
+{
+public:
+    explicit CpPluginConfigReader(const QString &configPath);
+    ~CpPluginConfigReader();
+
+    QList<CpPluginConfig> readCpPluginConfigs();
+
+private:
+    void readCpPluginConfigs(QXmlStreamReader &xmlReader,
+            QList<CpPluginConfig> &cpPluginConfigList);
+    void readChildPluginsElement(QXmlStreamReader &xmlReader, 
+            QList<CpPluginConfig> &cpPluginConfigList);
+    void readPluginElement(QXmlStreamReader &xmlReader,
+            QList<CpPluginConfig> &cpPluginConfigList);
+    void readDescElement(QXmlStreamReader &xmlReader,
+            CpPluginConfig &cpPluginConfig);
+    void skipUnknownElement(QXmlStreamReader &xmlReader);
+private:
+    QString mConfigPath;
+};
+
+#endif /* CPPLUGINCONFIGREADER_H */