122 lines
2.3 KiB
Text
122 lines
2.3 KiB
Text
|
using Gtk 4.0;
|
||
|
|
||
|
template $UiPlayQueueSong: ListBoxRow {
|
||
|
selectable: false;
|
||
|
|
||
|
Box {
|
||
|
focusable: false;
|
||
|
spacing: 6;
|
||
|
|
||
|
Image {
|
||
|
visible: false;
|
||
|
icon-name: "list-drag-handle";
|
||
|
styles [ "drag-handle" ]
|
||
|
}
|
||
|
|
||
|
Box {
|
||
|
width-request: 48;
|
||
|
focusable: false;
|
||
|
homogeneous: true;
|
||
|
|
||
|
Image {
|
||
|
focusable: false;
|
||
|
icon-size: normal;
|
||
|
//icon-name: "media-playback-start";
|
||
|
}
|
||
|
|
||
|
Label {
|
||
|
focusable: false;
|
||
|
halign: end;
|
||
|
justify: right;
|
||
|
styles [ "dim-label", "numeric" ]
|
||
|
|
||
|
label: bind template.position;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Box title_box {
|
||
|
focusable: false;
|
||
|
hexpand: true;
|
||
|
|
||
|
Label {
|
||
|
focusable: false;
|
||
|
xalign: 0;
|
||
|
halign: start;
|
||
|
hexpand: true;
|
||
|
ellipsize: end;
|
||
|
max-width-chars: 90;
|
||
|
justify: fill;
|
||
|
margin-start: 9;
|
||
|
|
||
|
label: bind template.song as <$SubsonicSong>.title;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Box artist_box {
|
||
|
//visible: false;
|
||
|
focusable: false;
|
||
|
hexpand: true;
|
||
|
|
||
|
Label {
|
||
|
focusable: false;
|
||
|
xalign: 0;
|
||
|
halign: start;
|
||
|
hexpand: true;
|
||
|
ellipsize: end;
|
||
|
max-width-chars: 90;
|
||
|
justify: fill;
|
||
|
margin-start: 9;
|
||
|
|
||
|
label: bind template.song as <$SubsonicSong>.artist;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Box album_duration_box {
|
||
|
focusable: false;
|
||
|
hexpand: true;
|
||
|
spacing: 6;
|
||
|
|
||
|
Label {
|
||
|
//visible: false;
|
||
|
focusable: false;
|
||
|
xalign: 0;
|
||
|
halign: start;
|
||
|
hexpand: true;
|
||
|
ellipsize: end;
|
||
|
max-width-chars: 90;
|
||
|
justify: fill;
|
||
|
|
||
|
label: bind template.song as <$SubsonicSong>.album;
|
||
|
}
|
||
|
|
||
|
Label {
|
||
|
focusable: false;
|
||
|
halign: end;
|
||
|
hexpand: true;
|
||
|
single-line-mode: true;
|
||
|
styles [ "numeric" ]
|
||
|
|
||
|
label: bind $format_duration (template.song as <$SubsonicSong>.duration) as <string>;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Button {
|
||
|
focusable: true;
|
||
|
icon-name: bind $star_button_icon_name (template.song as <$SubsonicSong>.starred) as <string>;
|
||
|
styles [ "flat" ]
|
||
|
}
|
||
|
|
||
|
MenuButton {
|
||
|
//visible: false;
|
||
|
focusable: true;
|
||
|
icon-name: "view-more";
|
||
|
styles [ "flat" ]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
SizeGroup {
|
||
|
mode: horizontal;
|
||
|
widgets [title_box, artist_box, album_duration_box]
|
||
|
}
|