lay base for the actual dialog
also make EmuSettingsDialog properly modal
This commit is contained in:
parent
e217d016a7
commit
0bd53a34ef
|
@ -3,6 +3,7 @@ project(qt_sdl)
|
||||||
SET(SOURCES_QT_SDL
|
SET(SOURCES_QT_SDL
|
||||||
main.cpp
|
main.cpp
|
||||||
main_shaders.h
|
main_shaders.h
|
||||||
|
CheatsDialog.cpp
|
||||||
EmuSettingsDialog.cpp
|
EmuSettingsDialog.cpp
|
||||||
InputConfigDialog.cpp
|
InputConfigDialog.cpp
|
||||||
VideoSettingsDialog.cpp
|
VideoSettingsDialog.cpp
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
/*
|
||||||
|
Copyright 2016-2020 Arisotura
|
||||||
|
|
||||||
|
This file is part of melonDS.
|
||||||
|
|
||||||
|
melonDS is free software: you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU General Public License as published by the Free
|
||||||
|
Software Foundation, either version 3 of the License, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
melonDS is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with melonDS. If not, see http://www.gnu.org/licenses/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <QFileDialog>
|
||||||
|
|
||||||
|
#include "types.h"
|
||||||
|
#include "Platform.h"
|
||||||
|
#include "Config.h"
|
||||||
|
#include "PlatformConfig.h"
|
||||||
|
|
||||||
|
#include "CheatsDialog.h"
|
||||||
|
#include "ui_CheatsDialog.h"
|
||||||
|
|
||||||
|
|
||||||
|
CheatsDialog* CheatsDialog::currentDlg = nullptr;
|
||||||
|
|
||||||
|
extern char* EmuDirectory;
|
||||||
|
|
||||||
|
|
||||||
|
CheatsDialog::CheatsDialog(QWidget* parent) : QDialog(parent), ui(new Ui::CheatsDialog)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
|
||||||
|
// setup UI here
|
||||||
|
}
|
||||||
|
|
||||||
|
CheatsDialog::~CheatsDialog()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CheatsDialog::on_CheatsDialog_accepted()
|
||||||
|
{
|
||||||
|
// save shit here
|
||||||
|
|
||||||
|
closeDlg();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CheatsDialog::on_CheatsDialog_rejected()
|
||||||
|
{
|
||||||
|
// don't save shit here
|
||||||
|
|
||||||
|
closeDlg();
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
Copyright 2016-2020 Arisotura
|
||||||
|
|
||||||
|
This file is part of melonDS.
|
||||||
|
|
||||||
|
melonDS is free software: you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU General Public License as published by the Free
|
||||||
|
Software Foundation, either version 3 of the License, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
melonDS is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with melonDS. If not, see http://www.gnu.org/licenses/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef CHEATSDIALOG_H
|
||||||
|
#define CHEATSDIALOG_H
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
|
||||||
|
namespace Ui { class CheatsDialog; }
|
||||||
|
class CheatsDialog;
|
||||||
|
|
||||||
|
class CheatsDialog : public QDialog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit CheatsDialog(QWidget* parent);
|
||||||
|
~CheatsDialog();
|
||||||
|
|
||||||
|
static CheatsDialog* currentDlg;
|
||||||
|
static CheatsDialog* openDlg(QWidget* parent)
|
||||||
|
{
|
||||||
|
if (currentDlg)
|
||||||
|
{
|
||||||
|
currentDlg->activateWindow();
|
||||||
|
return currentDlg;
|
||||||
|
}
|
||||||
|
|
||||||
|
currentDlg = new CheatsDialog(parent);
|
||||||
|
currentDlg->open();
|
||||||
|
return currentDlg;
|
||||||
|
}
|
||||||
|
static void closeDlg()
|
||||||
|
{
|
||||||
|
currentDlg = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_CheatsDialog_accepted();
|
||||||
|
void on_CheatsDialog_rejected();
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::CheatsDialog* ui;
|
||||||
|
|
||||||
|
//
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CHEATSDIALOG_H
|
|
@ -42,7 +42,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
currentDlg = new EmuSettingsDialog(parent);
|
currentDlg = new EmuSettingsDialog(parent);
|
||||||
currentDlg->show();
|
currentDlg->open();
|
||||||
return currentDlg;
|
return currentDlg;
|
||||||
}
|
}
|
||||||
static void closeDlg()
|
static void closeDlg()
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "Input.h"
|
#include "Input.h"
|
||||||
|
#include "CheatsDialog.h"
|
||||||
#include "EmuSettingsDialog.h"
|
#include "EmuSettingsDialog.h"
|
||||||
#include "InputConfigDialog.h"
|
#include "InputConfigDialog.h"
|
||||||
#include "VideoSettingsDialog.h"
|
#include "VideoSettingsDialog.h"
|
||||||
|
@ -1062,6 +1063,14 @@ MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent)
|
||||||
|
|
||||||
actStop = menu->addAction("Stop");
|
actStop = menu->addAction("Stop");
|
||||||
connect(actStop, &QAction::triggered, this, &MainWindow::onStop);
|
connect(actStop, &QAction::triggered, this, &MainWindow::onStop);
|
||||||
|
|
||||||
|
menu->addSeparator();
|
||||||
|
|
||||||
|
actEnableCheats = menu->addAction("Enable cheats");
|
||||||
|
connect(actEnableCheats, &QAction::triggered, this, &MainWindow::onEnableCheats);
|
||||||
|
|
||||||
|
actSetupCheats = menu->addAction("Setup cheat codes");
|
||||||
|
connect(actSetupCheats, &QAction::triggered, this, &MainWindow::onSetupCheats);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
QMenu* menu = menubar->addMenu("Config");
|
QMenu* menu = menubar->addMenu("Config");
|
||||||
|
@ -1651,6 +1660,24 @@ void MainWindow::onStop()
|
||||||
NDS::Stop();
|
NDS::Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::onEnableCheats(bool checked)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::onSetupCheats()
|
||||||
|
{
|
||||||
|
emuThread->emuPause();
|
||||||
|
|
||||||
|
CheatsDialog* dlg = CheatsDialog::openDlg(this);
|
||||||
|
connect(dlg, &CheatsDialog::finished, this, &MainWindow::onCheatsDialogFinished);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::onCheatsDialogFinished(int res)
|
||||||
|
{
|
||||||
|
emuThread->emuUnpause();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void MainWindow::onOpenEmuSettings()
|
void MainWindow::onOpenEmuSettings()
|
||||||
{
|
{
|
||||||
|
|
|
@ -198,6 +198,9 @@ private slots:
|
||||||
void onPause(bool checked);
|
void onPause(bool checked);
|
||||||
void onReset();
|
void onReset();
|
||||||
void onStop();
|
void onStop();
|
||||||
|
void onEnableCheats(bool checked);
|
||||||
|
void onSetupCheats();
|
||||||
|
void onCheatsDialogFinished(int res);
|
||||||
|
|
||||||
void onOpenEmuSettings();
|
void onOpenEmuSettings();
|
||||||
void onEmuSettingsDialogFinished(int res);
|
void onEmuSettingsDialogFinished(int res);
|
||||||
|
@ -245,6 +248,8 @@ public:
|
||||||
QAction* actPause;
|
QAction* actPause;
|
||||||
QAction* actReset;
|
QAction* actReset;
|
||||||
QAction* actStop;
|
QAction* actStop;
|
||||||
|
QAction* actEnableCheats;
|
||||||
|
QAction* actSetupCheats;
|
||||||
|
|
||||||
QAction* actEmuSettings;
|
QAction* actEmuSettings;
|
||||||
QAction* actInputConfig;
|
QAction* actInputConfig;
|
||||||
|
|
Loading…
Reference in New Issue