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/settingsfeedsmessages.h
|
||||||
gui/settings/settingsgeneral.cpp
|
gui/settings/settingsgeneral.cpp
|
||||||
gui/settings/settingsgeneral.h
|
gui/settings/settingsgeneral.h
|
||||||
|
gui/settings/settingsmediaplayer.cpp
|
||||||
|
gui/settings/settingsmediaplayer.h
|
||||||
gui/settings/settingsgui.cpp
|
gui/settings/settingsgui.cpp
|
||||||
gui/settings/settingsgui.h
|
gui/settings/settingsgui.h
|
||||||
gui/settings/settingslocalization.cpp
|
gui/settings/settingslocalization.cpp
|
||||||
@ -478,6 +480,7 @@ set(UI_FILES
|
|||||||
gui/settings/settingsnodejs.ui
|
gui/settings/settingsnodejs.ui
|
||||||
gui/settings/settingsnotifications.ui
|
gui/settings/settingsnotifications.ui
|
||||||
gui/settings/settingsshortcuts.ui
|
gui/settings/settingsshortcuts.ui
|
||||||
|
gui/settings/settingsmediaplayer.ui
|
||||||
gui/toolbars/toolbareditor.ui
|
gui/toolbars/toolbareditor.ui
|
||||||
network-web/adblock/adblockdialog.ui
|
network-web/adblock/adblockdialog.ui
|
||||||
network-web/downloaditem.ui
|
network-web/downloaditem.ui
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "gui/settings/settingsgeneral.h"
|
#include "gui/settings/settingsgeneral.h"
|
||||||
#include "gui/settings/settingsgui.h"
|
#include "gui/settings/settingsgui.h"
|
||||||
#include "gui/settings/settingslocalization.h"
|
#include "gui/settings/settingslocalization.h"
|
||||||
|
#include "gui/settings/settingsmediaplayer.h"
|
||||||
#include "gui/settings/settingsnodejs.h"
|
#include "gui/settings/settingsnodejs.h"
|
||||||
#include "gui/settings/settingsnotifications.h"
|
#include "gui/settings/settingsnotifications.h"
|
||||||
#include "gui/settings/settingsshortcuts.h"
|
#include "gui/settings/settingsshortcuts.h"
|
||||||
@ -24,12 +25,12 @@
|
|||||||
#include <QScrollArea>
|
#include <QScrollArea>
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
|
|
||||||
FormSettings::FormSettings(QWidget& parent)
|
FormSettings::FormSettings(QWidget& parent) : QDialog(&parent), m_settings(*qApp->settings()) {
|
||||||
: QDialog(&parent), m_settings(*qApp->settings()) {
|
|
||||||
m_ui.setupUi(this);
|
m_ui.setupUi(this);
|
||||||
|
|
||||||
// Set flags and attributes.
|
// 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);
|
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 SettingsShortcuts(&m_settings, this));
|
||||||
addSettingsPanel(new SettingsBrowserMail(&m_settings, this));
|
addSettingsPanel(new SettingsBrowserMail(&m_settings, this));
|
||||||
addSettingsPanel(new SettingsNodejs(&m_settings, this));
|
addSettingsPanel(new SettingsNodejs(&m_settings, this));
|
||||||
|
addSettingsPanel(new SettingsMediaPlayer(&m_settings, this));
|
||||||
addSettingsPanel(new SettingsDownloads(&m_settings, this));
|
addSettingsPanel(new SettingsDownloads(&m_settings, this));
|
||||||
addSettingsPanel(new SettingsFeedsMessages(&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);
|
m_ui.m_listSettings->setCurrentRow(0);
|
||||||
|
|
||||||
resize(qApp->settings()->value(GROUP(GUI), GUI::SettingsWindowInitialSize, size()).toSize());
|
resize(qApp->settings()->value(GROUP(GUI), GUI::SettingsWindowInitialSize, size()).toSize());
|
||||||
@ -63,7 +66,7 @@ FormSettings::~FormSettings() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FormSettings::openSettingsCategory(int category) {
|
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()) {
|
if (!m_panels.at(category)->isLoaded()) {
|
||||||
m_panels.at(category)->loadSettings();
|
m_panels.at(category)->loadSettings();
|
||||||
}
|
}
|
||||||
@ -94,19 +97,17 @@ void FormSettings::applySettings() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!panels_for_restart.isEmpty()) {
|
if (!panels_for_restart.isEmpty()) {
|
||||||
const QStringList changed_settings_description = panels_for_restart.replaceInStrings(QRegularExpression(QSL("^")),
|
const QStringList changed_settings_description =
|
||||||
QString::fromUtf8(QByteArray(" • ")));
|
panels_for_restart.replaceInStrings(QRegularExpression(QSL("^")), QString::fromUtf8(QByteArray(" • ")));
|
||||||
const QMessageBox::StandardButton clicked_button = MsgBox::show(this,
|
const QMessageBox::StandardButton clicked_button =
|
||||||
|
MsgBox::show(this,
|
||||||
QMessageBox::Icon::Question,
|
QMessageBox::Icon::Question,
|
||||||
tr("Critical settings were changed"),
|
tr("Critical settings were changed"),
|
||||||
tr(
|
tr("Some critical settings were changed and will be applied after the application gets restarted. "
|
||||||
"Some critical settings were changed and will be applied after the application gets restarted. "
|
|
||||||
"\n\nYou have to restart manually."),
|
"\n\nYou have to restart manually."),
|
||||||
tr("Do you want to restart now?"),
|
tr("Do you want to restart now?"),
|
||||||
tr("Changed categories of settings:\n%1.").arg(
|
tr("Changed categories of settings:\n%1.").arg(changed_settings_description.join(QSL(",\n"))),
|
||||||
changed_settings_description.join(QSL(",\n"))),
|
QMessageBox::StandardButton::Yes | QMessageBox::StandardButton::No,
|
||||||
QMessageBox::StandardButton::Yes |
|
|
||||||
QMessageBox::StandardButton::No,
|
|
||||||
QMessageBox::StandardButton::Yes);
|
QMessageBox::StandardButton::Yes);
|
||||||
|
|
||||||
if (clicked_button == QMessageBox::Yes) {
|
if (clicked_button == QMessageBox::Yes) {
|
||||||
@ -132,8 +133,8 @@ void FormSettings::cancelSettings() {
|
|||||||
reject();
|
reject();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const QStringList changed_settings_description = changed_panels.replaceInStrings(QRegularExpression(QSL("^")),
|
const QStringList changed_settings_description =
|
||||||
QString::fromUtf8(QByteArray(" • ")));
|
changed_panels.replaceInStrings(QRegularExpression(QSL("^")), QString::fromUtf8(QByteArray(" • ")));
|
||||||
|
|
||||||
if (MsgBox::show(this,
|
if (MsgBox::show(this,
|
||||||
QMessageBox::Icon::Critical,
|
QMessageBox::Icon::Critical,
|
||||||
@ -142,8 +143,7 @@ void FormSettings::cancelSettings() {
|
|||||||
tr("Do you really want to close this dialog without saving any settings?"),
|
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"))),
|
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::No,
|
||||||
QMessageBox::StandardButton::Yes) ==
|
QMessageBox::StandardButton::Yes) == QMessageBox::StandardButton::Yes) {
|
||||||
QMessageBox::StandardButton::Yes) {
|
|
||||||
reject();
|
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