widgetcreator.cpp
changeset 0 b856a9924bbc
child 6 ac3b45850c50
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgetcreator.cpp	Wed Jun 02 13:22:05 2010 +0300
@@ -0,0 +1,142 @@
+#include "widgetcreator.h"
+#include <QDir>
+#include <QTextStream>
+#include <QCheckBox>
+
+WidgetCreator::WidgetCreator(MainWindow& aUi, QObject *parent ) :
+    QObject(parent), iUi( aUi )
+{
+    generateFolders();
+    generateBuildFile();
+    generateHSPSManifest();
+    generateEmptyDat();
+    generateHSPSConf();
+    generateXml();
+    generateCss();
+    generateDat();
+    generateDtd();
+    generatePkg();
+    generateBur();
+}
+
+
+
+QString WidgetCreator::widgetName()
+{
+    return iUi.widgetName();
+}
+
+QString WidgetCreator::widgetUid()
+{
+    return iUi.widgetUid();
+}
+
+QString WidgetCreator::widgetLayout()
+{
+    return iUi.widgetLayout();
+}
+
+void WidgetCreator::generateFolders()
+{    
+    QDir dir;
+    dir.mkpath( widgetName() + "/widget");
+    dir.setPath( widgetName() + "/widget" );
+    dir.mkpath( "group" );
+    dir.mkpath( "hsps/00" );
+    dir.mkpath( "xuikon/00" );
+    dir.mkpath( "sis" );
+}
+
+void WidgetCreator::generateBuildFile()
+{
+    iUi.replaceData("data/" + widgetLayout() +"/group/bld.inf", widgetName() + "/widget/group/bld.inf", 1);
+}
+
+void WidgetCreator::generateHSPSManifest()
+{
+    iUi.replaceData("data/" + widgetLayout() +"/hsps/00/manifest.dat",
+                widgetName() + "/widget/hsps/00/manifest.dat");
+}
+
+void WidgetCreator::generateHSPSConf()
+{
+    iUi.replaceData( "data/" + widgetLayout() +"/hsps/00/widgetconfiguration.xml",
+                 widgetName() + "/widget/hsps/00/widgetconfiguration.xml" );
+}
+
+void WidgetCreator::generateEmptyDat()
+{
+    QDir dir;
+    dir.setPath( widgetName() + "/widget/hsps/00");
+    QFile file(dir.filePath("empty.dat"));
+    if (!file.open(QIODevice::ReadWrite | QIODevice::Text))
+        return;
+}
+
+void WidgetCreator::generateXml()
+{
+    if( iUi.rendererCheckBox().isChecked())
+    {
+        iUi.replaceData( "data/" + widgetLayout() +"/xuikon/00/replacerenderer.xml",
+             widgetName() + "/widget/xuikon/00/" + iUi.widgetName() +  ".xml");
+    }
+    else
+    {
+        iUi.replaceData( "data/" + widgetLayout() +"/xuikon/00/replace.xml",
+             widgetName() + "/widget/xuikon/00/" + iUi.widgetName() +  ".xml");
+    }
+
+}  
+        
+void WidgetCreator::generateCss()
+{
+    if( iUi.rendererCheckBox().isChecked())
+    {
+        iUi.replaceData( "data/" + widgetLayout() +"/xuikon/00/replacerenderer.css",
+             widgetName() + "/widget/xuikon/00/" + iUi.widgetName() +  ".css");
+    }
+    else
+    {
+        iUi.replaceData( "data/" + widgetLayout() +"/xuikon/00/replace.css",
+             widgetName() + "/widget/xuikon/00/" + iUi.widgetName() +  ".css");
+    }
+}
+
+void WidgetCreator::generateDat()
+{
+    iUi.replaceData("data/" + widgetLayout() +"/xuikon/00/replace.dat",
+                widgetName() + "/widget/xuikon/00/" + widgetName() + "_" + iUi.widgetUidNoHex() + ".dat");
+}
+
+void WidgetCreator::generateDtd()
+{
+    QDir dir;
+    dir.setPath( widgetName() + "/widget/xuikon/00");
+    QFile file(dir.filePath(widgetName()+".dtd"));
+    if (!file.open(QIODevice::ReadWrite | QIODevice::Text))
+        return;
+
+}
+
+void WidgetCreator::generatePkg()
+{
+    iUi.replaceData("data/" + widgetLayout() +"/sis/replace.pkg",
+                widgetName() + "/widget/sis/"+ widgetName() + ".pkg", 1); // 1 =no hex uid used
+   }
+
+void WidgetCreator::generateBur()
+{
+    QDir dir;
+    dir.setPath( widgetName() + "/widget/sis");
+    QFile file(dir.filePath("backup_registration.xml"));
+    if (!file.open(QIODevice::ReadWrite | QIODevice::Text))
+        return;
+
+    QTextStream out(&file);
+
+    out << "<?xml version=\"1.0\" standalone=\"yes\"?>\n"
+    << "<backup_registration>\n"
+    << "<system_backup/>\n"
+    << "<restore requires_reboot = \"no\"/>\n"
+    << "</backup_registration>\n";
+}