From 379561117862952d567bfdbf0700b5c7f470a1a8 Mon Sep 17 00:00:00 2001 From: Ricky Kresslein Date: Sun, 20 Feb 2022 12:59:46 +0100 Subject: - Added Preferences - Added idle notify to preferences - Bug fix: if user deleted first task none would show --- src/settings_manager.rs | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/settings_manager.rs (limited to 'src/settings_manager.rs') diff --git a/src/settings_manager.rs b/src/settings_manager.rs new file mode 100644 index 0000000..0343cdc --- /dev/null +++ b/src/settings_manager.rs @@ -0,0 +1,44 @@ +// Furtherance - Track your time without being tracked +// Copyright (C) 2022 Ricky Kresslein +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use gtk::{gio, gio::prelude::*, glib}; +use crate::config; + +pub fn get_settings() -> gio::Settings { + let app_id = config::APP_ID; + gio::Settings::new(app_id) +} + + +pub fn bind_property>(key: &str, object: &P, property: &str) { + let settings = get_settings(); + settings + .bind(key, object, property) + .flags(gio::SettingsBindFlags::DEFAULT) + .build(); +} + +#[allow(dead_code)] +pub fn get_bool(key: &str) -> bool { + let settings = get_settings(); + settings.boolean(key) +} + +#[allow(dead_code)] +pub fn get_int(key: &str) -> i32 { + let settings = get_settings(); + settings.int(key) +} -- cgit 1.4.1