diff --git a/res/musicus.gresource.xml b/res/musicus.gresource.xml
index b446cce..d64423c 100644
--- a/res/musicus.gresource.xml
+++ b/res/musicus.gresource.xml
@@ -13,6 +13,7 @@
ui/person_screen.ui
ui/person_selector.ui
ui/player_bar.ui
+ ui/player_screen.ui
ui/poe_list.ui
ui/preferences.ui
ui/recording_editor.ui
diff --git a/res/ui/player_screen.ui b/res/ui/player_screen.ui
new file mode 100644
index 0000000..561f2e2
--- /dev/null
+++ b/res/ui/player_screen.ui
@@ -0,0 +1,305 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/dialogs/ensemble_selector.rs b/src/dialogs/ensemble_selector.rs
index a96f980..0d64225 100644
--- a/src/dialogs/ensemble_selector.rs
+++ b/src/dialogs/ensemble_selector.rs
@@ -49,6 +49,11 @@ where
for (index, ensemble) in ensembles.iter().enumerate() {
let label = gtk::Label::new(Some(&ensemble.name));
label.set_halign(gtk::Align::Start);
+ label.set_margin_start(6);
+ label.set_margin_end(6);
+ label.set_margin_top(6);
+ label.set_margin_bottom(6);
+
let row = SelectorRow::new(index.try_into().unwrap(), &label);
row.show_all();
clone.list.insert(&row, -1);
diff --git a/src/dialogs/instrument_selector.rs b/src/dialogs/instrument_selector.rs
index 9b19895..381ce23 100644
--- a/src/dialogs/instrument_selector.rs
+++ b/src/dialogs/instrument_selector.rs
@@ -49,6 +49,11 @@ where
for (index, instrument) in instruments.iter().enumerate() {
let label = gtk::Label::new(Some(&instrument.name));
label.set_halign(gtk::Align::Start);
+ label.set_margin_start(6);
+ label.set_margin_end(6);
+ label.set_margin_top(6);
+ label.set_margin_bottom(6);
+
let row = SelectorRow::new(index.try_into().unwrap(), &label);
row.show_all();
clone.list.insert(&row, -1);
diff --git a/src/dialogs/part_editor.rs b/src/dialogs/part_editor.rs
index bd65edf..f7043d8 100644
--- a/src/dialogs/part_editor.rs
+++ b/src/dialogs/part_editor.rs
@@ -140,6 +140,11 @@ impl PartEditor {
for (index, instrument) in self.instruments.borrow().iter().enumerate() {
let label = gtk::Label::new(Some(&instrument.name));
label.set_halign(gtk::Align::Start);
+ label.set_margin_start(6);
+ label.set_margin_end(6);
+ label.set_margin_top(6);
+ label.set_margin_bottom(6);
+
let row = SelectorRow::new(index.try_into().unwrap(), &label);
row.show_all();
self.instrument_list.insert(&row, -1);
diff --git a/src/dialogs/recording_editor.rs b/src/dialogs/recording_editor.rs
index 9b6fce1..5a73260 100644
--- a/src/dialogs/recording_editor.rs
+++ b/src/dialogs/recording_editor.rs
@@ -163,6 +163,11 @@ where
for (index, performer) in self.performers.borrow().iter().enumerate() {
let label = gtk::Label::new(Some(&performer.get_title()));
label.set_halign(gtk::Align::Start);
+ label.set_margin_start(6);
+ label.set_margin_end(6);
+ label.set_margin_top(6);
+ label.set_margin_bottom(6);
+
let row = SelectorRow::new(index.try_into().unwrap(), &label);
row.show_all();
self.performer_list.insert(&row, -1);
diff --git a/src/dialogs/recording_selector.rs b/src/dialogs/recording_selector.rs
index 7852f2b..411764d 100644
--- a/src/dialogs/recording_selector.rs
+++ b/src/dialogs/recording_selector.rs
@@ -110,6 +110,10 @@ impl RecordingSelectorPersonScreen {
|work: &WorkDescription| {
let label = gtk::Label::new(Some(&work.title));
label.set_halign(gtk::Align::Start);
+ label.set_margin_start(6);
+ label.set_margin_end(6);
+ label.set_margin_top(6);
+ label.set_margin_bottom(6);
label.upcast()
},
|_| true,
@@ -213,6 +217,7 @@ impl RecordingSelectorWorkScreen {
performers_label.set_halign(gtk::Align::Start);
let vbox = gtk::Box::new(gtk::Orientation::Vertical, 0);
+ vbox.set_border_width(6);
vbox.add(&work_label);
vbox.add(&performers_label);
diff --git a/src/dialogs/tracks_editor.rs b/src/dialogs/tracks_editor.rs
index 34663c7..31f0168 100644
--- a/src/dialogs/tracks_editor.rs
+++ b/src/dialogs/tracks_editor.rs
@@ -71,6 +71,7 @@ impl TracksEditor {
file_name_label.set_halign(gtk::Align::Start);
let vbox = gtk::Box::new(gtk::Orientation::Vertical, 0);
+ vbox.set_border_width(6);
vbox.add(&title_label);
vbox.add(&file_name_label);
diff --git a/src/dialogs/work_editor.rs b/src/dialogs/work_editor.rs
index 53ceaf8..3deaf02 100644
--- a/src/dialogs/work_editor.rs
+++ b/src/dialogs/work_editor.rs
@@ -341,6 +341,11 @@ where
for (index, instrument) in self.instruments.borrow().iter().enumerate() {
let label = gtk::Label::new(Some(&instrument.name));
label.set_halign(gtk::Align::Start);
+ label.set_margin_start(6);
+ label.set_margin_end(6);
+ label.set_margin_top(6);
+ label.set_margin_bottom(6);
+
let row = SelectorRow::new(index.try_into().unwrap(), &label);
row.show_all();
self.instrument_list.insert(&row, -1);
@@ -365,6 +370,10 @@ where
for (index, part) in self.structure.borrow().iter().enumerate() {
let label = gtk::Label::new(Some(&part.get_title()));
label.set_halign(gtk::Align::Start);
+ label.set_margin_start(6);
+ label.set_margin_end(6);
+ label.set_margin_top(6);
+ label.set_margin_bottom(6);
if part.is_part() {
label.set_margin_start(6);
diff --git a/src/dialogs/work_selector.rs b/src/dialogs/work_selector.rs
index 457b15b..3a0419f 100644
--- a/src/dialogs/work_selector.rs
+++ b/src/dialogs/work_selector.rs
@@ -142,6 +142,11 @@ where
for (index, person) in persons.iter().enumerate() {
let label = gtk::Label::new(Some(&person.name_lf()));
label.set_halign(gtk::Align::Start);
+ label.set_margin_start(6);
+ label.set_margin_end(6);
+ label.set_margin_top(6);
+ label.set_margin_bottom(6);
+
let row = SelectorRow::new(index.try_into().unwrap(), &label);
row.show_all();
self.person_list.insert(&row, -1);
@@ -207,6 +212,11 @@ where
for (index, work) in works.iter().enumerate() {
let label = gtk::Label::new(Some(&work.title));
label.set_halign(gtk::Align::Start);
+ label.set_margin_start(6);
+ label.set_margin_end(6);
+ label.set_margin_top(6);
+ label.set_margin_bottom(6);
+
let row = SelectorRow::new(index.try_into().unwrap(), &label);
row.show_all();
self.work_list.insert(&row, -1);
diff --git a/src/meson.build b/src/meson.build
index b7a72cf..2660253 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -57,6 +57,7 @@ sources = files(
'screens/ensemble_screen.rs',
'screens/mod.rs',
'screens/person_screen.rs',
+ 'screens/player_screen.rs',
'screens/recording_screen.rs',
'screens/work_screen.rs',
'widgets/list.rs',
diff --git a/src/player.rs b/src/player.rs
index bfb0bf9..84ca301 100644
--- a/src/player.rs
+++ b/src/player.rs
@@ -19,11 +19,11 @@ pub struct Player {
current_item: Cell