mirror of
				https://github.com/Xetibo/ReSet.git
				synced 2025-11-04 01:35:20 +01:00 
			
		
		
		
	feat: Add dynamic window expansion
This commit is contained in:
		
							parent
							
								
									e03dad964b
								
							
						
					
					
						commit
						4836f1d8c2
					
				
					 10 changed files with 61 additions and 49 deletions
				
			
		| 
						 | 
				
			
			@ -5,14 +5,14 @@ use std::time::{Duration, SystemTime};
 | 
			
		|||
 | 
			
		||||
use adw::glib;
 | 
			
		||||
use adw::glib::Object;
 | 
			
		||||
use adw::prelude::{ComboRowExt, ListModelExtManual};
 | 
			
		||||
use adw::prelude::{ComboRowExt, ListModelExtManual, PreferencesGroupExt};
 | 
			
		||||
use adw::subclass::prelude::ObjectSubclassIsExt;
 | 
			
		||||
use dbus::blocking::Connection;
 | 
			
		||||
use dbus::message::SignalArgs;
 | 
			
		||||
use dbus::{Error, Path};
 | 
			
		||||
use glib::{clone, Cast};
 | 
			
		||||
use gtk::glib::Variant;
 | 
			
		||||
use gtk::prelude::{ActionableExt, BoxExt, ButtonExt, ListBoxRowExt, WidgetExt};
 | 
			
		||||
use gtk::prelude::{ActionableExt, ButtonExt, ListBoxRowExt, WidgetExt};
 | 
			
		||||
use gtk::{gio, StringObject, Widget};
 | 
			
		||||
use ReSet_Lib::bluetooth::bluetooth::{BluetoothAdapter, BluetoothDevice};
 | 
			
		||||
use ReSet_Lib::signals::{BluetoothDeviceAdded, BluetoothDeviceChanged, BluetoothDeviceRemoved};
 | 
			
		||||
| 
						 | 
				
			
			@ -183,9 +183,9 @@ pub fn populate_conntected_bluetooth_devices(bluetooth_box: Arc<BluetoothBox>) {
 | 
			
		|||
                        .borrow_mut()
 | 
			
		||||
                        .insert(path, (bluetooth_entry.clone(), entry.clone(), device));
 | 
			
		||||
                    if connected {
 | 
			
		||||
                        imp.reset_bluetooth_connected_devices.append(&*entry);
 | 
			
		||||
                        imp.reset_bluetooth_connected_devices.add(&*entry);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        imp.reset_bluetooth_available_devices.append(&*entry);
 | 
			
		||||
                        imp.reset_bluetooth_available_devices.add(&*entry);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
| 
						 | 
				
			
			@ -245,9 +245,9 @@ pub fn start_bluetooth_listener(listeners: Arc<Listeners>, bluetooth_box: Arc<Bl
 | 
			
		|||
                        (bluetooth_entry.clone(), entry.clone(), ir.bluetooth_device),
 | 
			
		||||
                    );
 | 
			
		||||
                    if connected {
 | 
			
		||||
                        imp.reset_bluetooth_connected_devices.append(&*entry);
 | 
			
		||||
                        imp.reset_bluetooth_connected_devices.add(&*entry);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        imp.reset_bluetooth_available_devices.append(&*entry);
 | 
			
		||||
                        imp.reset_bluetooth_available_devices.add(&*entry);
 | 
			
		||||
                    }
 | 
			
		||||
                });
 | 
			
		||||
            });
 | 
			
		||||
| 
						 | 
				
			
			@ -287,10 +287,10 @@ pub fn start_bluetooth_listener(listeners: Arc<Listeners>, bluetooth_box: Arc<Bl
 | 
			
		|||
                    if let Some(list_entry) = map.get(&ir.bluetooth_device.path) {
 | 
			
		||||
                        if list_entry.2.connected != ir.bluetooth_device.connected {
 | 
			
		||||
                            if ir.bluetooth_device.connected {
 | 
			
		||||
                                imp.reset_bluetooth_connected_devices.append(&*list_entry.1);
 | 
			
		||||
                                imp.reset_bluetooth_connected_devices.add(&*list_entry.1);
 | 
			
		||||
                                imp.reset_bluetooth_available_devices.remove(&*list_entry.1);
 | 
			
		||||
                            } else {
 | 
			
		||||
                                imp.reset_bluetooth_available_devices.append(&*list_entry.1);
 | 
			
		||||
                                imp.reset_bluetooth_available_devices.add(&*list_entry.1);
 | 
			
		||||
                                imp.reset_bluetooth_connected_devices.remove(&*list_entry.1);
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
use adw::{ActionRow, ComboRow};
 | 
			
		||||
use adw::{ActionRow, ComboRow, PreferencesGroup};
 | 
			
		||||
use dbus::Path;
 | 
			
		||||
use gtk::subclass::prelude::*;
 | 
			
		||||
use gtk::{glib, Button, CompositeTemplate, Switch};
 | 
			
		||||
| 
						 | 
				
			
			@ -21,13 +21,13 @@ pub struct BluetoothBox {
 | 
			
		|||
    #[template_child]
 | 
			
		||||
    pub reset_bluetooth_switch: TemplateChild<Switch>,
 | 
			
		||||
    #[template_child]
 | 
			
		||||
    pub reset_bluetooth_available_devices: TemplateChild<gtk::Box>,
 | 
			
		||||
    pub reset_bluetooth_available_devices: TemplateChild<PreferencesGroup>,
 | 
			
		||||
    #[template_child]
 | 
			
		||||
    pub reset_bluetooth_refresh_button: TemplateChild<Button>,
 | 
			
		||||
    #[template_child]
 | 
			
		||||
    pub reset_bluetooth_adapter: TemplateChild<ComboRow>,
 | 
			
		||||
    #[template_child]
 | 
			
		||||
    pub reset_bluetooth_connected_devices: TemplateChild<gtk::Box>,
 | 
			
		||||
    pub reset_bluetooth_connected_devices: TemplateChild<PreferencesGroup>,
 | 
			
		||||
    #[template_child]
 | 
			
		||||
    pub reset_visibility: TemplateChild<ActionRow>,
 | 
			
		||||
    #[template_child]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,7 +13,7 @@ use crate::components::wifi::wifi_box::{
 | 
			
		|||
    scan_for_wifi, show_stored_connections, start_event_listener, WifiBox,
 | 
			
		||||
};
 | 
			
		||||
use gtk::prelude::WidgetExt;
 | 
			
		||||
use gtk::{FlowBox, Frame};
 | 
			
		||||
use gtk::{Align, FlowBox, FlowBoxChild, Frame};
 | 
			
		||||
 | 
			
		||||
pub const HANDLE_CONNECTIVITY_CLICK: fn(Arc<Listeners>, FlowBox) =
 | 
			
		||||
    |listeners: Arc<Listeners>, reset_main: FlowBox| {
 | 
			
		||||
| 
						 | 
				
			
			@ -22,11 +22,11 @@ pub const HANDLE_CONNECTIVITY_CLICK: fn(Arc<Listeners>, FlowBox) =
 | 
			
		|||
        start_event_listener(listeners.clone(), wifi_box.clone());
 | 
			
		||||
        show_stored_connections(wifi_box.clone());
 | 
			
		||||
        scan_for_wifi(wifi_box.clone());
 | 
			
		||||
        let wifi_frame = wrap_in_frame(SettingBox::new(&*wifi_box));
 | 
			
		||||
        let wifi_frame = wrap_in_flow_box_child(SettingBox::new(&*wifi_box));
 | 
			
		||||
        let bluetooth_box = BluetoothBox::new(listeners.clone());
 | 
			
		||||
        populate_conntected_bluetooth_devices(bluetooth_box.clone());
 | 
			
		||||
        start_bluetooth_listener(listeners.clone(), bluetooth_box.clone());
 | 
			
		||||
        let bluetooth_frame = wrap_in_frame(SettingBox::new(&*bluetooth_box));
 | 
			
		||||
        let bluetooth_frame = wrap_in_flow_box_child(SettingBox::new(&*bluetooth_box));
 | 
			
		||||
        reset_main.remove_all();
 | 
			
		||||
        reset_main.insert(&wifi_frame, -1);
 | 
			
		||||
        reset_main.insert(&bluetooth_frame, -1);
 | 
			
		||||
| 
						 | 
				
			
			@ -41,7 +41,7 @@ pub const HANDLE_WIFI_CLICK: fn(Arc<Listeners>, FlowBox) =
 | 
			
		|||
        start_event_listener(listeners.clone(), wifi_box.clone());
 | 
			
		||||
        show_stored_connections(wifi_box.clone());
 | 
			
		||||
        scan_for_wifi(wifi_box.clone());
 | 
			
		||||
        let wifi_frame = wrap_in_frame(SettingBox::new(&*wifi_box));
 | 
			
		||||
        let wifi_frame = wrap_in_flow_box_child(SettingBox::new(&*wifi_box));
 | 
			
		||||
        reset_main.remove_all();
 | 
			
		||||
        reset_main.insert(&wifi_frame, -1);
 | 
			
		||||
        reset_main.set_max_children_per_line(1);
 | 
			
		||||
| 
						 | 
				
			
			@ -54,7 +54,7 @@ pub const HANDLE_BLUETOOTH_CLICK: fn(Arc<Listeners>, FlowBox) =
 | 
			
		|||
        let bluetooth_box = BluetoothBox::new(listeners.clone());
 | 
			
		||||
        start_bluetooth_listener(listeners.clone(), bluetooth_box.clone());
 | 
			
		||||
        populate_conntected_bluetooth_devices(bluetooth_box.clone());
 | 
			
		||||
        let bluetooth_frame = wrap_in_frame(SettingBox::new(&*bluetooth_box));
 | 
			
		||||
        let bluetooth_frame = wrap_in_flow_box_child(SettingBox::new(&*bluetooth_box));
 | 
			
		||||
        reset_main.remove_all();
 | 
			
		||||
        reset_main.insert(&bluetooth_frame, -1);
 | 
			
		||||
        reset_main.set_max_children_per_line(1);
 | 
			
		||||
| 
						 | 
				
			
			@ -72,9 +72,9 @@ pub const HANDLE_AUDIO_CLICK: fn(Arc<Listeners>, FlowBox) =
 | 
			
		|||
            Some(audio_input.clone()),
 | 
			
		||||
        );
 | 
			
		||||
        populate_sinks(audio_output.clone());
 | 
			
		||||
        let audio_frame = wrap_in_frame(SettingBox::new(&*audio_output));
 | 
			
		||||
        let audio_frame = wrap_in_flow_box_child(SettingBox::new(&*audio_output));
 | 
			
		||||
        populate_sources(audio_input.clone());
 | 
			
		||||
        let source_frame = wrap_in_frame(SettingBox::new(&*audio_input));
 | 
			
		||||
        let source_frame = wrap_in_flow_box_child(SettingBox::new(&*audio_input));
 | 
			
		||||
        reset_main.remove_all();
 | 
			
		||||
        reset_main.insert(&audio_frame, -1);
 | 
			
		||||
        reset_main.insert(&source_frame, -1);
 | 
			
		||||
| 
						 | 
				
			
			@ -91,7 +91,7 @@ pub const HANDLE_VOLUME_CLICK: fn(Arc<Listeners>, FlowBox) =
 | 
			
		|||
            std::hint::spin_loop()
 | 
			
		||||
        }
 | 
			
		||||
        populate_sinks(audio_output.clone());
 | 
			
		||||
        let audio_frame = wrap_in_frame(SettingBox::new(&*audio_output));
 | 
			
		||||
        let audio_frame = wrap_in_flow_box_child(SettingBox::new(&*audio_output));
 | 
			
		||||
        reset_main.remove_all();
 | 
			
		||||
        reset_main.insert(&audio_frame, -1);
 | 
			
		||||
        reset_main.set_max_children_per_line(1);
 | 
			
		||||
| 
						 | 
				
			
			@ -104,7 +104,7 @@ pub const HANDLE_MICROPHONE_CLICK: fn(Arc<Listeners>, FlowBox) =
 | 
			
		|||
        let audio_input = Arc::new(SourceBox::new());
 | 
			
		||||
        start_audio_listener(listeners.clone(), None, Some(audio_input.clone()));
 | 
			
		||||
        populate_sources(audio_input.clone());
 | 
			
		||||
        let source_frame = wrap_in_frame(SettingBox::new(&*audio_input));
 | 
			
		||||
        let source_frame = wrap_in_flow_box_child(SettingBox::new(&*audio_input));
 | 
			
		||||
        reset_main.remove_all();
 | 
			
		||||
        reset_main.insert(&source_frame, -1);
 | 
			
		||||
        reset_main.set_max_children_per_line(1);
 | 
			
		||||
| 
						 | 
				
			
			@ -118,11 +118,15 @@ pub const HANDLE_HOME: fn(Arc<Listeners>, FlowBox) =
 | 
			
		|||
        reset_main.remove_all();
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
fn wrap_in_frame(widget: SettingBox) -> Frame {
 | 
			
		||||
fn wrap_in_flow_box_child(widget: SettingBox) -> FlowBoxChild {
 | 
			
		||||
    let frame = Frame::new(None);
 | 
			
		||||
    frame.set_child(Some(&widget));
 | 
			
		||||
    frame.add_css_class("resetSettingFrame");
 | 
			
		||||
    frame
 | 
			
		||||
    FlowBoxChild::builder()
 | 
			
		||||
        .child(&frame)
 | 
			
		||||
        .halign(Align::Fill)
 | 
			
		||||
        .valign(Align::Start)
 | 
			
		||||
        .build()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// for future implementations
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
use adw::glib::clone;
 | 
			
		||||
use adw::subclass::prelude::ObjectSubclassIsExt;
 | 
			
		||||
use adw::BreakpointCondition;
 | 
			
		||||
use glib::Object;
 | 
			
		||||
use adw::{ApplicationWindow, BreakpointCondition};
 | 
			
		||||
use glib::{closure_local, Object};
 | 
			
		||||
use gtk::prelude::*;
 | 
			
		||||
use gtk::{gio, glib, Application, ListBoxRow, Orientation};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -12,7 +12,7 @@ use crate::components::window::sidebar_entry_impl::Categories;
 | 
			
		|||
 | 
			
		||||
glib::wrapper! {
 | 
			
		||||
    pub struct ReSetWindow(ObjectSubclass<reset_window_impl::ReSetWindow>)
 | 
			
		||||
        @extends gtk::ApplicationWindow, gtk::Window, gtk::Widget,
 | 
			
		||||
        @extends adw::ApplicationWindow, gtk::Window, gtk::Widget,
 | 
			
		||||
        @implements gio::ActionGroup, gio::ActionMap, gtk::Accessible, gtk::Buildable,
 | 
			
		||||
                    gtk::ConstraintTarget, gtk::Native, gtk::Root, gtk::ShortcutManager;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -54,18 +54,13 @@ impl ReSetWindow {
 | 
			
		|||
            .connect_clicked(clone!(@ weak self as window => move |_| {
 | 
			
		||||
                window.close();
 | 
			
		||||
            }));
 | 
			
		||||
 | 
			
		||||
        // selfImp.resetMenu.connect_clicked(|_| {
 | 
			
		||||
        //     WifiBox::donotdisturb();
 | 
			
		||||
        //
 | 
			
		||||
        // });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn handle_dynamic_sidebar(&self) {
 | 
			
		||||
        let self_imp = self.imp();
 | 
			
		||||
        self_imp
 | 
			
		||||
            .reset_sidebar_breakpoint
 | 
			
		||||
            .set_condition(BreakpointCondition::parse("max-width: 700sp").as_ref().ok());
 | 
			
		||||
            .set_condition(BreakpointCondition::parse("max-width: 950sp").as_ref().ok());
 | 
			
		||||
        self_imp.reset_sidebar_breakpoint.add_setter(
 | 
			
		||||
            &Object::from(self_imp.reset_overlay_split_view.get()),
 | 
			
		||||
            "collapsed",
 | 
			
		||||
| 
						 | 
				
			
			@ -143,6 +138,7 @@ impl ReSetWindow {
 | 
			
		|||
                true,
 | 
			
		||||
                HANDLE_BLUETOOTH_CLICK,
 | 
			
		||||
            ),
 | 
			
		||||
            // uncommented when VPN is implemented
 | 
			
		||||
            // SidebarEntry::new(
 | 
			
		||||
            //     "VPN",
 | 
			
		||||
            //     "network-vpn-symbolic",
 | 
			
		||||
| 
						 | 
				
			
			@ -191,6 +187,7 @@ impl ReSetWindow {
 | 
			
		|||
            audio_list,
 | 
			
		||||
        ));
 | 
			
		||||
 | 
			
		||||
        // uncommented when implemented
 | 
			
		||||
        // let peripheralsList = vec![
 | 
			
		||||
        //     SidebarEntry::new(
 | 
			
		||||
        //         "Displays",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,6 +5,7 @@ use adw::glib::StaticTypeExt;
 | 
			
		|||
use adw::subclass::prelude::AdwApplicationWindowImpl;
 | 
			
		||||
use adw::{Breakpoint, OverlaySplitView};
 | 
			
		||||
use glib::subclass::InitializingObject;
 | 
			
		||||
use gtk::prelude::WidgetExt;
 | 
			
		||||
use gtk::subclass::prelude::*;
 | 
			
		||||
use gtk::{glib, Button, CompositeTemplate, FlowBox, ListBox, PopoverMenu, SearchEntry};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -74,7 +75,24 @@ impl ObjectImpl for ReSetWindow {
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl WidgetImpl for ReSetWindow {}
 | 
			
		||||
impl WidgetImpl for ReSetWindow {
 | 
			
		||||
    fn size_allocate(&self, width: i32, height: i32, baseline: i32) {
 | 
			
		||||
        // felixusan, use "the force" for debugging
 | 
			
		||||
        // aka this variable
 | 
			
		||||
        // println!("{width}");
 | 
			
		||||
        self.parent_size_allocate(width, height, baseline);
 | 
			
		||||
        if width > 738 {
 | 
			
		||||
            self.reset_main.set_margin_start(100);
 | 
			
		||||
            self.reset_main.set_margin_end(100);
 | 
			
		||||
        } else if width > 600 {
 | 
			
		||||
            self.reset_main.set_margin_start((width - 600)/2);
 | 
			
		||||
            self.reset_main.set_margin_end((width - 600)/2);
 | 
			
		||||
        } else {
 | 
			
		||||
            self.reset_main.set_margin_start(0);
 | 
			
		||||
            self.reset_main.set_margin_end(0);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl WindowImpl for ReSetWindow {}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -74,9 +74,7 @@
 | 
			
		|||
                        <child>
 | 
			
		||||
                          <object class="GtkViewport">
 | 
			
		||||
                            <child>
 | 
			
		||||
                              <object class="GtkBox" id="reset_bluetooth_available_devices">
 | 
			
		||||
                                <property name="orientation">vertical</property>
 | 
			
		||||
                              </object>
 | 
			
		||||
                              <object class="AdwPreferencesGroup" id="reset_bluetooth_available_devices"/>
 | 
			
		||||
                            </child>
 | 
			
		||||
                          </object>
 | 
			
		||||
                        </child>
 | 
			
		||||
| 
						 | 
				
			
			@ -94,9 +92,7 @@
 | 
			
		|||
                        <child>
 | 
			
		||||
                          <object class="GtkViewport">
 | 
			
		||||
                            <child>
 | 
			
		||||
                              <object class="GtkBox" id="reset_bluetooth_connected_devices">
 | 
			
		||||
                                <property name="orientation">vertical</property>
 | 
			
		||||
                              </object>
 | 
			
		||||
                              <object class="AdwPreferencesGroup" id="reset_bluetooth_connected_devices"/>
 | 
			
		||||
                            </child>
 | 
			
		||||
                          </object>
 | 
			
		||||
                        </child>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,12 @@
 | 
			
		|||
<!-- Created with Cambalache 0.17.0 -->
 | 
			
		||||
<interface>
 | 
			
		||||
  <requires lib="gtk" version="4.12"/>
 | 
			
		||||
  <requires lib="libadwaita" version="1.0"/>
 | 
			
		||||
  <template class="resetBluetoothEntry" parent="GtkBox">
 | 
			
		||||
    <property name="margin-start">5</property>
 | 
			
		||||
    <child>
 | 
			
		||||
      <object class="AdwComboRow"/>
 | 
			
		||||
    </child>
 | 
			
		||||
    <child>
 | 
			
		||||
      <object class="GtkImage" id="reset_bluetooth_device_type">
 | 
			
		||||
        <property name="icon-name">input-mouse-symbolic</property>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,10 +90,8 @@
 | 
			
		|||
                    <child>
 | 
			
		||||
                      <object class="GtkFlowBox" id="reset_main">
 | 
			
		||||
                        <property name="column-spacing">25</property>
 | 
			
		||||
                        <property name="halign">center</property>
 | 
			
		||||
                        <property name="hexpand">True</property>
 | 
			
		||||
                        <property name="hexpand-set">True</property>
 | 
			
		||||
                        <property name="homogeneous">True</property>
 | 
			
		||||
                        <property name="margin-top">5</property>
 | 
			
		||||
                        <property name="row-spacing">25</property>
 | 
			
		||||
                        <property name="selection-mode">none</property>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,6 @@
 | 
			
		|||
<interface>
 | 
			
		||||
  <requires lib="gtk" version="4.0"/>
 | 
			
		||||
  <template class="resetSettingBox" parent="GtkBox">
 | 
			
		||||
    <property name="halign">center</property>
 | 
			
		||||
    <property name="orientation">vertical</property>
 | 
			
		||||
    <property name="width-request">500</property>
 | 
			
		||||
  </template>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -153,23 +153,24 @@
 | 
			
		|||
	(10,177,"GtkButton","reset_bluetooth_refresh_button",176,None,None,None,None,None),
 | 
			
		||||
	(10,178,"GtkScrolledWindow",None,176,None,None,None,None,None),
 | 
			
		||||
	(10,179,"GtkViewport",None,178,None,None,None,None,None),
 | 
			
		||||
	(10,180,"GtkBox","reset_bluetooth_available_devices",179,None,None,None,None,None),
 | 
			
		||||
	(10,181,"AdwPreferencesGroup",None,121,None,None,None,2,None),
 | 
			
		||||
	(10,183,"GtkScrolledWindow",None,181,None,None,None,None,None),
 | 
			
		||||
	(10,184,"GtkViewport",None,183,None,None,None,None,None),
 | 
			
		||||
	(10,185,"GtkBox","reset_bluetooth_connected_devices",184,None,None,None,None,None),
 | 
			
		||||
	(10,188,"GtkBox",None,153,None,None,None,4,None),
 | 
			
		||||
	(10,193,"GtkLabel",None,188,None,None,None,None,None),
 | 
			
		||||
	(10,196,"GtkSwitch","reset_bluetooth_discoverable_switch",188,None,None,None,1,None),
 | 
			
		||||
	(10,197,"GtkBox",None,153,None,None,None,3,None),
 | 
			
		||||
	(10,198,"GtkLabel",None,197,None,None,None,None,None),
 | 
			
		||||
	(10,199,"GtkSwitch","reset_bluetooth_pairable_switch",197,None,None,None,1,None),
 | 
			
		||||
	(10,200,"AdwPreferencesGroup","reset_bluetooth_available_devices",179,None,None,None,-1,None),
 | 
			
		||||
	(10,201,"AdwPreferencesGroup","reset_bluetooth_connected_devices",184,None,None,None,-1,None),
 | 
			
		||||
	(11,2,"GtkBox","resetBluetoothEntry",None,None,None,None,None,None),
 | 
			
		||||
	(11,3,"GtkImage","reset_bluetooth_device_type",2,None,None,None,None,None),
 | 
			
		||||
	(11,3,"GtkImage","reset_bluetooth_device_type",2,None,None,None,1,None),
 | 
			
		||||
	(11,5,"GtkButton","reset_bluetooth_button",2,None,None,None,3,None),
 | 
			
		||||
	(11,6,"GtkBox",None,2,None,None,None,2,None),
 | 
			
		||||
	(11,7,"GtkLabel","reset_bluetooth_label",6,None,None,None,None,None),
 | 
			
		||||
	(11,8,"GtkLabel","reset_bluetooth_address",6,None,None,None,1,None),
 | 
			
		||||
	(11,9,"AdwComboRow",None,2,None,None,None,None,None),
 | 
			
		||||
	(12,11,"GtkBox","resetAudioInput",None,None,None,None,None,None),
 | 
			
		||||
	(12,12,"GtkLabel",None,11,None,None,None,None,None),
 | 
			
		||||
	(12,13,"AdwNavigationView",None,11,None,None,None,1,None),
 | 
			
		||||
| 
						 | 
				
			
			@ -379,10 +380,8 @@
 | 
			
		|||
	(3,42,"GtkWidget","width-request","150",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(3,43,"GtkScrolledWindow","propagate-natural-height","True",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(3,45,"GtkFlowBox","column-spacing","25",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(3,45,"GtkFlowBox","homogeneous","True",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(3,45,"GtkFlowBox","row-spacing","25",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(3,45,"GtkFlowBox","selection-mode","none",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(3,45,"GtkWidget","halign","center",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(3,45,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(3,45,"GtkWidget","hexpand-set","True",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(3,45,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
| 
						 | 
				
			
			@ -587,11 +586,9 @@
 | 
			
		|||
	(10,177,"GtkButton","icon-name","view-refresh-symbolic",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(10,178,"GtkScrolledWindow","min-content-height","100",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(10,178,"GtkScrolledWindow","propagate-natural-height","True",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(10,180,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(10,181,"AdwPreferencesGroup","title","Connected Devices",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(10,183,"GtkScrolledWindow","min-content-height","100",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(10,183,"GtkScrolledWindow","propagate-natural-height","True",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(10,185,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(10,188,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(10,188,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(10,188,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
| 
						 | 
				
			
			@ -717,7 +714,6 @@
 | 
			
		|||
	(13,41,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(13,42,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(14,3,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(14,3,"GtkWidget","halign","center",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(14,3,"GtkWidget","width-request","500",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(15,1,"GtkListBoxRow","selectable","False",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
	(15,1,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue