Project

General

Profile

0001-Add-support-for-toggling-infobar-album-art.patch

sn0w sn0w, April 25, 2020 02:28

View differences:

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
-