Add navigation pages for wifi

This commit is contained in:
takotori 2023-11-02 18:03:15 +01:00
parent eaa3a8c63d
commit 9bd3700a55
4 changed files with 239 additions and 138 deletions

View file

@ -7,6 +7,7 @@ use adw::glib::Object;
use adw::subclass::prelude::ObjectSubclassIsExt;
use dbus::blocking::Connection;
use dbus::Error;
use gtk::prelude::ButtonExt;
use crate::components::wifi::wifiBoxImpl;
use crate::components::wifi::wifiEntry::WifiEntry;

View file

@ -1,5 +1,5 @@
use std::cell::RefCell;
use gtk::{CompositeTemplate, glib, ListBox, ListBoxRow, Switch};
use gtk::{Button, CompositeTemplate, glib, ListBox, ListBoxRow, Revealer, Switch};
use gtk::prelude::*;
use gtk::subclass::prelude::*;
use crate::components::wifi::wifiBox;
@ -18,6 +18,8 @@ pub struct WifiBox {
pub resetWifiSwitch: TemplateChild<Switch>,
#[template_child]
pub resetWifiList: TemplateChild<ListBox>,
#[template_child]
pub resetWifiAdvanced: TemplateChild<Button>,
pub wifiEntries: RefCell<Vec<WifiEntry>>,
}

View file

@ -46,21 +46,32 @@
(3,49,"GtkLabel",None,34,None,None,None,1,None),
(3,50,"GtkLabel",None,34,None,None,None,3,None),
(4,7,"GtkBox","resetWifi",None,None,None,None,None,None),
(4,42,"GtkButton",None,7,None,None,None,2,None),
(4,54,"GtkListBox","resetWifiDetails",7,None,None,None,None,None),
(4,55,"GtkListBoxRow","resetWifiSwitchRow",54,None,None,None,None,None),
(4,56,"GtkListBoxRow",None,54,None,None,None,1,None),
(4,57,"GtkBox",None,55,None,None,None,-1,None),
(4,58,"GtkLabel",None,57,None,None,None,None,None),
(4,59,"GtkSwitch","resetWifiSwitch",57,None,None,None,1,None),
(4,60,"GtkBox",None,56,None,None,None,None,None),
(4,61,"GtkLabel",None,60,None,None,None,None,None),
(4,62,"GtkImage",None,60,None,None,None,1,None),
(4,63,"GtkBox",None,7,None,None,None,1,None),
(4,64,"GtkLabel",None,63,None,None,None,None,None),
(4,65,"GtkScrolledWindow",None,63,None,None,None,1,None),
(4,66,"GtkViewport",None,65,None,None,None,None,None),
(4,69,"GtkListBox","resetWifiList",66,None,None,None,1,None),
(4,70,"AdwNavigationView",None,7,None,None,None,-1,None),
(4,71,"AdwNavigationPage",None,70,None,None,None,-1,None),
(4,72,"AdwNavigationPage",None,70,None,None,None,-1,None),
(4,88,"GtkBox",None,71,None,None,None,-1,None),
(4,89,"GtkListBox","resetWifiDetails",88,None,None,None,None,None),
(4,90,"GtkListBoxRow","resetWifiSwitchRow",89,None,None,None,None,None),
(4,91,"GtkBox",None,90,None,None,None,None,None),
(4,92,"GtkLabel",None,91,None,None,None,None,None),
(4,93,"GtkSwitch","resetWifiSwitch",91,None,None,None,1,None),
(4,94,"GtkListBoxRow",None,89,None,None,None,1,None),
(4,95,"GtkBox",None,94,None,None,None,None,None),
(4,96,"GtkLabel",None,95,None,None,None,None,None),
(4,97,"GtkImage",None,95,None,None,None,1,None),
(4,98,"GtkBox",None,88,None,None,None,1,None),
(4,99,"GtkLabel",None,98,None,None,None,None,None),
(4,100,"GtkScrolledWindow",None,98,None,None,None,1,None),
(4,101,"GtkViewport",None,100,None,None,None,None,None),
(4,102,"GtkListBox","resetWifiList",101,None,None,None,None,None),
(4,103,"GtkButton","resetWifiAdvanced",88,None,None,None,2,None),
(4,105,"AdwNavigationPage",None,70,None,None,None,2,None),
(4,107,"GtkBox",None,72,None,None,None,-1,None),
(4,108,"GtkLabel",None,107,None,None,None,-1,None),
(4,109,"GtkButton",None,107,None,None,None,1,None),
(4,110,"GtkBox",None,105,None,None,None,1,None),
(4,111,"GtkLabel",None,110,None,None,None,None,None),
(4,112,"GtkButton",None,110,None,None,None,1,None),
(5,1,"GtkListBoxRow","resetWifiEntry",None,None,None,None,None,None),
(5,2,"GtkBox",None,1,None,None,None,None,None),
(5,4,"GtkLabel","resetWifiLabel",2,None,None,None,1,None),
@ -207,46 +218,68 @@
(4,7,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(4,7,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,7,"GtkWidget","width-request","400",None,None,None,None,None,None,None,None,None),
(4,42,"GtkButton","label","Advanced",None,None,None,None,None,None,None,None,None),
(4,42,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(4,42,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,42,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(4,42,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,54,"GtkListBox","show-separators","True",None,None,None,None,None,None,None,None,None),
(4,54,"GtkWidget","css-classes","boxed-list",None,None,None,None,None,None,None,None,None),
(4,54,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(4,54,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,54,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,55,"GtkListBoxRow","selectable","False",None,None,None,None,None,None,None,None,None),
(4,56,"GtkListBoxRow","selectable","False",None,None,None,None,None,None,None,None,None),
(4,57,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
(4,58,"GtkLabel","label","WiFi",None,None,None,None,None,None,None,None,None),
(4,58,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,59,"GtkSwitch","active","True",None,None,None,None,None,None,None,None,None),
(4,59,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(4,59,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(4,59,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(4,59,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(4,60,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
(4,61,"GtkLabel","label","Saved Networks",None,None,None,None,None,None,None,None,None),
(4,61,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,62,"GtkImage","icon-name","go-previous-symbolic-rtl",None,None,None,None,None,None,None,None,None),
(4,62,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(4,62,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(4,62,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(4,63,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(4,64,"GtkLabel","justify","right",None,None,None,None,None,None,None,None,None),
(4,64,"GtkLabel","label","Available networks",None,None,None,None,None,None,None,None,None),
(4,64,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(4,64,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,65,"GtkScrolledWindow","min-content-height","100",None,None,None,None,None,None,None,None,None),
(4,65,"GtkScrolledWindow","propagate-natural-height","True",None,None,None,None,None,None,None,None,None),
(4,69,"GtkListBox","show-separators","True",None,None,None,None,None,None,None,None,None),
(4,69,"GtkWidget","css-classes","boxed-list",None,None,None,None,None,None,None,None,None),
(4,69,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(4,69,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(4,69,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,69,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,71,"AdwNavigationPage","tag","main",None,None,None,None,None,None,None,None,None),
(4,72,"AdwNavigationPage","child",None,None,None,None,None,107,None,None,None,None),
(4,72,"AdwNavigationPage","tag","advanced",None,None,None,None,None,None,None,None,None),
(4,88,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(4,89,"GtkListBox","show-separators","True",None,None,None,None,None,None,None,None,None),
(4,89,"GtkWidget","css-classes","boxed-list",None,None,None,None,None,None,None,None,None),
(4,89,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(4,89,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,89,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,90,"GtkListBoxRow","selectable","False",None,None,None,None,None,None,None,None,None),
(4,91,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
(4,92,"GtkLabel","label","WiFi",None,None,None,None,None,None,None,None,None),
(4,92,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,93,"GtkSwitch","active","True",None,None,None,None,None,None,None,None,None),
(4,93,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(4,93,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(4,93,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(4,93,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(4,94,"GtkActionable","action-name","navigation.push",None,None,None,None,None,None,None,None,None),
(4,94,"GtkActionable","action-target","'saved'",None,None,None,None,None,None,None,None,None),
(4,94,"GtkListBoxRow","selectable","False",None,None,None,None,None,None,None,None,None),
(4,95,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
(4,96,"GtkLabel","label","Saved Networks",None,None,None,None,None,None,None,None,None),
(4,96,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,97,"GtkImage","icon-name","go-previous-symbolic-rtl",None,None,None,None,None,None,None,None,None),
(4,97,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(4,97,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(4,97,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(4,98,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(4,99,"GtkLabel","justify","right",None,None,None,None,None,None,None,None,None),
(4,99,"GtkLabel","label","Available networks",None,None,None,None,None,None,None,None,None),
(4,99,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(4,99,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,100,"GtkScrolledWindow","min-content-height","100",None,None,None,None,None,None,None,None,None),
(4,100,"GtkScrolledWindow","propagate-natural-height","True",None,None,None,None,None,None,None,None,None),
(4,102,"GtkListBox","show-separators","True",None,None,None,None,None,None,None,None,None),
(4,102,"GtkWidget","css-classes","boxed-list",None,None,None,None,None,None,None,None,None),
(4,102,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(4,102,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(4,102,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,102,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,103,"GtkActionable","action-name","navigation.push",None,None,None,None,None,None,None,None,None),
(4,103,"GtkActionable","action-target","'advanced'",None,None,None,None,None,None,None,None,None),
(4,103,"GtkButton","label","Advanced",None,None,None,None,None,None,None,None,None),
(4,103,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(4,103,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,103,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(4,103,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,105,"AdwNavigationPage","tag","saved",None,None,None,None,None,None,None,None,None),
(4,109,"GtkActionable","action-name","navigation.pop",None,None,None,None,None,None,None,None,None),
(4,109,"GtkButton","label","back",None,None,None,None,None,None,None,None,None),
(4,109,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(4,109,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,109,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(4,109,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(4,111,"GtkLabel","label","saved networks",None,None,None,None,None,None,None,None,None),
(4,112,"GtkActionable","action-name","navigation.pop",None,None,None,None,None,None,None,None,None),
(4,112,"GtkButton","label","back",None,None,None,None,None,None,None,None,None),
(4,112,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(4,112,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(4,112,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(4,112,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(5,1,"GtkListBoxRow","selectable","False",None,None,None,None,None,None,None,None,None),
(5,1,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
(5,2,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),

View file

@ -2,11 +2,20 @@
<!-- Created with Cambalache 0.17.0 -->
<interface>
<requires lib="gtk" version="4.12"/>
<requires lib="libadwaita" version="1.4"/>
<template class="resetWifi" parent="GtkBox">
<property name="halign">start</property>
<property name="orientation">vertical</property>
<property name="valign">start</property>
<property name="width-request">400</property>
<child>
<object class="AdwNavigationView">
<child>
<object class="AdwNavigationPage">
<property name="tag">main</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkListBox" id="resetWifiDetails">
<property name="css-classes">boxed-list</property>
@ -41,6 +50,8 @@
</child>
<child>
<object class="GtkListBoxRow">
<property name="action-name">navigation.push</property>
<property name="action-target">'saved'</property>
<property name="selectable">False</property>
<child>
<object class="GtkBox">
@ -99,7 +110,9 @@
</object>
</child>
<child>
<object class="GtkButton">
<object class="GtkButton" id="resetWifiAdvanced">
<property name="action-name">navigation.push</property>
<property name="action-target">'advanced'</property>
<property name="halign">start</property>
<property name="label">Advanced</property>
<property name="margin-start">5</property>
@ -107,5 +120,57 @@
<property name="valign">start</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwNavigationPage">
<property name="child">
<object class="GtkBox">
<child>
<object class="GtkLabel"/>
</child>
<child>
<object class="GtkButton">
<property name="action-name">navigation.pop</property>
<property name="halign">start</property>
<property name="label">back</property>
<property name="margin-start">5</property>
<property name="margin-top">5</property>
<property name="valign">start</property>
</object>
</child>
</object>
</property>
<property name="tag">advanced</property>
</object>
</child>
<child>
<object class="AdwNavigationPage">
<property name="tag">saved</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label">saved networks</property>
</object>
</child>
<child>
<object class="GtkButton">
<property name="action-name">navigation.pop</property>
<property name="halign">start</property>
<property name="label">back</property>
<property name="margin-start">5</property>
<property name="margin-top">5</property>
<property name="valign">start</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</template>
</interface>