KDevelop API Documentation

optiontabs.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2003 Alexander Dymo                                     *
00003  *   cloudtemple@mksat.net                                                 *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  *                                                                         *
00010  ***************************************************************************/
00011 #include <kdialog.h>
00012 #include <klocale.h>
00013 
00014 #include <qspinbox.h>
00015 #include <qlabel.h>
00016 #include <qlayout.h>
00017 #include <qvbuttongroup.h>
00018 #include <qapplication.h>
00019 #include <qframe.h>
00020 #include <qpushbutton.h>
00021 
00022 #include "flagboxes.h"
00023 
00024 #include "optiontabs.h"
00025 
00026 FeedbackTab::FeedbackTab(QWidget *parent, const char *name)
00027     : QWidget(parent, name), controller(new FlagCheckBoxController(QStringList::split(",","-v")))
00028 {
00029     QBoxLayout *layout = new QVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
00030     layout->setAutoAdd(true);
00031 
00032     QVButtonGroup *output_group = new QVButtonGroup(i18n("Output"), this);
00033     new FlagCheckBox(output_group, controller,
00034                      "-vr", i18n("Format errors like GCC does"));
00035     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00036     layout->addSpacing(10);
00037 
00038     QVButtonGroup *verbose_group = new QVButtonGroup(i18n("Verbose"), this);
00039     new FlagCheckBox(verbose_group, controller,
00040                      "-va", i18n("Write all possible info"));
00041     new FlagCheckBox(verbose_group, controller,
00042                      "-v0", i18n("Write no messages"));
00043     new FlagCheckBox(verbose_group, controller,
00044                      "-ve", i18n("Show only errors"));
00045     new FlagCheckBox(verbose_group, controller,
00046                      "-vi", i18n("Show some general information"));
00047     new FlagCheckBox(verbose_group, controller,
00048                      "-vw", i18n("Issue warnings"));
00049     new FlagCheckBox(verbose_group, controller,
00050                      "-vn", i18n("Issue notes"));
00051     new FlagCheckBox(verbose_group, controller,
00052                      "-vh", i18n("Issue hints"));
00053     new FlagCheckBox(verbose_group, controller,
00054                      "-vd", i18n("Write other debugging info"));
00055 
00056     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00057     layout->addSpacing(10);
00058 
00059     QVButtonGroup *other_group = new QVButtonGroup(i18n("Other Information"), this);
00060     new FlagCheckBox(other_group, controller,
00061                      "-vl", i18n("Show line numbers when processing files"));
00062     new FlagCheckBox(other_group, controller,
00063                      "-vu", i18n("Print information on loaded units"));
00064     new FlagCheckBox(other_group, controller,
00065                      "-vt", i18n("Print the names of loaded files"));
00066     new FlagCheckBox(other_group, controller,
00067                      "-vm", i18n("Write which macros are defined"));
00068     new FlagCheckBox(other_group, controller,
00069                      "-vc", i18n("Warn when processing a conditional"));
00070     new FlagCheckBox(other_group, controller,
00071                      "-vp", i18n("Print the names of procedures and functions"));
00072     new FlagCheckBox(other_group, controller,
00073                      "-vb", i18n("Show all procedure declarations if an overloaded function error occurs"));
00074 
00075     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00076 
00077     layout->addStretch();
00078 }
00079 
00080 FeedbackTab::~FeedbackTab()
00081 {
00082     delete controller;
00083 }
00084 
00085 void FeedbackTab::readFlags(QStringList *list)
00086 {
00087     controller->readFlags(list);
00088 }
00089 
00090 void FeedbackTab::writeFlags(QStringList *list)
00091 {
00092     controller->writeFlags(list);
00093 }
00094 
00095 
00096 
00097 FilesAndDirectoriesTab::FilesAndDirectoriesTab( QWidget * parent, const char * name )
00098     :QWidget(parent, name), controller(new FlagCheckBoxController()),
00099     pathController(new FlagPathEditController())
00100 {
00101     QBoxLayout *layout = new QVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
00102     layout->setAutoAdd(true);
00103 
00104     new FlagPathEdit(this, ":", pathController,
00105                      "-Fu", i18n("Unit search path (delimited by \":\"):"));
00106     new FlagPathEdit(this, ":", pathController,
00107                      "-Fi", i18n("Include file search path (delimited by \":\"):"));
00108     new FlagPathEdit(this, ":", pathController,
00109                      "-Fo", i18n("Object file search path (delimited by \":\"):"));
00110     new FlagPathEdit(this, ":", pathController,
00111                      "-Fl", i18n("Library search path (delimited by \":\"):"));
00112     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00113     layout->addStretch();
00114 }
00115 
00116 FilesAndDirectoriesTab::~FilesAndDirectoriesTab( )
00117 {
00118     delete controller;
00119     delete pathController;
00120 }
00121 
00122 void FilesAndDirectoriesTab::readFlags( QStringList * str )
00123 {
00124     controller->readFlags(str);
00125     pathController->readFlags(str);
00126 }
00127 
00128 void FilesAndDirectoriesTab::writeFlags( QStringList * str )
00129 {
00130     controller->writeFlags(str);
00131     pathController->writeFlags(str);
00132 }
00133 
00134 FilesAndDirectoriesTab2::FilesAndDirectoriesTab2( QWidget * parent, const char * name )
00135     :QWidget(parent, name), controller(new FlagCheckBoxController()),
00136     pathController(new FlagPathEditController())
00137 {
00138     QBoxLayout *layout = new QVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
00139     layout->setAutoAdd(true);
00140 
00141     new FlagPathEdit(this, "", pathController,
00142                      "-FE", i18n("Write executables and units in:"));
00143     new FlagPathEdit(this, "", pathController,
00144                      "-FU", i18n("Write units in:"));
00145     new FlagPathEdit(this, "", pathController,
00146                      "-o", i18n("Executable name:"), KFile::File);
00147     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00148     layout->addSpacing(20);
00149 
00150     new FlagPathEdit(this, "", pathController,
00151                      "-e", i18n("Location of as and ld programs:"));
00152     new FlagPathEdit(this, "", pathController,
00153                      "-FL", i18n("Dynamic linker executable:"), KFile::File);
00154     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00155     layout->addSpacing(20);
00156 
00157     new FlagPathEdit(this, "", pathController,
00158                      "-Fr", i18n("Compiler messages file:"), KFile::File);
00159     new FlagPathEdit(this, "", pathController,
00160                      "-Fe", i18n("Write compiler messages to file:"), KFile::File);
00161     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00162 
00163     layout->addStretch();
00164 }
00165 
00166 FilesAndDirectoriesTab2::~FilesAndDirectoriesTab2( )
00167 {
00168     delete controller;
00169     delete pathController;
00170 }
00171 
00172 void FilesAndDirectoriesTab2::readFlags( QStringList * str )
00173 {
00174     controller->readFlags(str);
00175     pathController->readFlags(str);
00176 }
00177 
00178 void FilesAndDirectoriesTab2::writeFlags( QStringList * str )
00179 {
00180     controller->writeFlags(str);
00181     pathController->writeFlags(str);
00182 }
00183 
00184 
00185 LanguageTab::LanguageTab( QWidget * parent, const char * name )
00186     : QWidget(parent, name), controller(new FlagCheckBoxController(QStringList::split(",","-v")))
00187 {
00188     QBoxLayout *layout = new QVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
00189     layout->setAutoAdd(true);
00190 
00191     QVButtonGroup *compat_group = new QVButtonGroup(i18n("Pascal Compatibility"), this);
00192     new FlagCheckBox(compat_group, controller,
00193                      "-S2", i18n("Switch on Delphi 2 extensions"));
00194     new FlagCheckBox(compat_group, controller,
00195                      "-Sd", i18n("Strict Delphi compatibility mode"));
00196     new FlagCheckBox(compat_group, controller,
00197                      "-So", i18n("Borland TP 7.0 compatibility mode"));
00198     new FlagCheckBox(compat_group, controller,
00199                      "-Sp", i18n("GNU Pascal compatibility mode"));
00200     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00201     layout->addSpacing(10);
00202 
00203     QVButtonGroup *ccompat_group = new QVButtonGroup(i18n("C/C++ Compatibility"), this);
00204     new FlagCheckBox(ccompat_group, controller,
00205                      "-Sc", i18n("Support C style operators *=, +=, /=, -="));
00206     new FlagCheckBox(ccompat_group, controller,
00207                      "-Si", i18n("Support C++ style INLINE"));
00208     new FlagCheckBox(ccompat_group, controller,
00209                      "-Sm", i18n("Support C style macros"));
00210     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00211     layout->addSpacing(10);
00212 
00213     QVButtonGroup *lang_group = new QVButtonGroup(i18n("Language"), this);
00214     new FlagCheckBox(lang_group, controller,
00215                      "-Sg", i18n("Support the label and goto commands"));
00216     new FlagCheckBox(lang_group, controller,
00217                      "-Sh", i18n("Use ansistrings by default for strings"));
00218     new FlagCheckBox(lang_group, controller,
00219                      "-Ss", i18n("Require the name of constructors to be init\n and the name of destructors to be done"));
00220     new FlagCheckBox(lang_group, controller,
00221                      "-St", i18n("Allow the static keyword in objects"));
00222     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00223 
00224     layout->addStretch();
00225 }
00226 
00227  LanguageTab::~ LanguageTab( )
00228 {
00229     delete controller;
00230 }
00231 
00232 void LanguageTab::readFlags( QStringList * str )
00233 {
00234     controller->readFlags(str);
00235 }
00236 
00237 void LanguageTab::writeFlags( QStringList * str )
00238 {
00239     controller->writeFlags(str);
00240 }
00241 
00242 AssemblerTab::AssemblerTab( QWidget * parent, const char * name )
00243     : QWidget(parent, name), controller(new FlagCheckBoxController()),
00244     asmController(new FlagRadioButtonController)
00245 {
00246     QBoxLayout *layout = new QVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
00247 //    layout->setAutoAdd(true);
00248 
00249     QBoxLayout *layout2 = new QHBoxLayout(layout, KDialog::spacingHint());
00250 
00251     QVButtonGroup *info_group = new QVButtonGroup(i18n("Assembler Info"), this);
00252     new FlagCheckBox(info_group, controller,
00253                      "-a", i18n("Do not delete assembler files"));
00254     new FlagCheckBox(info_group, controller,
00255                      "-al", i18n("List source"));
00256     new FlagCheckBox(info_group, controller,
00257                      "-ar", i18n("List register allocation and release info"));
00258     new FlagCheckBox(info_group, controller,
00259                      "-at", i18n("List temporary allocations and deallocations"));
00260     layout2->addWidget(info_group);
00261     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00262     //layout->addSpacing(10);
00263 
00264     QVButtonGroup *asmkind_group = new QVButtonGroup(i18n("Assembler Reader"), this);
00265     QRadioButton *m_defaultkind = new QRadioButton(i18n("Use default reader"), asmkind_group);
00266     m_defaultkind->setChecked(true);
00267     new FlagRadioButton(asmkind_group, asmController,
00268                         "-Ratt", i18n("AT&T style assembler"));
00269     new FlagRadioButton(asmkind_group, asmController,
00270                         "-Rintel", i18n("Intel style assembler"));
00271     new FlagRadioButton(asmkind_group, asmController,
00272                         "-Rdirect", i18n("Direct assembler"));
00273     layout2->addWidget(asmkind_group);
00274     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00275     layout->addSpacing(10);
00276 
00277 
00278     QVButtonGroup *asm_group = new QVButtonGroup(i18n("Assembler Output"), this);
00279     new FlagCheckBox(asm_group, controller,
00280                      "-P", i18n("Use pipes instead of files when assembling"));
00281     QRadioButton *m_default = new QRadioButton(i18n("Use default output"), asm_group);
00282     m_default->setChecked(true);
00283     new FlagRadioButton(asm_group, asmController,
00284                         "-Aas", i18n("Use GNU as"));
00285     new FlagRadioButton(asm_group, asmController,
00286                         "-Aasout", i18n("Use GNU asaout"));
00287     new FlagRadioButton(asm_group, asmController,
00288                         "-Anasmcoff", i18n("Use NASM coff"));
00289     new FlagRadioButton(asm_group, asmController,
00290                         "-Anasmelf", i18n("Use NASM elf"));
00291     new FlagRadioButton(asm_group, asmController,
00292                         "-Anasmobj", i18n("Use NASM obj"));
00293     new FlagRadioButton(asm_group, asmController,
00294                         "-Amasm", i18n("Use MASM"));
00295     new FlagRadioButton(asm_group, asmController,
00296                         "-Atasm", i18n("Use TASM"));
00297     new FlagRadioButton(asm_group, asmController,
00298                         "-Acoff", i18n("Use coff"));
00299     new FlagRadioButton(asm_group, asmController,
00300                         "-Apecoff", i18n("Use pecoff"));
00301     layout->addWidget(asm_group);
00302     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00303 
00304     layout->addStretch();
00305 }
00306 
00307  AssemblerTab::~ AssemblerTab( )
00308 {
00309     delete controller;
00310     delete asmController;
00311 }
00312 
00313 void AssemblerTab::readFlags( QStringList * str )
00314 {
00315     controller->readFlags(str);
00316     asmController->readFlags(str);
00317 }
00318 
00319 void AssemblerTab::writeFlags( QStringList * str )
00320 {
00321     controller->writeFlags(str);
00322     asmController->writeFlags(str);
00323 }
00324 
00325 
00326 
00327 DebugOptimTab::DebugOptimTab( QWidget * parent, const char * name )
00328     : QWidget(parent, name), controller(new FlagCheckBoxController()),
00329     optimController(new FlagRadioButtonController)
00330 {
00331     QBoxLayout *layout = new QVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
00332 //    layout->setAutoAdd(true);
00333 
00334     QBoxLayout *layout2 = new QHBoxLayout(layout, KDialog::spacingHint());
00335 
00336     QBoxLayout *layout3 = new QVBoxLayout(layout2, KDialog::spacingHint());
00337 
00338     QVButtonGroup *debug_group = new QVButtonGroup(i18n("Debugging"), this);
00339     new FlagCheckBox(debug_group, controller,
00340                      "-g", i18n("Generate information for GDB"), "-!g");
00341     new FlagCheckBox(debug_group, controller,
00342                      "-gd", i18n("Generate information for DBX"), "-!gd");
00343     new FlagCheckBox(debug_group, controller,
00344                      "-gl", i18n("Use lineinfo unit"), "-!gl");
00345     new FlagCheckBox(debug_group, controller,
00346                      "-gh", i18n("Use heaptrc unit"), "-!gh");
00347     new FlagCheckBox(debug_group, controller,
00348                      "-gc", i18n("Generate checks for pointers"), "-!gc");
00349     layout3->addWidget(debug_group);
00350     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00351     layout3->addSpacing(10);
00352 
00353     QVButtonGroup *profile_group = new QVButtonGroup(i18n("Profiling"), this);
00354     new FlagCheckBox(profile_group, controller,
00355                      "-pg", i18n("Generate profiler code for gprof"), "-!pg");
00356     layout3->addWidget(profile_group);
00357     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00358     layout3->addSpacing(10);
00359 
00360     QBoxLayout *layout4 = new QVBoxLayout(layout2, KDialog::spacingHint());
00361 
00362     QVButtonGroup *optim_group1 = new QVButtonGroup(i18n("General Optimization"), this);
00363     m_default = new QRadioButton(i18n("Default"), optim_group1);
00364     m_default->setChecked(true);
00365     new FlagRadioButton(optim_group1, optimController,
00366                         "-Og", i18n("Generate smaller code"));
00367     optim1 = new FlagRadioButton(optim_group1, optimController,
00368                         "-OG", i18n("Generate faster code"));
00369     layout4->addWidget(optim_group1);
00370     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00371     layout4->addSpacing(10);
00372 
00373     QVButtonGroup *optim_group2 = new QVButtonGroup(i18n("Optimization Levels"), this);
00374     m_default2 = new QRadioButton(i18n("Default"), optim_group2);
00375     m_default2->setChecked(true);
00376     new FlagRadioButton(optim_group2, optimController,
00377                         "-O1", i18n("Level 1"));
00378     new FlagRadioButton(optim_group2, optimController,
00379                         "-O2", i18n("Level 2"));
00380     optim2 = new FlagRadioButton(optim_group2, optimController,
00381                         "-O3", i18n("Level 3"));
00382     layout4->addWidget(optim_group2);
00383     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00384     layout4->addSpacing(10);
00385 
00386     QHBoxLayout *layout5 = new QHBoxLayout(layout, KDialog::spacingHint());
00387 
00388     QVButtonGroup *optim_group3 = new QVButtonGroup(i18n("Architecture"), this);
00389     m_default3 = new QRadioButton(i18n("Default"), optim_group3);
00390     m_default3->setChecked(true);
00391     new FlagRadioButton(optim_group3, optimController,
00392                      "-Op1", i18n("386/486"));
00393     new FlagRadioButton(optim_group3, optimController,
00394                      "-Op2", i18n("Pentium/PentiumMMX"));
00395     new FlagRadioButton(optim_group3, optimController,
00396                      "-Op2", i18n("PentiumPro/PII/Cyrix 6x86/K6"));
00397     layout5->addWidget(optim_group3);
00398     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00399 
00400     QVButtonGroup *optim_group4 = new QVButtonGroup(i18n("Another Optimization"), this);
00401     new FlagCheckBox(optim_group4, controller,
00402                      "-Or", i18n("Use register variables"), "-!Or");
00403     new FlagCheckBox(optim_group4, controller,
00404                      "-Ou", i18n("Uncertain optimizations"), "-!Ou");
00405     layout5->addWidget(optim_group4);
00406     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00407 
00408     QHBoxLayout *layout6 = new QHBoxLayout(layout, KDialog::spacingHint());
00409     QPushButton *release = new QPushButton(i18n("Release"), this);
00410     QPushButton *debug = new QPushButton(i18n("Debug"), this);
00411     layout6->addWidget(release);
00412     layout6->addWidget(debug);
00413     connect(release, SIGNAL(clicked()), this, SLOT(setReleaseOptions()));
00414     connect(debug, SIGNAL(clicked()), this, SLOT(setDebugOptions()));
00415 
00416     layout->addStretch();
00417 }
00418 
00419  DebugOptimTab::~ DebugOptimTab( )
00420 {
00421     delete controller;
00422     delete optimController;
00423 }
00424 
00425 void DebugOptimTab::readFlags( QStringList * str )
00426 {
00427     controller->readFlags(str);
00428     optimController->readFlags(str);
00429 }
00430 
00431 void DebugOptimTab::writeFlags( QStringList * str )
00432 {
00433     controller->writeFlags(str);
00434     optimController->writeFlags(str);
00435 }
00436 
00437 void DebugOptimTab::setReleaseOptions()
00438 {
00439     m_default->setChecked(true);
00440     m_default2->setChecked(true);
00441 //    m_default3->setChecked(true);
00442     QStringList sl = QStringList::split(",", "-!g,-!gd,-!gl,-!gh,-!gc,-!pg,-!Ou,-!Or");
00443     readFlags(&sl);
00444     optim1->setChecked(true);
00445     optim2->setChecked(true);
00446 }
00447 
00448 void DebugOptimTab::setDebugOptions()
00449 {
00450     QStringList sl = QStringList::split(",", "-g,-!gd,-gl,-gh,-gc,-!pg,-!Ou,-!Or");
00451     readFlags(&sl);
00452     m_default->setChecked(true);
00453     m_default2->setChecked(true);
00454 //    m_default3->setChecked(true);
00455 }
00456 
00457 CodegenTab::CodegenTab( QWidget * parent, const char * name )
00458     : QWidget(parent, name), controller(new FlagCheckBoxController()),
00459     listController(new FlagEditController())
00460 {
00461     QBoxLayout *layout = new QVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
00462     layout->setAutoAdd(true);
00463 
00464     QVButtonGroup *compile_group = new QVButtonGroup(i18n("Compile Time Checks"), this);
00465     new FlagCheckBox(compile_group, controller,
00466                      "-Sa", i18n("Include assert statements in compiled code"));
00467     new FlagCheckBox(compile_group, controller,
00468                      "-Un", i18n("Do not check the unit name for being the same as the file name"));
00469     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00470     layout->addSpacing(10);
00471 
00472     QVButtonGroup *run_group = new QVButtonGroup(i18n("Run Time Checks"), this);
00473     new FlagCheckBox(run_group, controller,
00474                      "-Cr", i18n("Range checking"));
00475     new FlagCheckBox(run_group, controller,
00476                      "-Ct", i18n("Stack checking"));
00477     new FlagCheckBox(run_group, controller,
00478                      "-Ci", i18n("Input/Output checking"));
00479     new FlagCheckBox(run_group, controller,
00480                      "-Co", i18n("Integer overflow checking"));
00481     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00482     layout->addSpacing(10);
00483 
00484     new FlagListEdit(this, ":", listController, "-d", i18n("Conditional defines (delimited by \":\"):"));
00485     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00486 
00487     new FlagListEdit(this, ":", listController, "-u", i18n("Undefine conditional defines (delimited by \":\"):"));
00488     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00489     layout->addSpacing(10);
00490 
00491     new FlagSpinEdit(this, 1024, 67107840, 1, 131072, listController,
00492                     "-Cs", i18n("Stack size:"));
00493     new FlagSpinEdit(this, 1024, 67107840, 1, 2097152, listController,
00494                     "-Ch", i18n("Heap size:"));
00495     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00496 
00497     layout->addStretch();
00498 }
00499 
00500 CodegenTab::~ CodegenTab( )
00501 {
00502     delete controller;
00503     delete listController;
00504 }
00505 
00506 void CodegenTab::readFlags( QStringList * str )
00507 {
00508     controller->readFlags(str);
00509     listController->readFlags(str);
00510 }
00511 
00512 void CodegenTab::writeFlags( QStringList * str )
00513 {
00514     controller->writeFlags(str);
00515     listController->writeFlags(str);
00516 }
00517 
00518 LinkerTab::LinkerTab( QWidget * parent, const char * name )
00519     : QWidget(parent, name), controller(new FlagCheckBoxController()),
00520     listController(new FlagEditController())
00521 {
00522     QBoxLayout *layout = new QVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
00523 
00524     QBoxLayout *layout2 = new QHBoxLayout(layout, KDialog::spacingHint());
00525 
00526     QVButtonGroup *link_group = new QVButtonGroup(i18n("Linking Stage"), this);
00527     new FlagCheckBox(link_group, controller,
00528                      "-CD", i18n("Create dynamic library"));
00529     new FlagCheckBox(link_group, controller,
00530                      "-CX", i18n("Create smartlinked units"));
00531     new FlagCheckBox(link_group, controller,
00532                      "-Ur", i18n("Generate release units"));
00533     new FlagCheckBox(link_group, controller,
00534                      "-Cn", i18n("Omit the linking stage"));
00535     new FlagCheckBox(link_group, controller,
00536                      "-s",  i18n("Create assembling and linking script"));
00537     layout2->addWidget(link_group);
00538     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00539 
00540     QVButtonGroup *exec_group = new QVButtonGroup(i18n("Executable Generation"), this);
00541     new FlagCheckBox(exec_group, controller,
00542                      "-Xs",  i18n("Strip the symbols from the executable"));
00543     new FlagCheckBox(exec_group, controller,
00544                      "-XS",  i18n("Link with static units"));
00545     new FlagCheckBox(exec_group, controller,
00546                      "-XX",  i18n("Link with smartlinked units"));
00547     new FlagCheckBox(exec_group, controller,
00548                      "-XD",  i18n("Link with dynamic libraries"));
00549     new FlagCheckBox(exec_group, controller,
00550                      "-Xc",  i18n("Link with the C library"));
00551     layout2->addWidget(exec_group);
00552     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00553     layout->addSpacing(10);
00554 
00555     FlagListEdit *led = new FlagListEdit(this, ":", listController, "-k", i18n("Options passed to the linker (delimited by \":\"):"));
00556     layout->addWidget(led);
00557     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00558 
00559     layout->addStretch();
00560 }
00561 
00562 LinkerTab::~LinkerTab( )
00563 {
00564     delete controller;
00565     delete listController;
00566 }
00567 
00568 void LinkerTab::readFlags( QStringList * str )
00569 {
00570     controller->readFlags(str);
00571     listController->readFlags(str);
00572 }
00573 
00574 void LinkerTab::writeFlags( QStringList * str )
00575 {
00576     controller->writeFlags(str);
00577     listController->writeFlags(str);
00578 }
00579 
00580 MiscTab::MiscTab( QWidget * parent, const char * name )
00581     : QWidget(parent, name), controller(new FlagCheckBoxController()),
00582     radioController(new FlagRadioButtonController()),
00583     pathController(new FlagPathEditController()),
00584     editController(new FlagEditController())
00585 {
00586     QBoxLayout *layout = new QVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
00587     layout->setAutoAdd(true);
00588 
00589     new FlagCheckBox(this, controller,
00590                      "-B", i18n("Recompile all used units"));
00591     new FlagCheckBox(this, controller,
00592                      "-n", i18n("Do not read default configuration file"));
00593     new FlagPathEdit(this, "", pathController,
00594                      "@", i18n("Compiler configuration file:"), KFile::File);
00595     new FlagSpinEdit(this, 1, 1000, 1, 50, editController,
00596                     "-Se", i18n("Stop after the error:"));
00597     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00598     layout->addSpacing(10);
00599 
00600     QVButtonGroup *browser_group = new QVButtonGroup(i18n("Browser Info"), this);
00601     QRadioButton *m_defaultBrowser = new QRadioButton(i18n("No browser info"), browser_group);
00602     m_defaultBrowser->setChecked(true);
00603     new FlagRadioButton(browser_group, radioController,
00604                      "-b", i18n("Global browser info"));
00605     new FlagRadioButton(browser_group, radioController,
00606                      "-bl", i18n("Global and local browser info"));
00607     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00608     layout->addSpacing(10);
00609 
00610     QVButtonGroup *target_group = new QVButtonGroup(i18n("Target OS"), this);
00611     QRadioButton *m_defaultTarget = new QRadioButton(i18n("Default"), target_group);
00612     m_defaultTarget->setChecked(true);
00613     new FlagRadioButton(target_group, radioController,
00614                      "-TGO32V1", i18n("DOS and version 1 of the DJ DELORIE extender"));
00615     new FlagRadioButton(target_group, radioController,
00616                      "-TGO32V2", i18n("DOS and version 2 of the DJ DELORIE extender"));
00617     new FlagRadioButton(target_group, radioController,
00618                      "-TLINUX",  i18n("Linux"));
00619     new FlagRadioButton(target_group, radioController,
00620                      "-TOS2", i18n("OS/2 (2.x) using the EMX extender"));
00621     new FlagRadioButton(target_group, radioController,
00622                      "-TWIN32", i18n("WINDOWS 32 bit"));
00623     new FlagRadioButton(target_group, radioController,
00624                      "-TSUNOS", i18n("SunOS/Solaris"));
00625     new FlagRadioButton(target_group, radioController,
00626                      "-TBEOS", i18n("BeOS"));
00627     QApplication::sendPostedEvents(this, QEvent::ChildInserted);
00628     layout->addSpacing(10);
00629 
00630     layout->addStretch();
00631 }
00632 
00633 MiscTab::~ MiscTab( )
00634 {
00635     delete controller;
00636     delete pathController;
00637     delete radioController;
00638     delete editController;
00639 }
00640 
00641 void MiscTab::readFlags( QStringList * str )
00642 {
00643     controller->readFlags(str);
00644     radioController->readFlags(str);
00645     pathController->readFlags(str);
00646     editController->readFlags(str);
00647 }
00648 
00649 void MiscTab::writeFlags( QStringList * str )
00650 {
00651     controller->writeFlags(str);
00652     radioController->writeFlags(str);
00653     pathController->writeFlags(str);
00654     editController->writeFlags(str);
00655 }
00656 
00657 #include "optiontabs.moc"
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 00:03:48 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003