From c4af8696a8ce0743a3d2dd102d55ef6d0cd68405 Mon Sep 17 00:00:00 2001 From: Fabio Lenherr / DashieTM Date: Wed, 6 Dec 2023 17:54:08 +0100 Subject: [PATCH] chore: Use actionrow --- src/components/bluetooth/bluetooth_box.rs | 36 +++++------ .../bluetooth/bluetooth_box_impl.rs | 2 +- src/components/bluetooth/bluetooth_entry.rs | 11 ++-- .../bluetooth/bluetooth_entry_impl.rs | 13 ++-- src/resources/resetBluetoothEntry.ui | 47 +++++++-------- src/resources/resetUI.cmb | 60 +++++++++---------- 6 files changed, 81 insertions(+), 88 deletions(-) diff --git a/src/components/bluetooth/bluetooth_box.rs b/src/components/bluetooth/bluetooth_box.rs index 3890e7b..2d15abc 100644 --- a/src/components/bluetooth/bluetooth_box.rs +++ b/src/components/bluetooth/bluetooth_box.rs @@ -17,7 +17,6 @@ use gtk::{gio, StringObject, Widget}; use re_set_lib::bluetooth::bluetooth_structures::{BluetoothAdapter, BluetoothDevice}; use re_set_lib::signals::{BluetoothDeviceAdded, BluetoothDeviceChanged, BluetoothDeviceRemoved}; -use crate::components::base::list_entry::ListEntry; use crate::components::base::utils::Listeners; use crate::components::bluetooth::bluetooth_box_impl; use crate::components::bluetooth::bluetooth_entry::BluetoothEntry; @@ -178,14 +177,13 @@ pub fn populate_conntected_bluetooth_devices(bluetooth_box: Arc) { let path = device.path.clone(); let connected = device.connected; let bluetooth_entry = Arc::new(BluetoothEntry::new(&device)); - let entry = Arc::new(ListEntry::new(&*bluetooth_entry)); imp.available_devices .borrow_mut() - .insert(path, (bluetooth_entry.clone(), entry.clone(), device)); + .insert(path, (bluetooth_entry.clone(), device)); if connected { - imp.reset_bluetooth_connected_devices.add(&*entry); + imp.reset_bluetooth_connected_devices.add(&*bluetooth_entry); } else { - imp.reset_bluetooth_available_devices.add(&*entry); + imp.reset_bluetooth_available_devices.add(&*bluetooth_entry); } } }); @@ -239,15 +237,13 @@ pub fn start_bluetooth_listener(listeners: Arc, bluetooth_box: Arc, bluetooth_box: Arc, bluetooth_box: Arc, bluetooth_box: Arc, (Arc, Arc, BluetoothDevice)>>; + RefCell, (Arc, BluetoothDevice)>>; #[derive(Default, CompositeTemplate)] #[template(resource = "/org/Xetibo/ReSet/resetBluetooth.ui")] diff --git a/src/components/bluetooth/bluetooth_entry.rs b/src/components/bluetooth/bluetooth_entry.rs index 11c5894..b77041d 100644 --- a/src/components/bluetooth/bluetooth_entry.rs +++ b/src/components/bluetooth/bluetooth_entry.rs @@ -2,9 +2,10 @@ use std::sync::Arc; use std::time::Duration; use crate::components::bluetooth::bluetooth_entry_impl; -use adw::glib; use adw::glib::Object; +use adw::prelude::ActionRowExt; use adw::subclass::prelude::ObjectSubclassIsExt; +use adw::{glib, ActionRow}; use dbus::blocking::Connection; use dbus::{Error, Path}; use gtk::prelude::{ButtonExt, WidgetExt}; @@ -13,7 +14,7 @@ use re_set_lib::bluetooth::bluetooth_structures::BluetoothDevice; glib::wrapper! { pub struct BluetoothEntry(ObjectSubclass) - @extends gtk::Box, gtk::Widget, + @extends ActionRow, gtk::Widget, @implements gtk::Accessible, gtk::Buildable, gtk::Actionable, gtk::ConstraintTarget; } @@ -23,15 +24,13 @@ unsafe impl Sync for BluetoothEntry {} impl BluetoothEntry { pub fn new(device: &BluetoothDevice) -> Self { let entry: BluetoothEntry = Object::builder().build(); + entry.set_sensitive(true); let entry_imp = entry.imp(); entry_imp .reset_bluetooth_label .get() .set_text(&device.alias); - entry_imp - .reset_bluetooth_address - .get() - .set_text(&device.address); + entry.set_subtitle(&device.address); if device.icon.is_empty() { entry_imp .reset_bluetooth_device_type diff --git a/src/components/bluetooth/bluetooth_entry_impl.rs b/src/components/bluetooth/bluetooth_entry_impl.rs index 57a8e42..f91f55b 100644 --- a/src/components/bluetooth/bluetooth_entry_impl.rs +++ b/src/components/bluetooth/bluetooth_entry_impl.rs @@ -1,4 +1,7 @@ use crate::components::bluetooth::bluetooth_entry; +use adw::subclass::action_row::ActionRowImpl; +use adw::subclass::preferences_row::PreferencesRowImpl; +use adw::ActionRow; use gtk::subclass::prelude::*; use gtk::{glib, Button, CompositeTemplate, Image, Label}; use std::cell::RefCell; @@ -11,8 +14,6 @@ pub struct BluetoothEntry { #[template_child] pub reset_bluetooth_label: TemplateChild