mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-20 04:29:13 +12:00
Add about menu
This commit is contained in:
parent
7571e58ce5
commit
1769783dc7
6 changed files with 92 additions and 5 deletions
62
src/panda_qt/about_window.cpp
Normal file
62
src/panda_qt/about_window.cpp
Normal file
|
@ -0,0 +1,62 @@
|
|||
#include "panda_qt/about_window.hpp"
|
||||
|
||||
#include <QLabel>
|
||||
#include <QTextEdit>
|
||||
#include <QVBoxLayout>
|
||||
#include <QtGlobal>
|
||||
|
||||
// Based on https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/DolphinQt/AboutDialog.cpp
|
||||
|
||||
AboutWindow::AboutWindow(QWidget* parent) : QDialog(parent) {
|
||||
resize(200, 200);
|
||||
|
||||
setWindowTitle(tr("About Panda3DS"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
const QString text =
|
||||
QStringLiteral(R"(
|
||||
<p style='font-size:38pt; font-weight:400;'>Panda3DS</p>
|
||||
|
||||
<p>
|
||||
%ABOUT_PANDA3DS%<br>
|
||||
<a href='https://panda3ds.com/'>%SUPPORT%</a><br>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a>%AUTHORS%</a>
|
||||
</p>
|
||||
)")
|
||||
.replace(QStringLiteral("%ABOUT_PANDA3DS%"), tr("Panda3DS is a free and open source Nintendo 3DS emulator, for Windows, MacOS and Linux"))
|
||||
.replace(QStringLiteral("%SUPPORT%"), tr("Visit panda3ds.com for help with Panda3DS and links to our official support sites."))
|
||||
.replace(
|
||||
QStringLiteral("%AUTHORS%"), tr("Panda3DS is developed by volunteers in their spare time. Below is a list of some of these"
|
||||
" volunteers who've agreed to be listed here, in no particular order.<br>If you think you should be "
|
||||
"listed here too, please inform us<br><br>"
|
||||
"- Peach (wheremyfoodat)<br>"
|
||||
"- noumidev<br>"
|
||||
"- liuk707<br>"
|
||||
"- Wunk<br>"
|
||||
"- marysaka<br>"
|
||||
"- Sky<br>"
|
||||
"- merryhime<br>"
|
||||
"- TGP17<br>")
|
||||
);
|
||||
|
||||
QLabel* textLabel = new QLabel(text);
|
||||
textLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
|
||||
textLabel->setOpenExternalLinks(true);
|
||||
|
||||
QLabel* logo = new QLabel();
|
||||
logo->setPixmap(QPixmap(":/docs/img/rstarstruck_icon.png"));
|
||||
logo->setContentsMargins(30, 0, 30, 0);
|
||||
|
||||
QVBoxLayout* mainLayout = new QVBoxLayout;
|
||||
QHBoxLayout* hLayout = new QHBoxLayout;
|
||||
|
||||
setLayout(mainLayout);
|
||||
mainLayout->addLayout(hLayout);
|
||||
|
||||
hLayout->setAlignment(Qt::AlignLeft);
|
||||
hLayout->addWidget(logo);
|
||||
hLayout->addWidget(textLabel);
|
||||
}
|
|
@ -20,7 +20,6 @@ MainWindow::MainWindow(QApplication* app, QWidget* parent) : QMainWindow(parent)
|
|||
auto fileMenu = menuBar->addMenu(tr("File"));
|
||||
auto emulationMenu = menuBar->addMenu(tr("Emulation"));
|
||||
auto toolsMenu = menuBar->addMenu(tr("Tools"));
|
||||
auto helpMenu = menuBar->addMenu(tr("Help"));
|
||||
auto aboutMenu = menuBar->addMenu(tr("About"));
|
||||
|
||||
// Create and bind actions for them
|
||||
|
@ -37,6 +36,9 @@ MainWindow::MainWindow(QApplication* app, QWidget* parent) : QMainWindow(parent)
|
|||
auto dumpRomFSAction = toolsMenu->addAction(tr("Dump RomFS"));
|
||||
connect(dumpRomFSAction, &QAction::triggered, this, &MainWindow::dumpRomFS);
|
||||
|
||||
auto aboutAction = aboutMenu->addAction(tr("About Panda3DS"));
|
||||
connect(aboutAction, &QAction::triggered, this, &MainWindow::showAboutMenu);
|
||||
|
||||
// Set up theme selection
|
||||
setTheme(Theme::Dark);
|
||||
themeSelect = new QComboBox(this);
|
||||
|
@ -50,6 +52,9 @@ MainWindow::MainWindow(QApplication* app, QWidget* parent) : QMainWindow(parent)
|
|||
themeSelect->show();
|
||||
connect(themeSelect, &QComboBox::currentIndexChanged, this, [&](int index) { setTheme(static_cast<Theme>(index)); });
|
||||
|
||||
// Set up misc objects
|
||||
aboutWindow = new AboutWindow(nullptr);
|
||||
|
||||
emu = new Emulator();
|
||||
emu->setOutputSize(screen.surfaceWidth, screen.surfaceHeight);
|
||||
|
||||
|
@ -136,6 +141,7 @@ MainWindow::~MainWindow() {
|
|||
|
||||
delete emu;
|
||||
delete menuBar;
|
||||
delete aboutWindow;
|
||||
delete themeSelect;
|
||||
}
|
||||
|
||||
|
@ -215,7 +221,6 @@ void MainWindow::setTheme(Theme theme) {
|
|||
break;
|
||||
}
|
||||
|
||||
|
||||
case Theme::System: {
|
||||
qApp->setPalette(this->style()->standardPalette());
|
||||
qApp->setStyle(QStyleFactory::create("WindowsVista"));
|
||||
|
@ -260,6 +265,11 @@ void MainWindow::dumpRomFS() {
|
|||
}
|
||||
}
|
||||
|
||||
void MainWindow::showAboutMenu() {
|
||||
AboutWindow about(this);
|
||||
about.exec();
|
||||
}
|
||||
|
||||
void MainWindow::dispatchMessage(const EmulatorMessage& message) {
|
||||
switch (message.type) {
|
||||
case MessageType::LoadROM:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue