add length limits for MPD module tags
parent
69a366dced
commit
6cc3212605
|
@ -73,6 +73,22 @@ Addressed by *mpd*
|
|||
default: "MPD (disconnected)" ++
|
||||
Tooltip information displayed when the MPD server can't be reached.
|
||||
|
||||
*artist-len*: ++
|
||||
typeof: integer ++
|
||||
Maximum length of the Artist tag.
|
||||
|
||||
*album-len*: ++
|
||||
typeof: integer ++
|
||||
Maximum length of the Album tag.
|
||||
|
||||
*album-artist-len*: ++
|
||||
typeof: integer ++
|
||||
Maximum length of the Album Artist tag.
|
||||
|
||||
*title-len*: ++
|
||||
typeof: integer ++
|
||||
Maximum length of the Title tag.
|
||||
|
||||
*rotate*: ++
|
||||
typeof: integer ++
|
||||
Positive value to rotate the text label.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
#include <fmt/chrono.h>
|
||||
#include <spdlog/spdlog.h>
|
||||
|
||||
#include <glibmm/ustring.h>
|
||||
#include "modules/mpd/state.hpp"
|
||||
#if defined(MPD_NOINLINE)
|
||||
namespace waybar::modules {
|
||||
|
@ -98,8 +98,8 @@ void waybar::modules::MPD::setLabel() {
|
|||
}
|
||||
|
||||
auto format = format_;
|
||||
|
||||
std::string artist, album_artist, album, title, date;
|
||||
Glib::ustring artist, album_artist, album, title;
|
||||
std::string date;
|
||||
int song_pos = 0, queue_length = 0;
|
||||
std::chrono::seconds elapsedTime, totalTime;
|
||||
|
||||
|
@ -144,13 +144,25 @@ void waybar::modules::MPD::setLabel() {
|
|||
bool singleActivated = mpd_status_get_single(status_.get());
|
||||
std::string singleIcon = getOptionIcon("single", singleActivated);
|
||||
|
||||
auto artistLen = config_["artist-len"].isInt() ?
|
||||
config_["artist-len"].asInt() : artist.size();
|
||||
|
||||
auto albumArtistLen = config_["album-artist-len"].isInt() ?
|
||||
config_["album-artist-len"].asInt() : album_artist.size();
|
||||
|
||||
auto albumLen = config_["album-len"].isInt() ?
|
||||
config_["album-len"].asInt() : album.size();
|
||||
|
||||
auto titleLen = config_["title-len"].isInt() ?
|
||||
config_["title-len"].asInt() : title.size();
|
||||
|
||||
try {
|
||||
label_.set_markup(
|
||||
fmt::format(format,
|
||||
fmt::arg("artist", Glib::Markup::escape_text(artist).raw()),
|
||||
fmt::arg("albumArtist", Glib::Markup::escape_text(album_artist).raw()),
|
||||
fmt::arg("album", Glib::Markup::escape_text(album).raw()),
|
||||
fmt::arg("title", Glib::Markup::escape_text(title).raw()),
|
||||
fmt::arg("artist", Glib::Markup::escape_text(artist.substr(0, artistLen)).raw()),
|
||||
fmt::arg("albumArtist", Glib::Markup::escape_text(album_artist.substr(0, albumArtistLen)).raw()),
|
||||
fmt::arg("album", Glib::Markup::escape_text(album.substr(0, albumLen)).raw()),
|
||||
fmt::arg("title", Glib::Markup::escape_text(title.substr(0, titleLen)).raw()),
|
||||
fmt::arg("date", Glib::Markup::escape_text(date).raw()),
|
||||
fmt::arg("elapsedTime", elapsedTime),
|
||||
fmt::arg("totalTime", totalTime),
|
||||
|
@ -171,10 +183,10 @@ void waybar::modules::MPD::setLabel() {
|
|||
: "MPD (connected)";
|
||||
try {
|
||||
auto tooltip_text = fmt::format(tooltip_format,
|
||||
fmt::arg("artist", artist),
|
||||
fmt::arg("albumArtist", album_artist),
|
||||
fmt::arg("album", album),
|
||||
fmt::arg("title", title),
|
||||
fmt::arg("artist", artist.substr(0, artistLen).raw()),
|
||||
fmt::arg("albumArtist", album_artist.substr(0, albumArtistLen).raw()),
|
||||
fmt::arg("album", album.substr(0, albumLen).raw()),
|
||||
fmt::arg("title", title.substr(0, titleLen).raw()),
|
||||
fmt::arg("date", date),
|
||||
fmt::arg("elapsedTime", elapsedTime),
|
||||
fmt::arg("totalTime", totalTime),
|
||||
|
|
Loading…
Reference in New Issue