]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/gui/configdialog.cpp
Fix configuration dialog crashing.
[virtualjaguar] / src / gui / configdialog.cpp
index 4107e6b6748020d9c9cff6f9bc3e199da8346b23..ac22898d24b244a96444d981170925af254e1165 100644 (file)
@@ -1,22 +1,24 @@
 //
 // 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"
 
 
@@ -50,8 +52,8 @@ ConfigDialog::ConfigDialog(QWidget * parent/*= 0*/): QDialog(parent)
        setWindowTitle(tr("Virtual Jaguar Settings"));
 
        LoadDialogFromSettings();
-       controllerTab1->UpdateLabel();                          // Now it's safe to do this... ;-)
-       controllerTab2->UpdateLabel();                          // Now it's safe to do this... ;-)
+//     controllerTab1->UpdateLabel();                          // Now it's safe to do this... ;-)
+//     controllerTab2->UpdateLabel();                          // Now it's safe to do this... ;-)
 }
 
 ConfigDialog::~ConfigDialog()
@@ -60,14 +62,15 @@ 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->useHostAudio->setChecked(vjs.audioEnabled);
 
        if (vjs.hardwareTypeAlpine)
        {
@@ -78,21 +81,24 @@ void ConfigDialog::LoadDialogFromSettings(void)
 
        for(int i=0; i<21; i++)
        {
-               controllerTab1->p1Keys[i] = vjs.p1KeyBindings[i];
-               controllerTab2->p1Keys[i] = vjs.p2KeyBindings[i];
+               controllerTab1->controllerWidget->keys[i] = vjs.p1KeyBindings[i];
+               controllerTab2->controllerWidget->keys[i] = vjs.p2KeyBindings[i];
        }
 }
 
 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.audioEnabled  = generalTab->useHostAudio->isChecked();
 
        if (vjs.hardwareTypeAlpine)
        {
@@ -103,7 +109,15 @@ void ConfigDialog::UpdateVJSettings(void)
 
        for(int i=0; i<21; i++)
        {
-               vjs.p1KeyBindings[i] = controllerTab1->p1Keys[i];
-               vjs.p2KeyBindings[i] = controllerTab2->p1Keys[i];
+               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;
+}