Qt: Fix folder selection title bar

This commit is contained in:
Stenzek 2024-08-10 00:14:01 +10:00
parent 55d095174f
commit 76f6eafdbc
No known key found for this signature in database
5 changed files with 35 additions and 36 deletions

View file

@ -66,9 +66,9 @@ BIOSSettingsWidget::BIOSSettingsWidget(SettingsWindow* dialog, QWidget* parent)
if (!m_dialog->isPerGameSettings()) if (!m_dialog->isPerGameSettings())
{ {
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.searchDirectory, m_ui.browseSearchDirectory, SettingWidgetBinder::BindWidgetToFolderSetting(
m_ui.openSearchDirectory, nullptr, "BIOS", "SearchDirectory", sif, m_ui.searchDirectory, m_ui.browseSearchDirectory, tr("Select BIOS Directory"), m_ui.openSearchDirectory,
Path::Combine(EmuFolders::DataRoot, "bios")); nullptr, "BIOS", "SearchDirectory", Path::Combine(EmuFolders::DataRoot, "bios"));
connect(m_ui.searchDirectory, &QLineEdit::textChanged, this, &BIOSSettingsWidget::refreshList); connect(m_ui.searchDirectory, &QLineEdit::textChanged, this, &BIOSSettingsWidget::refreshList);
} }
else else

View file

@ -14,16 +14,18 @@ FolderSettingsWidget::FolderSettingsWidget(SettingsWindow* dialog, QWidget* pare
m_ui.setupUi(this); m_ui.setupUi(this);
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.cache, m_ui.cacheBrowse, m_ui.cacheOpen, m_ui.cacheReset, SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.cache, m_ui.cacheBrowse, tr("Select Cache Directory"),
"Folders", "Cache", Path::Combine(EmuFolders::DataRoot, "cache")); m_ui.cacheOpen, m_ui.cacheReset, "Folders", "Cache",
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.covers, m_ui.coversBrowse, m_ui.coversOpen, m_ui.coversReset, Path::Combine(EmuFolders::DataRoot, "cache"));
"Folders", "Covers", Path::Combine(EmuFolders::DataRoot, "covers")); SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.covers, m_ui.coversBrowse, tr("Select Covers Directory"),
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.screenshots, m_ui.screenshotsBrowse, m_ui.screenshotsOpen, m_ui.coversOpen, m_ui.coversReset, "Folders", "Covers",
m_ui.screenshotsReset, "Folders", "Screenshots", Path::Combine(EmuFolders::DataRoot, "covers"));
Path::Combine(EmuFolders::DataRoot, "screenshots")); SettingWidgetBinder::BindWidgetToFolderSetting(
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.saveStates, m_ui.saveStatesBrowse, m_ui.saveStatesOpen, sif, m_ui.screenshots, m_ui.screenshotsBrowse, tr("Select Screenshot Directory"), m_ui.screenshotsOpen,
m_ui.saveStatesReset, "Folders", "SaveStates", m_ui.screenshotsReset, "Folders", "Screenshots", Path::Combine(EmuFolders::DataRoot, "screenshots"));
Path::Combine(EmuFolders::DataRoot, "savestates")); SettingWidgetBinder::BindWidgetToFolderSetting(
sif, m_ui.saveStates, m_ui.saveStatesBrowse, tr("Select Save State Directory"), m_ui.saveStatesOpen,
m_ui.saveStatesReset, "Folders", "SaveStates", Path::Combine(EmuFolders::DataRoot, "savestates"));
} }
FolderSettingsWidget::~FolderSettingsWidget() = default; FolderSettingsWidget::~FolderSettingsWidget() = default;

View file

@ -90,9 +90,9 @@ void MemoryCardSettingsWidget::createUi(SettingsWindow* dialog)
layout->addWidget(box); layout->addWidget(box);
SettingWidgetBinder::BindWidgetToFolderSetting(m_dialog->getSettingsInterface(), m_memory_card_directory, browse, SettingWidgetBinder::BindWidgetToFolderSetting(
open_memcards, reset, "MemoryCards", "Directory", m_dialog->getSettingsInterface(), m_memory_card_directory, browse, tr("Select Memory Card Directory"),
Path::Combine(EmuFolders::DataRoot, "memcards")); open_memcards, reset, "MemoryCards", "Directory", Path::Combine(EmuFolders::DataRoot, "memcards"));
} }
layout->addStretch(1); layout->addStretch(1);
@ -114,9 +114,8 @@ void MemoryCardSettingsWidget::createPortSettingsUi(SettingsWindow* dialog, int
const MemoryCardType default_value = (index == 0) ? MemoryCardType::PerGameTitle : MemoryCardType::None; const MemoryCardType default_value = (index == 0) ? MemoryCardType::PerGameTitle : MemoryCardType::None;
SettingWidgetBinder::BindWidgetToEnumSetting(m_dialog->getSettingsInterface(), ui->memory_card_type, "MemoryCards", SettingWidgetBinder::BindWidgetToEnumSetting(m_dialog->getSettingsInterface(), ui->memory_card_type, "MemoryCards",
fmt::format("Card{}Type", index + 1), fmt::format("Card{}Type", index + 1), &Settings::ParseMemoryCardTypeName,
&Settings::ParseMemoryCardTypeName, &Settings::GetMemoryCardTypeName, &Settings::GetMemoryCardTypeName, default_value);
default_value);
ui->layout->addWidget(new QLabel(tr("Memory Card Type:"), ui->container)); ui->layout->addWidget(new QLabel(tr("Memory Card Type:"), ui->container));
ui->layout->addWidget(ui->memory_card_type); ui->layout->addWidget(ui->memory_card_type);

View file

@ -1179,9 +1179,9 @@ static void BindWidgetToEnumSetting(SettingsInterface* sif, WidgetType* widget,
} }
static inline void BindWidgetToFolderSetting(SettingsInterface* sif, QLineEdit* widget, QAbstractButton* browse_button, static inline void BindWidgetToFolderSetting(SettingsInterface* sif, QLineEdit* widget, QAbstractButton* browse_button,
QAbstractButton* open_button, QAbstractButton* reset_button, QString browse_title, QAbstractButton* open_button,
std::string section, std::string key, std::string default_value, QAbstractButton* reset_button, std::string section, std::string key,
bool use_relative = true) std::string default_value, bool use_relative = true)
{ {
using Accessor = SettingAccessor<QLineEdit>; using Accessor = SettingAccessor<QLineEdit>;
@ -1250,19 +1250,16 @@ static inline void BindWidgetToFolderSetting(SettingsInterface* sif, QLineEdit*
if (browse_button) if (browse_button)
{ {
QObject::connect(browse_button, &QAbstractButton::clicked, browse_button, [widget, key, value_changed]() { QObject::connect(browse_button, &QAbstractButton::clicked, browse_button,
const QString path(QDir::toNativeSeparators(QFileDialog::getExistingDirectory( [widget, browse_title = std::move(browse_title), value_changed]() {
QtUtils::GetRootWidget(widget), const QString path = QDir::toNativeSeparators(
// It seems that the latter half should show the types of folders that can be selected within Settings -> QFileDialog::getExistingDirectory(QtUtils::GetRootWidget(widget), browse_title));
// Folders, but right now it's broken. It would be best for localization purposes to duplicate this into if (path.isEmpty())
// multiple lines, each per type of folder. return;
qApp->translate("SettingWidgetBinder", "Select folder for %1").arg(QString::fromStdString(key)))));
if (path.isEmpty())
return;
widget->setText(path); widget->setText(path);
value_changed(); value_changed();
}); });
} }
if (open_button) if (open_button)
{ {

View file

@ -212,8 +212,9 @@ void SetupWizardDialog::languageChanged()
void SetupWizardDialog::setupBIOSPage() void SetupWizardDialog::setupBIOSPage()
{ {
SettingWidgetBinder::BindWidgetToFolderSetting(nullptr, m_ui.biosSearchDirectory, m_ui.browseBiosSearchDirectory, SettingWidgetBinder::BindWidgetToFolderSetting(nullptr, m_ui.biosSearchDirectory, m_ui.browseBiosSearchDirectory,
m_ui.openBiosSearchDirectory, m_ui.resetBiosSearchDirectory, "BIOS", tr("Select BIOS Directory"), m_ui.openBiosSearchDirectory,
"SearchDirectory", Path::Combine(EmuFolders::DataRoot, "bios")); m_ui.resetBiosSearchDirectory, "BIOS", "SearchDirectory",
Path::Combine(EmuFolders::DataRoot, "bios"));
refreshBiosList(); refreshBiosList();