1
#include "aktionConf.h"
6
#include <kfiledialog.h>
7
#include <kmessagebox.h>
10
#include <qlineedit.h>
11
#include <qcheckbox.h>
12
#include <qradiobutton.h>
13
#include <qbuttongroup.h>
15
#include <qgroupbox.h>
16
#include <qpushbutton.h>
19
#include <qcombobox.h>
23
Setup::Setup( QWidget *parent, const char *name )
24
: QTabDialog( parent, name, true )
26
setCaption( i18n("aKtion! Setup" ));
28
config = kapp->config();
30
addTab( audio(), i18n("Audio" ));
31
addTab( color(), i18n("Color") );
32
addTab( scaling(), i18n("Scaling" ));
33
addTab( capture(), i18n("Capture" ));
34
addTab( others(), i18n("Others" ));
36
setCancelButton( i18n("&Cancel") );
37
connect( this, SIGNAL(cancelButtonPressed()), SLOT(quit()) );
39
setOkButton( i18n("&OK" ));
40
connect( this, SIGNAL(applyButtonPressed()), SLOT(save()) );
43
QWidget *Setup::audio()
45
QWidget *base = new QWidget( this, "Audio" );
46
config->setGroup("audio");
48
QBoxLayout *l = new QVBoxLayout(base, 10, 0);
50
checkBox[0] = new QCheckBox( base );
51
checkBox[0]->setText( i18n("Audio enable") );
52
checkBox[0]->setMinimumSize( checkBox[0]->sizeHint() );
53
checkBox[0]->setChecked(config->readBoolEntry("enable"));
54
l->addWidget( checkBox[0] );
56
checkBox[1] = new QCheckBox( base );
57
checkBox[1]->setText( i18n("Skip frames for audio sync") );
58
checkBox[1]->setMinimumSize( checkBox[1]->sizeHint() );
59
checkBox[1]->setChecked(config->readBoolEntry("audioSync"));
60
l->addWidget( checkBox[1] );
62
checkBox[8] = new QCheckBox( base );
63
checkBox[8]->setText( i18n("Show volume slider") );
64
checkBox[8]->setMinimumSize( checkBox[8]->sizeHint() );
65
checkBox[8]->setChecked(config->readBoolEntry("showVolumeSlider"));
66
l->addWidget( checkBox[8] );
68
label[0] = new QLabel( base );
69
label[0]->setText( i18n("Initial volume (0-100):" ));
70
label[0]->setMinimumSize( label[0]->sizeHint() );
71
l->addWidget( label[0] );
73
spin[0] = new QSpinBox( base );
74
spin[0]->setRange(0,100);
75
spin[0]->setValue(config->readNumEntry("audioInitialVolume"));
76
spin[0]->setMinimumSize( spin[0]->sizeHint() );
77
spin[0]->setFixedWidth(50);
78
QBoxLayout *l1 = new QHBoxLayout();
80
l1->addWidget( spin[0] );
89
QWidget *Setup::color()
91
QWidget *base = new QWidget( this, "Color" );
92
config->setGroup("color");
94
QBoxLayout *l = new QVBoxLayout(base,10,0);
96
grupo[0] = new QGroupBox(base);
97
grupo[0]->setTitle( i18n("Color mapping (non TrueColor displays)"));
99
QBoxLayout *l1 = new QVBoxLayout(grupo[0],10,0);
101
botonRadio[0] = new QRadioButton( grupo[0] );
102
botonRadio[0]->setText( i18n("TrueColor to 322 (static color)") );
103
botonRadio[0]->setMinimumSize( botonRadio[0]->sizeHint() );
105
l1->addWidget(botonRadio[0]);
107
botonRadio[1] = new QRadioButton( grupo[0] );
108
botonRadio[1]->setText( i18n("Color lookup table") );
109
botonRadio[1]->setMinimumSize( botonRadio[1]->sizeHint() );
110
l1->addWidget(botonRadio[1]);
112
label[1] = new QLabel( grupo[0] );
113
label[1]->setText( i18n("Numer of frames to look ahead:" ));
114
label[1]->setMinimumSize(label[1]->sizeHint());
116
lined[0] = new QLineEdit( grupo[0] );
117
lined[0]->setText(config->readEntry("colorAhead"));
118
lined[0]->setMinimumSize( lined[0]->sizeHint() );
119
lined[0]->setFixedWidth( 40 );
121
QBoxLayout *l2 = new QHBoxLayout();
124
l2->addWidget( label[1] );
126
l2->addWidget( lined[0] );
129
botonRadio[2] = new QRadioButton( grupo[0] );
130
botonRadio[2]->setText( i18n("TrueColor to grayscale") );
131
botonRadio[2]->setMinimumSize(botonRadio[2]->sizeHint());
132
l1->addWidget(botonRadio[2]);
134
botonRadio[3] = new QRadioButton( grupo[0] );
135
botonRadio[3]->setText( i18n("None") );
136
botonRadio[3]->setMinimumSize(botonRadio[3]->sizeHint());
137
l1->addWidget(botonRadio[3]);
139
botones[0] = new QButtonGroup( base );
141
botones[0]->insert(botonRadio[0]);
142
botones[0]->insert(botonRadio[1]);
143
botones[0]->insert(botonRadio[2]);
144
botones[0]->insert(botonRadio[3]);
145
// botones[0]->setButton(config->readNumEntry("colorMapping"));
146
/* patch for Qt 1.32 */
147
botonRadio[config->readNumEntry("colorMapping")]->setChecked(true);
148
connect(botones[0], SIGNAL(clicked(int)), SLOT(actualizeDialog1(int)) );
149
if (config->readNumEntry("colorMapping")!=1)
151
label[1]->setEnabled(false);
152
lined[0]->setEnabled(false);
155
l->addWidget(grupo[0]);
158
label[2] = new QLabel( base );
159
label[2]->setText( i18n("Gamma of display:" ));
160
label[2]->setMinimumSize(label[2]->sizeHint());
161
l->addWidget(label[2]);
163
lined[1] = new QLineEdit( base );
164
lined[1]->setText(config->readEntry("gammaDisp"));
165
lined[1]->setMinimumSize(lined[1]->sizeHint());
166
l->addWidget(lined[1]);
174
QWidget *Setup::scaling()
176
QWidget *base = new QWidget( this, "Scaling" );
177
config->setGroup("scaling");
179
QBoxLayout *l = new QVBoxLayout(base, 10);
181
label[3] = new QLabel( base );
182
label[3]->setText( i18n("Display scale" ));
183
label[3]->setMinimumSize( label[3]->sizeHint() );
184
l->addWidget(label[3]);
186
combo[0] = new QComboBox( base );
187
combo[0]->insertItem( i18n("Original size") );
188
combo[0]->insertItem( i18n("Half size") );
189
combo[0]->insertItem( i18n("Double size") );
190
combo[0]->insertItem( i18n("Maximized") );
191
combo[0]->insertItem( i18n("Full screen") );
192
combo[0]->setCurrentItem(config->readNumEntry("scale"));
193
combo[0]->setMinimumSize( combo[0]->sizeHint() );
194
l->addWidget(combo[0]);
196
botones[2] = new QButtonGroup( base );
197
botones[2]->setTitle( i18n("Full screen") );
199
QBoxLayout *l1 = new QVBoxLayout(botones[2], 10, 0);
202
checkBox[9] = new QCheckBox( botones[2] );
203
checkBox[9]->setText( i18n("Use XFree86-VidModeExtensions (if available)") );
204
checkBox[9]->setMinimumSize( checkBox[9]->sizeHint() );
205
checkBox[9]->setChecked(config->readBoolEntry("usevm"));
206
l1->addWidget( checkBox[9] );
208
checkBox[10] = new QCheckBox( botones[2] );
209
checkBox[10]->setText( i18n("Grab the mouse") );
210
checkBox[10]->setMinimumSize( checkBox[10]->sizeHint() );
211
checkBox[10]->setChecked(config->readBoolEntry("grabmouse"));
212
l1->addWidget( checkBox[10] );
214
l->addWidget( botones[2] );
222
QWidget *Setup::capture()
224
QWidget *base = new QWidget( this, "Capture" );
225
config->setGroup("capture");
227
QBoxLayout *l = new QVBoxLayout(base, 10);
229
label[7] = new QLabel( base );
230
label[7]->setText( i18n("Output file format:" ));
231
label[7]->setMinimumSize( label[7]->sizeHint() );
232
l->addWidget(label[7]);
234
QStrList formats=QImage::outputFormats();
235
combo[1] = new QComboBox( base );
236
combo[1]->insertStrList( &formats );
237
QString configFormat;
239
configFormat=config->readEntry("outputFormat");
240
combo[1]->setCurrentItem(c);
241
while ( combo[1]->currentText() != configFormat )
244
combo[1]->setCurrentItem(c);
246
combo[1]->setMinimumSize( combo[1]->sizeHint() );
247
l->addWidget(combo[1]);
249
label[8] = new QLabel( base );
250
label[8]->setText( i18n("Output file directory:" ));
251
label[8]->setMinimumSize( label[8]->sizeHint() );
252
l->addWidget(label[8]);
254
QBoxLayout *l2 = new QHBoxLayout();
257
lined[5] = new QLineEdit( base );
258
lined[5]->setText( config->readEntry("outputDir"));
259
lined[5]->setMinimumSize( lined[5]->sizeHint() );
260
l2->addWidget( lined[5] );
262
dirButton[1] = new QPushButton( base );
263
dirButton[1]->setText("...");
264
dirButton[1]->setFixedSize( dirButton[1]->sizeHint() );
265
l2->addWidget( dirButton[1] );
266
connect( dirButton[1], SIGNAL(clicked()), SLOT(getCaptureDir()) );
268
label[9] = new QLabel( base );
269
label[9]->setText( i18n("Press 'c' during playback to capture a single frame." ));
270
label[9]->setMinimumSize( label[9]->sizeHint() );
271
l->addWidget(label[9]);
279
QWidget *Setup::others()
281
QWidget *base = new QWidget( this, "Others" );
282
config->setGroup("others");
284
QBoxLayout *l = new QVBoxLayout(base, 10, 0);
286
botones[1] = new QButtonGroup( base );
287
botones[1]->setTitle( i18n("Video loading") );
288
//botones[1]->setMinimumSize(10,10,max,90);
290
QBoxLayout *l1 = new QVBoxLayout(botones[1], 10, 0);
293
botonRadio[4] = new QRadioButton( botones[1] );
294
botonRadio[4]->setText( i18n("Preload animation into memory") );
295
botonRadio[4]->setMinimumSize( botonRadio[4]->sizeHint() );
296
l1->addWidget( botonRadio[4] );
298
botonRadio[5] = new QRadioButton( botones[1] );
299
botonRadio[5]->setText( i18n("Preload and uncompress animation") );
300
botonRadio[5]->setMinimumSize( botonRadio[5]->sizeHint() );
301
l1->addWidget( botonRadio[5] );
303
botonRadio[6] = new QRadioButton( botones[1] );
304
botonRadio[6]->setText( i18n("Read each sector only when needed") );
305
botonRadio[6]->setMinimumSize( botonRadio[6]->sizeHint() );
306
l1->addWidget( botonRadio[6] );
308
// botones[1]->setButton( config->readNumEntry("loading") );
309
/* patch for Qt 1.32 */
310
botonRadio[config->readNumEntry("loading")+4]->setChecked(true);
311
connect(botones[1], SIGNAL(clicked(int)), SLOT(actualizeDialog(int)) );
313
l->addWidget( botones[1] );
316
checkBox[3] = new QCheckBox( base );
317
checkBox[3]->setText( i18n("Use X11 shared memory") );
318
checkBox[3]->setMinimumSize( checkBox[3]->sizeHint() );
319
checkBox[3]->setChecked(config->readBoolEntry("x11shared"));
320
if (config->readNumEntry("loading")==1)
321
checkBox[3]->setEnabled(false);
322
l->addWidget( checkBox[3] );
324
checkBox[4] = new QCheckBox( base );
325
checkBox[4]->setText( i18n("Use X11 multi buffering") );
326
checkBox[4]->setMinimumSize( checkBox[4]->sizeHint() );
327
checkBox[4]->setChecked(config->readBoolEntry("multiBuffer"));
328
l->addWidget( checkBox[4] );
330
checkBox[5] = new QCheckBox( base );
331
checkBox[5]->setText( i18n("Use Pixmap instead of Image in X11") );
332
checkBox[5]->setMinimumSize( checkBox[5]->sizeHint() );
333
checkBox[5]->setChecked(config->readBoolEntry("pixmap"));
334
l->addWidget( checkBox[5] );
336
label[7] = new QLabel( base );
337
label[7]->setMinimumSize(10,90,max,20);
338
label[7]->setText( i18n("X11 Visual of class:" ));
339
combo[0] = new QComboBox( base );
340
combo[0]->setMinimumSize(10,110,150,20);
341
combo[0]->insertItem("(default)");
342
combo[0]->insertItem("Static gray");
343
combo[0]->insertItem("Gray scale");
344
combo[0]->insertItem("Static color");
345
combo[0]->insertItem("Pseudo color");
346
combo[0]->insertItem("True color");
347
combo[0]->insertItem("Direct color");
348
combo[0]->setCurrentItem(config->readNumEntry("visualClass"));
350
label[4] = new QLabel( base );
351
label[4]->setText( i18n("Initial directory:" ));
352
label[4]->setMinimumSize( label[4]->sizeHint() );
353
l->addWidget( label[4] );
355
QBoxLayout *l2 = new QHBoxLayout();
358
lined[3] = new QLineEdit( base );
359
lined[3]->setText( config->readEntry("initialDirectory"));
360
lined[3]->setMinimumSize( lined[3]->sizeHint() );
361
l2->addWidget( lined[3] );
363
dirButton[0] = new QPushButton( base );
364
dirButton[0]->setText("...");
365
dirButton[0]->setFixedSize( dirButton[0]->sizeHint() );
366
l2->addWidget( dirButton[0] );
367
connect( dirButton[0], SIGNAL(clicked()), SLOT(getDir()) );
369
checkBox[6] = new QCheckBox( base );
370
checkBox[6]->setText( i18n("Loop animation") );
371
checkBox[6]->setMinimumSize( checkBox[6]->sizeHint() );
372
checkBox[6]->setChecked(config->readBoolEntry("loop"));
373
l->addWidget( checkBox[6] );
375
checkBox[7] = new QCheckBox( base );
376
checkBox[7]->setText( i18n("Automatically start playing video") );
377
checkBox[7]->setMinimumSize( checkBox[7]->sizeHint() );
378
checkBox[7]->setChecked(config->readBoolEntry("autoplay"));
379
l->addWidget( checkBox[7] );
381
label[5] = new QLabel( base );
382
label[5]->setText( i18n("Extra XAnim parameters:" ));
383
label[5]->setMinimumSize( label[5]->sizeHint() );
384
l->addWidget( label[5] );
386
lined[2] = new QLineEdit( base );
387
lined[2]->setText( config->readEntry("extras"));
388
lined[2]->setMinimumSize( lined[2]->sizeHint() );
389
l->addWidget( lined[2] );
391
label[6] = new QLabel( base );
392
label[6]->setText( i18n("xanim executable:" ));
393
label[6]->setMinimumSize( label[6]->sizeHint() );
394
l->addWidget( label[6] );
396
QBoxLayout *l3 = new QHBoxLayout();
399
lined[4] = new QLineEdit( base );
400
lined[4]->setText( config->readEntry("executable"));
401
lined[4]->setMinimumSize( lined[4]->sizeHint() );
402
l3->addWidget( lined[4] );
404
executableButton = new QPushButton( base );
405
executableButton->setText("...");
406
executableButton->setFixedSize( executableButton->sizeHint() );
407
l3->addWidget( executableButton );
408
connect( executableButton, SIGNAL(clicked()), SLOT(getXanimExecutable()) );
420
config->setGroup("audio");
421
config->writeEntry("enable",checkBox[0]->isChecked() );
422
config->writeEntry("audioSync",checkBox[1]->isChecked() );
423
config->writeEntry("showVolumeSlider",checkBox[8]->isChecked() );
424
config->writeEntry("audioInitialVolume",spin[0]->value() );
426
config->setGroup("color");
427
config->writeEntry("colorAhead", lined[0]->text() );
428
if (botonRadio[0]->isChecked()) config->writeEntry("colorMapping", 0);
429
if (botonRadio[1]->isChecked()) config->writeEntry("colorMapping", 1);
430
if (botonRadio[2]->isChecked()) config->writeEntry("colorMapping", 2);
431
if (botonRadio[3]->isChecked()) config->writeEntry("colorMapping", 3);
432
config->writeEntry("gammaDisp",lined[1]->text() );
434
config->setGroup("scaling");
435
config->writeEntry("scale",combo[0]->currentItem() );
436
config->writeEntry("usevm",checkBox[9]->isChecked() );
437
config->writeEntry("grabmouse",checkBox[10]->isChecked() );
439
config->setGroup("capture");
440
config->writeEntry("outputFormat",combo[1]->currentText() );
441
config->writeEntry("outputDir",lined[5]->text() );
443
config->setGroup("others");
444
if (botonRadio[4]->isChecked()) config->writeEntry("loading", 0);
445
if (botonRadio[5]->isChecked()) config->writeEntry("loading", 1);
446
if (botonRadio[6]->isChecked()) config->writeEntry("loading", 2);
447
config->writeEntry("x11shared",checkBox[3]->isChecked() );
448
config->writeEntry("multiBuffer",checkBox[4]->isChecked() );
449
config->writeEntry("pixmap",checkBox[5]->isChecked() );
450
// config->writeEntry("visualClass",combo[0]->currentItem() );
451
config->writeEntry("initialDirectory", lined[3]->text() );
452
config->writeEntry("loop",checkBox[6]->isChecked() );
453
config->writeEntry("extras",lined[2]->text());
454
config->writeEntry("executable",lined[4]->text());
455
config->writeEntry("autoplay",checkBox[7]->isChecked() );
469
s=KFileDialog::getExistingDirectory("",0L);
471
lined[3]->setText(s);
474
void Setup::getCaptureDir()
478
s=KFileDialog::getExistingDirectory("",0L);
480
lined[5]->setText(s);
483
void Setup::getXanimExecutable()
485
KURL url = KFileDialog::getOpenURL("","*|All files (*)",0L,i18n("xanim executable:" ));
490
if( !url.isLocalFile() )
492
KMessageBox::sorry( 0L, i18n( "Only local executables allowed." ) );
496
lined[4]->setText(url.path());
499
void Setup::actualizeDialog(int rButton)
502
checkBox[3]->setEnabled(false);
504
checkBox[3]->setEnabled(true);
507
void Setup::actualizeDialog1(int rButton)
511
label[1]->setEnabled(true);
512
lined[0]->setEnabled(true);
516
label[1]->setEnabled(false);
517
lined[0]->setEnabled(false);
521
#include "aktionConf.moc"