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