diff --git a/res/ui/recording_editor.ui b/res/ui/recording_editor.ui
index 3a64b40..d6835ff 100644
--- a/res/ui/recording_editor.ui
+++ b/res/ui/recording_editor.ui
@@ -152,6 +152,25 @@
0
+
+
+
+ False
+ True
+ 1
+
+
True
@@ -168,7 +187,7 @@
False
True
- 1
+ 2
diff --git a/src/dialogs/recording_editor.rs b/src/dialogs/recording_editor.rs
index 1df12ce..3065596 100644
--- a/src/dialogs/recording_editor.rs
+++ b/src/dialogs/recording_editor.rs
@@ -45,6 +45,7 @@ where
get_widget!(builder, gtk::Entry, comment_entry);
get_widget!(builder, gtk::ListBox, performer_list);
get_widget!(builder, gtk::Button, add_performer_button);
+ get_widget!(builder, gtk::Button, edit_performer_button);
get_widget!(builder, gtk::Button, remove_performer_button);
let (id, work, performers) = match recording {
@@ -109,6 +110,23 @@ where
})).show();
}));
+ edit_performer_button.connect_clicked(clone!(@strong result => move |_| {
+ let row = result.get_selected_performer_row();
+ match row {
+ Some(row) => {
+ let index = row.get_index();
+ let index: usize = index.try_into().unwrap();
+ let performer = result.performers.borrow()[index].clone();
+
+ PerformanceEditor::new(result.backend.clone(), &result.window, Some(performer), clone!(@strong result => move |performer| {
+ result.performers.borrow_mut()[index] = performer;
+ result.show_performers();
+ })).show();
+ }
+ None => (),
+ }
+ }));
+
remove_performer_button.connect_clicked(clone!(@strong result => move |_| {
let row = result.get_selected_performer_row();
match row {