Add Wifi Options (UI only)

This commit is contained in:
takotori 2023-11-20 17:52:07 +01:00
parent 5311bb8c4c
commit ed7b814e62
15 changed files with 702 additions and 447 deletions

View file

@ -6,7 +6,7 @@ description = "A wip universal Linux settings application."
[dependencies]
reset_daemon = "0.1.9"
ReSet-Lib = "0.3.5"
ReSet-Lib = "0.3.8"
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

@ -7,3 +7,7 @@ pub mod wifiEntry;
pub mod wifiEntryImpl;
pub mod wifiOptions;
pub mod wifiOptionsImpl;
pub mod wifiAddressEntry;
pub mod wifiAddressEntryImpl;
pub mod wifiRouteEntry;
pub mod wifiRouteEntryImpl;

View file

@ -0,0 +1,34 @@
use adw::glib;
use adw::glib::Object;
use adw::prelude::PreferencesRowExt;
use glib::subclass::prelude::ObjectSubclassIsExt;
use gtk::prelude::EditableExt;
use ReSet_Lib::network::connection::Address;
use crate::components::wifi::wifiAddressEntryImpl;
use crate::components::wifi::wifiOptions::getValueFromKey;
glib::wrapper! {
pub struct WifiAddressEntry(ObjectSubclass<wifiAddressEntryImpl::WifiAddressEntryImpl>)
@extends gtk::Box, gtk::Widget,
@implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Orientable;
}
impl WifiAddressEntry {
pub fn new(address: Option<&Address>) -> Self {
let entry: WifiAddressEntry = Object::builder().build();
if let Some(address) = address {
let entryImp = entry.imp();
let map = address.to_map();
let addr = getValueFromKey(&map, "address");
let prefix = getValueFromKey(&map, "prefix-length");
entryImp.resetAddressAddress.set_text(&*addr);
entryImp.resetAddressNetmask.set_text(&*prefix);
entryImp.resetAddressRow.set_title(&*format!("{}, {}", addr, prefix));
}
entry
}
}

View file

@ -0,0 +1,47 @@
use adw::{EntryRow, ExpanderRow};
use crate::components::wifi::{wifiAddressEntry};
use gtk::subclass::prelude::*;
use gtk::{glib, CompositeTemplate, Button};
#[allow(non_snake_case)]
#[derive(Default, CompositeTemplate)]
#[template(resource = "/org/Xetibo/ReSet/resetWifiAddressEntry.ui")]
pub struct WifiAddressEntryImpl {
#[template_child]
pub resetAddressRow: TemplateChild<ExpanderRow>,
#[template_child]
pub resetAddressAddress: TemplateChild<EntryRow>,
#[template_child]
pub resetAddressNetmask: TemplateChild<EntryRow>,
#[template_child]
pub resetAddressRemove: TemplateChild<Button>,
}
#[glib::object_subclass]
impl ObjectSubclass for WifiAddressEntryImpl {
const NAME: &'static str = "resetWifiAddressEntry";
type Type = wifiAddressEntry::WifiAddressEntry;
type ParentType = gtk::Box;
fn class_init(klass: &mut Self::Class) {
klass.bind_template();
}
fn instance_init(obj: &glib::subclass::InitializingObject<Self>) {
obj.init_template();
}
}
impl ObjectImpl for WifiAddressEntryImpl {
fn constructed(&self) {
self.parent_constructed();
}
}
impl BoxImpl for WifiAddressEntryImpl {}
impl WidgetImpl for WifiAddressEntryImpl {}
impl WindowImpl for WifiAddressEntryImpl {}
impl ApplicationWindowImpl for WifiAddressEntryImpl {}

View file

@ -1,4 +1,5 @@
use std::collections::HashMap;
use std::net::Shutdown::Read;
use std::sync::atomic::Ordering;
use std::sync::mpsc::{channel, Receiver, Sender};
use std::sync::Arc;
@ -214,7 +215,7 @@ pub fn get_stored_connections() -> Vec<(Path<'static>, Vec<u8>)> {
connections
}
pub fn getConnectionSettings(path: Path<'static>) -> Option<ResetConnection> {
pub fn getConnectionSettings(path: Path<'static>) -> ResetConnection {
let conn = Connection::new_session().unwrap();
let proxy = conn.with_proxy(
"org.xetibo.ReSet",
@ -226,14 +227,14 @@ pub fn getConnectionSettings(path: Path<'static>) -> Option<ResetConnection> {
Error,
> = proxy.method_call("org.xetibo.ReSet", "GetConnectionSettings", (path,));
if res.is_err() {
return None;
ResetConnection::default();
}
let (res,) = res.unwrap();
let res = ResetConnection::convert_from_propmap(res);
if res.is_err() {
return None;
ResetConnection::default();
}
Some(res.unwrap())
res.unwrap()
}
// temporary, testing this with lib is pain

View file

@ -86,7 +86,7 @@ impl WifiEntry {
let selfImp = self.imp();
selfImp.resetWifiEditButton.connect_clicked(clone!(@ weak selfImp, @ weak wifiBox => move |_| {
let _option = getConnectionSettings(selfImp.accessPoint.borrow().associated_connection.clone());
wifiBox.resetWifiNavigation.push(&WifiOptions::new(_option));
wifiBox.resetWifiNavigation.push(&*WifiOptions::new(_option));
}));
}
}

View file

@ -1,9 +1,17 @@
use std::sync::Arc;
use adw::glib;
use adw::glib::Object;
use adw::prelude::{ActionRowExt, ComboRowExt, PreferencesGroupExt};
use adw::subclass::prelude::ObjectSubclassIsExt;
use glib::PropertySet;
use ReSet_Lib::network::connection::Connection;
use crate::components::wifi::{wifiOptionsImpl};
use dbus::arg::PropMap;
use glib::{PropertySet, Cast, ObjectExt, clone};
use gtk::prelude::{EditableExt, WidgetExt};
use ReSet_Lib::network::connection::{Connection, Enum};
use crate::components::wifi::wifiAddressEntry::WifiAddressEntry;
use crate::components::wifi::wifiOptionsImpl;
use crate::components::wifi::wifiRouteEntry::WifiRouteEntry;
glib::wrapper! {
pub struct WifiOptions(ObjectSubclass<wifiOptionsImpl::WifiOptions>)
@ -12,10 +20,151 @@ glib::wrapper! {
}
impl WifiOptions {
pub fn new(option: Option<Connection>) -> Self {
let wifiOption: WifiOptions = Object::builder().build();
wifiOption.imp().options.set(option);
wifiOption
pub fn new(connection: Connection) -> Arc<Self> {
let wifiOption: Arc<WifiOptions> = Arc::new(Object::builder().build());
wifiOption.imp().connection.set(connection);
wifiOption.initializeUI();
setupCallbacks(wifiOption)
}
pub fn initializeUI(&self) {
let selfImp = self.imp();
let conn = selfImp.connection.borrow();
// General
selfImp.resetWifiName.set_subtitle(&*conn.settings.name);
selfImp.resetWifiAutoConnect.set_active(conn.settings.autoconnect);
selfImp.resetWifiMetered.set_active(if conn.settings.metered != -1 { true } else { false });
// IPv4
selfImp.resetIP4Method.set_selected(conn.ipv4.dns_method.to_i32() as u32);
self.setIP4Visibility(conn.ipv4.dns_method.to_i32() as u32);
let ipv4Dns: Vec<String> = conn.ipv4.dns.iter()
.map(|addr| {
addr.iter()
.map(|octet| octet.to_string())
.collect::<Vec<String>>()
.join(".")
})
.collect();
selfImp.resetIP4DNS.set_text(&*ipv4Dns.join(", "));
selfImp.resetIP4Gateway.set_text(&*conn.ipv4.gateway);
if conn.ipv4.address_data.is_empty() {
selfImp.resetIP4AddressGroup.add(&WifiAddressEntry::new(None))
} else {
for address in conn.ipv4.address_data.iter() {
selfImp.resetIP4AddressGroup.add(&WifiAddressEntry::new(Some(address)))
}
}
if conn.ipv4.route_data.is_empty() {
selfImp.resetIP4RoutesGroup.add(&WifiRouteEntry::new(None))
} else {
for address in conn.ipv4.route_data.iter() {
selfImp.resetIP4RoutesGroup.add(&WifiRouteEntry::new(Some(address)))
}
}
// IPv6
selfImp.resetIP6Method.set_selected(conn.ipv6.dns_method.to_i32() as u32);
self.setIP6Visibility(conn.ipv6.dns_method.to_i32() as u32);
let ipv6Dns: Vec<String> = conn.ipv6.dns.iter()
.map(|addr| {
addr.iter()
.map(|octet| octet.to_string())
.collect::<Vec<String>>()
.join(":")
})
.collect();
selfImp.resetIP6DNS.set_text(&*ipv6Dns.join(", "));
selfImp.resetIP6Gateway.set_text(&*conn.ipv6.gateway);
if conn.ipv6.address_data.is_empty() {
selfImp.resetIP6AddressGroup.add(&WifiAddressEntry::new(None))
} else {
for address in conn.ipv6.address_data.iter() {
selfImp.resetIP6AddressGroup.add(&WifiAddressEntry::new(Some(address)))
}
}
if conn.ipv6.route_data.is_empty() {
selfImp.resetIP6RoutesGroup.add(&WifiRouteEntry::new(None))
} else {
for address in conn.ipv6.route_data.iter() {
selfImp.resetIP6RoutesGroup.add(&WifiRouteEntry::new(Some(address)))
}
}
// Security
dbg!(conn);
}
pub fn setIP4Visibility(&self, method: u32) {
let selfImp = self.imp();
match method {
0 => { // auto
selfImp.resetIP4AddressGroup.set_visible(false);
selfImp.resetIP4RoutesGroup.set_visible(true);
selfImp.resetIP4Gateway.set_visible(false);
}
1 => { // manual
selfImp.resetIP4AddressGroup.set_visible(true);
selfImp.resetIP4RoutesGroup.set_visible(true);
selfImp.resetIP4Gateway.set_visible(true);
}
_ => {
selfImp.resetIP4AddressGroup.set_visible(false);
selfImp.resetIP4RoutesGroup.set_visible(false);
selfImp.resetIP4Gateway.set_visible(false);
}
}
}
pub fn setIP6Visibility(&self, method: u32) {
let selfImp = self.imp();
match method {
0 | 1 => { // auto, dhcp
selfImp.resetIP6AddressGroup.set_visible(false);
selfImp.resetIP6RoutesGroup.set_visible(true);
selfImp.resetIP6Gateway.set_visible(false);
}
2 => { // manual
selfImp.resetIP6AddressGroup.set_visible(true);
selfImp.resetIP6RoutesGroup.set_visible(true);
selfImp.resetIP6Gateway.set_visible(true);
}
_ => {
selfImp.resetIP6AddressGroup.set_visible(false);
selfImp.resetIP6RoutesGroup.set_visible(false);
selfImp.resetIP6Gateway.set_visible(false);
}
}
}
}
fn setupCallbacks(wifiOptions: Arc<WifiOptions>) -> Arc<WifiOptions> {
let imp = wifiOptions.imp();
let wifiOptionsRef = wifiOptions.clone();
let wifiOptionsRef2 = wifiOptions.clone();
imp.resetIP4Method.connect_selected_notify(move |dropdown| {
let selected = dropdown.selected();
wifiOptionsRef.setIP4Visibility(selected);
});
imp.resetIP6Method.connect_selected_notify(move |dropdown| {
let selected = dropdown.selected();
wifiOptionsRef2.setIP6Visibility(selected);
});
wifiOptions
}
pub fn getValueFromKey(map: &PropMap, key: &str) -> String {
map.get(key)
.map_or_else(|| "".to_string(),
|value| value.0
.as_str()
.unwrap_or_default()
.trim()
.to_string())
}

View file

@ -1,5 +1,6 @@
use std::cell::RefCell;
use adw::NavigationPage;
use std::rc::Rc;
use adw::{ActionRow, ComboRow, EntryRow, NavigationPage, PreferencesGroup, SwitchRow};
use adw::subclass::prelude::NavigationPageImpl;
use crate::components::wifi::{wifiOptions};
use gtk::subclass::prelude::*;
@ -10,7 +11,40 @@ use ReSet_Lib::network::connection::Connection;
#[derive(Default, CompositeTemplate)]
#[template(resource = "/org/Xetibo/ReSet/resetWifiOptions.ui")]
pub struct WifiOptions {
pub options: RefCell<Option<Connection>> // Option<Rc<RefCell<Connection>>>
// General
#[template_child]
pub resetWifiName: TemplateChild<ActionRow>,
#[template_child]
pub resetWifiMac: TemplateChild<ActionRow>,
#[template_child]
pub resetWifiAutoConnect: TemplateChild<SwitchRow>,
#[template_child]
pub resetWifiMetered: TemplateChild<SwitchRow>,
// IPv4
#[template_child]
pub resetIP4Method: TemplateChild<ComboRow>,
#[template_child]
pub resetIP4DNS: TemplateChild<EntryRow>,
#[template_child]
pub resetIP4Gateway: TemplateChild<EntryRow>,
#[template_child]
pub resetIP4AddressGroup: TemplateChild<PreferencesGroup>,
#[template_child]
pub resetIP4RoutesGroup: TemplateChild<PreferencesGroup>,
// IPv6
#[template_child]
pub resetIP6Method: TemplateChild<ComboRow>,
#[template_child]
pub resetIP6DNS: TemplateChild<EntryRow>,
#[template_child]
pub resetIP6Gateway: TemplateChild<EntryRow>,
#[template_child]
pub resetIP6AddressGroup: TemplateChild<PreferencesGroup>,
#[template_child]
pub resetIP6RoutesGroup: TemplateChild<PreferencesGroup>,
// Security
// Misc
pub connection: Rc<RefCell<Connection>>
}
#[glib::object_subclass]

View file

@ -0,0 +1,38 @@
use adw::glib;
use adw::glib::Object;
use adw::prelude::PreferencesRowExt;
use glib::subclass::prelude::ObjectSubclassIsExt;
use gtk::prelude::EditableExt;
use ReSet_Lib::network::connection::Address;
use crate::components::wifi::wifiOptions::getValueFromKey;
use crate::components::wifi::wifiRouteEntryImpl;
glib::wrapper! {
pub struct WifiRouteEntry(ObjectSubclass<wifiRouteEntryImpl::WifiRouteEntryImpl>)
@extends gtk::Box, gtk::Widget,
@implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Orientable;
}
impl WifiRouteEntry {
pub fn new(address: Option<&Address>) -> Self {
let entry: WifiRouteEntry = Object::builder().build();
if let Some(address) = address {
let entryImp = entry.imp();
let map = address.to_map();
let addr = getValueFromKey(&map, "address");
let prefix = getValueFromKey(&map, "prefix-length");
let gateway = getValueFromKey(&map, "gateway");
let metric = getValueFromKey(&map, "metric");
entryImp.resetRouteAddress.set_text(&*addr);
entryImp.resetRouteNetmask.set_text(&*prefix);
entryImp.resetRouteGateway.set_text(&*gateway);
entryImp.resetRouteMetric.set_text(&*metric);
entryImp.resetRouteRow.set_title(&*format!("{}, {}, {}, {}", addr, prefix, gateway, metric));
}
entry
}
}

View file

@ -0,0 +1,51 @@
use adw::{EntryRow, ExpanderRow};
use crate::components::wifi::wifiRouteEntry;
use gtk::subclass::prelude::*;
use gtk::{glib, CompositeTemplate, Button};
#[allow(non_snake_case)]
#[derive(Default, CompositeTemplate)]
#[template(resource = "/org/Xetibo/ReSet/resetWifiRouteEntry.ui")]
pub struct WifiRouteEntryImpl {
#[template_child]
pub resetRouteRow: TemplateChild<ExpanderRow>,
#[template_child]
pub resetRouteAddress: TemplateChild<EntryRow>,
#[template_child]
pub resetRouteNetmask: TemplateChild<EntryRow>,
#[template_child]
pub resetRouteGateway: TemplateChild<EntryRow>,
#[template_child]
pub resetRouteMetric: TemplateChild<EntryRow>,
#[template_child]
pub resetRouteRemove: TemplateChild<Button>,
}
#[glib::object_subclass]
impl ObjectSubclass for WifiRouteEntryImpl {
const NAME: &'static str = "resetWifiRouteEntry";
type Type = wifiRouteEntry::WifiRouteEntry;
type ParentType = gtk::Box;
fn class_init(klass: &mut Self::Class) {
klass.bind_template();
}
fn instance_init(obj: &glib::subclass::InitializingObject<Self>) {
obj.init_template();
}
}
impl ObjectImpl for WifiRouteEntryImpl {
fn constructed(&self) {
self.parent_constructed();
}
}
impl BoxImpl for WifiRouteEntryImpl {}
impl WidgetImpl for WifiRouteEntryImpl {}
impl WindowImpl for WifiRouteEntryImpl {}
impl ApplicationWindowImpl for WifiRouteEntryImpl {}

View file

@ -18,8 +18,10 @@
(17,1,None,"resetSavedWifiEntry.ui",None,None,None,None,None,None,None),
(18,1,None,"resetSinkEntry.ui",None,None,None,None,None,None,None),
(19,1,None,"resetSourceEntry.ui",None,None,None,None,None,None,None),
(20,8,None,"resetWifiOptions.ui",None,None,None,None,None,None,None)
(20,8,None,"resetWifiOptions.ui",None,None,None,None,None,None,None),
(21,1,None,"resetCardEntry.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)
</ui>
<object>
(3,1,"AdwApplicationWindow","resetUI",None,None,None,None,-1," &lt;child&gt;\n &lt;object id=\"resetSidebarBreakpoint\" class=\"AdwBreakpoint\"&gt;\n &lt;/object&gt;\n &lt;/child&gt;"),
@ -285,95 +287,72 @@
(20,18,"GtkLabel",None,9,None,"tab",None,5,None),
(20,19,"GtkLabel",None,9,None,"tab",None,7,None),
(20,29,"AdwPreferencesGroup",None,10,None,None,None,-1,None),
(20,30,"AdwActionRow",None,29,None,None,None,None,None),
(20,31,"AdwActionRow",None,29,None,None,None,1,None),
(20,32,"AdwActionRow",None,29,None,None,None,2,None),
(20,37,"AdwSwitchRow",None,29,None,None,None,3,None),
(20,38,"AdwSwitchRow",None,29,None,None,None,4,None),
(20,30,"AdwActionRow","resetWifiName",29,None,None,None,None,None),
(20,32,"AdwActionRow","resetWifiMac",29,None,None,None,2,None),
(20,37,"AdwSwitchRow","resetWifiAutoConnect",29,None,None,None,3,None),
(20,38,"AdwSwitchRow","resetWifiMetered",29,None,None,None,4,None),
(20,137,"AdwPreferencesGroup",None,15,None,None,None,None,None),
(20,138,"AdwComboRow",None,137,None,None,None,None,None),
(20,138,"AdwComboRow","resetIP6Method",137,None,None,None,None,None),
(20,139,"GtkStringList",None,138,None,None,None,None,None),
(20,140,"AdwPreferencesGroup",None,15,None,None,None,1,None),
(20,141,"GtkListBoxRow",None,140,None,None,None,None,None),
(20,142,"GtkBox",None,141,None,None,None,None,None),
(20,143,"GtkEntry",None,142,None,None,None,None,None),
(20,144,"GtkSeparator",None,142,None,None,None,1,None),
(20,145,"GtkEntry",None,142,None,None,None,2,None),
(20,146,"GtkSeparator",None,142,None,None,None,3,None),
(20,147,"GtkEntry",None,142,None,None,None,4,None),
(20,148,"GtkSeparator",None,142,None,None,None,5,None),
(20,149,"GtkButton",None,142,None,None,None,6,None),
(20,150,"AdwPreferencesGroup",None,15,None,None,None,2,None),
(20,151,"GtkListBoxRow",None,150,None,None,None,None,None),
(20,152,"GtkBox",None,151,None,None,None,None,None),
(20,153,"GtkEntry",None,152,None,None,None,None,None),
(20,154,"GtkLabel",None,152,None,None,None,1,None),
(20,155,"AdwPreferencesGroup",None,15,None,None,None,3,None),
(20,156,"GtkListBoxRow",None,155,None,None,None,None,None),
(20,157,"GtkBox",None,156,None,None,None,None,None),
(20,158,"GtkEntry",None,157,None,None,None,None,None),
(20,159,"GtkSeparator",None,157,None,None,None,1,None),
(20,160,"GtkEntry",None,157,None,None,None,2,None),
(20,161,"GtkSeparator",None,157,None,None,None,3,None),
(20,162,"GtkEntry",None,157,None,None,None,4,None),
(20,163,"GtkSeparator",None,157,None,None,None,5,None),
(20,164,"GtkEntry",None,157,None,None,None,6,None),
(20,165,"GtkSeparator",None,157,None,None,None,7,None),
(20,166,"GtkButton",None,157,None,None,None,8,None),
(20,140,"AdwPreferencesGroup","resetIP6AddressGroup",15,None,None,None,1,None),
(20,155,"AdwPreferencesGroup","resetIP6RoutesGroup",15,None,None,None,2,None),
(20,182,"AdwPreferencesGroup",None,16,None,None,None,None,None),
(20,183,"AdwComboRow",None,182,None,None,None,None,None),
(20,184,"GtkStringList",None,183,None,None,None,None,None),
(20,185,"AdwPasswordEntryRow",None,182,None,None,None,1,None),
(20,186,"GtkBox",None,155,None,None,None,-1,None),
(20,187,"GtkLabel",None,186,None,None,None,None,None),
(20,188,"GtkSwitch",None,186,None,None,None,1,None),
(20,189,"GtkBox",None,150,None,None,None,-1,None),
(20,190,"GtkLabel",None,189,None,None,None,None,None),
(20,191,"GtkSwitch",None,189,None,None,None,1,None),
(20,185,"AdwPasswordEntryRow",None,182,None,None,None,2,None),
(20,192,"GtkBox",None,9,None,None,None,2,None),
(20,193,"AdwPreferencesGroup",None,192,None,None,None,None,None),
(20,194,"AdwComboRow",None,193,None,None,None,None,None),
(20,194,"AdwComboRow","resetIP4Method",193,None,None,None,None,None),
(20,195,"GtkStringList",None,194,None,None,None,None,None),
(20,196,"AdwPreferencesGroup",None,192,None,None,None,1,None),
(20,197,"GtkListBoxRow",None,196,None,None,None,None,None),
(20,198,"GtkBox",None,197,None,None,None,None,None),
(20,199,"GtkEntry",None,198,None,None,None,None,None),
(20,200,"GtkSeparator",None,198,None,None,None,1,None),
(20,201,"GtkEntry",None,198,None,None,None,2,None),
(20,202,"GtkSeparator",None,198,None,None,None,3,None),
(20,203,"GtkEntry",None,198,None,None,None,4,None),
(20,204,"GtkSeparator",None,198,None,None,None,5,None),
(20,205,"GtkButton",None,198,None,None,None,6,None),
(20,206,"AdwPreferencesGroup",None,192,None,None,None,2,None),
(20,207,"GtkBox",None,206,None,None,None,None,None),
(20,208,"GtkLabel",None,207,None,None,None,None,None),
(20,209,"GtkSwitch",None,207,None,None,None,1,None),
(20,210,"GtkListBoxRow",None,206,None,None,None,None,None),
(20,211,"GtkBox",None,210,None,None,None,None,None),
(20,212,"GtkEntry",None,211,None,None,None,None,None),
(20,213,"GtkLabel",None,211,None,None,None,1,None),
(20,214,"AdwPreferencesGroup",None,192,None,None,None,3,None),
(20,215,"GtkBox",None,214,None,None,None,None,None),
(20,216,"GtkLabel",None,215,None,None,None,None,None),
(20,217,"GtkSwitch",None,215,None,None,None,1,None),
(20,218,"GtkListBoxRow",None,214,None,None,None,None,None),
(20,219,"GtkBox",None,218,None,None,None,None,None),
(20,220,"GtkEntry",None,219,None,None,None,None,None),
(20,221,"GtkSeparator",None,219,None,None,None,1,None),
(20,222,"GtkEntry",None,219,None,None,None,2,None),
(20,223,"GtkSeparator",None,219,None,None,None,3,None),
(20,224,"GtkEntry",None,219,None,None,None,4,None),
(20,225,"GtkSeparator",None,219,None,None,None,5,None),
(20,226,"GtkEntry",None,219,None,None,None,6,None),
(20,227,"GtkSeparator",None,219,None,None,None,7,None),
(20,228,"GtkButton",None,219,None,None,None,8,None),
(20,196,"AdwPreferencesGroup","resetIP4AddressGroup",192,None,None,None,1,None),
(20,214,"AdwPreferencesGroup","resetIP4RoutesGroup",192,None,None,None,2,None),
(20,229,"GtkLabel",None,9,None,"tab",None,3,None),
(20,230,"AdwEntryRow",None,193,None,None,None,1,None)
(21,1,"GtkBox","resetCardEntry",None,None,None,None,None,None),
(21,2,"GtkBox",None,1,None,None,None,None,None),
(21,3,"GtkLabel","resetCardName",2,None,None,None,None,None),
(21,5,"GtkDropDown","resetCardDropdown",2,None,None,None,1,None),
(21,6,"GtkStringList","resetCardList",5,None,None,None,-1,None)
(20,230,"AdwEntryRow","resetIP4DNS",193,None,None,None,1,None),
(20,231,"AdwEntryRow","resetIP4Gateway",193,None,None,None,2,None),
(20,232,"AdwEntryRow","resetIP6DNS",137,None,None,None,1,None),
(20,233,"AdwEntryRow","resetIP6Gateway",137,None,None,None,2,None),
(20,273,"GtkBox",None,140,None,None,None,-1,None),
(20,274,"GtkBox",None,155,None,None,None,-1,None),
(20,275,"AdwExpanderRow",None,274,None,None,None,None,None),
(20,276,"AdwEntryRow",None,275,None,None,None,None,None),
(20,277,"AdwEntryRow",None,275,None,None,None,1,None),
(20,278,"GtkBox",None,275,None,None,None,2,None),
(20,279,"AdwEntryRow",None,278,None,None,None,None,None),
(20,280,"AdwEntryRow",None,278,None,None,None,1,None),
(20,281,"AdwExpanderRow",None,273,None,None,None,None,None),
(20,282,"AdwEntryRow",None,281,None,None,None,None,None),
(20,283,"AdwEntryRow",None,281,None,None,None,1,None),
(20,284,"GtkButton",None,273,None,None,None,1,None),
(20,285,"GtkButton",None,274,None,None,None,1,None),
(20,286,"AdwComboRow",None,182,None,None,None,3,None),
(20,288,"AdwComboRow",None,182,None,None,None,4,None),
(20,289,"GtkStringList",None,286,None,None,None,-1,None),
(20,290,"GtkStringList",None,288,None,None,None,-1,None),
(20,291,"AdwEntryRow",None,182,None,None,None,1,None),
(20,292,"GtkBox",None,214,None,None,None,-1,None),
(20,294,"GtkSwitch",None,292,None,None,None,1,None),
(20,295,"GtkLabel",None,292,None,None,None,None,None),
(20,296,"GtkBox",None,155,None,None,None,-1,None),
(20,297,"GtkLabel",None,296,None,None,None,None,None),
(20,298,"GtkSwitch",None,296,None,None,None,1,None),
(21,1,"GtkBox","resetCardEntry",None,None,None,None,None,None),
(21,2,"GtkBox",None,1,None,None,None,None,None),
(21,3,"GtkLabel","resetCardName",2,None,None,None,None,None),
(21,5,"GtkDropDown","resetCardDropdown",2,None,None,None,1,None),
(21,6,"GtkStringList","resetCardList",5,None,None,None,-1,None)
(22,1,"GtkBox","resetWifiAddressEntry",None,None,None,None,None,None),
(22,2,"AdwExpanderRow","resetAddressRow",1,None,None,None,None,None),
(22,3,"AdwEntryRow","resetAddressAddress",2,None,None,None,None,None),
(22,4,"AdwEntryRow","resetAddressNetmask",2,None,None,None,1,None),
(22,5,"GtkButton","resetAddressRemove",1,None,None,None,1,None),
(23,1,"GtkBox","resetWifiRouteEntry",None,None,None,None,None,None),
(23,2,"AdwExpanderRow","resetRouteRow",1,None,None,None,None,None),
(23,3,"AdwEntryRow","resetRouteAddress",2,None,None,None,None,None),
(23,4,"AdwEntryRow","resetRouteNetmask",2,None,None,None,1,None),
(23,5,"GtkBox",None,2,None,None,None,2,None),
(23,6,"AdwEntryRow","resetRouteGateway",5,None,None,None,None,None),
(23,7,"AdwEntryRow","resetRouteMetric",5,None,None,None,1,None),
(23,8,"GtkButton","resetRouteRemove",1,None,None,None,1,None)
</object>
<object_property>
(3,1,"GtkWidget","height-request","200",None,None,None,None,None,None,None,None,None),
@ -1012,9 +991,6 @@
(20,30,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(20,30,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(20,30,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(20,31,"AdwActionRow","subtitle","stronk",None,None,None,None,None,None,None,None,None),
(20,31,"AdwPreferencesRow","title","Signal Strength",None,None,None,None,None,None,None,None,None),
(20,31,"GtkWidget","css-classes","property",None,None,None,None,None,None,None,None,None),
(20,32,"AdwActionRow","subtitle","AA:BB:CC:DD:EE:FF",None,None,None,None,None,None,None,None,None),
(20,32,"AdwPreferencesRow","title","MAC-Address",None,None,None,None,None,None,None,None,None),
(20,32,"GtkWidget","css-classes","property",None,None,None,None,None,None,None,None,None),
@ -1024,106 +1000,88 @@
(20,138,"AdwPreferencesRow","title","IPv6 Method",None,None,None,None,None,None,None,None,None),
(20,140,"AdwPreferencesGroup","title","Addresses",None,None,None,None,None,None,None,None,None),
(20,140,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(20,141,"GtkListBoxRow","activatable","False",None,None,None,None,None,None,None,None,None),
(20,143,"GtkEntry","placeholder-text","Address",None,None,None,None,None,None,None,None,None),
(20,143,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,145,"GtkEntry","placeholder-text","Prefix",None,None,None,None,None,None,None,None,None),
(20,145,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,147,"GtkEntry","placeholder-text","Gateway",None,None,None,None,None,None,None,None,None),
(20,147,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,149,"GtkButton","icon-name","edit-delete-symbolic",None,None,None,None,None,None,None,None,None),
(20,150,"AdwPreferencesGroup","header-suffix",None,None,None,None,None,189,None,None,None,None),
(20,150,"AdwPreferencesGroup","title","DNS",None,None,None,None,None,None,None,None,None),
(20,150,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(20,151,"GtkListBoxRow","activatable","False",None,None,None,None,None,None,None,None,None),
(20,152,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(20,154,"GtkLabel","label","seperate ip by comma",None,None,None,None,None,None,None,None,None),
(20,154,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(20,155,"AdwPreferencesGroup","header-suffix",None,None,None,None,None,186,None,None,None,None),
(20,155,"AdwPreferencesGroup","header-suffix",None,None,None,None,None,296,None,None,None,None),
(20,155,"AdwPreferencesGroup","title","Routes",None,None,None,None,None,None,None,None,None),
(20,155,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(20,156,"GtkListBoxRow","activatable","False",None,None,None,None,None,None,None,None,None),
(20,158,"GtkEntry","placeholder-text","Address",None,None,None,None,None,None,None,None,None),
(20,158,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,160,"GtkEntry","placeholder-text","Prefix",None,None,None,None,None,None,None,None,None),
(20,160,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,162,"GtkEntry","placeholder-text","Gateway",None,None,None,None,None,None,None,None,None),
(20,162,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,164,"GtkEditable","max-width-chars","5",None,None,None,None,None,None,None,None,None),
(20,164,"GtkEntry","placeholder-text","Metric",None,None,None,None,None,None,None,None,None),
(20,164,"GtkWidget","width-request","50",None,None,None,None,None,None,None,None,None),
(20,166,"GtkButton","icon-name","edit-delete-symbolic",None,None,None,None,None,None,None,None,None),
(20,183,"AdwComboRow","model",None,None,None,None,None,184,None,None,None,None),
(20,183,"AdwPreferencesRow","title","Security",None,None,None,None,None,None,None,None,None),
(20,185,"AdwPreferencesRow","title","Password",None,None,None,None,None,None,None,None,None),
(20,187,"GtkLabel","label","Automatic",None,None,None,None,None,None,None,None,None),
(20,187,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(20,188,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(20,190,"GtkLabel","label","Automatic",None,None,None,None,None,None,None,None,None),
(20,190,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(20,191,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(20,192,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(20,192,"GtkWidget","width-request","500",None,None,None,None,None,None,None,None,None),
(20,194,"AdwComboRow","model",None,None,None,None,None,195,None,None,None,None),
(20,194,"AdwPreferencesRow","title","IPv4 Method",None,None,None,None,None,None,None,None,None),
(20,196,"AdwPreferencesGroup","title","Addresses",None,None,None,None,None,None,None,None,None),
(20,196,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(20,197,"GtkListBoxRow","activatable","False",None,None,None,None,None,None,None,None,None),
(20,199,"GtkEntry","max-length","1",None,None,None,None,None,None,None,None,None),
(20,199,"GtkEntry","placeholder-text","Address",None,None,None,None,None,None,None,None,None),
(20,199,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,201,"GtkEntry","placeholder-text","Netmask",None,None,None,None,None,None,None,None,None),
(20,201,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,203,"GtkEntry","placeholder-text","Gateway",None,None,None,None,None,None,None,None,None),
(20,203,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,205,"GtkButton","icon-name","edit-delete-symbolic",None,None,None,None,None,None,None,None,None),
(20,206,"AdwPreferencesGroup","header-suffix",None,None,None,None,None,207,None,None,None,None),
(20,206,"AdwPreferencesGroup","title","DNS",None,None,None,None,None,None,None,None,None),
(20,206,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(20,208,"GtkLabel","label","Automatic",None,None,None,None,None,None,None,None,None),
(20,208,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(20,209,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(20,210,"GtkListBoxRow","activatable","False",None,None,None,None,None,None,None,None,None),
(20,211,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(20,213,"GtkLabel","label","seperate ip by comma",None,None,None,None,None,None,None,None,None),
(20,213,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(20,214,"AdwPreferencesGroup","header-suffix",None,None,None,None,None,215,None,None,None,None),
(20,214,"AdwPreferencesGroup","header-suffix",None,None,None,None,None,292,None,None,None,None),
(20,214,"AdwPreferencesGroup","title","Routes",None,None,None,None,None,None,None,None,None),
(20,214,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(20,216,"GtkLabel","label","Automatic",None,None,None,None,None,None,None,None,None),
(20,216,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(20,217,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(20,218,"GtkListBoxRow","activatable","False",None,None,None,None,None,None,None,None,None),
(20,220,"GtkEntry","placeholder-text","Address",None,None,None,None,None,None,None,None,None),
(20,220,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,222,"GtkEntry","placeholder-text","Netmask",None,None,None,None,None,None,None,None,None),
(20,222,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,224,"GtkEntry","placeholder-text","Gateway",None,None,None,None,None,None,None,None,None),
(20,224,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,226,"GtkEditable","max-width-chars","5",None,None,None,None,None,None,None,None,None),
(20,226,"GtkEntry","placeholder-text","Metric",None,None,None,None,None,None,None,None,None),
(20,226,"GtkWidget","width-request","50",None,None,None,None,None,None,None,None,None),
(20,228,"GtkButton","icon-name","edit-delete-symbolic",None,None,None,None,None,None,None,None,None),
(20,229,"GtkLabel","label","IPv4",None,None,None,None,None,None,None,None,None),
(20,230,"AdwPreferencesRow","title","DNS (separate IP by comma)",None,None,None,None,None,None,None,None,None)
(21,1,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(21,1,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(21,1,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(21,1,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(21,1,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(21,2,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(21,3,"GtkLabel","label","text",None,None,None,None,None,None,None,None,None),
(21,3,"GtkLabel","wrap","True",None,None,None,None,None,None,None,None,None),
(21,3,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(21,5,"GtkDropDown","model",None,None,None,None,None,6,None,None,None,None),
(21,5,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(21,5,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(21,5,"GtkWidget","hexpand-set","True",None,None,None,None,None,None,None,None,None)
(20,230,"AdwPreferencesRow","title","DNS (separate IP by comma, empty for automatic)",None,None,None,None,None,None,None,None,None),
(20,231,"AdwPreferencesRow","title","Gateway",None,None,None,None,None,None,None,None,None),
(20,232,"AdwPreferencesRow","title","DNS (separate IP by comma, empty for automatic)",None,None,None,None,None,None,None,None,None),
(20,233,"AdwPreferencesRow","title","Gateway",None,None,None,None,None,None,None,None,None),
(20,275,"AdwPreferencesRow","title","192.168.1.100, 255.255.255.0, 192.68.1.1, 1",None,None,None,None,None,None,None,None,None),
(20,275,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,276,"AdwPreferencesRow","title","Address",None,None,None,None,None,None,None,None,None),
(20,277,"AdwPreferencesRow","title","Netmask",None,None,None,None,None,None,None,None,None),
(20,279,"AdwPreferencesRow","title","Gateway",None,None,None,None,None,None,None,None,None),
(20,279,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,280,"AdwPreferencesRow","title","Metric",None,None,None,None,None,None,None,None,None),
(20,280,"GtkEditable","max-width-chars","5",None,None,None,None,None,None,None,None,None),
(20,281,"AdwPreferencesRow","title","192.168.1.100, 255.255.255.0",None,None,None,None,None,None,None,None,None),
(20,281,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(20,282,"AdwPreferencesRow","title","Address",None,None,None,None,None,None,None,None,None),
(20,283,"AdwPreferencesRow","title","Netmask",None,None,None,None,None,None,None,None,None),
(20,284,"GtkButton","icon-name","edit-delete-symbolic",None,None,None,None,None,None,None,None,None),
(20,284,"GtkWidget","height-request","55",None,None,None,None,None,None,None,None,None),
(20,284,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(20,285,"GtkButton","icon-name","edit-delete-symbolic",None,None,None,None,None,None,None,None,None),
(20,285,"GtkWidget","height-request","55",None,None,None,None,None,None,None,None,None),
(20,285,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(20,286,"AdwComboRow","model",None,None,None,None,None,289,None,None,None,None),
(20,286,"AdwPreferencesRow","title","WEP Index",None,None,None,None,None,None,None,None,None),
(20,288,"AdwComboRow","model",None,None,None,None,None,290,None,None,None,None),
(20,288,"AdwPreferencesRow","title","Authentication",None,None,None,None,None,None,None,None,None),
(20,291,"AdwPreferencesRow","title","Username",None,None,None,None,None,None,None,None,None),
(20,294,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(20,295,"GtkLabel","label","Automatic",None,None,None,None,None,None,None,None,None),
(20,295,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(20,297,"GtkLabel","label","Automatic",None,None,None,None,None,None,None,None,None),
(20,297,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(20,298,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(21,1,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(21,1,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(21,1,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(21,1,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(21,1,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(21,2,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(21,3,"GtkLabel","label","text",None,None,None,None,None,None,None,None,None),
(21,3,"GtkLabel","wrap","True",None,None,None,None,None,None,None,None,None),
(21,3,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(21,5,"GtkDropDown","model",None,None,None,None,None,6,None,None,None,None),
(21,5,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(21,5,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(21,5,"GtkWidget","hexpand-set","True",None,None,None,None,None,None,None,None,None)
(22,2,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(22,3,"AdwPreferencesRow","title","Address",None,None,None,None,None,None,None,None,None),
(22,4,"AdwPreferencesRow","title","Netmask",None,None,None,None,None,None,None,None,None),
(22,5,"GtkButton","icon-name","edit-delete-symbolic",None,None,None,None,None,None,None,None,None),
(22,5,"GtkWidget","height-request","55",None,None,None,None,None,None,None,None,None),
(22,5,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(23,2,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(23,3,"AdwPreferencesRow","title","Address",None,None,None,None,None,None,None,None,None),
(23,4,"AdwPreferencesRow","title","Netmask",None,None,None,None,None,None,None,None,None),
(23,6,"AdwPreferencesRow","title","Gateway",None,None,None,None,None,None,None,None,None),
(23,6,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(23,7,"AdwPreferencesRow","title","Metric",None,None,None,None,None,None,None,None,None),
(23,7,"GtkEditable","max-width-chars","5",None,None,None,None,None,None,None,None,None),
(23,8,"GtkButton","icon-name","edit-delete-symbolic",None,None,None,None,None,None,None,None,None),
(23,8,"GtkWidget","height-request","55",None,None,None,None,None,None,None,None,None),
(23,8,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None)
</object_property>
<object_data>
(3,42,"GtkWidget",2,2,None,1,None,None,None,None),
(3,42,"GtkWidget",1,1,None,None,None,None,None,None),
(3,42,"GtkWidget",2,2,None,1,None,None,None,None),
(7,9,"GtkScale",1,1,None,None,None,None,None,None),
(7,9,"GtkScale",2,2,"100%",1,None,None,None,None),
(8,99,"GtkScale",1,1,None,None,None,None,None,None),
@ -1156,9 +1114,24 @@
(20,195,"GtkStringList",1,1,None,None,None,None,None,None),
(20,195,"GtkStringList",2,2,"Automatic (DHCP)",1,None,None,None,None),
(20,195,"GtkStringList",2,3,"Manual",1,None,None,None,None),
(20,195,"GtkStringList",2,4,"Shared to other computers",1,None,None,None,None),
(20,195,"GtkStringList",2,5,"Link-Local Only",1,None,None,None,None),
(20,195,"GtkStringList",2,6,"Disabled",1,None,None,None,None)
(20,195,"GtkStringList",2,4,"Link-Local Only",1,None,None,None,None),
(20,195,"GtkStringList",2,5,"Shared to other computers",1,None,None,None,None),
(20,195,"GtkStringList",2,6,"Disabled",1,None,None,None,None),
(20,139,"GtkStringList",2,7,"Disabled",1,None,None,None,None),
(20,139,"GtkStringList",2,6,"Shared to other computers",1,None,None,None,None),
(20,139,"GtkStringList",2,5,"Link-Local Only",1,None,None,None,None),
(20,139,"GtkStringList",2,4,"Manual",1,None,None,None,None),
(20,139,"GtkStringList",2,3,"Automatic (DHCP)",1,None,None,None,None),
(20,139,"GtkStringList",2,2,"Automatic",1,None,None,None,None),
(20,139,"GtkStringList",1,1,None,None,None,None,None,None),
(20,289,"GtkStringList",1,1,None,None,None,None,None,None),
(20,289,"GtkStringList",2,2,"1 (Default)",1,None,None,None,None),
(20,289,"GtkStringList",2,3,"2",1,None,None,None,None),
(20,289,"GtkStringList",2,4,"3",1,None,None,None,None),
(20,289,"GtkStringList",2,5,"4",1,None,None,None,None),
(20,290,"GtkStringList",1,1,None,None,None,None,None,None),
(20,290,"GtkStringList",2,2,"Open System",1,None,None,None,None),
(20,290,"GtkStringList",2,3,"Shared Key",1,None,None,None,None)
</object_data>
<object_data_arg>
(7,9,"GtkScale",2,2,"value","65536.0"),

View file

@ -0,0 +1,30 @@
<?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.2"/>
<template class="resetWifiAddressEntry" parent="GtkBox">
<child>
<object class="AdwExpanderRow" id="resetAddressRow">
<property name="hexpand">True</property>
<child>
<object class="AdwEntryRow" id="resetAddressAddress">
<property name="title">Address</property>
</object>
</child>
<child>
<object class="AdwEntryRow" id="resetAddressNetmask">
<property name="title">Netmask</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="resetAddressRemove">
<property name="height-request">55</property>
<property name="icon-name">edit-delete-symbolic</property>
<property name="valign">start</property>
</object>
</child>
</template>
</interface>

View file

@ -15,7 +15,7 @@
<child>
<object class="AdwPreferencesGroup">
<child>
<object class="AdwActionRow">
<object class="AdwActionRow" id="resetWifiName">
<property name="css-classes">property</property>
<property name="margin-bottom">5</property>
<property name="margin-end">5</property>
@ -26,26 +26,19 @@
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="css-classes">property</property>
<property name="subtitle">stronk</property>
<property name="title">Signal Strength</property>
</object>
</child>
<child>
<object class="AdwActionRow">
<object class="AdwActionRow" id="resetWifiMac">
<property name="css-classes">property</property>
<property name="subtitle">AA:BB:CC:DD:EE:FF</property>
<property name="title">MAC-Address</property>
</object>
</child>
<child>
<object class="AdwSwitchRow">
<object class="AdwSwitchRow" id="resetWifiAutoConnect">
<property name="title">Connect automatically</property>
</object>
</child>
<child>
<object class="AdwSwitchRow">
<object class="AdwSwitchRow" id="resetWifiMetered">
<property name="title">Metered Connection</property>
</object>
</child>
@ -65,14 +58,14 @@
<child>
<object class="AdwPreferencesGroup">
<child>
<object class="AdwComboRow">
<object class="AdwComboRow" id="resetIP4Method">
<property name="model">
<object class="GtkStringList">
<items>
<item>Automatic (DHCP)</item>
<item>Manual</item>
<item>Shared to other computers</item>
<item>Link-Local Only</item>
<item>Shared to other computers</item>
<item>Disabled</item>
</items>
</object>
@ -81,102 +74,25 @@
</object>
</child>
<child>
<object class="AdwEntryRow">
<property name="title">DNS (separate IP by comma)</property>
<object class="AdwEntryRow" id="resetIP4DNS">
<property name="title">DNS (separate IP by comma, empty for automatic)</property>
</object>
</child>
<child>
<object class="AdwEntryRow" id="resetIP4Gateway">
<property name="title">Gateway</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesGroup">
<object class="AdwPreferencesGroup" id="resetIP4AddressGroup">
<property name="margin-top">10</property>
<property name="title">Addresses</property>
<child>
<object class="GtkListBoxRow">
<property name="activatable">False</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="max-length">1</property>
<property name="placeholder-text">Address</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="placeholder-text">Netmask</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="placeholder-text">Gateway</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkButton">
<property name="icon-name">edit-delete-symbolic</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesGroup">
<property name="header-suffix">
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label">Automatic</property>
<property name="margin-end">5</property>
</object>
</child>
<child>
<object class="GtkSwitch">
<property name="valign">center</property>
</object>
</child>
</object>
</property>
<property name="margin-top">10</property>
<property name="title">DNS</property>
<child>
<object class="GtkListBoxRow">
<property name="activatable">False</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkEntry"/>
</child>
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="label">seperate ip by comma</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesGroup">
<object class="AdwPreferencesGroup" id="resetIP4RoutesGroup">
<property name="header-suffix">
<object class="GtkBox">
<child>
@ -194,57 +110,6 @@
</property>
<property name="margin-top">10</property>
<property name="title">Routes</property>
<child>
<object class="GtkListBoxRow">
<property name="activatable">False</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="placeholder-text">Address</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="placeholder-text">Netmask</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="placeholder-text">Gateway</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkEntry">
<property name="max-width-chars">5</property>
<property name="placeholder-text">Metric</property>
<property name="width-request">50</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkButton">
<property name="icon-name">edit-delete-symbolic</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
@ -261,15 +126,15 @@
<child>
<object class="AdwPreferencesGroup">
<child>
<object class="AdwComboRow">
<object class="AdwComboRow" id="resetIP6Method">
<property name="model">
<object class="GtkStringList">
<items>
<item>Automatic</item>
<item>Automatic (DHCP only)</item>
<item>Automatic (DHCP)</item>
<item>Manual</item>
<item>Shared to other computers</item>
<item>Link-Local Only</item>
<item>Shared to other computers</item>
<item>Disabled</item>
</items>
</object>
@ -277,89 +142,45 @@
<property name="title">IPv6 Method</property>
</object>
</child>
<child>
<object class="AdwEntryRow" id="resetIP6DNS">
<property name="title">DNS (separate IP by comma, empty for automatic)</property>
</object>
</child>
<child>
<object class="AdwEntryRow" id="resetIP6Gateway">
<property name="title">Gateway</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesGroup">
<object class="AdwPreferencesGroup" id="resetIP6AddressGroup">
<property name="margin-top">10</property>
<property name="title">Addresses</property>
<child>
<object class="GtkListBoxRow">
<property name="activatable">False</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="placeholder-text">Address</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="placeholder-text">Prefix</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="placeholder-text">Gateway</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkButton">
<property name="icon-name">edit-delete-symbolic</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesGroup">
<property name="header-suffix">
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label">Automatic</property>
<property name="margin-end">5</property>
</object>
</child>
<child>
<object class="GtkSwitch">
<property name="valign">center</property>
</object>
</child>
</object>
</property>
<property name="margin-top">10</property>
<property name="title">DNS</property>
<child>
<object class="GtkListBoxRow">
<property name="activatable">False</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<object class="AdwExpanderRow">
<property name="hexpand">True</property>
<property name="title">192.168.1.100, 255.255.255.0</property>
<child>
<object class="GtkEntry"/>
</child>
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="label">seperate ip by comma</property>
<object class="AdwEntryRow">
<property name="title">Address</property>
</object>
</child>
<child>
<object class="AdwEntryRow">
<property name="title">Netmask</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton">
<property name="height-request">55</property>
<property name="icon-name">edit-delete-symbolic</property>
<property name="valign">start</property>
</object>
</child>
</object>
@ -367,7 +188,7 @@
</object>
</child>
<child>
<object class="AdwPreferencesGroup">
<object class="AdwPreferencesGroup" id="resetIP6RoutesGroup">
<property name="header-suffix">
<object class="GtkBox">
<child>
@ -386,54 +207,46 @@
<property name="margin-top">10</property>
<property name="title">Routes</property>
<child>
<object class="GtkListBoxRow">
<property name="activatable">False</property>
<object class="GtkBox">
<child>
<object class="GtkBox">
<object class="AdwExpanderRow">
<property name="hexpand">True</property>
<property name="title">192.168.1.100, 255.255.255.0, 192.68.1.1, 1</property>
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="placeholder-text">Address</property>
<object class="AdwEntryRow">
<property name="title">Address</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="placeholder-text">Prefix</property>
<object class="AdwEntryRow">
<property name="title">Netmask</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkEntry">
<property name="hexpand">True</property>
<property name="placeholder-text">Gateway</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkEntry">
<property name="max-width-chars">5</property>
<property name="placeholder-text">Metric</property>
<property name="width-request">50</property>
</object>
</child>
<child>
<object class="GtkSeparator"/>
</child>
<child>
<object class="GtkButton">
<property name="icon-name">edit-delete-symbolic</property>
<object class="GtkBox">
<child>
<object class="AdwEntryRow">
<property name="hexpand">True</property>
<property name="title">Gateway</property>
</object>
</child>
<child>
<object class="AdwEntryRow">
<property name="max-width-chars">5</property>
<property name="title">Metric</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton">
<property name="height-request">55</property>
<property name="icon-name">edit-delete-symbolic</property>
<property name="valign">start</property>
</object>
</child>
</object>
</child>
</object>
@ -470,11 +283,44 @@
<property name="title">Security</property>
</object>
</child>
<child>
<object class="AdwEntryRow">
<property name="title">Username</property>
</object>
</child>
<child>
<object class="AdwPasswordEntryRow">
<property name="title">Password</property>
</object>
</child>
<child>
<object class="AdwComboRow">
<property name="model">
<object class="GtkStringList">
<items>
<item>1 (Default)</item>
<item>2</item>
<item>3</item>
<item>4</item>
</items>
</object>
</property>
<property name="title">WEP Index</property>
</object>
</child>
<child>
<object class="AdwComboRow">
<property name="model">
<object class="GtkStringList">
<items>
<item>Open System</item>
<item>Shared Key</item>
</items>
</object>
</property>
<property name="title">Authentication</property>
</object>
</child>
</object>
</child>
</object>

View file

@ -0,0 +1,46 @@
<?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.2"/>
<template class="resetWifiRouteEntry" parent="GtkBox">
<child>
<object class="AdwExpanderRow" id="resetRouteRow">
<property name="hexpand">True</property>
<child>
<object class="AdwEntryRow" id="resetRouteAddress">
<property name="title">Address</property>
</object>
</child>
<child>
<object class="AdwEntryRow" id="resetRouteNetmask">
<property name="title">Netmask</property>
</object>
</child>
<child>
<object class="GtkBox">
<child>
<object class="AdwEntryRow" id="resetRouteGateway">
<property name="hexpand">True</property>
<property name="title">Gateway</property>
</object>
</child>
<child>
<object class="AdwEntryRow" id="resetRouteMetric">
<property name="max-width-chars">5</property>
<property name="title">Metric</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="resetRouteRemove">
<property name="height-request">55</property>
<property name="icon-name">edit-delete-symbolic</property>
<property name="valign">start</property>
</object>
</child>
</template>
</interface>

View file

@ -11,6 +11,8 @@
<file compressed="true" preprocess="xml-stripblanks">resetWifiEntry.ui</file>
<file compressed="true" preprocess="xml-stripblanks">resetSavedWifiEntry.ui</file>
<file compressed="true" preprocess="xml-stripblanks">resetWifiOptions.ui</file>
<file compressed="true" preprocess="xml-stripblanks">resetWifiAddressEntry.ui</file>
<file compressed="true" preprocess="xml-stripblanks">resetWifiRouteEntry.ui</file>
<!--Bluetooth-->
<file compressed="true" preprocess="xml-stripblanks">resetBluetooth.ui</file>
<file compressed="true" preprocess="xml-stripblanks">resetBluetoothEntry.ui</file>