diff --git a/dist/icons/citra.png b/dist/icons/citra.png
new file mode 100644
index 0000000000..83fa499dd3
Binary files /dev/null and b/dist/icons/citra.png differ
diff --git a/dist/icons/icons.qrc b/dist/icons/icons.qrc
index f0c44862f7..a258049079 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 add7566c24..8b6c09c2b5 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 0000000000..9c11168ba8
--- /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 0000000000..6067897741
--- /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 0000000000..32f0a0356c
--- /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;">"3DS" 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 e0de66e02c..00230d4bd0 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 4efab9a4ab..18354bdf75 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 617343e519..442904f015 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