Fix previous player and doubleclick playlist song behaviour settings
This commit is contained in:
@@ -96,7 +96,7 @@ Player::Player(Application *app, QObject *parent)
|
|||||||
last_pressed_previous_(QDateTime::currentDateTime()),
|
last_pressed_previous_(QDateTime::currentDateTime()),
|
||||||
continue_on_error_(false),
|
continue_on_error_(false),
|
||||||
greyout_(true),
|
greyout_(true),
|
||||||
menu_previousmode_(PreviousBehaviour_DontRestart),
|
menu_previousmode_(BehaviourSettingsPage::PreviousBehaviour_DontRestart),
|
||||||
seek_step_sec_(10),
|
seek_step_sec_(10),
|
||||||
volume_control_(true)
|
volume_control_(true)
|
||||||
{
|
{
|
||||||
@@ -230,10 +230,10 @@ void Player::ReloadSettings() {
|
|||||||
s.beginGroup(PlaylistSettingsPage::kSettingsGroup);
|
s.beginGroup(PlaylistSettingsPage::kSettingsGroup);
|
||||||
continue_on_error_ = s.value("continue_on_error", false).toBool();
|
continue_on_error_ = s.value("continue_on_error", false).toBool();
|
||||||
greyout_ = s.value("greyout_songs_play", true).toBool();
|
greyout_ = s.value("greyout_songs_play", true).toBool();
|
||||||
menu_previousmode_ = PreviousBehaviour(s.value("menu_previousmode", PreviousBehaviour_DontRestart).toInt());
|
|
||||||
s.endGroup();
|
s.endGroup();
|
||||||
|
|
||||||
s.beginGroup(BehaviourSettingsPage::kSettingsGroup);
|
s.beginGroup(BehaviourSettingsPage::kSettingsGroup);
|
||||||
|
menu_previousmode_ = BehaviourSettingsPage::PreviousBehaviour(s.value("menu_previousmode", BehaviourSettingsPage::PreviousBehaviour_DontRestart).toInt());
|
||||||
seek_step_sec_ = s.value("seek_step_sec", 10).toInt();
|
seek_step_sec_ = s.value("seek_step_sec", 10).toInt();
|
||||||
s.endGroup();
|
s.endGroup();
|
||||||
|
|
||||||
@@ -503,7 +503,7 @@ void Player::StopAfterCurrent() {
|
|||||||
bool Player::PreviousWouldRestartTrack() const {
|
bool Player::PreviousWouldRestartTrack() const {
|
||||||
|
|
||||||
// Check if it has been over two seconds since previous button was pressed
|
// Check if it has been over two seconds since previous button was pressed
|
||||||
return menu_previousmode_ == PreviousBehaviour_Restart && last_pressed_previous_.isValid() && last_pressed_previous_.secsTo(QDateTime::currentDateTime()) >= 2;
|
return menu_previousmode_ == BehaviourSettingsPage::PreviousBehaviour_Restart && last_pressed_previous_.isValid() && last_pressed_previous_.secsTo(QDateTime::currentDateTime()) >= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::Previous() { PreviousItem(Engine::Manual); }
|
void Player::Previous() { PreviousItem(Engine::Manual); }
|
||||||
@@ -512,7 +512,7 @@ void Player::PreviousItem(Engine::TrackChangeFlags change) {
|
|||||||
|
|
||||||
const bool ignore_repeat_track = change & Engine::Manual;
|
const bool ignore_repeat_track = change & Engine::Manual;
|
||||||
|
|
||||||
if (menu_previousmode_ == PreviousBehaviour_Restart) {
|
if (menu_previousmode_ == BehaviourSettingsPage::PreviousBehaviour_Restart) {
|
||||||
// Check if it has been over two seconds since previous button was pressed
|
// Check if it has been over two seconds since previous button was pressed
|
||||||
QDateTime now = QDateTime::currentDateTime();
|
QDateTime now = QDateTime::currentDateTime();
|
||||||
if (last_pressed_previous_.isValid() && last_pressed_previous_.secsTo(now) >= 2) {
|
if (last_pressed_previous_.isValid() && last_pressed_previous_.secsTo(now) >= 2) {
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
#include "engine/gststartup.h"
|
#include "engine/gststartup.h"
|
||||||
#endif
|
#endif
|
||||||
#include "playlist/playlistitem.h"
|
#include "playlist/playlistitem.h"
|
||||||
|
#include "settings/behavioursettingspage.h"
|
||||||
|
|
||||||
class Application;
|
class Application;
|
||||||
class Song;
|
class Song;
|
||||||
@@ -136,12 +137,6 @@ class Player : public PlayerInterface {
|
|||||||
|
|
||||||
static const char *kSettingsGroup;
|
static const char *kSettingsGroup;
|
||||||
|
|
||||||
// Don't change the values: they are saved in preferences
|
|
||||||
enum PreviousBehaviour {
|
|
||||||
PreviousBehaviour_DontRestart = 1,
|
|
||||||
PreviousBehaviour_Restart = 2
|
|
||||||
};
|
|
||||||
|
|
||||||
Engine::EngineType CreateEngine(Engine::EngineType enginetype);
|
Engine::EngineType CreateEngine(Engine::EngineType enginetype);
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
@@ -240,7 +235,7 @@ class Player : public PlayerInterface {
|
|||||||
|
|
||||||
bool continue_on_error_;
|
bool continue_on_error_;
|
||||||
bool greyout_;
|
bool greyout_;
|
||||||
PreviousBehaviour menu_previousmode_;
|
BehaviourSettingsPage::PreviousBehaviour menu_previousmode_;
|
||||||
int seek_step_sec_;
|
int seek_step_sec_;
|
||||||
|
|
||||||
bool volume_control_;
|
bool volume_control_;
|
||||||
|
|||||||
@@ -71,19 +71,6 @@ BehaviourSettingsPage::BehaviourSettingsPage(SettingsDialog *dialog) : SettingsP
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
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, PlayBehaviour_Never);
|
|
||||||
ui_->combobox_doubleclickplaymode->setItemData(1, PlayBehaviour_IfStopped);
|
|
||||||
ui_->combobox_doubleclickplaymode->setItemData(2, 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
|
#ifdef HAVE_TRANSLATIONS
|
||||||
// Populate the language combo box. We do this by looking at all the compiled in translations.
|
// Populate the language combo box. We do this by looking at all the compiled in translations.
|
||||||
QDir dir(":/translations/");
|
QDir dir(":/translations/");
|
||||||
@@ -121,6 +108,25 @@ BehaviourSettingsPage::BehaviourSettingsPage(SettingsDialog *dialog) : SettingsP
|
|||||||
ui_->groupbox_language->setVisible(false);
|
ui_->groupbox_language->setVisible(false);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
ui_->combobox_menuplaymode->setItemData(0, PlayBehaviour_Never);
|
||||||
|
ui_->combobox_menuplaymode->setItemData(1, PlayBehaviour_IfStopped);
|
||||||
|
ui_->combobox_menuplaymode->setItemData(2, PlayBehaviour_Always);
|
||||||
|
|
||||||
|
ui_->combobox_previousmode->setItemData(0, PreviousBehaviour_DontRestart);
|
||||||
|
ui_->combobox_previousmode->setItemData(1, PreviousBehaviour_Restart);
|
||||||
|
|
||||||
|
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, PlayBehaviour_Never);
|
||||||
|
ui_->combobox_doubleclickplaymode->setItemData(1, PlayBehaviour_IfStopped);
|
||||||
|
ui_->combobox_doubleclickplaymode->setItemData(2, PlayBehaviour_Always);
|
||||||
|
|
||||||
|
ui_->combobox_doubleclickplaylistaddmode->setItemData(0, PlaylistAddBehaviour_Play);
|
||||||
|
ui_->combobox_doubleclickplaylistaddmode->setItemData(1, PlaylistAddBehaviour_Enqueue);
|
||||||
|
|
||||||
#ifdef HAVE_X11
|
#ifdef HAVE_X11
|
||||||
QString de = Utilities::DesktopEnvironment();
|
QString de = Utilities::DesktopEnvironment();
|
||||||
if (de.toLower() == "kde")
|
if (de.toLower() == "kde")
|
||||||
@@ -154,7 +160,7 @@ void BehaviourSettingsPage::Load() {
|
|||||||
ui_->checkbox_keeprunning->setChecked(false);
|
ui_->checkbox_keeprunning->setChecked(false);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
ui_->checkbox_resumeplayback->setChecked(s.value("resumeplayback", false).toBool());
|
||||||
ui_->checkbox_playingwidget->setChecked(s.value("playing_widget", true).toBool());
|
ui_->checkbox_playingwidget->setChecked(s.value("playing_widget", true).toBool());
|
||||||
|
|
||||||
MainWindow::StartupBehaviour behaviour = MainWindow::StartupBehaviour(s.value("startupbehaviour", MainWindow::Startup_Remember).toInt());
|
MainWindow::StartupBehaviour behaviour = MainWindow::StartupBehaviour(s.value("startupbehaviour", MainWindow::Startup_Remember).toInt());
|
||||||
@@ -164,20 +170,24 @@ void BehaviourSettingsPage::Load() {
|
|||||||
case MainWindow::Startup_Remember: ui_->radiobutton_remember->setChecked(true); break;
|
case MainWindow::Startup_Remember: ui_->radiobutton_remember->setChecked(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ui_->checkbox_resumeplayback->setChecked(s.value("resumeplayback", false).toBool());
|
|
||||||
|
|
||||||
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());
|
|
||||||
|
|
||||||
QString name = language_map_.key(s.value("language").toString());
|
QString name = language_map_.key(s.value("language").toString());
|
||||||
if (name.isEmpty())
|
if (name.isEmpty())
|
||||||
ui_->combobox_language->setCurrentIndex(0);
|
ui_->combobox_language->setCurrentIndex(0);
|
||||||
else
|
else
|
||||||
ui_->combobox_language->setCurrentIndex(ui_->combobox_language->findText(name));
|
ui_->combobox_language->setCurrentIndex(ui_->combobox_language->findText(name));
|
||||||
|
|
||||||
|
ui_->combobox_menuplaymode->setCurrentIndex(ui_->combobox_menuplaymode->findData(s.value("menu_playmode", PlayBehaviour_Never).toInt()));
|
||||||
|
|
||||||
|
ui_->combobox_previousmode->setCurrentIndex(ui_->combobox_previousmode->findData(s.value("menu_previousmode", PreviousBehaviour_DontRestart).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_doubleclickplaylistaddmode->setCurrentIndex(ui_->combobox_doubleclickplaylistaddmode->findData(s.value("doubleclick_playlist_addmode", PlaylistAddBehaviour_Play).toInt()));
|
||||||
|
|
||||||
|
ui_->spinbox_seekstepsec->setValue(s.value("seek_step_sec", 10).toInt());
|
||||||
|
|
||||||
s.endGroup();
|
s.endGroup();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -187,28 +197,37 @@ void BehaviourSettingsPage::Save() {
|
|||||||
QSettings s;
|
QSettings s;
|
||||||
s.beginGroup(kSettingsGroup);
|
s.beginGroup(kSettingsGroup);
|
||||||
|
|
||||||
|
s.setValue("showtrayicon", ui_->checkbox_showtrayicon->isChecked());
|
||||||
|
s.setValue("keeprunning", ui_->checkbox_keeprunning->isChecked());
|
||||||
|
s.setValue("resumeplayback", ui_->checkbox_resumeplayback->isChecked());
|
||||||
|
s.setValue("playing_widget", ui_->checkbox_playingwidget->isChecked());
|
||||||
|
s.setValue("scrolltrayicon", ui_->checkbox_scrolltrayicon->isChecked());
|
||||||
|
|
||||||
MainWindow::StartupBehaviour behaviour = MainWindow::Startup_Remember;
|
MainWindow::StartupBehaviour behaviour = MainWindow::Startup_Remember;
|
||||||
if (ui_->radiobutton_alwayshide->isChecked()) behaviour = MainWindow::Startup_AlwaysHide;
|
if (ui_->radiobutton_alwayshide->isChecked()) behaviour = MainWindow::Startup_AlwaysHide;
|
||||||
if (ui_->radiobutton_alwaysshow->isChecked()) behaviour = MainWindow::Startup_AlwaysShow;
|
if (ui_->radiobutton_alwaysshow->isChecked()) behaviour = MainWindow::Startup_AlwaysShow;
|
||||||
if (ui_->radiobutton_remember->isChecked()) behaviour = MainWindow::Startup_Remember;
|
if (ui_->radiobutton_remember->isChecked()) behaviour = MainWindow::Startup_Remember;
|
||||||
|
|
||||||
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());
|
|
||||||
s.setValue("keeprunning", ui_->checkbox_keeprunning->isChecked());
|
|
||||||
s.setValue("resumeplayback", ui_->checkbox_resumeplayback->isChecked());
|
|
||||||
s.setValue("playing_widget", ui_->checkbox_playingwidget->isChecked());
|
|
||||||
s.setValue("startupbehaviour", int(behaviour));
|
s.setValue("startupbehaviour", int(behaviour));
|
||||||
s.setValue("doubleclick_addmode", doubleclick_addmode);
|
|
||||||
s.setValue("doubleclick_playmode", doubleclick_playmode);
|
|
||||||
s.setValue("menu_playmode", menu_playmode);
|
|
||||||
s.setValue("seek_step_sec", ui_->spinbox_seekstepsec->value());
|
|
||||||
|
|
||||||
s.setValue("language", language_map_.contains(ui_->combobox_language->currentText()) ? language_map_[ui_->combobox_language->currentText()] : QString());
|
s.setValue("language", language_map_.contains(ui_->combobox_language->currentText()) ? language_map_[ui_->combobox_language->currentText()] : QString());
|
||||||
|
|
||||||
|
PlayBehaviour menu_playmode = PlayBehaviour(ui_->combobox_menuplaymode->itemData(ui_->combobox_menuplaymode->currentIndex()).toInt());
|
||||||
|
|
||||||
|
PreviousBehaviour menu_previousmode = PreviousBehaviour(ui_->combobox_previousmode->itemData(ui_->combobox_previousmode->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());
|
||||||
|
|
||||||
|
PlaylistAddBehaviour doubleclick_playlist_addmode = PlaylistAddBehaviour(ui_->combobox_doubleclickplaylistaddmode->itemData(ui_->combobox_doubleclickplaylistaddmode->currentIndex()).toInt());
|
||||||
|
|
||||||
|
s.setValue("menu_playmode", menu_playmode);
|
||||||
|
s.setValue("menu_previousmode", menu_previousmode);
|
||||||
|
s.setValue("doubleclick_addmode", doubleclick_addmode);
|
||||||
|
s.setValue("doubleclick_playmode", doubleclick_playmode);
|
||||||
|
s.setValue("doubleclick_playlist_addmode", doubleclick_playlist_addmode);
|
||||||
|
|
||||||
|
s.setValue("seek_step_sec", ui_->spinbox_seekstepsec->value());
|
||||||
|
|
||||||
s.endGroup();
|
s.endGroup();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,17 @@ public:
|
|||||||
|
|
||||||
static const char *kSettingsGroup;
|
static const char *kSettingsGroup;
|
||||||
|
|
||||||
// Don't change the values
|
enum PlayBehaviour {
|
||||||
|
PlayBehaviour_Never = 1,
|
||||||
|
PlayBehaviour_IfStopped = 2,
|
||||||
|
PlayBehaviour_Always = 3,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum PreviousBehaviour {
|
||||||
|
PreviousBehaviour_DontRestart = 1,
|
||||||
|
PreviousBehaviour_Restart = 2
|
||||||
|
};
|
||||||
|
|
||||||
enum AddBehaviour {
|
enum AddBehaviour {
|
||||||
AddBehaviour_Append = 1,
|
AddBehaviour_Append = 1,
|
||||||
AddBehaviour_Enqueue = 2,
|
AddBehaviour_Enqueue = 2,
|
||||||
@@ -51,14 +61,6 @@ public:
|
|||||||
AddBehaviour_OpenInNew = 4
|
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 {
|
enum PlaylistAddBehaviour {
|
||||||
PlaylistAddBehaviour_Play = 1,
|
PlaylistAddBehaviour_Play = 1,
|
||||||
PlaylistAddBehaviour_Enqueue = 2,
|
PlaylistAddBehaviour_Enqueue = 2,
|
||||||
|
|||||||
Reference in New Issue
Block a user