diff --git a/src/duckstation-qt/gamelistwidget.h b/src/duckstation-qt/gamelistwidget.h
index a719a5b25..5d397f39f 100644
--- a/src/duckstation-qt/gamelistwidget.h
+++ b/src/duckstation-qt/gamelistwidget.h
@@ -41,6 +41,8 @@ public:
bool getShowGridCoverTitles() const;
+ const GameListEntry* getSelectedEntry() const;
+
Q_SIGNALS:
void entrySelected(const GameListEntry* entry);
void entryDoubleClicked(const GameListEntry* entry);
@@ -68,7 +70,6 @@ protected:
void resizeEvent(QResizeEvent* event);
private:
- const GameListEntry* getSelectedEntry() const;
void resizeTableViewColumnsToFit();
void loadTableViewColumnVisibilitySettings();
void saveTableViewColumnVisibilitySettings();
diff --git a/src/duckstation-qt/mainwindow.cpp b/src/duckstation-qt/mainwindow.cpp
index eb1a97b0f..571419ba5 100644
--- a/src/duckstation-qt/mainwindow.cpp
+++ b/src/duckstation-qt/mainwindow.cpp
@@ -361,6 +361,29 @@ void MainWindow::onViewSystemDisplayTriggered()
}
}
+void MainWindow::onViewGamePropertiesActionTriggered()
+{
+ const GameListEntry* entry;
+
+ if (m_emulation_running)
+ {
+ const std::string& path = System::GetRunningPath();
+ if (path.empty())
+ return;
+
+ entry = m_host_interface->getGameList()->GetEntryForPath(path.c_str());
+ }
+ else
+ {
+ entry = m_game_list_widget->getSelectedEntry();
+ }
+
+ if (!entry)
+ return;
+
+ GamePropertiesDialog::showForEntry(m_host_interface, entry, this);
+}
+
void MainWindow::onGitHubRepositoryActionTriggered()
{
QtUtils::OpenURL(this, "https://github.com/stenzek/duckstation/");
@@ -748,6 +771,7 @@ void MainWindow::connectSignals()
connect(m_ui.actionViewGameList, &QAction::triggered, this, &MainWindow::onViewGameListActionTriggered);
connect(m_ui.actionViewGameGrid, &QAction::triggered, this, &MainWindow::onViewGameGridActionTriggered);
connect(m_ui.actionViewSystemDisplay, &QAction::triggered, this, &MainWindow::onViewSystemDisplayTriggered);
+ connect(m_ui.actionViewGameProperties, &QAction::triggered, this, &MainWindow::onViewGamePropertiesActionTriggered);
connect(m_ui.actionGitHubRepository, &QAction::triggered, this, &MainWindow::onGitHubRepositoryActionTriggered);
connect(m_ui.actionIssueTracker, &QAction::triggered, this, &MainWindow::onIssueTrackerActionTriggered);
connect(m_ui.actionDiscordServer, &QAction::triggered, this, &MainWindow::onDiscordServerActionTriggered);
diff --git a/src/duckstation-qt/mainwindow.h b/src/duckstation-qt/mainwindow.h
index 10f187296..d4607abff 100644
--- a/src/duckstation-qt/mainwindow.h
+++ b/src/duckstation-qt/mainwindow.h
@@ -69,6 +69,7 @@ private Q_SLOTS:
void onViewGameListActionTriggered();
void onViewGameGridActionTriggered();
void onViewSystemDisplayTriggered();
+ void onViewGamePropertiesActionTriggered();
void onGitHubRepositoryActionTriggered();
void onIssueTrackerActionTriggered();
void onDiscordServerActionTriggered();
diff --git a/src/duckstation-qt/mainwindow.ui b/src/duckstation-qt/mainwindow.ui
index afc93399d..2fbe9eb8d 100644
--- a/src/duckstation-qt/mainwindow.ui
+++ b/src/duckstation-qt/mainwindow.ui
@@ -193,6 +193,7 @@
+
@@ -701,6 +702,11 @@
System &Display
+
+
+ Game &Properties
+
+
Memory &Card Editor