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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
     1
#include "widgetcreator.h"
b856a9924bbc initial contribution
jake
parents:
diff changeset
     2
#include <QDir>
b856a9924bbc initial contribution
jake
parents:
diff changeset
     3
#include <QTextStream>
b856a9924bbc initial contribution
jake
parents:
diff changeset
     4
#include <QCheckBox>
b856a9924bbc initial contribution
jake
parents:
diff changeset
     5
b856a9924bbc initial contribution
jake
parents:
diff changeset
     6
WidgetCreator::WidgetCreator(MainWindow& aUi, QObject *parent ) :
b856a9924bbc initial contribution
jake
parents:
diff changeset
     7
    QObject(parent), iUi( aUi )
b856a9924bbc initial contribution
jake
parents:
diff changeset
     8
{
b856a9924bbc initial contribution
jake
parents:
diff changeset
     9
    generateFolders();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    10
    generateBuildFile();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    11
    generateHSPSManifest();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    12
    generateEmptyDat();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    13
    generateHSPSConf();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    14
    generateXml();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    15
    generateCss();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    16
    generateDat();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    17
    generateDtd();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    18
    generatePkg();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    19
    generateBur();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    20
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    21
b856a9924bbc initial contribution
jake
parents:
diff changeset
    22
QString WidgetCreator::widgetName()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    23
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    24
    return iUi.widgetName().toLower();
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    25
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    26
b856a9924bbc initial contribution
jake
parents:
diff changeset
    27
QString WidgetCreator::widgetUid()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    28
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    29
    return iUi.widgetUid().toLower();
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    30
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    31
b856a9924bbc initial contribution
jake
parents:
diff changeset
    32
QString WidgetCreator::widgetLayout()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    33
{
b856a9924bbc initial contribution
jake
parents:
diff changeset
    34
    return iUi.widgetLayout();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    35
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    36
b856a9924bbc initial contribution
jake
parents:
diff changeset
    37
void WidgetCreator::generateFolders()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    38
{    
b856a9924bbc initial contribution
jake
parents:
diff changeset
    39
    QDir dir;
b856a9924bbc initial contribution
jake
parents:
diff changeset
    40
    dir.mkpath( widgetName() + "/widget");
b856a9924bbc initial contribution
jake
parents:
diff changeset
    41
    dir.setPath( widgetName() + "/widget" );
b856a9924bbc initial contribution
jake
parents:
diff changeset
    42
    dir.mkpath( "group" );
b856a9924bbc initial contribution
jake
parents:
diff changeset
    43
    dir.mkpath( "hsps/00" );
b856a9924bbc initial contribution
jake
parents:
diff changeset
    44
    dir.mkpath( "xuikon/00" );
b856a9924bbc initial contribution
jake
parents:
diff changeset
    45
    dir.mkpath( "sis" );
b856a9924bbc initial contribution
jake
parents:
diff changeset
    46
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    47
b856a9924bbc initial contribution
jake
parents:
diff changeset
    48
void WidgetCreator::generateBuildFile()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    49
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    50
    iUi.replaceData("data/commonwidgetdata/group/bld.inf", widgetName() + "/widget/group/bld.inf", 1);
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    51
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    52
b856a9924bbc initial contribution
jake
parents:
diff changeset
    53
void WidgetCreator::generateHSPSManifest()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    54
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    55
    iUi.replaceData("data/commonwidgetdata/hsps/00/manifest.dat",
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    56
                widgetName() + "/widget/hsps/00/manifest.dat");
b856a9924bbc initial contribution
jake
parents:
diff changeset
    57
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    58
b856a9924bbc initial contribution
jake
parents:
diff changeset
    59
void WidgetCreator::generateHSPSConf()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    60
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    61
    iUi.replaceData( "data/commonwidgetdata/hsps/00/widgetconfiguration.xml",
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    62
                 widgetName() + "/widget/hsps/00/widgetconfiguration.xml" );
b856a9924bbc initial contribution
jake
parents:
diff changeset
    63
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    64
b856a9924bbc initial contribution
jake
parents:
diff changeset
    65
void WidgetCreator::generateEmptyDat()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    66
{
b856a9924bbc initial contribution
jake
parents:
diff changeset
    67
    QDir dir;
b856a9924bbc initial contribution
jake
parents:
diff changeset
    68
    dir.setPath( widgetName() + "/widget/hsps/00");
b856a9924bbc initial contribution
jake
parents:
diff changeset
    69
    QFile file(dir.filePath("empty.dat"));
b856a9924bbc initial contribution
jake
parents:
diff changeset
    70
    if (!file.open(QIODevice::ReadWrite | QIODevice::Text))
b856a9924bbc initial contribution
jake
parents:
diff changeset
    71
        return;
b856a9924bbc initial contribution
jake
parents:
diff changeset
    72
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    73
b856a9924bbc initial contribution
jake
parents:
diff changeset
    74
void WidgetCreator::generateXml()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    75
{
b856a9924bbc initial contribution
jake
parents:
diff changeset
    76
    if( iUi.rendererCheckBox().isChecked())
b856a9924bbc initial contribution
jake
parents:
diff changeset
    77
    {
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    78
        iUi.replaceData( "data/commonwidgetdata/xuikon/00/replacerenderer.xml",
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    79
             widgetName() + "/widget/xuikon/00/" + widgetName() +  ".xml");
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    80
    }
b856a9924bbc initial contribution
jake
parents:
diff changeset
    81
    else
b856a9924bbc initial contribution
jake
parents:
diff changeset
    82
    {
b856a9924bbc initial contribution
jake
parents:
diff changeset
    83
        iUi.replaceData( "data/" + widgetLayout() +"/xuikon/00/replace.xml",
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    84
             widgetName() + "/widget/xuikon/00/" + widgetName() +  ".xml");
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    85
    }
b856a9924bbc initial contribution
jake
parents:
diff changeset
    86
b856a9924bbc initial contribution
jake
parents:
diff changeset
    87
}  
b856a9924bbc initial contribution
jake
parents:
diff changeset
    88
        
b856a9924bbc initial contribution
jake
parents:
diff changeset
    89
void WidgetCreator::generateCss()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    90
{
b856a9924bbc initial contribution
jake
parents:
diff changeset
    91
    if( iUi.rendererCheckBox().isChecked())
b856a9924bbc initial contribution
jake
parents:
diff changeset
    92
    {
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    93
        iUi.replaceData( "data/commonwidgetdata/xuikon/00/replacerenderer.css",
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    94
             widgetName() + "/widget/xuikon/00/" + widgetName() +  ".css");
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    95
    }
b856a9924bbc initial contribution
jake
parents:
diff changeset
    96
    else
b856a9924bbc initial contribution
jake
parents:
diff changeset
    97
    {
b856a9924bbc initial contribution
jake
parents:
diff changeset
    98
        iUi.replaceData( "data/" + widgetLayout() +"/xuikon/00/replace.css",
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    99
             widgetName() + "/widget/xuikon/00/" + widgetName() +  ".css");
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
   100
    }
b856a9924bbc initial contribution
jake
parents:
diff changeset
   101
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
   102
b856a9924bbc initial contribution
jake
parents:
diff changeset
   103
void WidgetCreator::generateDat()
b856a9924bbc initial contribution
jake
parents:
diff changeset
   104
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
   105
    iUi.replaceData("data/commonwidgetdata/xuikon/00/replace.dat",
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
   106
                widgetName() + "/widget/xuikon/00/" + widgetName() + "_" + iUi.widgetUidNoHex() + ".dat");
b856a9924bbc initial contribution
jake
parents:
diff changeset
   107
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
   108
b856a9924bbc initial contribution
jake
parents:
diff changeset
   109
void WidgetCreator::generateDtd()
b856a9924bbc initial contribution
jake
parents:
diff changeset
   110
{
b856a9924bbc initial contribution
jake
parents:
diff changeset
   111
    QDir dir;
b856a9924bbc initial contribution
jake
parents:
diff changeset
   112
    dir.setPath( widgetName() + "/widget/xuikon/00");
b856a9924bbc initial contribution
jake
parents:
diff changeset
   113
    QFile file(dir.filePath(widgetName()+".dtd"));
b856a9924bbc initial contribution
jake
parents:
diff changeset
   114
    if (!file.open(QIODevice::ReadWrite | QIODevice::Text))
b856a9924bbc initial contribution
jake
parents:
diff changeset
   115
        return;
b856a9924bbc initial contribution
jake
parents:
diff changeset
   116
b856a9924bbc initial contribution
jake
parents:
diff changeset
   117
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
   118
b856a9924bbc initial contribution
jake
parents:
diff changeset
   119
void WidgetCreator::generatePkg()
b856a9924bbc initial contribution
jake
parents:
diff changeset
   120
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
   121
    iUi.replaceData("data/commonwidgetdata/sis/replace.pkg",
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
   122
                widgetName() + "/widget/sis/"+ widgetName() + ".pkg", 1); // 1 =no hex uid used
b856a9924bbc initial contribution
jake
parents:
diff changeset
   123
   }
b856a9924bbc initial contribution
jake
parents:
diff changeset
   124
b856a9924bbc initial contribution
jake
parents:
diff changeset
   125
void WidgetCreator::generateBur()
b856a9924bbc initial contribution
jake
parents:
diff changeset
   126
{
b856a9924bbc initial contribution
jake
parents:
diff changeset
   127
    QDir dir;
b856a9924bbc initial contribution
jake
parents:
diff changeset
   128
    dir.setPath( widgetName() + "/widget/sis");
b856a9924bbc initial contribution
jake
parents:
diff changeset
   129
    QFile file(dir.filePath("backup_registration.xml"));
b856a9924bbc initial contribution
jake
parents:
diff changeset
   130
    if (!file.open(QIODevice::ReadWrite | QIODevice::Text))
b856a9924bbc initial contribution
jake
parents:
diff changeset
   131
        return;
b856a9924bbc initial contribution
jake
parents:
diff changeset
   132
b856a9924bbc initial contribution
jake
parents:
diff changeset
   133
    QTextStream out(&file);
b856a9924bbc initial contribution
jake
parents:
diff changeset
   134
b856a9924bbc initial contribution
jake
parents:
diff changeset
   135
    out << "<?xml version=\"1.0\" standalone=\"yes\"?>\n"
b856a9924bbc initial contribution
jake
parents:
diff changeset
   136
    << "<backup_registration>\n"
b856a9924bbc initial contribution
jake
parents:
diff changeset
   137
    << "<system_backup/>\n"
b856a9924bbc initial contribution
jake
parents:
diff changeset
   138
    << "<restore requires_reboot = \"no\"/>\n"
b856a9924bbc initial contribution
jake
parents:
diff changeset
   139
    << "</backup_registration>\n";
b856a9924bbc initial contribution
jake
parents:
diff changeset
   140
}