mirror of
https://github.com/johrpan/musicus.git
synced 2025-10-26 19:57:25 +01:00
Allow editing performances
This commit is contained in:
parent
d8f9767b22
commit
6f90359d09
2 changed files with 38 additions and 1 deletions
|
|
@ -152,6 +152,25 @@
|
||||||
<property name="position">0</property>
|
<property name="position">0</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="edit_performer_button">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">True</property>
|
||||||
|
<property name="receives-default">True</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<property name="icon-name">edit-symbolic</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton" id="remove_performer_button">
|
<object class="GtkButton" id="remove_performer_button">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
|
@ -168,7 +187,7 @@
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">True</property>
|
<property name="fill">True</property>
|
||||||
<property name="position">1</property>
|
<property name="position">2</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ where
|
||||||
get_widget!(builder, gtk::Entry, comment_entry);
|
get_widget!(builder, gtk::Entry, comment_entry);
|
||||||
get_widget!(builder, gtk::ListBox, performer_list);
|
get_widget!(builder, gtk::ListBox, performer_list);
|
||||||
get_widget!(builder, gtk::Button, add_performer_button);
|
get_widget!(builder, gtk::Button, add_performer_button);
|
||||||
|
get_widget!(builder, gtk::Button, edit_performer_button);
|
||||||
get_widget!(builder, gtk::Button, remove_performer_button);
|
get_widget!(builder, gtk::Button, remove_performer_button);
|
||||||
|
|
||||||
let (id, work, performers) = match recording {
|
let (id, work, performers) = match recording {
|
||||||
|
|
@ -109,6 +110,23 @@ where
|
||||||
})).show();
|
})).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 |_| {
|
remove_performer_button.connect_clicked(clone!(@strong result => move |_| {
|
||||||
let row = result.get_selected_performer_row();
|
let row = result.get_selected_performer_row();
|
||||||
match row {
|
match row {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue