/** * Invoked when a newer version is found. */ static void version_new_found(const char *text, bool stable) { static char last_stable[256] = ""; static char last_dev[256] = ""; char s[1024]; if (stable) utf8_strlcpy(last_stable, text, sizeof last_stable); else utf8_strlcpy(last_dev, text, sizeof last_dev); if ('\0' != last_stable[0] && '\0' != last_dev[0]) { str_bprintf(s, sizeof s, _(" - Newer versions available: release %s / from git %s"), last_stable, last_dev); } else if ('\0' != last_stable[0]) { str_bprintf(s, sizeof s, _(" - Newer version available: release %s"), last_stable); } else if ('\0' != last_dev[0]) { str_bprintf(s, sizeof s, _(" - Newer version available: from git %s"), last_dev); } gnet_prop_set_string(PROP_NEW_VERSION_STR, s); }
void on_entry_config_path_activate(GtkEditable *editable, gpointer unused_udata) { gchar *path = STRTRACK(gtk_editable_get_chars(editable, 0, -1)); (void) unused_udata; gnet_prop_set_string(PROP_SHARED_DIRS_PATHS, path); G_FREE_NULL(path); }
void on_entry_config_socks_username_activate(GtkEditable *editable, gpointer unused_udata) { gchar *text = g_strstrip(STRTRACK(gtk_editable_get_chars(editable, 0, -1))); (void) unused_udata; gnet_prop_set_string(PROP_SOCKS_USER, text); G_FREE_NULL(text); }
void on_entry_config_extensions_activate(GtkEditable *editable, gpointer unused_data) { gchar *ext; (void) unused_data; ext = STRTRACK(gtk_editable_get_chars(editable, 0, -1)); gnet_prop_set_string(PROP_SCAN_EXTENSIONS, ext); G_FREE_NULL(ext); }
void on_entry_config_netmask_activate(GtkEditable *editable, gpointer unused_data) { gchar *buf; (void) unused_data; buf = STRTRACK(gtk_editable_get_chars(editable, 0, -1)); gnet_prop_set_string(PROP_LOCAL_NETMASKS_STRING, buf); G_FREE_NULL(buf); }
void on_entry_config_proxy_hostname_activate(GtkEditable *editable, gpointer unused_udata) { gchar *text = g_strstrip(STRTRACK(gtk_editable_get_chars(editable, 0, -1))); (void) unused_udata; gnet_prop_set_string(PROP_PROXY_HOSTNAME, text); if (text[0] != '\0') { guc_adns_resolve(text, on_entry_config_proxy_hostname_activate_helper, NULL); } G_FREE_NULL(text); }
void on_entry_server_hostname_activate(GtkEditable *unused_editable, gpointer unused_udata) { gchar *text; (void) unused_editable; (void) unused_udata; text = STRTRACK(gtk_editable_get_chars( GTK_EDITABLE(gui_dlg_prefs_lookup("entry_server_hostname")), 0, -1)); g_strstrip(text); gnet_prop_set_string(PROP_SERVER_HOSTNAME, text); G_FREE_NULL(text); }
static void directory_chooser_handle_result(enum dir_choice dir_choice, const char *pathname) { g_return_if_fail(NULL != pathname); g_return_if_fail(is_absolute_path(pathname)); g_return_if_fail(is_directory(pathname)); switch (dir_choice) { case DIR_CHOICE_SHARED: guc_shared_dir_add(pathname); return; case DIR_CHOICE_COMPLETE: gnet_prop_set_string(PROP_MOVE_FILE_PATH, pathname); return; case DIR_CHOICE_INCOMPLETE: gnet_prop_set_string(PROP_SAVE_FILE_PATH, pathname); return; case DIR_CHOICE_CORRUPT: gnet_prop_set_string(PROP_BAD_FILE_PATH, pathname); return; } g_assert_not_reached(); }
void button_fs_bad_path_clicked(GtkButton *unused_button, gpointer user_data) { (void) unused_button; if (user_data) { const char *name = gtk_file_selection_get_filename( GTK_FILE_SELECTION(directory_chooser)); if (is_directory(name)) { gnet_prop_set_string(PROP_BAD_FILE_PATH, name); } } gtk_widget_destroy(directory_chooser); directory_chooser = NULL; }
void on_button_config_remove_dir_clicked(GtkButton *unused_button, gpointer unused_udata) { GtkTreeView *tv; GtkTreeModel *model; GtkTreeIter iter; GtkTreeSelection *selection; pslist_t *sl, *pl_dirs = NULL; char *dirs; (void) unused_button; (void) unused_udata; tv = GTK_TREE_VIEW(gui_dlg_prefs_lookup("treeview_shared_dirs")); model = gtk_tree_view_get_model(tv); if (!gtk_tree_model_get_iter_first(model, &iter)) return; /* Regenerate the string property holding a list of paths */ selection = gtk_tree_view_get_selection(tv); do { char *pathname = NULL; /* Skip items selected for removal */ if (gtk_tree_selection_iter_is_selected(selection, &iter)) continue; gtk_tree_model_get(model, &iter, 0, &pathname, (-1)); pl_dirs = pslist_prepend(pl_dirs, pathname); } while (gtk_tree_model_iter_next(model, &iter)); dirs = dirlist_to_string(pl_dirs); gnet_prop_set_string(PROP_SHARED_DIRS_PATHS, dirs); HFREE_NULL(dirs); PSLIST_FOREACH(pl_dirs, sl) { G_FREE_NULL(sl->data); }
void on_button_config_remove_dir_clicked(GtkButton *unused_button, gpointer unused_udata) { GtkTreeView *tv; GtkTreeModel *model; GtkTreeIter iter; GtkTreeSelection *selection; str_t *s; (void) unused_button; (void) unused_udata; tv = GTK_TREE_VIEW(gui_dlg_prefs_lookup("treeview_shared_dirs")); model = gtk_tree_view_get_model(tv); if (!gtk_tree_model_get_iter_first(model, &iter)) return; /* Regenerate the string property holding a list of paths */ selection = gtk_tree_view_get_selection(tv); s = str_new(0); do { gchar *dir = NULL; /* Skip items selected for removal */ if (gtk_tree_selection_iter_is_selected(selection, &iter)) continue; gtk_tree_model_get(model, &iter, 0, &dir, (-1)); if (str_len(s) > 0) str_putc(s, ':'); str_cat(s, dir); G_FREE_NULL(dir); } while (gtk_tree_model_iter_next(model, &iter)); gnet_prop_set_string(PROP_SHARED_DIRS_PATHS, str_2c(s)); str_destroy(s); }