renderercreator.cpp
author jake
Tue, 26 Oct 2010 15:34:14 +0300
changeset 6 ac3b45850c50
parent 0 b856a9924bbc
child 9 6967ff0a31f5
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 "renderercreator.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
b856a9924bbc initial contribution
jake
parents:
diff changeset
     5
b856a9924bbc initial contribution
jake
parents:
diff changeset
     6
RendererCreator::RendererCreator(MainWindow& aUi) : iUi( aUi )
b856a9924bbc initial contribution
jake
parents:
diff changeset
     7
{
b856a9924bbc initial contribution
jake
parents:
diff changeset
     8
    generateFolders();
b856a9924bbc initial contribution
jake
parents:
diff changeset
     9
    generateResource();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    10
    generateBuildFile();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    11
    generateMMP();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    12
    generateHeader();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    13
    generateSource();
b856a9924bbc initial contribution
jake
parents:
diff changeset
    14
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    15
b856a9924bbc initial contribution
jake
parents:
diff changeset
    16
void RendererCreator::generateFolders()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    17
{
b856a9924bbc initial contribution
jake
parents:
diff changeset
    18
    QDir dir;
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    19
    dir.mkpath( iUi.widgetName().toLower() + "/renderingplugin");
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    20
    dir.setPath( iUi.widgetName().toLower() + "/renderingplugin");
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    21
    dir.mkpath( "data" );
b856a9924bbc initial contribution
jake
parents:
diff changeset
    22
    dir.mkpath( "group" );
b856a9924bbc initial contribution
jake
parents:
diff changeset
    23
    dir.mkpath( "inc" );
b856a9924bbc initial contribution
jake
parents:
diff changeset
    24
    dir.mkpath( "src" );
b856a9924bbc initial contribution
jake
parents:
diff changeset
    25
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    26
b856a9924bbc initial contribution
jake
parents:
diff changeset
    27
void RendererCreator::generateResource()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    28
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    29
    QString widgetName( iUi.widgetName().toLower() );
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    30
    QString rendererName( iUi.rendererName().toLower() );
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    31
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    32
    iUi.replaceData("data/renderingplugin/data/renderer.rss",
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    33
                widgetName + "/renderingplugin/data/" + rendererName +  "renderer.rss");
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    34
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    35
b856a9924bbc initial contribution
jake
parents:
diff changeset
    36
void RendererCreator::generateBuildFile()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    37
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    38
    QString widgetName( iUi.widgetName().toLower() );
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    39
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    40
    iUi.replaceData("data/renderingplugin/group/bld.inf",
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    41
                 widgetName + "/renderingplugin/group/bld.inf");
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    42
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    43
b856a9924bbc initial contribution
jake
parents:
diff changeset
    44
void RendererCreator::generateMMP()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    45
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    46
    QString widgetName( iUi.widgetName().toLower() );
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    47
    QString rendererName( iUi.rendererName().toLower() );
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    48
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    49
    iUi.replaceData("data/renderingplugin/group/renderer.mmp",
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    50
                widgetName + "/renderingplugin/group/" + rendererName +  "renderer.mmp");
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 RendererCreator::generateHeader()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    54
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    55
    QString widgetName( iUi.widgetName().toLower() );
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    56
    QString rendererName( iUi.rendererName().toLower() );
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    57
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    58
    iUi.replaceData("data/renderingplugin/inc/renderer.h",
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    59
                 widgetName + "/renderingplugin/inc/" + rendererName +  "renderer.h");
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    60
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    61
b856a9924bbc initial contribution
jake
parents:
diff changeset
    62
void RendererCreator::generateSource()
b856a9924bbc initial contribution
jake
parents:
diff changeset
    63
{
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    64
    QString widgetName( iUi.widgetName().toLower() );
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    65
    QString rendererName( iUi.rendererName().toLower() );
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    66
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    67
    iUi.replaceData("data/renderingplugin/src/renderer.cpp",
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    68
                widgetName + "/renderingplugin/src/" + rendererName +  "renderer.cpp");
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    69
}
b856a9924bbc initial contribution
jake
parents:
diff changeset
    70
b856a9924bbc initial contribution
jake
parents:
diff changeset
    71
void RendererCreator::replaceData( QString sourceFile, QString destFile )
b856a9924bbc initial contribution
jake
parents:
diff changeset
    72
{
b856a9924bbc initial contribution
jake
parents:
diff changeset
    73
    QFile infile(sourceFile);
b856a9924bbc initial contribution
jake
parents:
diff changeset
    74
    if (!infile.open(QIODevice::ReadWrite | QIODevice::Text))
b856a9924bbc initial contribution
jake
parents:
diff changeset
    75
        return;
b856a9924bbc initial contribution
jake
parents:
diff changeset
    76
b856a9924bbc initial contribution
jake
parents:
diff changeset
    77
    QTextStream in(&infile);
b856a9924bbc initial contribution
jake
parents:
diff changeset
    78
b856a9924bbc initial contribution
jake
parents:
diff changeset
    79
    QFile outfile(destFile);
b856a9924bbc initial contribution
jake
parents:
diff changeset
    80
    if (!outfile.open(QIODevice::ReadWrite | QIODevice::Text))
b856a9924bbc initial contribution
jake
parents:
diff changeset
    81
        return;
b856a9924bbc initial contribution
jake
parents:
diff changeset
    82
b856a9924bbc initial contribution
jake
parents:
diff changeset
    83
    QTextStream out(&outfile);
b856a9924bbc initial contribution
jake
parents:
diff changeset
    84
b856a9924bbc initial contribution
jake
parents:
diff changeset
    85
    while (!in.atEnd())
b856a9924bbc initial contribution
jake
parents:
diff changeset
    86
    {
b856a9924bbc initial contribution
jake
parents:
diff changeset
    87
        QString line = in.readLine();
6
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    88
        if( line.contains("#replace#Renderer.h", Qt::CaseInsensitive ))
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    89
        {
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    90
            line.replace(QString("#replace#"), iUi.rendererName().toLower());
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    91
        }
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    92
        else
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    93
        {
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    94
            line.replace(QString("#replace#"), iUi.rendererName());
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    95
            line.replace(QString("#replaceuid#"), iUi.rendererUid());
ac3b45850c50 New release 0.1.c
jake
parents: 0
diff changeset
    96
        }
0
b856a9924bbc initial contribution
jake
parents:
diff changeset
    97
        out << line << "\n";
b856a9924bbc initial contribution
jake
parents:
diff changeset
    98
    }
b856a9924bbc initial contribution
jake
parents:
diff changeset
    99
}