From 028b1413ef9490cdcb21348ea0ca704828ef538e Mon Sep 17 00:00:00 2001
From: patrick96
Date: Thu, 21 Jun 2018 17:00:26 +0200
Subject: [PATCH] refactor(mpd): Replace icon-repeatone with icon-single
The repeatone button doesn't influence repeating behaviour at all, so
the name is misleading.
This deprecates icon-repeatone for now, until we can completely remove
it
Fixes #1279
---
include/modules/mpd.hpp | 11 ++++++++++-
src/modules/mpd.cpp | 27 ++++++++++++++++++---------
2 files changed, 28 insertions(+), 10 deletions(-)
diff --git a/include/modules/mpd.hpp b/include/modules/mpd.hpp
index d0510338..c9e07257 100644
--- a/include/modules/mpd.hpp
+++ b/include/modules/mpd.hpp
@@ -40,7 +40,16 @@ namespace modules {
static constexpr const char* TAG_LABEL_TIME{""};
static constexpr const char* TAG_ICON_RANDOM{""};
static constexpr const char* TAG_ICON_REPEAT{""};
+ /*
+ * Deprecated
+ */
static constexpr const char* TAG_ICON_REPEAT_ONE{""};
+ /*
+ * Replaces icon-repeatone
+ *
+ * repeatone is misleading, since it doesn't actually affect the repeating behaviour
+ */
+ static constexpr const char* TAG_ICON_SINGLE{""};
static constexpr const char* TAG_ICON_CONSUME{""};
static constexpr const char* TAG_ICON_PREV{""};
static constexpr const char* TAG_ICON_STOP{""};
@@ -59,7 +68,7 @@ namespace modules {
static constexpr const char* EVENT_PREV{"mpdprev"};
static constexpr const char* EVENT_NEXT{"mpdnext"};
static constexpr const char* EVENT_REPEAT{"mpdrepeat"};
- static constexpr const char* EVENT_REPEAT_ONE{"mpdrepeatone"};
+ static constexpr const char* EVENT_SINGLE{"mpdsingle"};
static constexpr const char* EVENT_RANDOM{"mpdrandom"};
static constexpr const char* EVENT_CONSUME{"mpdconsume"};
static constexpr const char* EVENT_SEEK{"mpdseek"};
diff --git a/src/modules/mpd.cpp b/src/modules/mpd.cpp
index 13c4b678..bdc9a654 100644
--- a/src/modules/mpd.cpp
+++ b/src/modules/mpd.cpp
@@ -24,7 +24,7 @@ namespace modules {
for (auto&& format : {FORMAT_PLAYING, FORMAT_PAUSED, FORMAT_STOPPED}) {
m_formatter->add(format, format_online,
{TAG_BAR_PROGRESS, TAG_TOGGLE, TAG_TOGGLE_STOP, TAG_LABEL_SONG, TAG_LABEL_TIME, TAG_ICON_RANDOM,
- TAG_ICON_REPEAT, TAG_ICON_REPEAT_ONE, TAG_ICON_PREV, TAG_ICON_STOP, TAG_ICON_PLAY, TAG_ICON_PAUSE,
+ TAG_ICON_REPEAT, TAG_ICON_REPEAT_ONE, TAG_ICON_SINGLE, TAG_ICON_PREV, TAG_ICON_STOP, TAG_ICON_PLAY, TAG_ICON_PAUSE,
TAG_ICON_NEXT, TAG_ICON_SEEKB, TAG_ICON_SEEKF, TAG_ICON_CONSUME});
auto mod_format = m_formatter->get(format);
mod_format->fg = m_conf.get(name(), FORMAT_ONLINE + "-foreground"s, mod_format->fg);
@@ -71,9 +71,17 @@ namespace modules {
if (m_formatter->has(TAG_ICON_REPEAT)) {
m_icons->add("repeat", load_icon(m_conf, name(), TAG_ICON_REPEAT));
}
- if (m_formatter->has(TAG_ICON_REPEAT_ONE)) {
- m_icons->add("repeat_one", load_icon(m_conf, name(), TAG_ICON_REPEAT_ONE));
+
+ if (m_formatter->has(TAG_ICON_SINGLE)) {
+ m_icons->add("single", load_icon(m_conf, name(), TAG_ICON_SINGLE));
}
+ else if(m_formatter->has(TAG_ICON_REPEAT_ONE)){
+
+ m_conf.warn_deprecated(name(), "icon-repeatone", "icon-single");
+
+ m_icons->add("single", load_icon(m_conf, name(), TAG_ICON_REPEAT_ONE));
+ }
+
if (m_formatter->has(TAG_ICON_CONSUME)) {
m_icons->add("consume", load_icon(m_conf, name(), TAG_ICON_CONSUME));
}
@@ -85,7 +93,8 @@ namespace modules {
m_label_time = load_optional_label(m_conf, name(), TAG_LABEL_TIME, "%elapsed% / %total%");
}
if (m_formatter->has(TAG_ICON_RANDOM) || m_formatter->has(TAG_ICON_REPEAT) ||
- m_formatter->has(TAG_ICON_REPEAT_ONE) || m_formatter->has(TAG_ICON_CONSUME)) {
+ m_formatter->has(TAG_ICON_REPEAT_ONE) || m_formatter->has(TAG_ICON_SINGLE) ||
+ m_formatter->has(TAG_ICON_CONSUME)) {
m_toggle_on_color = m_conf.get(name(), "toggle-on-foreground", ""s);
m_toggle_off_color = m_conf.get(name(), "toggle-off-foreground", ""s);
}
@@ -256,8 +265,8 @@ namespace modules {
if (m_icons->has("repeat")) {
m_icons->get("repeat")->m_foreground = m_status && m_status->repeat() ? m_toggle_on_color : m_toggle_off_color;
}
- if (m_icons->has("repeat_one")) {
- m_icons->get("repeat_one")->m_foreground =
+ if (m_icons->has("single")) {
+ m_icons->get("single")->m_foreground =
m_status && m_status->single() ? m_toggle_on_color : m_toggle_off_color;
}
if (m_icons->has("consume")) {
@@ -305,8 +314,8 @@ namespace modules {
builder->cmd(mousebtn::LEFT, EVENT_RANDOM, m_icons->get("random"));
} else if (tag == TAG_ICON_REPEAT) {
builder->cmd(mousebtn::LEFT, EVENT_REPEAT, m_icons->get("repeat"));
- } else if (tag == TAG_ICON_REPEAT_ONE) {
- builder->cmd(mousebtn::LEFT, EVENT_REPEAT_ONE, m_icons->get("repeat_one"));
+ } else if (tag == TAG_ICON_REPEAT_ONE || tag == TAG_ICON_SINGLE) {
+ builder->cmd(mousebtn::LEFT, EVENT_SINGLE, m_icons->get("single"));
} else if (tag == TAG_ICON_CONSUME) {
builder->cmd(mousebtn::LEFT, EVENT_CONSUME, m_icons->get("consume"));
} else if (tag == TAG_ICON_PREV) {
@@ -357,7 +366,7 @@ namespace modules {
mpd->prev();
} else if (cmd == EVENT_NEXT && !is_stopped) {
mpd->next();
- } else if (cmd == EVENT_REPEAT_ONE) {
+ } else if (cmd == EVENT_SINGLE) {
mpd->set_single(!status->single());
} else if (cmd == EVENT_REPEAT) {
mpd->set_repeat(!status->repeat());