Browse Source

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 6 năm trước cách đây
mục cha
commit
57b93395a8
3 tập tin đã thay đổi với 48 bổ sung0 xóa
  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>