make savedwifientry consistent with other entries

This commit is contained in:
takotori 2023-12-11 15:51:29 +01:00
parent 257d6753f1
commit a57c0c8701
4 changed files with 46 additions and 69 deletions

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

@ -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),
@ -206,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),
@ -300,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),
@ -700,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),
@ -865,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),