mirror of
https://github.com/Xetibo/ReSet.git
synced 2025-04-08 22:52:01 +02:00
Merge pull request #23 from Xetibo/ina
only run runner on main and pull request
This commit is contained in:
commit
ddc9f2e462
1
.github/workflows/rust.yml
vendored
1
.github/workflows/rust.yml
vendored
|
@ -2,6 +2,7 @@ name: Rust
|
|||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
pull_request:
|
||||
branches: [ "main" ]
|
||||
|
||||
|
|
|
@ -19,22 +19,20 @@
|
|||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<object class="GtkButton" id="resetBack">
|
||||
<property name="icon-name">go-previous-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<object class="GtkButton" id="resetForward">
|
||||
<property name="icon-name">go-previous-symbolic-rtl</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">breadcrum path</property>
|
||||
</object>
|
||||
<object class="GtkBox" id="resetPath"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<object class="GtkButton" id="resetMenu">
|
||||
<property name="halign">end</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="icon-name">open-menu-symbolic</property>
|
||||
|
@ -42,7 +40,7 @@
|
|||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<object class="GtkButton" id="resetClose">
|
||||
<property name="icon-name">window-close-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
|
@ -79,163 +77,6 @@
|
|||
<object class="GtkListBox" id="resetSidebarList">
|
||||
<property name="css-name">resetList</property>
|
||||
<property name="width-request">150</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="resetConnectivity">
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="margin-start">10</property>
|
||||
<property name="margin-top">10</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">network-wired-symbolic</property>
|
||||
<property name="margin-end">10</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">Connectivity</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkGestureClick"/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="resetWifi">
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="margin-start">30</property>
|
||||
<property name="margin-top">10</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">network-wireless-symbolic</property>
|
||||
<property name="margin-end">10</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">WiFi</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="resetBluetooth">
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="margin-start">30</property>
|
||||
<property name="margin-top">10</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">bluetooth-symbolic</property>
|
||||
<property name="margin-end">10</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">Bluetooth</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="resetVPN">
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="margin-start">30</property>
|
||||
<property name="margin-top">10</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">network-vpn-symbolic</property>
|
||||
<property name="margin-end">10</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">VPN</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="resetAudio">
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="margin-start">10</property>
|
||||
<property name="margin-top">10</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">audio-headset-symbolic</property>
|
||||
<property name="margin-end">10</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">Audio</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="resetVolume">
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="margin-start">30</property>
|
||||
<property name="margin-top">10</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">audio-volume-high-symbolic</property>
|
||||
<property name="margin-end">10</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">Volume</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="resetMicrophone">
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="margin-bottom">10</property>
|
||||
<property name="margin-start">30</property>
|
||||
<property name="margin-top">10</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">audio-input-microphone-symbolic</property>
|
||||
<property name="margin-end">10</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label">Microphone</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="b"/>
|
||||
</style>
|
||||
|
|
|
@ -23,34 +23,6 @@
|
|||
(3,13,"GtkBox",None,12,None,None,None,None,None),
|
||||
(3,14,"GtkSearchEntry","resetSearchEntry",13,None,None,None,None,None),
|
||||
(3,15,"GtkListBox","resetSidebarList",13,None,None,None,1,None),
|
||||
(3,16,"GtkListBoxRow","resetConnectivity",15,None,None,None,None,None),
|
||||
(3,17,"GtkBox",None,16,None,None,None,None,None),
|
||||
(3,18,"GtkImage",None,17,None,None,None,None,None),
|
||||
(3,19,"GtkLabel",None,17,None,None,None,1,None),
|
||||
(3,20,"GtkListBoxRow","resetWifi",15,None,None,None,1,None),
|
||||
(3,21,"GtkBox",None,20,None,None,None,None,None),
|
||||
(3,22,"GtkImage",None,21,None,None,None,None,None),
|
||||
(3,23,"GtkLabel",None,21,None,None,None,1,None),
|
||||
(3,24,"GtkListBoxRow","resetBluetooth",15,None,None,None,2,None),
|
||||
(3,25,"GtkBox",None,24,None,None,None,None,None),
|
||||
(3,26,"GtkImage",None,25,None,None,None,None,None),
|
||||
(3,27,"GtkLabel",None,25,None,None,None,1,None),
|
||||
(3,28,"GtkListBoxRow","resetVPN",15,None,None,None,3,None),
|
||||
(3,29,"GtkBox",None,28,None,None,None,None,None),
|
||||
(3,30,"GtkImage",None,29,None,None,None,None,None),
|
||||
(3,31,"GtkLabel",None,29,None,None,None,1,None),
|
||||
(3,32,"GtkListBoxRow","resetAudio",15,None,None,None,4,None),
|
||||
(3,33,"GtkBox",None,32,None,None,None,None,None),
|
||||
(3,34,"GtkImage",None,33,None,None,None,None,None),
|
||||
(3,35,"GtkLabel",None,33,None,None,None,1,None),
|
||||
(3,36,"GtkListBoxRow","resetVolume",15,None,None,None,5,None),
|
||||
(3,37,"GtkBox",None,36,None,None,None,None,None),
|
||||
(3,38,"GtkImage",None,37,None,None,None,None,None),
|
||||
(3,39,"GtkLabel",None,37,None,None,None,1,None),
|
||||
(3,40,"GtkListBoxRow","resetMicrophone",15,None,None,None,6,None),
|
||||
(3,41,"GtkBox",None,40,None,None,None,None,None),
|
||||
(3,42,"GtkImage",None,41,None,None,None,None,None),
|
||||
(3,43,"GtkLabel",None,41,None,None,None,1,None),
|
||||
(4,7,"GtkBox","resetWifi",None,None,None,None,None,None),
|
||||
(4,8,"AdwClampScrollable",None,7,None,None,None,None,None),
|
||||
(4,9,"GtkBox",None,8,None,None,None,None,None),
|
||||
|
@ -70,9 +42,9 @@
|
|||
(5,4,"GtkLabel","resetWifiLabel",2,None,None,None,1,None),
|
||||
(5,5,"GtkButton","resetWifiButton",2,None,None,None,2,None),
|
||||
(6,1,"GtkListBoxRow","resetSidebarEntry",None,None,None,None,None,None),
|
||||
(6,2,"GtkBox",None,1,None,None,None,None,None),
|
||||
(6,3,"GtkImage","resetSidebarImage",2,None,None,None,None,None),
|
||||
(6,4,"GtkLabel","resetSidebarLabel",2,None,None,None,1,None)
|
||||
(6,2,"GtkBox",None,1,None,None,None,-1,None),
|
||||
(6,6,"GtkImage","resetSidebarImage",2,None,None,None,1,None),
|
||||
(6,7,"GtkLabel","resetSidebarLabel",2,None,None,None,2,None)
|
||||
</object>
|
||||
<object_property>
|
||||
(3,2,"AdwOverlaySplitView","content",None,None,None,None,None,3,None,None,None,None),
|
||||
|
@ -104,48 +76,6 @@
|
|||
(3,14,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
|
||||
(3,15,"GtkWidget","css-name","resetList",None,None,None,None,None,None,None,None,None),
|
||||
(3,15,"GtkWidget","width-request","150",None,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkWidget","margin-start","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,18,"GtkImage","icon-name","network-wired-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(3,18,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,19,"GtkLabel","label","Connectivity",None,None,None,None,None,None,None,None,None),
|
||||
(3,21,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,21,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
|
||||
(3,21,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,22,"GtkImage","icon-name","network-wireless-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(3,22,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,23,"GtkLabel","label","WiFi",None,None,None,None,None,None,None,None,None),
|
||||
(3,25,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,25,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
|
||||
(3,25,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,26,"GtkImage","icon-name","bluetooth-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(3,26,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,27,"GtkLabel","label","Bluetooth",None,None,None,None,None,None,None,None,None),
|
||||
(3,29,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,29,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
|
||||
(3,29,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,30,"GtkImage","icon-name","network-vpn-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(3,30,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,31,"GtkLabel","label","VPN",None,None,None,None,None,None,None,None,None),
|
||||
(3,33,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,33,"GtkWidget","margin-start","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,33,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,34,"GtkImage","icon-name","audio-headset-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(3,34,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,35,"GtkLabel","label","Audio",None,None,None,None,None,None,None,None,None),
|
||||
(3,37,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,37,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
|
||||
(3,37,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,38,"GtkImage","icon-name","audio-volume-high-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(3,38,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,39,"GtkLabel","label","Volume",None,None,None,None,None,None,None,None,None),
|
||||
(3,41,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,41,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
|
||||
(3,41,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,42,"GtkImage","icon-name","audio-input-microphone-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(3,42,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
|
||||
(3,43,"GtkLabel","label","Microphone",None,None,None,None,None,None,None,None,None),
|
||||
(4,7,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
|
||||
(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),
|
||||
|
@ -172,10 +102,11 @@
|
|||
(5,5,"GtkButton","icon-name","emblem-system-symbolic",None,None,None,None,None,None,None,None,None),
|
||||
(5,5,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
|
||||
(5,5,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
|
||||
(6,1,"GtkListBoxRow","child",None,None,None,None,None,2,None,None,None,None),
|
||||
(6,2,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
|
||||
(6,2,"GtkWidget","margin-start","10",None,None,None,None,None,None,None,None,None),
|
||||
(6,2,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
|
||||
(6,3,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None)
|
||||
(6,6,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None)
|
||||
</object_property>
|
||||
<object_data>
|
||||
(3,15,"GtkWidget",2,2,None,1,None,None,None,None),
|
||||
|
|
|
@ -1,12 +1,49 @@
|
|||
use gtk::FlowBox;
|
||||
use crate::wifi::WifiBox;
|
||||
|
||||
|
||||
pub const HANDLE_CONNECTIVITY_CLICK: fn(FlowBox) = |resetMain: FlowBox| {
|
||||
let wifibox = WifiBox::new();
|
||||
resetMain.remove_all();
|
||||
resetMain.insert(&wifibox, -1);
|
||||
};
|
||||
|
||||
pub const HANDLE_WIFI_CLICK: fn(FlowBox) = |resetMain: FlowBox| {
|
||||
let wifibox = WifiBox::new();
|
||||
resetMain.remove_all();
|
||||
resetMain.insert(&wifibox, -1);
|
||||
};
|
||||
|
||||
pub const HANDLE_BLUETOOTH_CLICK: fn(FlowBox) = |resetMain: FlowBox| {
|
||||
let wifibox = WifiBox::new();
|
||||
resetMain.remove_all();
|
||||
resetMain.insert(&wifibox, -1);
|
||||
};
|
||||
|
||||
pub const HANDLE_VPN_CLICK: fn(FlowBox) = |resetMain: FlowBox| {
|
||||
let wifibox = WifiBox::new();
|
||||
resetMain.remove_all();
|
||||
resetMain.insert(&wifibox, -1);
|
||||
};
|
||||
|
||||
pub const HANDLE_AUDIO_CLICK: fn(FlowBox) = |resetMain: FlowBox| {
|
||||
let wifibox = WifiBox::new();
|
||||
resetMain.remove_all();
|
||||
resetMain.insert(&wifibox, -1);
|
||||
};
|
||||
|
||||
pub const HANDLE_VOLUME_CLICK: fn(FlowBox) = |resetMain: FlowBox| {
|
||||
let wifibox = WifiBox::new();
|
||||
resetMain.remove_all();
|
||||
resetMain.insert(&wifibox, -1);
|
||||
};
|
||||
|
||||
pub const HANDLE_MICROPHONE_CLICK: fn(FlowBox) = |resetMain: FlowBox| {
|
||||
let wifibox = WifiBox::new();
|
||||
resetMain.remove_all();
|
||||
resetMain.insert(&wifibox, -1);
|
||||
};
|
||||
|
||||
pub const HANDLE_HOME: fn(FlowBox) = |resetMain: FlowBox| {
|
||||
resetMain.remove_all();
|
||||
};
|
||||
|
|
|
@ -7,6 +7,7 @@ use glib::Object;
|
|||
use gtk::{Application, FlowBox, gio, glib};
|
||||
use gtk::prelude::*;
|
||||
|
||||
use crate::window::handleSidebarClick::{HANDLE_AUDIO_CLICK, HANDLE_BLUETOOTH_CLICK, HANDLE_CONNECTIVITY_CLICK, HANDLE_MICROPHONE_CLICK, HANDLE_VOLUME_CLICK, HANDLE_VPN_CLICK, HANDLE_WIFI_CLICK};
|
||||
use crate::window::sidebarEntry::{Categories, SidebarAction};
|
||||
|
||||
mod window;
|
||||
|
@ -35,60 +36,95 @@ impl Window {
|
|||
fn setupCallback(&self) {
|
||||
let selfImp = self.imp();
|
||||
|
||||
selfImp.resetSearchEntry
|
||||
.connect_search_changed(clone!(@ weak self as window => move |_| {
|
||||
selfImp.resetSearchEntry.connect_search_changed(clone!(@ weak self as window => move |_| {
|
||||
window.filterList();
|
||||
}));
|
||||
|
||||
selfImp.resetSideBarToggle
|
||||
.connect_clicked(clone!(@ weak self as window => move |_| {
|
||||
selfImp.resetSideBarToggle.connect_clicked(clone!(@ weak self as window => move |_| {
|
||||
window.toggleSidebar();
|
||||
}));
|
||||
|
||||
selfImp.resetSidebarList.connect_row_activated(clone!(@ weak selfImp as flowbox => move |x, y| {
|
||||
let mut result = y.downcast_ref::<SidebarEntry>().unwrap();
|
||||
let x1 = result.imp().onClickEvent.borrow().onClickEvent;
|
||||
(x1)(flowbox.resetMain.get());
|
||||
let clickEvent = result.imp().onClickEvent.borrow().onClickEvent;
|
||||
(clickEvent)(flowbox.resetMain.get());
|
||||
}));
|
||||
}
|
||||
|
||||
fn handleDynamicSidebar(&self) {
|
||||
self.imp().resetSidebarBreakpoint
|
||||
.set_condition(BreakpointCondition::parse("max-width: 500sp").as_ref().ok());
|
||||
self.imp().resetSidebarBreakpoint
|
||||
.add_setter(&Object::from(self.imp().resetOverlaySplitView.get()),
|
||||
"collapsed",
|
||||
&true.to_value());
|
||||
self.imp().resetSidebarBreakpoint
|
||||
.add_setter(&Object::from(self.imp().resetSideBarToggle.get()),
|
||||
"visible",
|
||||
&true.to_value());
|
||||
let selfImp = self.imp();
|
||||
selfImp.resetSidebarBreakpoint.set_condition(BreakpointCondition::parse("max-width: 500sp").as_ref().ok());
|
||||
selfImp.resetSidebarBreakpoint.add_setter(&Object::from(selfImp.resetOverlaySplitView.get()),
|
||||
"collapsed",
|
||||
&true.to_value());
|
||||
selfImp.resetSidebarBreakpoint.add_setter(&Object::from(selfImp.resetSideBarToggle.get()),
|
||||
"visible",
|
||||
&true.to_value());
|
||||
}
|
||||
|
||||
fn filterList(&self) {
|
||||
let text = self.imp().resetSearchEntry.text().to_string();
|
||||
self.imp().resetSidebarList.set_filter_func(move |x| {
|
||||
for sidebarEntry in self.imp().sidebarEntries.borrow().iter() {
|
||||
if text == "" {
|
||||
return true;
|
||||
sidebarEntry.set_visible(true);
|
||||
continue;
|
||||
}
|
||||
if let Some(child) = x.child() {
|
||||
let result = child.downcast::<gtk::Box>().unwrap();
|
||||
let label = result.last_child().unwrap().downcast::<gtk::Label>().unwrap();
|
||||
if label.text().to_lowercase().contains(&text.to_lowercase()) {
|
||||
return true;
|
||||
}
|
||||
if sidebarEntry.imp().name.borrow().to_lowercase().contains(&text.to_lowercase()) {
|
||||
sidebarEntry.set_visible(true);
|
||||
} else {
|
||||
sidebarEntry.set_visible(false);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
fn toggleSidebar(&self) {
|
||||
if self.imp().resetOverlaySplitView.shows_sidebar() {
|
||||
self.imp().resetOverlaySplitView
|
||||
.set_show_sidebar(false);
|
||||
self.imp().resetOverlaySplitView.set_show_sidebar(false);
|
||||
} else {
|
||||
self.imp().resetOverlaySplitView
|
||||
.set_show_sidebar(true);
|
||||
self.imp().resetOverlaySplitView.set_show_sidebar(true);
|
||||
}
|
||||
}
|
||||
|
||||
fn setupSidebarEntries(&self) {
|
||||
let mut sidebarEntries = self.imp().sidebarEntries.borrow_mut();
|
||||
sidebarEntries.push(SidebarEntry::new("Connectivity",
|
||||
"network-wired-symbolic",
|
||||
Categories::Connectivity,
|
||||
false,
|
||||
HANDLE_CONNECTIVITY_CLICK));
|
||||
sidebarEntries.push(SidebarEntry::new("WiFi",
|
||||
"network-wireless-symbolic",
|
||||
Categories::Connectivity,
|
||||
true,
|
||||
HANDLE_WIFI_CLICK));
|
||||
sidebarEntries.push(SidebarEntry::new("Bluetooth",
|
||||
"bluetooth-symbolic",
|
||||
Categories::Connectivity,
|
||||
true,
|
||||
HANDLE_BLUETOOTH_CLICK));
|
||||
sidebarEntries.push(SidebarEntry::new("VPN",
|
||||
"network-vpn-symbolic",
|
||||
Categories::Connectivity,
|
||||
true,
|
||||
HANDLE_VPN_CLICK));
|
||||
sidebarEntries.push(SidebarEntry::new("Audio",
|
||||
"audio-headset-symbolic",
|
||||
Categories::Audio,
|
||||
false,
|
||||
HANDLE_AUDIO_CLICK));
|
||||
sidebarEntries.push(SidebarEntry::new("Volume",
|
||||
"audio-volume-high-symbolic",
|
||||
Categories::Audio,
|
||||
true,
|
||||
HANDLE_VOLUME_CLICK));
|
||||
sidebarEntries.push(SidebarEntry::new("Microphone",
|
||||
"audio-input-microphone-symbolic",
|
||||
Categories::Audio,
|
||||
true,
|
||||
HANDLE_MICROPHONE_CLICK));
|
||||
|
||||
for entry in sidebarEntries.iter() {
|
||||
self.imp().resetSidebarList.append(entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -102,9 +138,19 @@ impl SidebarEntry {
|
|||
entryImp.category.set(category);
|
||||
entryImp.isSubcategory.set(isSubcategory);
|
||||
{
|
||||
let mut ref_mut = entryImp.onClickEvent.borrow_mut();
|
||||
*ref_mut = SidebarAction { onClickEvent: clickEvent };
|
||||
let mut name = entryImp.name.borrow_mut();
|
||||
*name = String::from(entryName);
|
||||
let mut action = entryImp.onClickEvent.borrow_mut();
|
||||
*action = SidebarAction { onClickEvent: clickEvent };
|
||||
}
|
||||
Self::setMargin(&entry);
|
||||
entry
|
||||
}
|
||||
|
||||
fn setMargin(entry: &SidebarEntry) {
|
||||
if entry.imp().isSubcategory.get() {
|
||||
let option = entry.child().unwrap();
|
||||
option.set_margin_start(30);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -9,7 +9,7 @@ use crate::window::handleSidebarClick::HANDLE_HOME;
|
|||
#[derive(Default)]
|
||||
pub enum Categories {
|
||||
Connectivity,
|
||||
Sound,
|
||||
Audio,
|
||||
#[default]
|
||||
Misc,
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ pub struct SidebarEntry {
|
|||
pub category: Cell<Categories>,
|
||||
pub isSubcategory: Cell<bool>,
|
||||
pub onClickEvent: RefCell<SidebarAction>,
|
||||
pub name : RefCell<String>,
|
||||
}
|
||||
|
||||
#[allow(non_snake_case)]
|
||||
|
@ -55,8 +56,8 @@ impl ObjectSubclass for SidebarEntry {
|
|||
}
|
||||
}
|
||||
|
||||
impl ListBoxRowImpl for SidebarEntry {}
|
||||
|
||||
impl ObjectImpl for SidebarEntry {}
|
||||
|
||||
impl ListBoxRowImpl for SidebarEntry {}
|
||||
|
||||
impl WidgetImpl for SidebarEntry {}
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
use std::cell::{Cell, RefCell};
|
||||
use adw::{Breakpoint, OverlaySplitView};
|
||||
use adw::glib::StaticTypeExt;
|
||||
use adw::subclass::prelude::AdwApplicationWindowImpl;
|
||||
use glib::subclass::InitializingObject;
|
||||
use gtk::{Button, CompositeTemplate, FlowBox, glib, ListBox, SearchEntry};
|
||||
use gtk::{Button, CompositeTemplate, FlowBox, glib, ListBox, SearchEntry, Box};
|
||||
use gtk::subclass::prelude::*;
|
||||
|
||||
use crate::wifi::WifiBox;
|
||||
use crate::window::handleSidebarClick::HANDLE_WIFI_CLICK;
|
||||
use crate::window::SidebarEntry;
|
||||
use crate::window::sidebarEntry::Categories;
|
||||
|
||||
#[allow(non_snake_case)]
|
||||
#[derive(CompositeTemplate, Default)]
|
||||
|
@ -26,6 +25,9 @@ pub struct Window {
|
|||
pub resetSidebarList: TemplateChild<ListBox>,
|
||||
#[template_child]
|
||||
pub resetSideBarToggle: TemplateChild<Button>,
|
||||
#[template_child]
|
||||
pub resetPath: TemplateChild<Box>,
|
||||
pub sidebarEntries: RefCell<Vec<SidebarEntry>>,
|
||||
}
|
||||
|
||||
#[glib::object_subclass]
|
||||
|
@ -51,24 +53,7 @@ impl ObjectImpl for Window {
|
|||
let object = self.obj();
|
||||
object.setupCallback();
|
||||
object.handleDynamicSidebar();
|
||||
|
||||
|
||||
let WiFiEntry = SidebarEntry::new("WiFi",
|
||||
"network-wireless-symbolic",
|
||||
Categories::Connectivity,
|
||||
false,
|
||||
HANDLE_WIFI_CLICK);
|
||||
self.resetSidebarList.append(&WiFiEntry);
|
||||
|
||||
let wifibox = WifiBox::new();
|
||||
let wifibox2 = WifiBox::new();
|
||||
let wifibox3 = WifiBox::new();
|
||||
let wifibox4 = WifiBox::new();
|
||||
|
||||
self.resetMain.insert(&wifibox, -1);
|
||||
self.resetMain.insert(&wifibox2, -1);
|
||||
self.resetMain.insert(&wifibox3, -1);
|
||||
self.resetMain.insert(&wifibox4, -1);
|
||||
object.setupSidebarEntries();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue