mirror of
https://github.com/Xetibo/ReSet.git
synced 2025-04-12 08:28:32 +02:00
Restructure Reset
This commit is contained in:
parent
721e7d3f4e
commit
b3f1bfd59b
|
@ -7,6 +7,7 @@ description = "A wip universal Linux settings application."
|
||||||
[dependencies]
|
[dependencies]
|
||||||
ReSet-Lib = "*"
|
ReSet-Lib = "*"
|
||||||
adw = { version = "*", package = "libadwaita", features = ["v1_4"]}
|
adw = { version = "*", package = "libadwaita", features = ["v1_4"]}
|
||||||
|
dbus = "0.9.7"
|
||||||
gtk = { version = "*", package = "gtk4", features = ["v4_12"]}
|
gtk = { version = "*", package = "gtk4", features = ["v4_12"]}
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use gtk::{Button, CompositeTemplate, DropDown, TemplateChild, glib};
|
use gtk::{Button, CompositeTemplate, DropDown, TemplateChild, glib};
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use gtk::subclass::prelude::*;
|
use gtk::subclass::prelude::*;
|
||||||
use crate::audio::AudioSourceEntry;
|
use crate::components::audio::AudioSourceEntry;
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
#[derive(Default, CompositeTemplate)]
|
#[derive(Default, CompositeTemplate)]
|
|
@ -1,7 +1,7 @@
|
||||||
use gtk::{CompositeTemplate, glib, ListBox, Switch};
|
use gtk::{CompositeTemplate, glib, ListBox, Switch};
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use gtk::subclass::prelude::*;
|
use gtk::subclass::prelude::*;
|
||||||
use crate::bluetooth::BluetoothEntry;
|
use crate::components::bluetooth::BluetoothEntry;
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
#[derive(Default, CompositeTemplate)]
|
#[derive(Default, CompositeTemplate)]
|
4
src/components/mod.rs
Normal file
4
src/components/mod.rs
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
pub mod window;
|
||||||
|
pub mod wifi;
|
||||||
|
pub mod bluetooth;
|
||||||
|
pub mod audio;
|
|
@ -1,9 +1,15 @@
|
||||||
#![allow(non_snake_case)]
|
#![allow(non_snake_case)]
|
||||||
mod wifiBox;
|
|
||||||
mod wifiEntry;
|
use std::thread;
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
use adw::glib::Object;
|
use adw::glib::Object;
|
||||||
use gtk::{glib};
|
use dbus::blocking::Connection;
|
||||||
|
use dbus::Error;
|
||||||
|
use gtk::glib;
|
||||||
|
|
||||||
|
mod wifiBox;
|
||||||
|
mod wifiEntry;
|
||||||
|
|
||||||
glib::wrapper! {
|
glib::wrapper! {
|
||||||
pub struct WifiBox(ObjectSubclass<wifiBox::WifiBox>)
|
pub struct WifiBox(ObjectSubclass<wifiBox::WifiBox>)
|
||||||
|
@ -21,6 +27,18 @@ impl WifiBox {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
Object::builder().build()
|
Object::builder().build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn donotdisturb() {
|
||||||
|
thread::spawn(|| {
|
||||||
|
let conn = Connection::new_session().unwrap();
|
||||||
|
let proxy = conn.with_proxy(
|
||||||
|
"org.freedesktop.Notifications",
|
||||||
|
"/org/freedesktop/Notifications",
|
||||||
|
Duration::from_millis(1000),
|
||||||
|
);
|
||||||
|
let _ : Result<(), Error> = proxy.method_call("org.freedesktop.Notifications", "DoNotDisturb", ());
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WifiEntry {
|
impl WifiEntry {
|
|
@ -2,7 +2,7 @@ use gtk::{CompositeTemplate, glib, ListBox};
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use gtk::subclass::prelude::*;
|
use gtk::subclass::prelude::*;
|
||||||
|
|
||||||
use crate::wifi::WifiEntry;
|
use crate::components::wifi::WifiEntry;
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
#[derive(Default, CompositeTemplate)]
|
#[derive(Default, CompositeTemplate)]
|
|
@ -1,7 +1,7 @@
|
||||||
use gtk::FlowBox;
|
use gtk::FlowBox;
|
||||||
use crate::audio::AudioBox;
|
use crate::components::audio::AudioBox;
|
||||||
use crate::bluetooth::BluetoothBox;
|
use crate::components::bluetooth::BluetoothBox;
|
||||||
use crate::wifi::WifiBox;
|
use crate::components::wifi::WifiBox;
|
||||||
|
|
||||||
pub const HANDLE_CONNECTIVITY_CLICK: fn(FlowBox) = |resetMain: FlowBox| {
|
pub const HANDLE_CONNECTIVITY_CLICK: fn(FlowBox) = |resetMain: FlowBox| {
|
||||||
let wifibox = WifiBox::new();
|
let wifibox = WifiBox::new();
|
|
@ -1,17 +1,18 @@
|
||||||
#![allow(non_snake_case)]
|
#![allow(non_snake_case)]
|
||||||
|
|
||||||
|
use adw::BreakpointCondition;
|
||||||
use adw::glib::clone;
|
use adw::glib::clone;
|
||||||
use adw::subclass::prelude::ObjectSubclassIsExt;
|
use adw::subclass::prelude::ObjectSubclassIsExt;
|
||||||
use adw::BreakpointCondition;
|
|
||||||
use glib::Object;
|
use glib::Object;
|
||||||
|
use gtk::{Application, FlowBox, gio, glib};
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use gtk::{gio, glib, Application, FlowBox};
|
|
||||||
|
|
||||||
use crate::window::handleSidebarClick::{
|
use crate::components::wifi::WifiBox;
|
||||||
|
use crate::components::window::handleSidebarClick::{
|
||||||
HANDLE_AUDIO_CLICK, HANDLE_BLUETOOTH_CLICK, HANDLE_CONNECTIVITY_CLICK, HANDLE_MICROPHONE_CLICK,
|
HANDLE_AUDIO_CLICK, HANDLE_BLUETOOTH_CLICK, HANDLE_CONNECTIVITY_CLICK, HANDLE_MICROPHONE_CLICK,
|
||||||
HANDLE_VOLUME_CLICK, HANDLE_VPN_CLICK, HANDLE_WIFI_CLICK,
|
HANDLE_VOLUME_CLICK, HANDLE_VPN_CLICK, HANDLE_WIFI_CLICK,
|
||||||
};
|
};
|
||||||
use crate::window::sidebarEntry::{Categories, SidebarAction};
|
use crate::components::window::sidebarEntry::{Categories, SidebarAction};
|
||||||
|
|
||||||
mod handleSidebarClick;
|
mod handleSidebarClick;
|
||||||
mod sidebarEntry;
|
mod sidebarEntry;
|
||||||
|
@ -39,14 +40,12 @@ impl Window {
|
||||||
fn setupCallback(&self) {
|
fn setupCallback(&self) {
|
||||||
let selfImp = self.imp();
|
let selfImp = self.imp();
|
||||||
|
|
||||||
selfImp
|
selfImp.resetSearchEntry
|
||||||
.resetSearchEntry
|
|
||||||
.connect_search_changed(clone!(@ weak self as window => move |_| {
|
.connect_search_changed(clone!(@ weak self as window => move |_| {
|
||||||
window.filterList();
|
window.filterList();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
selfImp
|
selfImp.resetSideBarToggle
|
||||||
.resetSideBarToggle
|
|
||||||
.connect_clicked(clone!(@ weak self as window => move |_| {
|
.connect_clicked(clone!(@ weak self as window => move |_| {
|
||||||
window.toggleSidebar();
|
window.toggleSidebar();
|
||||||
}));
|
}));
|
||||||
|
@ -59,11 +58,13 @@ impl Window {
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
selfImp
|
selfImp.resetClose.connect_clicked(clone!(@ weak self as window => move |_| {
|
||||||
.resetClose
|
window.close();
|
||||||
.connect_clicked(clone!(@ weak self as window => move |_| {
|
}));
|
||||||
window.close();
|
|
||||||
}));
|
selfImp.resetMenu.connect_clicked(|_| {
|
||||||
|
WifiBox::donotdisturb();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handleDynamicSidebar(&self) {
|
fn handleDynamicSidebar(&self) {
|
|
@ -4,7 +4,7 @@ use glib::subclass::InitializingObject;
|
||||||
use gtk::{CompositeTemplate, FlowBox, glib, Image, Label, ListBoxRow};
|
use gtk::{CompositeTemplate, FlowBox, glib, Image, Label, ListBoxRow};
|
||||||
use gtk::subclass::prelude::*;
|
use gtk::subclass::prelude::*;
|
||||||
|
|
||||||
use crate::window::handleSidebarClick::HANDLE_HOME;
|
use crate::components::window::handleSidebarClick::HANDLE_HOME;
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub enum Categories {
|
pub enum Categories {
|
|
@ -6,8 +6,8 @@ use gtk::subclass::prelude::*;
|
||||||
use gtk::{glib, Box, Button, CompositeTemplate, FlowBox, ListBox, SearchEntry};
|
use gtk::{glib, Box, Button, CompositeTemplate, FlowBox, ListBox, SearchEntry};
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
|
|
||||||
use crate::wifi::WifiBox;
|
use crate::components::wifi::WifiBox;
|
||||||
use crate::window::SidebarEntry;
|
use crate::components::window::SidebarEntry;
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
#[derive(CompositeTemplate, Default)]
|
#[derive(CompositeTemplate, Default)]
|
||||||
|
@ -28,6 +28,8 @@ pub struct Window {
|
||||||
#[template_child]
|
#[template_child]
|
||||||
pub resetPath: TemplateChild<Box>,
|
pub resetPath: TemplateChild<Box>,
|
||||||
#[template_child]
|
#[template_child]
|
||||||
|
pub resetMenu: TemplateChild<Button>,
|
||||||
|
#[template_child]
|
||||||
pub resetClose: TemplateChild<Button>,
|
pub resetClose: TemplateChild<Button>,
|
||||||
pub sidebarEntries: RefCell<Vec<(SidebarEntry, Vec<SidebarEntry>)>>,
|
pub sidebarEntries: RefCell<Vec<(SidebarEntry, Vec<SidebarEntry>)>>,
|
||||||
}
|
}
|
|
@ -1,11 +1,9 @@
|
||||||
mod audio;
|
|
||||||
mod bluetooth;
|
mod components;
|
||||||
mod wifi;
|
|
||||||
mod window;
|
|
||||||
|
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use gtk::{gio, Application};
|
use gtk::{gio, Application};
|
||||||
use window::Window;
|
use components::window::Window;
|
||||||
|
|
||||||
const APP_ID: &str = "org.Xetibo.ReSet";
|
const APP_ID: &str = "org.Xetibo.ReSet";
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue