Improve the DWARF source line number reporting
[clinton/Virtual-Jaguar-Rx.git] / src / gui / generaltab.cpp
index ff24dc3..3f8cfa3 100644 (file)
@@ -6,45 +6,57 @@
 // See the README and GPLv3 files for licensing and warranty information
 //
 // JLH = James Hammons <jlhamm@acm.org>
+// JPM = Jean-Paul Mari <djipi.mari@gmail.com>
 //
 // WHO  WHEN        WHAT
 // ---  ----------  ------------------------------------------------------------
 // JLH  06/23/2011  Created this file
+// JPM  Sept./2018  Added a Models & Bios tab, slashes / backslashes formatting, and screenshot path
+//
+
+// STILL TO DO:
+// To scan the bios folder for the 5 known BIOSes, and just present a radio button to choose between them...
+// 
+
 
+#include "configdialog.h"
 #include "generaltab.h"
 #include "settings.h"
 
 
+// 
 GeneralTab::GeneralTab(QWidget * parent/*= 0*/): QWidget(parent)
 {
-// I'm thinking we should scan the bios folder for the 5 known BIOSes, and
-// just present a radio button to choose between them...
-// (BIOS is built-in now...)
 //     QLabel * label1 = new QLabel("Boot ROM:");
 //     QLabel * label2 = new QLabel("CD Boot ROM:");
        QLabel * label3 = new QLabel("EEPROMs:");
        QLabel * label4 = new QLabel("Software:");
+       QLabel * label5 = new QLabel("Screenshots:");
 
 //     edit1 = new QLineEdit("");
 //     edit2 = new QLineEdit("");
        edit3 = new QLineEdit("");
        edit4 = new QLineEdit("");
+       edit5 = new QLineEdit("");
 //     edit1->setPlaceholderText("Boot ROM location");
 //     edit2->setPlaceholderText("CD Boot ROM location");
        edit3->setPlaceholderText("EEPROM path");
        edit4->setPlaceholderText("Software path");
+       edit5->setPlaceholderText("Screenshot path");
 
        QVBoxLayout * layout1 = new QVBoxLayout;
 //     layout1->addWidget(label1);
 //     layout1->addWidget(label2);
        layout1->addWidget(label3);
        layout1->addWidget(label4);
+       layout1->addWidget(label5);
 
        QVBoxLayout * layout2 = new QVBoxLayout;
 //     layout2->addWidget(edit1);
 //     layout2->addWidget(edit2);
        layout2->addWidget(edit3);
        layout2->addWidget(edit4);
+       layout2->addWidget(edit5);
 
        QHBoxLayout * layout3 = new QHBoxLayout;
        layout3->addLayout(layout1);
@@ -54,7 +66,9 @@ GeneralTab::GeneralTab(QWidget * parent/*= 0*/): QWidget(parent)
        layout4->addLayout(layout3);
 
        // Checkboxes...
+#ifndef NEWMODELSBIOSHANDLER
        useBIOS            = new QCheckBox(tr("Enable Jaguar BIOS"));
+#endif
        useGPU             = new QCheckBox(tr("Enable GPU"));
        useDSP             = new QCheckBox(tr("Enable DSP"));
        useFullScreen      = new QCheckBox(tr("Start Virtual Jaguar in full screen"));
@@ -62,7 +76,9 @@ GeneralTab::GeneralTab(QWidget * parent/*= 0*/): QWidget(parent)
        useUnknownSoftware = new QCheckBox(tr("Show all files in file chooser"));
        useFastBlitter     = new QCheckBox(tr("Use fast blitter"));
 
+#ifndef NEWMODELSBIOSHANDLER
        layout4->addWidget(useBIOS);
+#endif
        layout4->addWidget(useGPU);
        layout4->addWidget(useDSP);
        layout4->addWidget(useFullScreen);
@@ -74,6 +90,7 @@ GeneralTab::GeneralTab(QWidget * parent/*= 0*/): QWidget(parent)
 }
 
 
+// 
 GeneralTab::~GeneralTab()
 {
 }
@@ -86,7 +103,10 @@ void GeneralTab::GetSettings(void)
        //      generalTab->edit2->setText(vjs.CDBootPath);
        edit3->setText(vjs.EEPROMPath);
        edit4->setText(vjs.ROMPath);
+       edit5->setText(vjs.screenshotPath);
+#ifndef NEWMODELSBIOSHANDLER
        useBIOS->setChecked(vjs.useJaguarBIOS);
+#endif
        useGPU->setChecked(vjs.GPUEnabled);
        useDSP->setChecked(vjs.DSPEnabled);
        useFullScreen->setChecked(vjs.fullscreen);
@@ -95,15 +115,18 @@ void GeneralTab::GetSettings(void)
 }
 
 
-// Save / Update the settings from the tabs dialog
+// Save & Update the settings from the tabs dialog
 void GeneralTab::SetSettings(void)
 {
        //      strcpy(vjs.jagBootPath, generalTab->edit1->text().toAscii().data());
        //      strcpy(vjs.CDBootPath,  generalTab->edit2->text().toAscii().data());
        strcpy(vjs.EEPROMPath, CheckForTrailingSlash(edit3->text()).toUtf8().data());
        strcpy(vjs.ROMPath, CheckForTrailingSlash(edit4->text()).toUtf8().data());
+       strcpy(vjs.screenshotPath, CheckForTrailingSlash(edit5->text()).toUtf8().data());
 
+#ifndef NEWMODELSBIOSHANDLER
        vjs.useJaguarBIOS = useBIOS->isChecked();
+#endif
        vjs.GPUEnabled = useGPU->isChecked();
        vjs.DSPEnabled = useDSP->isChecked();
        vjs.fullscreen = useFullScreen->isChecked();
@@ -113,11 +136,18 @@ void GeneralTab::SetSettings(void)
 
 
 // Append a slash or a backslash at the end of the string
+// Depend the platform transform slashes or backslashes
 QString GeneralTab::CheckForTrailingSlash(QString s)
 {
        if (!s.endsWith('/') && !s.endsWith('\\'))
+       {
                s.append('/');
-
+       }
+#ifdef _WIN32
+       s.replace(QString("/"), QString("\\"));
+#else
+       s.replace(QString("\\"), QString("/"));
+#endif
        return s;
 }