aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbigbear <ns@bigbear.dk>2024-02-08 03:11:14 +0100
committerbigbear <ns@bigbear.dk>2024-02-08 19:52:53 +0100
commit410e1c7796a4142b565909bf645c21c4ef4d7b12 (patch)
treef87e9f36b417438a1b0d7031d8116288a739cda2
parenta56d9001c7c919326be172171ddb0404640d1ec0 (diff)
FIX back port save settings older glib
-rw-r--r--shell/callbacks.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/shell/callbacks.c b/shell/callbacks.c
index af223e19..a70d520b 100644
--- a/shell/callbacks.c
+++ b/shell/callbacks.c
@@ -36,12 +36,38 @@ void cb_sync_manager()
sync_manager_show(shell->window);
}
+#if GLIB_CHECK_VERSION(2,40,0)
+#else
+//For compatibility with older glib
+gboolean g2_key_file_save_to_file (GKeyFile *key_file,
+ const gchar *filename, GError **error)
+{
+ gchar *contents;
+ gboolean success;
+ gsize length;
+
+ g_return_val_if_fail (key_file != NULL, FALSE);
+ g_return_val_if_fail (filename != NULL, FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ contents = g_key_file_to_data (key_file, &length, NULL);
+ g_assert (contents != NULL);
+
+ success = g_file_set_contents (filename, contents, length, error);
+ g_free (contents);
+
+ return success;
+}
+#endif
void cb_sync_on_startup()
{
gboolean setting = shell_action_get_active("SyncOnStartupAction");
GKeyFile *key_file = g_key_file_new();
+ g_mkdir(g_get_user_config_dir(),0755);
+ g_mkdir(g_build_filename(g_get_user_config_dir(), "hardinfo", NULL),0755);
+
gchar *conf_path = g_build_filename(g_get_user_config_dir(), "hardinfo2",
"settings.ini", NULL);
@@ -49,8 +75,11 @@ void cb_sync_on_startup()
key_file, conf_path,
G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, NULL);
g_key_file_set_boolean(key_file, "Sync", "OnStartup", setting);
+#if GLIB_CHECK_VERSION(2,40,0)
g_key_file_save_to_file(key_file, conf_path, NULL);
-
+#else
+ g2_key_file_save_to_file(key_file, conf_path, NULL);
+#endif
g_free(conf_path);
g_key_file_free(key_file);
}