Use nullable roles instead of default roles

This commit is contained in:
Elias Projahn 2025-03-29 17:29:29 +01:00
parent 130df0d60e
commit a371e356f7
16 changed files with 380 additions and 186 deletions

View file

@ -1,6 +1,7 @@
use std::cell::{OnceCell, RefCell};
use adw::{prelude::*, subclass::prelude::*};
use gettextrs::gettext;
use gtk::{
gdk,
glib::{self, clone, subclass::Signal, Properties},
@ -112,7 +113,7 @@ mod imp {
role_popover.connect_role_selected(move |_, role| {
if let Some(ensemble) = &mut *obj.imp().ensemble.borrow_mut() {
obj.imp().role_label.set_label(&role.to_string());
ensemble.role = role;
ensemble.role = Some(role);
}
});
@ -126,7 +127,7 @@ mod imp {
move |_, role| {
if let Some(ensemble) = &mut *obj.imp().ensemble.borrow_mut() {
obj.imp().role_label.set_label(&role.to_string());
ensemble.role = role;
ensemble.role = Some(role);
};
}
));
@ -188,7 +189,13 @@ impl RecordingEditorEnsembleRow {
fn set_ensemble(&self, ensemble: EnsemblePerformer) {
self.set_title(&ensemble.ensemble.to_string());
self.imp().role_label.set_label(&ensemble.role.to_string());
self.imp().role_label.set_label(
&ensemble
.role
.as_ref()
.map(ToString::to_string)
.unwrap_or_else(|| gettext("Performer")),
);
self.imp().ensemble.replace(Some(ensemble));
}