]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/gui/configdialog.cpp
QString no longer supports toAscii, use toUtf8 instead
[virtualjaguar] / src / gui / configdialog.cpp
index ab12b13f02631d9f94c311f9be957156b4a4c274..42942f0eb7fb4022de7ea6744ef75811f94ec875 100644 (file)
@@ -1,15 +1,16 @@
 //
 // 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 "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);
-       controllerTab1 = new ControllerTab(this);
-       controllerTab2 = 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(controllerTab1, tr("Controller #1"));
-       tabWidget->addTab(controllerTab2, tr("Controller #2"));
+       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);
 
@@ -49,26 +56,28 @@ ConfigDialog::ConfigDialog(QWidget * parent/*= 0*/): QDialog(parent)
        setLayout(mainLayout);
 
        setWindowTitle(tr("Virtual Jaguar Settings"));
-
        LoadDialogFromSettings();
-//     controllerTab1->UpdateLabel();                          // Now it's safe to do this... ;-)
-//     controllerTab2->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);
+       generalTab->useFastBlitter->setChecked(vjs.useFastBlitter);
 
        if (vjs.hardwareTypeAlpine)
        {
@@ -77,38 +86,59 @@ void ConfigDialog::LoadDialogFromSettings(void)
                alpineTab->writeROM->setChecked(vjs.allowWritesToROM);
        }
 
+#warning "!!! Need to load settings from controller profile !!!"
+// We do this now, but not here. Need to fix this...
+#if 0
        for(int i=0; i<21; i++)
        {
-//             controllerTab1->p1Keys[i] = vjs.p1KeyBindings[i];
-//             controllerTab2->p1Keys[i] = vjs.p2KeyBindings[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];
+//             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());
-
-       vjs.useJaguarBIOS = generalTab->useBIOS->isChecked();
-       vjs.DSPEnabled    = generalTab->useDSP->isChecked();
-       vjs.audioEnabled  = generalTab->useHostAudio->isChecked();
+//     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();
 
        if (vjs.hardwareTypeAlpine)
        {
-               strcpy(vjs.alpineROMPath, alpineTab->edit1->text().toAscii().data());
-               strcpy(vjs.absROMPath,    alpineTab->edit2->text().toAscii().data());
+               strcpy(vjs.alpineROMPath, alpineTab->edit1->text().toUtf8().data());
+               strcpy(vjs.absROMPath,    alpineTab->edit2->text().toUtf8().data());
                vjs.allowWritesToROM = alpineTab->writeROM->isChecked();
        }
 
+#warning "!!! Need to save settings to controller profile !!!"
+// We do this now, but not here. Need to fix this...
+#if 0
        for(int i=0; i<21; i++)
        {
-//             vjs.p1KeyBindings[i] = controllerTab1->p1Keys[i];
-//             vjs.p2KeyBindings[i] = controllerTab2->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];
+//             vjs.p2KeyBindings[i] = controllerTab2->controllerWidget->keys[i];
        }
+#endif
+}
+
+
+QString ConfigDialog::CheckForTrailingSlash(QString s)
+{
+       if (!s.endsWith('/') && !s.endsWith('\\'))
+               s.append('/');
+
+       return s;
 }