diff --git a/src/duckstation-qt/foldersettingswidget.cpp b/src/duckstation-qt/foldersettingswidget.cpp
index 3b17a435a..279739209 100644
--- a/src/duckstation-qt/foldersettingswidget.cpp
+++ b/src/duckstation-qt/foldersettingswidget.cpp
@@ -21,9 +21,6 @@ FolderSettingsWidget::FolderSettingsWidget(SettingsWindow* dialog, QWidget* pare
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.covers, m_ui.coversBrowse, tr("Select Covers Directory"),
m_ui.coversOpen, m_ui.coversReset, "Folders", "Covers",
Path::Combine(EmuFolders::DataRoot, "covers"));
- SettingWidgetBinder::BindWidgetToFolderSetting(
- sif, m_ui.saveStates, m_ui.saveStatesBrowse, tr("Select Save States Directory"), m_ui.saveStatesOpen,
- m_ui.saveStatesReset, "Folders", "SaveStates", Path::Combine(EmuFolders::DataRoot, "savestates"));
SettingWidgetBinder::BindWidgetToFolderSetting(
sif, m_ui.screenshots, m_ui.screenshotsBrowse, tr("Select Screenshots Directory"), m_ui.screenshotsOpen,
m_ui.screenshotsReset, "Folders", "Screenshots", Path::Combine(EmuFolders::DataRoot, "screenshots"));
diff --git a/src/duckstation-qt/foldersettingswidget.ui b/src/duckstation-qt/foldersettingswidget.ui
index a9ffed2d3..f2f40f743 100644
--- a/src/duckstation-qt/foldersettingswidget.ui
+++ b/src/duckstation-qt/foldersettingswidget.ui
@@ -103,46 +103,6 @@
- -
-
-
- Save States Directory
-
-
-
-
-
-
- Used for storing save states.
-
-
-
- -
-
-
- -
-
-
- Browse...
-
-
-
- -
-
-
- Open...
-
-
-
- -
-
-
- Reset
-
-
-
-
-
-
-
diff --git a/src/duckstation-qt/memorycardsettingswidget.cpp b/src/duckstation-qt/memorycardsettingswidget.cpp
index 4f8c853ba..1c929bf89 100644
--- a/src/duckstation-qt/memorycardsettingswidget.cpp
+++ b/src/duckstation-qt/memorycardsettingswidget.cpp
@@ -20,6 +20,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -42,7 +43,7 @@ MemoryCardSettingsWidget::~MemoryCardSettingsWidget() = default;
void MemoryCardSettingsWidget::createUi(SettingsWindow* dialog)
{
- QVBoxLayout* layout = new QVBoxLayout(this);
+ QVBoxLayout* const layout = new QVBoxLayout(this);
layout->setContentsMargins(0, 0, 0, 0);
for (int i = 0; i < static_cast(m_port_ui.size()); i++)
@@ -53,26 +54,71 @@ void MemoryCardSettingsWidget::createUi(SettingsWindow* dialog)
}
{
- QGroupBox* box = new QGroupBox(tr("Game-Specific Card Settings"), this);
- QVBoxLayout* box_layout = new QVBoxLayout(box);
- QPushButton* browse = new QPushButton(tr("Browse..."), box);
- QPushButton* open_memcards = new QPushButton(tr("Open..."), box);
- QPushButton* reset = new QPushButton(qApp->translate("QPlatformTheme", "Reset"), box);
+ QGroupBox* const box = new QGroupBox(tr("Save Locations"), this);
+ QGridLayout* const box_layout = new QGridLayout(box);
+ layout->addWidget(box);
{
- QLabel* label = new QLabel(tr("Memory Card Directory:"), box);
- box_layout->addWidget(label);
+ QHBoxLayout* const hbox = new QHBoxLayout();
+ QLabel* const label = new QLabel(tr("Memory Cards:"), box);
+ box_layout->addWidget(label, 0, 0);
+ QLineEdit* const directory = new QLineEdit(box);
+ QPushButton* const browse = new QPushButton(box);
+ browse->setToolTip(tr("Browse..."));
+ browse->setIcon(QIcon::fromTheme("folder-open-line"));
+ QPushButton* const open = new QPushButton(box);
+ open->setToolTip(tr("Open..."));
+ open->setIcon(QIcon::fromTheme("open-folder-line"));
+ QPushButton* const reset = new QPushButton(box);
+ reset->setToolTip(qApp->translate("QPlatformTheme", "Reset"));
+ reset->setIcon(QIcon::fromTheme("delete-back-2-line"));
+ hbox->addWidget(directory);
+ hbox->addWidget(browse);
+ hbox->addWidget(open);
+ hbox->addWidget(reset);
+ box_layout->addLayout(hbox, 0, 1);
+
+ SettingWidgetBinder::BindWidgetToFolderSetting(m_dialog->getSettingsInterface(), directory, browse,
+ tr("Select Memory Card Directory"), open, reset, "MemoryCards",
+ "Directory", Path::Combine(EmuFolders::DataRoot, "memcards"));
- QHBoxLayout* hbox = new QHBoxLayout();
- m_memory_card_directory = new QLineEdit(box);
+ dialog->registerWidgetHelp(directory, tr("Memory Cards Location"), tr("Default"),
+ tr("Specifies the directory where memory cards will be saved."));
+ }
- hbox->addWidget(m_memory_card_directory);
+ {
+ QHBoxLayout* const hbox = new QHBoxLayout();
+ QLabel* const label = new QLabel(tr("Save States:"), box);
+ box_layout->addWidget(label, 1, 0);
+ QLineEdit* const directory = new QLineEdit(box);
+ QPushButton* const browse = new QPushButton(box);
+ browse->setToolTip(tr("Browse..."));
+ browse->setIcon(QIcon::fromTheme("folder-open-line"));
+ QPushButton* const open = new QPushButton(box);
+ open->setToolTip(tr("Open..."));
+ open->setIcon(QIcon::fromTheme("open-folder-line"));
+ QPushButton* const reset = new QPushButton(box);
+ reset->setToolTip(qApp->translate("QPlatformTheme", "Reset"));
+ reset->setIcon(QIcon::fromTheme("delete-back-2-line"));
+ hbox->addWidget(directory);
hbox->addWidget(browse);
- hbox->addWidget(open_memcards);
+ hbox->addWidget(open);
hbox->addWidget(reset);
+ box_layout->addLayout(hbox, 1, 1);
- box_layout->addLayout(hbox);
+ SettingWidgetBinder::BindWidgetToFolderSetting(m_dialog->getSettingsInterface(), directory, browse,
+ tr("Select Save States Directory"), open, reset, "Folders",
+ "SaveStates", Path::Combine(EmuFolders::DataRoot, "savestates"));
+
+ dialog->registerWidgetHelp(directory, tr("Save States Location"), tr("Default"),
+ tr("Specifies the directory where save states will be saved."));
}
+ }
+
+ {
+ QGroupBox* const box = new QGroupBox(tr("Game-Specific Card Settings"), this);
+ QVBoxLayout* const box_layout = new QVBoxLayout(box);
+ layout->addWidget(box);
QCheckBox* playlist_title_as_game_title = new QCheckBox(tr("Use Single Card For Multi-Disc Games"), box);
SettingWidgetBinder::BindWidgetToBoolSetting(m_dialog->getSettingsInterface(), playlist_title_as_game_title,
@@ -86,24 +132,18 @@ void MemoryCardSettingsWidget::createUi(SettingsWindow* dialog)
box_layout->addWidget(QtUtils::CreateHorizontalLine(box));
{
- QHBoxLayout* hbox = new QHBoxLayout();
- QLabel* label = new QLabel(
+ QHBoxLayout* const hbox = new QHBoxLayout();
+ QLabel* const label = new QLabel(
tr("The memory card editor enables you to move saves between cards, as well as import cards of other formats."),
box);
label->setWordWrap(true);
hbox->addWidget(label, 1);
- QPushButton* button = new QPushButton(tr("Memory Card Editor..."), box);
+ QPushButton* const button = new QPushButton(tr("Memory Card Editor..."), box);
connect(button, &QPushButton::clicked, []() { g_main_window->openMemoryCardEditor(QString(), QString()); });
hbox->addWidget(button);
box_layout->addLayout(hbox);
}
-
- layout->addWidget(box);
-
- SettingWidgetBinder::BindWidgetToFolderSetting(
- m_dialog->getSettingsInterface(), m_memory_card_directory, browse, tr("Select Memory Card Directory"),
- open_memcards, reset, "MemoryCards", "Directory", Path::Combine(EmuFolders::DataRoot, "memcards"));
}
layout->addStretch(1);
diff --git a/src/duckstation-qt/memorycardsettingswidget.h b/src/duckstation-qt/memorycardsettingswidget.h
index ddccbd9ce..3b5fe19c6 100644
--- a/src/duckstation-qt/memorycardsettingswidget.h
+++ b/src/duckstation-qt/memorycardsettingswidget.h
@@ -50,5 +50,4 @@ private:
void updateMemoryCardPath(int index);
std::array m_port_ui = {};
- QLineEdit* m_memory_card_directory = nullptr;
};
diff --git a/src/duckstation-qt/resources/duckstation-qt.qrc b/src/duckstation-qt/resources/duckstation-qt.qrc
index 6da484072..3a17aad07 100644
--- a/src/duckstation-qt/resources/duckstation-qt.qrc
+++ b/src/duckstation-qt/resources/duckstation-qt.qrc
@@ -96,6 +96,7 @@
icons/black/svg/multi-discs.svg
icons/black/svg/negcon-line.svg
icons/black/svg/numbers-fill.svg
+ icons/black/svg/open-folder-line.svg
icons/black/svg/paint-brush-line.svg
icons/black/svg/pause-line.svg
icons/black/svg/play-circle-line.svg
@@ -262,6 +263,7 @@
icons/white/svg/multi-discs.svg
icons/white/svg/negcon-line.svg
icons/white/svg/numbers-fill.svg
+ icons/white/svg/open-folder-line.svg
icons/white/svg/paint-brush-line.svg
icons/white/svg/pause-line.svg
icons/white/svg/play-circle-line.svg
diff --git a/src/duckstation-qt/resources/icons/black/svg/open-folder-line.svg b/src/duckstation-qt/resources/icons/black/svg/open-folder-line.svg
new file mode 100644
index 000000000..4f4b1c35f
--- /dev/null
+++ b/src/duckstation-qt/resources/icons/black/svg/open-folder-line.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/duckstation-qt/resources/icons/white/svg/open-folder-line.svg b/src/duckstation-qt/resources/icons/white/svg/open-folder-line.svg
new file mode 100644
index 000000000..4f4b1c35f
--- /dev/null
+++ b/src/duckstation-qt/resources/icons/white/svg/open-folder-line.svg
@@ -0,0 +1 @@
+
\ No newline at end of file