widgetcreator.cpp
author jake
Tue, 26 Oct 2010 15:34:14 +0300
changeset 6 ac3b45850c50
parent 0 b856a9924bbc
permissions -rw-r--r--
New release 0.1.c

#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().toLower();
}

QString WidgetCreator::widgetUid()
{
    return iUi.widgetUid().toLower();
}

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/commonwidgetdata/group/bld.inf", widgetName() + "/widget/group/bld.inf", 1);
}

void WidgetCreator::generateHSPSManifest()
{
    iUi.replaceData("data/commonwidgetdata/hsps/00/manifest.dat",
                widgetName() + "/widget/hsps/00/manifest.dat");
}

void WidgetCreator::generateHSPSConf()
{
    iUi.replaceData( "data/commonwidgetdata/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/commonwidgetdata/xuikon/00/replacerenderer.xml",
             widgetName() + "/widget/xuikon/00/" + widgetName() +  ".xml");
    }
    else
    {
        iUi.replaceData( "data/" + widgetLayout() +"/xuikon/00/replace.xml",
             widgetName() + "/widget/xuikon/00/" + widgetName() +  ".xml");
    }

}  
        
void WidgetCreator::generateCss()
{
    if( iUi.rendererCheckBox().isChecked())
    {
        iUi.replaceData( "data/commonwidgetdata/xuikon/00/replacerenderer.css",
             widgetName() + "/widget/xuikon/00/" + widgetName() +  ".css");
    }
    else
    {
        iUi.replaceData( "data/" + widgetLayout() +"/xuikon/00/replace.css",
             widgetName() + "/widget/xuikon/00/" + widgetName() +  ".css");
    }
}

void WidgetCreator::generateDat()
{
    iUi.replaceData("data/commonwidgetdata/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/commonwidgetdata/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";
}