From ee5aecee3f80f934cc3d2837fa4a908c7f4c8f2d Mon Sep 17 00:00:00 2001 From: BreadFish64 Date: Sat, 4 Nov 2017 12:59:27 -0500 Subject: [PATCH] Implement About Button Functionality (#3005) --- dist/icons/citra.png | Bin 0 -> 21077 bytes dist/icons/icons.qrc | 1 + src/citra_qt/CMakeLists.txt | 3 + src/citra_qt/aboutdialog.cpp | 19 +++++ src/citra_qt/aboutdialog.h | 25 ++++++ src/citra_qt/aboutdialog.ui | 156 +++++++++++++++++++++++++++++++++++ src/citra_qt/main.cpp | 11 +++ src/citra_qt/main.h | 3 + src/citra_qt/main.ui | 6 ++ 9 files changed, 224 insertions(+) create mode 100644 dist/icons/citra.png create mode 100644 src/citra_qt/aboutdialog.cpp create mode 100644 src/citra_qt/aboutdialog.h create mode 100644 src/citra_qt/aboutdialog.ui diff --git a/dist/icons/citra.png b/dist/icons/citra.png new file mode 100644 index 0000000000000000000000000000000000000000..83fa499dd35c238dd5e302e1cfe05b59b65f28c2 GIT binary patch literal 21077 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 L>gTe~DWM4f3-Z7_ literal 0 HcmV?d00001 diff --git a/dist/icons/icons.qrc b/dist/icons/icons.qrc index f0c44862f..a25804907 100644 --- a/dist/icons/icons.qrc +++ b/dist/icons/icons.qrc @@ -2,5 +2,6 @@ checked.png failed.png + citra.png diff --git a/src/citra_qt/CMakeLists.txt b/src/citra_qt/CMakeLists.txt index add7566c2..8b6c09c2b 100644 --- a/src/citra_qt/CMakeLists.txt +++ b/src/citra_qt/CMakeLists.txt @@ -23,6 +23,7 @@ set(SRCS debugger/profiler.cpp debugger/registers.cpp debugger/wait_tree.cpp + aboutdialog.cpp util/spinbox.cpp util/util.cpp bootmanager.cpp @@ -57,6 +58,7 @@ set(HEADERS debugger/wait_tree.h util/spinbox.h util/util.h + aboutdialog.h bootmanager.h game_list.h game_list_p.h @@ -75,6 +77,7 @@ set(UIS configuration/configure_system.ui configuration/configure_web.ui debugger/registers.ui + aboutdialog.ui hotkeys.ui main.ui ) diff --git a/src/citra_qt/aboutdialog.cpp b/src/citra_qt/aboutdialog.cpp new file mode 100644 index 000000000..9c11168ba --- /dev/null +++ b/src/citra_qt/aboutdialog.cpp @@ -0,0 +1,19 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "aboutdialog.h" +#include "common/scm_rev.h" +#include "ui_aboutdialog.h" + +AboutDialog::AboutDialog(QWidget* parent) + : QDialog(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint), + ui(new Ui::AboutDialog) { + ui->setupUi(this); + ui->labelBuildInfo->setText(ui->labelBuildInfo->text().arg( + Common::g_build_name, Common::g_scm_branch, Common::g_scm_desc)); +} + +AboutDialog::~AboutDialog() { + delete ui; +} diff --git a/src/citra_qt/aboutdialog.h b/src/citra_qt/aboutdialog.h new file mode 100644 index 000000000..606789774 --- /dev/null +++ b/src/citra_qt/aboutdialog.h @@ -0,0 +1,25 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#ifndef ABOUTDIALOG_H +#define ABOUTDIALOG_H + +#include + +namespace Ui { +class AboutDialog; +} + +class AboutDialog : public QDialog { + Q_OBJECT + +public: + explicit AboutDialog(QWidget* parent = 0); + ~AboutDialog(); + +private: + Ui::AboutDialog* ui; +}; + +#endif // ABOUTDIALOG_H diff --git a/src/citra_qt/aboutdialog.ui b/src/citra_qt/aboutdialog.ui new file mode 100644 index 000000000..32f0a0356 --- /dev/null +++ b/src/citra_qt/aboutdialog.ui @@ -0,0 +1,156 @@ + + + AboutDialog + + + + 0 + 0 + 752 + 300 + + + + About Citra + + + + + 630 + 250 + 101 + 32 + + + + Qt::Horizontal + + + QDialogButtonBox::Ok + + + + + + 20 + 20 + 241 + 251 + + + + <html><head/><body><p><img src=":/icons/citra.png"/></p></body></html> + + + + + + 270 + 10 + 100 + 50 + + + + <html><head/><body><p><span style=" font-size:28pt;">Citra</span></p></body></html> + + + + + + 270 + 70 + 451 + 21 + + + + <html><head/><body><p>%1 | %2-%3</p></body></html> + + + + + + 270 + 90 + 461 + 131 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Citra is a free and open source 3DS emulator </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">licensed under GPLv2.0 or any later version.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">This software should not be used to play games </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">you have not legally obtained.</span></p></body></html> + + + + + + 270 + 230 + 361 + 16 + + + + <html><head/><body><p><a href="https://citra-emu.org/"><span style=" text-decoration: underline; color:#0000ff;">Website</span></a> | <a href="https://community.citra-emu.org/"><span style=" text-decoration: underline; color:#0000ff;">Forum</span></a> | <a href="https://github.com/citra-emu"><span style=" text-decoration: underline; color:#0000ff;">Source Code</span></a> | <a href="//github.com/citra-emu/citra/graphs/contributors"><span style=" text-decoration: underline; color:#0000ff;">Contributors</span></a> | <a href="https://github.com/citra-emu/citra/blob/master/license.txt"><span style=" text-decoration: underline; color:#0000ff;">License</span></a></p></body></html> + + + + + + 150 + 270 + 450 + 16 + + + + <html><head/><body><p><span style=" font-size:7pt;">&quot;3DS&quot; is a trademark of Nintendo. Citra is not affiliated with Nintendo in any way.</span></p></body></html> + + + + + + + + + buttonBox + accepted() + AboutDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + AboutDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index e0de66e02..00230d4bd 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp @@ -13,6 +13,7 @@ #include #include #include +#include "citra_qt/aboutdialog.h" #include "citra_qt/bootmanager.h" #include "citra_qt/configuration/config.h" #include "citra_qt/configuration/configure_dialog.h" @@ -340,6 +341,11 @@ void GMainWindow::ConnectMenuEvents() { connect(ui.action_Show_Status_Bar, &QAction::triggered, statusBar(), &QStatusBar::setVisible); ui.action_Fullscreen->setShortcut(GetHotkey("Main Window", "Fullscreen", this)->key()); connect(ui.action_Fullscreen, &QAction::triggered, this, &GMainWindow::ToggleFullscreen); + + // Help + connect(ui.action_FAQ, &QAction::triggered, + []() { QDesktopServices::openUrl(QUrl("https://citra-emu.org/wiki/faq/")); }); + connect(ui.action_About, &QAction::triggered, this, &GMainWindow::OnMenuAboutCitra); } void GMainWindow::OnDisplayTitleBars(bool show) { @@ -801,6 +807,11 @@ void GMainWindow::OnCoreError(Core::System::ResultStatus result, std::string det } } +void GMainWindow::OnMenuAboutCitra() { + AboutDialog about{this}; + about.exec(); +} + bool GMainWindow::ConfirmClose() { if (emu_thread == nullptr || !UISettings::values.confirm_before_closing) return true; diff --git a/src/citra_qt/main.h b/src/citra_qt/main.h index 4efab9a4a..18354bdf7 100644 --- a/src/citra_qt/main.h +++ b/src/citra_qt/main.h @@ -25,6 +25,7 @@ class MicroProfileDialog; class ProfilerWidget; class RegistersWidget; class WaitTreeWidget; +class AboutDialog; class GMainWindow : public QMainWindow { Q_OBJECT @@ -131,6 +132,8 @@ private slots: void ToggleWindowMode(); void OnCreateGraphicsSurfaceViewer(); void OnCoreError(Core::System::ResultStatus, std::string); + /// Called whenever a user selects Help->About Citra + void OnMenuAboutCitra(); private: void UpdateStatusBar(); diff --git a/src/citra_qt/main.ui b/src/citra_qt/main.ui index 617343e51..442904f01 100644 --- a/src/citra_qt/main.ui +++ b/src/citra_qt/main.ui @@ -96,6 +96,7 @@ &Help + @@ -142,6 +143,11 @@ &Stop + + + FAQ + + About Citra