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"