//
// configdialog.cpp - Configuration dialog
//
-// by James L. Hammons
+// by James Hammons
// (C) 2010 Underground Software
//
-// JLH = James L. Hammons <jlhamm@acm.org>
+// JLH = James Hammons <jlhamm@acm.org>
//
// Who When What
// --- ---------- -------------------------------------------------------------
// JLH 01/29/2010 Created this file
// JLH 06/23/2011 Added initial implementation
+// JLH 10/14/2011 Fixed possibly missing final slash in paths
//
#include "configdialog.h"
-#include "generaltab.h"
-#include "controllertab.h"
#include "alpinetab.h"
+#include "controllertab.h"
+#include "controllerwidget.h"
+#include "generaltab.h"
#include "settings.h"
-ConfigDialog::ConfigDialog(QWidget * parent/*= 0*/): QDialog(parent)
+ConfigDialog::ConfigDialog(QWidget * parent/*= 0*/): QDialog(parent),
+ tabWidget(new QTabWidget),
+ generalTab(new GeneralTab(this)),
+ controllerTab1(new ControllerTab(this))
{
- tabWidget = new QTabWidget;
- generalTab = new GeneralTab(this);
- controllerTab = new ControllerTab(this);
+// tabWidget = new QTabWidget;
+// generalTab = new GeneralTab(this);
+// controllerTab1 = new ControllerTab(this);
+//// controllerTab2 = new ControllerTab(this);
- if (vjs.hardwareTypeAlpine)
- alpineTab = new AlpineTab(this);
+// if (vjs.hardwareTypeAlpine)
+// alpineTab = new AlpineTab(this);
tabWidget->addTab(generalTab, tr("General"));
- tabWidget->addTab(controllerTab, tr("Controller"));
+ tabWidget->addTab(controllerTab1, tr("Controllers"));
+// tabWidget->addTab(controllerTab2, tr("Controller #2"));
if (vjs.hardwareTypeAlpine)
+ {
+ alpineTab = new AlpineTab(this);
tabWidget->addTab(alpineTab, tr("Alpine"));
+ }
buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
setLayout(mainLayout);
setWindowTitle(tr("Virtual Jaguar Settings"));
-
LoadDialogFromSettings();
- controllerTab->UpdateLabel(); // Now it's safe to do this... ;-)
}
+
ConfigDialog::~ConfigDialog()
{
}
+
void ConfigDialog::LoadDialogFromSettings(void)
{
- generalTab->edit1->setText(vjs.jagBootPath);
- generalTab->edit2->setText(vjs.CDBootPath);
+// 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->useHostAudio->setChecked(vjs.audioEnabled);
+ generalTab->useFullScreen->setChecked(vjs.fullscreen);
+// generalTab->useHostAudio->setChecked(vjs.audioEnabled);
if (vjs.hardwareTypeAlpine)
{
alpineTab->writeROM->setChecked(vjs.allowWritesToROM);
}
+#warning "!!! Need to load settings from controller profile !!!"
+#if 0
for(int i=0; i<21; i++)
- controllerTab->p1Keys[i] = vjs.p1KeyBindings[i];
+ {
+// We need to find the right profile and load it up here...
+ controllerTab1->controllerWidget->keys[i] = vjs.p1KeyBindings[i];
+// controllerTab2->controllerWidget->keys[i] = vjs.p2KeyBindings[i];
+ }
+#endif
}
+
void ConfigDialog::UpdateVJSettings(void)
{
- strcpy(vjs.jagBootPath, generalTab->edit1->text().toAscii().data());
- strcpy(vjs.CDBootPath, generalTab->edit2->text().toAscii().data());
- strcpy(vjs.EEPROMPath, generalTab->edit3->text().toAscii().data());
- strcpy(vjs.ROMPath, generalTab->edit4->text().toAscii().data());
+// strcpy(vjs.jagBootPath, generalTab->edit1->text().toAscii().data());
+// strcpy(vjs.CDBootPath, generalTab->edit2->text().toAscii().data());
+ strcpy(vjs.EEPROMPath, CheckForTrailingSlash(
+ generalTab->edit3->text()).toAscii().data());
+ strcpy(vjs.ROMPath, CheckForTrailingSlash(
+ generalTab->edit4->text()).toAscii().data());
vjs.useJaguarBIOS = generalTab->useBIOS->isChecked();
+ vjs.GPUEnabled = generalTab->useGPU->isChecked();
vjs.DSPEnabled = generalTab->useDSP->isChecked();
- vjs.audioEnabled = generalTab->useHostAudio->isChecked();
+ vjs.fullscreen = generalTab->useFullScreen->isChecked();
+// vjs.audioEnabled = generalTab->useHostAudio->isChecked();
if (vjs.hardwareTypeAlpine)
{
vjs.allowWritesToROM = alpineTab->writeROM->isChecked();
}
+#warning "!!! Need to save settings to controller profile !!!"
for(int i=0; i<21; i++)
- vjs.p1KeyBindings[i] = controllerTab->p1Keys[i];
+ {
+// We need to find the right profile and load it up here...
+ vjs.p1KeyBindings[i] = controllerTab1->controllerWidget->keys[i];
+// vjs.p2KeyBindings[i] = controllerTab2->controllerWidget->keys[i];
+ }
+}
+
+
+QString ConfigDialog::CheckForTrailingSlash(QString s)
+{
+ if (!s.endsWith('/') && !s.endsWith('\\'))
+ s.append('/');
+
+ return s;
}