Explorar o código

Add "Open Quickstart Guide" and "FAQ" buttons to the Help menu

While we're at it, also refactor the function used by OnOpenModsPage to be compatible with other URLs
VolcaEM %!s(int64=6) %!d(string=hai) anos
pai
achega
57b93395a8
Modificáronse 3 ficheiros con 48 adicións e 0 borrados
  1. 26 0
      src/yuzu/main.cpp
  2. 4 0
      src/yuzu/main.h
  3. 18 0
      src/yuzu/main.ui

+ 26 - 0
src/yuzu/main.cpp

@@ -56,6 +56,7 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual
 #include <QShortcut>
 #include <QStatusBar>
 #include <QSysInfo>
+#include <QUrl>
 #include <QtConcurrent/QtConcurrent>
 
 #include <fmt/format.h>
@@ -826,6 +827,9 @@ void GMainWindow::ConnectMenuEvents() {
     connect(ui.action_Stop, &QAction::triggered, this, &GMainWindow::OnStopGame);
     connect(ui.action_Report_Compatibility, &QAction::triggered, this,
             &GMainWindow::OnMenuReportCompatibility);
+    connect(ui.action_Open_Mods_Page, &QAction::triggered, this, &GMainWindow::OnOpenModsPage);
+    connect(ui.action_Open_Quickstart_Guide, &QAction::triggered, this, &GMainWindow::OnQuickstartGuide);
+    connect(ui.action_Open_FAQ, &QAction::triggered, this, &GMainWindow::OnFAQ);
     connect(ui.action_Restart, &QAction::triggered, this, [this] { BootGame(QString(game_path)); });
     connect(ui.action_Configure, &QAction::triggered, this, &GMainWindow::OnConfigure);
 
@@ -1797,6 +1801,28 @@ void GMainWindow::OnMenuReportCompatibility() {
     }
 }
 
+void GMainWindow::OpenURL(QString const& url_str) {
+
+    const QUrl url{url_str};
+    const bool open = QDesktopServices::openUrl(url);
+    if (!open) {
+        QMessageBox::warning(this, tr("Error opening URL"),
+                             tr("Unable to open the URL \"%1\".").arg(url_str));
+    }
+}
+
+void GMainWindow::OnOpenModsPage() {
+    this->OpenURL(QStringLiteral("https://github.com/yuzu-emu/yuzu/wiki/Switch-Mods"));
+}
+
+void GMainWindow::OnQuickstartGuide() {
+    this->OpenURL(QStringLiteral("https://yuzu-emu.org/help/quickstart/"));
+}
+
+void GMainWindow::OnFAQ() {
+    this->OpenURL(QStringLiteral("https://yuzu-emu.org/wiki/faq/"));
+}
+
 void GMainWindow::ToggleFullscreen() {
     if (!emulation_running) {
         return;

+ 4 - 0
src/yuzu/main.h

@@ -181,6 +181,9 @@ private slots:
     void OnPauseGame();
     void OnStopGame();
     void OnMenuReportCompatibility();
+    void OnOpenModsPage();
+    void OnQuickstartGuide();
+    void OnFAQ();
     /// Called whenever a user selects a game in the game list widget.
     void OnGameListLoadFile(QString game_path);
     void OnGameListOpenFolder(GameListOpenTarget target, const std::string& game_path);
@@ -219,6 +222,7 @@ private:
     void UpdateStatusBar();
     void HideMouseCursor();
     void ShowMouseCursor();
+    void OpenURL(const QString& url_str);
 
     Ui::MainWindow ui;
 

+ 18 - 0
src/yuzu/main.ui

@@ -113,6 +113,9 @@
      <string>&amp;Help</string>
     </property>
     <addaction name="action_Report_Compatibility"/>
+    <addaction name="action_Open_Mods_Page"/>
+	<addaction name="action_Open_Quickstart_Guide"/>
+	<addaction name="action_Open_FAQ"/>
     <addaction name="separator"/>
     <addaction name="action_About"/>
    </widget>
@@ -256,6 +259,21 @@
     <bool>false</bool>
    </property>
   </action>
+  <action name="action_Open_Mods_Page">
+   <property name="text">
+    <string>Open Mods Page</string>
+   </property>
+  </action>
+  <action name="action_Open_Quickstart_Guide">
+   <property name="text">
+    <string>Open Quickstart Guide</string>
+   </property>
+  </action>
+  <action name="action_Open_FAQ">
+   <property name="text">
+    <string>FAQ</string>
+   </property>
+  </action>
   <action name="action_Open_yuzu_Folder">
    <property name="text">
     <string>Open yuzu Folder</string>