+void MainWin::Configure(void)
+{
+ // Call the configuration dialog and update settings
+ ConfigDialog dlg(this);
+ //ick.
+ dlg.generalTab->useUnknownSoftware->setChecked(allowUnknownSoftware);
+
+ if (dlg.exec() == false)
+ return;
+
+ QString before = vjs.ROMPath;
+ QString alpineBefore = vjs.alpineROMPath;
+ QString absBefore = vjs.absROMPath;
+ bool audioBefore = vjs.audioEnabled;
+ dlg.UpdateVJSettings();
+ QString after = vjs.ROMPath;
+ QString alpineAfter = vjs.alpineROMPath;
+ QString absAfter = vjs.absROMPath;
+ bool audioAfter = vjs.audioEnabled;
+
+ bool allowOld = allowUnknownSoftware;
+ //ick.
+ allowUnknownSoftware = dlg.generalTab->useUnknownSoftware->isChecked();
+
+ // We rescan the "software" folder if the user either changed the path or
+ // checked/unchecked the "Allow unknown files" option in the config dialog.
+ if ((before != after) || (allowOld != allowUnknownSoftware))
+ filePickWin->ScanSoftwareFolder(allowUnknownSoftware);
+
+ // If the "Alpine" ROM is changed, then let's load it...
+ if (alpineBefore != alpineAfter)
+ {
+ if (!JaguarLoadFile(vjs.alpineROMPath) || !AlpineLoadFile(vjs.alpineROMPath))
+ {
+ // Oh crap, we couldn't get the file! Alert the media!
+ QMessageBox msg;
+ msg.setText(QString(tr("Could not load file \"%1\"!")).arg(vjs.alpineROMPath));
+ msg.setIcon(QMessageBox::Warning);
+ msg.exec();
+ }
+ }
+
+ // If the "ABS" ROM is changed, then let's load it...
+ if (absBefore != absAfter)
+ {
+ if (!JaguarLoadFile(vjs.absROMPath))
+ {
+ // Oh crap, we couldn't get the file! Alert the media!
+ QMessageBox msg;
+ msg.setText(QString(tr("Could not load file \"%1\"!")).arg(vjs.absROMPath));
+ msg.setIcon(QMessageBox::Warning);
+ msg.exec();
+ }
+ }
+
+ // If the "Enable audio" checkbox changed, then we have to re-init the DAC...
+ if (audioBefore != audioAfter)
+ {
+ DACDone();
+ DACInit();
+ }
+
+ // Just in case we crash before a clean exit...
+ WriteSettings();
+}
+