Add more background image options

This commit is contained in:
Jonas Kvinge
2019-03-25 22:00:40 +01:00
parent 0025cb9f53
commit 7aaad124d0
11 changed files with 553 additions and 318 deletions

View File

@@ -44,33 +44,60 @@
const char *AppearanceSettingsPage::kSettingsGroup = "Appearance";
const char *AppearanceSettingsPage::kUseCustomColorSet = "use-custom-set";
const char *AppearanceSettingsPage::kForegroundColor = "foreground-color";
const char *AppearanceSettingsPage::kBackgroundColor = "background-color";
const char *AppearanceSettingsPage::kBackgroundImageType = "background_image_type";
const char *AppearanceSettingsPage::kBackgroundImageFilename = "background_image_file";
const char *AppearanceSettingsPage::kBackgroundImagePosition = "background_image_position";
const char *AppearanceSettingsPage::kBackgroundImageStretch = "background_image_stretch";
const char *AppearanceSettingsPage::kBackgroundImageKeepAspectRatio = "background_image_keep_aspect_ratio";
const char *AppearanceSettingsPage::kBackgroundImageMaxSize = "background_image_max_size";
const char *AppearanceSettingsPage::kBlurRadius = "blur_radius";
const char *AppearanceSettingsPage::kOpacityLevel = "opacity_level";
const int AppearanceSettingsPage::kDefaultBlurRadius = 0;
const int AppearanceSettingsPage::kDefaultOpacityLevel = 40;
const char *AppearanceSettingsPage::kSystemThemeIcons = "system_icons";
AppearanceSettingsPage::AppearanceSettingsPage(SettingsDialog *dialog)
: SettingsPage(dialog),
ui_(new Ui_AppearanceSettingsPage),
original_use_a_custom_color_set_(false),
playlist_view_background_image_type_(PlaylistView::Default) {
background_image_type_(BackgroundImageType_Default) {
ui_->setupUi(this);
setWindowIcon(IconLoader::Load("view-media-visualization"));
ui_->combobox_backgroundimageposition->setItemData(0, BackgroundImagePosition_UpperLeft);
ui_->combobox_backgroundimageposition->setItemData(1, BackgroundImagePosition_UpperRight);
ui_->combobox_backgroundimageposition->setItemData(2, BackgroundImagePosition_Middle);
ui_->combobox_backgroundimageposition->setItemData(3, BackgroundImagePosition_BottomLeft);
ui_->combobox_backgroundimageposition->setItemData(4, BackgroundImagePosition_BottomRight);
connect(ui_->blur_slider, SIGNAL(valueChanged(int)), SLOT(BlurLevelChanged(int)));
connect(ui_->opacity_slider, SIGNAL(valueChanged(int)), SLOT(OpacityLevelChanged(int)));
Load();
connect(ui_->use_a_custom_color_set, SIGNAL(toggled(bool)), SLOT(UseCustomColorSetOptionChanged(bool)));
connect(ui_->select_foreground_color, SIGNAL(pressed()), SLOT(SelectForegroundColor()));
connect(ui_->select_background_color, SIGNAL(pressed()), SLOT(SelectBackgroundColor()));
connect(ui_->use_a_custom_color_set, SIGNAL(toggled(bool)), SLOT(UseCustomColorSetOptionChanged(bool)));
connect(ui_->use_default_background, SIGNAL(toggled(bool)), ui_->widget_custom_background_image_options, SLOT(setDisabled(bool)));
connect(ui_->use_no_background, SIGNAL(toggled(bool)), ui_->widget_custom_background_image_options, SLOT(setDisabled(bool)));
connect(ui_->use_custom_background_image, SIGNAL(toggled(bool)), ui_->widget_custom_background_image_options, SLOT(setEnabled(bool)));
connect(ui_->use_album_cover_background, SIGNAL(toggled(bool)), ui_->widget_custom_background_image_options, SLOT(setEnabled(bool)));
connect(ui_->select_background_image_filename_button, SIGNAL(pressed()), SLOT(SelectBackgroundImage()));
connect(ui_->use_custom_background_image, SIGNAL(toggled(bool)), ui_->background_image_filename, SLOT(setEnabled(bool)));
connect(ui_->use_custom_background_image, SIGNAL(toggled(bool)), ui_->select_background_image_filename_button, SLOT(setEnabled(bool)));
connect(ui_->use_custom_background_image, SIGNAL(toggled(bool)), ui_->blur_slider, SLOT(setEnabled(bool)));
connect(ui_->use_album_cover_background, SIGNAL(toggled(bool)), ui_->blur_slider, SLOT(setEnabled(bool)));
connect(ui_->checkbox_background_image_stretch, SIGNAL(toggled(bool)), ui_->checkbox_background_image_keep_aspect_ratio, SLOT(setEnabled(bool)));
connect(ui_->checkbox_background_image_stretch, SIGNAL(toggled(bool)), ui_->spinbox_background_image_maxsize, SLOT(setDisabled(bool)));
connect(ui_->use_default_background, SIGNAL(toggled(bool)), SLOT(DisableBlurAndOpacitySliders(bool)));
connect(ui_->use_no_background, SIGNAL(toggled(bool)), SLOT(DisableBlurAndOpacitySliders(bool)));
Load();
}
@@ -86,11 +113,11 @@ void AppearanceSettingsPage::Load() {
QPalette p = QApplication::palette();
// Keep in mind originals colors, in case the user clicks on Cancel, to be able to restore colors
original_use_a_custom_color_set_ = s.value(Appearance::kUseCustomColorSet, false).toBool();
original_use_a_custom_color_set_ = s.value(kUseCustomColorSet, false).toBool();
original_foreground_color_ = s.value(Appearance::kForegroundColor, p.color(QPalette::WindowText)).value<QColor>();
original_foreground_color_ = s.value(kForegroundColor, p.color(QPalette::WindowText)).value<QColor>();
current_foreground_color_ = original_foreground_color_;
original_background_color_ = s.value(Appearance::kBackgroundColor, p.color(QPalette::Window)).value<QColor>();
original_background_color_ = s.value(kBackgroundColor, p.color(QPalette::Window)).value<QColor>();
current_background_color_ = original_background_color_;
InitColorSelectorsColors();
@@ -99,32 +126,35 @@ void AppearanceSettingsPage::Load() {
// Playlist settings
s.beginGroup(kSettingsGroup);
playlist_view_background_image_type_ = static_cast<PlaylistView::BackgroundImageType>(s.value(PlaylistView::kSettingBackgroundImageType).toInt());
playlist_view_background_image_filename_ = s.value(PlaylistView::kSettingBackgroundImageFilename).toString();
background_image_type_ = static_cast<BackgroundImageType>(s.value(kBackgroundImageType).toInt());
background_image_filename_ = s.value(kBackgroundImageFilename).toString();
ui_->use_system_color_set->setChecked(!original_use_a_custom_color_set_);
ui_->use_a_custom_color_set->setChecked(original_use_a_custom_color_set_);
switch (playlist_view_background_image_type_) {
case PlaylistView::None:
switch (background_image_type_) {
case BackgroundImageType_None:
ui_->use_no_background->setChecked(true);
DisableBlurAndOpacitySliders(true);
break;
case PlaylistView::Album:
case BackgroundImageType_Album:
ui_->use_album_cover_background->setChecked(true);
break;
case PlaylistView::Custom:
case BackgroundImageType_Custom:
ui_->use_custom_background_image->setChecked(true);
break;
case PlaylistView::Default:
case BackgroundImageType_Default:
default:
ui_->use_default_background->setChecked(true);
DisableBlurAndOpacitySliders(true);
}
ui_->background_image_filename->setText(playlist_view_background_image_filename_);
ui_->blur_slider->setValue(s.value("blur_radius", PlaylistView::kDefaultBlurRadius).toInt());
ui_->opacity_slider->setValue(s.value("opacity_level", PlaylistView::kDefaultOpacityLevel).toInt());
ui_->checkbox_system_icons->setChecked(s.value("system_icons", false).toBool());
ui_->background_image_filename->setText(background_image_filename_);
ui_->combobox_backgroundimageposition->setCurrentIndex(ui_->combobox_backgroundimageposition->findData(s.value(kBackgroundImagePosition, BackgroundImagePosition_BottomRight).toInt()));
ui_->spinbox_background_image_maxsize->setValue(s.value(kBackgroundImageMaxSize, 0).toInt());
ui_->checkbox_background_image_stretch->setChecked(s.value(kBackgroundImageStretch, false).toBool());
ui_->checkbox_background_image_keep_aspect_ratio->setChecked(s.value(kBackgroundImageKeepAspectRatio, true).toBool());
ui_->blur_slider->setValue(s.value(kBlurRadius, kDefaultBlurRadius).toInt());
ui_->opacity_slider->setValue(s.value(kOpacityLevel, kDefaultOpacityLevel).toInt());
ui_->checkbox_system_icons->setChecked(s.value(kSystemThemeIcons, false).toBool());
s.endGroup();
@@ -136,33 +166,41 @@ void AppearanceSettingsPage::Save() {
s.beginGroup(kSettingsGroup);
bool use_a_custom_color_set = ui_->use_a_custom_color_set->isChecked();
s.setValue(Appearance::kUseCustomColorSet, use_a_custom_color_set);
s.setValue(kUseCustomColorSet, use_a_custom_color_set);
if (use_a_custom_color_set) {
s.setValue(Appearance::kBackgroundColor, current_background_color_);
s.setValue(Appearance::kForegroundColor, current_foreground_color_);
s.setValue(kBackgroundColor, current_background_color_);
s.setValue(kForegroundColor, current_foreground_color_);
}
else {
dialog()->appearance()->ResetToSystemDefaultTheme();
}
playlist_view_background_image_filename_ = ui_->background_image_filename->text();
background_image_filename_ = ui_->background_image_filename->text();
if (ui_->use_no_background->isChecked()) {
playlist_view_background_image_type_ = PlaylistView::None;
background_image_type_ = BackgroundImageType_None;
}
else if (ui_->use_album_cover_background->isChecked()) {
playlist_view_background_image_type_ = PlaylistView::Album;
background_image_type_ = BackgroundImageType_Album;
}
else if (ui_->use_default_background->isChecked()) {
playlist_view_background_image_type_ = PlaylistView::Default;
background_image_type_ = BackgroundImageType_Default;
}
else if (ui_->use_custom_background_image->isChecked()) {
playlist_view_background_image_type_ = PlaylistView::Custom;
s.setValue(PlaylistView::kSettingBackgroundImageFilename, playlist_view_background_image_filename_);
background_image_type_ = BackgroundImageType_Custom;
s.setValue(kBackgroundImageFilename, background_image_filename_);
}
s.setValue(PlaylistView::kSettingBackgroundImageType, playlist_view_background_image_type_);
s.setValue("blur_radius", ui_->blur_slider->value());
s.setValue("opacity_level", ui_->opacity_slider->value());
s.setValue("system_icons", ui_->checkbox_system_icons->isChecked());
s.setValue(kBackgroundImageType, background_image_type_);
BackgroundImagePosition backgroundimageposition = BackgroundImagePosition(ui_->combobox_backgroundimageposition->itemData(ui_->combobox_backgroundimageposition->currentIndex()).toInt());
s.setValue(kBackgroundImageMaxSize, ui_->spinbox_background_image_maxsize->value());
s.setValue(kBackgroundImagePosition, backgroundimageposition);
s.setValue(kBackgroundImageStretch, ui_->checkbox_background_image_stretch->isChecked());
s.setValue(kBackgroundImageKeepAspectRatio, ui_->checkbox_background_image_keep_aspect_ratio->isChecked());
s.setValue(kBlurRadius, ui_->blur_slider->value());
s.setValue(kOpacityLevel, ui_->opacity_slider->value());
s.setValue(kSystemThemeIcons, ui_->checkbox_system_icons->isChecked());
s.endGroup();
@@ -228,10 +266,10 @@ void AppearanceSettingsPage::UpdateColorSelectorColor(QWidget *color_selector, c
void AppearanceSettingsPage::SelectBackgroundImage() {
QString selected_filename = QFileDialog::getOpenFileName(this, tr("Select background image"), playlist_view_background_image_filename_, tr(AlbumCoverChoiceController::kLoadImageFileFilter) + ";;" + tr(AlbumCoverChoiceController::kAllFilesFilter));
QString selected_filename = QFileDialog::getOpenFileName(this, tr("Select background image"), background_image_filename_, tr(AlbumCoverChoiceController::kLoadImageFileFilter) + ";;" + tr(AlbumCoverChoiceController::kAllFilesFilter));
if (selected_filename.isEmpty()) return;
playlist_view_background_image_filename_ = selected_filename;
ui_->background_image_filename->setText(playlist_view_background_image_filename_);
background_image_filename_ = selected_filename;
ui_->background_image_filename->setText(background_image_filename_);
}
@@ -242,17 +280,3 @@ void AppearanceSettingsPage::BlurLevelChanged(int value) {
void AppearanceSettingsPage::OpacityLevelChanged(int percent) {
ui_->background_opacity_label->setText(QString("%1\%").arg(percent));
}
void AppearanceSettingsPage::DisableBlurAndOpacitySliders(bool checked) {
// Blur slider
ui_->blur_slider->setDisabled(checked);
ui_->background_blur_radius_label->setDisabled(checked);
ui_->select_background_blur_label->setDisabled(checked);
// Opacity slider
ui_->opacity_slider->setDisabled(checked);
ui_->background_opacity_label->setDisabled(checked);
ui_->select_opacity_level_label->setDisabled(checked);
}

View File

@@ -30,7 +30,6 @@
#include <QString>
#include <QColor>
#include "playlist/playlistview.h"
#include "settingspage.h"
class SettingsDialog;
@@ -42,22 +41,56 @@ class AppearanceSettingsPage : public SettingsPage {
public:
AppearanceSettingsPage(SettingsDialog *dialog);
~AppearanceSettingsPage();
static const char *kSettingsGroup;
static const char *kUseCustomColorSet;
static const char *kForegroundColor;
static const char *kBackgroundColor;
static const char *kBackgroundImageType;
static const char *kBackgroundImageFilename;
static const char *kBackgroundImagePosition;
static const char *kBackgroundImageStretch;
static const char *kBackgroundImageKeepAspectRatio;
static const char *kBackgroundImageMaxSize;
static const char *kBlurRadius;
static const char *kOpacityLevel;
static const int kDefaultBlurRadius;
static const int kDefaultOpacityLevel;
static const char *kSystemThemeIcons;
enum BackgroundImageType {
BackgroundImageType_Default,
BackgroundImageType_None,
BackgroundImageType_Custom,
BackgroundImageType_Album
};
enum BackgroundImagePosition {
BackgroundImagePosition_UpperLeft = 1,
BackgroundImagePosition_UpperRight = 2,
BackgroundImagePosition_Middle = 3,
BackgroundImagePosition_BottomLeft = 4,
BackgroundImagePosition_BottomRight = 5
};
void Load();
void Save();
void Cancel();
private slots:
private slots:
void SelectForegroundColor();
void SelectBackgroundColor();
void UseCustomColorSetOptionChanged(bool);
void SelectBackgroundImage();
void BlurLevelChanged(int);
void OpacityLevelChanged(int);
void DisableBlurAndOpacitySliders(bool);
private:
private:
// Set the widget's background to new_color
void UpdateColorSelectorColor(QWidget *color_selector, const QColor &new_color);
@@ -65,13 +98,14 @@ private:
void InitColorSelectorsColors();
Ui_AppearanceSettingsPage *ui_;
bool original_use_a_custom_color_set_;
QColor original_foreground_color_;
QColor original_background_color_;
QColor current_foreground_color_;
QColor current_background_color_;
PlaylistView::BackgroundImageType playlist_view_background_image_type_;
QString playlist_view_background_image_filename_;
BackgroundImageType background_image_type_;
QString background_image_filename_;
};

View File

@@ -7,19 +7,19 @@
<x>0</x>
<y>0</y>
<width>596</width>
<height>566</height>
<height>627</height>
</rect>
</property>
<property name="windowTitle">
<string>Appearance</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<layout class="QVBoxLayout" name="layout_apperance_settings_page">
<item>
<widget class="QGroupBox" name="groupBox">
<widget class="QGroupBox" name="groupbox_colors">
<property name="title">
<string>Colors</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<layout class="QVBoxLayout" name="layout_colors">
<item>
<widget class="QRadioButton" name="use_system_color_set">
<property name="text">
@@ -35,7 +35,7 @@
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_1">
<layout class="QHBoxLayout" name="layout_foreground_color">
<item>
<widget class="QLabel" name="select_foreground_color_label">
<property name="enabled">
@@ -59,7 +59,7 @@
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<layout class="QHBoxLayout" name="layout_background_color">
<item>
<widget class="QLabel" name="select_background_color_label">
<property name="enabled">
@@ -86,11 +86,11 @@
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<widget class="QGroupBox" name="groupbox_background_image">
<property name="title">
<string>Background image</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<layout class="QVBoxLayout" name="layout_background_image">
<item>
<widget class="QRadioButton" name="use_default_background">
<property name="text">
@@ -98,6 +98,13 @@
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="use_no_background">
<property name="text">
<string>&amp;No background image</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="use_album_cover_background">
<property name="toolTip">
@@ -109,14 +116,7 @@
</widget>
</item>
<item>
<widget class="QRadioButton" name="use_no_background">
<property name="text">
<string>&amp;No background image</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<layout class="QHBoxLayout" name="layout_custom_image">
<item>
<widget class="QRadioButton" name="use_custom_background_image">
<property name="text">
@@ -144,80 +144,211 @@
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="select_background_blur_label">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Blur amount</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSlider" name="blur_slider">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>10</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>1</number>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="background_blur_radius_label">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>0px</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="select_opacity_level_label">
<property name="text">
<string>Opacity</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSlider" name="opacity_slider">
<property name="maximum">
<number>100</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>10</number>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="background_opacity_label">
<property name="text">
<string>40%</string>
</property>
</widget>
</item>
</layout>
<widget class="QWidget" name="widget_custom_background_image_options" native="true">
<layout class="QVBoxLayout" name="layout_custom_background_image_options">
<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="QWidget" name="widget_custom_position" native="true">
<layout class="QHBoxLayout" name="layout_custom_position">
<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_position">
<property name="text">
<string>Position</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="combobox_backgroundimageposition">
<item>
<property name="text">
<string>Upper Left</string>
</property>
</item>
<item>
<property name="text">
<string>Upper Right</string>
</property>
</item>
<item>
<property name="text">
<string>Middle</string>
</property>
</item>
<item>
<property name="text">
<string>Bottom Left</string>
</property>
</item>
<item>
<property name="text">
<string>Bottom Right</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Max cover size</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinbox_background_image_maxsize">
<property name="maximum">
<number>9000</number>
</property>
</widget>
</item>
<item>
<spacer name="spacer_position">
<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>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_background_image_stretch" native="true">
<layout class="QHBoxLayout" name="layout_background_image_stretch">
<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="QCheckBox" name="checkbox_background_image_stretch">
<property name="text">
<string>Stretch background image to fill playlist background</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkbox_background_image_keep_aspect_ratio">
<property name="text">
<string>Keep aspect ratio</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QGridLayout" name="layout_blur_opacity">
<item row="0" column="0">
<widget class="QLabel" name="select_background_blur_label">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Blur amount</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSlider" name="blur_slider">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>10</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>1</number>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="background_blur_radius_label">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>0px</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="select_opacity_level_label">
<property name="text">
<string>Opacity</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSlider" name="opacity_slider">
<property name="maximum">
<number>100</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>10</number>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="background_opacity_label">
<property name="text">
<string>40%</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
@@ -230,7 +361,7 @@
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<spacer name="spacer_bottom">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>

View File

@@ -70,18 +70,18 @@ BehaviourSettingsPage::BehaviourSettingsPage(SettingsDialog *dialog) : SettingsP
}
#endif
ui_->combobox_doubleclickaddmode->setItemData(0, MainWindow::AddBehaviour_Append);
ui_->combobox_doubleclickaddmode->setItemData(1, MainWindow::AddBehaviour_Load);
ui_->combobox_doubleclickaddmode->setItemData(2, MainWindow::AddBehaviour_OpenInNew);
ui_->combobox_doubleclickaddmode->setItemData(3, MainWindow::AddBehaviour_Enqueue);
ui_->combobox_doubleclickaddmode->setItemData(0, AddBehaviour_Append);
ui_->combobox_doubleclickaddmode->setItemData(1, AddBehaviour_Load);
ui_->combobox_doubleclickaddmode->setItemData(2, AddBehaviour_OpenInNew);
ui_->combobox_doubleclickaddmode->setItemData(3, AddBehaviour_Enqueue);
ui_->combobox_doubleclickplaymode->setItemData(0, MainWindow::PlayBehaviour_Never);
ui_->combobox_doubleclickplaymode->setItemData(1, MainWindow::PlayBehaviour_IfStopped);
ui_->combobox_doubleclickplaymode->setItemData(2, MainWindow::PlayBehaviour_Always);
ui_->combobox_doubleclickplaymode->setItemData(0, PlayBehaviour_Never);
ui_->combobox_doubleclickplaymode->setItemData(1, PlayBehaviour_IfStopped);
ui_->combobox_doubleclickplaymode->setItemData(2, PlayBehaviour_Always);
ui_->combobox_menuplaymode->setItemData(0, MainWindow::PlayBehaviour_Never);
ui_->combobox_menuplaymode->setItemData(1, MainWindow::PlayBehaviour_IfStopped);
ui_->combobox_menuplaymode->setItemData(2, MainWindow::PlayBehaviour_Always);
ui_->combobox_menuplaymode->setItemData(0, PlayBehaviour_Never);
ui_->combobox_menuplaymode->setItemData(1, PlayBehaviour_IfStopped);
ui_->combobox_menuplaymode->setItemData(2, PlayBehaviour_Always);
#ifdef HAVE_TRANSLATIONS
// Populate the language combo box. We do this by looking at all the compiled in translations.
@@ -159,9 +159,9 @@ void BehaviourSettingsPage::Load() {
ui_->checkbox_resumeplayback->setChecked(s.value("resumeplayback", false).toBool());
ui_->combobox_doubleclickaddmode->setCurrentIndex(ui_->combobox_doubleclickaddmode->findData(s.value("doubleclick_addmode", MainWindow::AddBehaviour_Append).toInt()));
ui_->combobox_doubleclickplaymode->setCurrentIndex(ui_->combobox_doubleclickplaymode->findData(s.value("doubleclick_playmode", MainWindow::PlayBehaviour_Never).toInt()));
ui_->combobox_menuplaymode->setCurrentIndex(ui_->combobox_menuplaymode->findData(s.value("menu_playmode", MainWindow::PlayBehaviour_Never).toInt()));
ui_->combobox_doubleclickaddmode->setCurrentIndex(ui_->combobox_doubleclickaddmode->findData(s.value("doubleclick_addmode", AddBehaviour_Append).toInt()));
ui_->combobox_doubleclickplaymode->setCurrentIndex(ui_->combobox_doubleclickplaymode->findData(s.value("doubleclick_playmode", PlayBehaviour_Never).toInt()));
ui_->combobox_menuplaymode->setCurrentIndex(ui_->combobox_menuplaymode->findData(s.value("menu_playmode", PlayBehaviour_Never).toInt()));
ui_->spinbox_seekstepsec->setValue(s.value("seek_step_sec", 10).toInt());
@@ -185,9 +185,9 @@ void BehaviourSettingsPage::Save() {
if (ui_->radiobutton_alwaysshow->isChecked()) behaviour = MainWindow::Startup_AlwaysShow;
if (ui_->radiobutton_remember->isChecked()) behaviour = MainWindow::Startup_Remember;
MainWindow::AddBehaviour doubleclick_addmode = MainWindow::AddBehaviour(ui_->combobox_doubleclickaddmode->itemData(ui_->combobox_doubleclickaddmode->currentIndex()).toInt());
MainWindow::PlayBehaviour doubleclick_playmode = MainWindow::PlayBehaviour(ui_->combobox_doubleclickplaymode->itemData(ui_->combobox_doubleclickplaymode->currentIndex()).toInt());
MainWindow::PlayBehaviour menu_playmode = MainWindow::PlayBehaviour(ui_->combobox_menuplaymode->itemData(ui_->combobox_menuplaymode->currentIndex()).toInt());
AddBehaviour doubleclick_addmode = AddBehaviour(ui_->combobox_doubleclickaddmode->itemData(ui_->combobox_doubleclickaddmode->currentIndex()).toInt());
PlayBehaviour doubleclick_playmode = PlayBehaviour(ui_->combobox_doubleclickplaymode->itemData(ui_->combobox_doubleclickplaymode->currentIndex()).toInt());
PlayBehaviour menu_playmode = PlayBehaviour(ui_->combobox_menuplaymode->itemData(ui_->combobox_menuplaymode->currentIndex()).toInt());
s.setValue("showtrayicon", ui_->checkbox_showtrayicon->isChecked());
s.setValue("scrolltrayicon", ui_->checkbox_scrolltrayicon->isChecked());

View File

@@ -40,8 +40,30 @@ class BehaviourSettingsPage : public SettingsPage {
public:
BehaviourSettingsPage(SettingsDialog *dialog);
~BehaviourSettingsPage();
static const char *kSettingsGroup;
// Don't change the values
enum AddBehaviour {
AddBehaviour_Append = 1,
AddBehaviour_Enqueue = 2,
AddBehaviour_Load = 3,
AddBehaviour_OpenInNew = 4
};
// Don't change the values
enum PlayBehaviour {
PlayBehaviour_Never = 1,
PlayBehaviour_IfStopped = 2,
PlayBehaviour_Always = 3,
};
// Don't change the values
enum PlaylistAddBehaviour {
PlaylistAddBehaviour_Play = 1,
PlaylistAddBehaviour_Enqueue = 2,
};
void Load();
void Save();