mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-21 05:09:46 -06:00
take this somewhere
This commit is contained in:
@ -16,16 +16,86 @@
|
|||||||
with melonDS. If not, see http://www.gnu.org/licenses/.
|
with melonDS. If not, see http://www.gnu.org/licenses/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <QFileDialog>
|
||||||
|
|
||||||
|
#include "types.h"
|
||||||
|
#include "Config.h"
|
||||||
|
#include "PlatformConfig.h"
|
||||||
|
|
||||||
#include "EmuSettingsDialog.h"
|
#include "EmuSettingsDialog.h"
|
||||||
#include "ui_EmuSettingsDialog.h"
|
#include "ui_EmuSettingsDialog.h"
|
||||||
|
|
||||||
|
|
||||||
|
EmuSettingsDialog* EmuSettingsDialog::currentDlg = nullptr;
|
||||||
|
|
||||||
|
extern char* EmuDirectory;
|
||||||
|
|
||||||
|
|
||||||
EmuSettingsDialog::EmuSettingsDialog(QWidget* parent) : QDialog(parent), ui(new Ui::EmuSettingsDialog)
|
EmuSettingsDialog::EmuSettingsDialog(QWidget* parent) : QDialog(parent), ui(new Ui::EmuSettingsDialog)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
|
||||||
|
ui->txtBIOS9Path->setText(Config::BIOS9Path);
|
||||||
|
ui->txtBIOS7Path->setText(Config::BIOS7Path);
|
||||||
|
ui->txtFirmwarePath->setText(Config::FirmwarePath);
|
||||||
|
ui->chkDirectBoot->setChecked(Config::DirectBoot != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
EmuSettingsDialog::~EmuSettingsDialog()
|
EmuSettingsDialog::~EmuSettingsDialog()
|
||||||
{
|
{
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EmuSettingsDialog::on_EmuSettingsDialog_accepted()
|
||||||
|
{
|
||||||
|
strncpy(Config::BIOS9Path, ui->txtBIOS9Path->text().toStdString().c_str(), 1023); Config::BIOS9Path[1023] = '\0';
|
||||||
|
strncpy(Config::BIOS7Path, ui->txtBIOS7Path->text().toStdString().c_str(), 1023); Config::BIOS7Path[1023] = '\0';
|
||||||
|
strncpy(Config::FirmwarePath, ui->txtFirmwarePath->text().toStdString().c_str(), 1023); Config::FirmwarePath[1023] = '\0';
|
||||||
|
Config::DirectBoot = ui->chkDirectBoot->isChecked() ? 1:0;
|
||||||
|
|
||||||
|
closeDlg();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EmuSettingsDialog::on_EmuSettingsDialog_rejected()
|
||||||
|
{
|
||||||
|
closeDlg();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EmuSettingsDialog::on_btnBIOS9Browse_clicked()
|
||||||
|
{
|
||||||
|
QString file = QFileDialog::getOpenFileName(this,
|
||||||
|
"Select DS-mode ARM9 BIOS...",
|
||||||
|
EmuDirectory,
|
||||||
|
"BIOS files (*.bin *.rom);;Any file (*.*)");
|
||||||
|
|
||||||
|
if (file.isEmpty()) return;
|
||||||
|
|
||||||
|
ui->txtBIOS9Path->setText(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EmuSettingsDialog::on_btnBIOS7Browse_clicked()
|
||||||
|
{
|
||||||
|
QString file = QFileDialog::getOpenFileName(this,
|
||||||
|
"Select DS-mode ARM7 BIOS...",
|
||||||
|
EmuDirectory,
|
||||||
|
"BIOS files (*.bin *.rom);;Any file (*.*)");
|
||||||
|
|
||||||
|
if (file.isEmpty()) return;
|
||||||
|
|
||||||
|
ui->txtBIOS7Path->setText(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EmuSettingsDialog::on_btnFirmwareBrowse_clicked()
|
||||||
|
{
|
||||||
|
QString file = QFileDialog::getOpenFileName(this,
|
||||||
|
"Select DS-mode firmware...",
|
||||||
|
EmuDirectory,
|
||||||
|
"Firmware files (*.bin *.rom);;Any file (*.*)");
|
||||||
|
|
||||||
|
if (file.isEmpty()) return;
|
||||||
|
|
||||||
|
// TODO: check for shitty hacked firmware here?
|
||||||
|
|
||||||
|
ui->txtFirmwarePath->setText(file);
|
||||||
|
}
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
namespace Ui { class EmuSettingsDialog; }
|
namespace Ui { class EmuSettingsDialog; }
|
||||||
|
class EmuSettingsDialog;
|
||||||
|
|
||||||
class EmuSettingsDialog : public QDialog
|
class EmuSettingsDialog : public QDialog
|
||||||
{
|
{
|
||||||
@ -31,6 +32,31 @@ public:
|
|||||||
explicit EmuSettingsDialog(QWidget* parent);
|
explicit EmuSettingsDialog(QWidget* parent);
|
||||||
~EmuSettingsDialog();
|
~EmuSettingsDialog();
|
||||||
|
|
||||||
|
static EmuSettingsDialog* currentDlg;
|
||||||
|
static void openDlg(QWidget* parent)
|
||||||
|
{
|
||||||
|
if (currentDlg)
|
||||||
|
{
|
||||||
|
currentDlg->activateWindow();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
currentDlg = new EmuSettingsDialog(parent);
|
||||||
|
currentDlg->show();
|
||||||
|
}
|
||||||
|
static void closeDlg()
|
||||||
|
{
|
||||||
|
currentDlg = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_EmuSettingsDialog_accepted();
|
||||||
|
void on_EmuSettingsDialog_rejected();
|
||||||
|
|
||||||
|
void on_btnBIOS9Browse_clicked();
|
||||||
|
void on_btnBIOS7Browse_clicked();
|
||||||
|
void on_btnFirmwareBrowse_clicked();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::EmuSettingsDialog* ui;
|
Ui::EmuSettingsDialog* ui;
|
||||||
};
|
};
|
||||||
|
@ -820,9 +820,7 @@ void MainWindow::onEmuUnpause()
|
|||||||
|
|
||||||
void MainWindow::onOpenEmuSettings()
|
void MainWindow::onOpenEmuSettings()
|
||||||
{
|
{
|
||||||
// TODO keep track of this pointer!!
|
EmuSettingsDialog::openDlg(this);
|
||||||
EmuSettingsDialog* dlg = new EmuSettingsDialog(this);
|
|
||||||
dlg->show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user