Răsfoiți Sursa

Add 'Load Folder' menu option

Zach Hilman 8 ani în urmă
părinte
comite
f969ddb54e
3 a modificat fișierele cu 17 adăugiri și 0 ștergeri
  1. 10 0
      src/yuzu/main.cpp
  2. 1 0
      src/yuzu/main.h
  3. 6 0
      src/yuzu/main.ui

+ 10 - 0
src/yuzu/main.cpp

@@ -278,6 +278,7 @@ void GMainWindow::ConnectWidgetEvents() {
 void GMainWindow::ConnectMenuEvents() {
     // File
     connect(ui.action_Load_File, &QAction::triggered, this, &GMainWindow::OnMenuLoadFile);
+    connect(ui.action_Load_Folder, &QAction::triggered, this, &GMainWindow::OnMenuLoadFolder);
     connect(ui.action_Select_Game_List_Root, &QAction::triggered, this,
             &GMainWindow::OnMenuSelectGameListRoot);
     connect(ui.action_Exit, &QAction::triggered, this, &QMainWindow::close);
@@ -564,6 +565,15 @@ void GMainWindow::OnMenuLoadFile() {
     }
 }
 
+void GMainWindow::OnMenuLoadFolder() {
+    QDir dir = QFileDialog::getExistingDirectory(this, tr("Open Extracted ROM Directory"));
+
+    QStringList matchingMain = dir.entryList(QStringList() << "main", QDir::Files);
+    if (matchingMain.size() == 1) {
+        BootGame(matchingMain[0]);
+    }
+}
+
 void GMainWindow::OnMenuSelectGameListRoot() {
     QString dir_path = QFileDialog::getExistingDirectory(this, tr("Select Directory"));
     if (!dir_path.isEmpty()) {

+ 1 - 0
src/yuzu/main.h

@@ -123,6 +123,7 @@ private slots:
     void OnGameListLoadFile(QString game_path);
     void OnGameListOpenSaveFolder(u64 program_id);
     void OnMenuLoadFile();
+    void OnMenuLoadFolder();
     /// Called whenever a user selects the "File->Select Game List Root" menu item
     void OnMenuSelectGameListRoot();
     void OnMenuRecentFile();

+ 6 - 0
src/yuzu/main.ui

@@ -58,6 +58,7 @@
      </property>
     </widget>
     <addaction name="action_Load_File"/>
+    <addaction name="action_Load_Folder"/>
     <addaction name="separator"/>
     <addaction name="action_Select_Game_List_Root"/>
     <addaction name="menu_recent_files"/>
@@ -106,6 +107,11 @@
     <string>Load File...</string>
    </property>
   </action>
+  <action name="action_Load_Folder">
+   <property name="text">
+    <string>Load Folder...</string>
+   </property>
+  </action>
   <action name="action_Load_Symbol_Map">
    <property name="text">
     <string>Load Symbol Map...</string>