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

View file

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

View file

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

View file

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

View file

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

View file

@ -219,6 +219,18 @@ impl MusicusRecordingEditor {
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]
fn select_work(&self, _: &adw::ActionRow) {
self.imp().work_selector_popover.get().unwrap().popup();

View file

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

View file

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