From f05f5aeb2b8c53928ad652566ec3ff28b62ceb43 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Fri, 24 Jan 2020 14:51:31 +1000 Subject: [PATCH] Qt: Implement browse button for BIOS path --- src/duckstation-qt/consolesettingswidget.cpp | 17 +++++++++++++++++ src/duckstation-qt/consolesettingswidget.h | 3 +++ 2 files changed, 20 insertions(+) diff --git a/src/duckstation-qt/consolesettingswidget.cpp b/src/duckstation-qt/consolesettingswidget.cpp index c0d868ae4..43391ce40 100644 --- a/src/duckstation-qt/consolesettingswidget.cpp +++ b/src/duckstation-qt/consolesettingswidget.cpp @@ -1,5 +1,8 @@ #include "consolesettingswidget.h" #include "settingwidgetbinder.h" +#include + +static constexpr char BIOS_IMAGE_FILTER[] = "Binary Images (*.bin);;All Files (*.*)"; ConsoleSettingsWidget::ConsoleSettingsWidget(QtHostInterface* host_interface, QWidget* parent /* = nullptr */) : QWidget(parent), m_host_interface(host_interface) @@ -14,6 +17,20 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(QtHostInterface* host_interface, QW SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.enableSpeedLimiter, "General/SpeedLimiterEnabled"); SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.pauseOnStart, "General/StartPaused"); + + connect(m_ui.biosPathBrowse, &QPushButton::pressed, this, &ConsoleSettingsWidget::onBrowseBIOSPathButtonClicked); } ConsoleSettingsWidget::~ConsoleSettingsWidget() = default; + +void ConsoleSettingsWidget::onBrowseBIOSPathButtonClicked() +{ + QString path = QFileDialog::getOpenFileName(this, tr("Select BIOS Image"), QString(), tr(BIOS_IMAGE_FILTER)); + if (path.isEmpty()) + return; + + m_ui.biosPath->setText(path); + + m_host_interface->putSettingValue("BIOS/Path", path); + m_host_interface->applySettings(); +} diff --git a/src/duckstation-qt/consolesettingswidget.h b/src/duckstation-qt/consolesettingswidget.h index 5d45284b9..dd8fba125 100644 --- a/src/duckstation-qt/consolesettingswidget.h +++ b/src/duckstation-qt/consolesettingswidget.h @@ -14,6 +14,9 @@ public: explicit ConsoleSettingsWidget(QtHostInterface* host_interface, QWidget* parent = nullptr); ~ConsoleSettingsWidget(); +private Q_SLOTS: + void onBrowseBIOSPathButtonClicked(); + private: Ui::ConsoleSettingsWidget m_ui;