mirror of
https://github.com/Xetibo/ReSet.git
synced 2025-04-08 22:52:01 +02:00
Merge pull request #78 from Xetibo/ina
make wifi options a little bit better
This commit is contained in:
commit
b422a50efd
|
@ -6,7 +6,7 @@ description = "A wip universal Linux settings application."
|
|||
|
||||
[dependencies]
|
||||
reset_daemon = "0.4.6"
|
||||
re_set-lib = "0.6.6"
|
||||
re_set-lib = { git = "https://github.com/Xetibo/ReSet-Lib", branch = "main" }
|
||||
adw = { version = "0.5.3", package = "libadwaita", features = ["v1_4"] }
|
||||
dbus = "0.9.7"
|
||||
gtk = { version = "0.7.3", package = "gtk4", features = ["v4_12"] }
|
||||
|
|
|
@ -54,6 +54,7 @@ fn setup_callbacks(
|
|||
imp.reset_visibility
|
||||
.set_action_target_value(Some(&Variant::from("visibility")));
|
||||
|
||||
imp.reset_bluetooth_main_tab.set_activatable(true);
|
||||
imp.reset_bluetooth_main_tab
|
||||
.set_action_name(Some("navigation.pop"));
|
||||
|
||||
|
@ -67,15 +68,13 @@ fn setup_callbacks(
|
|||
});
|
||||
|
||||
imp.reset_bluetooth_discoverable_switch
|
||||
.connect_state_set(clone!(@weak imp => @default-return glib::Propagation::Proceed,move |_, state| {
|
||||
set_bluetooth_adapter_visibility(imp.reset_current_bluetooth_adapter.borrow().path.clone(), state);
|
||||
glib::Propagation::Proceed
|
||||
.connect_active_notify(clone!(@weak imp => move |state| {
|
||||
set_bluetooth_adapter_visibility(imp.reset_current_bluetooth_adapter.borrow().path.clone(), state.is_active());
|
||||
}));
|
||||
|
||||
imp.reset_bluetooth_pairable_switch
|
||||
.connect_state_set(clone!(@weak imp => @default-return glib::Propagation::Proceed,move |_, state| {
|
||||
set_bluetooth_adapter_pairability(imp.reset_current_bluetooth_adapter.borrow().path.clone(), state);
|
||||
glib::Propagation::Proceed
|
||||
.connect_active_notify(clone!(@weak imp => move |state| {
|
||||
set_bluetooth_adapter_pairability(imp.reset_current_bluetooth_adapter.borrow().path.clone(), state.is_active());
|
||||
}));
|
||||
|
||||
imp.reset_bluetooth_switch
|
||||
|
@ -151,11 +150,11 @@ pub fn populate_conntected_bluetooth_devices(bluetooth_box: Arc<BluetoothBox>) {
|
|||
imp.reset_bluetooth_switch
|
||||
.set_active(current_adapter.powered);
|
||||
imp.reset_bluetooth_discoverable_switch
|
||||
.set_state(current_adapter.discoverable);
|
||||
.set_active(current_adapter.discoverable);
|
||||
imp.reset_bluetooth_discoverable_switch
|
||||
.set_active(current_adapter.discoverable);
|
||||
imp.reset_bluetooth_pairable_switch
|
||||
.set_state(current_adapter.pairable);
|
||||
.set_active(current_adapter.pairable);
|
||||
imp.reset_bluetooth_pairable_switch
|
||||
.set_active(current_adapter.pairable);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use adw::{ActionRow, ComboRow, PreferencesGroup};
|
||||
use adw::{ActionRow, ComboRow, PreferencesGroup, SwitchRow};
|
||||
use dbus::Path;
|
||||
use gtk::subclass::prelude::*;
|
||||
use gtk::{glib, Button, CompositeTemplate, Switch};
|
||||
|
@ -30,11 +30,11 @@ pub struct BluetoothBox {
|
|||
#[template_child]
|
||||
pub reset_visibility: TemplateChild<ActionRow>,
|
||||
#[template_child]
|
||||
pub reset_bluetooth_main_tab: TemplateChild<ListEntry>,
|
||||
pub reset_bluetooth_main_tab: TemplateChild<ActionRow>,
|
||||
#[template_child]
|
||||
pub reset_bluetooth_discoverable_switch: TemplateChild<Switch>,
|
||||
pub reset_bluetooth_discoverable_switch: TemplateChild<SwitchRow>,
|
||||
#[template_child]
|
||||
pub reset_bluetooth_pairable_switch: TemplateChild<Switch>,
|
||||
pub reset_bluetooth_pairable_switch: TemplateChild<SwitchRow>,
|
||||
pub available_devices: BluetoothMap,
|
||||
pub connected_devices: BluetoothMap,
|
||||
pub reset_bluetooth_adapters: Arc<RwLock<HashMap<String, (BluetoothAdapter, u32)>>>,
|
||||
|
|
|
@ -7,7 +7,7 @@ use std::time::SystemTime;
|
|||
|
||||
use crate::components::input::output_stream_entry;
|
||||
use gtk::subclass::prelude::*;
|
||||
use gtk::{glib, Button, CompositeTemplate, Label, ProgressBar, Scale};
|
||||
use gtk::{glib, Button, CompositeTemplate, Label, Scale};
|
||||
|
||||
#[derive(Default, CompositeTemplate)]
|
||||
#[template(resource = "/org/Xetibo/ReSet/resetOutputStreamEntry.ui")]
|
||||
|
@ -20,8 +20,6 @@ pub struct OutputStreamEntry {
|
|||
pub reset_volume_slider: TemplateChild<Scale>,
|
||||
#[template_child]
|
||||
pub reset_volume_percentage: TemplateChild<Label>,
|
||||
#[template_child]
|
||||
pub reset_volume_meter: TemplateChild<ProgressBar>,
|
||||
pub stream: Arc<RefCell<OutputStream>>,
|
||||
pub associated_source: Arc<RefCell<(u32, String)>>,
|
||||
pub volume_time_stamp: RefCell<Option<SystemTime>>,
|
||||
|
|
|
@ -120,6 +120,16 @@ pub fn populate_sources(input_box: Arc<SourceBox>) {
|
|||
let default_sink = input_box_imp.reset_default_source.clone();
|
||||
let source = default_sink.borrow();
|
||||
|
||||
if source.muted {
|
||||
input_box_imp
|
||||
.reset_source_mute
|
||||
.set_icon_name("microphone-disabled-symbolic");
|
||||
} else {
|
||||
input_box_imp
|
||||
.reset_source_mute
|
||||
.set_icon_name("audio-input-microphone-symbolic");
|
||||
}
|
||||
|
||||
let volume = source.volume.first().unwrap_or(&0_u32);
|
||||
let fraction = (*volume as f64 / 655.36).round();
|
||||
let percentage = (fraction).to_string() + "%";
|
||||
|
|
|
@ -9,7 +9,7 @@ use crate::components::base::list_entry::ListEntry;
|
|||
use crate::components::input::source_box;
|
||||
use gtk::subclass::prelude::*;
|
||||
use gtk::{glib, CheckButton, CompositeTemplate, StringList, TemplateChild};
|
||||
use gtk::{prelude::*, Button, Label, ProgressBar, Scale};
|
||||
use gtk::{prelude::*, Button, Label, Scale};
|
||||
|
||||
use super::output_stream_entry::OutputStreamEntry;
|
||||
use super::source_entry::SourceEntry;
|
||||
|
@ -33,8 +33,7 @@ pub struct SourceBox {
|
|||
pub reset_volume_slider: TemplateChild<Scale>,
|
||||
#[template_child]
|
||||
pub reset_volume_percentage: TemplateChild<Label>,
|
||||
#[template_child]
|
||||
pub reset_volume_meter: TemplateChild<ProgressBar>,
|
||||
|
||||
#[template_child]
|
||||
pub reset_sources: TemplateChild<gtk::Box>,
|
||||
#[template_child]
|
||||
|
|
|
@ -6,7 +6,7 @@ use std::sync::Arc;
|
|||
use std::time::SystemTime;
|
||||
|
||||
use gtk::subclass::prelude::*;
|
||||
use gtk::{glib, Button, CompositeTemplate, Label, ProgressBar, Scale};
|
||||
use gtk::{glib, Button, CompositeTemplate, Label, Scale};
|
||||
|
||||
use super::input_stream_entry;
|
||||
|
||||
|
@ -21,8 +21,6 @@ pub struct InputStreamEntry {
|
|||
pub reset_volume_slider: TemplateChild<Scale>,
|
||||
#[template_child]
|
||||
pub reset_volume_percentage: TemplateChild<Label>,
|
||||
#[template_child]
|
||||
pub reset_volume_meter: TemplateChild<ProgressBar>,
|
||||
pub stream: Arc<RefCell<InputStream>>,
|
||||
pub associated_sink: Arc<RefCell<(u32, String)>>,
|
||||
pub volume_time_stamp: RefCell<Option<SystemTime>>,
|
||||
|
|
|
@ -119,6 +119,16 @@ pub fn populate_sinks(output_box: Arc<SinkBox>) {
|
|||
let default_sink = output_box_imp.reset_default_sink.clone();
|
||||
let sink = default_sink.borrow();
|
||||
|
||||
if sink.muted {
|
||||
output_box_imp
|
||||
.reset_sink_mute
|
||||
.set_icon_name("audio-volume-muted-symbolic");
|
||||
} else {
|
||||
output_box_imp
|
||||
.reset_sink_mute
|
||||
.set_icon_name("audio-volume-high-symbolic");
|
||||
}
|
||||
|
||||
let volume = sink.volume.first().unwrap_or(&0);
|
||||
let fraction = (*volume as f64 / 655.36).round();
|
||||
let percentage = (fraction).to_string() + "%";
|
||||
|
|
|
@ -9,7 +9,7 @@ use crate::components::base::list_entry::ListEntry;
|
|||
use crate::components::output::input_stream_entry::InputStreamEntry;
|
||||
use gtk::subclass::prelude::*;
|
||||
use gtk::{glib, Box, Button, CheckButton, CompositeTemplate, Label, StringList, TemplateChild};
|
||||
use gtk::{prelude::*, ProgressBar, Scale};
|
||||
use gtk::{prelude::*, Scale};
|
||||
|
||||
use super::sink_box;
|
||||
use super::sink_entry::SinkEntry;
|
||||
|
@ -36,8 +36,6 @@ pub struct SinkBox {
|
|||
#[template_child]
|
||||
pub reset_volume_percentage: TemplateChild<Label>,
|
||||
#[template_child]
|
||||
pub reset_volume_meter: TemplateChild<ProgressBar>,
|
||||
#[template_child]
|
||||
pub reset_sinks: TemplateChild<Box>,
|
||||
#[template_child]
|
||||
pub reset_input_stream_button: TemplateChild<ActionRow>,
|
||||
|
|
|
@ -7,7 +7,7 @@ use std::time::SystemTime;
|
|||
|
||||
use crate::components::output::sink_entry;
|
||||
use gtk::subclass::prelude::*;
|
||||
use gtk::{glib, Button, CheckButton, CompositeTemplate, Label, ProgressBar, Scale};
|
||||
use gtk::{glib, Button, CheckButton, CompositeTemplate, Label, Scale};
|
||||
|
||||
#[derive(Default, CompositeTemplate)]
|
||||
#[template(resource = "/org/Xetibo/ReSet/resetSinkEntry.ui")]
|
||||
|
@ -22,8 +22,6 @@ pub struct SinkEntry {
|
|||
pub reset_volume_slider: TemplateChild<Scale>,
|
||||
#[template_child]
|
||||
pub reset_volume_percentage: TemplateChild<Label>,
|
||||
#[template_child]
|
||||
pub reset_volume_meter: TemplateChild<ProgressBar>,
|
||||
pub stream: Arc<RefCell<Sink>>,
|
||||
pub volume_time_stamp: RefCell<Option<SystemTime>>,
|
||||
}
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
use std::rc::Rc;
|
||||
use std::time::Duration;
|
||||
|
||||
use crate::components::wifi::saved_wifi_entry_impl;
|
||||
use crate::components::wifi::wifi_box_impl::WifiBox;
|
||||
use adw::glib;
|
||||
use adw::glib::Object;
|
||||
use adw::prelude::{ActionRowExt, ButtonExt, PreferencesRowExt, WidgetExt};
|
||||
use adw::prelude::{ActionRowExt, ButtonExt, PreferencesRowExt, PreferencesGroupExt};
|
||||
use dbus::blocking::Connection;
|
||||
use dbus::{Error, Path};
|
||||
use glib::subclass::types::ObjectSubclassIsExt;
|
||||
use glib::{clone, PropertySet};
|
||||
use gtk::{Align, Button, gio, Orientation};
|
||||
use gtk::prelude::{BoxExt, ListBoxRowExt};
|
||||
use crate::components::wifi::utils::get_connection_settings;
|
||||
use crate::components::wifi::wifi_options::WifiOptions;
|
||||
|
||||
glib::wrapper! {
|
||||
pub struct SavedWifiEntry(ObjectSubclass<saved_wifi_entry_impl::SavedWifiEntry>)
|
||||
|
@ -19,8 +22,8 @@ glib::wrapper! {
|
|||
}
|
||||
|
||||
impl SavedWifiEntry {
|
||||
pub fn new(name: &str, path: Path<'static>, wifi_box: &WifiBox) -> Self {
|
||||
let entry: SavedWifiEntry = Object::builder().build();
|
||||
pub fn new(name: &str, path: Path<'static>, wifi_box: &WifiBox) -> Rc<Self> {
|
||||
let entry: Rc<SavedWifiEntry> = Rc::new(Object::builder().build());
|
||||
entry.set_activatable(false);
|
||||
let entry_imp = entry.imp();
|
||||
|
||||
|
@ -43,21 +46,18 @@ impl SavedWifiEntry {
|
|||
|
||||
edit_button.connect_clicked(
|
||||
clone!(@ weak entry_imp, @ weak wifi_box => move |_| {
|
||||
// TODO accesspoint has to be saved somewhere i guess
|
||||
// let _option = getConnectionSettings(entryImp.accessPoint.borrow().associated_connection.clone());
|
||||
// wifiBox.resetWifiNavigation.push(&*WifiOptions::new(_option));
|
||||
let _option = get_connection_settings(entry_imp.reset_connection_path.borrow().clone());
|
||||
wifi_box.reset_wifi_navigation.push(&*WifiOptions::new(_option, entry_imp.reset_connection_path.borrow().clone()));
|
||||
}),
|
||||
);
|
||||
|
||||
delete_button.connect_clicked(
|
||||
clone!(@weak entry as entry => move |_| {
|
||||
delete_connection(entry.imp().reset_connection_path.take());
|
||||
let entry_ref = entry.clone();
|
||||
delete_button.connect_clicked(clone!(@weak wifi_box => move |_| {
|
||||
delete_connection(entry_ref.imp().reset_connection_path.take());
|
||||
// TODO handle error
|
||||
let parent = entry.parent().unwrap();
|
||||
parent.set_visible(false);
|
||||
parent.unparent();
|
||||
}),
|
||||
);
|
||||
wifi_box.reset_stored_wifi_list.remove(&*entry_ref);
|
||||
|
||||
}));
|
||||
entry
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ use std::cell::RefCell;
|
|||
|
||||
use dbus::Path;
|
||||
use gtk::subclass::prelude::*;
|
||||
use gtk::{glib, Button, CompositeTemplate, Label};
|
||||
use gtk::{glib, CompositeTemplate};
|
||||
|
||||
use super::saved_wifi_entry;
|
||||
|
||||
|
|
|
@ -178,7 +178,7 @@ pub fn show_stored_connections(wifi_box: Arc<WifiBox>) {
|
|||
let name =
|
||||
&String::from_utf8(connection.1).unwrap_or_else(|_| String::from(""));
|
||||
let entry = SavedWifiEntry::new(name, connection.0, self_imp);
|
||||
self_imp.reset_stored_wifi_list.add(&entry);
|
||||
self_imp.reset_stored_wifi_list.add(&*entry);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -99,7 +99,7 @@ impl WifiEntry {
|
|||
let self_imp = self.imp();
|
||||
self_imp.reset_wifi_edit_button.borrow().connect_clicked(clone!(@ weak self_imp, @ weak wifi_box => move |_| {
|
||||
let _option = get_connection_settings(self_imp.access_point.borrow().associated_connection.clone());
|
||||
wifi_box.reset_wifi_navigation.push(&*WifiOptions::new(_option, self_imp.access_point.borrow().dbus_path.clone()));
|
||||
wifi_box.reset_wifi_navigation.push(&*WifiOptions::new(_option, self_imp.access_point.borrow().associated_connection.clone()));
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ use dbus::arg::PropMap;
|
|||
use dbus::{Error, Path};
|
||||
use glib::{clone, PropertySet};
|
||||
use gtk::prelude::{ButtonExt, EditableExt, WidgetExt};
|
||||
use re_set_lib::network::connection::{Connection, DNSMethod4, DNSMethod6, Enum, TypeSettings};
|
||||
use re_set_lib::network::connection::{Connection, DNSMethod4, DNSMethod6, Enum, KeyManagement, TypeSettings};
|
||||
use IpProtocol::{IPv4, IPv6};
|
||||
|
||||
use crate::components::wifi::utils::IpProtocol;
|
||||
|
@ -30,11 +30,11 @@ unsafe impl Send for WifiOptions {}
|
|||
unsafe impl Sync for WifiOptions {}
|
||||
|
||||
impl WifiOptions {
|
||||
pub fn new(connection: Connection, access_point: Path<'static>) -> Arc<Self> {
|
||||
pub fn new(connection: Connection, connection_path: Path<'static>) -> Arc<Self> {
|
||||
let wifi_option: Arc<WifiOptions> = Arc::new(Object::builder().build());
|
||||
wifi_option.imp().connection.set(connection);
|
||||
wifi_option.initialize_ui();
|
||||
setup_callbacks(&wifi_option, access_point);
|
||||
setup_callbacks(&wifi_option, connection_path);
|
||||
wifi_option
|
||||
}
|
||||
|
||||
|
@ -59,7 +59,7 @@ impl WifiOptions {
|
|||
.reset_wifi_metered
|
||||
.set_active(conn.settings.metered != -1);
|
||||
match &conn.device {
|
||||
TypeSettings::WIFI(wifi) => {
|
||||
TypeSettings::WIFI(wifi, _) => {
|
||||
self_imp.reset_wifi_link_speed.set_visible(false);
|
||||
self_imp.reset_wifi_ip4_addr.set_visible(false);
|
||||
self_imp.reset_wifi_ip6_addr.set_visible(false);
|
||||
|
@ -93,27 +93,26 @@ impl WifiOptions {
|
|||
// IPv4
|
||||
self_imp
|
||||
.reset_ip4_method
|
||||
.set_selected(conn.ipv4.dns_method.to_i32() as u32);
|
||||
self.set_ip4_visibility(conn.ipv4.dns_method.to_i32() as u32);
|
||||
.set_selected(conn.ipv4.method.to_i32() as u32);
|
||||
self.set_ip4_visibility(conn.ipv4.method.to_i32() as u32);
|
||||
|
||||
let ipv4_dns: Vec<String> = conn
|
||||
let ipv4_dns: Vec<Ipv4Addr> = conn
|
||||
.ipv4
|
||||
.dns
|
||||
.iter()
|
||||
.map(|addr| {
|
||||
addr.iter()
|
||||
.map(|octet| octet.to_string())
|
||||
.collect::<Vec<String>>()
|
||||
.join(".")
|
||||
})
|
||||
.map(|addr| Ipv4Addr::from(*addr))
|
||||
.collect();
|
||||
self_imp.reset_ip4_dns.set_text(&ipv4_dns.join(", "));
|
||||
|
||||
self_imp.reset_ip4_dns.set_text(&ipv4_dns.iter()
|
||||
.map(|ip| ip.to_string())
|
||||
.collect::<Vec<String>>()
|
||||
.join(", "));
|
||||
self_imp.reset_ip4_gateway.set_text(&conn.ipv4.gateway);
|
||||
// IPv6
|
||||
self_imp
|
||||
.reset_ip6_method
|
||||
.set_selected(conn.ipv6.dns_method.to_i32() as u32);
|
||||
self.set_ip6_visibility(conn.ipv6.dns_method.to_i32() as u32);
|
||||
.set_selected(conn.ipv6.method.to_i32() as u32);
|
||||
self.set_ip6_visibility(conn.ipv6.method.to_i32() as u32);
|
||||
|
||||
let ipv6_dns: Vec<String> = conn
|
||||
.ipv6
|
||||
|
@ -126,23 +125,24 @@ impl WifiOptions {
|
|||
.join(":")
|
||||
})
|
||||
.collect();
|
||||
|
||||
self_imp.reset_ip6_dns.set_text(&ipv6_dns.join(", "));
|
||||
self_imp.reset_ip6_gateway.set_text(&conn.ipv6.gateway);
|
||||
|
||||
// Security
|
||||
if let TypeSettings::WIFI(wifi) = &conn.device {
|
||||
match wifi.security_settings.key_management.as_str() {
|
||||
"none" => {
|
||||
if let TypeSettings::WIFI(_, wifi_security) = &conn.device {
|
||||
match wifi_security.key_management {
|
||||
KeyManagement::NONE => {
|
||||
self_imp.reset_wifi_security_dropdown.set_selected(0);
|
||||
self_imp.reset_wifi_password.set_visible(false);
|
||||
self_imp.reset_wifi_password.set_text("");
|
||||
}
|
||||
"wpa-psk" => {
|
||||
KeyManagement::WPAPSK => {
|
||||
self_imp.reset_wifi_security_dropdown.set_selected(1);
|
||||
self_imp.reset_wifi_password.set_visible(true);
|
||||
self_imp
|
||||
.reset_wifi_password
|
||||
.set_text(&wifi.security_settings.psk);
|
||||
.set_text(&wifi_security.psk);
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
@ -242,6 +242,7 @@ fn setup_callbacks(wifi_options: &Arc<WifiOptions>, path: Path<'static>) {
|
|||
imp.wifi_options_apply_button
|
||||
.connect_clicked(clone!(@weak imp => move |_| {
|
||||
let prop = imp.connection.borrow().convert_to_propmap();
|
||||
dbg!(&prop);
|
||||
set_connection_settings(path.clone(), prop);
|
||||
}));
|
||||
// IPv4
|
||||
|
@ -250,7 +251,7 @@ fn setup_callbacks(wifi_options: &Arc<WifiOptions>, path: Path<'static>) {
|
|||
.connect_selected_notify(clone!(@weak imp => move |dropdown| {
|
||||
let selected = dropdown.selected();
|
||||
let mut conn = imp.connection.borrow_mut();
|
||||
conn.ipv4.dns_method = DNSMethod4::from_i32(selected as i32);
|
||||
conn.ipv4.method = DNSMethod4::from_i32(selected as i32);
|
||||
wifi_options_ip4.set_ip4_visibility(selected);
|
||||
}));
|
||||
|
||||
|
@ -266,7 +267,7 @@ fn setup_callbacks(wifi_options: &Arc<WifiOptions>, path: Path<'static>) {
|
|||
for dns_entry in dns_input.as_str().split(',').map(|s| s.trim()) {
|
||||
if let Ok(addr) = Ipv4Addr::from_str(dns_entry) {
|
||||
imp.reset_ip4_dns.remove_css_class("error");
|
||||
conn.ipv4.dns.push(addr.octets().to_vec());
|
||||
conn.ipv4.dns.push(u32::from_be_bytes(addr.octets()));
|
||||
} else {
|
||||
imp.reset_ip4_dns.add_css_class("error");
|
||||
}
|
||||
|
@ -274,7 +275,7 @@ fn setup_callbacks(wifi_options: &Arc<WifiOptions>, path: Path<'static>) {
|
|||
}));
|
||||
imp.reset_ip4_address_add_button
|
||||
.connect_clicked(clone!(@weak imp => move |_| {
|
||||
let address = &WifiAddressEntry::new(None, imp.connection.clone(), IpProtocol::IPv4);
|
||||
let address = &WifiAddressEntry::new(None, imp.connection.clone(), IPv4);
|
||||
imp.reset_ip4_address_group.add(address);
|
||||
}));
|
||||
|
||||
|
@ -300,7 +301,7 @@ fn setup_callbacks(wifi_options: &Arc<WifiOptions>, path: Path<'static>) {
|
|||
.connect_selected_notify(clone!(@weak imp => move |dropdown| {
|
||||
let selected = dropdown.selected();
|
||||
let mut conn = imp.connection.borrow_mut();
|
||||
conn.ipv6.dns_method = DNSMethod6::from_i32(selected as i32);
|
||||
conn.ipv6.method = DNSMethod6::from_i32(selected as i32);
|
||||
wifi_options_ip6.set_ip6_visibility(selected);
|
||||
}));
|
||||
|
||||
|
@ -324,7 +325,7 @@ fn setup_callbacks(wifi_options: &Arc<WifiOptions>, path: Path<'static>) {
|
|||
}));
|
||||
imp.reset_ip6_address_add_button
|
||||
.connect_clicked(clone!(@weak imp => move |_| {
|
||||
let address = &WifiAddressEntry::new(None, imp.connection.clone(), IpProtocol::IPv4);
|
||||
let address = &WifiAddressEntry::new(None, imp.connection.clone(), IPv4);
|
||||
imp.reset_ip6_address_group.add(address);
|
||||
}));
|
||||
|
||||
|
@ -352,15 +353,15 @@ fn setup_callbacks(wifi_options: &Arc<WifiOptions>, path: Path<'static>) {
|
|||
let mut conn = imp.connection.borrow_mut();
|
||||
|
||||
match (selected, &mut conn.device) {
|
||||
(0 , TypeSettings::WIFI(wifi)) => { // None
|
||||
(0 , TypeSettings::WIFI(_, wifi_security)) => { // None
|
||||
imp.reset_wifi_password.set_visible(false);
|
||||
wifi.security_settings.key_management = String::from("none");
|
||||
wifi.security_settings.authentication_algorithm = String::from("open");
|
||||
wifi_security.key_management = KeyManagement::NONE;
|
||||
wifi_security.authentication_algorithm = String::from("none");
|
||||
},
|
||||
(1 , TypeSettings::WIFI(wifi)) => { // WPA/WPA2 Personal
|
||||
(1 , TypeSettings::WIFI(_, wifi_security)) => { // WPA/WPA2 Personal
|
||||
imp.reset_wifi_password.set_visible(true);
|
||||
wifi.security_settings.key_management = String::from("wpa-psk");
|
||||
wifi.security_settings.authentication_algorithm = String::from("");
|
||||
wifi_security.key_management = KeyManagement::WPAPSK;
|
||||
wifi_security.authentication_algorithm = String::from("none");
|
||||
},
|
||||
(_, _) => {}
|
||||
}
|
||||
|
@ -370,8 +371,8 @@ fn setup_callbacks(wifi_options: &Arc<WifiOptions>, path: Path<'static>) {
|
|||
.connect_changed(clone!(@weak imp => move |entry| {
|
||||
let password_input = entry.text();
|
||||
let mut conn = imp.connection.borrow_mut();
|
||||
if let TypeSettings::WIFI(wifi) = &mut conn.device {
|
||||
wifi.security_settings.psk = password_input.to_string();
|
||||
if let TypeSettings::WIFI(_, wifi_security) = &mut conn.device {
|
||||
wifi_security.psk = password_input.to_string();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
|
|
@ -97,11 +97,6 @@
|
|||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkProgressBar" id="reset_volume_meter">
|
||||
<property name="margin-top">5</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
|
|
|
@ -97,11 +97,6 @@
|
|||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkProgressBar" id="reset_volume_meter">
|
||||
<property name="margin-top">5</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
|
|
|
@ -91,33 +91,16 @@
|
|||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkListBox">
|
||||
<property name="css-classes">boxed-list</property>
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="margin-end">5</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-top">5</property>
|
||||
<property name="show-separators">True</property>
|
||||
<property name="valign">start</property>
|
||||
<object class="AdwPreferencesGroup">
|
||||
<child>
|
||||
<object class="resetListBoxRow" id="reset_bluetooth_main_tab">
|
||||
<object class="AdwActionRow" id="reset_bluetooth_main_tab">
|
||||
<property name="title">Available Networks</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="height-request">40</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">Main</property>
|
||||
<property name="margin-start">5</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="halign">end</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="icon-name">go-previous-symbolic</property>
|
||||
<property name="margin-end">5</property>
|
||||
</object>
|
||||
</child>
|
||||
<object class="GtkImage">
|
||||
<property name="halign">end</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="icon-name">go-previous-symbolic</property>
|
||||
<property name="margin-end">5</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@ -125,46 +108,18 @@
|
|||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">start</property>
|
||||
<property name="label">Visibility Settings</property>
|
||||
<property name="margin-start">5</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-top">5</property>
|
||||
<object class="AdwPreferencesGroup">
|
||||
<property name="title">Visibility Settings</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">start</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="hexpand-set">True</property>
|
||||
<property name="label">Pairable</property>
|
||||
<object class="AdwSwitchRow" id="reset_bluetooth_pairable_switch">
|
||||
<property name="title">Pairable</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="reset_bluetooth_pairable_switch"/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-top">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="halign">start</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="hexpand-set">True</property>
|
||||
<property name="label">Discoverable</property>
|
||||
<object class="AdwSwitchRow" id="reset_bluetooth_discoverable_switch">
|
||||
<property name="title">Discoverable</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="reset_bluetooth_discoverable_switch"/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
|
|
@ -59,11 +59,6 @@
|
|||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkProgressBar" id="reset_volume_meter">
|
||||
<property name="margin-top">5</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
<property name="css-classes">audioRow
|
||||
|
|
|
@ -58,11 +58,6 @@
|
|||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkProgressBar" id="reset_volume_meter">
|
||||
<property name="margin-top">5</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
<property name="css-classes">audioRow
|
||||
|
|
|
@ -60,11 +60,6 @@
|
|||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkProgressBar" id="reset_volume_meter">
|
||||
<property name="margin-top">5</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
<property name="css-classes">audioRow
|
||||
|
|
|
@ -60,11 +60,6 @@
|
|||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkProgressBar" id="reset_volume_meter">
|
||||
<property name="margin-top">5</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
<property name="css-classes">audioRow
|
||||
|
|
|
@ -21,8 +21,7 @@
|
|||
(20,None,None,"resetCardEntry.ui",None,None,None,None,None,None,None),
|
||||
(21,1,None,"resetWifiOptions.ui",None,None,None,None,None,None,None),
|
||||
(22,1,None,"resetWifiAddressEntry.ui",None,None,None,None,None,None,None),
|
||||
(23,1,None,"resetWifiRouteEntry.ui",None,None,None,None,None,None,None),
|
||||
(25,None,None,None,None,None,None,None,None,None,None)
|
||||
(23,1,None,"resetWifiRouteEntry.ui",None,None,None,None,None,None,None)
|
||||
</ui>
|
||||
<ui_library>
|
||||
(21,"gtk","4.12",None),
|
||||
|
@ -85,7 +84,6 @@
|
|||
(7,20,"GtkScale","reset_volume_slider",18,None,None,None,1,None),
|
||||
(7,21,"GtkAdjustment",None,20,None,None,None,None,None),
|
||||
(7,22,"GtkLabel","reset_volume_percentage",18,None,None,None,2,None),
|
||||
(7,23,"GtkProgressBar","reset_volume_meter",17,None,None,None,1,None),
|
||||
(7,24,"GtkSeparator",None,14,None,None,None,-1,None),
|
||||
(8,1,"GtkBox","resetAudioOutput",None,None,None,None,None,None),
|
||||
(8,53,"GtkLabel",None,1,None,None,None,None,None),
|
||||
|
@ -104,7 +102,6 @@
|
|||
(8,98,"GtkButton","reset_sink_mute",97,None,None,None,None,None),
|
||||
(8,99,"GtkScale","reset_volume_slider",97,None,None,None,1,None),
|
||||
(8,101,"GtkLabel","reset_volume_percentage",97,None,None,None,2,None),
|
||||
(8,102,"GtkProgressBar","reset_volume_meter",93,None,None,None,1,None),
|
||||
(8,103,"GtkSeparator",None,56,None,None,None,3,None),
|
||||
(8,115,"GtkAdjustment",None,99,None,None,None,-1,None),
|
||||
(8,116,"AdwNavigationPage",None,54,None,None,None,2,None),
|
||||
|
@ -132,25 +129,19 @@
|
|||
(10,143,"GtkLabel",None,142,None,None,None,None,None),
|
||||
(10,144,"GtkSwitch","reset_bluetooth_switch",142,None,None,None,1,None),
|
||||
(10,153,"GtkBox",None,138,None,None,None,None,None),
|
||||
(10,154,"GtkListBox",None,153,None,None,None,None,None),
|
||||
(10,155,"resetListBoxRow","reset_bluetooth_main_tab",154,None,None,None,1,None),
|
||||
(10,156,"GtkBox",None,155,None,None,None,None,None),
|
||||
(10,157,"GtkLabel",None,156,None,None,None,None,None),
|
||||
(10,158,"GtkImage",None,156,None,None,None,1,None),
|
||||
(10,159,"GtkLabel",None,153,None,None,None,1,None),
|
||||
(10,172,"AdwPreferencesGroup","reset_bluetooth_details",121,None,None,None,None,None),
|
||||
(10,173,"AdwComboRow","reset_bluetooth_adapter",172,None,None,None,None,None),
|
||||
(10,174,"AdwActionRow","reset_visibility",172,None,None,None,1,None),
|
||||
(10,175,"GtkImage",None,174,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,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,207,"GtkButton","reset_bluetooth_refresh_button",204,None,None,None,-1,None),
|
||||
(10,208,"AdwPreferencesGroup",None,153,None,None,None,None,None),
|
||||
(10,209,"AdwPreferencesGroup",None,153,None,None,None,1,None),
|
||||
(10,210,"AdwSwitchRow","reset_bluetooth_pairable_switch",209,None,None,None,-1,None),
|
||||
(10,211,"AdwSwitchRow","reset_bluetooth_discoverable_switch",209,None,None,None,-1,None),
|
||||
(10,212,"AdwActionRow","reset_bluetooth_main_tab",208,None,None,None,None,None),
|
||||
(10,213,"GtkImage",None,212,None,None,None,None,None),
|
||||
(11,1,"AdwActionRow","resetBluetoothEntry",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),
|
||||
|
@ -162,7 +153,6 @@
|
|||
(12,24,"GtkButton","reset_source_mute",23,None,None,None,None,None),
|
||||
(12,25,"GtkScale","reset_volume_slider",23,None,None,None,1,None),
|
||||
(12,27,"GtkLabel","reset_volume_percentage",23,None,None,None,2,None),
|
||||
(12,28,"GtkProgressBar","reset_volume_meter",22,None,None,None,1,None),
|
||||
(12,29,"GtkSeparator",None,15,None,None,None,3,None),
|
||||
(12,30,"GtkBox","reset_output_streams",15,None,None,None,4,None),
|
||||
(12,31,"GtkLabel",None,30,None,None,None,None,None),
|
||||
|
@ -196,7 +186,6 @@
|
|||
(13,38,"GtkScale","reset_volume_slider",36,None,None,None,1,None),
|
||||
(13,39,"GtkAdjustment",None,38,None,None,None,None,None),
|
||||
(13,40,"GtkLabel","reset_volume_percentage",36,None,None,None,2,None),
|
||||
(13,41,"GtkProgressBar","reset_volume_meter",27,None,None,None,1,None),
|
||||
(13,42,"GtkSeparator",None,22,None,None,None,-1,None),
|
||||
(14,3,"GtkBox","resetSettingBox",None,None,None,None,-1,None),
|
||||
(15,1,"GtkListBoxRow","resetListBoxRow",None,None,None,None,None,None),
|
||||
|
@ -217,7 +206,6 @@
|
|||
(18,20,"GtkScale","reset_volume_slider",18,None,None,None,1,None),
|
||||
(18,21,"GtkAdjustment",None,20,None,None,None,None,None),
|
||||
(18,22,"GtkLabel","reset_volume_percentage",18,None,None,None,2,None),
|
||||
(18,23,"GtkProgressBar","reset_volume_meter",17,None,None,None,1,None),
|
||||
(18,24,"GtkSeparator",None,13,None,None,None,2,None),
|
||||
(19,13,"AdwPreferencesGroup","resetSourceEntry",None,None,None,None,None,None),
|
||||
(19,14,"AdwActionRow","reset_source_name",13,None,None,None,None,None),
|
||||
|
@ -229,7 +217,6 @@
|
|||
(19,20,"GtkScale","reset_volume_slider",18,None,None,None,1,None),
|
||||
(19,21,"GtkAdjustment",None,20,None,None,None,None,None),
|
||||
(19,22,"GtkLabel","reset_volume_percentage",18,None,None,None,2,None),
|
||||
(19,23,"GtkProgressBar","reset_volume_meter",17,None,None,None,1,None),
|
||||
(19,24,"GtkSeparator",None,13,None,None,None,2,None),
|
||||
(20,2,"AdwComboRow","reset_card_entry",None,None,None,None,None,None),
|
||||
(21,1,"AdwNavigationPage","resetWifiOptions",None,None,None,None,-1,None),
|
||||
|
@ -297,11 +284,7 @@
|
|||
(23,8,"AdwEntryRow","reset_route_metric",6,None,None,None,1,None),
|
||||
(23,9,"GtkBox",None,2,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),
|
||||
(25,1,"GtkBox",None,None,None,None,None,None,None),
|
||||
(25,2,"GtkLabel","reset_saved_wifi_label",1,None,None,None,None,None),
|
||||
(25,3,"GtkButton","reset_edit_saved_wifi_button",1,None,None,None,1,None),
|
||||
(25,4,"GtkButton","reset_delete_saved_wifi_button",1,None,None,None,2,None)
|
||||
(23,11,"AdwEntryRow","reset_route_prefix",9,None,None,None,1,None)
|
||||
</object>
|
||||
<object_property>
|
||||
(3,1,"GtkWidget","height-request","200",None,None,None,None,None,None,None,None,None),
|
||||
|
@ -422,7 +405,6 @@
|
|||
(7,22,"GtkLabel","label","100%",None,None,None,None,None,None,None,None,None),
|
||||
(7,22,"GtkLabel","lines","1",None,None,None,None,None,None,None,None,None),
|
||||
(7,22,"GtkWidget","width-request","40",None,None,None,None,None,None,None,None,None),
|
||||
(7,23,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(7,24,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
|
||||
(8,1,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
|
||||
(8,1,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
|
||||
|
@ -463,7 +445,6 @@
|
|||
(8,101,"GtkLabel","label","100%",None,None,None,None,None,None,None,None,None),
|
||||
(8,101,"GtkLabel","lines","1",None,None,None,None,None,None,None,None,None),
|
||||
(8,101,"GtkWidget","width-request","40",None,None,None,None,None,None,None,None,None),
|
||||
(8,102,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(8,115,"GtkAdjustment","page-increment","2005.4016",None,None,None,None,None,None,None,None,None),
|
||||
(8,115,"GtkAdjustment","step-increment","2005.4016",None,None,None,None,None,None,None,None,None),
|
||||
(8,115,"GtkAdjustment","upper","100270.08",None,None,None,None,None,None,None,None,None),
|
||||
|
@ -504,43 +485,12 @@
|
|||
(10,144,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
|
||||
(10,144,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
|
||||
(10,153,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
|
||||
(10,154,"GtkListBox","show-separators","True",None,None,None,None,None,None,None,None,None),
|
||||
(10,154,"GtkWidget","css-classes","boxed-list",None,None,None,None,None,None,None,None,None),
|
||||
(10,154,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(10,154,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
|
||||
(10,154,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(10,154,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(10,154,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
|
||||
(10,156,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
|
||||
(10,157,"GtkLabel","label","Main",None,None,None,None,None,None,None,None,None),
|
||||
(10,157,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(10,158,"GtkImage","icon-name","go-previous-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(10,158,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
|
||||
(10,158,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
|
||||
(10,158,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
|
||||
(10,159,"GtkLabel","label","Visibility Settings",None,None,None,None,None,None,None,None,None),
|
||||
(10,159,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(10,159,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(10,173,"AdwPreferencesRow","title","Bluetooth Adapter",None,None,None,None,None,None,None,None,None),
|
||||
(10,174,"AdwPreferencesRow","title","Visibility Settings",None,None,None,None,None,None,None,None,None),
|
||||
(10,175,"GtkImage","icon-name","go-previous-symbolic-rtl",None,None,None,None,None,None,None,None,None),
|
||||
(10,175,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
|
||||
(10,175,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
|
||||
(10,175,"GtkWidget","margin-end","5",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),
|
||||
(10,193,"GtkLabel","label","Discoverable",None,None,None,None,None,None,None,None,None),
|
||||
(10,193,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(10,193,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
|
||||
(10,193,"GtkWidget","hexpand-set","True",None,None,None,None,None,None,None,None,None),
|
||||
(10,197,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
|
||||
(10,197,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(10,197,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(10,198,"GtkLabel","label","Pairable",None,None,None,None,None,None,None,None,None),
|
||||
(10,198,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(10,198,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
|
||||
(10,198,"GtkWidget","hexpand-set","True",None,None,None,None,None,None,None,None,None),
|
||||
(10,204,"AdwPreferencesGroup","header-suffix",None,None,None,None,None,207,None,None,None,None),
|
||||
(10,204,"AdwPreferencesGroup","title","Available Devices",None,None,None,None,None,None,None,None,None),
|
||||
(10,204,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
|
||||
|
@ -551,6 +501,14 @@
|
|||
(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,207,"GtkButton","icon-name","view-refresh-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(10,209,"AdwPreferencesGroup","title","Visibility Settings",None,None,None,None,None,None,None,None,None),
|
||||
(10,210,"AdwPreferencesRow","title","Pairable",None,None,None,None,None,None,None,None,None),
|
||||
(10,211,"AdwPreferencesRow","title","Discoverable",None,None,None,None,None,None,None,None,None),
|
||||
(10,212,"AdwPreferencesRow","title","Available Networks",None,None,None,None,None,None,None,None,None),
|
||||
(10,213,"GtkImage","icon-name","go-previous-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(10,213,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
|
||||
(10,213,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
|
||||
(10,213,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
|
||||
(11,1,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
(11,32,"GtkListBoxRow","child",None,None,None,None,None,39,None,None,None,None),
|
||||
(11,32,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
|
||||
|
@ -620,7 +578,6 @@
|
|||
(12,27,"GtkLabel","label","100%",None,None,None,None,None,None,None,None,None),
|
||||
(12,27,"GtkLabel","lines","1",None,None,None,None,None,None,None,None,None),
|
||||
(12,27,"GtkWidget","width-request","40",None,None,None,None,None,None,None,None,None),
|
||||
(12,28,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(12,30,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
|
||||
(12,30,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
|
||||
(12,31,"GtkLabel","label","Input Streams",None,None,None,None,None,None,None,None,None),
|
||||
|
@ -678,7 +635,6 @@
|
|||
(13,40,"GtkLabel","label","100%",None,None,None,None,None,None,None,None,None),
|
||||
(13,40,"GtkLabel","lines","1",None,None,None,None,None,None,None,None,None),
|
||||
(13,40,"GtkWidget","width-request","40",None,None,None,None,None,None,None,None,None),
|
||||
(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","css-classes","settings-box",None,None,None,None,None,None,None,None,None),
|
||||
|
@ -725,7 +681,6 @@
|
|||
(18,22,"GtkLabel","label","100%",None,None,None,None,None,None,None,None,None),
|
||||
(18,22,"GtkLabel","lines","1",None,None,None,None,None,None,None,None,None),
|
||||
(18,22,"GtkWidget","width-request","40",None,None,None,None,None,None,None,None,None),
|
||||
(18,23,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(18,24,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
|
||||
(18,24,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(19,14,"AdwActionRow","title-lines","3",None,None,None,None,None,None,None,None,None),
|
||||
|
@ -752,7 +707,6 @@
|
|||
(19,22,"GtkLabel","label","100%",None,None,None,None,None,None,None,None,None),
|
||||
(19,22,"GtkLabel","lines","1",None,None,None,None,None,None,None,None,None),
|
||||
(19,22,"GtkWidget","width-request","40",None,None,None,None,None,None,None,None,None),
|
||||
(19,23,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(19,24,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
|
||||
(19,24,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
|
||||
(20,2,"AdwComboRow","use-subtitle","True",None,None,None,None,None,None,None,None,None),
|
||||
|
@ -850,22 +804,7 @@
|
|||
(23,10,"AdwPreferencesRow","title","Address",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,"GtkEditable","max-width-chars","5",None,None,None,None,None,None,None,None,None),
|
||||
(25,2,"GtkLabel","ellipsize","end",None,None,None,None,None,None,None,None,None),
|
||||
(25,2,"GtkLabel","label","LoremIpsumInternet",None,None,None,None,None,None,None,None,None),
|
||||
(25,2,"GtkLabel","single-line-mode","True",None,None,None,None,None,None,None,None,None),
|
||||
(25,2,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
|
||||
(25,2,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
|
||||
(25,2,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
|
||||
(25,2,"GtkWidget","width-request","200",None,None,None,None,None,None,None,None,None),
|
||||
(25,3,"GtkButton","has-frame","False",None,None,None,None,None,None,None,None,None),
|
||||
(25,3,"GtkButton","icon-name","document-edit-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(25,3,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
|
||||
(25,3,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
|
||||
(25,4,"GtkButton","has-frame","False",None,None,None,None,None,None,None,None,None),
|
||||
(25,4,"GtkButton","icon-name","user-trash-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(25,4,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(25,4,"GtkWidget","valign","center",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)
|
||||
</object_property>
|
||||
<object_data>
|
||||
(3,42,"GtkWidget",1,1,None,None,None,None,None,None),
|
||||
|
|
Loading…
Reference in a new issue