diff --git a/dist/icons/citra.png b/dist/icons/citra.png new file mode 100644 index 000000000..83fa499dd Binary files /dev/null and b/dist/icons/citra.png differ 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