From f9cbf4ddf419c591dc04d51c2c69526707b94c7c Mon Sep 17 00:00:00 2001 From: Ward from fusion-voyager-3 Date: Wed, 28 Aug 2024 03:15:03 +0300 Subject: [PATCH] add glib settings to layout --- ...github.pikaos-linux.pikagnomelayouts.desktop | 2 +- src/build_ui.rs | 2 +- src/config.rs | 2 +- src/content/mod.rs | 17 +++++++++++------ 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/data/com.github.pikaos-linux.pikagnomelayouts.desktop b/data/com.github.pikaos-linux.pikagnomelayouts.desktop index c570ce7..b7967ed 100644 --- a/data/com.github.pikaos-linux.pikagnomelayouts.desktop +++ b/data/com.github.pikaos-linux.pikagnomelayouts.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Name=PikaOS Desktop Layouts -Exec=/usr/bin/pika-gnome-layouts +Exec=pika-gnome-layouts Icon=desktop Terminal=false Type=Application diff --git a/src/build_ui.rs b/src/build_ui.rs index bf7c70a..3b633ca 100644 --- a/src/build_ui.rs +++ b/src/build_ui.rs @@ -18,7 +18,7 @@ pub fn build_ui(app: &adw::Application) { let content_stack = gtk::Stack::builder() .build(); - content::content(&content_stack); + content::content(&content_stack, &glib_settings); let window_toolbar = adw::ToolbarView::builder().content(&content_stack).build(); diff --git a/src/config.rs b/src/config.rs index a194a26..5f5dd88 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,4 +1,4 @@ pub const APP_ID: &str = "com.github.pikaos-linux.pikagnomelayouts"; pub const VERSION: &str = env!("CARGO_PKG_VERSION"); -pub const APP_ICON: &str = "com.github.pikaos-linux.pikagnomelayouts"; +pub const APP_ICON: &str = "desktop"; pub const APP_GITHUB: &str = "https://git.pika-os.com/gnome-packages/pika-gnome-layouts"; \ No newline at end of file diff --git a/src/content/mod.rs b/src/content/mod.rs index 9752f24..d51d860 100644 --- a/src/content/mod.rs +++ b/src/content/mod.rs @@ -1,4 +1,4 @@ -use gtk::prelude::*; +use gtk::{gio as gio, glib as glib, prelude::*}; struct DesktopLayout { name: String, @@ -7,6 +7,7 @@ struct DesktopLayout { pub fn content( content_stack: >k::Stack, + glib_settings: &gio::Settings ) { let content_box = gtk::Box::builder() .orientation(gtk::Orientation::Vertical) @@ -21,23 +22,23 @@ pub fn content( }, &DesktopLayout { name: "traditional".to_string(), - id: 0 + id: 1 }, &DesktopLayout { name: "eleven".to_string(), - id: 0 + id: 2 }, &DesktopLayout { name: "pineapple".to_string(), - id: 0 + id: 3 }, &DesktopLayout { name: "gnome2".to_string(), - id: 0 + id: 4 }, &DesktopLayout { name: "unity".to_string(), - id: 0 + id: 5 }, ]; @@ -47,6 +48,8 @@ pub fn content( let layout_grid = gtk::Grid::builder() .vexpand(true) .hexpand(true) + .row_homogeneous(true) + .column_homogeneous(true) .build(); let previews_size_group = gtk::SizeGroup::new(gtk::SizeGroupMode::Both); @@ -60,6 +63,7 @@ pub fn content( let layout_box = gtk::Box::builder() .orientation(gtk::Orientation::Vertical) .build(); + let layout_preview = gtk::Image::builder() .resource(format!("/com/github/pikaos-linux/pikagnomelayouts/previews/{}.svg", &layout_name)) .vexpand(true) @@ -73,6 +77,7 @@ pub fn content( .group(&null_checkbutton) .halign(gtk::Align::Center) .valign(gtk::Align::Start) + .active(glib_settings.int("layout-num") == layout_id) .label(t!(format!("{}_label", &layout_name))) .tooltip_text(t!(format!("{}_tooltip_text", &layout_name))) .build();