settings for media player
This commit is contained in:
parent
6e463cb4e2
commit
37bd200cde
@ -171,6 +171,8 @@ set(SOURCES
|
||||
gui/settings/settingsfeedsmessages.h
|
||||
gui/settings/settingsgeneral.cpp
|
||||
gui/settings/settingsgeneral.h
|
||||
gui/settings/settingsmediaplayer.cpp
|
||||
gui/settings/settingsmediaplayer.h
|
||||
gui/settings/settingsgui.cpp
|
||||
gui/settings/settingsgui.h
|
||||
gui/settings/settingslocalization.cpp
|
||||
@ -478,6 +480,7 @@ set(UI_FILES
|
||||
gui/settings/settingsnodejs.ui
|
||||
gui/settings/settingsnotifications.ui
|
||||
gui/settings/settingsshortcuts.ui
|
||||
gui/settings/settingsmediaplayer.ui
|
||||
gui/toolbars/toolbareditor.ui
|
||||
network-web/adblock/adblockdialog.ui
|
||||
network-web/downloaditem.ui
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include "gui/settings/settingsgeneral.h"
|
||||
#include "gui/settings/settingsgui.h"
|
||||
#include "gui/settings/settingslocalization.h"
|
||||
#include "gui/settings/settingsmediaplayer.h"
|
||||
#include "gui/settings/settingsnodejs.h"
|
||||
#include "gui/settings/settingsnotifications.h"
|
||||
#include "gui/settings/settingsshortcuts.h"
|
||||
@ -24,12 +25,12 @@
|
||||
#include <QScrollArea>
|
||||
#include <QScrollBar>
|
||||
|
||||
FormSettings::FormSettings(QWidget& parent)
|
||||
: QDialog(&parent), m_settings(*qApp->settings()) {
|
||||
FormSettings::FormSettings(QWidget& parent) : QDialog(&parent), m_settings(*qApp->settings()) {
|
||||
m_ui.setupUi(this);
|
||||
|
||||
// Set flags and attributes.
|
||||
GuiUtilities::applyDialogProperties(*this, qApp->icons()->fromTheme(QSL("emblem-system"), QSL("applications-system")));
|
||||
GuiUtilities::applyDialogProperties(*this,
|
||||
qApp->icons()->fromTheme(QSL("emblem-system"), QSL("applications-system")));
|
||||
|
||||
m_btnApply = m_ui.m_buttonBox->button(QDialogButtonBox::StandardButton::Apply);
|
||||
|
||||
@ -49,10 +50,12 @@ FormSettings::FormSettings(QWidget& parent)
|
||||
addSettingsPanel(new SettingsShortcuts(&m_settings, this));
|
||||
addSettingsPanel(new SettingsBrowserMail(&m_settings, this));
|
||||
addSettingsPanel(new SettingsNodejs(&m_settings, this));
|
||||
addSettingsPanel(new SettingsMediaPlayer(&m_settings, this));
|
||||
addSettingsPanel(new SettingsDownloads(&m_settings, this));
|
||||
addSettingsPanel(new SettingsFeedsMessages(&m_settings, this));
|
||||
|
||||
m_ui.m_listSettings->setMaximumWidth(m_ui.m_listSettings->sizeHintForColumn(0) + 6 * m_ui.m_listSettings->frameWidth());
|
||||
m_ui.m_listSettings->setMaximumWidth(m_ui.m_listSettings->sizeHintForColumn(0) +
|
||||
6 * m_ui.m_listSettings->frameWidth());
|
||||
m_ui.m_listSettings->setCurrentRow(0);
|
||||
|
||||
resize(qApp->settings()->value(GROUP(GUI), GUI::SettingsWindowInitialSize, size()).toSize());
|
||||
@ -63,7 +66,7 @@ FormSettings::~FormSettings() {
|
||||
}
|
||||
|
||||
void FormSettings::openSettingsCategory(int category) {
|
||||
if (category >=0 && category < m_panels.size()) {
|
||||
if (category >= 0 && category < m_panels.size()) {
|
||||
if (!m_panels.at(category)->isLoaded()) {
|
||||
m_panels.at(category)->loadSettings();
|
||||
}
|
||||
@ -94,20 +97,18 @@ void FormSettings::applySettings() {
|
||||
}
|
||||
|
||||
if (!panels_for_restart.isEmpty()) {
|
||||
const QStringList changed_settings_description = panels_for_restart.replaceInStrings(QRegularExpression(QSL("^")),
|
||||
QString::fromUtf8(QByteArray(" • ")));
|
||||
const QMessageBox::StandardButton clicked_button = MsgBox::show(this,
|
||||
QMessageBox::Icon::Question,
|
||||
tr("Critical settings were changed"),
|
||||
tr(
|
||||
"Some critical settings were changed and will be applied after the application gets restarted. "
|
||||
"\n\nYou have to restart manually."),
|
||||
tr("Do you want to restart now?"),
|
||||
tr("Changed categories of settings:\n%1.").arg(
|
||||
changed_settings_description.join(QSL(",\n"))),
|
||||
QMessageBox::StandardButton::Yes |
|
||||
QMessageBox::StandardButton::No,
|
||||
QMessageBox::StandardButton::Yes);
|
||||
const QStringList changed_settings_description =
|
||||
panels_for_restart.replaceInStrings(QRegularExpression(QSL("^")), QString::fromUtf8(QByteArray(" • ")));
|
||||
const QMessageBox::StandardButton clicked_button =
|
||||
MsgBox::show(this,
|
||||
QMessageBox::Icon::Question,
|
||||
tr("Critical settings were changed"),
|
||||
tr("Some critical settings were changed and will be applied after the application gets restarted. "
|
||||
"\n\nYou have to restart manually."),
|
||||
tr("Do you want to restart now?"),
|
||||
tr("Changed categories of settings:\n%1.").arg(changed_settings_description.join(QSL(",\n"))),
|
||||
QMessageBox::StandardButton::Yes | QMessageBox::StandardButton::No,
|
||||
QMessageBox::StandardButton::Yes);
|
||||
|
||||
if (clicked_button == QMessageBox::Yes) {
|
||||
qApp->restart();
|
||||
@ -132,18 +133,17 @@ void FormSettings::cancelSettings() {
|
||||
reject();
|
||||
}
|
||||
else {
|
||||
const QStringList changed_settings_description = changed_panels.replaceInStrings(QRegularExpression(QSL("^")),
|
||||
QString::fromUtf8(QByteArray(" • ")));
|
||||
const QStringList changed_settings_description =
|
||||
changed_panels.replaceInStrings(QRegularExpression(QSL("^")), QString::fromUtf8(QByteArray(" • ")));
|
||||
|
||||
if (MsgBox::show(this,
|
||||
QMessageBox::Icon::Critical,
|
||||
tr("Some settings are changed and will be lost"),
|
||||
tr("Some settings were changed and by cancelling this dialog, you would lose these changes."),
|
||||
tr("Do you really want to close this dialog without saving any settings?"),
|
||||
tr("Changed categories of settings:\n%1.").arg(changed_settings_description.join(QSL(",\n"))),
|
||||
QMessageBox::StandardButton::Yes | QMessageBox::StandardButton::No,
|
||||
QMessageBox::StandardButton::Yes) ==
|
||||
QMessageBox::StandardButton::Yes) {
|
||||
QMessageBox::Icon::Critical,
|
||||
tr("Some settings are changed and will be lost"),
|
||||
tr("Some settings were changed and by cancelling this dialog, you would lose these changes."),
|
||||
tr("Do you really want to close this dialog without saving any settings?"),
|
||||
tr("Changed categories of settings:\n%1.").arg(changed_settings_description.join(QSL(",\n"))),
|
||||
QMessageBox::StandardButton::Yes | QMessageBox::StandardButton::No,
|
||||
QMessageBox::StandardButton::Yes) == QMessageBox::StandardButton::Yes) {
|
||||
reject();
|
||||
}
|
||||
}
|
||||
|
43
src/librssguard/gui/settings/settingsmediaplayer.cpp
Normal file
43
src/librssguard/gui/settings/settingsmediaplayer.cpp
Normal file
@ -0,0 +1,43 @@
|
||||
// For license of this file, see <project-root-folder>/LICENSE.md.
|
||||
|
||||
#include "gui/settings/settingsmediaplayer.h"
|
||||
|
||||
#include "miscellaneous/application.h"
|
||||
#include "miscellaneous/settings.h"
|
||||
|
||||
#if defined(ENABLE_MEDIAPLAYER_LIBMPV)
|
||||
#include <mpv/client.h>
|
||||
#endif
|
||||
|
||||
SettingsMediaPlayer::SettingsMediaPlayer(Settings* settings, QWidget* parent) : SettingsPanel(settings, parent) {
|
||||
m_ui.setupUi(this);
|
||||
}
|
||||
|
||||
void SettingsMediaPlayer::loadSettings() {
|
||||
onBeginLoadSettings();
|
||||
|
||||
#if defined(ENABLE_MEDIAPLAYER_LIBMPV)
|
||||
m_ui.m_txtBackend->setText(QSL("QtMultimedia"));
|
||||
m_ui.m_helpInfo->setHelpText(tr("You use modern libmpv-based media player backend with API version %1.")
|
||||
.arg(mpv_client_api_version()),
|
||||
false);
|
||||
#elif defined(ENABLE_MEDIAPLAYER_QTMULTIMEDIA)
|
||||
m_ui.m_txtBackend->setText(QSL("libmpv"));
|
||||
m_ui.m_helpInfo->setHelpText(tr("You use lightweight QtMultimedia-based media player backend."), false);
|
||||
#else
|
||||
m_ui.m_txtBackend->setText(tr("no backend installed"));
|
||||
m_ui.m_helpInfo->setHelpText(tr("You do not have any media player available. Media player is only supported on "
|
||||
"modern platforms where needed libraries are available. You must manually recompile "
|
||||
"%1 to be able to use media player.")
|
||||
.arg(QSL(APP_NAME)),
|
||||
true);
|
||||
#endif
|
||||
|
||||
onEndLoadSettings();
|
||||
}
|
||||
|
||||
void SettingsMediaPlayer::saveSettings() {
|
||||
onBeginSaveSettings();
|
||||
|
||||
onEndSaveSettings();
|
||||
}
|
28
src/librssguard/gui/settings/settingsmediaplayer.h
Normal file
28
src/librssguard/gui/settings/settingsmediaplayer.h
Normal file
@ -0,0 +1,28 @@
|
||||
// For license of this file, see <project-root-folder>/LICENSE.md.
|
||||
|
||||
#ifndef SETTINGSMEDIAPLAYER_H
|
||||
#define SETTINGSMEDIAPLAYER_H
|
||||
|
||||
#include "gui/settings/settingspanel.h"
|
||||
|
||||
#include "ui_settingsmediaplayer.h"
|
||||
|
||||
class SettingsMediaPlayer : public SettingsPanel {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SettingsMediaPlayer(Settings* settings, QWidget* parent = nullptr);
|
||||
|
||||
virtual QString title() const;
|
||||
virtual void loadSettings();
|
||||
virtual void saveSettings();
|
||||
|
||||
private:
|
||||
Ui::SettingsMediaPlayer m_ui;
|
||||
};
|
||||
|
||||
inline QString SettingsMediaPlayer::title() const {
|
||||
return tr("Media player");
|
||||
}
|
||||
|
||||
#endif // SETTINGSMEDIAPLAYER_H
|
50
src/librssguard/gui/settings/settingsmediaplayer.ui
Normal file
50
src/librssguard/gui/settings/settingsmediaplayer.ui
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>SettingsMediaPlayer</class>
|
||||
<widget class="QWidget" name="SettingsMediaPlayer">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>360</width>
|
||||
<height>148</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="m_lblBackend">
|
||||
<property name="text">
|
||||
<string>Backend</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="m_txtBackend">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QStackedWidget" name="stackedWidget">
|
||||
<widget class="QWidget" name="m_pageQtMultimedia"/>
|
||||
<widget class="QWidget" name="m_pageLibmpv"/>
|
||||
<widget class="QWidget" name="m_pageNothing"/>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="HelpSpoiler" name="m_helpInfo" native="true"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>HelpSpoiler</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>helpspoiler.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Loading…
x
Reference in New Issue
Block a user