2 // configdialog.cpp - Configuration dialog
5 // (C) 2010 Underground Software
7 // JLH = James L. Hammons <jlhamm@acm.org>
10 // --- ---------- -------------------------------------------------------------
11 // JLH 01/29/2010 Created this file
12 // JLH 06/23/2011 Added initial implementation
15 #include "configdialog.h"
17 #include "generaltab.h"
18 #include "controllertab.h"
19 #include "alpinetab.h"
23 ConfigDialog::ConfigDialog(QWidget * parent/*= 0*/): QDialog(parent)
25 tabWidget = new QTabWidget;
26 generalTab = new GeneralTab(this);
27 controllerTab1 = new ControllerTab(this);
28 controllerTab2 = new ControllerTab(this);
30 if (vjs.hardwareTypeAlpine)
31 alpineTab = new AlpineTab(this);
33 tabWidget->addTab(generalTab, tr("General"));
34 tabWidget->addTab(controllerTab1, tr("Controller #1"));
35 tabWidget->addTab(controllerTab2, tr("Controller #2"));
37 if (vjs.hardwareTypeAlpine)
38 tabWidget->addTab(alpineTab, tr("Alpine"));
40 buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
42 connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
43 connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
45 QVBoxLayout * mainLayout = new QVBoxLayout;
46 mainLayout->addWidget(tabWidget);
47 mainLayout->addWidget(buttonBox);
48 setLayout(mainLayout);
50 setWindowTitle(tr("Virtual Jaguar Settings"));
52 LoadDialogFromSettings();
53 controllerTab1->UpdateLabel(); // Now it's safe to do this... ;-)
54 controllerTab2->UpdateLabel(); // Now it's safe to do this... ;-)
57 ConfigDialog::~ConfigDialog()
61 void ConfigDialog::LoadDialogFromSettings(void)
63 generalTab->edit1->setText(vjs.jagBootPath);
64 generalTab->edit2->setText(vjs.CDBootPath);
65 generalTab->edit3->setText(vjs.EEPROMPath);
66 generalTab->edit4->setText(vjs.ROMPath);
68 generalTab->useBIOS->setChecked(vjs.useJaguarBIOS);
69 generalTab->useDSP->setChecked(vjs.DSPEnabled);
70 generalTab->useHostAudio->setChecked(vjs.audioEnabled);
72 if (vjs.hardwareTypeAlpine)
74 alpineTab->edit1->setText(vjs.alpineROMPath);
75 alpineTab->edit2->setText(vjs.absROMPath);
76 alpineTab->writeROM->setChecked(vjs.allowWritesToROM);
79 for(int i=0; i<21; i++)
81 controllerTab1->p1Keys[i] = vjs.p1KeyBindings[i];
82 controllerTab2->p1Keys[i] = vjs.p2KeyBindings[i];
86 void ConfigDialog::UpdateVJSettings(void)
88 strcpy(vjs.jagBootPath, generalTab->edit1->text().toAscii().data());
89 strcpy(vjs.CDBootPath, generalTab->edit2->text().toAscii().data());
90 strcpy(vjs.EEPROMPath, generalTab->edit3->text().toAscii().data());
91 strcpy(vjs.ROMPath, generalTab->edit4->text().toAscii().data());
93 vjs.useJaguarBIOS = generalTab->useBIOS->isChecked();
94 vjs.DSPEnabled = generalTab->useDSP->isChecked();
95 vjs.audioEnabled = generalTab->useHostAudio->isChecked();
97 if (vjs.hardwareTypeAlpine)
99 strcpy(vjs.alpineROMPath, alpineTab->edit1->text().toAscii().data());
100 strcpy(vjs.absROMPath, alpineTab->edit2->text().toAscii().data());
101 vjs.allowWritesToROM = alpineTab->writeROM->isChecked();
104 for(int i=0; i<21; i++)
106 vjs.p1KeyBindings[i] = controllerTab1->p1Keys[i];
107 vjs.p2KeyBindings[i] = controllerTab2->p1Keys[i];