mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-11-04 01:32:42 +01:00 
			
		
		
		
	add length limits for MPD module tags
This commit is contained in:
		@@ -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),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user