1
0
Fork 0
mirror of https://github.com/Xetibo/ReSet.git synced 2025-04-14 09:08:33 +02:00

Merge pull request from Xetibo/ina

make wifi entries consistent with other entries
This commit is contained in:
Dashie 2023-12-11 15:36:04 +00:00 committed by GitHub
commit 8d9d5762a9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 109 additions and 204 deletions

View file

@ -6,7 +6,7 @@ description = "A wip universal Linux settings application."
[dependencies]
reset_daemon = "0.4.6"
re_set-lib = "0.6.5"
re_set-lib = "0.6.6"
adw = { version = "0.5.3", package = "libadwaita", features = ["v1_4"] }
dbus = "0.9.7"
gtk = { version = "0.7.3", package = "gtk4", features = ["v4_12"] }

View file

@ -4,18 +4,18 @@ 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::{ButtonExt, WidgetExt};
use adw::prelude::{ActionRowExt, ButtonExt, PreferencesRowExt, WidgetExt};
use dbus::blocking::Connection;
use dbus::{Error, Path};
use glib::subclass::types::ObjectSubclassIsExt;
use glib::{clone, PropertySet};
use gtk::gio;
use gtk::prelude::ListBoxRowExt;
use gtk::{Align, Button, gio, Orientation};
use gtk::prelude::{BoxExt, ListBoxRowExt};
glib::wrapper! {
pub struct SavedWifiEntry(ObjectSubclass<saved_wifi_entry_impl::SavedWifiEntry>)
@extends adw::ActionRow, gtk::Widget,
@implements gtk::Accessible, gtk::Buildable, gtk::Actionable, gtk::ConstraintTarget, gtk::ListBoxRow;
@implements gtk::Accessible, gtk::Buildable, gtk::Actionable, gtk::ConstraintTarget, adw::PreferencesRow, gtk::ListBoxRow;
}
impl SavedWifiEntry {
@ -24,7 +24,24 @@ impl SavedWifiEntry {
entry.set_activatable(false);
let entry_imp = entry.imp();
entry_imp.reset_edit_saved_wifi_button.connect_clicked(
entry.set_title(name);
entry_imp.reset_connection_path.set(path);
let edit_button = Button::builder()
.icon_name("document-edit-symbolic")
.valign(Align::Center)
.build();
let delete_button = Button::builder()
.icon_name("user-trash-symbolic")
.valign(Align::Center)
.build();
let suffix_box = gtk::Box::new(Orientation::Horizontal, 5);
suffix_box.append(&edit_button);
suffix_box.append(&delete_button);
entry.add_suffix(&suffix_box);
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());
@ -32,9 +49,7 @@ impl SavedWifiEntry {
}),
);
entry_imp.reset_saved_wifi_label.set_text(name);
entry_imp.reset_connection_path.set(path);
entry_imp.reset_delete_saved_wifi_button.connect_clicked(
delete_button.connect_clicked(
clone!(@weak entry as entry => move |_| {
delete_connection(entry.imp().reset_connection_path.take());
// TODO handle error

View file

@ -13,12 +13,6 @@ use super::saved_wifi_entry;
#[derive(Default, CompositeTemplate)]
#[template(resource = "/org/Xetibo/ReSet/resetSavedWifiEntry.ui")]
pub struct SavedWifiEntry {
#[template_child]
pub reset_delete_saved_wifi_button: TemplateChild<Button>,
#[template_child]
pub reset_edit_saved_wifi_button: TemplateChild<Button>,
#[template_child]
pub reset_saved_wifi_label: TemplateChild<Label>,
pub reset_connection_path: RefCell<Path<'static>>,
pub access_point: RefCell<AccessPoint>,
}

View file

@ -8,7 +8,7 @@ use crate::components::base::utils::Listeners;
use crate::components::utils::set_combo_row_ellipsis;
use adw::glib;
use adw::glib::Object;
use adw::prelude::{ComboRowExt, ListBoxRowExt, PreferencesGroupExt};
use adw::prelude::{ComboRowExt, ListBoxRowExt, PreferencesGroupExt, PreferencesRowExt};
use adw::subclass::prelude::ObjectSubclassIsExt;
use dbus::blocking::Connection;
use dbus::message::SignalArgs;
@ -17,7 +17,7 @@ use dbus::Path;
use glib::{clone, Cast, PropertySet};
use gtk::glib::Variant;
use gtk::prelude::{ActionableExt, WidgetExt};
use gtk::{gio, StringObject};
use gtk::{gio, StringObject, StringList};
use re_set_lib::network::network_structures::{AccessPoint, WifiDevice, WifiStrength};
use re_set_lib::signals::{AccessPointAdded, WifiDeviceChanged};
use re_set_lib::signals::{AccessPointChanged, AccessPointRemoved};
@ -68,6 +68,9 @@ fn setup_callbacks(listeners: Arc<Listeners>, wifi_box: Arc<WifiBox>) -> Arc<Wif
clone!(@weak imp => @default-return glib::Propagation::Proceed, move |_, value| {
set_wifi_enabled(value);
if !value {
imp.reset_wifi_devices.write().unwrap().clear();
*imp.reset_model_list.write().unwrap() = StringList::new(&[]);
*imp.reset_model_index.write().unwrap() = 0;
let mut map = imp.wifi_entries.lock().unwrap();
for entry in map.iter() {
imp.reset_wifi_list.remove(&*(*entry.1));
@ -377,12 +380,11 @@ pub fn start_event_listener(listeners: Arc<Listeners>, wifi_box: Arc<WifiBox>) {
let name_opt = String::from_utf8(ssid).unwrap_or_else(|_| String::from(""));
let name = name_opt.as_str();
entry_imp.wifi_strength.set(strength);
entry_imp.reset_wifi_label.get().set_text(name);
entry_imp.reset_wifi_encrypted.set_visible(false);
entry.set_title(name);
// TODO handle encryption thing
entry_imp
.reset_wifi_strength
.get()
.borrow()
.set_from_icon_name(match strength {
WifiStrength::Excellent => {
Some("network-wireless-signal-excellent-symbolic")
@ -392,14 +394,14 @@ pub fn start_event_listener(listeners: Arc<Listeners>, wifi_box: Arc<WifiBox>) {
WifiStrength::None => Some("network-wireless-signal-none-symbolic"),
});
if !ir.access_point.stored {
entry_imp.reset_wifi_edit_button.set_sensitive(false);
entry_imp.reset_wifi_edit_button.borrow().set_sensitive(false);
}
if ir.access_point.dbus_path
== imp.reset_current_wifi_device.borrow().active_access_point
{
entry_imp.reset_wifi_connected.set_text("Connected");
entry_imp.reset_wifi_connected.borrow().set_text("Connected");
} else {
entry_imp.reset_wifi_connected.set_text("");
entry_imp.reset_wifi_connected.borrow().set_text("");
}
{
let mut wifi_name = entry_imp.wifi_name.borrow_mut();
@ -430,9 +432,9 @@ pub fn start_event_listener(listeners: Arc<Listeners>, wifi_box: Arc<WifiBox>) {
let mut connected = imp.connected.borrow_mut();
*connected = imp.access_point.borrow().dbus_path == current_device.path;
if *connected {
imp.reset_wifi_connected.set_text("Connected");
imp.reset_wifi_connected.borrow().set_text("Connected");
} else {
imp.reset_wifi_connected.set_text("");
imp.reset_wifi_connected.borrow().set_text("");
}
}
});

View file

@ -1,16 +1,17 @@
use std::ops::Deref;
use std::sync::Arc;
use std::time::Duration;
use crate::components::wifi::utils::get_connection_settings;
use adw::glib;
use adw::glib::{Object, PropertySet};
use adw::prelude::{ActionRowExt, ButtonExt, EditableExt, PopoverExt};
use adw::prelude::{ActionRowExt, ButtonExt, EditableExt, PopoverExt, PreferencesRowExt};
use adw::subclass::prelude::ObjectSubclassIsExt;
use dbus::blocking::Connection;
use dbus::Error;
use glib::clone;
use gtk::gio;
use gtk::prelude::{ListBoxRowExt, WidgetExt};
use gtk::{Align, Button, gio, Image, Orientation};
use gtk::prelude::{BoxExt, ListBoxRowExt, WidgetExt};
use re_set_lib::network::network_structures::{AccessPoint, WifiStrength};
use crate::components::wifi::wifi_box_impl::WifiBox;
@ -20,7 +21,7 @@ use crate::components::wifi::wifi_options::WifiOptions;
glib::wrapper! {
pub struct WifiEntry(ObjectSubclass<wifi_entry_impl::WifiEntry>)
@extends adw::ActionRow, gtk::Widget,
@implements gtk::Accessible, gtk::Buildable, gtk::Actionable, gtk::ConstraintTarget, gtk::ListBoxRow;
@implements gtk::Accessible, gtk::Buildable, gtk::Actionable, gtk::ConstraintTarget, adw::PreferencesRow, gtk::ListBoxRow;
}
unsafe impl Send for WifiEntry {}
@ -37,24 +38,41 @@ impl WifiEntry {
let name_opt = String::from_utf8(ssid).unwrap_or_else(|_| String::from(""));
let name = name_opt.as_str();
entry_imp.wifi_strength.set(strength);
entry_imp.reset_wifi_label.get().set_text(name);
entry_imp.reset_wifi_encrypted.set_visible(false);
entry.set_title(name);
entry_imp.connected.set(connected);
entry_imp.reset_wifi_edit_button.replace(Button::builder()
.icon_name("document-edit-symbolic")
.valign(Align::Center)
.build());
// TODO handle encryption thing
entry_imp
.reset_wifi_strength
.get()
.set_from_icon_name(match strength {
WifiStrength::Excellent => Some("network-wireless-signal-excellent-symbolic"),
WifiStrength::Ok => Some("network-wireless-signal-ok-symbolic"),
WifiStrength::Weak => Some("network-wireless-signal-weak-symbolic"),
WifiStrength::None => Some("network-wireless-signal-none-symbolic"),
});
let wifi_strength = Image::builder().icon_name(match strength {
WifiStrength::Excellent => "network-wireless-signal-excellent-symbolic",
WifiStrength::Ok => "network-wireless-signal-ok-symbolic",
WifiStrength::Weak => "network-wireless-signal-weak-symbolic",
WifiStrength::None => "network-wireless-signal-none-symbolic",
}).build();
let prefix_box = gtk::Box::new(Orientation::Horizontal, 0);
prefix_box.append(&wifi_strength);
prefix_box.append(&Image::builder()
.icon_name("system-lock-screen-symbolic")
.valign(Align::End)
.pixel_size(9)
.margin_bottom(12)
.build());
entry.add_prefix(&prefix_box);
let suffix_box = gtk::Box::new(Orientation::Horizontal, 5);
suffix_box.append(entry_imp.reset_wifi_connected.borrow().deref());
suffix_box.append(entry_imp.reset_wifi_edit_button.borrow().deref());
entry.add_suffix(&suffix_box);
if !access_point.stored {
entry_imp.reset_wifi_edit_button.set_sensitive(false);
entry_imp.reset_wifi_edit_button.borrow().set_sensitive(false);
}
if connected {
entry_imp.reset_wifi_connected.set_text("Connected");
entry_imp.reset_wifi_connected.borrow().set_text("Connected");
}
{
let mut wifi_name = entry_imp.wifi_name.borrow_mut();
@ -79,7 +97,7 @@ impl WifiEntry {
pub fn setup_callbacks(&self, wifi_box: &WifiBox) {
let self_imp = self.imp();
self_imp.reset_wifi_edit_button.connect_clicked(clone!(@ weak self_imp, @ weak wifi_box => move |_| {
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()));
}));
@ -106,7 +124,7 @@ pub fn click_disconnect(entry: Arc<WifiEntry>) {
imp.connected.replace(false);
return;
}
imp.reset_wifi_connected.set_text("");
imp.reset_wifi_connected.borrow().set_text("");
imp.connected.replace(false);
glib::spawn_future(async move {
glib::idle_add_once(move || {
@ -146,7 +164,7 @@ pub fn click_stored_network(entry: Arc<WifiEntry>) {
return;
}
let imp = entry_ref.imp();
imp.reset_wifi_connected.set_text("Connected");
imp.reset_wifi_connected.borrow().set_text("Connected");
imp.connected.replace(true);
});
});
@ -198,8 +216,8 @@ pub fn click_new_network(entry: Arc<WifiEntry>) {
}
let imp = entry_ref.imp();
imp.reset_wifi_popup.popdown();
imp.reset_wifi_edit_button.set_sensitive(true);
imp.reset_wifi_connected.set_text("Connected");
imp.reset_wifi_edit_button.borrow().set_sensitive(true);
imp.reset_wifi_connected.borrow().set_text("Connected");
imp.connected.replace(true);
});
});

View file

@ -11,18 +11,12 @@ use std::cell::RefCell;
#[derive(Default, CompositeTemplate)]
#[template(resource = "/org/Xetibo/ReSet/resetWifiEntry.ui")]
pub struct WifiEntry {
#[template_child]
pub reset_wifi_strength: TemplateChild<Image>,
#[template_child]
pub reset_wifi_encrypted: TemplateChild<Image>,
#[template_child]
pub reset_wifi_label: TemplateChild<Label>,
#[template_child]
pub reset_wifi_edit_button: TemplateChild<Button>,
#[template_child]
pub reset_wifi_connected: TemplateChild<Label>,
#[template_child]
pub reset_wifi_popup: TemplateChild<Popup>,
pub reset_wifi_strength: RefCell<Image>,
pub reset_wifi_encrypted: RefCell<Image>,
pub reset_wifi_connected: RefCell<Label>,
pub reset_wifi_edit_button: RefCell<Button>,
pub wifi_name: RefCell<String>,
pub wifi_strength: RefCell<WifiStrength>,
pub access_point: RefCell<AccessPoint>,

View file

@ -1,3 +1,4 @@
use std::collections::HashMap;
use std::net::{Ipv4Addr, Ipv6Addr};
use std::str::FromStr;
use std::sync::Arc;
@ -375,7 +376,7 @@ fn setup_callbacks(wifi_options: &Arc<WifiOptions>, path: Path<'static>) {
}));
}
fn set_connection_settings(path: Path<'static>, prop: PropMap) {
fn set_connection_settings(path: Path<'static>, prop: HashMap<String, PropMap>) {
gio::spawn_blocking(move || {
let conn = dbus::blocking::Connection::new_session().unwrap();
let proxy = conn.with_proxy(

View file

@ -1,40 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.17.0 -->
<interface>
<requires lib="gtk" version="4.12"/>
<requires lib="libadwaita" version="1.0"/>
<template class="resetSavedWifiEntry" parent="AdwActionRow">
<property name="activatable">False</property>
<property name="child">
<object class="GtkBox">
<child>
<object class="GtkLabel" id="reset_saved_wifi_label">
<property name="ellipsize">end</property>
<property name="hexpand">True</property>
<property name="label">LoremIpsumInternet</property>
<property name="margin-end">10</property>
<property name="single-line-mode">True</property>
<property name="width-request">200</property>
<property name="xalign">0.0</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset_edit_saved_wifi_button">
<property name="halign">end</property>
<property name="has-frame">False</property>
<property name="hexpand">True</property>
<property name="icon-name">document-edit-symbolic</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset_delete_saved_wifi_button">
<property name="halign">start</property>
<property name="has-frame">False</property>
<property name="icon-name">user-trash-symbolic</property>
<property name="valign">center</property>
</object>
</child>
</object>
</property>
</template>
</interface>

View file

@ -21,7 +21,8 @@
(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)
(23,1,None,"resetWifiRouteEntry.ui",None,None,None,None,None,None,None),
(25,None,None,None,None,None,None,None,None,None,None)
</ui>
<ui_library>
(21,"gtk","4.12",None),
@ -70,14 +71,7 @@
(4,207,"GtkImage",None,206,None,None,None,None,None),
(4,208,"AdwPreferencesGroup","reset_wifi_list",154,None,None,None,1,None),
(5,12,"AdwActionRow","resetWifiEntry",None,None,None,None,-1,None),
(5,13,"GtkBox",None,12,None,None,None,None,None),
(5,14,"GtkBox",None,13,None,None,None,None,None),
(5,15,"GtkImage","reset_wifi_strength",14,None,None,None,None,None),
(5,16,"GtkImage","reset_wifi_encrypted",14,None,None,None,1,None),
(5,18,"GtkLabel","reset_wifi_label",13,None,None,None,1,None),
(5,20,"GtkButton","reset_wifi_edit_button",13,None,None,None,3,None),
(5,21,"resetPopup","reset_wifi_popup",13,None,None,None,4,None),
(5,22,"GtkLabel","reset_wifi_connected",13,None,None,None,2,None),
(5,13,"resetPopup","reset_wifi_popup",12,None,None,None,None,None),
(6,1,"GtkListBoxRow","resetSidebarEntry",None,None,None,None,None,None),
(6,2,"GtkBox",None,1,None,None,None,-1,None),
(6,6,"GtkImage","reset_sidebar_image",2,None,None,None,None,None),
@ -213,10 +207,6 @@
(16,12,"GtkButton","reset_popup_button",10,None,None,None,1,None),
(16,13,"GtkLabel","reset_popup_label",7,None,None,None,None,None),
(17,5,"AdwActionRow","resetSavedWifiEntry",None,None,None,None,None,None),
(17,7,"GtkBox",None,5,None,None,None,None,None),
(17,11,"GtkLabel","reset_saved_wifi_label",7,None,None,None,None,None),
(17,12,"GtkButton","reset_delete_saved_wifi_button",7,None,None,None,2,None),
(17,14,"GtkButton","reset_edit_saved_wifi_button",7,None,None,None,1,None),
(18,13,"AdwPreferencesGroup","resetSinkEntry",None,None,None,None,None,None),
(18,14,"AdwActionRow","reset_sink_name",13,None,None,None,None,None),
(18,15,"GtkCheckButton","reset_selected_sink",14,None,None,None,None,None),
@ -307,7 +297,11 @@
(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)
(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)
</object>
<object_property>
(3,1,"GtkWidget","height-request","200",None,None,None,None,None,None,None,None,None),
@ -398,32 +392,6 @@
(4,207,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(4,208,"AdwPreferencesGroup","title","Available networks",None,None,None,None,None,None,None,None,None),
(4,208,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(5,12,"GtkListBoxRow","child",None,None,None,None,None,13,None,None,None,None),
(5,13,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(5,14,"GtkWidget","width-request","35",None,None,None,None,None,None,None,None,None),
(5,15,"GtkImage","icon-name","network-wireless-signal-excellent-symbolic",None,None,None,None,None,None,None,None,None),
(5,16,"GtkImage","icon-name","system-lock-screen-symbolic",None,None,None,None,None,None,None,None,None),
(5,16,"GtkImage","pixel-size","9",None,None,None,None,None,None,None,None,None),
(5,16,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(5,16,"GtkWidget","margin-bottom","6",None,None,None,None,None,None,None,None,None),
(5,16,"GtkWidget","valign","end",None,None,None,None,None,None,None,None,None),
(5,18,"GtkLabel","ellipsize","end",None,None,None,None,None,None,None,None,None),
(5,18,"GtkLabel","label","LoremIpsumInternet",None,None,None,None,None,None,None,None,None),
(5,18,"GtkLabel","single-line-mode","True",None,None,None,None,None,None,None,None,None),
(5,18,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
(5,18,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(5,18,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(5,18,"GtkWidget","width-request","200",None,None,None,None,None,None,None,None,None),
(5,20,"GtkButton","has-frame","False",None,None,None,None,None,None,None,None,None),
(5,20,"GtkButton","icon-name","document-edit-symbolic",None,None,None,None,None,None,None,None,None),
(5,20,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(5,20,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(5,22,"GtkLabel","justify","right",None,None,None,None,None,None,None,None,None),
(5,22,"GtkLabel","single-line-mode","True",None,None,None,None,None,None,None,None,None),
(5,22,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
(5,22,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(5,22,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(5,22,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(6,1,"GtkListBoxRow","child",None,None,None,None,None,2,None,None,None,None),
(6,1,"GtkWidget","css-classes","resetSidebarEntry",None,None,None,None,None,None,None,None,None),
(6,1,"GtkWidget","margin-bottom","2",None,None,None,None,None,None,None,None,None),
@ -733,22 +701,6 @@
(16,12,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(16,13,"GtkWidget","visible","False",None,None,None,None,None,None,None,None,None),
(17,5,"GtkListBoxRow","activatable","False",None,None,None,None,None,None,None,None,None),
(17,5,"GtkListBoxRow","child",None,None,None,None,None,7,None,None,None,None),
(17,11,"GtkLabel","ellipsize","end",None,None,None,None,None,None,None,None,None),
(17,11,"GtkLabel","label","LoremIpsumInternet",None,None,None,None,None,None,None,None,None),
(17,11,"GtkLabel","single-line-mode","True",None,None,None,None,None,None,None,None,None),
(17,11,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
(17,11,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(17,11,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(17,11,"GtkWidget","width-request","200",None,None,None,None,None,None,None,None,None),
(17,12,"GtkButton","has-frame","False",None,None,None,None,None,None,None,None,None),
(17,12,"GtkButton","icon-name","user-trash-symbolic",None,None,None,None,None,None,None,None,None),
(17,12,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(17,12,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(17,14,"GtkButton","has-frame","False",None,None,None,None,None,None,None,None,None),
(17,14,"GtkButton","icon-name","document-edit-symbolic",None,None,None,None,None,None,None,None,None),
(17,14,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(17,14,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(18,14,"AdwActionRow","title-lines","3",None,None,None,None,None,None,None,None,None),
(18,14,"AdwPreferencesRow","title","aaaaaaaaaaaaaaa",None,None,None,None,None,None,None,None,None),
(18,14,"GtkWidget","css-classes","audioRow",None,None,None,None,None,None,None,None,None),
@ -898,7 +850,22 @@
(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)
(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)
</object_property>
<object_data>
(3,42,"GtkWidget",1,1,None,None,None,None,None,None),

View file

@ -1,64 +1,10 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.17.0 -->
<interface>
<requires lib="gtk" version="4.12"/>
<requires lib="libadwaita" version="1.0"/>
<template class="resetWifiEntry" parent="AdwActionRow">
<property name="child">
<object class="GtkBox">
<property name="margin-start">5</property>
<child>
<object class="GtkBox">
<property name="width-request">35</property>
<child>
<object class="GtkImage" id="reset_wifi_strength">
<property name="icon-name">network-wireless-signal-excellent-symbolic</property>
</object>
</child>
<child>
<object class="GtkImage" id="reset_wifi_encrypted">
<property name="halign">start</property>
<property name="icon-name">system-lock-screen-symbolic</property>
<property name="margin-bottom">6</property>
<property name="pixel-size">9</property>
<property name="valign">end</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkLabel" id="reset_wifi_label">
<property name="ellipsize">end</property>
<property name="hexpand">True</property>
<property name="label">LoremIpsumInternet</property>
<property name="margin-end">10</property>
<property name="single-line-mode">True</property>
<property name="width-request">200</property>
<property name="xalign">0.0</property>
</object>
</child>
<child>
<object class="GtkLabel" id="reset_wifi_connected">
<property name="halign">end</property>
<property name="hexpand">True</property>
<property name="justify">right</property>
<property name="margin-end">10</property>
<property name="single-line-mode">True</property>
<property name="xalign">0.0</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset_wifi_edit_button">
<property name="halign">start</property>
<property name="has-frame">False</property>
<property name="icon-name">document-edit-symbolic</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="resetPopup" id="reset_wifi_popup"/>
</child>
</object>
</property>
<child>
<object class="resetPopup" id="reset_wifi_popup"/>
</child>
</template>
</interface>