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