mirror of
				https://github.com/Xetibo/ReSet.git
				synced 2025-11-04 01:35:20 +01:00 
			
		
		
		
	simplify bluetooth entry
This commit is contained in:
		
							parent
							
								
									8518d6e247
								
							
						
					
					
						commit
						0184fba8b4
					
				
					 5 changed files with 30 additions and 147 deletions
				
			
		| 
						 | 
					@ -295,13 +295,15 @@ pub fn start_bluetooth_listener(listeners: Arc<Listeners>, bluetooth_box: Arc<Bl
 | 
				
			||||||
                                list_entry
 | 
					                                list_entry
 | 
				
			||||||
                                    .0
 | 
					                                    .0
 | 
				
			||||||
                                    .imp()
 | 
					                                    .imp()
 | 
				
			||||||
                                    .reset_bluetooth_button
 | 
					                                    .button
 | 
				
			||||||
 | 
					                                    .borrow()
 | 
				
			||||||
                                    .set_sensitive(true);
 | 
					                                    .set_sensitive(true);
 | 
				
			||||||
                            } else {
 | 
					                            } else {
 | 
				
			||||||
                                list_entry
 | 
					                                list_entry
 | 
				
			||||||
                                    .0
 | 
					                                    .0
 | 
				
			||||||
                                    .imp()
 | 
					                                    .imp()
 | 
				
			||||||
                                    .reset_bluetooth_button
 | 
					                                    .button
 | 
				
			||||||
 | 
					                                    .borrow()
 | 
				
			||||||
                                    .set_sensitive(false);
 | 
					                                    .set_sensitive(false);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,20 +1,22 @@
 | 
				
			||||||
 | 
					use std::ops::Deref;
 | 
				
			||||||
use std::sync::Arc;
 | 
					use std::sync::Arc;
 | 
				
			||||||
use std::time::Duration;
 | 
					use std::time::Duration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::components::bluetooth::bluetooth_entry_impl;
 | 
					use crate::components::bluetooth::bluetooth_entry_impl;
 | 
				
			||||||
use adw::glib::Object;
 | 
					use adw::glib::Object;
 | 
				
			||||||
use adw::subclass::prelude::ObjectSubclassIsExt;
 | 
					 | 
				
			||||||
use adw::{glib, ActionRow};
 | 
					use adw::{glib, ActionRow};
 | 
				
			||||||
 | 
					use adw::prelude::{ActionRowExt, PreferencesRowExt};
 | 
				
			||||||
use dbus::blocking::Connection;
 | 
					use dbus::blocking::Connection;
 | 
				
			||||||
use dbus::{Error, Path};
 | 
					use dbus::{Error, Path};
 | 
				
			||||||
 | 
					use glib::subclass::prelude::ObjectSubclassIsExt;
 | 
				
			||||||
use gtk::prelude::{ButtonExt, ListBoxRowExt, WidgetExt};
 | 
					use gtk::prelude::{ButtonExt, ListBoxRowExt, WidgetExt};
 | 
				
			||||||
use gtk::{gio, GestureClick};
 | 
					use gtk::{gio, GestureClick, Image, Button, Align};
 | 
				
			||||||
use re_set_lib::bluetooth::bluetooth_structures::BluetoothDevice;
 | 
					use re_set_lib::bluetooth::bluetooth_structures::BluetoothDevice;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
glib::wrapper! {
 | 
					glib::wrapper! {
 | 
				
			||||||
    pub struct BluetoothEntry(ObjectSubclass<bluetooth_entry_impl::BluetoothEntry>)
 | 
					    pub struct BluetoothEntry(ObjectSubclass<bluetooth_entry_impl::BluetoothEntry>)
 | 
				
			||||||
        @extends ActionRow, gtk::Widget,
 | 
					        @extends ActionRow, gtk::Widget,
 | 
				
			||||||
        @implements gtk::Accessible, gtk::Buildable, gtk::Actionable, gtk::ConstraintTarget, gtk::ListBoxRow;
 | 
					        @implements gtk::Accessible, gtk::Buildable, gtk::Actionable, gtk::ConstraintTarget, gtk::ListBoxRow, adw::PreferencesRow;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
unsafe impl Send for BluetoothEntry {}
 | 
					unsafe impl Send for BluetoothEntry {}
 | 
				
			||||||
| 
						 | 
					@ -24,31 +26,25 @@ impl BluetoothEntry {
 | 
				
			||||||
    pub fn new(device: &BluetoothDevice) -> Self {
 | 
					    pub fn new(device: &BluetoothDevice) -> Self {
 | 
				
			||||||
        let entry: BluetoothEntry = Object::builder().build();
 | 
					        let entry: BluetoothEntry = Object::builder().build();
 | 
				
			||||||
        let entry_imp = entry.imp();
 | 
					        let entry_imp = entry.imp();
 | 
				
			||||||
        entry_imp
 | 
					
 | 
				
			||||||
            .reset_bluetooth_label
 | 
					        entry.set_title(&device.alias);
 | 
				
			||||||
            .get()
 | 
					        entry.set_subtitle(&device.address);
 | 
				
			||||||
            .set_text(&device.alias);
 | 
					 | 
				
			||||||
        entry_imp
 | 
					 | 
				
			||||||
            .reset_bluetooth_address
 | 
					 | 
				
			||||||
            .get()
 | 
					 | 
				
			||||||
            .set_text(&device.address);
 | 
					 | 
				
			||||||
        entry.set_activatable(true);
 | 
					        entry.set_activatable(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        entry_imp.button.replace(Button::builder().icon_name("user-trash-symbolic").valign(Align::Center).build());
 | 
				
			||||||
 | 
					        entry.add_suffix(entry_imp.button.borrow().deref());
 | 
				
			||||||
        if device.icon.is_empty() {
 | 
					        if device.icon.is_empty() {
 | 
				
			||||||
            entry_imp
 | 
					            entry.add_prefix(&Image::from_icon_name("dialog-question-symbolic"));
 | 
				
			||||||
                .reset_bluetooth_device_type
 | 
					 | 
				
			||||||
                .set_icon_name(Some("dialog-question-symbolic"));
 | 
					 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            entry_imp
 | 
					            entry.add_prefix(&Image::from_icon_name(&device.icon));
 | 
				
			||||||
                .reset_bluetooth_device_type
 | 
					 | 
				
			||||||
                .set_icon_name(Some(&device.icon));
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if device.connected || device.paired {
 | 
					        if device.connected || device.paired {
 | 
				
			||||||
            entry_imp.reset_bluetooth_button.set_sensitive(true);
 | 
					            entry_imp.button.borrow().set_sensitive(true);
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            entry_imp.reset_bluetooth_button.set_sensitive(false);
 | 
					            entry_imp.button.borrow().set_sensitive(false);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        let path = Arc::new(device.path.clone());
 | 
					        let path = Arc::new(device.path.clone());
 | 
				
			||||||
        entry_imp.reset_bluetooth_button.connect_clicked(move |_| {
 | 
					        entry_imp.button.borrow().connect_clicked(move |_| {
 | 
				
			||||||
            remove_device_pairing((*path).clone());
 | 
					            remove_device_pairing((*path).clone());
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        let gesture = GestureClick::new();
 | 
					        let gesture = GestureClick::new();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,20 +3,13 @@ use adw::subclass::action_row::ActionRowImpl;
 | 
				
			||||||
use adw::subclass::preferences_row::PreferencesRowImpl;
 | 
					use adw::subclass::preferences_row::PreferencesRowImpl;
 | 
				
			||||||
use adw::ActionRow;
 | 
					use adw::ActionRow;
 | 
				
			||||||
use gtk::subclass::prelude::*;
 | 
					use gtk::subclass::prelude::*;
 | 
				
			||||||
use gtk::{glib, Button, CompositeTemplate, Image, Label};
 | 
					use gtk::{glib, Button, CompositeTemplate};
 | 
				
			||||||
use std::cell::RefCell;
 | 
					use std::cell::RefCell;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[derive(Default, CompositeTemplate)]
 | 
					#[derive(Default, CompositeTemplate)]
 | 
				
			||||||
#[template(resource = "/org/Xetibo/ReSet/resetBluetoothEntry.ui")]
 | 
					#[template(resource = "/org/Xetibo/ReSet/resetBluetoothEntry.ui")]
 | 
				
			||||||
pub struct BluetoothEntry {
 | 
					pub struct BluetoothEntry {
 | 
				
			||||||
    #[template_child]
 | 
					    pub button: RefCell<Button>,
 | 
				
			||||||
    pub reset_bluetooth_device_type: TemplateChild<Image>,
 | 
					 | 
				
			||||||
    #[template_child]
 | 
					 | 
				
			||||||
    pub reset_bluetooth_label: TemplateChild<Label>,
 | 
					 | 
				
			||||||
    #[template_child]
 | 
					 | 
				
			||||||
    pub reset_bluetooth_address: TemplateChild<Label>,
 | 
					 | 
				
			||||||
    #[template_child]
 | 
					 | 
				
			||||||
    pub reset_bluetooth_button: TemplateChild<Button>,
 | 
					 | 
				
			||||||
    pub device_name: RefCell<String>,
 | 
					    pub device_name: RefCell<String>,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,63 +1,8 @@
 | 
				
			||||||
<?xml version='1.0' encoding='UTF-8'?>
 | 
					<?xml version='1.0' encoding='UTF-8'?>
 | 
				
			||||||
<!-- Created with Cambalache 0.17.0 -->
 | 
					<!-- Created with Cambalache 0.17.0 -->
 | 
				
			||||||
<interface>
 | 
					<interface>
 | 
				
			||||||
  <requires lib="gtk" version="4.12"/>
 | 
					 | 
				
			||||||
  <requires lib="libadwaita" version="1.0"/>
 | 
					  <requires lib="libadwaita" version="1.0"/>
 | 
				
			||||||
  <template class="resetBluetoothEntry" parent="AdwActionRow">
 | 
					  <template class="resetBluetoothEntry" parent="AdwActionRow">
 | 
				
			||||||
    <property name="child">
 | 
					 | 
				
			||||||
      <object class="GtkBox">
 | 
					 | 
				
			||||||
        <child>
 | 
					 | 
				
			||||||
          <object class="GtkImage" id="reset_bluetooth_device_type">
 | 
					 | 
				
			||||||
            <property name="halign">start</property>
 | 
					 | 
				
			||||||
            <property name="icon-name">input-mouse-symbolic</property>
 | 
					 | 
				
			||||||
            <property name="margin-end">15</property>
 | 
					 | 
				
			||||||
          </object>
 | 
					 | 
				
			||||||
        </child>
 | 
					 | 
				
			||||||
        <child>
 | 
					 | 
				
			||||||
          <object class="GtkBox">
 | 
					 | 
				
			||||||
            <property name="hexpand">True</property>
 | 
					 | 
				
			||||||
            <property name="hexpand-set">True</property>
 | 
					 | 
				
			||||||
            <property name="orientation">vertical</property>
 | 
					 | 
				
			||||||
            <child>
 | 
					 | 
				
			||||||
              <object class="GtkLabel" id="reset_bluetooth_label">
 | 
					 | 
				
			||||||
                <property name="ellipsize">end</property>
 | 
					 | 
				
			||||||
                <property name="hexpand">True</property>
 | 
					 | 
				
			||||||
                <property name="hexpand-set">True</property>
 | 
					 | 
				
			||||||
                <property name="label">LoremIpsum Wireless Mouse</property>
 | 
					 | 
				
			||||||
                <property name="margin-end">10</property>
 | 
					 | 
				
			||||||
                <property name="single-line-mode">True</property>
 | 
					 | 
				
			||||||
                <property name="vexpand">True</property>
 | 
					 | 
				
			||||||
                <property name="vexpand-set">True</property>
 | 
					 | 
				
			||||||
                <property name="width-request">200</property>
 | 
					 | 
				
			||||||
                <property name="xalign">0.0</property>
 | 
					 | 
				
			||||||
              </object>
 | 
					 | 
				
			||||||
            </child>
 | 
					 | 
				
			||||||
            <child>
 | 
					 | 
				
			||||||
              <object class="GtkLabel" id="reset_bluetooth_address">
 | 
					 | 
				
			||||||
                <property name="ellipsize">end</property>
 | 
					 | 
				
			||||||
                <property name="hexpand">True</property>
 | 
					 | 
				
			||||||
                <property name="hexpand-set">True</property>
 | 
					 | 
				
			||||||
                <property name="label">LoremIpsum Wireless Mouse</property>
 | 
					 | 
				
			||||||
                <property name="margin-end">10</property>
 | 
					 | 
				
			||||||
                <property name="sensitive">False</property>
 | 
					 | 
				
			||||||
                <property name="single-line-mode">True</property>
 | 
					 | 
				
			||||||
                <property name="vexpand">True</property>
 | 
					 | 
				
			||||||
                <property name="vexpand-set">True</property>
 | 
					 | 
				
			||||||
                <property name="width-request">200</property>
 | 
					 | 
				
			||||||
                <property name="xalign">0.0</property>
 | 
					 | 
				
			||||||
              </object>
 | 
					 | 
				
			||||||
            </child>
 | 
					 | 
				
			||||||
          </object>
 | 
					 | 
				
			||||||
        </child>
 | 
					 | 
				
			||||||
        <child>
 | 
					 | 
				
			||||||
          <object class="GtkButton" id="reset_bluetooth_button">
 | 
					 | 
				
			||||||
            <property name="halign">end</property>
 | 
					 | 
				
			||||||
            <property name="has-frame">False</property>
 | 
					 | 
				
			||||||
            <property name="icon-name">user-trash-symbolic</property>
 | 
					 | 
				
			||||||
          </object>
 | 
					 | 
				
			||||||
        </child>
 | 
					 | 
				
			||||||
      </object>
 | 
					 | 
				
			||||||
    </property>
 | 
					 | 
				
			||||||
    <property name="margin-start">5</property>
 | 
					    <property name="margin-start">5</property>
 | 
				
			||||||
  </template>
 | 
					  </template>
 | 
				
			||||||
</interface>
 | 
					</interface>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@
 | 
				
			||||||
	(7,14,None,"resetInputStreamEntry.ui",None,None,None,None,None,None,None),
 | 
						(7,14,None,"resetInputStreamEntry.ui",None,None,None,None,None,None,None),
 | 
				
			||||||
	(8,1,None,"resetAudioOutput.ui",None,None,None,None,None,None,None),
 | 
						(8,1,None,"resetAudioOutput.ui",None,None,None,None,None,None,None),
 | 
				
			||||||
	(10,1,None,"resetBluetooth.ui",None,None,None,None,None,None,None),
 | 
						(10,1,None,"resetBluetooth.ui",None,None,None,None,None,None,None),
 | 
				
			||||||
	(11,32,None,"resetBluetoothEntry.ui",None,None,None,None,None,None,None),
 | 
						(11,1,None,"resetBluetoothEntry.ui",None,None,None,None,None,None,None),
 | 
				
			||||||
	(12,11,None,"resetAudioInput.ui",None,None,None,None,None,None,None),
 | 
						(12,11,None,"resetAudioInput.ui",None,None,None,None,None,None,None),
 | 
				
			||||||
	(13,22,None,"resetOutputStreamEntry.ui",None,None,None,None,None,None,None),
 | 
						(13,22,None,"resetOutputStreamEntry.ui",None,None,None,None,None,None,None),
 | 
				
			||||||
	(14,3,None,"resetSettingBox.ui",None,None,None,None,None,None,None),
 | 
						(14,3,None,"resetSettingBox.ui",None,None,None,None,None,None,None),
 | 
				
			||||||
| 
						 | 
					@ -158,13 +158,7 @@
 | 
				
			||||||
	(10,204,"AdwPreferencesGroup","reset_bluetooth_available_devices",121,None,None,None,1,None),
 | 
						(10,204,"AdwPreferencesGroup","reset_bluetooth_available_devices",121,None,None,None,1,None),
 | 
				
			||||||
	(10,206,"AdwPreferencesGroup","reset_bluetooth_connected_devices",121,None,None,None,2,None),
 | 
						(10,206,"AdwPreferencesGroup","reset_bluetooth_connected_devices",121,None,None,None,2,None),
 | 
				
			||||||
	(10,207,"GtkButton","reset_bluetooth_refresh_button",204,None,None,None,-1,None),
 | 
						(10,207,"GtkButton","reset_bluetooth_refresh_button",204,None,None,None,-1,None),
 | 
				
			||||||
	(11,32,"AdwActionRow","resetBluetoothEntry",None,None,None,None,-1,None),
 | 
						(11,1,"AdwActionRow","resetBluetoothEntry",None,None,None,None,None,None),
 | 
				
			||||||
	(11,39,"GtkBox",None,32,None,None,None,-1,None),
 | 
					 | 
				
			||||||
	(11,40,"GtkImage","reset_bluetooth_device_type",39,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,44,"GtkButton","reset_bluetooth_button",39,None,None,None,3,None),
 | 
					 | 
				
			||||||
	(11,47,"GtkBox",None,39,None,None,None,2,None),
 | 
					 | 
				
			||||||
	(11,48,"GtkLabel","reset_bluetooth_label",47,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkLabel","reset_bluetooth_address",47,None,None,None,1,None),
 | 
					 | 
				
			||||||
	(12,11,"GtkBox","resetAudioInput",None,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,12,"GtkLabel",None,11,None,None,None,None,None),
 | 
				
			||||||
	(12,13,"AdwNavigationView",None,11,None,None,None,1,None),
 | 
						(12,13,"AdwNavigationView",None,11,None,None,None,1,None),
 | 
				
			||||||
| 
						 | 
					@ -315,16 +309,8 @@
 | 
				
			||||||
	(23,9,"GtkBox",None,2,None,None,None,None,None),
 | 
						(23,9,"GtkBox",None,2,None,None,None,None,None),
 | 
				
			||||||
	(23,10,"AdwEntryRow","reset_route_address",9,None,None,None,None,None),
 | 
						(23,10,"AdwEntryRow","reset_route_address",9,None,None,None,None,None),
 | 
				
			||||||
	(23,11,"AdwEntryRow","reset_route_prefix",9,None,None,None,1,None),
 | 
						(23,11,"AdwEntryRow","reset_route_prefix",9,None,None,None,1,None),
 | 
				
			||||||
	(24,1,"AdwPreferencesGroup",None,None,None,None,None,-1,None),
 | 
						(24,1,"AdwActionRow","resetBluetoothEntry",None,None,None,None,None,None),
 | 
				
			||||||
	(24,4,"GtkButton",None,1,None,None,None,-1,None),
 | 
						(24,2,"GtkButton",None,1,None,None,None,-1,None)
 | 
				
			||||||
	(24,5,"GtkScrolledWindow",None,1,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(24,6,"GtkViewport",None,5,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(24,9,"GtkBox",None,6,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(24,10,"AdwActionRow",None,9,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(24,11,"AdwActionRow",None,9,None,None,None,1,None),
 | 
					 | 
				
			||||||
	(24,12,"AdwActionRow",None,9,None,None,None,2,None),
 | 
					 | 
				
			||||||
	(24,13,"AdwActionRow",None,9,None,None,None,3,None),
 | 
					 | 
				
			||||||
	(24,14,"AdwActionRow",None,9,None,None,None,4,None)
 | 
					 | 
				
			||||||
  </object>
 | 
					  </object>
 | 
				
			||||||
  <object_property>
 | 
					  <object_property>
 | 
				
			||||||
	(3,1,"GtkWidget","height-request","200",None,None,None,None,None,None,None,None,None),
 | 
						(3,1,"GtkWidget","height-request","200",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
| 
						 | 
					@ -598,38 +584,7 @@
 | 
				
			||||||
	(10,206,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
 | 
						(10,206,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
	(10,206,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
 | 
						(10,206,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
	(10,207,"GtkButton","icon-name","view-refresh-symbolic",None,None,None,None,None,None,None,None,None),
 | 
						(10,207,"GtkButton","icon-name","view-refresh-symbolic",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
	(11,32,"GtkListBoxRow","child",None,None,None,None,None,39,None,None,None,None),
 | 
						(11,1,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
	(11,32,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,40,"GtkImage","icon-name","input-mouse-symbolic",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,40,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,40,"GtkWidget","margin-end","15",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,44,"GtkButton","has-frame","False",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,44,"GtkButton","icon-name","user-trash-symbolic",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,44,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,47,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,47,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,47,"GtkWidget","hexpand-set","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,48,"GtkLabel","ellipsize","end",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,48,"GtkLabel","label","LoremIpsum Wireless Mouse",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,48,"GtkLabel","single-line-mode","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,48,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,48,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,48,"GtkWidget","hexpand-set","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,48,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,48,"GtkWidget","vexpand","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,48,"GtkWidget","vexpand-set","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,48,"GtkWidget","width-request","200",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkLabel","ellipsize","end",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkLabel","label","LoremIpsum Wireless Mouse",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkLabel","single-line-mode","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkWidget","hexpand-set","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkWidget","sensitive","False",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkWidget","vexpand","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkWidget","vexpand-set","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(11,49,"GtkWidget","width-request","200",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(12,11,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
 | 
						(12,11,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
	(12,11,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
 | 
						(12,11,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
	(12,12,"GtkLabel","label","Input",None,None,None,None,None,None,None,None,None),
 | 
						(12,12,"GtkLabel","label","Input",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
| 
						 | 
					@ -903,17 +858,9 @@
 | 
				
			||||||
	(23,10,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
 | 
						(23,10,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
	(23,11,"AdwPreferencesRow","title","Prefix",None,None,None,None,None,None,None,None,None),
 | 
						(23,11,"AdwPreferencesRow","title","Prefix",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
	(23,11,"GtkEditable","max-width-chars","5",None,None,None,None,None,None,None,None,None),
 | 
						(23,11,"GtkEditable","max-width-chars","5",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
	(24,1,"AdwPreferencesGroup","header-suffix",None,None,None,None,None,4,None,None,None,None),
 | 
						(24,1,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
	(24,1,"AdwPreferencesGroup","title","Available Devices",None,None,None,None,None,None,None,None,None),
 | 
						(24,2,"GtkButton","icon-name","user-trash-symbolic",None,None,None,None,None,None,None,None,None),
 | 
				
			||||||
	(24,4,"GtkButton","icon-name","view-refresh-symbolic",None,None,None,None,None,None,None,None,None),
 | 
						(24,2,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None)
 | 
				
			||||||
	(24,5,"GtkScrolledWindow","min-content-height","100",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(24,5,"GtkScrolledWindow","propagate-natural-height","True",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(24,9,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(24,10,"AdwPreferencesRow","title","device 2",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(24,11,"AdwPreferencesRow","title","device 1",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(24,12,"AdwPreferencesRow","title","device 2",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(24,13,"AdwPreferencesRow","title","device 2",None,None,None,None,None,None,None,None,None),
 | 
					 | 
				
			||||||
	(24,14,"AdwPreferencesRow","title","device 2",None,None,None,None,None,None,None,None,None)
 | 
					 | 
				
			||||||
  </object_property>
 | 
					  </object_property>
 | 
				
			||||||
  <object_data>
 | 
					  <object_data>
 | 
				
			||||||
	(3,42,"GtkWidget",1,1,None,None,None,None,None,None),
 | 
						(3,42,"GtkWidget",1,1,None,None,None,None,None,None),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue