editor: Show tooltips in selectors

This commit is contained in:
Elias Projahn 2025-02-09 08:14:46 +01:00
parent 3adcc0f10e
commit 0fe143a383
8 changed files with 31 additions and 8 deletions

View file

@ -146,12 +146,7 @@ impl MusicusEnsembleSelectorPopover {
fn search(&self, search: &str) { fn search(&self, search: &str) {
let imp = self.imp(); let imp = self.imp();
let ensembles = imp let ensembles = imp.library.get().unwrap().search_ensembles(search).unwrap();
.library
.get()
.unwrap()
.search_ensembles(search)
.unwrap();
imp.list_box.remove_all(); imp.list_box.remove_all();
@ -163,6 +158,8 @@ impl MusicusEnsembleSelectorPopover {
.build(), .build(),
); );
row.set_tooltip_text(Some(&ensemble.to_string()));
let ensemble = ensemble.clone(); let ensemble = ensemble.clone();
let obj = self.clone(); let obj = self.clone();
row.connect_activated(move |_: &MusicusActivatableRow| { row.connect_activated(move |_: &MusicusActivatableRow| {

View file

@ -163,6 +163,8 @@ impl MusicusInstrumentSelectorPopover {
.build(), .build(),
); );
row.set_tooltip_text(Some(&instrument.to_string()));
let instrument = instrument.clone(); let instrument = instrument.clone();
let obj = self.clone(); let obj = self.clone();
row.connect_activated(move |_: &MusicusActivatableRow| { row.connect_activated(move |_: &MusicusActivatableRow| {

View file

@ -212,6 +212,8 @@ impl MusicusPerformerRoleSelectorPopover {
.build(), .build(),
); );
row.set_tooltip_text(Some(&role.to_string()));
let role = role.clone(); let role = role.clone();
let obj = self.clone(); let obj = self.clone();
row.connect_activated(move |_: &MusicusActivatableRow| { row.connect_activated(move |_: &MusicusActivatableRow| {
@ -256,12 +258,14 @@ impl MusicusPerformerRoleSelectorPopover {
for instrument in &instruments { for instrument in &instruments {
let row = MusicusActivatableRow::new( let row = MusicusActivatableRow::new(
&gtk::Label::builder() &gtk::Label::builder()
.label(instrument.name.get()) .label(instrument.to_string())
.halign(gtk::Align::Start) .halign(gtk::Align::Start)
.ellipsize(pango::EllipsizeMode::Middle) .ellipsize(pango::EllipsizeMode::Middle)
.build(), .build(),
); );
row.set_tooltip_text(Some(&instrument.to_string()));
let instrument = instrument.clone(); let instrument = instrument.clone();
let obj = self.clone(); let obj = self.clone();
row.connect_activated(move |_: &MusicusActivatableRow| { row.connect_activated(move |_: &MusicusActivatableRow| {

View file

@ -96,7 +96,7 @@ impl MusicusPersonEditor {
} }
#[template_callback] #[template_callback]
fn save(&self, _: &gtk::Button) { fn save(&self) {
let library = self.imp().library.get().unwrap(); let library = self.imp().library.get().unwrap();
let name = self.imp().name_editor.translation(); let name = self.imp().name_editor.translation();

View file

@ -158,6 +158,8 @@ impl MusicusPersonSelectorPopover {
.build(), .build(),
); );
row.set_tooltip_text(Some(&person.to_string()));
let person = person.clone(); let person = person.clone();
let obj = self.clone(); let obj = self.clone();
row.connect_activated(move |_: &MusicusActivatableRow| { row.connect_activated(move |_: &MusicusActivatableRow| {

View file

@ -219,6 +219,18 @@ impl MusicusRecordingEditor {
obj obj
} }
pub fn connect_created<F: Fn(&Self, Recording) + 'static>(
&self,
f: F,
) -> glib::SignalHandlerId {
self.connect_local("created", true, move |values| {
let obj = values[0].get::<Self>().unwrap();
let recording = values[1].get::<Recording>().unwrap();
f(&obj, recording);
None
})
}
#[template_callback] #[template_callback]
fn select_work(&self, _: &adw::ActionRow) { fn select_work(&self, _: &adw::ActionRow) {
self.imp().work_selector_popover.get().unwrap().popup(); self.imp().work_selector_popover.get().unwrap().popup();

View file

@ -158,6 +158,8 @@ impl MusicusRoleSelectorPopover {
.build(), .build(),
); );
row.set_tooltip_text(Some(&role.to_string()));
let role = role.clone(); let role = role.clone();
let obj = self.clone(); let obj = self.clone();
row.connect_activated(move |_: &MusicusActivatableRow| { row.connect_activated(move |_: &MusicusActivatableRow| {

View file

@ -206,6 +206,8 @@ impl MusicusWorkSelectorPopover {
.build(), .build(),
); );
row.set_tooltip_text(Some(&person.to_string()));
let person = person.clone(); let person = person.clone();
let obj = self.clone(); let obj = self.clone();
row.connect_activated(move |_: &MusicusActivatableRow| { row.connect_activated(move |_: &MusicusActivatableRow| {
@ -256,6 +258,8 @@ impl MusicusWorkSelectorPopover {
.build(), .build(),
); );
row.set_tooltip_text(Some(&work.name.get()));
let work = work.clone(); let work = work.clone();
let obj = self.clone(); let obj = self.clone();
row.connect_activated(move |_: &MusicusActivatableRow| { row.connect_activated(move |_: &MusicusActivatableRow| {