|
Packit |
1c1d7e |
#include "wizard.h"
|
|
Packit |
1c1d7e |
#include "input.h"
|
|
Packit |
1c1d7e |
#include "doxywizard.h"
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include <math.h>
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include <QGridLayout>
|
|
Packit |
1c1d7e |
#include <QImage>
|
|
Packit |
1c1d7e |
#include <QLabel>
|
|
Packit |
1c1d7e |
#include <QHBoxLayout>
|
|
Packit |
1c1d7e |
#include <QPushButton>
|
|
Packit |
1c1d7e |
#include <QPixmap>
|
|
Packit |
1c1d7e |
#include <QPainter>
|
|
Packit |
1c1d7e |
#include <QMouseEvent>
|
|
Packit |
1c1d7e |
#include <QLineEdit>
|
|
Packit |
1c1d7e |
#include <QCheckBox>
|
|
Packit |
1c1d7e |
#include <QFileInfo>
|
|
Packit |
1c1d7e |
#include <QFileDialog>
|
|
Packit |
1c1d7e |
#include <QButtonGroup>
|
|
Packit |
1c1d7e |
#include <QGroupBox>
|
|
Packit |
1c1d7e |
#include <QRadioButton>
|
|
Packit |
1c1d7e |
#include <QTreeWidget>
|
|
Packit |
1c1d7e |
#include <QStackedWidget>
|
|
Packit |
1c1d7e |
#include <qdrawutil.h>
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// options configurable via the wizard
|
|
Packit |
1c1d7e |
#define STR_PROJECT_NAME QString::fromLatin1("PROJECT_NAME")
|
|
Packit |
1c1d7e |
#define STR_PROJECT_LOGO QString::fromLatin1("PROJECT_LOGO")
|
|
Packit |
1c1d7e |
#define STR_PROJECT_BRIEF QString::fromLatin1("PROJECT_BRIEF")
|
|
Packit |
1c1d7e |
#define STR_INPUT QString::fromLatin1("INPUT")
|
|
Packit |
1c1d7e |
#define STR_OUTPUT_DIRECTORY QString::fromLatin1("OUTPUT_DIRECTORY")
|
|
Packit |
1c1d7e |
#define STR_PROJECT_NUMBER QString::fromLatin1("PROJECT_NUMBER")
|
|
Packit |
1c1d7e |
#define STR_RECURSIVE QString::fromLatin1("RECURSIVE")
|
|
Packit |
1c1d7e |
#define STR_OPTIMIZE_OUTPUT_FOR_C QString::fromLatin1("OPTIMIZE_OUTPUT_FOR_C")
|
|
Packit |
1c1d7e |
#define STR_OPTIMIZE_OUTPUT_JAVA QString::fromLatin1("OPTIMIZE_OUTPUT_JAVA")
|
|
Packit |
1c1d7e |
#define STR_OPTIMIZE_FOR_FORTRAN QString::fromLatin1("OPTIMIZE_FOR_FORTRAN")
|
|
Packit |
1c1d7e |
#define STR_OPTIMIZE_OUTPUT_VHDL QString::fromLatin1("OPTIMIZE_OUTPUT_VHDL")
|
|
Packit |
1c1d7e |
#define STR_CPP_CLI_SUPPORT QString::fromLatin1("CPP_CLI_SUPPORT")
|
|
Packit |
1c1d7e |
#define STR_HIDE_SCOPE_NAMES QString::fromLatin1("HIDE_SCOPE_NAMES")
|
|
Packit |
1c1d7e |
#define STR_EXTRACT_ALL QString::fromLatin1("EXTRACT_ALL")
|
|
Packit |
1c1d7e |
#define STR_SOURCE_BROWSER QString::fromLatin1("SOURCE_BROWSER")
|
|
Packit |
1c1d7e |
#define STR_GENERATE_HTML QString::fromLatin1("GENERATE_HTML")
|
|
Packit |
1c1d7e |
#define STR_GENERATE_LATEX QString::fromLatin1("GENERATE_LATEX")
|
|
Packit |
1c1d7e |
#define STR_GENERATE_MAN QString::fromLatin1("GENERATE_MAN")
|
|
Packit |
1c1d7e |
#define STR_GENERATE_RTF QString::fromLatin1("GENERATE_RTF")
|
|
Packit |
1c1d7e |
#define STR_GENERATE_XML QString::fromLatin1("GENERATE_XML")
|
|
Packit |
1c1d7e |
#define STR_GENERATE_HTMLHELP QString::fromLatin1("GENERATE_HTMLHELP")
|
|
Packit |
1c1d7e |
#define STR_GENERATE_TREEVIEW QString::fromLatin1("GENERATE_TREEVIEW")
|
|
Packit |
1c1d7e |
#define STR_USE_PDFLATEX QString::fromLatin1("USE_PDFLATEX")
|
|
Packit |
1c1d7e |
#define STR_PDF_HYPERLINKS QString::fromLatin1("PDF_HYPERLINKS")
|
|
Packit |
1c1d7e |
#define STR_SEARCHENGINE QString::fromLatin1("SEARCHENGINE")
|
|
Packit |
1c1d7e |
#define STR_HAVE_DOT QString::fromLatin1("HAVE_DOT")
|
|
Packit |
1c1d7e |
#define STR_CLASS_DIAGRAMS QString::fromLatin1("CLASS_DIAGRAMS")
|
|
Packit |
1c1d7e |
#define STR_CLASS_GRAPH QString::fromLatin1("CLASS_GRAPH")
|
|
Packit |
1c1d7e |
#define STR_COLLABORATION_GRAPH QString::fromLatin1("COLLABORATION_GRAPH")
|
|
Packit |
1c1d7e |
#define STR_GRAPHICAL_HIERARCHY QString::fromLatin1("GRAPHICAL_HIERARCHY")
|
|
Packit |
1c1d7e |
#define STR_INCLUDE_GRAPH QString::fromLatin1("INCLUDE_GRAPH")
|
|
Packit |
1c1d7e |
#define STR_INCLUDED_BY_GRAPH QString::fromLatin1("INCLUDED_BY_GRAPH")
|
|
Packit |
1c1d7e |
#define STR_CALL_GRAPH QString::fromLatin1("CALL_GRAPH")
|
|
Packit |
1c1d7e |
#define STR_CALLER_GRAPH QString::fromLatin1("CALLER_GRAPH")
|
|
Packit |
1c1d7e |
#define STR_HTML_COLORSTYLE_HUE QString::fromLatin1("HTML_COLORSTYLE_HUE")
|
|
Packit |
1c1d7e |
#define STR_HTML_COLORSTYLE_SAT QString::fromLatin1("HTML_COLORSTYLE_SAT")
|
|
Packit |
1c1d7e |
#define STR_HTML_COLORSTYLE_GAMMA QString::fromLatin1("HTML_COLORSTYLE_GAMMA")
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static bool g_optimizeMapping[6][6] =
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
// A: OPTIMIZE_OUTPUT_FOR_C
|
|
Packit |
1c1d7e |
// B: OPTIMIZE_OUTPUT_JAVA
|
|
Packit |
1c1d7e |
// C: OPTIMIZE_FOR_FORTRAN
|
|
Packit |
1c1d7e |
// D: OPTIMIZE_OUTPUT_VHDL
|
|
Packit |
1c1d7e |
// E: CPP_CLI_SUPPORT
|
|
Packit |
1c1d7e |
// F: HIDE_SCOPE_NAMES
|
|
Packit |
1c1d7e |
// A B C D E F
|
|
Packit |
1c1d7e |
{ false,false,false,false,false,false }, // 0: C++
|
|
Packit |
1c1d7e |
{ false,false,false,false,true, false }, // 1: C++/CLI
|
|
Packit |
1c1d7e |
{ false,true, false,false,false,false }, // 2: C#/Java
|
|
Packit |
1c1d7e |
{ true, false,false,false,false,true }, // 3: C/PHP
|
|
Packit |
1c1d7e |
{ false,false,true, false,false,false }, // 4: Fortran
|
|
Packit |
1c1d7e |
{ false,false,false,true, false,false }, // 5: VHDL
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static QString g_optimizeOptionNames[6] =
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
STR_OPTIMIZE_OUTPUT_FOR_C,
|
|
Packit |
1c1d7e |
STR_OPTIMIZE_OUTPUT_JAVA,
|
|
Packit |
1c1d7e |
STR_OPTIMIZE_FOR_FORTRAN,
|
|
Packit |
1c1d7e |
STR_OPTIMIZE_OUTPUT_VHDL,
|
|
Packit |
1c1d7e |
STR_CPP_CLI_SUPPORT,
|
|
Packit |
1c1d7e |
STR_HIDE_SCOPE_NAMES
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//==========================================================================
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static bool stringVariantToBool(const QVariant &v)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QString s = v.toString().toLower();
|
|
Packit |
1c1d7e |
return s==QString::fromLatin1("yes") || s==QString::fromLatin1("true") || s==QString::fromLatin1("1");
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static bool getBoolOption(
|
|
Packit |
1c1d7e |
const QHash<QString,Input*>&model,const QString &name)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
Input *option = model[name];
|
|
Packit |
1c1d7e |
Q_ASSERT(option!=0);
|
|
Packit |
1c1d7e |
return stringVariantToBool(option->value());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static int getIntOption(
|
|
Packit |
1c1d7e |
const QHash<QString,Input*>&model,const QString &name)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
Input *option = model[name];
|
|
Packit |
1c1d7e |
Q_ASSERT(option!=0);
|
|
Packit |
1c1d7e |
return option->value().toInt();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static QString getStringOption(
|
|
Packit |
1c1d7e |
const QHash<QString,Input*>&model,const QString &name)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
Input *option = model[name];
|
|
Packit |
1c1d7e |
Q_ASSERT(option!=0);
|
|
Packit |
1c1d7e |
return option->value().toString();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static void updateBoolOption(
|
|
Packit |
1c1d7e |
const QHash<QString,Input*>&model,const QString &name,bool bNew)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
Input *option = model[name];
|
|
Packit |
1c1d7e |
Q_ASSERT(option!=0);
|
|
Packit |
1c1d7e |
bool bOld = stringVariantToBool(option->value());
|
|
Packit |
1c1d7e |
if (bOld!=bNew)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
option->value()=QString::fromLatin1(bNew ? "true" : "false");
|
|
Packit |
1c1d7e |
option->update();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static void updateIntOption(
|
|
Packit |
1c1d7e |
const QHash<QString,Input*>&model,const QString &name,int iNew)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
Input *option = model[name];
|
|
Packit |
1c1d7e |
Q_ASSERT(option!=0);
|
|
Packit |
1c1d7e |
int iOld = option->value().toInt();
|
|
Packit |
1c1d7e |
if (iOld!=iNew)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
option->value()=QString::fromLatin1("%1").arg(iNew);
|
|
Packit |
1c1d7e |
option->update();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static void updateStringOption(
|
|
Packit |
1c1d7e |
const QHash<QString,Input*>&model,const QString &name,const QString &s)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
Input *option = model[name];
|
|
Packit |
1c1d7e |
Q_ASSERT(option!=0);
|
|
Packit |
1c1d7e |
if (option->value().toString()!=s)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
option->value() = s;
|
|
Packit |
1c1d7e |
option->update();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//==========================================================================
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
TuneColorDialog::TuneColorDialog(int hue,int sat,int gamma,QWidget *parent) : QDialog(parent)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
setWindowTitle(tr("Tune the color of the HTML output"));
|
|
Packit |
1c1d7e |
QGridLayout *layout = new QGridLayout(this);
|
|
Packit |
1c1d7e |
m_image = new QImage(QString::fromLatin1(":/images/tunecolor.png"));
|
|
Packit |
1c1d7e |
m_imageLab = new QLabel;
|
|
Packit |
1c1d7e |
updateImage(hue,sat,gamma);
|
|
Packit |
1c1d7e |
layout->addWidget(new QLabel(tr("Example output: use the sliders on the right to adjust the color")),0,0);
|
|
Packit |
1c1d7e |
layout->addWidget(m_imageLab,1,0);
|
|
Packit |
1c1d7e |
QHBoxLayout *buttonsLayout = new QHBoxLayout;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QPushButton *okButton = new QPushButton(tr("Ok"));
|
|
Packit |
1c1d7e |
connect(okButton,SIGNAL(clicked()),SLOT(accept()));
|
|
Packit |
1c1d7e |
okButton->setDefault(true);
|
|
Packit |
1c1d7e |
QPushButton *cancelButton = new QPushButton(tr("Cancel"));
|
|
Packit |
1c1d7e |
connect(cancelButton,SIGNAL(clicked()),SLOT(reject()));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
ColorPicker *huePicker = new ColorPicker(ColorPicker::Hue);
|
|
Packit |
1c1d7e |
huePicker->setCol(hue,sat,gamma);
|
|
Packit |
1c1d7e |
huePicker->setFixedWidth(20);
|
|
Packit |
1c1d7e |
layout->addWidget(huePicker,1,1);
|
|
Packit |
1c1d7e |
ColorPicker *satPicker = new ColorPicker(ColorPicker::Saturation);
|
|
Packit |
1c1d7e |
satPicker->setCol(hue,sat,gamma);
|
|
Packit |
1c1d7e |
satPicker->setFixedWidth(20);
|
|
Packit |
1c1d7e |
layout->addWidget(satPicker,1,2);
|
|
Packit |
1c1d7e |
ColorPicker *gamPicker = new ColorPicker(ColorPicker::Gamma);
|
|
Packit |
1c1d7e |
gamPicker->setCol(hue,sat,gamma);
|
|
Packit |
1c1d7e |
gamPicker->setFixedWidth(20);
|
|
Packit |
1c1d7e |
layout->addWidget(gamPicker,1,3);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
connect(huePicker,SIGNAL(newHsv(int,int,int)),satPicker,SLOT(setCol(int,int,int)));
|
|
Packit |
1c1d7e |
connect(satPicker,SIGNAL(newHsv(int,int,int)),huePicker,SLOT(setCol(int,int,int)));
|
|
Packit |
1c1d7e |
connect(huePicker,SIGNAL(newHsv(int,int,int)),gamPicker,SLOT(setCol(int,int,int)));
|
|
Packit |
1c1d7e |
connect(satPicker,SIGNAL(newHsv(int,int,int)),gamPicker,SLOT(setCol(int,int,int)));
|
|
Packit |
1c1d7e |
connect(gamPicker,SIGNAL(newHsv(int,int,int)),satPicker,SLOT(setCol(int,int,int)));
|
|
Packit |
1c1d7e |
connect(gamPicker,SIGNAL(newHsv(int,int,int)),huePicker,SLOT(setCol(int,int,int)));
|
|
Packit |
1c1d7e |
connect(huePicker,SIGNAL(newHsv(int,int,int)),this,SLOT(updateImage(int,int,int)));
|
|
Packit |
1c1d7e |
connect(satPicker,SIGNAL(newHsv(int,int,int)),this,SLOT(updateImage(int,int,int)));
|
|
Packit |
1c1d7e |
connect(gamPicker,SIGNAL(newHsv(int,int,int)),this,SLOT(updateImage(int,int,int)));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
buttonsLayout->addStretch();
|
|
Packit |
1c1d7e |
buttonsLayout->addWidget(okButton);
|
|
Packit |
1c1d7e |
buttonsLayout->addWidget(cancelButton);
|
|
Packit |
1c1d7e |
layout->addLayout(buttonsLayout,5,0,1,4);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void hsl2rgb(double h,double s,double l,
|
|
Packit |
1c1d7e |
double *pRed,double *pGreen,double *pBlue)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
double v;
|
|
Packit |
1c1d7e |
double r,g,b;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
r = l; // default to gray
|
|
Packit |
1c1d7e |
g = l;
|
|
Packit |
1c1d7e |
b = l;
|
|
Packit |
1c1d7e |
v = (l <= 0.5) ? (l * (1.0 + s)) : (l + s - l * s);
|
|
Packit |
1c1d7e |
if (v > 0)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
double m;
|
|
Packit |
1c1d7e |
double sv;
|
|
Packit |
1c1d7e |
int sextant;
|
|
Packit |
1c1d7e |
double fract, vsf, mid1, mid2;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
m = l + l - v;
|
|
Packit |
1c1d7e |
sv = (v - m ) / v;
|
|
Packit |
1c1d7e |
h *= 6.0;
|
|
Packit |
1c1d7e |
sextant = (int)h;
|
|
Packit |
1c1d7e |
fract = h - sextant;
|
|
Packit |
1c1d7e |
vsf = v * sv * fract;
|
|
Packit |
1c1d7e |
mid1 = m + vsf;
|
|
Packit |
1c1d7e |
mid2 = v - vsf;
|
|
Packit |
1c1d7e |
switch (sextant)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
case 0:
|
|
Packit |
1c1d7e |
r = v;
|
|
Packit |
1c1d7e |
g = mid1;
|
|
Packit |
1c1d7e |
b = m;
|
|
Packit |
1c1d7e |
break;
|
|
Packit |
1c1d7e |
case 1:
|
|
Packit |
1c1d7e |
r = mid2;
|
|
Packit |
1c1d7e |
g = v;
|
|
Packit |
1c1d7e |
b = m;
|
|
Packit |
1c1d7e |
break;
|
|
Packit |
1c1d7e |
case 2:
|
|
Packit |
1c1d7e |
r = m;
|
|
Packit |
1c1d7e |
g = v;
|
|
Packit |
1c1d7e |
b = mid1;
|
|
Packit |
1c1d7e |
break;
|
|
Packit |
1c1d7e |
case 3:
|
|
Packit |
1c1d7e |
r = m;
|
|
Packit |
1c1d7e |
g = mid2;
|
|
Packit |
1c1d7e |
b = v;
|
|
Packit |
1c1d7e |
break;
|
|
Packit |
1c1d7e |
case 4:
|
|
Packit |
1c1d7e |
r = mid1;
|
|
Packit |
1c1d7e |
g = m;
|
|
Packit |
1c1d7e |
b = v;
|
|
Packit |
1c1d7e |
break;
|
|
Packit |
1c1d7e |
case 5:
|
|
Packit |
1c1d7e |
r = v;
|
|
Packit |
1c1d7e |
g = m;
|
|
Packit |
1c1d7e |
b = mid2;
|
|
Packit |
1c1d7e |
break;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
*pRed = r;
|
|
Packit |
1c1d7e |
*pGreen = g;
|
|
Packit |
1c1d7e |
*pBlue = b;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void TuneColorDialog::updateImage(int hue,int sat,int gam)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QImage coloredImg(m_image->width(),m_image->height(),QImage::Format_RGB32);
|
|
Packit |
1c1d7e |
uint *srcPixel = (uint *)m_image->scanLine(0);
|
|
Packit |
1c1d7e |
uint *dstPixel = (uint *)coloredImg.scanLine(0);
|
|
Packit |
1c1d7e |
uint nrPixels = coloredImg.width()*coloredImg.height();
|
|
Packit |
1c1d7e |
for (uint i=0;i
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QColor c = QColor::fromRgb(*srcPixel);
|
|
Packit |
1c1d7e |
double r,g,b;
|
|
Packit |
1c1d7e |
hsl2rgb(hue/359.0, sat/255.0, pow(c.green()/255.0,gam/100.0),&r,&g,&b);
|
|
Packit |
1c1d7e |
*dstPixel = qRgb((int)(r*255.0),(int)(g*255.0),(int)(b*255.0));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
m_imageLab->setPixmap(QPixmap::fromImage(coloredImg));
|
|
Packit |
1c1d7e |
m_hue = hue;
|
|
Packit |
1c1d7e |
m_sat = sat;
|
|
Packit |
1c1d7e |
m_gam = gam;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int TuneColorDialog::getHue() const
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return m_hue;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int TuneColorDialog::getSaturation() const
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return m_sat;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int TuneColorDialog::getGamma() const
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return m_gam;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//==========================================================================
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
ColorPicker::ColorPicker(Mode m)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_hue = 220;
|
|
Packit |
1c1d7e |
m_gam = 100;
|
|
Packit |
1c1d7e |
m_sat = 100;
|
|
Packit |
1c1d7e |
m_mode = m;
|
|
Packit |
1c1d7e |
m_pix = 0;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
ColorPicker::~ColorPicker()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
delete m_pix;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ColorPicker::paintEvent(QPaintEvent*)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
int w = width() - 5;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QRect r(0, foff, w, height() - 2*foff);
|
|
Packit |
1c1d7e |
int wi = r.width() - 2;
|
|
Packit |
1c1d7e |
int hi = r.height() - 2;
|
|
Packit |
1c1d7e |
if (!m_pix || m_pix->height() != hi || m_pix->width() != wi)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
delete m_pix;
|
|
Packit |
1c1d7e |
QImage img(wi, hi, QImage::Format_RGB32);
|
|
Packit |
1c1d7e |
int y;
|
|
Packit |
1c1d7e |
uint *pixel = (uint *) img.scanLine(0);
|
|
Packit |
1c1d7e |
for (y = 0; y < hi; y++)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
const uint *end = pixel + wi;
|
|
Packit |
1c1d7e |
int yh = y2hue(y+coff);
|
|
Packit |
1c1d7e |
int ys = y2sat(y+coff);
|
|
Packit |
1c1d7e |
int yg = y2gam(y+coff);
|
|
Packit |
1c1d7e |
while (pixel < end)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QColor c;
|
|
Packit |
1c1d7e |
c.setHsv(yh, ys, (int)(255*pow(0.7,yg/100.0)));
|
|
Packit |
1c1d7e |
*pixel = c.rgb();
|
|
Packit |
1c1d7e |
++pixel;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
m_pix = new QPixmap(QPixmap::fromImage(img));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
QPainter p(this);
|
|
Packit |
1c1d7e |
p.drawPixmap(1, coff, *m_pix);
|
|
Packit |
1c1d7e |
const QPalette &g = palette();
|
|
Packit |
1c1d7e |
qDrawShadePanel(&p, r, g, true);
|
|
Packit |
1c1d7e |
p.setPen(g.foreground().color());
|
|
Packit |
1c1d7e |
p.setBrush(g.foreground());
|
|
Packit |
1c1d7e |
QPolygon a;
|
|
Packit |
1c1d7e |
int y = m_mode==Hue ? hue2y(m_hue) :
|
|
Packit |
1c1d7e |
m_mode==Saturation ? sat2y(m_sat) :
|
|
Packit |
1c1d7e |
gam2y(m_gam);
|
|
Packit |
1c1d7e |
a.setPoints(3, w, y, w+5, y+5, w+5, y-5);
|
|
Packit |
1c1d7e |
p.eraseRect(w, 0, 5, height());
|
|
Packit |
1c1d7e |
p.drawPolygon(a);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ColorPicker::mouseMoveEvent(QMouseEvent *m)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (m_mode==Hue) setHue(y2hue(m->y()));
|
|
Packit |
1c1d7e |
else if (m_mode==Saturation) setSat(y2sat(m->y()));
|
|
Packit |
1c1d7e |
else setGam(y2gam(m->y()));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ColorPicker::mousePressEvent(QMouseEvent *m)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (m_mode==Hue) setHue(y2hue(m->y()));
|
|
Packit |
1c1d7e |
else if (m_mode==Saturation) setSat(y2sat(m->y()));
|
|
Packit |
1c1d7e |
else setGam(y2gam(m->y()));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ColorPicker::setHue(int h)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (h==m_hue) return;
|
|
Packit |
1c1d7e |
m_hue = qMax(0,qMin(h,359));
|
|
Packit |
1c1d7e |
delete m_pix; m_pix=0;
|
|
Packit |
1c1d7e |
repaint();
|
|
Packit |
1c1d7e |
emit newHsv(m_hue,m_sat,m_gam);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ColorPicker::setSat(int s)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (s==m_sat) return;
|
|
Packit |
1c1d7e |
m_sat = qMax(0,qMin(s,255));
|
|
Packit |
1c1d7e |
delete m_pix; m_pix=0;
|
|
Packit |
1c1d7e |
repaint();
|
|
Packit |
1c1d7e |
emit newHsv(m_hue,m_sat,m_gam);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ColorPicker::setGam(int g)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (g==m_gam) return;
|
|
Packit |
1c1d7e |
m_gam = qMax(40,qMin(g,240));
|
|
Packit |
1c1d7e |
delete m_pix; m_pix=0;
|
|
Packit |
1c1d7e |
repaint();
|
|
Packit |
1c1d7e |
emit newHsv(m_hue,m_sat,m_gam);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void ColorPicker::setCol(int h, int s, int g)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (m_hue!=h || m_sat!=s || m_gam!=g)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_hue = h;
|
|
Packit |
1c1d7e |
m_sat = s;
|
|
Packit |
1c1d7e |
m_gam = g;
|
|
Packit |
1c1d7e |
delete m_pix; m_pix=0;
|
|
Packit |
1c1d7e |
repaint();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int ColorPicker::y2hue(int y)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
int d = height() - 2*coff - 1;
|
|
Packit |
1c1d7e |
return m_mode==Hue ? (y - coff)*359/d : m_hue;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int ColorPicker::hue2y(int v)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
int d = height() - 2*coff - 1;
|
|
Packit |
1c1d7e |
return coff + v*d/359;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int ColorPicker::y2sat(int y)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
int d = height() - 2*coff - 1;
|
|
Packit |
1c1d7e |
return m_mode==Saturation ? 255 - (y - coff)*255/d : m_sat;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int ColorPicker::sat2y(int v)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
int d = height() - 2*coff - 1;
|
|
Packit |
1c1d7e |
return coff + (255-v)*d/255;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int ColorPicker::y2gam(int y)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
int d = height() - 2*coff - 1;
|
|
Packit |
1c1d7e |
return m_mode==Gamma ? 240 - (y - coff)*200/d : m_gam;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int ColorPicker::gam2y(int g)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
int d = height() - 2*coff - 1;
|
|
Packit |
1c1d7e |
return coff + (240-g)*d/200;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//==========================================================================
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
Step1::Step1(Wizard *wizard,const QHash<QString,Input*> &modelData) : m_wizard(wizard), m_modelData(modelData)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QVBoxLayout *layout = new QVBoxLayout(this);
|
|
Packit |
1c1d7e |
layout->setMargin(4);
|
|
Packit |
1c1d7e |
layout->setSpacing(8);
|
|
Packit |
1c1d7e |
QLabel *l = new QLabel(this);
|
|
Packit |
1c1d7e |
l->setText(tr("Provide some information "
|
|
Packit |
1c1d7e |
"about the project you are documenting"));
|
|
Packit |
1c1d7e |
layout->addWidget(l);
|
|
Packit |
1c1d7e |
QWidget *w = new QWidget( this );
|
|
Packit |
1c1d7e |
QGridLayout *grid = new QGridLayout(w);
|
|
Packit |
1c1d7e |
grid->setSpacing(10);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// project name
|
|
Packit |
1c1d7e |
QLabel *projName = new QLabel(this);
|
|
Packit |
1c1d7e |
projName->setText(tr("Project name:"));
|
|
Packit |
1c1d7e |
projName->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
|
Packit |
1c1d7e |
// project brief
|
|
Packit |
1c1d7e |
QLabel *projBrief = new QLabel(this);
|
|
Packit |
1c1d7e |
projBrief->setText(tr("Project synopsis:"));
|
|
Packit |
1c1d7e |
projBrief->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
|
Packit |
1c1d7e |
// project version
|
|
Packit |
1c1d7e |
QLabel *projVersion = new QLabel(this);
|
|
Packit |
1c1d7e |
projVersion->setText(tr("Project version or id:"));
|
|
Packit |
1c1d7e |
projVersion->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
|
Packit |
1c1d7e |
// project icon
|
|
Packit |
1c1d7e |
QLabel *projLogo = new QLabel(this);
|
|
Packit |
1c1d7e |
projLogo->setMinimumSize(1,55);
|
|
Packit |
1c1d7e |
projLogo->setText(tr("Project logo:"));
|
|
Packit |
1c1d7e |
projLogo->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
grid->addWidget(projName,0,0);
|
|
Packit |
1c1d7e |
grid->addWidget(projBrief,1,0);
|
|
Packit |
1c1d7e |
grid->addWidget(projVersion,2,0);
|
|
Packit |
1c1d7e |
grid->addWidget(projLogo,3,0);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
m_projName = new QLineEdit;
|
|
Packit |
1c1d7e |
m_projBrief = new QLineEdit;
|
|
Packit |
1c1d7e |
m_projNumber = new QLineEdit;
|
|
Packit |
1c1d7e |
QPushButton *projIconSel = new QPushButton(this);
|
|
Packit |
1c1d7e |
projIconSel->setText(tr("Select..."));
|
|
Packit |
1c1d7e |
m_projIconLab = new QLabel;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
grid->addWidget(m_projName,0,1,1,2);
|
|
Packit |
1c1d7e |
grid->addWidget(m_projBrief,1,1,1,2);
|
|
Packit |
1c1d7e |
grid->addWidget(m_projNumber,2,1,1,2);
|
|
Packit |
1c1d7e |
grid->addWidget(projIconSel,3,1);
|
|
Packit |
1c1d7e |
grid->addWidget(m_projIconLab,3,2);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
grid->setColumnStretch(2,1);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
w->setLayout(grid);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
layout->addWidget(w);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//---------------------------------------------------
|
|
Packit |
1c1d7e |
QFrame *f = new QFrame( this );
|
|
Packit |
1c1d7e |
f->setFrameStyle( QFrame::HLine | QFrame::Sunken );
|
|
Packit |
1c1d7e |
layout->addWidget(f);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
l = new QLabel(this);
|
|
Packit |
1c1d7e |
l->setText(tr("Specify the directory to scan for source code"));
|
|
Packit |
1c1d7e |
layout->addWidget(l);
|
|
Packit |
1c1d7e |
QWidget *row = new QWidget;
|
|
Packit |
1c1d7e |
QHBoxLayout *rowLayout = new QHBoxLayout(row);
|
|
Packit |
1c1d7e |
rowLayout->setSpacing(10);
|
|
Packit |
1c1d7e |
l = new QLabel(this);
|
|
Packit |
1c1d7e |
l->setText(tr("Source code directory:"));
|
|
Packit |
1c1d7e |
rowLayout->addWidget(l);
|
|
Packit |
1c1d7e |
m_sourceDir = new QLineEdit;
|
|
Packit |
1c1d7e |
m_srcSelectDir = new QPushButton(this);
|
|
Packit |
1c1d7e |
m_srcSelectDir->setText(tr("Select..."));
|
|
Packit |
1c1d7e |
rowLayout->addWidget(m_sourceDir);
|
|
Packit |
1c1d7e |
rowLayout->addWidget(m_srcSelectDir);
|
|
Packit |
1c1d7e |
layout->addWidget(row);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
m_recursive = new QCheckBox(this);
|
|
Packit |
1c1d7e |
m_recursive->setText(tr("Scan recursively"));
|
|
Packit |
1c1d7e |
m_recursive->setChecked(true);
|
|
Packit |
1c1d7e |
layout->addWidget(m_recursive);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//---------------------------------------------------
|
|
Packit |
1c1d7e |
f = new QFrame( this );
|
|
Packit |
1c1d7e |
f->setFrameStyle( QFrame::HLine | QFrame::Sunken );
|
|
Packit |
1c1d7e |
layout->addWidget(f);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
l = new QLabel(this);
|
|
Packit |
1c1d7e |
l->setText(tr("Specify the directory where doxygen should "
|
|
Packit |
1c1d7e |
"put the generated documentation"));
|
|
Packit |
1c1d7e |
layout->addWidget(l);
|
|
Packit |
1c1d7e |
row = new QWidget;
|
|
Packit |
1c1d7e |
rowLayout = new QHBoxLayout(row);
|
|
Packit |
1c1d7e |
rowLayout->setSpacing(10);
|
|
Packit |
1c1d7e |
l = new QLabel(this);
|
|
Packit |
1c1d7e |
l->setText(tr("Destination directory:"));
|
|
Packit |
1c1d7e |
rowLayout->addWidget(l);
|
|
Packit |
1c1d7e |
m_destDir = new QLineEdit;
|
|
Packit |
1c1d7e |
m_dstSelectDir = new QPushButton(this);
|
|
Packit |
1c1d7e |
m_dstSelectDir->setText(tr("Select..."));
|
|
Packit |
1c1d7e |
rowLayout->addWidget(m_destDir);
|
|
Packit |
1c1d7e |
rowLayout->addWidget(m_dstSelectDir);
|
|
Packit |
1c1d7e |
layout->addWidget(row);
|
|
Packit |
1c1d7e |
layout->addStretch(1);
|
|
Packit |
1c1d7e |
setLayout(layout);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
connect(projIconSel,SIGNAL(clicked()),
|
|
Packit |
1c1d7e |
this,SLOT(selectProjectIcon()));
|
|
Packit |
1c1d7e |
connect(m_srcSelectDir,SIGNAL(clicked()),
|
|
Packit |
1c1d7e |
this,SLOT(selectSourceDir()));
|
|
Packit |
1c1d7e |
connect(m_dstSelectDir,SIGNAL(clicked()),
|
|
Packit |
1c1d7e |
this,SLOT(selectDestinationDir()));
|
|
Packit |
1c1d7e |
connect(m_projName,SIGNAL(textChanged(const QString &)),SLOT(setProjectName(const QString &)));
|
|
Packit |
1c1d7e |
connect(m_projBrief,SIGNAL(textChanged(const QString &)),SLOT(setProjectBrief(const QString &)));
|
|
Packit |
1c1d7e |
connect(m_projNumber,SIGNAL(textChanged(const QString &)),SLOT(setProjectNumber(const QString &)));
|
|
Packit |
1c1d7e |
connect(m_sourceDir,SIGNAL(textChanged(const QString &)),SLOT(setSourceDir(const QString &)));
|
|
Packit |
1c1d7e |
connect(m_recursive,SIGNAL(stateChanged(int)),SLOT(setRecursiveScan(int)));
|
|
Packit |
1c1d7e |
connect(m_destDir,SIGNAL(textChanged(const QString &)),SLOT(setDestinationDir(const QString &)));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step1::selectProjectIcon()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QString path = QFileInfo(MainWindow::instance().configFileName()).path();
|
|
Packit |
1c1d7e |
QString iconName = QFileDialog::getOpenFileName(this,
|
|
Packit |
1c1d7e |
tr("Select project icon/image"),path);
|
|
Packit |
1c1d7e |
if (iconName.isEmpty())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_projIconLab->setText(tr("No Project logo selected."));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QFile Fout(iconName);
|
|
Packit |
1c1d7e |
if(!Fout.exists())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_projIconLab->setText(tr("Sorry, cannot find file(")+iconName+QString::fromLatin1(");"));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QPixmap pm(iconName);
|
|
Packit |
1c1d7e |
if (!pm.isNull())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_projIconLab->setPixmap(pm.scaledToHeight(55,Qt::SmoothTransformation));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_projIconLab->setText(tr("Sorry, no preview available (")+iconName+QString::fromLatin1(");"));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
updateStringOption(m_modelData,STR_PROJECT_LOGO,iconName);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step1::selectSourceDir()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QString path = QFileInfo(MainWindow::instance().configFileName()).path();
|
|
Packit |
1c1d7e |
QString dirName = QFileDialog::getExistingDirectory(this,
|
|
Packit |
1c1d7e |
tr("Select source directory"),path);
|
|
Packit |
1c1d7e |
QDir dir(path);
|
|
Packit |
1c1d7e |
if (!MainWindow::instance().configFileName().isEmpty() && dir.exists())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
dirName = dir.relativeFilePath(dirName);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
if (dirName.isEmpty())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
dirName=QString::fromLatin1(".");
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
m_sourceDir->setText(dirName);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step1::selectDestinationDir()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QString path = QFileInfo(MainWindow::instance().configFileName()).path();
|
|
Packit |
1c1d7e |
QString dirName = QFileDialog::getExistingDirectory(this,
|
|
Packit |
1c1d7e |
tr("Select destination directory"),path);
|
|
Packit |
1c1d7e |
QDir dir(path);
|
|
Packit |
1c1d7e |
if (!MainWindow::instance().configFileName().isEmpty() && dir.exists())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
dirName = dir.relativeFilePath(dirName);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
if (dirName.isEmpty())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
dirName=QString::fromLatin1(".");
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
m_destDir->setText(dirName);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step1::setProjectName(const QString &name)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateStringOption(m_modelData,STR_PROJECT_NAME,name);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step1::setProjectBrief(const QString &desc)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateStringOption(m_modelData,STR_PROJECT_BRIEF,desc);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step1::setProjectNumber(const QString &num)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateStringOption(m_modelData,STR_PROJECT_NUMBER,num);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step1::setSourceDir(const QString &dir)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
Input *option = m_modelData[STR_INPUT];
|
|
Packit |
1c1d7e |
if (option->value().toStringList().count()>0)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QStringList sl = option->value().toStringList();
|
|
Packit |
1c1d7e |
if (sl[0]!=dir)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
sl[0] = dir;
|
|
Packit |
1c1d7e |
option->value() = sl;
|
|
Packit |
1c1d7e |
option->update();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
option->value() = QStringList() << dir;
|
|
Packit |
1c1d7e |
option->update();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step1::setDestinationDir(const QString &dir)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateStringOption(m_modelData,STR_OUTPUT_DIRECTORY,dir);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step1::setRecursiveScan(int s)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_RECURSIVE,s==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step1::init()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
Input *option;
|
|
Packit |
1c1d7e |
m_projName->setText(getStringOption(m_modelData,STR_PROJECT_NAME));
|
|
Packit |
1c1d7e |
m_projBrief->setText(getStringOption(m_modelData,STR_PROJECT_BRIEF));
|
|
Packit |
1c1d7e |
m_projNumber->setText(getStringOption(m_modelData,STR_PROJECT_NUMBER));
|
|
Packit |
1c1d7e |
QString iconName = getStringOption(m_modelData,STR_PROJECT_LOGO);
|
|
Packit |
1c1d7e |
if (!iconName.isEmpty())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QFile Fout(iconName);
|
|
Packit |
1c1d7e |
if(!Fout.exists())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_projIconLab->setText(tr("Sorry, cannot find file(")+iconName+QString::fromLatin1(");"));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QPixmap pm(iconName);
|
|
Packit |
1c1d7e |
if (!pm.isNull())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_projIconLab->setPixmap(pm.scaledToHeight(55,Qt::SmoothTransformation));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_projIconLab->setText(tr("Sorry, no preview available (")+iconName+QString::fromLatin1(");"));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_projIconLab->setText(tr("No Project logo selected."));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
option = m_modelData[STR_INPUT];
|
|
Packit |
1c1d7e |
if (option->value().toStringList().count()>0)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_sourceDir->setText(option->value().toStringList().first());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
m_recursive->setChecked(
|
|
Packit |
1c1d7e |
getBoolOption(m_modelData,STR_RECURSIVE) ? Qt::Checked : Qt::Unchecked);
|
|
Packit |
1c1d7e |
m_destDir->setText(getStringOption(m_modelData,STR_OUTPUT_DIRECTORY));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//==========================================================================
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
Step2::Step2(Wizard *wizard,const QHash<QString,Input*> &modelData)
|
|
Packit |
1c1d7e |
: m_wizard(wizard), m_modelData(modelData)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QRadioButton *r;
|
|
Packit |
1c1d7e |
QVBoxLayout *layout = new QVBoxLayout(this);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//---------------------------------------------------
|
|
Packit |
1c1d7e |
m_extractModeGroup = new QButtonGroup(this);
|
|
Packit |
1c1d7e |
m_extractMode = new QGroupBox(this);
|
|
Packit |
1c1d7e |
m_extractMode->setTitle(tr("Select the desired extraction mode:"));
|
|
Packit |
1c1d7e |
QGridLayout *gbox = new QGridLayout( m_extractMode );
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("Documented entities only"));
|
|
Packit |
1c1d7e |
r->setChecked(true);
|
|
Packit |
1c1d7e |
m_extractModeGroup->addButton(r, 0);
|
|
Packit |
1c1d7e |
gbox->addWidget(r,1,0);
|
|
Packit |
1c1d7e |
// 1 -> EXTRACT_ALL = NO
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("All Entities"));
|
|
Packit |
1c1d7e |
m_extractModeGroup->addButton(r, 1);
|
|
Packit |
1c1d7e |
gbox->addWidget(r,2,0);
|
|
Packit |
1c1d7e |
// 2 -> EXTRACT_ALL = YES
|
|
Packit |
1c1d7e |
m_crossRef = new QCheckBox(m_extractMode);
|
|
Packit |
1c1d7e |
m_crossRef->setText(tr("Include cross-referenced source code in the output"));
|
|
Packit |
1c1d7e |
// m_crossRef -> SOURCE_BROWSER = YES/NO
|
|
Packit |
1c1d7e |
gbox->addWidget(m_crossRef,3,0);
|
|
Packit |
1c1d7e |
layout->addWidget(m_extractMode);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//---------------------------------------------------
|
|
Packit |
1c1d7e |
QFrame *f = new QFrame( this );
|
|
Packit |
1c1d7e |
f->setFrameStyle( QFrame::HLine | QFrame::Sunken );
|
|
Packit |
1c1d7e |
layout->addWidget(f);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
m_optimizeLangGroup = new QButtonGroup(this);
|
|
Packit |
1c1d7e |
m_optimizeLang = new QGroupBox(this);
|
|
Packit |
1c1d7e |
m_optimizeLang->setTitle(tr("Select programming language to optimize the results for"));
|
|
Packit |
1c1d7e |
gbox = new QGridLayout( m_optimizeLang );
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
r = new QRadioButton(m_optimizeLang);
|
|
Packit |
1c1d7e |
r->setText(tr("Optimize for C++ output"));
|
|
Packit |
1c1d7e |
r->setChecked(true);
|
|
Packit |
1c1d7e |
m_optimizeLangGroup->addButton(r, 0);
|
|
Packit |
1c1d7e |
// 0 -> OPTIMIZE_OUTPUT_FOR_C = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_JAVA = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_FOR_FORTRAN = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_VHDL = NO
|
|
Packit |
1c1d7e |
// CPP_CLI_SUPPORT = NO
|
|
Packit |
1c1d7e |
// HIDE_SCOPE_NAMES = NO
|
|
Packit |
1c1d7e |
gbox->addWidget(r,0,0);
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("Optimize for C++/CLI output"));
|
|
Packit |
1c1d7e |
gbox->addWidget(r,1,0);
|
|
Packit |
1c1d7e |
m_optimizeLangGroup->addButton(r, 1);
|
|
Packit |
1c1d7e |
// 1 -> OPTIMIZE_OUTPUT_FOR_C = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_JAVA = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_FOR_FORTRAN = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_VHDL = NO
|
|
Packit |
1c1d7e |
// CPP_CLI_SUPPORT = YES
|
|
Packit |
1c1d7e |
// HIDE_SCOPE_NAMES = NO
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("Optimize for Java or C# output"));
|
|
Packit |
1c1d7e |
m_optimizeLangGroup->addButton(r, 2);
|
|
Packit |
1c1d7e |
// 2 -> OPTIMIZE_OUTPUT_FOR_C = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_JAVA = YES
|
|
Packit |
1c1d7e |
// OPTIMIZE_FOR_FORTRAN = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_VHDL = NO
|
|
Packit |
1c1d7e |
// CPP_CLI_SUPPORT = NO
|
|
Packit |
1c1d7e |
// HIDE_SCOPE_NAMES = NO
|
|
Packit |
1c1d7e |
gbox->addWidget(r,2,0);
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("Optimize for C or PHP output"));
|
|
Packit |
1c1d7e |
m_optimizeLangGroup->addButton(r, 3);
|
|
Packit |
1c1d7e |
// 3 -> OPTIMIZE_OUTPUT_FOR_C = YES
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_JAVA = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_FOR_FORTRAN = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_VHDL = NO
|
|
Packit |
1c1d7e |
// CPP_CLI_SUPPORT = NO
|
|
Packit |
1c1d7e |
// HIDE_SCOPE_NAMES = YES
|
|
Packit |
1c1d7e |
gbox->addWidget(r,3,0);
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("Optimize for Fortran output"));
|
|
Packit |
1c1d7e |
m_optimizeLangGroup->addButton(r, 4);
|
|
Packit |
1c1d7e |
// 4 -> OPTIMIZE_OUTPUT_FOR_C = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_JAVA = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_FOR_FORTRAN = YES
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_VHDL = NO
|
|
Packit |
1c1d7e |
// CPP_CLI_SUPPORT = NO
|
|
Packit |
1c1d7e |
// HIDE_SCOPE_NAMES = NO
|
|
Packit |
1c1d7e |
gbox->addWidget(r,4,0);
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("Optimize for VHDL output"));
|
|
Packit |
1c1d7e |
m_optimizeLangGroup->addButton(r, 5);
|
|
Packit |
1c1d7e |
// 5 -> OPTIMIZE_OUTPUT_FOR_C = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_JAVA = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_FOR_FORTRAN = NO
|
|
Packit |
1c1d7e |
// OPTIMIZE_OUTPUT_VHDL = YES
|
|
Packit |
1c1d7e |
// CPP_CLI_SUPPORT = NO
|
|
Packit |
1c1d7e |
// HIDE_SCOPE_NAMES = NO
|
|
Packit |
1c1d7e |
gbox->addWidget(r,5,0);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
layout->addWidget(m_optimizeLang);
|
|
Packit |
1c1d7e |
layout->addStretch(1);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
connect(m_crossRef,SIGNAL(stateChanged(int)),
|
|
Packit |
1c1d7e |
SLOT(changeCrossRefState(int)));
|
|
Packit |
1c1d7e |
connect(m_optimizeLangGroup,SIGNAL(buttonClicked(int)),
|
|
Packit |
1c1d7e |
SLOT(optimizeFor(int)));
|
|
Packit |
1c1d7e |
connect(m_extractModeGroup,SIGNAL(buttonClicked(int)),
|
|
Packit |
1c1d7e |
SLOT(extractMode(int)));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step2::optimizeFor(int choice)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
for (int i=0;i<6;i++)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,
|
|
Packit |
1c1d7e |
g_optimizeOptionNames[i],
|
|
Packit |
1c1d7e |
g_optimizeMapping[choice][i]);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step2::extractMode(int choice)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_EXTRACT_ALL,choice==1);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step2::changeCrossRefState(int choice)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_SOURCE_BROWSER,choice==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step2::init()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_extractModeGroup->button(
|
|
Packit |
1c1d7e |
getBoolOption(m_modelData,STR_EXTRACT_ALL) ? 1 : 0)->setChecked(true);
|
|
Packit |
1c1d7e |
m_crossRef->setChecked(getBoolOption(m_modelData,STR_SOURCE_BROWSER));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int x=0;
|
|
Packit |
1c1d7e |
if (getBoolOption(m_modelData,STR_CPP_CLI_SUPPORT)) x=1;
|
|
Packit |
1c1d7e |
else if (getBoolOption(m_modelData,STR_OPTIMIZE_OUTPUT_JAVA)) x=2;
|
|
Packit |
1c1d7e |
else if (getBoolOption(m_modelData,STR_OPTIMIZE_OUTPUT_FOR_C)) x=3;
|
|
Packit |
1c1d7e |
else if (getBoolOption(m_modelData,STR_OPTIMIZE_FOR_FORTRAN)) x=4;
|
|
Packit |
1c1d7e |
else if (getBoolOption(m_modelData,STR_OPTIMIZE_OUTPUT_VHDL)) x=5;
|
|
Packit |
1c1d7e |
m_optimizeLangGroup->button(x)->setChecked(true);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//==========================================================================
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
Step3::Step3(Wizard *wizard,const QHash<QString,Input*> &modelData)
|
|
Packit |
1c1d7e |
: m_wizard(wizard), m_modelData(modelData)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QVBoxLayout *vbox = 0;
|
|
Packit |
1c1d7e |
QRadioButton *r = 0;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QGridLayout *gbox = new QGridLayout( this );
|
|
Packit |
1c1d7e |
gbox->addWidget(new QLabel(tr("Select the output format(s) to generate")),0,0);
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_htmlOptions = new QGroupBox(tr("HTML"));
|
|
Packit |
1c1d7e |
m_htmlOptions->setCheckable(true);
|
|
Packit |
1c1d7e |
// GENERATE_HTML
|
|
Packit |
1c1d7e |
m_htmlOptionsGroup = new QButtonGroup(m_htmlOptions);
|
|
Packit |
1c1d7e |
QRadioButton *r = new QRadioButton(tr("plain HTML"));
|
|
Packit |
1c1d7e |
r->setChecked(true);
|
|
Packit |
1c1d7e |
m_htmlOptionsGroup->addButton(r, 0);
|
|
Packit |
1c1d7e |
vbox = new QVBoxLayout;
|
|
Packit |
1c1d7e |
vbox->addWidget(r);
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("with navigation panel"));
|
|
Packit |
1c1d7e |
m_htmlOptionsGroup->addButton(r, 1);
|
|
Packit |
1c1d7e |
// GENERATE_TREEVIEW
|
|
Packit |
1c1d7e |
vbox->addWidget(r);
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("prepare for compressed HTML (.chm)"));
|
|
Packit |
1c1d7e |
m_htmlOptionsGroup->addButton(r, 2);
|
|
Packit |
1c1d7e |
// GENERATE_HTMLHELP
|
|
Packit |
1c1d7e |
vbox->addWidget(r);
|
|
Packit |
1c1d7e |
m_searchEnabled=new QCheckBox(tr("With search function"));
|
|
Packit |
1c1d7e |
vbox->addWidget(m_searchEnabled);
|
|
Packit |
1c1d7e |
// SEARCH_ENGINE
|
|
Packit |
1c1d7e |
QHBoxLayout *hbox = new QHBoxLayout;
|
|
Packit |
1c1d7e |
m_tuneColor=new QPushButton(tr("Change color..."));
|
|
Packit |
1c1d7e |
hbox->addWidget(m_tuneColor);
|
|
Packit |
1c1d7e |
hbox->addStretch(1);
|
|
Packit |
1c1d7e |
vbox->addLayout(hbox);
|
|
Packit |
1c1d7e |
m_htmlOptions->setLayout(vbox);
|
|
Packit |
1c1d7e |
m_htmlOptions->setChecked(true);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
gbox->addWidget(m_htmlOptions,1,0);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_texOptions = new QGroupBox(tr("LaTeX"));
|
|
Packit |
1c1d7e |
m_texOptions->setCheckable(true);
|
|
Packit |
1c1d7e |
// GENERATE_LATEX
|
|
Packit |
1c1d7e |
m_texOptionsGroup = new QButtonGroup(m_texOptions);
|
|
Packit |
1c1d7e |
vbox = new QVBoxLayout;
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("as intermediate format for hyperlinked PDF"));
|
|
Packit |
1c1d7e |
m_texOptionsGroup->addButton(r, 0);
|
|
Packit |
1c1d7e |
// PDF_HYPERLINKS = YES
|
|
Packit |
1c1d7e |
r->setChecked(true);
|
|
Packit |
1c1d7e |
vbox->addWidget(r);
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("as intermediate format for PDF"));
|
|
Packit |
1c1d7e |
m_texOptionsGroup->addButton(r, 1);
|
|
Packit |
1c1d7e |
// PDF_HYPERLINKS = NO, USE_PDFLATEX = YES
|
|
Packit |
1c1d7e |
vbox->addWidget(r);
|
|
Packit |
1c1d7e |
r = new QRadioButton(tr("as intermediate format for PostScript"));
|
|
Packit |
1c1d7e |
m_texOptionsGroup->addButton(r, 2);
|
|
Packit |
1c1d7e |
// USE_PDFLATEX = NO
|
|
Packit |
1c1d7e |
vbox->addWidget(r);
|
|
Packit |
1c1d7e |
vbox->addStretch(1);
|
|
Packit |
1c1d7e |
m_texOptions->setLayout(vbox);
|
|
Packit |
1c1d7e |
m_texOptions->setChecked(true);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
gbox->addWidget(m_texOptions,2,0);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
m_manEnabled=new QCheckBox(tr("Man pages"));
|
|
Packit |
1c1d7e |
// GENERATE_MAN
|
|
Packit |
1c1d7e |
m_rtfEnabled=new QCheckBox(tr("Rich Text Format (RTF)"));
|
|
Packit |
1c1d7e |
// GENERATE_RTF
|
|
Packit |
1c1d7e |
m_xmlEnabled=new QCheckBox(tr("XML"));
|
|
Packit |
1c1d7e |
// GENERATE_XML
|
|
Packit |
1c1d7e |
gbox->addWidget(m_manEnabled,3,0);
|
|
Packit |
1c1d7e |
gbox->addWidget(m_rtfEnabled,4,0);
|
|
Packit |
1c1d7e |
gbox->addWidget(m_xmlEnabled,5,0);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
gbox->setRowStretch(6,1);
|
|
Packit |
1c1d7e |
connect(m_htmlOptions,SIGNAL(toggled(bool)),SLOT(setHtmlEnabled(bool)));
|
|
Packit |
1c1d7e |
connect(m_texOptions,SIGNAL(toggled(bool)),SLOT(setLatexEnabled(bool)));
|
|
Packit |
1c1d7e |
connect(m_manEnabled,SIGNAL(stateChanged(int)),SLOT(setManEnabled(int)));
|
|
Packit |
1c1d7e |
connect(m_rtfEnabled,SIGNAL(stateChanged(int)),SLOT(setRtfEnabled(int)));
|
|
Packit |
1c1d7e |
connect(m_xmlEnabled,SIGNAL(stateChanged(int)),SLOT(setXmlEnabled(int)));
|
|
Packit |
1c1d7e |
connect(m_searchEnabled,SIGNAL(stateChanged(int)),SLOT(setSearchEnabled(int)));
|
|
Packit |
1c1d7e |
connect(m_htmlOptionsGroup,SIGNAL(buttonClicked(int)),
|
|
Packit |
1c1d7e |
SLOT(setHtmlOptions(int)));
|
|
Packit |
1c1d7e |
connect(m_texOptionsGroup,SIGNAL(buttonClicked(int)),
|
|
Packit |
1c1d7e |
SLOT(setLatexOptions(int)));
|
|
Packit |
1c1d7e |
connect(m_tuneColor,SIGNAL(clicked()),SLOT(tuneColorDialog()));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step3::tuneColorDialog()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
int hue = getIntOption(m_modelData,STR_HTML_COLORSTYLE_HUE);
|
|
Packit |
1c1d7e |
int sat = getIntOption(m_modelData,STR_HTML_COLORSTYLE_SAT);
|
|
Packit |
1c1d7e |
int gam = getIntOption(m_modelData,STR_HTML_COLORSTYLE_GAMMA);
|
|
Packit |
1c1d7e |
TuneColorDialog tuneColor(hue,sat,gam,this);
|
|
Packit |
1c1d7e |
if (tuneColor.exec()==QDialog::Accepted)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateIntOption(m_modelData,STR_HTML_COLORSTYLE_HUE,tuneColor.getHue());
|
|
Packit |
1c1d7e |
updateIntOption(m_modelData,STR_HTML_COLORSTYLE_SAT,tuneColor.getSaturation());
|
|
Packit |
1c1d7e |
updateIntOption(m_modelData,STR_HTML_COLORSTYLE_GAMMA,tuneColor.getGamma());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step3::setHtmlEnabled(bool b)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GENERATE_HTML,b);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step3::setLatexEnabled(bool b)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GENERATE_LATEX,b);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step3::setManEnabled(int state)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GENERATE_MAN,state==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step3::setRtfEnabled(int state)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GENERATE_RTF,state==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step3::setXmlEnabled(int state)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GENERATE_XML,state==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step3::setSearchEnabled(int state)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_SEARCHENGINE,state==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step3::setHtmlOptions(int id)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (id==0) // plain HTML
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GENERATE_HTMLHELP,false);
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GENERATE_TREEVIEW,false);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (id==1) // with navigation tree
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GENERATE_HTMLHELP,false);
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GENERATE_TREEVIEW,true);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (id==2) // with compiled help
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GENERATE_HTMLHELP,true);
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GENERATE_TREEVIEW,false);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step3::setLatexOptions(int id)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (id==0) // hyperlinked PDF
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_USE_PDFLATEX,true);
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_PDF_HYPERLINKS,true);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (id==1) // PDF
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_USE_PDFLATEX,true);
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_PDF_HYPERLINKS,false);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (id==2) // PostScript
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_USE_PDFLATEX,false);
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_PDF_HYPERLINKS,false);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step3::init()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_htmlOptions->setChecked(getBoolOption(m_modelData,STR_GENERATE_HTML));
|
|
Packit |
1c1d7e |
m_texOptions->setChecked(getBoolOption(m_modelData,STR_GENERATE_LATEX));
|
|
Packit |
1c1d7e |
m_manEnabled->setChecked(getBoolOption(m_modelData,STR_GENERATE_MAN));
|
|
Packit |
1c1d7e |
m_rtfEnabled->setChecked(getBoolOption(m_modelData,STR_GENERATE_RTF));
|
|
Packit |
1c1d7e |
m_xmlEnabled->setChecked(getBoolOption(m_modelData,STR_GENERATE_XML));
|
|
Packit |
1c1d7e |
m_searchEnabled->setChecked(getBoolOption(m_modelData,STR_SEARCHENGINE));
|
|
Packit |
1c1d7e |
if (getBoolOption(m_modelData,STR_GENERATE_HTMLHELP))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_htmlOptionsGroup->button(2)->setChecked(true); // compiled help
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (getBoolOption(m_modelData,STR_GENERATE_TREEVIEW))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_htmlOptionsGroup->button(1)->setChecked(true); // navigation tree
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_htmlOptionsGroup->button(0)->setChecked(true); // plain HTML
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
if (!getBoolOption(m_modelData,STR_USE_PDFLATEX))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_texOptionsGroup->button(2)->setChecked(true); // PostScript
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (!getBoolOption(m_modelData,STR_PDF_HYPERLINKS))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_texOptionsGroup->button(1)->setChecked(true); // Plain PDF
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_texOptionsGroup->button(0)->setChecked(true); // PDF with hyperlinks
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//==========================================================================
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
Step4::Step4(Wizard *wizard,const QHash<QString,Input*> &modelData)
|
|
Packit |
1c1d7e |
: m_wizard(wizard), m_modelData(modelData)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_diagramModeGroup = new QButtonGroup(this);
|
|
Packit |
1c1d7e |
QGridLayout *gbox = new QGridLayout( this );
|
|
Packit |
1c1d7e |
gbox->addWidget(new QLabel(tr("Diagrams to generate")),0,0);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QRadioButton *rb = new QRadioButton(tr("No diagrams"));
|
|
Packit |
1c1d7e |
m_diagramModeGroup->addButton(rb, 0);
|
|
Packit |
1c1d7e |
gbox->addWidget(rb,1,0);
|
|
Packit |
1c1d7e |
// CLASS_DIAGRAMS = NO, HAVE_DOT = NO
|
|
Packit |
1c1d7e |
rb->setChecked(true);
|
|
Packit |
1c1d7e |
rb = new QRadioButton(tr("Use built-in class diagram generator"));
|
|
Packit |
1c1d7e |
m_diagramModeGroup->addButton(rb, 1);
|
|
Packit |
1c1d7e |
// CLASS_DIAGRAMS = YES, HAVE_DOT = NO
|
|
Packit |
1c1d7e |
gbox->addWidget(rb,2,0);
|
|
Packit |
1c1d7e |
rb = new QRadioButton(tr("Use dot tool from the GraphViz package"));
|
|
Packit |
1c1d7e |
m_diagramModeGroup->addButton(rb, 2);
|
|
Packit |
1c1d7e |
gbox->addWidget(rb,3,0);
|
|
Packit |
1c1d7e |
// CLASS_DIAGRAMS = NO, HAVE_DOT = YES
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
m_dotGroup = new QGroupBox(tr("Dot graphs to generate"));
|
|
Packit |
1c1d7e |
QVBoxLayout *vbox = new QVBoxLayout;
|
|
Packit |
1c1d7e |
m_dotClass=new QCheckBox(tr("Class diagrams"));
|
|
Packit |
1c1d7e |
// CLASS_GRAPH
|
|
Packit |
1c1d7e |
m_dotCollaboration=new QCheckBox(tr("Collaboration diagrams"));
|
|
Packit |
1c1d7e |
// COLLABORATION_GRAPH
|
|
Packit |
1c1d7e |
m_dotInheritance=new QCheckBox(tr("Overall Class hierarchy"));
|
|
Packit |
1c1d7e |
// GRAPHICAL_HIERARCHY
|
|
Packit |
1c1d7e |
m_dotInclude=new QCheckBox(tr("Include dependency graphs"));
|
|
Packit |
1c1d7e |
// INCLUDE_GRAPH
|
|
Packit |
1c1d7e |
m_dotIncludedBy=new QCheckBox(tr("Included by dependency graphs"));
|
|
Packit |
1c1d7e |
// INCLUDED_BY_GRAPH
|
|
Packit |
1c1d7e |
m_dotCall=new QCheckBox(tr("Call graphs"));
|
|
Packit |
1c1d7e |
// CALL_GRAPH
|
|
Packit |
1c1d7e |
m_dotCaller=new QCheckBox(tr("Called by graphs"));
|
|
Packit |
1c1d7e |
// CALLER_GRAPH
|
|
Packit |
1c1d7e |
vbox->addWidget(m_dotClass);
|
|
Packit |
1c1d7e |
vbox->addWidget(m_dotCollaboration);
|
|
Packit |
1c1d7e |
vbox->addWidget(m_dotInheritance);
|
|
Packit |
1c1d7e |
vbox->addWidget(m_dotInclude);
|
|
Packit |
1c1d7e |
vbox->addWidget(m_dotIncludedBy);
|
|
Packit |
1c1d7e |
vbox->addWidget(m_dotCall);
|
|
Packit |
1c1d7e |
vbox->addWidget(m_dotCaller);
|
|
Packit |
1c1d7e |
vbox->addStretch(1);
|
|
Packit |
1c1d7e |
m_dotGroup->setLayout(vbox);
|
|
Packit |
1c1d7e |
m_dotClass->setChecked(true);
|
|
Packit |
1c1d7e |
m_dotGroup->setEnabled(false);
|
|
Packit |
1c1d7e |
gbox->addWidget(m_dotGroup,4,0);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
m_dotInclude->setChecked(true);
|
|
Packit |
1c1d7e |
m_dotCollaboration->setChecked(true);
|
|
Packit |
1c1d7e |
gbox->setRowStretch(5,1);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
connect(m_diagramModeGroup,SIGNAL(buttonClicked(int)),
|
|
Packit |
1c1d7e |
this,SLOT(diagramModeChanged(int)));
|
|
Packit |
1c1d7e |
connect(m_dotClass,SIGNAL(stateChanged(int)),
|
|
Packit |
1c1d7e |
this,SLOT(setClassGraphEnabled(int)));
|
|
Packit |
1c1d7e |
connect(m_dotCollaboration,SIGNAL(stateChanged(int)),
|
|
Packit |
1c1d7e |
this,SLOT(setCollaborationGraphEnabled(int)));
|
|
Packit |
1c1d7e |
connect(m_dotInheritance,SIGNAL(stateChanged(int)),
|
|
Packit |
1c1d7e |
this,SLOT(setGraphicalHierarchyEnabled(int)));
|
|
Packit |
1c1d7e |
connect(m_dotInclude,SIGNAL(stateChanged(int)),
|
|
Packit |
1c1d7e |
this,SLOT(setIncludeGraphEnabled(int)));
|
|
Packit |
1c1d7e |
connect(m_dotIncludedBy,SIGNAL(stateChanged(int)),
|
|
Packit |
1c1d7e |
this,SLOT(setIncludedByGraphEnabled(int)));
|
|
Packit |
1c1d7e |
connect(m_dotCall,SIGNAL(stateChanged(int)),
|
|
Packit |
1c1d7e |
this,SLOT(setCallGraphEnabled(int)));
|
|
Packit |
1c1d7e |
connect(m_dotCaller,SIGNAL(stateChanged(int)),
|
|
Packit |
1c1d7e |
this,SLOT(setCallerGraphEnabled(int)));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step4::diagramModeChanged(int id)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (id==0) // no diagrams
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_HAVE_DOT,false);
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_CLASS_DIAGRAMS,false);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (id==1) // builtin diagrams
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_HAVE_DOT,false);
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_CLASS_DIAGRAMS,true);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (id==2) // dot diagrams
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_HAVE_DOT,true);
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_CLASS_DIAGRAMS,false);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
m_dotGroup->setEnabled(id==2);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step4::setClassGraphEnabled(int state)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_CLASS_GRAPH,state==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step4::setCollaborationGraphEnabled(int state)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_COLLABORATION_GRAPH,state==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step4::setGraphicalHierarchyEnabled(int state)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_GRAPHICAL_HIERARCHY,state==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step4::setIncludeGraphEnabled(int state)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_INCLUDE_GRAPH,state==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step4::setIncludedByGraphEnabled(int state)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_INCLUDED_BY_GRAPH,state==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step4::setCallGraphEnabled(int state)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_CALL_GRAPH,state==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step4::setCallerGraphEnabled(int state)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
updateBoolOption(m_modelData,STR_CALLER_GRAPH,state==Qt::Checked);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Step4::init()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (getBoolOption(m_modelData,STR_HAVE_DOT))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_diagramModeGroup->button(2)->setChecked(true); // Dot
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (getBoolOption(m_modelData,STR_CLASS_DIAGRAMS))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_diagramModeGroup->button(1)->setChecked(true); // Builtin diagrams
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_diagramModeGroup->button(0)->setChecked(true); // no diagrams
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
m_dotClass->setChecked(getBoolOption(m_modelData,STR_CLASS_GRAPH));
|
|
Packit |
1c1d7e |
m_dotCollaboration->setChecked(getBoolOption(m_modelData,STR_COLLABORATION_GRAPH));
|
|
Packit |
1c1d7e |
m_dotInheritance->setChecked(getBoolOption(m_modelData,STR_GRAPHICAL_HIERARCHY));
|
|
Packit |
1c1d7e |
m_dotInclude->setChecked(getBoolOption(m_modelData,STR_INCLUDE_GRAPH));
|
|
Packit |
1c1d7e |
m_dotIncludedBy->setChecked(getBoolOption(m_modelData,STR_INCLUDED_BY_GRAPH));
|
|
Packit |
1c1d7e |
m_dotCall->setChecked(getBoolOption(m_modelData,STR_CALL_GRAPH));
|
|
Packit |
1c1d7e |
m_dotCaller->setChecked(getBoolOption(m_modelData,STR_CALLER_GRAPH));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//==========================================================================
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
Wizard::Wizard(const QHash<QString,Input*> &modelData, QWidget *parent) :
|
|
Packit |
1c1d7e |
QSplitter(parent), m_modelData(modelData)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_treeWidget = new QTreeWidget;
|
|
Packit |
1c1d7e |
m_treeWidget->setColumnCount(1);
|
|
Packit |
1c1d7e |
m_treeWidget->setHeaderLabels(QStringList() << QString::fromLatin1("Topics"));
|
|
Packit |
1c1d7e |
QList<QTreeWidgetItem*> items;
|
|
Packit |
1c1d7e |
items.append(new QTreeWidgetItem((QTreeWidget*)0,QStringList(tr("Project"))));
|
|
Packit |
1c1d7e |
items.append(new QTreeWidgetItem((QTreeWidget*)0,QStringList(tr("Mode"))));
|
|
Packit |
1c1d7e |
items.append(new QTreeWidgetItem((QTreeWidget*)0,QStringList(tr("Output"))));
|
|
Packit |
1c1d7e |
items.append(new QTreeWidgetItem((QTreeWidget*)0,QStringList(tr("Diagrams"))));
|
|
Packit |
1c1d7e |
m_treeWidget->insertTopLevelItems(0,items);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
m_topicStack = new QStackedWidget;
|
|
Packit |
1c1d7e |
m_step1 = new Step1(this,modelData);
|
|
Packit |
1c1d7e |
m_step2 = new Step2(this,modelData);
|
|
Packit |
1c1d7e |
m_step3 = new Step3(this,modelData);
|
|
Packit |
1c1d7e |
m_step4 = new Step4(this,modelData);
|
|
Packit |
1c1d7e |
m_topicStack->addWidget(m_step1);
|
|
Packit |
1c1d7e |
m_topicStack->addWidget(m_step2);
|
|
Packit |
1c1d7e |
m_topicStack->addWidget(m_step3);
|
|
Packit |
1c1d7e |
m_topicStack->addWidget(m_step4);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QWidget *rightSide = new QWidget;
|
|
Packit |
1c1d7e |
QGridLayout *grid = new QGridLayout(rightSide);
|
|
Packit |
1c1d7e |
m_prev = new QPushButton(tr("Previous"));
|
|
Packit |
1c1d7e |
m_prev->setEnabled(false);
|
|
Packit |
1c1d7e |
m_next = new QPushButton(tr("Next"));
|
|
Packit |
1c1d7e |
grid->addWidget(m_topicStack,0,0,1,2);
|
|
Packit |
1c1d7e |
grid->addWidget(m_prev,1,0,Qt::AlignLeft);
|
|
Packit |
1c1d7e |
grid->addWidget(m_next,1,1,Qt::AlignRight);
|
|
Packit |
1c1d7e |
grid->setColumnStretch(0,1);
|
|
Packit |
1c1d7e |
grid->setRowStretch(0,1);
|
|
Packit |
1c1d7e |
addWidget(m_treeWidget);
|
|
Packit |
1c1d7e |
addWidget(rightSide);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
connect(m_treeWidget,
|
|
Packit |
1c1d7e |
SIGNAL(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *)),
|
|
Packit |
1c1d7e |
SLOT(activateTopic(QTreeWidgetItem *,QTreeWidgetItem *)));
|
|
Packit |
1c1d7e |
connect(m_next,SIGNAL(clicked()),SLOT(nextTopic()));
|
|
Packit |
1c1d7e |
connect(m_prev,SIGNAL(clicked()),SLOT(prevTopic()));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
refresh();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
Wizard::~Wizard()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Wizard::activateTopic(QTreeWidgetItem *item,QTreeWidgetItem *)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (item)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QString label = item->text(0);
|
|
Packit |
1c1d7e |
if (label==tr("Project"))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_topicStack->setCurrentWidget(m_step1);
|
|
Packit |
1c1d7e |
m_prev->setEnabled(false);
|
|
Packit |
1c1d7e |
m_next->setEnabled(true);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (label==tr("Mode"))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_topicStack->setCurrentWidget(m_step2);
|
|
Packit |
1c1d7e |
m_prev->setEnabled(true);
|
|
Packit |
1c1d7e |
m_next->setEnabled(true);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (label==tr("Output"))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_topicStack->setCurrentWidget(m_step3);
|
|
Packit |
1c1d7e |
m_prev->setEnabled(true);
|
|
Packit |
1c1d7e |
m_next->setEnabled(true);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (label==tr("Diagrams"))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_topicStack->setCurrentWidget(m_step4);
|
|
Packit |
1c1d7e |
m_prev->setEnabled(true);
|
|
Packit |
1c1d7e |
m_next->setEnabled(true);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Wizard::nextTopic()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (m_topicStack->currentIndex()+1==m_topicStack->count()) // last topic
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
done();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_topicStack->setCurrentIndex(m_topicStack->currentIndex()+1);
|
|
Packit |
1c1d7e |
m_next->setEnabled(m_topicStack->count()!=m_topicStack->currentIndex()+1);
|
|
Packit |
1c1d7e |
m_prev->setEnabled(m_topicStack->currentIndex()!=0);
|
|
Packit |
1c1d7e |
m_treeWidget->setCurrentItem(m_treeWidget->invisibleRootItem()->child(m_topicStack->currentIndex()));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Wizard::prevTopic()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_topicStack->setCurrentIndex(m_topicStack->currentIndex()-1);
|
|
Packit |
1c1d7e |
m_next->setEnabled(m_topicStack->count()!=m_topicStack->currentIndex()+1);
|
|
Packit |
1c1d7e |
m_prev->setEnabled(m_topicStack->currentIndex()!=0);
|
|
Packit |
1c1d7e |
m_treeWidget->setCurrentItem(m_treeWidget->invisibleRootItem()->child(m_topicStack->currentIndex()));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void Wizard::refresh()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_treeWidget->setCurrentItem(m_treeWidget->invisibleRootItem()->child(0));
|
|
Packit |
1c1d7e |
m_step1->init();
|
|
Packit |
1c1d7e |
m_step2->init();
|
|
Packit |
1c1d7e |
m_step3->init();
|
|
Packit |
1c1d7e |
m_step4->init();
|
|
Packit |
1c1d7e |
}
|