byte bye ui files
This commit is contained in:
parent
62694d8dae
commit
446bc3d6ae
17 changed files with 416 additions and 496 deletions
32
src/artist_list.blp
Normal file
32
src/artist_list.blp
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
using Gtk 4.0;
|
||||||
|
using Adw 1;
|
||||||
|
|
||||||
|
template $WaveletArtistList: Adw.NavigationPage {
|
||||||
|
title: _("Artists");
|
||||||
|
|
||||||
|
Adw.ToolbarView {
|
||||||
|
[top]
|
||||||
|
Adw.HeaderBar {}
|
||||||
|
|
||||||
|
Stack stack {
|
||||||
|
StackPage {
|
||||||
|
name: "loading";
|
||||||
|
|
||||||
|
child: Adw.Spinner {};
|
||||||
|
}
|
||||||
|
|
||||||
|
StackPage {
|
||||||
|
name: "ready";
|
||||||
|
|
||||||
|
child: ScrolledWindow {
|
||||||
|
ListView list_view {
|
||||||
|
factory: BuilderListItemFactory {
|
||||||
|
resource: "/eu/callcc/Wavelet/artist_list_artist.ui";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk" version="4.0"/>
|
|
||||||
<requires lib="Adw" version="1.0"/>
|
|
||||||
<template class="WaveletArtistList" parent="AdwNavigationPage">
|
|
||||||
<property name="title" translatable="true">Artists</property>
|
|
||||||
<child>
|
|
||||||
<object class="AdwToolbarView">
|
|
||||||
<child type="top">
|
|
||||||
<object class="AdwHeaderBar"></object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkStack" id="stack">
|
|
||||||
<child>
|
|
||||||
<object class="GtkStackPage">
|
|
||||||
<property name="name">loading</property>
|
|
||||||
<property name="child">
|
|
||||||
<object class="AdwSpinner"/>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkStackPage">
|
|
||||||
<property name="name">ready</property>
|
|
||||||
<property name="child">
|
|
||||||
<object class="GtkScrolledWindow">
|
|
||||||
<child>
|
|
||||||
<object class="GtkListView" id="list_view">
|
|
||||||
<property name="factory">
|
|
||||||
<object class="GtkBuilderListItemFactory">
|
|
||||||
<property name="resource">/eu/callcc/Wavelet/artist_list_artist.ui</property>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
9
src/artist_list_artist.blp
Normal file
9
src/artist_list_artist.blp
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
using Gtk 4.0;
|
||||||
|
|
||||||
|
template ListItem {
|
||||||
|
child: Label {
|
||||||
|
halign: start;
|
||||||
|
label: bind template.item as <$WaveletArtist>.name;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk" version="4.0"/>
|
|
||||||
<requires lib="Adw" version="1.0"/>
|
|
||||||
<template class="GtkListItem">
|
|
||||||
<property name="child">
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="halign">start</property>
|
|
||||||
<binding name="label">
|
|
||||||
<lookup type="WaveletArtist" name="name">
|
|
||||||
<lookup name="item">GtkListItem</lookup>
|
|
||||||
</lookup>
|
|
||||||
</binding>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
|
@ -18,9 +18,40 @@ wavelet_deps = [
|
||||||
dependency('sqlite3'),
|
dependency('sqlite3'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
blueprints = custom_target('blueprints',
|
||||||
|
input: files(
|
||||||
|
'artist_list.blp',
|
||||||
|
'artist_list_artist.blp',
|
||||||
|
'play_queue.blp',
|
||||||
|
'play_queue_song.blp',
|
||||||
|
'setup.blp',
|
||||||
|
'song_list.blp',
|
||||||
|
'song_list_song.blp',
|
||||||
|
'window.blp',
|
||||||
|
),
|
||||||
|
output: [
|
||||||
|
'artist_list.ui',
|
||||||
|
'artist_list_artist.ui',
|
||||||
|
'play_queue.ui',
|
||||||
|
'play_queue_song.ui',
|
||||||
|
'setup.ui',
|
||||||
|
'song_list.ui',
|
||||||
|
'song_list_song.ui',
|
||||||
|
'window.ui',
|
||||||
|
],
|
||||||
|
command: [
|
||||||
|
find_program('blueprint-compiler'),
|
||||||
|
'batch-compile',
|
||||||
|
'@OUTDIR@',
|
||||||
|
'@CURRENT_SOURCE_DIR@',
|
||||||
|
'@INPUT@',
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
wavelet_sources += gnome.compile_resources('wavelet-resources',
|
wavelet_sources += gnome.compile_resources('wavelet-resources',
|
||||||
'wavelet.gresource.xml',
|
'wavelet.gresource.xml',
|
||||||
c_name: 'wavelet'
|
c_name: 'wavelet',
|
||||||
|
dependencies: blueprints,
|
||||||
)
|
)
|
||||||
|
|
||||||
executable('wavelet', wavelet_sources,
|
executable('wavelet', wavelet_sources,
|
||||||
|
|
24
src/play_queue.blp
Normal file
24
src/play_queue.blp
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
using Gtk 4.0;
|
||||||
|
using Adw 1;
|
||||||
|
|
||||||
|
template $WaveletPlayQueue: Adw.NavigationPage {
|
||||||
|
title: _("Play queue");
|
||||||
|
|
||||||
|
Adw.ToolbarView {
|
||||||
|
[top]
|
||||||
|
Adw.HeaderBar {}
|
||||||
|
|
||||||
|
ScrolledWindow {
|
||||||
|
ListView list_view {
|
||||||
|
styles [
|
||||||
|
"view",
|
||||||
|
]
|
||||||
|
|
||||||
|
factory: BuilderListItemFactory {
|
||||||
|
resource: "/eu/callcc/Wavelet/play_queue_song.ui";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk" version="4.0"/>
|
|
||||||
<requires lib="Adw" version="1.0"/>
|
|
||||||
<template class="WaveletPlayQueue" parent="AdwNavigationPage">
|
|
||||||
<property name="title" translatable="true">Play queue</property>
|
|
||||||
<child>
|
|
||||||
<object class="AdwToolbarView">
|
|
||||||
<child type="top">
|
|
||||||
<object class="AdwHeaderBar"></object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkScrolledWindow">
|
|
||||||
<child>
|
|
||||||
<object class="GtkListView" id="list_view">
|
|
||||||
<style><class name="view"/></style>
|
|
||||||
<property name="factory">
|
|
||||||
<object class="GtkBuilderListItemFactory">
|
|
||||||
<property name="resource">/eu/callcc/Wavelet/play_queue_song.ui</property>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
9
src/play_queue_song.blp
Normal file
9
src/play_queue_song.blp
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
using Gtk 4.0;
|
||||||
|
|
||||||
|
template ListItem {
|
||||||
|
child: Label {
|
||||||
|
halign: start;
|
||||||
|
label: bind template.item as <$WaveletSong>.name;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk" version="4.0"/>
|
|
||||||
<requires lib="Adw" version="1.0"/>
|
|
||||||
<template class="GtkListItem">
|
|
||||||
<property name="child">
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="halign">start</property>
|
|
||||||
<binding name="label">
|
|
||||||
<lookup type="WaveletSong" name="name">
|
|
||||||
<lookup name="item">GtkListItem</lookup>
|
|
||||||
</lookup>
|
|
||||||
</binding>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
45
src/setup.blp
Normal file
45
src/setup.blp
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
using Gtk 4.0;
|
||||||
|
using Adw 1;
|
||||||
|
|
||||||
|
template $WaveletSetup: Adw.NavigationPage {
|
||||||
|
title: _("Setup");
|
||||||
|
|
||||||
|
Adw.ToolbarView {
|
||||||
|
[top]
|
||||||
|
Adw.HeaderBar {}
|
||||||
|
|
||||||
|
Adw.Clamp {
|
||||||
|
child: Adw.PreferencesGroup {
|
||||||
|
title: "Authentication";
|
||||||
|
|
||||||
|
Adw.EntryRow server_url {
|
||||||
|
title: "Server URL";
|
||||||
|
input-purpose: url;
|
||||||
|
}
|
||||||
|
|
||||||
|
Adw.EntryRow username {
|
||||||
|
title: "Username";
|
||||||
|
}
|
||||||
|
|
||||||
|
Adw.PasswordEntryRow password {
|
||||||
|
title: "Password";
|
||||||
|
}
|
||||||
|
|
||||||
|
Adw.ActionRow status {
|
||||||
|
title: "Status";
|
||||||
|
subtitle: "Not connected";
|
||||||
|
|
||||||
|
styles [
|
||||||
|
"property",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
Adw.ButtonRow validate {
|
||||||
|
title: "Connect and save";
|
||||||
|
sensitive: false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
53
src/setup.ui
53
src/setup.ui
|
@ -1,53 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk" version="4.0"/>
|
|
||||||
<requires lib="Adw" version="1.0"/>
|
|
||||||
<template class="WaveletSetup" parent="AdwNavigationPage">
|
|
||||||
<property name="title" translatable="true">Setup</property>
|
|
||||||
<child>
|
|
||||||
<object class="AdwToolbarView">
|
|
||||||
<child type="top">
|
|
||||||
<object class="AdwHeaderBar"></object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="AdwClamp">
|
|
||||||
<property name="child">
|
|
||||||
<object class="AdwPreferencesGroup">
|
|
||||||
<property name="title">Authentication</property>
|
|
||||||
<child>
|
|
||||||
<object class="AdwEntryRow" id="server_url">
|
|
||||||
<property name="title">Server URL</property>
|
|
||||||
<property name="input-purpose">url</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="AdwEntryRow" id="username">
|
|
||||||
<property name="title">Username</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="AdwPasswordEntryRow" id="password">
|
|
||||||
<property name="title">Password</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="AdwActionRow" id="status">
|
|
||||||
<property name="title">Status</property>
|
|
||||||
<property name="subtitle">Not connected</property>
|
|
||||||
<style><class name="property"/></style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="AdwButtonRow" id="validate">
|
|
||||||
<property name="title">Connect and save</property>
|
|
||||||
<property name="sensitive">False</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
56
src/song_list.blp
Normal file
56
src/song_list.blp
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
using Gtk 4.0;
|
||||||
|
using Adw 1;
|
||||||
|
|
||||||
|
template $WaveletSongList: Adw.NavigationPage {
|
||||||
|
title: _("Songs");
|
||||||
|
|
||||||
|
Adw.ToolbarView {
|
||||||
|
[top]
|
||||||
|
Adw.HeaderBar {}
|
||||||
|
|
||||||
|
Stack stack {
|
||||||
|
StackPage {
|
||||||
|
name: "loading";
|
||||||
|
|
||||||
|
child: Adw.Spinner {};
|
||||||
|
}
|
||||||
|
|
||||||
|
StackPage {
|
||||||
|
name: "ready";
|
||||||
|
|
||||||
|
child: ScrolledWindow {
|
||||||
|
ColumnView column_view {
|
||||||
|
ColumnViewColumn title_column {
|
||||||
|
title: "Title";
|
||||||
|
resizable: true;
|
||||||
|
|
||||||
|
factory: SignalListItemFactory {};
|
||||||
|
}
|
||||||
|
|
||||||
|
ColumnViewColumn album_column {
|
||||||
|
title: "Album";
|
||||||
|
resizable: true;
|
||||||
|
|
||||||
|
factory: SignalListItemFactory {};
|
||||||
|
}
|
||||||
|
|
||||||
|
ColumnViewColumn artist_column {
|
||||||
|
title: "Artist";
|
||||||
|
resizable: true;
|
||||||
|
|
||||||
|
factory: SignalListItemFactory {};
|
||||||
|
}
|
||||||
|
|
||||||
|
ColumnViewColumn track_column {
|
||||||
|
title: "#";
|
||||||
|
resizable: true;
|
||||||
|
|
||||||
|
factory: SignalListItemFactory {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk" version="4.0"/>
|
|
||||||
<requires lib="Adw" version="1.0"/>
|
|
||||||
<template class="WaveletSongList" parent="AdwNavigationPage">
|
|
||||||
<property name="title" translatable="true">Songs</property>
|
|
||||||
<child>
|
|
||||||
<object class="AdwToolbarView">
|
|
||||||
<child type="top">
|
|
||||||
<object class="AdwHeaderBar"></object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkStack" id="stack">
|
|
||||||
<child>
|
|
||||||
<object class="GtkStackPage">
|
|
||||||
<property name="name">loading</property>
|
|
||||||
<property name="child">
|
|
||||||
<object class="AdwSpinner"/>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkStackPage">
|
|
||||||
<property name="name">ready</property>
|
|
||||||
<property name="child">
|
|
||||||
<object class="GtkScrolledWindow">
|
|
||||||
<child>
|
|
||||||
<object class="GtkColumnView" id="column_view">
|
|
||||||
<child>
|
|
||||||
<object class="GtkColumnViewColumn" id="title_column">
|
|
||||||
<property name="title">Title</property>
|
|
||||||
<property name="resizable">True</property>
|
|
||||||
<property name="factory">
|
|
||||||
<object class="GtkSignalListItemFactory"/>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkColumnViewColumn" id="album_column">
|
|
||||||
<property name="title">Album</property>
|
|
||||||
<property name="resizable">True</property>
|
|
||||||
<property name="factory">
|
|
||||||
<object class="GtkSignalListItemFactory"/>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkColumnViewColumn" id="artist_column">
|
|
||||||
<property name="title">Artist</property>
|
|
||||||
<property name="resizable">True</property>
|
|
||||||
<property name="factory">
|
|
||||||
<object class="GtkSignalListItemFactory"/>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkColumnViewColumn" id="track_column">
|
|
||||||
<property name="title">#</property>
|
|
||||||
<property name="resizable">True</property>
|
|
||||||
<property name="factory">
|
|
||||||
<object class="GtkSignalListItemFactory"/>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
9
src/song_list_song.blp
Normal file
9
src/song_list_song.blp
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
using Gtk 4.0;
|
||||||
|
|
||||||
|
template ListItem {
|
||||||
|
child: Label {
|
||||||
|
halign: start;
|
||||||
|
label: bind template.item as <$WaveletSong>.title;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk" version="4.0"/>
|
|
||||||
<requires lib="Adw" version="1.0"/>
|
|
||||||
<template class="GtkListItem">
|
|
||||||
<property name="child">
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="halign">start</property>
|
|
||||||
<binding name="label">
|
|
||||||
<lookup type="WaveletSong" name="title">
|
|
||||||
<lookup name="item">GtkListItem</lookup>
|
|
||||||
</lookup>
|
|
||||||
</binding>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
200
src/window.blp
Normal file
200
src/window.blp
Normal file
|
@ -0,0 +1,200 @@
|
||||||
|
using Gtk 4.0;
|
||||||
|
using Adw 1;
|
||||||
|
|
||||||
|
template $WaveletWindow: Adw.ApplicationWindow {
|
||||||
|
title: _("Wavelet");
|
||||||
|
default-width: 800;
|
||||||
|
default-height: 600;
|
||||||
|
|
||||||
|
content: Box {
|
||||||
|
orientation: vertical;
|
||||||
|
|
||||||
|
Adw.OverlaySplitView {
|
||||||
|
vexpand: true;
|
||||||
|
|
||||||
|
[sidebar]
|
||||||
|
Adw.NavigationPage {
|
||||||
|
width-request: 100;
|
||||||
|
title: _("Wavelet");
|
||||||
|
|
||||||
|
Adw.ToolbarView {
|
||||||
|
[top]
|
||||||
|
Adw.HeaderBar {}
|
||||||
|
|
||||||
|
content: Box {
|
||||||
|
orientation: vertical;
|
||||||
|
|
||||||
|
ListBox sidebar {
|
||||||
|
styles [
|
||||||
|
"navigation-sidebar",
|
||||||
|
]
|
||||||
|
|
||||||
|
ListBoxRow sidebar_setup {
|
||||||
|
Label {
|
||||||
|
xalign: 0;
|
||||||
|
label: "Setup";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ListBoxRow sidebar_play_queue {
|
||||||
|
Label {
|
||||||
|
xalign: 0;
|
||||||
|
label: "Play queue";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Separator {}
|
||||||
|
|
||||||
|
ListBox {
|
||||||
|
selection-mode: none;
|
||||||
|
|
||||||
|
styles [
|
||||||
|
"navigation-sidebar",
|
||||||
|
]
|
||||||
|
|
||||||
|
Adw.ButtonRow {
|
||||||
|
title: "Shuffle all tracks";
|
||||||
|
start-icon-name: "media-playlist-shuffle";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[content]
|
||||||
|
Stack stack {
|
||||||
|
StackPage {
|
||||||
|
name: "setup";
|
||||||
|
title: "Setup";
|
||||||
|
|
||||||
|
child: $WaveletSetup setup {};
|
||||||
|
}
|
||||||
|
|
||||||
|
StackPage {
|
||||||
|
name: "artist_list";
|
||||||
|
title: "Artists";
|
||||||
|
|
||||||
|
child: $WaveletArtistList artist_list {};
|
||||||
|
}
|
||||||
|
|
||||||
|
StackPage {
|
||||||
|
name: "song_list";
|
||||||
|
title: "Songs";
|
||||||
|
|
||||||
|
child: $WaveletSongList song_list {};
|
||||||
|
}
|
||||||
|
|
||||||
|
StackPage {
|
||||||
|
name: "play_queue";
|
||||||
|
title: "Play queue";
|
||||||
|
|
||||||
|
child: $WaveletPlayQueue play_queue {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[bottom]
|
||||||
|
Box {
|
||||||
|
orientation: horizontal;
|
||||||
|
|
||||||
|
styles [
|
||||||
|
"toolbar",
|
||||||
|
]
|
||||||
|
|
||||||
|
Image {
|
||||||
|
height-request: 100;
|
||||||
|
width-request: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
Box {
|
||||||
|
orientation: vertical;
|
||||||
|
valign: center;
|
||||||
|
|
||||||
|
Label {
|
||||||
|
halign: start;
|
||||||
|
label: "Title";
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
halign: start;
|
||||||
|
label: "Artist - Album - Year";
|
||||||
|
}
|
||||||
|
|
||||||
|
Box {
|
||||||
|
halign: start;
|
||||||
|
orientation: horizontal;
|
||||||
|
|
||||||
|
Label {
|
||||||
|
label: "00:00";
|
||||||
|
}
|
||||||
|
|
||||||
|
Scale {
|
||||||
|
orientation: horizontal;
|
||||||
|
width-request: 200;
|
||||||
|
|
||||||
|
adjustment: Adjustment {
|
||||||
|
lower: 0;
|
||||||
|
upper: 100;
|
||||||
|
value: 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
label: "99:99";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Separator {
|
||||||
|
styles [
|
||||||
|
"spacer",
|
||||||
|
]
|
||||||
|
|
||||||
|
hexpand: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
icon-name: "media-skip-backward";
|
||||||
|
valign: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
icon-name: "media-playback-start";
|
||||||
|
valign: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
icon-name: "media-skip-forward";
|
||||||
|
valign: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
icon-name: "non-starred";
|
||||||
|
valign: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
icon-name: "audio-volume-high";
|
||||||
|
valign: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
Scale {
|
||||||
|
orientation: horizontal;
|
||||||
|
width-request: 130;
|
||||||
|
|
||||||
|
adjustment: Adjustment {
|
||||||
|
lower: 0;
|
||||||
|
upper: 100;
|
||||||
|
value: 100;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
icon-name: "media-playlist-consecutive";
|
||||||
|
valign: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
241
src/window.ui
241
src/window.ui
|
@ -1,241 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk" version="4.0"/>
|
|
||||||
<requires lib="Adw" version="1.0"/>
|
|
||||||
<template class="WaveletWindow" parent="AdwApplicationWindow">
|
|
||||||
<property name="title" translatable="yes">Wavelet</property>
|
|
||||||
|
|
||||||
<property name="default-width">800</property>
|
|
||||||
<property name="default-height">600</property>
|
|
||||||
<property name="content">
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child>
|
|
||||||
<object class="AdwOverlaySplitView">
|
|
||||||
<property name="vexpand">true</property>
|
|
||||||
<child type="sidebar">
|
|
||||||
<object class="AdwNavigationPage">
|
|
||||||
<property name="width-request">100</property>
|
|
||||||
<property name="title" translatable="true">Wavelet</property>
|
|
||||||
<child>
|
|
||||||
<object class="AdwToolbarView">
|
|
||||||
<child type="top">
|
|
||||||
<object class="AdwHeaderBar">
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<property name="content">
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkListBox" id="sidebar">
|
|
||||||
<style><class name="navigation-sidebar"/></style>
|
|
||||||
<child>
|
|
||||||
<object class="GtkListBoxRow" id="sidebar_setup">
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
<property name="label">Setup</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkListBoxRow" id="sidebar_play_queue">
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
<property name="label">Play queue</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkSeparator">
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkListBox">
|
|
||||||
<property name="selection-mode">none</property>
|
|
||||||
<style><class name="navigation-sidebar"/></style>
|
|
||||||
<child>
|
|
||||||
<object class="AdwButtonRow">
|
|
||||||
<property name="title">Shuffle all tracks</property>
|
|
||||||
<property name="start-icon-name">media-playlist-shuffle</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child type="content">
|
|
||||||
<object class="GtkStack" id="stack">
|
|
||||||
<child>
|
|
||||||
<object class="GtkStackPage">
|
|
||||||
<property name="name">setup</property>
|
|
||||||
<property name="title">Setup</property>
|
|
||||||
<property name="child">
|
|
||||||
<object class="WaveletSetup" id="setup"/>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkStackPage">
|
|
||||||
<property name="name">artist_list</property>
|
|
||||||
<property name="title">Artists</property>
|
|
||||||
<property name="child">
|
|
||||||
<object class="WaveletArtistList" id="artist_list"/>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkStackPage">
|
|
||||||
<property name="name">song_list</property>
|
|
||||||
<property name="title">Songs</property>
|
|
||||||
<property name="child">
|
|
||||||
<object class="WaveletSongList" id="song_list"/>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkStackPage">
|
|
||||||
<property name="name">play_queue</property>
|
|
||||||
<property name="title">Play queue</property>
|
|
||||||
<property name="child">
|
|
||||||
<object class="WaveletPlayQueue" id="play_queue"/>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child type="bottom">
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="orientation">0</property>
|
|
||||||
<style>
|
|
||||||
<class name="toolbar"/>
|
|
||||||
</style>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage">
|
|
||||||
<property name="height-request">100</property>
|
|
||||||
<property name="width-request">100</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="orientation">1</property>
|
|
||||||
<property name="valign">3</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="halign">1</property>
|
|
||||||
<property name="label">Title</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="halign">1</property>
|
|
||||||
<property name="label">Artist - Album - Year</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="halign">1</property>
|
|
||||||
<property name="orientation">0</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="label">00:00</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkScale">
|
|
||||||
<property name="orientation">0</property>
|
|
||||||
<property name="width-request">200</property>
|
|
||||||
<property name="adjustment">
|
|
||||||
<object class="GtkAdjustment">
|
|
||||||
<property name="lower">0</property>
|
|
||||||
<property name="upper">100</property>
|
|
||||||
<property name="value">0</property>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="label">99:99</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkSeparator">
|
|
||||||
<style>
|
|
||||||
<class name="spacer"/>
|
|
||||||
</style>
|
|
||||||
<property name="hexpand">true</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton">
|
|
||||||
<property name="icon-name">media-skip-backward</property>
|
|
||||||
<property name="valign">3</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton">
|
|
||||||
<property name="icon-name">media-playback-start</property>
|
|
||||||
<property name="valign">3</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton">
|
|
||||||
<property name="icon-name">media-skip-forward</property>
|
|
||||||
<property name="valign">3</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton">
|
|
||||||
<property name="icon-name">non-starred</property>
|
|
||||||
<property name="valign">3</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton">
|
|
||||||
<property name="icon-name">audio-volume-high</property>
|
|
||||||
<property name="valign">3</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkScale">
|
|
||||||
<property name="orientation">0</property>
|
|
||||||
<property name="width-request">130</property>
|
|
||||||
<property name="adjustment">
|
|
||||||
<object class="GtkAdjustment">
|
|
||||||
<property name="lower">0</property>
|
|
||||||
<property name="upper">100</property>
|
|
||||||
<property name="value">100</property>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton">
|
|
||||||
<property name="icon-name">media-playlist-consecutive</property>
|
|
||||||
<property name="valign">3</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
Loading…
Reference in a new issue