Fork me on GitHub
2.15.20
FGx
A cross-platform launcher for FlightGear
renderingwidget.cpp
Go to the documentation of this file.
1 // -=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-
2 // FGx FlightGear Launcher // renderingwidget.cpp
3 // -=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-
4 // (c) 2010-2012
5 // Yves Sablonier, Pete Morgan
6 // Geoff McLane
7 // GNU GPLv2, see main.cpp and shipped licence.txt for further information
8 
9 #include <QString>
10 #include <QStringList>
11 #include <QVariant>
12 
13 #include <QHBoxLayout>
14 #include <QVBoxLayout>
15 #include <QGroupBox>
16 #include <QRadioButton>
17 
18 #include "renderingwidget.h"
19 #include "xwidgets/xgroupboxes.h"
20 #include "utilities/helpers.h"
21 
23  QWidget(parent)
24 {
25  mainObject = mOb;
26 
27  //* Main Layout
28  QVBoxLayout *mainLayout = new QVBoxLayout();
29  setLayout(mainLayout);
30  mainLayout->setSpacing(0);
31  //int m = 10;
32  //mainLayout->setContentsMargins(0,0,0,0);
33 
34 
35 
36 
37  //** MiddleLayout
38  QHBoxLayout *middleLayout = new QHBoxLayout();
39  mainLayout->addLayout(middleLayout);
40  middleLayout->setSpacing(10);
41  //int mm = 10;
42  //middleLayout->setContentsMargins(mm,mm,mm,mm);
43 
44 
45  //====================================================
46  //== Left Layout
47  //====================================================
48 
49  QVBoxLayout *leftLayout = new QVBoxLayout();
50  leftLayout->setSpacing(10);
51  middleLayout->addLayout(leftLayout, 2);
52 
53  //==================================================================
54  //= Screen Options
55 
56  QHBoxLayout *screenLayout = new QHBoxLayout();
57  screenLayout->setSpacing(10);
58  leftLayout->addLayout(screenLayout);
59 
60  XGroupVBox *grpBoxScreen = new XGroupVBox(tr("Screen Options"));
61  screenLayout->addWidget(grpBoxScreen);
62  grpBoxScreen->setWhatsThis(tr("<b>Screen Options</b><br><br>Set preferred size for the FlightGear window."));
63 
64  //= Initial Size
65  grpBoxScreen->addWidget(new QLabel("Initial Screen Size"));
66  comboScreenSize = new QComboBox();
67  comboScreenSize->setSizeAdjustPolicy(QComboBox::AdjustToContents);
68  comboScreenSize->addItem("- System Default -", "0x0");
69  comboScreenSize->addItem("800 x 600 (4:3)", "800x600");
70  comboScreenSize->addItem("1024 x 768 (4:3)", "1024x768");
71  comboScreenSize->addItem("1280 x 720 (16:9)", "1280x720");
72  comboScreenSize->addItem("1280 x 800 (16:10)", "1280x800");
73  comboScreenSize->addItem("1280 x 960 (4:3)", "1280x960");
74  comboScreenSize->addItem("1280 x 1024 (5:4)", "1280x1024");
75  comboScreenSize->addItem("1366 x 768 (16:9)", "1366x768");
76  comboScreenSize->addItem("1440 x 900 (16:10)", "1440x900");
77  comboScreenSize->addItem("1600 x 900 (16:9)", "1600x900");
78  comboScreenSize->addItem("1680 x 1050 (16:10)", "1680x1050");
79  comboScreenSize->addItem("1920 x 1200 (16:10)", "1920x1200");
80  grpBoxScreen->addWidget(comboScreenSize);
81  comboScreenSize->setCurrentIndex(0); // select default
82  connect(comboScreenSize, SIGNAL(currentIndexChanged(int)),
83  this, SLOT(on_screensize())
84  );
85 
86  // set screen size manually, set input mask to 4 digits and numbers only
87  QHBoxLayout *screenSizeBox = new QHBoxLayout();
88  //lineEditScreenSizeWLabel = new QLabel("Width: ");
89  lineEditScreenSizeW = new QLineEdit(this);
90  lineEditScreenSizeW->setText("");
91  lineEditScreenSizeW->setMaxLength(4);
92  lineEditScreenSizeW->setInputMask("9999");
93  connect(lineEditScreenSizeW, SIGNAL(textChanged(QString)), this, SLOT(on_screensize_changed(QString)) );
94  lineEditScreenSizeW->setVisible(false); // hide
95 
96  //lineEditScreenSizeHLabel = new QLabel("Height: ");
97  lineEditScreenSizeH = new QLineEdit(this);
98  lineEditScreenSizeH->setText("");
99  lineEditScreenSizeH->setMaxLength(4);
100  lineEditScreenSizeH->setInputMask("9999");
101  connect(lineEditScreenSizeH, SIGNAL(textChanged(QString)), this, SLOT(on_screensize_changed(QString)) );
102  lineEditScreenSizeH->setVisible(false); // hide
103 
104  //screenSizeBox->addWidget(lineEditScreenSizeWLabel, 1);
105  screenSizeBox->addWidget(lineEditScreenSizeW, 1);
106  //screenSizeBox->addWidget(lineEditScreenSizeHLabel, 1);
107  screenSizeBox->addWidget(lineEditScreenSizeH, 1);
108  grpBoxScreen->addLayout(screenSizeBox);
109 
110  //= Full Screen
111  checkBoxFullScreenStartup = new QCheckBox(tr("Fullscreen mode"));
112  grpBoxScreen->addWidget(checkBoxFullScreenStartup);
113  checkBoxFullScreenStartup->setWhatsThis(tr("<b>Full Screen</b><br><br>Will start FlightGear in Full Screen Mode (ESC to cancel mode)."));
114  connect(checkBoxFullScreenStartup, SIGNAL(clicked()), this, SLOT(on_fullscreen_changed()) );
115 
116  //= Disable Splash
117  checkBoxDisableSplashScreen = new QCheckBox(tr("Disable Splash Screen"));
118  grpBoxScreen->addWidget(checkBoxDisableSplashScreen);
119  connect(checkBoxDisableSplashScreen, SIGNAL(clicked()), this, SLOT(on_checkbox_splash_screen()));
120  checkBoxDisableSplashScreen->setWhatsThis(tr("<b>Disable Splash Screen</b><br><br>Disables FlightGear startup screen."));
121 
122  //= Native menubar switch osx
123  checkBoxUseNativeMenu = new QCheckBox(tr("Use native menubar (OSX only)"));
124  grpBoxScreen->addWidget(checkBoxUseNativeMenu);
125  connect(checkBoxUseNativeMenu, SIGNAL(clicked()), this, SLOT(on_checkbox_native_menubar()));
126  checkBoxUseNativeMenu->setWhatsThis(tr("<b>Use native menu</b><br><br>Using native menubar in OSX instead of in-window one."));
127 
128  // switch off for other os
129  if(MainObject::runningOs() != OS_MAC){
130  checkBoxUseNativeMenu->setEnabled(false);
131  }
132 
133  QVBoxLayout *screenMatLayout = new QVBoxLayout();
134  screenMatLayout->setSpacing(10);
135  screenLayout->addLayout(screenMatLayout);
136 
137  //==================================================================
138  //= Materials File
139  XGroupVBox *grpMaterials = new XGroupVBox(tr("Materials"));
140  screenMatLayout->addWidget(grpMaterials);
141  grpMaterials->setWhatsThis(tr("<b>Materials</b><br><br>Choose a materials file when you want \
142  to switch to another texture set."));
143 
144  comboMaterials = new QComboBox();
145  comboMaterials->addItem("default", "default");
146  comboMaterials->addItem("regions", "regions");
147  comboMaterials->addItem("dds", "dds");
148  comboMaterials->addItem("custom", "custom");
149  connect(comboMaterials, SIGNAL(currentIndexChanged(int)), this, SLOT(set_materials()));
150 
151  pathMaterials = new QLineEdit("");
152  pathMaterials->setFixedSize(QSize(240,20));
153  pathMaterials->setDisabled(true);
154  connect(pathMaterials, SIGNAL(textChanged(QString)), this, SLOT(set_custom_materials(QString)) );
155 
156  QHBoxLayout *materialsPathBox = new QHBoxLayout();
157  materialsPathBox->addWidget(pathMaterials);
158 
159  grpMaterials->addWidget(comboMaterials);
160  grpMaterials->addLayout(materialsPathBox);
161 
162  //====================================================
163  //== Shader Quality
164 
165  grpShaderQuality = new XGroupGBox("Shader Quality Level");
166  screenMatLayout->addWidget(grpShaderQuality);
167 
168  int row = 0;
169 
170  row++;
171  //= Shader quality (range 0-5)
172  sliderShaderQuality = new QSlider(Qt::Horizontal);
173  sliderShaderQuality->setRange(0,5);
174  sliderShaderQuality->setTickPosition(QSlider::TicksLeft);
175  sliderShaderQuality->setTickInterval(1);
176  sliderShaderQuality->setPageStep(6);
177  sliderLabelShaderQuality = new QLabel("0");
178  sliderLabelShaderQuality->setFixedWidth(10);
179  sliderLabelShaderQuality->setAlignment(Qt::AlignRight);
180  int sliderShaderQualityPosition = mainObject->X->getx("--prop:/sim/rendering/shaders/quality-level-internal=", true).toInt();
181  sliderShaderQuality->setValue(sliderShaderQualityPosition);
182  connect(sliderShaderQuality,SIGNAL(valueChanged(int)),this,SLOT(set_shader_quality(int)));
185 
186  row++;
187  //= Atmospheric light scattering
188  checkBoxSkydome = new QCheckBox(tr("Atmospheric lighting"));
190  connect(checkBoxSkydome, SIGNAL(clicked()), this, SLOT(set_skydome()));
191  checkBoxSkydome->setWhatsThis(tr("<b>Atmospheric light scattering</b><br><br>This shader is experimental and will disable other shaders."));
192 
193 
194  //====================================================
195  //== 3d Clouds
196 
197  grp3dClouds = new XGroupGBox("3d Clouds");
198  grp3dClouds->setCheckable(true);
199  leftLayout->addWidget(grp3dClouds);
200 
201  row = 0;
202  labelVisibility = new QLabel("Visibility (meters)");
203  grp3dClouds->addWidget(labelVisibility, row, 1, 1, 1);
204 
205  row++;
206  sliderVisibility = new QSlider(Qt::Horizontal);
207  sliderVisibility->setRange(1,90);
208  sliderVisibility->setTickPosition(QSlider::TicksLeft);
209  sliderVisibility->setTickInterval(1);
210  sliderVisibility->setPageStep(9);
211  int sliderVisibilityPosition = mainObject->X->getx("--prop:/sim/rendering/clouds3d-vis-range=", true).toInt()/500;
212  sliderVisibility->setValue(sliderVisibilityPosition);
213  grp3dClouds->addWidget(sliderVisibility, row, 1, 1, 1);
214  sliderLabelVisValue = new QLabel("0");
215  connect(sliderVisibility,SIGNAL(valueChanged(int)),this,SLOT(set_vis_value(int)));
216  grp3dClouds->addWidget(sliderLabelVisValue, row, 2, 1, 1);
217 
218  row++;
219  labelDensity = new QLabel("Density (0.0 - 1.0)");
220  grp3dClouds->addWidget(labelDensity, row, 1, 1, 1);
221 
222  row++;
223  sliderDensity = new QSlider(Qt::Horizontal);
224  sliderDensity->setRange(0,100);
225  sliderDensity->setTickPosition(QSlider::TicksLeft);
226  sliderDensity->setTickInterval(10);
227  sliderDensity->setPageStep(10);
228  double sliderDensityPosition = mainObject->X->getx("--prop:/sim/rendering/clouds3d-density=", true).toDouble()*100.0;
229  int sliderDensityPositionInt = static_cast<int>(sliderDensityPosition);
230  sliderDensity->setValue(sliderDensityPositionInt);
231  grp3dClouds->addWidget(sliderDensity, row, 1, 1, 1);
232  sliderLabelDenValue = new QLabel("0");
233  sliderLabelDenValue->setFixedWidth(50);
234  connect(sliderDensity,SIGNAL(valueChanged(int)),this,SLOT(set_den_value(int)));
235  grp3dClouds->addWidget(sliderLabelDenValue, row, 2, 1, 1);
236 
237  connect(grp3dClouds, SIGNAL(toggled(bool)), this, SLOT(set_3dclouds_enabled()));
238 
239 
240  //====================================================
241  //== Right Layout
242  //====================================================
243  QVBoxLayout *rightLayout = new QVBoxLayout();
244  middleLayout->addLayout(rightLayout, 1);
245 
246  //====================================================
247  //== Anti Aliasing
248 
249  grpAntiAliasing = new XGroupHBox("Anti-aliasing");
250  grpAntiAliasing->setCheckable(true);
251  rightLayout->addWidget(grpAntiAliasing);
252 
253  comboAntiAliasing = new QComboBox();
254  comboAntiAliasing->addItem("1", "1");
255  comboAntiAliasing->addItem("2", "2");
256  comboAntiAliasing->addItem("3", "3");
257  comboAntiAliasing->addItem("4", "4");
258  comboAntiAliasing->addItem("5", "5");
259  comboAntiAliasing->addItem("6", "6");
260  comboAntiAliasing->addItem("7", "7");
261  comboAntiAliasing->addItem("8", "8");
262  comboAntiAliasing->setEditable(true);
264 
265  connect(grpAntiAliasing, SIGNAL(toggled(bool)), this, SLOT(set_anti_aliasing()));
266  connect(comboAntiAliasing, SIGNAL(currentIndexChanged(int)), this, SLOT(set_anti_aliasing_strength()));
267 
268 
269  //====================================================
270  //== Deferred Rendering (Rembrandt)
271 
272  grpRembrandt = new XGroupGBox("Deferred Rendering (Rembrandt)");
273  rightLayout->addWidget(grpRembrandt);
274  grpRembrandt->setCheckable(true);
275 
276  int rrow = 0;
277  labelMapsize = new QLabel("Graphics card memory consumption");
278  grpRembrandt->addWidget(labelMapsize, rrow, 1, 1, 1);
279 
280  rrow++;
281  comboShadowMapsize = new QComboBox();
282  //comboShadowMapsize->setFixedWidth(100);
283  comboShadowMapsize->addItem("1024", "1024");
284  comboShadowMapsize->addItem("2048", "2048");
285  comboShadowMapsize->addItem("4096", "4096");
286  comboShadowMapsize->addItem("8192", "8192");
287  grpRembrandt->addWidget(comboShadowMapsize, rrow, 1, 1, 1);
288 
289  rrow++;
290  labelShadowQuality = new QLabel("Rendering Quality");
291  grpRembrandt->addWidget(labelShadowQuality, rrow, 1, 1, 1);
292 
293  rrow++;
294  comboShadowQuality = new QComboBox();
295  //comboShadowQuality->setFixedWidth(100);
296  comboShadowQuality->addItem("1", "1");
297  comboShadowQuality->addItem("2", "2");
298  comboShadowQuality->addItem("3", "3");
299  comboShadowQuality->addItem("4", "4");
300  grpRembrandt->addWidget(comboShadowQuality, rrow, 1, 1, 1);
301 
302  connect(grpRembrandt, SIGNAL(toggled(bool)), this, SLOT(set_rembrandt()));
303  connect(comboShadowMapsize, SIGNAL(currentIndexChanged(int)), this, SLOT(set_rembrandt()));
304  connect(comboShadowQuality, SIGNAL(currentIndexChanged(int)), this, SLOT(set_rembrandt()));
305 
306 
307  //== Connect Settings
308  connect(this, SIGNAL(setx(QString,bool,QString)), mainObject->X, SLOT(set_option(QString,bool,QString)) );
309  connect(mainObject->X, SIGNAL(upx(QString,bool,QString)), this, SLOT(on_upx(QString,bool,QString)));
310 
311  leftLayout->addStretch(20);
312  rightLayout->addStretch(20);
313 
314  set_materials();
315 
316 
317 }
318 
319 //================================================================
320 // Emit rendering settings
321 
323 {
324  emit setx("--prop:/sim/rendering/multi-sample-buffers=", grpAntiAliasing->isChecked(), "1");
325 }
326 
328 {
329  emit setx("--prop:/sim/rendering/multi-samples=", grpAntiAliasing->isChecked(), comboAntiAliasing->currentText());
330 }
331 
333 {
334  emit setx("--prop:/sim/rendering/rembrandt/enabled=", grpRembrandt->isChecked(), "1");
335  emit setx("--prop:/sim/rendering/shadows/map-size=", grpRembrandt->isChecked(), comboShadowMapsize->currentText());
336  emit setx("--prop:/sim/rendering/shadows/num-cascades=", grpRembrandt->isChecked(), comboShadowQuality->currentText());
337 }
338 
340 {
341  emit setx("--prop:/sim/rendering/clouds3d-enable=", grp3dClouds->isChecked(), "1");
342  emit setx("--prop:/sim/rendering/clouds3d-vis-range=", grp3dClouds->isChecked(), sliderLabelVisValue->text());
343  emit setx("--prop:/sim/rendering/clouds3d-density=", grp3dClouds->isChecked(), sliderLabelDenValue->text());
344 }
345 
347 {
348  emit setx("--prop:/sim/menubar/native=", checkBoxUseNativeMenu->isChecked(), "1");
349 }
350 
351 //=====================================================
352 void RenderingWidget::on_upx( QString option, bool enabled, QString value)
353  {
354  Q_UNUSED(enabled);
355  QString valueLeft(""), valueRight(""); // locally, for screen geometry values handler only
356 
357  if(option == "--prop:/sim/rendering/multi-sample-buffers="){
358  grpAntiAliasing->setChecked(enabled);
359 
360  }else if(option == "--prop:/sim/rendering/multi-samples="){
361  comboAntiAliasing->setCurrentIndex(comboAntiAliasing->findData(value));
362 
363  }else if(option == "--prop:/sim/rendering/shaders/quality-level-internal="){
364  sliderLabelShaderQuality->setText(value);
365  int sliderShaderQualityPosition = mainObject->X->getx("--prop:/sim/rendering/shaders/quality-level-internal=", true).toInt();
366  sliderShaderQuality->setValue(sliderShaderQualityPosition);
367 
368  }else if(option == "--prop:/sim/rendering/shaders/skydome="){
369  checkBoxSkydome->setChecked(enabled);
370 
371  }else if(option == "--prop:/sim/rendering/rembrandt/enabled="){
372  grpRembrandt->setChecked(enabled);
373 
374  }else if(option == "--prop:/sim/rendering/shadows/map-size="){
375  comboShadowMapsize->setCurrentIndex(comboShadowMapsize->findData(value));
376 
377  }else if(option == "--prop:/sim/rendering/shadows/num-cascades="){
378  comboShadowQuality->setCurrentIndex(comboShadowQuality->findData(value));
379 
380  }else if(option == "--prop:/sim/rendering/clouds3d-enable="){
381  grp3dClouds->setChecked(enabled);
382 
383  }else if(option == "--prop:/sim/rendering/clouds3d-vis-range="){
384  sliderLabelVisValue->setText(value);
385 
386  }else if(option == "--prop:/sim/rendering/clouds3d-density="){
387  sliderLabelDenValue->setText(value);
388 
389  }else if(option == "--full-screen"){
390  checkBoxFullScreenStartup->setChecked(enabled);
391  comboScreenSize->setDisabled(enabled);
392 
393  }else if(option == "--geometry="){
394  comboScreenSize->setCurrentIndex(comboScreenSize->findData(value));
395  valueLeft = value.section('x', 0, 0);
396  valueRight = value.section('x', 1, 1);
397  lineEditScreenSizeW->setText(valueLeft);
398  lineEditScreenSizeH->setText(valueRight);
399 
400  }else if(option == "--disable-splash-screen"){
401  checkBoxDisableSplashScreen->setChecked(enabled);
402 
403  }else if(option == "--prop:/sim/menubar/native="){
404  checkBoxUseNativeMenu->setChecked(enabled);
405 
406  }else if(option == "--materials-file="){
407  checkBoxUseNativeMenu->setChecked(enabled);
408 
409  }
410 }
411 
412 
413 //================================================================
414 // Label helpers, put 3d clouds slider values to the labels
415 
417 {
418  sliderLabelVisValue->setText(QString::number(value*500) );
419  emit setx("--prop:/sim/rendering/clouds3d-vis-range=", true, sliderLabelVisValue->text());
420 
421  }
422 
424  {
425  sliderLabelDenValue->setText(QString::number(value*0.01) );
426  emit setx("--prop:/sim/rendering/clouds3d-density=", true, sliderLabelDenValue->text());
427 }
428 
429 //================================================================
430 // Shader Quality label helpers, put shader quality slider values to the labels
431 
433 {
434  sliderLabelShaderQuality->setText(QString::number(value));
435  emit setx("--prop:/sim/rendering/shaders/quality-level-internal=", true, sliderLabelShaderQuality->text());
436 }
437 
438 //=====================================
439 // ScreenSize combobox changed
441 {
442  QString value(""), valueLeft(""), valueRight("");
443  value = comboScreenSize->itemData(comboScreenSize->currentIndex()).toString();
444  valueLeft = value.section('x', 0, 0);
445  valueRight = value.section('x', 1, 1);
446  lineEditScreenSizeW->setText(valueLeft);
447  lineEditScreenSizeH->setText(valueRight);
448 }
449 
450 //=====================================
451 // ScreenSize changed
453 {
454 
455  QString geom = lineEditScreenSizeW->text().append("x").append(lineEditScreenSizeH->text());
456 
457  emit setx( "--geometry=",
458  true,
459  geom);
460 }
461 
462 //=====================================
463 // FullScreen changed
465 {
466  emit setx( "--enable-fullscreen", checkBoxFullScreenStartup->isChecked(), "");
467 }
468 
469 
470 //=====================================
471 // SplashScreen Changed
473 {
474  emit setx("--disable-splash-screen", checkBoxDisableSplashScreen->isChecked(), "");
475 }
476 
477 //================================================================
478 // Set Skydome Shader (Atmospheric Scattering, experimental)
480 {
481  emit setx("--prop:/sim/rendering/shaders/skydome=", checkBoxSkydome->isChecked(), "1");
482 }
483 
484 //================================================================
485 // Set Materials file
487 {
488  QString value = comboMaterials->itemData(comboMaterials->currentIndex()).toString();
489  if (value == "default") {
490  pathMaterials->setDisabled(true);
491  pathMaterials->setText("Materials/default/materials.xml");
492  emit setx("--materials-file=", true, pathMaterials->text());
493 
494  }if (value == "regions") {
495  pathMaterials->setDisabled(true);
496  pathMaterials->setText("Materials/regions/materials.xml");
497  emit setx("--materials-file=", true, pathMaterials->text());
498 
499  }if (value == "dds") {
500  pathMaterials->setDisabled(true);
501  pathMaterials->setText("Materials/dds/materials.xml");
502  emit setx("--materials-file=", true, pathMaterials->text());
503 
504  }if (value == "custom") {
505  pathMaterials->setDisabled(false);
506  emit setx("--materials-file=", true, pathMaterials->text());
507  }
508 }
509 
511 {
512  emit setx("--materials-file=", true, path);
513 }
514 
A QGroupBox with a QVBoxLyout layout.
Definition: xgroupboxes.h:19
QComboBox * comboScreenSize
QLabel * labelDensity
QLineEdit * pathMaterials
QCheckBox * checkBoxUseNativeMenu
QComboBox * comboShadowMapsize
XGroupHBox * grpBoxScreen
void setx(QString option, bool enabled, QString value)
XGroupGBox * grpShaderQuality
The MainObject is an extended QObject, and the main "controller" for FGx.
Definition: mainobject.h:66
QCheckBox * checkBoxSkydome
static int runningOs()
What OS is running.
Definition: mainobject.cpp:367
QSlider * sliderDensity
XGroupGBox * grpRembrandt
QHBoxLayout * screenSizeBox
void on_screensize_changed(QString)
QLineEdit * lineEditScreenSizeW
QLabel * labelVisibility
RenderingWidget(MainObject *mOb, QWidget *parent=0)
QLabel * sliderLabelShaderQuality
void set_custom_materials(QString path)
void set_den_value(int value)
void on_checkbox_native_menubar()
void on_checkbox_splash_screen()
QLabel * sliderLabelVisValue
A QGroupBox with a QGridLayout layout.
Definition: xgroupboxes.h:59
QComboBox * comboAntiAliasing
A QGroupBox with a QHBoxLyout layout.
Definition: xgroupboxes.h:39
QLabel * labelMapsize
void addWidget(QWidget *w, int row, int col, int row_span, int col_span)
Definition: xgroupboxes.cpp:71
void addWidget(QWidget *w)
Definition: xgroupboxes.cpp:21
void set_shader_quality(int value)
XSettingsModel * X
Definition: mainobject.h:86
QSlider * sliderShaderQuality
QLineEdit * lineEditScreenSizeH
QLabel * labelShadowQuality
QLabel * sliderLabelDenValue
void on_upx(QString option, bool enabled, QString value)
void addWidget(QWidget *w)
Definition: xgroupboxes.cpp:45
QSlider * sliderVisibility
QCheckBox * checkBoxFullScreenStartup
XGroupGBox * grp3dClouds
QComboBox * comboMaterials
void set_anti_aliasing_strength()
MainObject * mainObject
XGroupHBox * grpAntiAliasing
QComboBox * comboShadowQuality
void addLayout(QBoxLayout *lay)
Definition: xgroupboxes.cpp:27
QCheckBox * checkBoxDisableSplashScreen
QString getx(QString option)
void set_vis_value(int value)
XGroupHBox * grpMaterials