diff --git a/src/librssguard/gui/settings/settingsmediaplayer.cpp b/src/librssguard/gui/settings/settingsmediaplayer.cpp index f41371bff..329c761ab 100644 --- a/src/librssguard/gui/settings/settingsmediaplayer.cpp +++ b/src/librssguard/gui/settings/settingsmediaplayer.cpp @@ -10,6 +10,8 @@ #include "gui/mediaplayer/libmpv/libmpvbackend.h" #include + +#include #endif SettingsMediaPlayer::SettingsMediaPlayer(Settings* settings, QWidget* parent) : SettingsPanel(settings, parent) { @@ -39,6 +41,8 @@ void SettingsMediaPlayer::loadSettings() { ->value(GROUP(VideoPlayer), SETTING(VideoPlayer::MpvCustomConfigFolder)) .toString())); + + connect(m_ui.m_btnMpvConfigFolder, &QPushButton::clicked, this, &SettingsMediaPlayer::selectMpvConfigFolder); #elif defined(ENABLE_MEDIAPLAYER_QTMULTIMEDIA) m_ui.m_txtBackend->setText(QSL("QtMultimedia")); m_ui.m_helpInfo->setHelpText(tr("You use lightweight QtMultimedia-based media player backend. If some videos do not " @@ -58,6 +62,23 @@ void SettingsMediaPlayer::loadSettings() { onEndLoadSettings(); } +#if defined(ENABLE_MEDIAPLAYER_LIBMPV) +void SettingsMediaPlayer::selectMpvConfigFolder() { + QString real_path = qApp->replaceUserDataFolderPlaceholder(m_ui.m_txtMpvConfigFolder->text()); + QFileDialog dialog(this, tr("Select folder for your MPV configuration"), real_path); + + dialog.setFileMode(QFileDialog::FileMode::Directory); + dialog.setWindowIcon(icon()); + dialog.setOptions(QFileDialog::Option::DontUseNativeDialog | QFileDialog::Option::ShowDirsOnly | + QFileDialog::Option::HideNameFilterDetails); + dialog.setViewMode(QFileDialog::ViewMode::Detail); + + if (dialog.exec() == QDialog::DialogCode::Accepted && !dialog.selectedFiles().isEmpty()) { + m_ui.m_txtMpvConfigFolder->setText(QDir::toNativeSeparators(dialog.selectedFiles().at(0))); + } +} +#endif + void SettingsMediaPlayer::saveSettings() { onBeginSaveSettings(); diff --git a/src/librssguard/gui/settings/settingsmediaplayer.h b/src/librssguard/gui/settings/settingsmediaplayer.h index 7208b9424..0e3b52771 100644 --- a/src/librssguard/gui/settings/settingsmediaplayer.h +++ b/src/librssguard/gui/settings/settingsmediaplayer.h @@ -18,6 +18,11 @@ class SettingsMediaPlayer : public SettingsPanel { virtual void loadSettings(); virtual void saveSettings(); +#if defined(ENABLE_MEDIAPLAYER_LIBMPV) + private slots: + void selectMpvConfigFolder(); +#endif + private: Ui::SettingsMediaPlayer m_ui; };