00001
00002
00003
00004
00005
00006
00007
00008
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
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
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
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
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
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"