Example #1
0
void ComponentDialog::init_l_tab(VVBox *& page, QComboBox *& stereotypefilter,
                                 void (ComponentDialog::* filteractivated)(const QString & st),
                                 const char * slt,
                                 const char * add_slt, const char * remove_slt,
                                 QListWidget *& lb_available, QListWidget *& lb,
                                 const QList<BrowserClass *> & cls,
                                 QString lbl)
{
    bool visit = !hasOkButton();
    HHBox * hbox;
    VVBox * vbox;
    QPushButton * button;
        QLabel* label;
    page = new VVBox(this);

    if (!visit) {
        page->addWidget(hbox = new HHBox(page));
        hbox->setMargin(5);
        hbox->addWidget(new QLabel(tr("Stereotype filtering  "), hbox));
        hbox->addWidget(stereotypefilter = new QComboBox(hbox));
        stereotypefilter->setEditable(true);
        stereotypefilter->setAutoCompletion(completion());
        stereotypefilter->addItem("");
        stereotypefilter->addItems(BrowserClass::default_stereotypes());
        stereotypefilter->addItems(ProfiledStereotypes::defaults(UmlComponent));
        stereotypefilter->setCurrentIndex(0);
        QSizePolicy sp = stereotypefilter->sizePolicy();
        sp.setHorizontalPolicy(QSizePolicy::Expanding);
        stereotypefilter->setSizePolicy(sp);
        connect(stereotypefilter, SIGNAL(activated(const QString &)),
                this, slt);

        page->addWidget(hbox = new HHBox(page));
        hbox->addWidget(vbox = new VVBox(hbox));
        vbox->setMargin(5);
        (label = new QLabel(tr("Available classes"), vbox))->setAlignment(Qt::AlignCenter);
        vbox->addWidget(label);
        vbox->addWidget(lb_available = new QListWidget(vbox));
        lb_available->setSelectionMode(QListWidget::MultiSelection);

        hbox->addWidget(vbox = new VVBox(hbox));
        vbox->setMargin(5);
        (label = new QLabel("", vbox))->setScaledContents(TRUE);
        vbox->addWidget(label);
        vbox->addWidget(button = new QPushButton(vbox));
        button->setIcon(*rightPixmap);
        connect(button, SIGNAL(clicked()), this, add_slt);
        (label = new QLabel("", vbox))->setScaledContents(TRUE);
        vbox->addWidget(label);
        vbox->addWidget(button = new QPushButton(vbox));
        button->setIcon(*leftPixmap);
        connect(button, SIGNAL(clicked()), this, remove_slt);
        (label = new QLabel("", vbox))->setScaledContents(TRUE);
        vbox->addWidget(label);
        hbox->addWidget(vbox = new VVBox(hbox));
    }
ParameterDialog::ParameterDialog(ParameterData * pa)
    : TabDialog(0, 0, true, Qt::WA_DeleteOnClose), param(pa)
{
    pa->browser_node->edit_start();

    if (pa->browser_node->is_writable()) {
        setOkButton(tr("OK"));
        setCancelButton(tr("Cancel"));
    }
    else {
        setOkButton(QString());
        setCancelButton(tr("Close"));
    }

    visit = !hasOkButton();
    setWindowTitle(tr("Parameter dialog"));

    GridBox * grid;
    HHBox * htab;
    QString s;

    // general tab

    grid = new GridBox(2, this);
    umltab = grid;
    grid->setMargin(5);
    grid->setSpacing(5);

    grid->addWidget(new QLabel(tr("name :"), grid));
    grid->addWidget(edname = new LineEdit(pa->name(), grid));
    edname->setReadOnly(visit);

    QFont font = edname->font();

    if (! hasCodec())
        font.setFamily("Courier");

    font.setFixedPitch(TRUE);

    grid->addWidget(new QLabel(tr("stereotype : "), grid));
    grid->addWidget(edstereotype = new QComboBox(grid));
    edstereotype->setEditable(!visit);
    edstereotype->addItem(toUnicode(pa->stereotype));

    if (! visit) {
        edstereotype->addItems(BrowserParameter::default_stereotypes());
        edstereotype->addItems(ProfiledStereotypes::defaults(UmlParameter));
        edstereotype->setAutoCompletion(completion());
    }

    edstereotype->setCurrentIndex(0);

    QSizePolicy sp = edstereotype->sizePolicy();

    sp.setHorizontalPolicy(QSizePolicy::Expanding);
    edstereotype->setSizePolicy(sp);

    SmallPushButton* sButton;
    connect(sButton = new SmallPushButton(tr("type :"), grid), SIGNAL(clicked()),
            this, SLOT(menu_type()));

    grid->addWidget(sButton);
    grid->addWidget(edtype = new QComboBox( grid));
    edtype->setEditable(!visit);
    edtype->addItem(pa->get_type().get_full_type());

    if (!visit) {
        BrowserClass::instances(nodes);
        nodes.full_names(list);

        edtype->addItems(GenerationSettings::basic_types());
        offset = edtype->count();
        edtype->addItems(list);
        edtype->setAutoCompletion(completion());
        view = pa->browser_node->container(UmlClass);
    }

    edtype->setCurrentIndex(0);
    edtype->setSizePolicy(sp);

    grid->addWidget(new QLabel(tr("direction :"), grid));
    grid->addWidget(htab = new HHBox(grid));
    htab->addWidget(eddir = new QComboBox(htab));

    UmlParamDirection dir = pa->get_dir();

    eddir->addItem(stringify(dir));

    if (! visit) {
        if (dir != UmlInOut)
            eddir->addItem(stringify(UmlInOut));

        if (dir != UmlIn)
            eddir->addItem(stringify(UmlIn));

        if (dir != UmlOut)
            eddir->addItem(stringify(UmlOut));

        if (dir != UmlReturn)
            eddir->addItem(stringify(UmlReturn));
    }

    htab->addWidget(new QLabel(tr("   multiplicity : "), htab));
    htab->addWidget( edmultiplicity = new QComboBox(htab));
    edmultiplicity->setEditable(!visit);
    edmultiplicity->setSizePolicy(sp);
    edmultiplicity->addItem(pa->get_multiplicity());

    if (!visit) {
        edmultiplicity->addItem("1");
        edmultiplicity->addItem("0..1");
        edmultiplicity->addItem("*");
        edmultiplicity->addItem("1..*");
    }

    htab->addWidget(new QLabel(tr("   ordering : "), htab));
    htab->addWidget(edordering = new QComboBox(htab));

    UmlOrderingKind o = pa->get_ordering();

    edordering->addItem(stringify(o));

    if (!visit) {
        if (o != UmlUnordered)
            edordering->addItem(stringify(UmlUnordered));

        if (o != UmlOrdered)
            edordering->addItem(stringify(UmlOrdered));

        if (o != UmlLifo)
            edordering->addItem(stringify(UmlLifo));

        if (o != UmlFifo)
            edordering->addItem(stringify(UmlFifo));
    }

    htab->addWidget(new QLabel(tr("   effect : "), htab));
    htab->addWidget(edeffect = new QComboBox(htab));

    UmlParamEffect e = pa->get_effect();

    edeffect->addItem(stringify(e));

    if (!visit) {
        if (e != UmlNoEffect)
            edeffect->addItem(stringify(UmlNoEffect));

        if (e != UmlCreate)
            edeffect->addItem(stringify(UmlCreate));

        if (e != UmlRead)
            edeffect->addItem(stringify(UmlRead));

        if (e != UmlUpdate)
            edeffect->addItem(stringify(UmlUpdate));

        if (e != UmlDelete)
            edeffect->addItem(stringify(UmlDelete));
    }

    grid->addWidget(new QLabel(tr("in state : "), grid));
    grid->addWidget(edin_state = new LineEdit(pa->in_state, grid));
    edin_state->setReadOnly(visit);

    grid->addWidget(new QLabel(tr("default value :"), grid));
    grid->addWidget(htab = new HHBox(grid));
    htab->addWidget(edinit = new LineEdit(pa->get_default_value(), htab));

    if (visit)
    {
        edinit->setReadOnly(TRUE);
    }
    else
    {
        connect(sButton = new SmallPushButton(tr("Editor"), htab), SIGNAL(clicked()),
                this, SLOT(edit_init()));
        htab->addWidget(sButton);
    }

    grid->addWidget(new QLabel(grid));
    grid->addWidget(htab = new HHBox(grid));
    BButtonGroup * bg ;
    htab->addWidget( bg = new BButtonGroup(2, Qt::Horizontal, QString(), htab));

    bg->addWidget(is_control_cb = new QCheckBox(tr("is_control"), bg));

    if (pa->is_control)
        is_control_cb->setChecked(TRUE);

    is_control_cb->setDisabled(visit);

    bg->addWidget(unique_cb = new QCheckBox(tr("unique"), bg));

    if (pa->unique)
        unique_cb->setChecked(TRUE);

    unique_cb->setDisabled(visit);

    htab->addWidget(bg = new BButtonGroup(3, Qt::Horizontal, QString(), htab));
    bg->setExclusive(TRUE);

    bg->addWidget(standard_rb = new QRadioButton(tr("standard"), bg));
    bg->addWidget(exception_rb = new QRadioButton(tr("exception"), bg));
    bg->addWidget(stream_rb = new QRadioButton(tr("stream"), bg));

    if (pa->exception)
        exception_rb->setChecked(TRUE);
    else if (pa->stream)
        stream_rb->setChecked(TRUE);
    else
        standard_rb->setChecked(TRUE);

    VVBox * vtab;
    grid->addWidget(vtab = new VVBox(grid));
    vtab->addWidget(new QLabel(tr("description :"), vtab));

    if (! visit) {
        connect(sButton = new SmallPushButton(tr("Editor"), vtab), SIGNAL(clicked()),
                this, SLOT(edit_description()));
        vtab->addWidget(sButton);
    }

    grid->addWidget(comment = new MultiLineEdit(grid));
    comment->setReadOnly(visit);
    comment->setText(pa->browser_node->get_comment());
    comment->setFont(font);

    addTab(grid, "Uml");

    init_tab(ocltab, eduml_selection, pa->uml_selection, "Ocl",
             SLOT(edit_uml_selection()), TRUE);

    // C++
    init_tab(cppTab, edcpp_selection, pa->cpp_selection, "C++",
             SLOT(edit_cpp_selection()),
             GenerationSettings::cpp_get_default_defs());

    // Java
    init_tab(javatab, edjava_selection, pa->java_selection, "Java",
             SLOT(edit_java_selection()),
             GenerationSettings::java_get_default_defs());

    // USER : list key - value

    grid = new GridBox(2, this);
    grid->setMargin(5);
    grid->setSpacing(5);

    grid->addWidget(kvtable = new KeyValuesTable(pa->browser_node, grid, visit));
    addTab(grid, tr("Properties"));

    //

    connect(this, SIGNAL(currentChanged(QWidget *)),
            this, SLOT(change_tabs(QWidget *)));

    open_dialog(this);
}
Example #3
0
ExpansionRegionDialog::ExpansionRegionDialog(ExpansionRegionData * nd)
    : TabDialog(0, 0, FALSE, Qt::WA_DeleteOnClose), data(nd)
{
    nd->browser_node->edit_start();

    if (nd->browser_node->is_writable()) {
        setOkButton(TR("OK"));
        setCancelButton(TR("Cancel"));
    }
    else {
        setOkButton(QString());
        setCancelButton(TR("Close"));
    }

    setWindowTitle(TR("Expansion Region dialog"));

    bool visit = !hasOkButton();

    // general tab

    BrowserNode * bn = data->get_browser_node();
    GridBox * grid = new GridBox(2, this);

    umltab = grid;
    grid->setMargin(5);
    grid->setSpacing(5);

    grid->addWidget(new QLabel(TR("name : "), grid));
    grid->addWidget(edname = new LineEdit(bn->get_name(), grid));
    edname->setReadOnly(visit);

    grid->addWidget(new QLabel(TR("stereotype : "), grid));
    grid->addWidget(edstereotype = new QComboBox(grid));
    edstereotype->setEditable(!visit);
    edstereotype->addItem(toUnicode(data->get_stereotype()));

    if (! visit) {
        edstereotype->addItems(BrowserExpansionRegion::default_stereotypes());
        edstereotype->addItems(ProfiledStereotypes::defaults(UmlExpansionRegion));
        edstereotype->setAutoCompletion(completion());
    }

    edstereotype->setCurrentIndex(0);
    QSizePolicy sp = edstereotype->sizePolicy();
    sp.setHorizontalPolicy(QSizePolicy::Expanding);
    edstereotype->setSizePolicy(sp);

    HHBox * htab;

    grid->addWidget(new QLabel(TR("mode :"), grid));
    grid->addWidget(htab = new HHBox(grid));
    htab->addWidget(edmode = new QComboBox(htab));

    UmlExpansionKind m = data->get_mode();

    edmode->addItem(stringify(m));

    if (! visit) {
        if (m != UmlParallel)
            edmode->addItem(stringify(UmlParallel));

        if (m != UmlIterative)
            edmode->addItem(stringify(UmlIterative));

        if (m != UmlStream)
            edmode->addItem(stringify(UmlStream));
    }

    htab->addWidget(new QLabel("  ", htab));
    htab->addWidget(must_isolate_cb = new QCheckBox(TR("must isolate"), htab));

    if (data->must_isolate)
        must_isolate_cb->setChecked(TRUE);

    must_isolate_cb->setDisabled(visit);
    htab->addWidget(new QLabel("", htab));

    VVBox * vtab;
    grid->addWidget(vtab = new VVBox(grid));
    vtab->addWidget(new QLabel(TR("description :"), vtab));

    SmallPushButton* b;
    if (! visit)
    {
        connect(b = new SmallPushButton(TR("Editor"), vtab), SIGNAL(clicked()),
                this, SLOT(edit_description()));
        vtab->addWidget(b);
    }

    grid->addWidget(comment = new MultiLineEdit(grid));
    comment->setReadOnly(visit);
    comment->setText(bn->get_comment());
    QFont font = comment->font();

    if (! hasCodec())
        font.setFamily("Courier");

    font.setFixedPitch(TRUE);
    comment->setFont(font);

    addTab(grid, "Uml");

    // USER : list key - value

    grid = new GridBox(2, this);
    grid->setMargin(5);
    grid->setSpacing(5);

    grid->addWidget(kvtable = new KeyValuesTable(bn, grid, visit));
    addTab(grid, TR("Properties"));

    //

    connect(this, SIGNAL(currentChanged(QWidget *)),
            this, SLOT(change_tabs(QWidget *)));

    open_dialog(this);
}
Example #4
0
Dialog::Dialog() : QDialog(0)
{
    setModal(true);
    QVBoxLayout * vbox = new QVBoxLayout(this);
    VGridBox * gbox;
    BButtonGroup * bg;
    HHBox * htab;

    vbox->setMargin(5);

    gbox = new VGridBox(10,this,"Filters");
    vbox->addWidget(gbox);

    gbox->addWidget(htab = new HHBox(gbox));
    //htab->setMargin(5);

    htab->addWidget(new QLabel("filter 1 : ", htab));
    htab->addWidget(filter1_le = new LineEdit(htab));

    htab->addWidget(new QLabel("  ", htab));

    htab->addWidget(bg = new BButtonGroup(htab));
    //bg->setRadioButtonExclusive(TRUE);

    bg->addWidget(with1_rb = new QRadioButton("with", bg));
    bg->addWidget(new QRadioButton("without", bg));
    with1_rb->setChecked(TRUE);

    //

    gbox->addWidget(htab = new HHBox(gbox));
    //htab->setMargin(5);

    htab->addWidget(new QLabel("", htab));
    htab->addWidget(bg = new BButtonGroup(htab));
    //bg->setRadioButtonExclusive(TRUE);

    bg->addWidget(and12_rb = new QRadioButton("and", bg));
    bg->addWidget(new QRadioButton("or", bg));
    and12_rb->setChecked(TRUE);

    htab->addWidget(new QLabel("", htab));

    //

    gbox->addWidget(htab = new HHBox(gbox));
    //htab->setMargin(5);

    htab->addWidget(new QLabel("filter 2 : ", htab));
    htab->addWidget(filter2_le = new LineEdit(htab));

    htab->addWidget(new QLabel("  ", htab));

    htab->addWidget(bg = new BButtonGroup(htab));
    //bg->setRadioButtonExclusive(TRUE);

    bg->addWidget(with2_rb = new QRadioButton("with", bg));
    bg->addWidget(new QRadioButton("without", bg));
    with2_rb->setChecked(TRUE);

    //

    gbox->addWidget(htab = new HHBox(gbox));
    //htab->setMargin(5);

    htab->addWidget(new QLabel("", htab));
    htab->addWidget(bg = new BButtonGroup(htab));
    //bg->setRadioButtonExclusive(TRUE);

    bg->addWidget(and23_rb = new QRadioButton("and", bg));
    bg->addWidget(new QRadioButton("or", bg));
    and23_rb->setChecked(TRUE);

    htab->addWidget(new QLabel("", htab));

    //

    gbox->addWidget(htab = new HHBox(gbox));
    //htab->setMargin(5);

    htab->addWidget(new QLabel("filter 3 : ", htab));
    htab->addWidget(filter3_le = new LineEdit(htab));

    htab->addWidget(new QLabel("  ", htab));

    htab->addWidget(bg = new BButtonGroup(htab));
    //bg->setRadioButtonExclusive(TRUE);

    bg->addWidget(with3_rb = new QRadioButton("with", bg));
    bg->addWidget(new QRadioButton("without", bg));
    with3_rb->setChecked(TRUE);

    //
    //

    gbox = new VGridBox(2,this,"Stereotype" );
    vbox->addWidget(gbox);

    gbox->addWidget(htab = new HHBox(gbox));
    //htab->setMargin(5);

    htab->addWidget(bg = new BButtonGroup(htab));
    //bg->setRadioButtonExclusive(TRUE);

    bg->addWidget(any_rb = new QRadioButton("any", bg));
    bg->addWidget(is_rb = new QRadioButton("is", bg));
    bg->addWidget(isnot_rb = new QRadioButton("is not", bg));
    any_rb->setChecked(TRUE);
    htab->addWidget(stereotype_le = new QLineEdit(htab));

    //
    //

    gbox = new VGridBox(2,this,"Targets" );
    vbox->addWidget(gbox);

    gbox->addWidget(htab = new HHBox(gbox));
    //htab->setMargin(5);

    htab->addWidget(artifact_cb = new QCheckBox("artifact", htab));
    htab->addWidget(class_cb = new QCheckBox("class", htab));
    htab->addWidget(operation_cb = new QCheckBox("operation", htab));
    htab->addWidget(attribute_cb = new QCheckBox("attribute", htab));
    htab->addWidget(relation_cb = new QCheckBox("relation", htab));

    //
    //

    gbox = new VGridBox(2,this,"Languages");
    vbox->addWidget(gbox);

    gbox->addWidget(htab = new HHBox(gbox));
    //htab->setMargin(5);

    htab->addWidget(cpp_cb = new QCheckBox("C++", htab));
    htab->addWidget(java_cb = new QCheckBox("Java", htab));
    htab->addWidget(php_cb = new QCheckBox("Php", htab));
    htab->addWidget(python_cb = new QCheckBox("Python", htab));
    htab->addWidget(idl_cb = new QCheckBox("Idl", htab));

    //
    //

    GridBox * grid = new GridBox(2, this);
    vbox->addWidget(grid);
    grid->setMargin(5);
    grid->setSpacing(5);

    grid->addWidget(new QLabel("current : ", grid));
    grid->addWidget(current_le  = new LineEdit(grid));

    grid->addWidget(new QLabel("new : ", grid));
    grid->addWidget(new_le  = new LineEdit(grid));

    //
    //

    htab = new HHBox(this);
    htab->setMargin(5);
    vbox->addWidget(htab);

    htab->addWidget(new QLabel(htab));
    QPushButton * replace;
    htab->addWidget(replace = new QPushButton("Replace", htab));
    htab->addWidget(new QLabel(htab));
    QPushButton * quit;
    htab->addWidget(quit = new QPushButton("Quit", htab));
    htab->addWidget(new QLabel(htab));

    QSize bs(replace->sizeHint());

    quit->setFixedSize(bs);

    connect(replace, SIGNAL(clicked()), this, SLOT(do_replace()));
    connect(quit, SIGNAL(clicked()), this, SLOT(reject()));

}
Example #5
0
Dialog::Dialog(UmlArtifact * art, const QByteArray & path_exe, QByteArray & pro, QByteArray & target, QByteArray & tmplt, QByteArray & config, QByteArray & defines, QByteArray & includepath, QByteArray & dependpath, QByteArray & objectsdir, QByteArray & footer)
    : QDialog(0), _art(art), _pro(pro), _target(target), _tmplt(tmplt),
      _config(config), _defines(defines), _includepath(includepath), _dependpath(dependpath),
      _objectsdir(objectsdir), _footer(footer)
{
    setModal(true);
    QDir d(path_exe);
    QVBoxLayout * vbox = new QVBoxLayout(this);
    GridBox * grid = new GridBox(2, this);
    HHBox * htab;
    int index;

    vbox->addWidget(grid);
    vbox->setMargin(5);

    grid->addWidget(new QLabel(".pro file : ", grid));
    grid->addWidget(htab = new HHBox(grid));
    htab->addWidget(edpro = new QLineEdit(htab));
    edpro->setText(d.absoluteFilePath(pro));

    htab->addWidget(new QLabel(" ", htab));
    htab->addWidget(browsepro = new SmallPushButton("browse", htab));
    connect(browsepro, SIGNAL(clicked()), this, SLOT(browse_pro()));

    grid->addWidget(new QLabel("target : ", grid));
    grid->addWidget(htab = new HHBox(grid));
    htab->addWidget(edtarget = new QLineEdit(htab));
    edtarget->setText(d.absoluteFilePath(target));
    htab->addWidget(new QLabel(" ", htab));
    htab->addWidget(browsetarget = new SmallPushButton("browse", htab));
    connect(browsetarget, SIGNAL(clicked()), this, SLOT(browse_target()));

    grid->addWidget(new QLabel("template : ", grid));
    grid->addWidget(cbtemplate = new QComboBox(grid));
    cbtemplate->setEditable(true);

    static const char * templates[] = { "app", "lib", "subdirs" };
    bool find = FALSE;

    for (index = 0; index != sizeof(templates) / sizeof(*templates); index += 1) {
        cbtemplate->addItem(templates[index]);

        if (tmplt == templates[index]) {
            cbtemplate->setCurrentIndex(index);
            find = TRUE;
        }
    }

    if (! find) {
        cbtemplate->addItem((QString) tmplt);
        cbtemplate->setCurrentIndex(index);
    }

    grid->addWidget(new QLabel("config : ", grid));
    grid->addWidget(htab = new HHBox(grid));
    htab->addWidget(cbconf[0] = new QComboBox( htab));
    cbconf[0]->addItem("debug");
    cbconf[0]->addItem("release");

    QStringList lcnf = QString(config).split(" ");
        //QStringList::split(" ", (const char *) config);
    QStringList::Iterator it = lcnf.begin();

    cbconf[0]->setCurrentIndex((*it++ == "debug") ? 0 : 1);

    htab->addWidget(cbconf[1] = new QComboBox( htab));
    cbconf[1]->addItem("warn_on");
    cbconf[1]->addItem("warn_off");
    cbconf[1]->setCurrentIndex((*it++ == "warn_on") ? 0 : 1);

    QSizePolicy sp = cbconf[0]->sizePolicy();

    sp.setHorizontalPolicy(QSizePolicy::Fixed);
    cbconf[0]->setSizePolicy(sp);
    cbconf[1]->setSizePolicy(sp);

    htab->addWidget(new QLabel(" qt ", htab));
    it++;	// qt

    /*const char * configs[] = {
        "", "opengl", "thread", "x11", "windows",
        "console", "dll", "staticlib", 0
    };*/
    QStringList configs;
    configs<<""<<"opengl"<<"thread"<<"x11"<<"windows"<<
            "console"<<"dll"<<"staticlib";

    for (index = 2;
         index != sizeof(cbconf) / sizeof(*cbconf) - 1;
         index += 1) {
        htab->addWidget(cbconf[index] = new QComboBox( htab));
        cbconf[index]->setEditable(true);

        if (it != lcnf.end())
            cbconf[index]->addItem(*it++);

        cbconf[index]->addItems(configs);
        cbconf[index]->setCurrentIndex(0);
    }

    htab->addWidget(cbconf[index] = new QComboBox( htab));
    cbconf[index]->setEditable(true);

    if (it != lcnf.end()) {
        QString s = *it++;

        while (it != lcnf.end())
            s += " " + *it++;

        cbconf[index]->addItem(s);
    }

    cbconf[index]->addItems(configs);
    cbconf[index]->setCurrentIndex(0);


    grid->addWidget(new QLabel("defines : ", grid));
    grid->addWidget(eddefines = new QLineEdit(grid));
    eddefines->setText(defines);

    ///may be computed
    grid->addWidget(new QLabel("include paths : ", grid));
    grid->addWidget(htab = new HHBox(grid));
    htab->addWidget(edincludepath = new QLineEdit(htab));
    edincludepath->setText(includepath);
    htab->addWidget(new QLabel(" ", htab));
    htab->addWidget(computeincludepath = new SmallPushButton("compute", htab));
    connect(computeincludepath, SIGNAL(clicked()), this, SLOT(compute_includepath()));

    grid->addWidget(new QLabel("depend paths : ", grid));
    grid->addWidget(eddependpath = new QLineEdit(grid));
    eddependpath->setText(dependpath);

    grid->addWidget(new QLabel("objects dir : ", grid));
    grid->addWidget(htab = new HHBox(grid));
    htab->addWidget(edobjectsdir = new QLineEdit(htab));
    edobjectsdir->setText(objectsdir);
    htab->addWidget(new QLabel(" ", htab));
    htab->addWidget(browseobjectsdir = new SmallPushButton("browse", htab));
    connect(browseobjectsdir, SIGNAL(clicked()), this, SLOT(browse_objectsdir()));

    grid->addWidget(new QLabel("footer : ", grid));
    grid->addWidget(edfooter = new QTextEdit(grid));
    edfooter->setText(footer);

    grid->addWidget(new QLabel(grid));
    grid->addWidget(new QLabel(grid));

    grid->addWidget(new QLabel(grid));
    grid->addWidget(htab = new HHBox(grid));
    htab->addWidget(new QLabel(htab));
    QPushButton * ok ;
    htab->addWidget(ok = new QPushButton("&OK", htab));
    htab->addWidget(new QLabel(htab));
    QPushButton * cancel;
    htab->addWidget( cancel = new QPushButton("&Cancel", htab));
    htab->addWidget(new QLabel(htab));
    QSize bs(cancel->sizeHint());

    ok->setDefault(TRUE);

    if (ok->sizeHint().width() > bs.width())
        bs.setWidth(ok->sizeHint().width());

    ok->setFixedSize(bs);
    cancel->setFixedSize(bs);

    connect(ok, SIGNAL(clicked()), this, SLOT(accept()));
    connect(cancel, SIGNAL(clicked()), this, SLOT(reject()));
}
Example #6
0
ConstrDestrCopyDialog::ConstrDestrCopyDialog(UmlClass * cl, bool have_constructor,
        bool have_destructor, bool have_copy,
        bool have_const_copy, bool have_assignment,
        bool have_const_assignment)
    : QDialog(0), target(cl)
{
    setModal(true);
    QVBoxLayout * vbox = new QVBoxLayout(this);
    GridBox * g;
    QList<QLabel*> labels;
    QLabel * lbl;

    vbox->setSpacing(5);
    vbox->setMargin(5);

    lbl = new QLabel(QString("<big><b>C++ utilities for the class <i><tt>") +
                     (const char *) cl->name() + "</tt></i></b></big>",
                     this);
    lbl->setAlignment(Qt::AlignCenter);
    vbox->addWidget(lbl);

    // constructor

    g = new GridBox(2, this);
    vbox->addWidget(g);

    labels.append(lbl = new QLabel((have_constructor)
                             ? "the class already have contructor  "
                             : "the class doesn't have contructor  ",
                             g));
    g->addWidget(lbl);

    HHBox * h;
    g->addWidget(h = new HHBox(g));

    h->addWidget(add_constr = new QCheckBox("add constructor", h));
    h->addWidget(constr_explicit = new QCheckBox("explicit", h));

    // destructor

    if (! have_destructor) {
        g = new GridBox(2,this);
        vbox->addWidget(g);

        labels.append(lbl = new QLabel("the class doesn't have destructor  ",
                                 g));
        g->addWidget(lbl);

        h = new HHBox(g);
        g->addWidget(h);

        h->addWidget(add_destr = new QCheckBox("add destructor", h));
        h->addWidget(virtual_destr = new QCheckBox("virtual", h));
    }
    else
        add_destr = 0;

    // copy contructor

    if (have_copy) {
        add_copy = 0;

        if (!have_const_copy) {
            g = new GridBox(2, this);
            vbox->addWidget(g);

            labels.append(lbl = new QLabel("the class doesn't have copy contructor  \nwith const argument  ",
                                     g));
            g->addWidget(lbl);
            g->addWidget(add_const_copy = new QCheckBox("add copy constructor\nwith const argument",
                                           g));
        }
        else
            add_const_copy = 0;
    }
    else if (!have_const_copy) {
        g = new GridBox(2, this);
        vbox->addWidget(g);

        labels.append(lbl = new QLabel("the class doesn't have copy contructor  ",
                                 g));
        g->addWidget(lbl);

        VVBox * v = new VVBox(g);
        g->addWidget(v);
        v->addWidget(add_const_copy = new QCheckBox("add copy constructor\nwith const argument",
                                       v));
        v->addWidget(add_copy = new QCheckBox("add copy constructor\nwith non const argument",
                                 v));
    }
    else {
        g = new GridBox(2,this);
        vbox->addWidget(g);

        labels.append(lbl = new QLabel("the class doesn't have copy contructor  \nwith non const argument  ",
                                 g));
        g->addWidget(lbl);
        g->addWidget(add_copy = new QCheckBox("add copy constructor\nwith non const argument",
                                 g));
        add_const_copy = 0;
    }

    // assignment

    if (have_assignment) {
        add_assign = 0;

        if (!have_const_assignment) {
            g = new GridBox(2, this);
            vbox->addWidget(g);

            labels.append(lbl = new QLabel("the class doesn't have assignment\noperator with const argument  ",
                                     g));
            g->addWidget(lbl);
            g->addWidget(add_const_assign = new QCheckBox("add assignment\nwith const argument",
                                             g));
        }
        else
            add_const_assign = 0;
    }
    else if (!have_const_assignment) {
        g = new GridBox(2, this);
        vbox->addWidget(g);

        labels.append(lbl = new QLabel("the class doesn't have assignment operator  ", g));

        g->addWidget(lbl);
        VVBox * v = new VVBox(g);
        g->addWidget(v);

        v->addWidget(add_const_assign = new QCheckBox("add assignment\nwith const argument",
                                         v));
        v->addWidget(add_assign = new QCheckBox("add assignment\nwith non const argument",
                                   v));
    }
    else {
        g = new GridBox(2,this);
        vbox->addWidget(g);

        labels.append(lbl = new QLabel("the class doesn't have assignment operator  \nwith non const argument  ",
                                 g));
        g->addWidget(lbl);
        g->addWidget(add_assign = new QCheckBox("add assignment\nwith non const argument",
                                   g));
        add_const_assign = 0;
    }

    // use the same width for all the labels on the first column

    QSize sz(labels.first()->sizeHint());

    foreach (lbl,labels) {
        if (lbl->sizeHint().width() > sz.width())
            sz.setWidth(lbl->sizeHint().width());
    }

    foreach (lbl,labels) {
        sz.setHeight(lbl->sizeHint().height());
        lbl->setFixedSize(sz);
    }