//
// JLH = James Hammons <jlhamm@acm.org>
// JPM = Jean-Paul Mari <djipi.mari@gmail.com>
+// RG = Richard Goedeken
//
// Who When What
// --- ---------- ------------------------------------------------------------
// JLH 10/14/2011 Fixed possibly missing final slash in paths
// JPM 06/06/2016 Visual Studio support
// JPM 06/19/2016 Soft debugger support
+// JPM 09/ /2017 Added a Keybindings tab
+// JPM 09/03/2018 Added a Models & Bios tab
+// RG Jan./2021 Linux build fix
//
#include "configdialog.h"
-
#include "alpinetab.h"
#include "debugger/debuggertab.h"
#include "controllertab.h"
#include "controllerwidget.h"
#include "generaltab.h"
+#include "modelsbiostab.h"
+#include "keybindingstab.h"
#include "settings.h"
-ConfigDialog::ConfigDialog(QWidget * parent/*= 0*/): QDialog(parent),
- tabWidget(new QTabWidget),
- generalTab(new GeneralTab(this)),
- controllerTab1(new ControllerTab(this))
+ConfigDialog::ConfigDialog(QWidget * parent/*= 0*/) : QDialog(parent),
+tabWidget(new QTabWidget),
+generalTab(new GeneralTab(this)),
+#ifdef NEWMODELSBIOSHANDLER
+modelsbiosTab(new ModelsBiosTab),
+#endif
+controllerTab1(new ControllerTab(this)),
+keybindingsTab(new KeyBindingsTab(this))
{
// tabWidget = new QTabWidget;
// generalTab = new GeneralTab(this);
// alpineTab = new AlpineTab(this);
tabWidget->addTab(generalTab, tr("General"));
+#ifdef NEWMODELSBIOSHANDLER
+ tabWidget->addTab(modelsbiosTab, tr("Models and BIOS"));
+#endif
tabWidget->addTab(controllerTab1, tr("Controllers"));
// tabWidget->addTab(controllerTab2, tr("Controller #2"));
+ tabWidget->addTab(keybindingsTab, tr("Key Bindings"));
if (vjs.hardwareTypeAlpine || vjs.softTypeDebugger)
{
}
+// Load & Update the tabs dialog from the settings
void ConfigDialog::LoadDialogFromSettings(void)
{
-// generalTab->edit1->setText(vjs.jagBootPath);
-// generalTab->edit2->setText(vjs.CDBootPath);
- generalTab->edit3->setText(vjs.EEPROMPath);
- generalTab->edit4->setText(vjs.ROMPath);
-
- generalTab->useBIOS->setChecked(vjs.useJaguarBIOS);
- generalTab->useGPU->setChecked(vjs.GPUEnabled);
- generalTab->useDSP->setChecked(vjs.DSPEnabled);
- generalTab->useFullScreen->setChecked(vjs.fullscreen);
-// generalTab->useHostAudio->setChecked(vjs.audioEnabled);
- generalTab->useFastBlitter->setChecked(vjs.useFastBlitter);
+ // General & Keybindings tab settings
+ generalTab->GetSettings();
+ keybindingsTab->GetSettings();
+#ifdef NEWMODELSBIOSHANDLER
+ modelsbiosTab->GetSettings();
+#endif
+ // Alpine tab settings (also needed by the Debugger)
if (vjs.hardwareTypeAlpine || vjs.softTypeDebugger)
{
- QVariant v(vjs.refresh);
- alpineTab->edit1->setText(vjs.alpineROMPath);
- alpineTab->edit2->setText(vjs.absROMPath);
- alpineTab->edit3->setText(v.toString());
- alpineTab->writeROM->setChecked(vjs.allowWritesToROM);
+ alpineTab->GetSettings();
}
+ // Debugger tab settings
if (vjs.softTypeDebugger)
{
- QVariant v(vjs.nbrdisasmlines);
- //debuggerTab->edit1->setText(vjs.debuggerROMPath);
- //debuggerTab->edit2->setText(vjs.absROMPath);
- debuggerTab->edit3->setText(v.toString());
- //debuggerTab->writeROM->setChecked(vjs.allowWritesToROM
- debuggerTab->displayHWlabels->setChecked(vjs.displayHWlabels);
- debuggerTab->disasmopcodes->setChecked(vjs.disasmopcodes);
- debuggerTab->displayFullSourceFilename->setChecked(vjs.displayFullSourceFilename);
+ debuggerTab->GetSettings();
}
#ifdef _MSC_VER
}
+// Save & Update the settings from the tabs dialog
void ConfigDialog::UpdateVJSettings(void)
{
- bool ok;
-
-// strcpy(vjs.jagBootPath, generalTab->edit1->text().toAscii().data());
-// strcpy(vjs.CDBootPath, generalTab->edit2->text().toAscii().data());
- strcpy(vjs.EEPROMPath, CheckForTrailingSlash(
- generalTab->edit3->text()).toUtf8().data());
- strcpy(vjs.ROMPath, CheckForTrailingSlash(
- generalTab->edit4->text()).toUtf8().data());
-
- vjs.useJaguarBIOS = generalTab->useBIOS->isChecked();
- vjs.GPUEnabled = generalTab->useGPU->isChecked();
- vjs.DSPEnabled = generalTab->useDSP->isChecked();
- vjs.fullscreen = generalTab->useFullScreen->isChecked();
-// vjs.audioEnabled = generalTab->useHostAudio->isChecked();
- vjs.useFastBlitter = generalTab->useFastBlitter->isChecked();
+ generalTab->SetSettings();
+ keybindingsTab->SetSettings();
+#ifdef NEWMODELSBIOSHANDLER
+ modelsbiosTab->SetSettings();
+#endif
if (vjs.hardwareTypeAlpine || vjs.softTypeDebugger)
{
- strcpy(vjs.alpineROMPath, alpineTab->edit1->text().toUtf8().data());
- strcpy(vjs.absROMPath, alpineTab->edit2->text().toUtf8().data());
- vjs.refresh = alpineTab->edit3->text().toUInt(&ok, 10);
- vjs.allowWritesToROM = alpineTab->writeROM->isChecked();
+ alpineTab->SetSettings();
}
if (vjs.softTypeDebugger)
{
- //strcpy(vjs.debuggerROMPath, debuggerTab->edit1->text().toUtf8().data());
- //strcpy(vjs.absROMPath, debuggerTab->edit2->text().toUtf8().data());
- vjs.nbrdisasmlines = debuggerTab->edit3->text().toUInt(&ok, 10);
- //vjs.allowWritesToROM = debuggerTab->writeROM->isChecked();
- vjs.displayHWlabels = debuggerTab->displayHWlabels->isChecked();
- vjs.disasmopcodes = debuggerTab->disasmopcodes->isChecked();
- vjs.displayFullSourceFilename = debuggerTab->displayFullSourceFilename->isChecked();
+ debuggerTab->SetSettings();
}
#ifdef _MSC_VER
#endif
}
-
-QString ConfigDialog::CheckForTrailingSlash(QString s)
-{
- if (!s.endsWith('/') && !s.endsWith('\\'))
- s.append('/');
-
- return s;
-}