0001-Add-support-for-toggling-infobar-album-art.patch
| src/qtui/info_bar.cc | ||
|---|---|---|
| 188 | 188 |
m_stopped(true) |
| 189 | 189 |
{
|
| 190 | 190 |
update_vis(); |
| 191 | 191 |
setFixedHeight(ps.Height); |
| 192 | 192 | |
| 193 |
m_art_enabled = aud_get_bool("qtui", "infoarea_show_art");
|
|
| 194 | ||
| 193 | 195 |
for (SongData & d : sd) |
| 194 | 196 |
{
|
| 195 | 197 |
d.title.setTextFormat(Qt::PlainText); |
| 196 | 198 |
d.artist.setTextFormat(Qt::PlainText); |
| 197 | 199 |
d.album.setTextFormat(Qt::PlainText); |
| ... | ... | |
| 225 | 227 | |
| 226 | 228 |
for (SongData & d : sd) |
| 227 | 229 |
{
|
| 228 | 230 |
p.setOpacity((qreal)d.alpha / FadeSteps); |
| 229 | 231 | |
| 230 |
if (!d.art.isNull()) |
|
| 232 |
if (m_art_enabled && !d.art.isNull())
|
|
| 231 | 233 |
{
|
| 232 | 234 |
auto sz = d.art.size() / d.art.devicePixelRatio(); |
| 233 | 235 |
int left = ps.Spacing + (ps.IconSize - sz.width()) / 2; |
| 234 | 236 |
int top = ps.Spacing + (ps.IconSize - sz.height()) / 2; |
| 235 | 237 |
p.drawPixmap(left, top, d.art); |
| ... | ... | |
| 245 | 247 |
d.title = QStaticText(metrics.elidedText( |
| 246 | 248 |
d.orig_title, Qt::ElideRight, |
| 247 | 249 |
width() - ps.VisWidth - ps.Height - ps.Spacing)); |
| 248 | 250 |
} |
| 249 | 251 | |
| 252 |
int height = ps.Height; |
|
| 253 |
if (!m_art_enabled) |
|
| 254 |
{
|
|
| 255 |
height -= ps.IconSize; |
|
| 256 |
} |
|
| 257 | ||
| 250 | 258 |
p.setPen(QColor(255, 255, 255)); |
| 251 |
p.drawStaticText(ps.Height, ps.Spacing, d.title);
|
|
| 259 |
p.drawStaticText(height, ps.Spacing, d.title);
|
|
| 252 | 260 | |
| 253 | 261 |
font.setPointSize(9); |
| 254 | 262 |
p.setFont(font); |
| 255 | 263 | |
| 256 |
p.drawStaticText(ps.Height, ps.Spacing + ps.IconSize / 2, d.artist);
|
|
| 264 |
p.drawStaticText(height, ps.Spacing + ps.IconSize / 2, d.artist);
|
|
| 257 | 265 | |
| 258 | 266 |
p.setPen(QColor(179, 179, 179)); |
| 259 |
p.drawStaticText(ps.Height, ps.Spacing + ps.IconSize * 3 / 4, d.album);
|
|
| 267 |
p.drawStaticText(height, ps.Spacing + ps.IconSize * 3 / 4, d.album);
|
|
| 260 | 268 |
} |
| 261 | 269 |
} |
| 262 | 270 | |
| 263 | 271 |
void InfoBar::update_title() |
| 264 | 272 |
{
|
| ... | ... | |
| 329 | 337 | |
| 330 | 338 |
void InfoBar::update_vis() |
| 331 | 339 |
{
|
| 332 | 340 |
m_vis->enable(aud_get_bool("qtui", "infoarea_show_vis"));
|
| 333 | 341 |
} |
| 342 | ||
| 343 |
void InfoBar::update_art() |
|
| 344 |
{
|
|
| 345 |
m_art_enabled = aud_get_bool("qtui", "infoarea_show_art");
|
|
| 346 |
update(); |
|
| 347 |
} |
|
| src/qtui/info_bar.h | ||
|---|---|---|
| 43 | 43 |
void do_fade(); |
| 44 | 44 | |
| 45 | 45 |
void playback_ready_cb(); |
| 46 | 46 |
void playback_stop_cb(); |
| 47 | 47 |
void update_vis(); |
| 48 |
void update_art(); |
|
| 48 | 49 | |
| 49 | 50 |
const HookReceiver<InfoBar> hook1{"tuple change", this,
|
| 50 | 51 |
&InfoBar::update_title}, |
| 51 | 52 |
hook2{"playback ready", this, &InfoBar::playback_ready_cb},
|
| 52 | 53 |
hook3{"playback stop", this, &InfoBar::playback_stop_cb},
|
| 53 |
hook4{"qtui toggle infoarea_vis", this, &InfoBar::update_vis};
|
|
| 54 |
hook4{"qtui toggle infoarea_vis", this, &InfoBar::update_vis},
|
|
| 55 |
hook5{"qtui toggle infoarea_art", this, &InfoBar::update_art};
|
|
| 54 | 56 | |
| 55 | 57 |
const Timer<InfoBar> fade_timer{TimerRate::Hz30, this, &InfoBar::do_fade};
|
| 56 | 58 | |
| 57 | 59 |
InfoVis * m_vis; |
| 58 | 60 |
const PixelSizes & ps; |
| ... | ... | |
| 71 | 73 |
Cur = 1 |
| 72 | 74 |
}; /* index into SongData array */ |
| 73 | 75 | |
| 74 | 76 |
SongData sd[2]; |
| 75 | 77 |
bool m_stopped; |
| 78 |
bool m_art_enabled; |
|
| 76 | 79 |
}; |
| 77 | 80 | |
| 78 | 81 |
#endif |
| src/qtui/menus.cc | ||
|---|---|---|
| 89 | 89 |
static void toggle_infoarea() { hook_call("qtui toggle infoarea", nullptr); }
|
| 90 | 90 |
static void toggle_infoarea_vis() |
| 91 | 91 |
{
|
| 92 | 92 |
hook_call("qtui toggle infoarea_vis", nullptr);
|
| 93 | 93 |
} |
| 94 |
static void toggle_infoarea_art() |
|
| 95 |
{
|
|
| 96 |
hook_call("qtui toggle infoarea_art", nullptr);
|
|
| 97 |
} |
|
| 94 | 98 |
static void toggle_statusbar() { hook_call("qtui toggle statusbar", nullptr); }
|
| 95 | 99 |
static void toggle_remaining_time() |
| 96 | 100 |
{
|
| 97 | 101 |
hook_call("qtui toggle remaining time", nullptr);
|
| 98 | 102 |
} |
| ... | ... | |
| 247 | 251 |
{"qtui", "menu_visible"}, toggle_menubar),
|
| 248 | 252 |
audqt::MenuToggle({N_("Show I_nfo Bar"), nullptr, "Shift+Ctrl+I"},
|
| 249 | 253 |
{"qtui", "infoarea_visible"}, toggle_infoarea),
|
| 250 | 254 |
audqt::MenuToggle({N_("Show Info Bar Vis_ualization")},
|
| 251 | 255 |
{"qtui", "infoarea_show_vis"}, toggle_infoarea_vis),
|
| 256 |
audqt::MenuToggle({N_("Show Info Bar Album Art")},
|
|
| 257 |
{"qtui", "infoarea_show_art"}, toggle_infoarea_art),
|
|
| 252 | 258 |
audqt::MenuToggle({N_("Show _Status Bar"), nullptr, "Shift+Ctrl+S"},
|
| 253 | 259 |
{"qtui", "statusbar_visible"}, toggle_statusbar),
|
| 254 | 260 |
audqt::MenuSep(), |
| 255 | 261 |
audqt::MenuToggle( |
| 256 | 262 |
{N_("Show _Remaining Time"), nullptr, "Shift+Ctrl+R"},
|
| src/qtui/settings.cc | ||
|---|---|---|
| 27 | 27 |
#include <QDesktopWidget> |
| 28 | 28 | |
| 29 | 29 |
const char * const qtui_defaults[] = {
|
| 30 | 30 |
// clang-format off |
| 31 | 31 |
"infoarea_show_vis", "TRUE", |
| 32 |
"infoarea_show_art", "TRUE", |
|
| 32 | 33 |
"infoarea_visible", "TRUE", |
| 33 | 34 |
"menu_visible", "TRUE", |
| 34 | 35 |
"playlist_tabs_visible", aud::numeric_string<PlaylistTabVisibility::AutoHide>::str, |
| 35 | 36 |
"statusbar_visible", "TRUE", |
| 36 | 37 |
"entry_count_visible", "FALSE", |
| 37 |
- |
|
