From 2c1fe19b054d392ef9b6982ddeb5e5313e5dc2e4 Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Fri, 12 Nov 2021 00:44:09 +0100 Subject: [PATCH] Disable focus on action rows with child widgets --- musicus/res/ui/import_screen.ui | 8 +++++--- musicus/res/ui/login_dialog.ui | 8 ++++---- musicus/res/ui/medium_editor.ui | 4 ++-- musicus/res/ui/performance_editor.ui | 6 +++--- musicus/res/ui/preferences.ui | 3 +++ musicus/res/ui/recording_editor.ui | 6 +++--- musicus/res/ui/register_dialog.ui | 10 +++++----- musicus/res/ui/server_dialog.ui | 2 +- musicus/res/ui/track_set_editor.ui | 2 +- musicus/res/ui/work_editor.ui | 6 +++--- musicus/res/ui/work_part_editor.ui | 2 +- musicus/res/ui/work_section_editor.ui | 2 +- musicus/src/editors/recording.rs | 10 ++++++---- musicus/src/editors/work.rs | 16 ++++++++++------ musicus/src/import/import_screen.rs | 2 +- musicus/src/import/medium_editor.rs | 12 +++++++----- musicus/src/import/track_editor.rs | 10 ++++++---- musicus/src/import/track_selector.rs | 10 ++++++---- musicus/src/import/track_set_editor.rs | 12 +++++++----- musicus/src/screens/ensemble.rs | 16 +++++++++------- musicus/src/screens/main.rs | 7 ++++--- musicus/src/screens/medium.rs | 10 +++++----- musicus/src/screens/person.rs | 23 +++++++++++++---------- musicus/src/screens/player.rs | 9 +++++---- musicus/src/screens/recording.rs | 5 +++-- musicus/src/screens/work.rs | 9 +++++---- musicus/src/selectors/ensemble.rs | 7 ++++--- musicus/src/selectors/instrument.rs | 7 ++++--- musicus/src/selectors/medium.rs | 14 ++++++++------ musicus/src/selectors/person.rs | 7 ++++--- musicus/src/selectors/recording.rs | 21 ++++++++++++--------- musicus/src/selectors/work.rs | 14 ++++++++------ musicus/src/widgets/button_row.rs | 2 +- musicus/src/widgets/entry_row.rs | 2 +- musicus/src/widgets/upload_section.rs | 2 +- 35 files changed, 162 insertions(+), 124 deletions(-) diff --git a/musicus/res/ui/import_screen.ui b/musicus/res/ui/import_screen.ui index 1079912..3f849ec 100644 --- a/musicus/res/ui/import_screen.ui +++ b/musicus/res/ui/import_screen.ui @@ -68,6 +68,7 @@ none + False Loading… @@ -88,8 +89,8 @@ none + False Error while searching for matching metadata - True try_again_button @@ -111,6 +112,7 @@ none + False No matching metadata found @@ -150,8 +152,8 @@ none + False Select existing medium - True select_button @@ -163,8 +165,8 @@ + False Add a new medium - True add_button diff --git a/musicus/res/ui/login_dialog.ui b/musicus/res/ui/login_dialog.ui index 9a468ac..4442bea 100644 --- a/musicus/res/ui/login_dialog.ui +++ b/musicus/res/ui/login_dialog.ui @@ -69,7 +69,7 @@ none - True + False Username username_entry @@ -82,7 +82,7 @@ - True + False Password password_entry @@ -120,7 +120,7 @@ none - True + False Register a new account register_button @@ -159,7 +159,7 @@ none - True + False Don't use an account logout_button diff --git a/musicus/res/ui/medium_editor.ui b/musicus/res/ui/medium_editor.ui index 3a7a817..07c3c60 100644 --- a/musicus/res/ui/medium_editor.ui +++ b/musicus/res/ui/medium_editor.ui @@ -71,7 +71,7 @@ none - True + False Name of the medium name_entry @@ -84,7 +84,7 @@ - True + False Publish to the server publish_switch diff --git a/musicus/res/ui/performance_editor.ui b/musicus/res/ui/performance_editor.ui index 56f9062..b56c347 100644 --- a/musicus/res/ui/performance_editor.ui +++ b/musicus/res/ui/performance_editor.ui @@ -51,7 +51,7 @@ none - True + False Select a person person_button @@ -64,7 +64,7 @@ - True + False Select an ensemble ensemble_button @@ -77,7 +77,7 @@ - True + False Select a role role_button diff --git a/musicus/res/ui/preferences.ui b/musicus/res/ui/preferences.ui index e4bbf6d..e980af1 100644 --- a/musicus/res/ui/preferences.ui +++ b/musicus/res/ui/preferences.ui @@ -14,6 +14,7 @@ Music library + False Music library folder select_music_library_path_button None selected @@ -33,6 +34,7 @@ Server connection + False Server URL url_button Not set @@ -47,6 +49,7 @@ + False Login credentials login_button Not logged in diff --git a/musicus/res/ui/recording_editor.ui b/musicus/res/ui/recording_editor.ui index 3748fd6..f1c7aa1 100644 --- a/musicus/res/ui/recording_editor.ui +++ b/musicus/res/ui/recording_editor.ui @@ -75,7 +75,7 @@ none - True + False Select a work work_button @@ -88,7 +88,7 @@ - True + False Comment comment_entry @@ -101,7 +101,7 @@ - True + False Publish to the server upload_switch diff --git a/musicus/res/ui/register_dialog.ui b/musicus/res/ui/register_dialog.ui index 65a2ade..e44ae96 100644 --- a/musicus/res/ui/register_dialog.ui +++ b/musicus/res/ui/register_dialog.ui @@ -102,7 +102,7 @@ none - True + False Username username_entry @@ -115,7 +115,7 @@ - True + False E-mail (optional) email_entry @@ -147,7 +147,7 @@ none - True + False Password password_entry @@ -162,7 +162,7 @@ - True + False Repeat password repeat_password_entry @@ -202,7 +202,7 @@ - True + False Your answer captcha_entry diff --git a/musicus/res/ui/server_dialog.ui b/musicus/res/ui/server_dialog.ui index 6e481fd..b6e07cf 100644 --- a/musicus/res/ui/server_dialog.ui +++ b/musicus/res/ui/server_dialog.ui @@ -40,7 +40,7 @@ none - True + False URL url_entry diff --git a/musicus/res/ui/track_set_editor.ui b/musicus/res/ui/track_set_editor.ui index c0fc576..3ba3511 100644 --- a/musicus/res/ui/track_set_editor.ui +++ b/musicus/res/ui/track_set_editor.ui @@ -61,7 +61,7 @@ none - True + False Select a recording select_recording_button diff --git a/musicus/res/ui/work_editor.ui b/musicus/res/ui/work_editor.ui index 35a2489..761f059 100644 --- a/musicus/res/ui/work_editor.ui +++ b/musicus/res/ui/work_editor.ui @@ -75,7 +75,7 @@ none - True + False Select a composer composer_button @@ -88,7 +88,7 @@ - True + False Title title_entry @@ -101,7 +101,7 @@ - True + False Publish to the server upload_switch diff --git a/musicus/res/ui/work_part_editor.ui b/musicus/res/ui/work_part_editor.ui index 635bfad..41b0c0e 100644 --- a/musicus/res/ui/work_part_editor.ui +++ b/musicus/res/ui/work_part_editor.ui @@ -55,7 +55,7 @@ none - True + False Title title_entry diff --git a/musicus/res/ui/work_section_editor.ui b/musicus/res/ui/work_section_editor.ui index 46862dd..e31060f 100644 --- a/musicus/res/ui/work_section_editor.ui +++ b/musicus/res/ui/work_section_editor.ui @@ -55,7 +55,7 @@ none - True + False Title title_entry diff --git a/musicus/src/editors/recording.rs b/musicus/src/editors/recording.rs index 8a893e3..0d506fc 100644 --- a/musicus/src/editors/recording.rs +++ b/musicus/src/editors/recording.rs @@ -136,12 +136,14 @@ impl Screen, Recording> for RecordingEditor { }); })); - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&performance.get_title()); + let row = adw::ActionRowBuilder::new() + .focusable(false) + .activatable_widget(&edit_button) + .title(&performance.get_title()) + .build(); + row.add_suffix(&delete_button); row.add_suffix(&edit_button); - row.set_activatable_widget(Some(&edit_button)); row.upcast() })); diff --git a/musicus/src/editors/work.rs b/musicus/src/editors/work.rs index a053d92..0c0285b 100644 --- a/musicus/src/editors/work.rs +++ b/musicus/src/editors/work.rs @@ -161,8 +161,10 @@ impl Screen, Work> for WorkEditor { this.instrument_list.update(length); })); - let row = adw::ActionRow::new(); - row.set_title(&instrument.name); + let row = adw::ActionRowBuilder::new() + .title(&instrument.name) + .build(); + row.add_suffix(&delete_button); row.upcast() @@ -232,12 +234,14 @@ impl Screen, Work> for WorkEditor { }); })); - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&pos.get_title()); + let row = adw::ActionRowBuilder::new() + .focusable(false) + .title(&pos.get_title()) + .activatable_widget(&edit_button) + .build(); + row.add_suffix(&delete_button); row.add_suffix(&edit_button); - row.set_activatable_widget(Some(&edit_button)); if let PartOrSection::Part(_) = pos { // TODO: Replace with better solution to differentiate parts and sections. diff --git a/musicus/src/import/import_screen.rs b/musicus/src/import/import_screen.rs index 9a76323..c12782f 100644 --- a/musicus/src/import/import_screen.rs +++ b/musicus/src/import/import_screen.rs @@ -71,9 +71,9 @@ impl ImportScreen { for medium in mediums { let row = adw::ActionRowBuilder::new() + .activatable(true) .title(&medium.name) .subtitle(&format!("{} Tracks", medium.tracks.len())) - .activatable(true) .build(); row.connect_activated(clone!(@weak this => move |_| { diff --git a/musicus/src/import/medium_editor.rs b/musicus/src/import/medium_editor.rs index 5159fc6..c48f4a2 100644 --- a/musicus/src/import/medium_editor.rs +++ b/musicus/src/import/medium_editor.rs @@ -118,12 +118,14 @@ impl Screen<(Arc, Option), Medium> for MediumEditor { edit_button.set_valign(gtk::Align::Center); edit_button.set_child(Some(&edit_image)); - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&title); - row.set_subtitle(&subtitle); + let row = adw::ActionRowBuilder::new() + .focusable(false) + .title(&title) + .subtitle(&subtitle) + .activatable_widget(&edit_button) + .build(); + row.add_suffix(&edit_button); - row.set_activatable_widget(Some(&edit_button)); edit_button.connect_clicked(clone!(@weak this => move |_| { // TODO: Implement editing. diff --git a/musicus/src/import/track_editor.rs b/musicus/src/import/track_editor.rs index 993204a..3b5fd41 100644 --- a/musicus/src/import/track_editor.rs +++ b/musicus/src/import/track_editor.rs @@ -65,11 +65,13 @@ impl Screen<(Recording, Vec), Vec> for TrackEditor { } })); - let row = adw::ActionRow::new(); - row.add_prefix(&check); - row.set_activatable_widget(Some(&check)); - row.set_title(&part.title); + let row = adw::ActionRowBuilder::new() + .focusable(false) + .title(&part.title) + .activatable_widget(&check) + .build(); + row.add_prefix(&check); parts_list.append(&row); } diff --git a/musicus/src/import/track_selector.rs b/musicus/src/import/track_selector.rs index 47ec2f4..69c87c5 100644 --- a/musicus/src/import/track_selector.rs +++ b/musicus/src/import/track_selector.rs @@ -75,11 +75,13 @@ impl Screen, Vec> for TrackSelector { } })); - let row = adw::ActionRow::new(); + let row = adw::ActionRowBuilder::new() + .focusable(false) + .title(&track.name) + .activatable_widget(&check) + .build(); + row.add_prefix(&check); - row.set_activatable_widget(Some(&check)); - row.set_activatable(true); - row.set_title(&track.name); track_list.append(&row); } diff --git a/musicus/src/import/track_set_editor.rs b/musicus/src/import/track_set_editor.rs index 94e1a05..6e560e4 100644 --- a/musicus/src/import/track_set_editor.rs +++ b/musicus/src/import/track_set_editor.rs @@ -144,12 +144,14 @@ impl Screen, TrackSetData> for TrackSetEditor { edit_button.set_valign(gtk::Align::Center); edit_button.set_child(Some(&edit_image)); - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&title); - row.set_subtitle(track_name); + let row = adw::ActionRowBuilder::new() + .focusable(false) + .title(&title) + .subtitle(track_name) + .activatable_widget(&edit_button) + .build(); + row.add_suffix(&edit_button); - row.set_activatable_widget(Some(&edit_button)); edit_button.connect_clicked(clone!(@weak this => move |_| { let recording = this.recording.borrow().clone(); diff --git a/musicus/src/screens/ensemble.rs b/musicus/src/screens/ensemble.rs index 6873e5a..8750de2 100644 --- a/musicus/src/screens/ensemble.rs +++ b/musicus/src/screens/ensemble.rs @@ -74,10 +74,11 @@ impl Screen for EnsembleScreen { clone!(@weak this => @default-panic, move |index| { let recording = &this.recordings.borrow()[index]; - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&recording.work.get_title()); - row.set_subtitle(&recording.get_performers()); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&recording.work.get_title()) + .subtitle(&recording.get_performers()) + .build(); let recording = recording.to_owned(); row.connect_activated(clone!(@weak this => move |_| { @@ -103,9 +104,10 @@ impl Screen for EnsembleScreen { .set_make_widget_cb(clone!(@weak this => @default-panic, move |index| { let medium = &this.mediums.borrow()[index]; - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&medium.name); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&medium.name) + .build(); let medium = medium.to_owned(); row.connect_activated(clone!(@weak this => move |_| { diff --git a/musicus/src/screens/main.rs b/musicus/src/screens/main.rs index af4fa92..e2a46e4 100644 --- a/musicus/src/screens/main.rs +++ b/musicus/src/screens/main.rs @@ -93,9 +93,10 @@ impl Screen<(), ()> for MainScreen { .set_make_widget_cb(clone!(@weak this => @default-panic, move |index| { let poe = &this.poes.borrow()[index]; - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&poe.get_title()); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&poe.get_title()) + .build(); let poe = poe.to_owned(); row.connect_activated(clone!(@weak this => move |_| { diff --git a/musicus/src/screens/medium.rs b/musicus/src/screens/medium.rs index f3e4438..3ee64b5 100644 --- a/musicus/src/screens/medium.rs +++ b/musicus/src/screens/medium.rs @@ -76,11 +76,11 @@ impl Screen for MediumScreen { parts.join(", ") }; - let row = adw::ActionRow::new(); - row.set_selectable(false); - row.set_activatable(false); - row.set_title(&title); - row.set_margin_start(12); + let row = adw::ActionRowBuilder::new() + .margin_start(12) + .selectable(false) + .title(&title) + .build(); row.upcast() })); diff --git a/musicus/src/screens/person.rs b/musicus/src/screens/person.rs index ab99fbb..57c96f3 100644 --- a/musicus/src/screens/person.rs +++ b/musicus/src/screens/person.rs @@ -80,9 +80,10 @@ impl Screen for PersonScreen { .set_make_widget_cb(clone!(@weak this => @default-panic, move |index| { let work = &this.works.borrow()[index]; - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&work.title); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&work.title) + .build(); let work = work.to_owned(); row.connect_activated(clone!(@weak this => move |_| { @@ -107,10 +108,11 @@ impl Screen for PersonScreen { clone!(@weak this => @default-panic, move |index| { let recording = &this.recordings.borrow()[index]; - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&recording.work.get_title()); - row.set_subtitle(&recording.get_performers()); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&recording.work.get_title()) + .subtitle(&recording.get_performers()) + .build(); let recording = recording.to_owned(); row.connect_activated(clone!(@weak this => move |_| { @@ -136,9 +138,10 @@ impl Screen for PersonScreen { .set_make_widget_cb(clone!(@weak this => @default-panic, move |index| { let medium = &this.mediums.borrow()[index]; - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&medium.name); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&medium.name) + .build(); let medium = medium.to_owned(); row.connect_activated(clone!(@weak this => move |_| { diff --git a/musicus/src/screens/player.rs b/musicus/src/screens/player.rs index 962819f..6bc78c6 100644 --- a/musicus/src/screens/player.rs +++ b/musicus/src/screens/player.rs @@ -225,10 +225,11 @@ impl Screen<(), ()> for PlayerScreen { parts.join(", ") }; - let row = adw::ActionRow::new(); - row.set_selectable(false); - row.set_activatable(true); - row.set_title(&title); + let row = adw::ActionRowBuilder::new() + .selectable(false) + .activatable(true) + .title(&title) + .build(); if first { let subtitle = if !parts.is_empty() { diff --git a/musicus/src/screens/recording.rs b/musicus/src/screens/recording.rs index 28b0468..9fbdc91 100644 --- a/musicus/src/screens/recording.rs +++ b/musicus/src/screens/recording.rs @@ -86,8 +86,9 @@ impl Screen for RecordingScreen { title_parts.join(", ") }; - let row = adw::ActionRow::new(); - row.set_title(&title); + let row = adw::ActionRowBuilder::new() + .title(&title) + .build(); row.upcast() })); diff --git a/musicus/src/screens/work.rs b/musicus/src/screens/work.rs index 0a35bba..5e5f8a5 100644 --- a/musicus/src/screens/work.rs +++ b/musicus/src/screens/work.rs @@ -69,10 +69,11 @@ impl Screen for WorkScreen { clone!(@weak this => @default-panic, move |index| { let recording = &this.recordings.borrow()[index]; - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&recording.work.get_title()); - row.set_subtitle(&recording.get_performers()); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&recording.work.get_title()) + .subtitle(&recording.get_performers()) + .build(); let recording = recording.to_owned(); row.connect_activated(clone!(@weak this => move |_| { diff --git a/musicus/src/selectors/ensemble.rs b/musicus/src/selectors/ensemble.rs index 444e62f..1ca37b6 100644 --- a/musicus/src/selectors/ensemble.rs +++ b/musicus/src/selectors/ensemble.rs @@ -52,9 +52,10 @@ impl Screen<(), Ensemble> for EnsembleSelector { this.selector .set_make_widget(clone!(@weak this => @default-panic, move |ensemble| { - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&ensemble.name); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&ensemble.name) + .build(); let ensemble = ensemble.to_owned(); row.connect_activated(clone!(@weak this => move |_| { diff --git a/musicus/src/selectors/instrument.rs b/musicus/src/selectors/instrument.rs index 2ff2cb0..20e054c 100644 --- a/musicus/src/selectors/instrument.rs +++ b/musicus/src/selectors/instrument.rs @@ -52,9 +52,10 @@ impl Screen<(), Instrument> for InstrumentSelector { this.selector .set_make_widget(clone!(@weak this => @default-panic, move |instrument| { - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&instrument.name); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&instrument.name) + .build(); let instrument = instrument.to_owned(); row.connect_activated(clone!(@weak this => move |_| { diff --git a/musicus/src/selectors/medium.rs b/musicus/src/selectors/medium.rs index d63f406..55469b6 100644 --- a/musicus/src/selectors/medium.rs +++ b/musicus/src/selectors/medium.rs @@ -69,9 +69,10 @@ impl Screen<(), Medium> for MediumSelector { })); this.selector.set_make_widget(clone!(@weak this => @default-panic, move |poe| { - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&poe.get_title()); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&poe.get_title()) + .build(); let poe = poe.to_owned(); row.connect_activated(clone!(@weak this => move |_| { @@ -143,9 +144,10 @@ impl Screen for MediumSelectorMediumScreen { this.selector .set_make_widget(clone!(@weak this => @default-panic, move |medium| { - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&medium.name); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&medium.name) + .build(); let medium = medium.to_owned(); row.connect_activated(clone!(@weak this => move |_| { diff --git a/musicus/src/selectors/person.rs b/musicus/src/selectors/person.rs index 4b702d4..14676d5 100644 --- a/musicus/src/selectors/person.rs +++ b/musicus/src/selectors/person.rs @@ -52,9 +52,10 @@ impl Screen<(), Person> for PersonSelector { this.selector .set_make_widget(clone!(@weak this => @default-panic, move |person| { - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&person.name_lf()); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&person.name_lf()) + .build(); let person = person.to_owned(); row.connect_activated(clone!(@weak this => move |_| { diff --git a/musicus/src/selectors/recording.rs b/musicus/src/selectors/recording.rs index 5094c11..3fe17a2 100644 --- a/musicus/src/selectors/recording.rs +++ b/musicus/src/selectors/recording.rs @@ -61,9 +61,10 @@ impl Screen<(), Recording> for RecordingSelector { })); this.selector.set_make_widget(clone!(@weak this => @default-panic, move |person| { - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&person.name_lf()); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&person.name_lf()) + .build(); let person = person.to_owned(); row.connect_activated(clone!(@weak this => move |_| { @@ -142,9 +143,10 @@ impl Screen for RecordingSelectorWorkScreen { this.selector .set_make_widget(clone!(@weak this => @default-panic, move |work| { - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&work.title); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&work.title) + .build(); let work = work.to_owned(); row.connect_activated(clone!(@weak this => move |_| { @@ -209,9 +211,10 @@ impl Screen for RecordingSelectorRecordingScreen { this.selector .set_make_widget(clone!(@weak this => @default-panic, move |recording| { - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&recording.get_performers()); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&recording.get_performers()) + .build(); let recording = recording.to_owned(); row.connect_activated(clone!(@weak this => move |_| { diff --git a/musicus/src/selectors/work.rs b/musicus/src/selectors/work.rs index 3ea1afd..7fbd13e 100644 --- a/musicus/src/selectors/work.rs +++ b/musicus/src/selectors/work.rs @@ -55,9 +55,10 @@ impl Screen<(), Work> for WorkSelector { })); this.selector.set_make_widget(clone!(@weak this => @default-panic, move |person| { - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&person.name_lf()); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&person.name_lf()) + .build(); let person = person.to_owned(); row.connect_activated(clone!(@weak this => move |_| { @@ -132,9 +133,10 @@ impl Screen for WorkSelectorWorkScreen { this.selector .set_make_widget(clone!(@weak this => @default-panic, move |work| { - let row = adw::ActionRow::new(); - row.set_activatable(true); - row.set_title(&work.title); + let row = adw::ActionRowBuilder::new() + .activatable(true) + .title(&work.title) + .build(); let work = work.to_owned(); row.connect_activated(clone!(@weak this => move |_| { diff --git a/musicus/src/widgets/button_row.rs b/musicus/src/widgets/button_row.rs index 4741d6b..30409cb 100644 --- a/musicus/src/widgets/button_row.rs +++ b/musicus/src/widgets/button_row.rs @@ -19,7 +19,7 @@ impl ButtonRow { .build(); let widget = adw::ActionRowBuilder::new() - .activatable(true) + .focusable(false) .activatable_widget(&button) .title(title) .build(); diff --git a/musicus/src/widgets/entry_row.rs b/musicus/src/widgets/entry_row.rs index 493fe5c..6784894 100644 --- a/musicus/src/widgets/entry_row.rs +++ b/musicus/src/widgets/entry_row.rs @@ -18,7 +18,7 @@ impl EntryRow { .build(); let widget = adw::ActionRowBuilder::new() - .activatable(true) + .focusable(false) .activatable_widget(&entry) .title(title) .build(); diff --git a/musicus/src/widgets/upload_section.rs b/musicus/src/widgets/upload_section.rs index a463a2e..f5d2362 100644 --- a/musicus/src/widgets/upload_section.rs +++ b/musicus/src/widgets/upload_section.rs @@ -29,8 +29,8 @@ impl UploadSection { .build(); let row = adw::ActionRowBuilder::new() + .focusable(false) .title("Upload changes to the server") - .activatable(true) .activatable_widget(&switch) .build();