Disable fading when alsa device is selected
This commit is contained in:
parent
1d35923f0c
commit
513aafca16
|
@ -210,7 +210,6 @@ set(SOURCES
|
|||
settings/behavioursettingspage.cpp
|
||||
settings/collectionsettingspage.cpp
|
||||
settings/backendsettingspage.cpp
|
||||
settings/playbacksettingspage.cpp
|
||||
settings/playlistsettingspage.cpp
|
||||
settings/networkproxysettingspage.cpp
|
||||
settings/appearancesettingspage.cpp
|
||||
|
@ -385,7 +384,6 @@ set(HEADERS
|
|||
settings/behavioursettingspage.h
|
||||
settings/collectionsettingspage.h
|
||||
settings/backendsettingspage.h
|
||||
settings/playbacksettingspage.h
|
||||
settings/playlistsettingspage.h
|
||||
settings/networkproxysettingspage.h
|
||||
settings/appearancesettingspage.h
|
||||
|
@ -477,7 +475,6 @@ set(UI
|
|||
settings/behavioursettingspage.ui
|
||||
settings/collectionsettingspage.ui
|
||||
settings/backendsettingspage.ui
|
||||
settings/playbacksettingspage.ui
|
||||
settings/playlistsettingspage.ui
|
||||
settings/networkproxysettingspage.ui
|
||||
settings/appearancesettingspage.ui
|
||||
|
|
|
@ -131,7 +131,6 @@
|
|||
#include "transcoder/transcodedialog.h"
|
||||
#include "settings/settingsdialog.h"
|
||||
#include "settings/behavioursettingspage.h"
|
||||
#include "settings/playbacksettingspage.h"
|
||||
#include "settings/playlistsettingspage.h"
|
||||
#ifdef HAVE_STREAM_TIDAL
|
||||
# include "settings/tidalsettingspage.h"
|
||||
|
|
|
@ -71,7 +71,6 @@
|
|||
#include "equalizer/equalizer.h"
|
||||
#include "analyzer/analyzercontainer.h"
|
||||
#include "settings/backendsettingspage.h"
|
||||
#include "settings/playbacksettingspage.h"
|
||||
#include "settings/behavioursettingspage.h"
|
||||
#include "settings/playlistsettingspage.h"
|
||||
#include "internet/internetservices.h"
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
#include "engine_fwd.h"
|
||||
#include "enginebase.h"
|
||||
#include "settings/backendsettingspage.h"
|
||||
#include "settings/playbacksettingspage.h"
|
||||
|
||||
Engine::Base::Base()
|
||||
: volume_(50),
|
||||
|
@ -100,18 +99,18 @@ void Engine::Base::ReloadSettings() {
|
|||
QSettings s;
|
||||
|
||||
s.beginGroup(BackendSettingsPage::kSettingsGroup);
|
||||
|
||||
output_ = s.value("output").toString();
|
||||
device_ = s.value("device");
|
||||
|
||||
buffer_duration_nanosec_ = s.value("bufferduration", 4000).toLongLong() * kNsecPerMsec;
|
||||
buffer_min_fill_ = s.value("bufferminfill", 33).toInt();
|
||||
|
||||
rg_enabled_ = s.value("rgenabled", false).toBool();
|
||||
rg_mode_ = s.value("rgmode", 0).toInt();
|
||||
rg_preamp_ = s.value("rgpreamp", 0.0).toDouble();
|
||||
rg_compression_ = s.value("rgcompression", true).toBool();
|
||||
buffer_duration_nanosec_ = s.value("bufferduration", 4000).toLongLong() * kNsecPerMsec;
|
||||
buffer_min_fill_ = s.value("bufferminfill", 33).toInt();
|
||||
mono_playback_ = s.value("monoplayback", false).toBool();
|
||||
s.endGroup();
|
||||
|
||||
s.beginGroup(PlaybackSettingsPage::kSettingsGroup);
|
||||
fadeout_enabled_ = s.value("FadeoutEnabled", false).toBool();
|
||||
crossfade_enabled_ = s.value("CrossfadeEnabled", false).toBool();
|
||||
autocrossfade_enabled_ = s.value("AutoCrossfadeEnabled", false).toBool();
|
||||
|
@ -121,6 +120,9 @@ void Engine::Base::ReloadSettings() {
|
|||
fadeout_duration_nanosec_ = (fadeout_duration_ * kNsecPerMsec);
|
||||
fadeout_pause_duration_ = s.value("FadeoutPauseDuration", 250).toLongLong();
|
||||
fadeout_pause_duration_nanosec_ = (fadeout_pause_duration_ * kNsecPerMsec);
|
||||
|
||||
mono_playback_ = s.value("monoplayback", false).toBool();
|
||||
|
||||
s.endGroup();
|
||||
|
||||
}
|
||||
|
|
|
@ -75,7 +75,6 @@
|
|||
#include "playlistview.h"
|
||||
#include "covermanager/currentartloader.h"
|
||||
#include "settings/appearancesettingspage.h"
|
||||
#include "settings/playbacksettingspage.h"
|
||||
#include "settings/playlistsettingspage.h"
|
||||
|
||||
using std::sort;
|
||||
|
|
|
@ -60,7 +60,6 @@ BackendSettingsPage::BackendSettingsPage(SettingsDialog *dialog) : SettingsPage(
|
|||
|
||||
ui_->label_bufferminfillvalue->setMinimumWidth(QFontMetrics(ui_->label_bufferminfillvalue->font()).width("WW%"));
|
||||
ui_->label_replaygainpreamp->setMinimumWidth(QFontMetrics(ui_->label_replaygainpreamp->font()).width("-WW.W dB"));
|
||||
|
||||
RgPreampChanged(ui_->stickslider_replaygainpreamp->value());
|
||||
|
||||
s_.beginGroup(BackendSettingsPage::kSettingsGroup);
|
||||
|
@ -107,7 +106,6 @@ void BackendSettingsPage::Load() {
|
|||
if (EngineInitialised()) Load_Engine(enginetype);
|
||||
|
||||
ui_->spinbox_bufferduration->setValue(s_.value("bufferduration", 4000).toInt());
|
||||
ui_->checkbox_monoplayback->setChecked(s_.value("monoplayback", false).toBool());
|
||||
ui_->slider_bufferminfill->setValue(s_.value("bufferminfill", 33).toInt());
|
||||
|
||||
ui_->checkbox_replaygain->setChecked(s_.value("rgenabled", false).toBool());
|
||||
|
@ -115,6 +113,16 @@ void BackendSettingsPage::Load() {
|
|||
ui_->stickslider_replaygainpreamp->setValue(s_.value("rgpreamp", 0.0).toDouble() * 10 + 150);
|
||||
ui_->checkbox_replaygaincompression->setChecked(s_.value("rgcompression", true).toBool());
|
||||
|
||||
ui_->checkbox_fadeout_stop->setChecked(s_.value("FadeoutEnabled", false).toBool());
|
||||
ui_->checkbox_fadeout_cross->setChecked(s_.value("CrossfadeEnabled", false).toBool());
|
||||
ui_->checkbox_fadeout_auto->setChecked(s_.value("AutoCrossfadeEnabled", false).toBool());
|
||||
ui_->checkbox_fadeout_samealbum->setChecked(s_.value("NoCrossfadeSameAlbum", true).toBool());
|
||||
ui_->checkbox_fadeout_pauseresume->setChecked(s_.value("FadeoutPauseEnabled", false).toBool());
|
||||
ui_->spinbox_fadeduration->setValue(s_.value("FadeoutDuration", 2000).toInt());
|
||||
ui_->spinbox_fadeduration_pauseresume->setValue(s_.value("FadeoutPauseDuration", 250).toInt());
|
||||
|
||||
ui_->checkbox_monoplayback->setChecked(s_.value("monoplayback", false).toBool());
|
||||
|
||||
int alsaplug_int = alsa_plugin(s_.value("alsaplugin", 0).toInt());
|
||||
if (alsa_plugin(alsaplug_int)) {
|
||||
alsa_plugin alsaplugin = alsa_plugin(alsaplug_int);
|
||||
|
@ -133,12 +141,9 @@ void BackendSettingsPage::Load() {
|
|||
if (engine()->state() == Engine::Empty) {
|
||||
if (ui_->combobox_engine->count() > 1) ui_->combobox_engine->setEnabled(true);
|
||||
else ui_->combobox_engine->setEnabled(false);
|
||||
ResetWarning();
|
||||
}
|
||||
else {
|
||||
ui_->combobox_engine->setEnabled(false);
|
||||
if (ui_->combobox_engine->count() > 1) ShowWarning("Engine can't be switched while playing. Close settings and reopen to change engine.");
|
||||
else ResetWarning();
|
||||
}
|
||||
|
||||
ConnectSignals();
|
||||
|
@ -153,10 +158,13 @@ void BackendSettingsPage::ConnectSignals() {
|
|||
connect(ui_->combobox_output, SIGNAL(currentIndexChanged(int)), SLOT(OutputChanged(int)));
|
||||
connect(ui_->combobox_device, SIGNAL(currentIndexChanged(int)), SLOT(DeviceSelectionChanged(int)));
|
||||
connect(ui_->lineedit_device, SIGNAL(textChanged(const QString &)), SLOT(DeviceStringChanged()));
|
||||
connect(ui_->slider_bufferminfill, SIGNAL(valueChanged(int)), SLOT(BufferMinFillChanged(int)));
|
||||
connect(ui_->stickslider_replaygainpreamp, SIGNAL(valueChanged(int)), SLOT(RgPreampChanged(int)));
|
||||
connect(ui_->radiobutton_alsa_hw, SIGNAL(clicked(bool)), SLOT(radiobutton_alsa_hw_clicked(bool)));
|
||||
connect(ui_->radiobutton_alsa_plughw, SIGNAL(clicked(bool)), SLOT(radiobutton_alsa_plughw_clicked(bool)));
|
||||
connect(ui_->slider_bufferminfill, SIGNAL(valueChanged(int)), SLOT(BufferMinFillChanged(int)));
|
||||
connect(ui_->stickslider_replaygainpreamp, SIGNAL(valueChanged(int)), SLOT(RgPreampChanged(int)));
|
||||
connect(ui_->checkbox_fadeout_stop, SIGNAL(toggled(bool)), SLOT(FadingOptionsChanged()));
|
||||
connect(ui_->checkbox_fadeout_cross, SIGNAL(toggled(bool)), SLOT(FadingOptionsChanged()));
|
||||
connect(ui_->checkbox_fadeout_auto, SIGNAL(toggled(bool)), SLOT(FadingOptionsChanged()));
|
||||
|
||||
}
|
||||
|
||||
|
@ -249,10 +257,7 @@ void BackendSettingsPage::Load_Output(QString output, QVariant device) {
|
|||
ui_->checkbox_monoplayback->setEnabled(false);
|
||||
}
|
||||
|
||||
if (ui_->combobox_output->count() < 1) {
|
||||
ShowWarning("Engine may take some time to initialize. Close settings and reopen to set output and devices.");
|
||||
}
|
||||
else Load_Device(output, device);
|
||||
if (ui_->combobox_output->count() >= 1) Load_Device(output, device);
|
||||
|
||||
}
|
||||
|
||||
|
@ -334,6 +339,8 @@ void BackendSettingsPage::Load_Device(QString output, QVariant device) {
|
|||
}
|
||||
}
|
||||
|
||||
FadingOptionsChanged();
|
||||
|
||||
}
|
||||
|
||||
void BackendSettingsPage::Save() {
|
||||
|
@ -360,13 +367,23 @@ void BackendSettingsPage::Save() {
|
|||
s_.setValue("device", device_value);
|
||||
|
||||
s_.setValue("bufferduration", ui_->spinbox_bufferduration->value());
|
||||
s_.setValue("monoplayback", ui_->checkbox_monoplayback->isChecked());
|
||||
s_.setValue("bufferminfill", ui_->slider_bufferminfill->value());
|
||||
|
||||
s_.setValue("rgenabled", ui_->checkbox_replaygain->isChecked());
|
||||
s_.setValue("rgmode", ui_->combobox_replaygainmode->currentIndex());
|
||||
s_.setValue("rgpreamp", float(ui_->stickslider_replaygainpreamp->value()) / 10 - 15);
|
||||
s_.setValue("rgcompression", ui_->checkbox_replaygaincompression->isChecked());
|
||||
|
||||
s_.setValue("FadeoutEnabled", ui_->checkbox_fadeout_stop->isChecked());
|
||||
s_.setValue("CrossfadeEnabled", ui_->checkbox_fadeout_cross->isChecked());
|
||||
s_.setValue("AutoCrossfadeEnabled", ui_->checkbox_fadeout_auto->isChecked());
|
||||
s_.setValue("NoCrossfadeSameAlbum", ui_->checkbox_fadeout_samealbum->isChecked());
|
||||
s_.setValue("FadeoutPauseEnabled", ui_->checkbox_fadeout_pauseresume->isChecked());
|
||||
s_.setValue("FadeoutDuration", ui_->spinbox_fadeduration->value());
|
||||
s_.setValue("FadeoutPauseDuration", ui_->spinbox_fadeduration_pauseresume->value());
|
||||
|
||||
s_.setValue("monoplayback", ui_->checkbox_monoplayback->isChecked());
|
||||
|
||||
if (ui_->radiobutton_alsa_hw->isChecked()) s_.setValue("alsaplugin", static_cast<int>(alsa_plugin::alsa_hw));
|
||||
else if (ui_->radiobutton_alsa_plughw->isChecked()) s_.setValue("alsaplugin", static_cast<int>(alsa_plugin::alsa_plughw));
|
||||
else s_.remove("alsaplugin");
|
||||
|
@ -396,7 +413,6 @@ void BackendSettingsPage::EngineChanged(int index) {
|
|||
}
|
||||
|
||||
engineloaded_ = false;
|
||||
ResetWarning();
|
||||
Load_Engine(enginetype);
|
||||
|
||||
}
|
||||
|
@ -429,6 +445,8 @@ void BackendSettingsPage::DeviceSelectionChanged(int index) {
|
|||
if (!ui_->lineedit_device->text().isEmpty()) ui_->lineedit_device->setText("");
|
||||
}
|
||||
|
||||
FadingOptionsChanged();
|
||||
|
||||
}
|
||||
|
||||
void BackendSettingsPage::DeviceStringChanged() {
|
||||
|
@ -480,6 +498,8 @@ void BackendSettingsPage::DeviceStringChanged() {
|
|||
if ((!found) && (ui_->combobox_device->count() > 0) && (ui_->combobox_device->currentIndex() != 0)) ui_->combobox_device->setCurrentIndex(0);
|
||||
}
|
||||
|
||||
FadingOptionsChanged();
|
||||
|
||||
}
|
||||
|
||||
void BackendSettingsPage::RgPreampChanged(int value) {
|
||||
|
@ -495,41 +515,6 @@ void BackendSettingsPage::BufferMinFillChanged(int value) {
|
|||
ui_->label_bufferminfillvalue->setText(QString::number(value) + "%");
|
||||
}
|
||||
|
||||
void BackendSettingsPage::ShowWarning(QString text) {
|
||||
|
||||
QImage image_logo(":/icons/64x64/dialog-warning.png");
|
||||
QPixmap pixmap_logo(QPixmap::fromImage(image_logo));
|
||||
|
||||
ui_->label_warn_logo->setPixmap(pixmap_logo);
|
||||
|
||||
ui_->label_warn_text->setStyleSheet("QLabel { color: red; }");
|
||||
ui_->label_warn_text->setText("<b>" + text + "</b>");
|
||||
|
||||
ui_->groupbox_warning->setVisible(true);
|
||||
ui_->label_warn_logo->setVisible(true);
|
||||
ui_->label_warn_text->setVisible(true);
|
||||
|
||||
ui_->groupbox_warning->setEnabled(true);
|
||||
ui_->label_warn_logo->setEnabled(true);
|
||||
ui_->label_warn_text->setEnabled(true);
|
||||
|
||||
}
|
||||
|
||||
void BackendSettingsPage::ResetWarning() {
|
||||
|
||||
ui_->label_warn_logo->clear();
|
||||
ui_->label_warn_text->clear();
|
||||
|
||||
ui_->groupbox_warning->setEnabled(false);
|
||||
ui_->label_warn_logo->setEnabled(false);
|
||||
ui_->label_warn_text->setEnabled(false);
|
||||
|
||||
ui_->groupbox_warning->setVisible(false);
|
||||
ui_->label_warn_logo->setVisible(false);
|
||||
ui_->label_warn_text->setVisible(false);
|
||||
|
||||
}
|
||||
|
||||
void BackendSettingsPage::SwitchALSADevices(alsa_plugin alsaplugin) {
|
||||
|
||||
// All ALSA devices are listed twice, one for "hw" and one for "plughw"
|
||||
|
@ -599,3 +584,22 @@ void BackendSettingsPage::radiobutton_alsa_plughw_clicked(bool checked) {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
void BackendSettingsPage::FadingOptionsChanged() {
|
||||
|
||||
if (EngineInitialised()) {
|
||||
EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value<EngineBase::OutputDetails>();
|
||||
if (engine()->type() == Engine::GStreamer && !(engine()->ALSADeviceSupport(output.name) && !ui_->lineedit_device->text().isEmpty())) {
|
||||
ui_->groupbox_fading->setDisabled(false);
|
||||
}
|
||||
else {
|
||||
ui_->groupbox_fading->setDisabled(true);
|
||||
ui_->checkbox_fadeout_stop->setChecked(false);
|
||||
ui_->checkbox_fadeout_cross->setChecked(false);
|
||||
ui_->checkbox_fadeout_auto->setChecked(false);
|
||||
}
|
||||
}
|
||||
|
||||
ui_->widget_fading_options->setEnabled(ui_->checkbox_fadeout_stop->isChecked() || ui_->checkbox_fadeout_cross->isChecked() || ui_->checkbox_fadeout_auto->isChecked());
|
||||
|
||||
}
|
||||
|
|
|
@ -65,6 +65,7 @@ public:
|
|||
void BufferMinFillChanged(int value);
|
||||
void radiobutton_alsa_hw_clicked(bool checked);
|
||||
void radiobutton_alsa_plughw_clicked(bool checked);
|
||||
void FadingOptionsChanged();
|
||||
|
||||
private:
|
||||
|
||||
|
@ -83,9 +84,6 @@ private:
|
|||
void Load_Engine(Engine::EngineType enginetype);
|
||||
void Load_Output(QString output, QVariant device);
|
||||
void Load_Device(QString output, QVariant device);
|
||||
void ShowWarning(QString text);
|
||||
void ResetWarning();
|
||||
void XineWarning();
|
||||
void SwitchALSADevices(alsa_plugin alsaplugin);
|
||||
|
||||
QSettings s_;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>596</width>
|
||||
<height>720</height>
|
||||
<height>740</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -406,6 +406,159 @@
|
|||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupbox_fading">
|
||||
<property name="title">
|
||||
<string>Fading</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_fadeout_stop">
|
||||
<property name="text">
|
||||
<string>Fade out when stopping a track</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_fadeout_cross">
|
||||
<property name="text">
|
||||
<string>Cross-fade when changing tracks manually</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_fadeout_auto">
|
||||
<property name="text">
|
||||
<string>Cross-fade when changing tracks automatically</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_fadeout_samealbum">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Except between tracks on the same album or in the same CUE sheet</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_fading_options" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_fadingduration_1">
|
||||
<property name="text">
|
||||
<string>Fading duration</string>
|
||||
</property>
|
||||
<property name="indent">
|
||||
<number>22</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="spinbox_fadeduration">
|
||||
<property name="suffix">
|
||||
<string> ms</string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>10000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>2000</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="spacer_fading_1">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>257</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_fadeout_pauseresume">
|
||||
<property name="text">
|
||||
<string>Fade out on pause / fade in on resume</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="layout_fading">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_fadingduration_2">
|
||||
<property name="text">
|
||||
<string>Fading duration</string>
|
||||
</property>
|
||||
<property name="indent">
|
||||
<number>22</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="spinbox_fadeduration_pauseresume">
|
||||
<property name="suffix">
|
||||
<string> ms</string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>10000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>50</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>250</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="spacer_fading_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_monoplayback">
|
||||
<property name="toolTip">
|
||||
|
@ -416,68 +569,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupbox_warning">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_warn_logo">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>70</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>64</width>
|
||||
<height>64</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_warn_text">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>70</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>64</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
|
|
|
@ -1,92 +0,0 @@
|
|||
/*
|
||||
* Strawberry Music Player
|
||||
* This file was part of Clementine.
|
||||
* Copyright 2010, David Sansome <me@davidsansome.com>
|
||||
*
|
||||
* Strawberry is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Strawberry is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Strawberry. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <QWidget>
|
||||
#include <QVariant>
|
||||
#include <QString>
|
||||
#include <QSettings>
|
||||
#include <QCheckBox>
|
||||
#include <QSpinBox>
|
||||
|
||||
#include "core/iconloader.h"
|
||||
#include "core/logging.h"
|
||||
#include "settingspage.h"
|
||||
#include "playbacksettingspage.h"
|
||||
#include "ui_playbacksettingspage.h"
|
||||
|
||||
class SettingsDialog;
|
||||
|
||||
const char *PlaybackSettingsPage::kSettingsGroup = "Playback";
|
||||
|
||||
PlaybackSettingsPage::PlaybackSettingsPage(SettingsDialog *dialog) : SettingsPage(dialog), ui_(new Ui_PlaybackSettingsPage) {
|
||||
|
||||
ui_->setupUi(this);
|
||||
setWindowIcon(IconLoader::Load("media-play"));
|
||||
|
||||
connect(ui_->checkbox_fadeout_stop, SIGNAL(toggled(bool)), SLOT(FadingOptionsChanged()));
|
||||
connect(ui_->checkbox_fadeout_cross, SIGNAL(toggled(bool)), SLOT(FadingOptionsChanged()));
|
||||
connect(ui_->checkbox_fadeout_auto, SIGNAL(toggled(bool)), SLOT(FadingOptionsChanged()));
|
||||
|
||||
}
|
||||
|
||||
PlaybackSettingsPage::~PlaybackSettingsPage() {
|
||||
delete ui_;
|
||||
}
|
||||
|
||||
void PlaybackSettingsPage::Load() {
|
||||
|
||||
QSettings s;
|
||||
|
||||
s.beginGroup(kSettingsGroup);
|
||||
ui_->checkbox_fadeout_stop->setChecked(s.value("FadeoutEnabled", false).toBool());
|
||||
ui_->checkbox_fadeout_cross->setChecked(s.value("CrossfadeEnabled", false).toBool());
|
||||
ui_->checkbox_fadeout_auto->setChecked(s.value("AutoCrossfadeEnabled", false).toBool());
|
||||
ui_->checkbox_fadeout_samealbum->setChecked(s.value("NoCrossfadeSameAlbum", true).toBool());
|
||||
ui_->checkbox_fadeout_pauseresume->setChecked(s.value("FadeoutPauseEnabled", false).toBool());
|
||||
ui_->spinbox_fadeduration->setValue(s.value("FadeoutDuration", 2000).toInt());
|
||||
ui_->spinbox_fadeduration_pauseresume->setValue(s.value("FadeoutPauseDuration", 250).toInt());
|
||||
s.endGroup();
|
||||
|
||||
}
|
||||
|
||||
void PlaybackSettingsPage::Save() {
|
||||
|
||||
QSettings s;
|
||||
|
||||
s.beginGroup(kSettingsGroup);
|
||||
s.setValue("FadeoutEnabled", ui_->checkbox_fadeout_stop->isChecked());
|
||||
s.setValue("CrossfadeEnabled", ui_->checkbox_fadeout_cross->isChecked());
|
||||
s.setValue("AutoCrossfadeEnabled", ui_->checkbox_fadeout_auto->isChecked());
|
||||
s.setValue("NoCrossfadeSameAlbum", ui_->checkbox_fadeout_samealbum->isChecked());
|
||||
s.setValue("FadeoutPauseEnabled", ui_->checkbox_fadeout_pauseresume->isChecked());
|
||||
s.setValue("FadeoutDuration", ui_->spinbox_fadeduration->value());
|
||||
s.setValue("FadeoutPauseDuration", ui_->spinbox_fadeduration_pauseresume->value());
|
||||
s.endGroup();
|
||||
}
|
||||
|
||||
void PlaybackSettingsPage::FadingOptionsChanged() {
|
||||
|
||||
ui_->widget_fading_options->setEnabled(ui_->checkbox_fadeout_stop->isChecked() || ui_->checkbox_fadeout_cross->isChecked() || ui_->checkbox_fadeout_auto->isChecked());
|
||||
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
/*
|
||||
* Strawberry Music Player
|
||||
* This file was part of Clementine.
|
||||
* Copyright 2010, David Sansome <me@davidsansome.com>
|
||||
*
|
||||
* Strawberry is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Strawberry is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Strawberry. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef PLAYBACKSETTINGSPAGE_H
|
||||
#define PLAYBACKSETTINGSPAGE_H
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
#include "settingspage.h"
|
||||
|
||||
class SettingsDialog;
|
||||
class Ui_PlaybackSettingsPage;
|
||||
|
||||
class PlaybackSettingsPage : public SettingsPage {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PlaybackSettingsPage(SettingsDialog* dialog);
|
||||
~PlaybackSettingsPage();
|
||||
static const char *kSettingsGroup;
|
||||
|
||||
void Load();
|
||||
void Save();
|
||||
|
||||
private slots:
|
||||
void FadingOptionsChanged();
|
||||
|
||||
private:
|
||||
Ui_PlaybackSettingsPage* ui_;
|
||||
};
|
||||
|
||||
#endif // PLAYBACKSETTINGSPAGE_H
|
|
@ -1,204 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>PlaybackSettingsPage</class>
|
||||
<widget class="QWidget" name="PlaybackSettingsPage">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>596</width>
|
||||
<height>638</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Playback</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupbox_fading">
|
||||
<property name="title">
|
||||
<string>Fading</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_fadeout_stop">
|
||||
<property name="text">
|
||||
<string>Fade out when stopping a track</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_fadeout_cross">
|
||||
<property name="text">
|
||||
<string>Cross-fade when changing tracks manually</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_fadeout_auto">
|
||||
<property name="text">
|
||||
<string>Cross-fade when changing tracks automatically</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_fadeout_samealbum">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Except between tracks on the same album or in the same CUE sheet</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_fading_options" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_fadingduration_1">
|
||||
<property name="text">
|
||||
<string>Fading duration</string>
|
||||
</property>
|
||||
<property name="indent">
|
||||
<number>22</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="spinbox_fadeduration">
|
||||
<property name="suffix">
|
||||
<string> ms</string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>10000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>2000</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="spacer_fading_1">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>257</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkbox_fadeout_pauseresume">
|
||||
<property name="text">
|
||||
<string>Fade out on pause / fade in on resume</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="layout_fading">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_fadingduration_2">
|
||||
<property name="text">
|
||||
<string>Fading duration</string>
|
||||
</property>
|
||||
<property name="indent">
|
||||
<number>22</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="spinbox_fadeduration_pauseresume">
|
||||
<property name="suffix">
|
||||
<string> ms</string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>10000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>50</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>250</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="spacer_fading_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="spacer_bottom">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>114</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>checkbox_fadeout_auto</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>checkbox_fadeout_samealbum</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>109</x>
|
||||
<y>133</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>113</x>
|
||||
<y>153</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
|
@ -57,7 +57,6 @@
|
|||
#include "behavioursettingspage.h"
|
||||
#include "collectionsettingspage.h"
|
||||
#include "notificationssettingspage.h"
|
||||
#include "playbacksettingspage.h"
|
||||
#include "playlistsettingspage.h"
|
||||
#include "shortcutssettingspage.h"
|
||||
#include "transcodersettingspage.h"
|
||||
|
@ -122,13 +121,12 @@ SettingsDialog::SettingsDialog(Application *app, QWidget *parent)
|
|||
AddPage(Page_Behaviour, new BehaviourSettingsPage(this), general);
|
||||
AddPage(Page_Collection, new CollectionSettingsPage(this), general);
|
||||
AddPage(Page_Backend, new BackendSettingsPage(this), general);
|
||||
AddPage(Page_Playback, new PlaybackSettingsPage(this), general);
|
||||
AddPage(Page_Playlist, new PlaylistSettingsPage(this), general);
|
||||
AddPage(Page_Scrobbler, new ScrobblerSettingsPage(this), general);
|
||||
#ifdef HAVE_GSTREAMER
|
||||
AddPage(Page_Transcoding, new TranscoderSettingsPage(this), general);
|
||||
#endif
|
||||
AddPage(Page_Proxy, new NetworkProxySettingsPage(this), general);
|
||||
AddPage(Page_Scrobbler, new ScrobblerSettingsPage(this), general);
|
||||
|
||||
QTreeWidgetItem *iface = AddCategory(tr("User interface"));
|
||||
AddPage(Page_Appearance, new AppearanceSettingsPage(this), iface);
|
||||
|
|
Loading…
Reference in New Issue