static gboolean remmina_main_on_delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) { RemminaMain *remminamain; remminamain = REMMINA_MAIN(widget); remmina_main_save_size(remminamain); remmina_main_save_expanded_group(remminamain); g_free(remmina_pref.expanded_group); remmina_pref.expanded_group = remmina_string_array_to_string(remminamain->priv->expanded_group); remmina_string_array_free(remminamain->priv->expanded_group); remminamain->priv->expanded_group = NULL; remmina_pref_save(); return FALSE; }
void remmina_pref_add_recent (const gchar *protocol, const gchar *server) { RemminaStringArray *array; GKeyFile *gkeyfile; gchar key[20]; gchar *val; gchar *content; gsize length; if (remmina_pref.recent_maximum <= 0 || server == NULL || server[0] == 0) return; /* Load original value into memory */ gkeyfile = g_key_file_new (); g_key_file_load_from_file (gkeyfile, remmina_pref_file, G_KEY_FILE_NONE, NULL); g_snprintf (key, sizeof (key), "recent_%s", protocol); array = remmina_string_array_new_from_allocated_string ( g_key_file_get_string (gkeyfile, "remmina_pref", key, NULL)); /* Add the new value */ remmina_string_array_remove (array, server); while (array->len >= remmina_pref.recent_maximum) { remmina_string_array_remove_index (array, 0); } remmina_string_array_add (array, server); /* Save */ val = remmina_string_array_to_string (array); g_key_file_set_string (gkeyfile, "remmina_pref", key, val); g_free (val); content = g_key_file_to_data (gkeyfile, &length, NULL); g_file_set_contents (remmina_pref_file, content, length, NULL); g_key_file_free (gkeyfile); g_free (content); }
gchar* remmina_file_manager_get_groups(void) { gchar dirname[MAX_PATH_LEN]; gchar filename[MAX_PATH_LEN]; GDir* dir; const gchar* name; RemminaFile* remminafile; RemminaStringArray* array; const gchar* group; gchar* groups; array = remmina_string_array_new(); g_snprintf(dirname, MAX_PATH_LEN, "%s/.remmina", g_get_home_dir()); dir = g_dir_open(dirname, 0, NULL); if (dir == NULL) return 0; while ((name = g_dir_read_name(dir)) != NULL) { if (!g_str_has_suffix(name, ".remmina")) continue; g_snprintf(filename, MAX_PATH_LEN, "%s/%s", dirname, name); remminafile = remmina_file_load(filename); group = remmina_file_get_string(remminafile, "group"); if (group && remmina_string_array_find(array, group) < 0) { remmina_string_array_add(array, group); } remmina_file_free(remminafile); } g_dir_close(dir); remmina_string_array_sort(array); groups = remmina_string_array_to_string(array); remmina_string_array_free(array); return groups; }