diff options
author | Ricky Kresslein <ricky@kressle.in> | 2022-02-20 12:59:46 +0100 |
---|---|---|
committer | Ricky Kresslein <ricky@kressle.in> | 2022-02-20 12:59:46 +0100 |
commit | 379561117862952d567bfdbf0700b5c7f470a1a8 (patch) | |
tree | e8ff9e5081109c87426eb35c5ade0407e4908419 /src/settings_manager.rs | |
parent | 1f46e93625cff30eaf63258fcabe4ddc0c243136 (diff) | |
download | Furtherance-379561117862952d567bfdbf0700b5c7f470a1a8.tar.zst |
- Added Preferences
- Added idle notify to preferences - Bug fix: if user deleted first task none would show
Diffstat (limited to 'src/settings_manager.rs')
-rw-r--r-- | src/settings_manager.rs | 44 |
1 files changed, 44 insertions, 0 deletions
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 <rk@lakoliu.com> +// +// 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 <https://www.gnu.org/licenses/>. + +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<P: IsA<glib::Object>>(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) +} |