From 7d0fc0b9e75b5c8f784ed9be85d5a7119c7c1539 Mon Sep 17 00:00:00 2001 From: Fabio Lenherr / DashieTM Date: Sat, 11 Nov 2023 17:55:59 +0100 Subject: [PATCH 1/4] feat: Add popups for password --- src/components/base/popup.rs | 10 +-- src/components/base/popupImpl.rs | 30 ++++++--- src/components/wifi/wifiBox.rs | 1 + src/components/wifi/wifiEntry.rs | 88 ++++++++++++++++++++++++--- src/components/wifi/wifiEntryImpl.rs | 11 ++-- src/resources/resetPasswordPopup.ui | 23 ------- src/resources/resetPopup.ui | 31 ++++++++++ src/resources/resetUI.cmb | 26 +++++--- src/resources/resetWifiEntry.ui | 3 + src/resources/resources.gresource.xml | 1 + 10 files changed, 168 insertions(+), 56 deletions(-) delete mode 100644 src/resources/resetPasswordPopup.ui create mode 100644 src/resources/resetPopup.ui diff --git a/src/components/base/popup.rs b/src/components/base/popup.rs index a25d8e2..19d5b13 100644 --- a/src/components/base/popup.rs +++ b/src/components/base/popup.rs @@ -1,17 +1,17 @@ use adw::glib; -use adw::glib::{IsA, Object}; -use gtk::Widget; +use adw::glib::Object; +use gtk::{gdk, Editable, Popover}; use super::popupImpl; glib::wrapper! { pub struct Popup(ObjectSubclass) - @extends adw::Window, gtk::Widget, - @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Orientable; + @extends Popover, gtk::Widget, + @implements Editable,gdk::Popup, gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Orientable; } impl Popup { - pub fn new(child: &impl IsA) -> Self { + pub fn new() -> Self { let popup: Popup = Object::builder().build(); // popup.set_child(child); popup diff --git a/src/components/base/popupImpl.rs b/src/components/base/popupImpl.rs index 7bf6caf..19534ba 100644 --- a/src/components/base/popupImpl.rs +++ b/src/components/base/popupImpl.rs @@ -1,19 +1,35 @@ +use std::cell::RefCell; +use std::sync::Arc; + +use adw::subclass::prelude::{ActionRowImpl, PreferencesRowImpl}; use adw::subclass::window::AdwWindowImpl; +use gtk::gdk_pixbuf::subclass::prelude::{ + PixbufAnimationImpl, PixbufAnimationIterImpl, PixbufLoaderImpl, +}; +use gtk::prelude::PopupExt; use gtk::subclass::prelude::*; -use gtk::{glib, CompositeTemplate}; +use gtk::{ + gdk, glib, Button, CompositeTemplate, Entry, EntryBuffer, PasswordEntry, PasswordEntryBuffer, Popover, +}; use super::popup; #[allow(non_snake_case)] #[derive(Default, CompositeTemplate)] #[template(resource = "/org/Xetibo/ReSet/resetPopup.ui")] -pub struct Popup {} +pub struct Popup { + #[template_child] + pub resetPopupEntry: TemplateChild, + #[template_child] + pub resetPopupButton: TemplateChild