KDevelop API Documentation

languages/pascal/compiler/fpcoptions/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.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Oct 6 17:39:04 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003