about summary refs log tree commit diff
path: root/src/settings_manager.rs
diff options
context:
space:
mode:
authorRicky Kresslein <ricky@kressle.in>2022-02-20 12:59:46 +0100
committerRicky Kresslein <ricky@kressle.in>2022-02-20 12:59:46 +0100
commit379561117862952d567bfdbf0700b5c7f470a1a8 (patch)
treee8ff9e5081109c87426eb35c5ade0407e4908419 /src/settings_manager.rs
parent1f46e93625cff30eaf63258fcabe4ddc0c243136 (diff)
downloadFurtherance-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.rs44
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)
+}