/** * gimp_page_selector_get_selected_pages: * @selector: Pointer to a #GimpPageSelector. * @n_selected_pages: Returns the number of selected pages. * * Returns: A sorted array of page numbers of selected pages. Use g_free() if * you don't need the array any longer. * * Since: 2.4 **/ gint * gimp_page_selector_get_selected_pages (GimpPageSelector *selector, gint *n_selected_pages) { GimpPageSelectorPrivate *priv; GList *selected; GList *list; gint *array; gint i; g_return_val_if_fail (GIMP_IS_PAGE_SELECTOR (selector), NULL); g_return_val_if_fail (n_selected_pages != NULL, NULL); priv = GIMP_PAGE_SELECTOR_GET_PRIVATE (selector); selected = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (priv->view)); *n_selected_pages = g_list_length (selected); array = g_new0 (gint, *n_selected_pages); for (list = selected, i = 0; list; list = g_list_next (list), i++) { gint *indices = gtk_tree_path_get_indices (list->data); array[i] = indices[0]; } qsort (array, *n_selected_pages, sizeof (gint), gimp_page_selector_int_compare); g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free); return array; }
static CcBackgroundItem * get_selected_item (CcBackgroundPanel *panel) { CcBackgroundPanelPrivate *priv = panel->priv; GtkIconView *icon_view; GtkTreeIter iter; GtkTreeModel *model; GList *list; CcBackgroundItem *item; icon_view = GTK_ICON_VIEW (WID ("backgrounds-iconview")); item = NULL; list = gtk_icon_view_get_selected_items (icon_view); if (!list) return NULL; model = gtk_icon_view_get_model (icon_view); if (gtk_tree_model_get_iter (model, &iter, (GtkTreePath*) list->data) == FALSE) goto bail; gtk_tree_model_get (model, &iter, 1, &item, -1); bail: g_list_foreach (list, (GFunc)gtk_tree_path_free, NULL); g_list_free (list); return item; }
static void ok_button_clicked_cb (GtkWidget *widget, DialogData *data) { GList *list; list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (data->icon_view)); if (list != NULL) { GtkTreePath *path; GtkTreeModel *model; GtkTreeIter iter; path = list->data; model = gtk_icon_view_get_model (GTK_ICON_VIEW (data->icon_view)); if (gtk_tree_model_get_iter (model, &iter, path)) { GdkPixbuf *image; gtk_tree_model_get (model, &iter, IMAGE_COLUMN, &image, -1); goo_window_set_cover_image_from_pixbuf (data->window, image); g_object_unref (image); } g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL); g_list_free (list); } }
static void mud_connections_icon_select_cb(GtkIconView *view, MudConnections *conn) { GList *selected = gtk_icon_view_get_selected_items( GTK_ICON_VIEW(conn->priv->icon_dialog_view)); GtkTreeIter iter; gchar *buf; if(g_list_length(selected) == 0) return; gtk_tree_model_get_iter(conn->priv->icon_dialog_view_model, &iter, (GtkTreePath *)selected->data); gtk_tree_model_get(conn->priv->icon_dialog_view_model, &iter, 0, &buf, -1); if(conn->priv->icon_current != NULL) g_free(conn->priv->icon_current); conn->priv->icon_current = g_strconcat( gtk_file_chooser_get_current_folder( GTK_FILE_CHOOSER(conn->priv->icon_dialog_chooser)), G_DIR_SEPARATOR_S, buf, NULL); g_free(buf); g_list_foreach(selected, (GFunc)gtk_tree_path_free, NULL); g_list_free(selected); }
void _fcitx_main_window_selection_changed_cb(GtkIconView* iconview, gpointer data) { GtkTreeModel *model = gtk_icon_view_get_model(iconview); GtkTreeIter iter; ConfigPage* page; FcitxMainWindow* self = data; GList* list = gtk_icon_view_get_selected_items(iconview); if (list) { gchar* title; gtk_tree_model_get_iter(GTK_TREE_MODEL(self->pagestore), &iter, (GtkTreePath*)(list->data)); gtk_tree_model_get(model, &iter, PAGE_LIST_NAME, &title, PAGE_LIST_PAGE, &page, -1); gchar* text = g_strdup_printf("<b>%s</b>", title); gtk_label_set_markup(GTK_LABEL(self->pagelabel), text); g_free(text); g_free(title); if (self->lastpage) gtk_container_remove(GTK_CONTAINER(self->vbox), self->lastpage->page); gtk_box_pack_end(GTK_BOX(self->vbox), page->page, TRUE, TRUE, 0); gtk_widget_show_all(GTK_WIDGET(self)); self->lastpage = page; } g_list_foreach (list, (GFunc)gtk_tree_path_free, NULL); g_list_free (list); }
/** * callback pour traiter les changements de sélection dans le GtkIconView * * \param le GtkIconView appellant * * \return * * */ void gsb_select_icon_selection_changed ( GtkIconView *icon_view, gpointer user_data ) { GList * liste; GtkTreePath *path; GtkTreeModel *model; GtkTreeIter iter; gchar *name_icon = NULL; liste = gtk_icon_view_get_selected_items ( GTK_ICON_VIEW ( icon_view ) ); /* Could happen if selection is unset, exiting then. */ if ( ! liste ) return; path = liste -> data; model = gtk_icon_view_get_model ( GTK_ICON_VIEW ( icon_view ) ); if (gtk_tree_model_get_iter ( GTK_TREE_MODEL (model), &iter, path )) gtk_tree_model_get (model, &iter, TEXT_COLUMN, &name_icon, -1); name_icon = my_strdelimit ( name_icon, "\n", "" ); devel_debug ( name_icon ); if ( name_icon && strlen ( name_icon ) > 0 ) { new_icon = g_strconcat ( path_icon, G_DIR_SEPARATOR_S, name_icon, NULL ); gtk_entry_set_text ( GTK_ENTRY (GTK_BIN (entry_text)->child ), new_icon ); gtk_widget_set_sensitive (bouton_OK, TRUE ); } }
JNIEXPORT jlongArray JNICALL Java_org_gnome_gtk_GtkIconView_gtk_1icon_1view_1get_1selected_1items ( JNIEnv* env, jclass cls, jlong _self ) { GList* result; jlongArray _result; GtkIconView* self; // convert parameter self self = (GtkIconView*) _self; // call function result = gtk_icon_view_get_selected_items(self); // cleanup parameter self // translate return value to JNI type _result = (jlongArray) bindings_java_convert_glist_to_jarray(env, result); // and finally return _result; }
/* Update selected project */ static void on_druid_project_update_selected (GtkIconView* view, NPWDruid *druid) { GList *selected; NPWHeader* header = NULL; /* No item can be selected when the view is mapped */ selected = gtk_icon_view_get_selected_items (view); if (selected != NULL) { GtkTreeIter iter; GtkTreeModel *model; model = gtk_icon_view_get_model (view); if (gtk_tree_model_get_iter (model, &iter, (GtkTreePath *)selected->data)) { gtk_tree_model_get (model, &iter, DATA_COLUMN, &header, -1); } gtk_tree_path_free ((GtkTreePath *)selected->data); g_list_free (selected); } druid->header = header; gtk_assistant_set_page_complete (GTK_ASSISTANT (druid->window), druid->project_page, header != NULL); }
static GList * attachment_icon_view_get_selected_paths (EAttachmentView *view) { GtkIconView *icon_view; icon_view = GTK_ICON_VIEW (view); return gtk_icon_view_get_selected_items (icon_view); }
static VALUE iview_get_selected_items(VALUE self) { GList* list = gtk_icon_view_get_selected_items(_SELF(self)); VALUE ret = GLIST2ARY2(list, GTK_TYPE_TREE_PATH); g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); g_list_free(list); return ret; }
/* A function that is called when the button for deleting the * selected images was clicked */ static void del_image_call (GtkWidget *widget, gpointer icon_view) { GList *list; GtkTreeRowReference **items; GtkTreePath *item_path; GtkTreeIter item; guint32 i; gpointer temp; guint32 len; GdkPixbuf *thumb; gchar* name; dnd_remove = FALSE; list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (icon_view)); len = g_list_length (list); if (len > 0) { items = g_newa (GtkTreeRowReference*, len); for (i = 0; i < len; i++) { temp = g_list_nth_data (list, i); items[i] = gtk_tree_row_reference_new (model, temp); gtk_tree_path_free (temp); } g_list_free (list); for (i = 0; i < len; i++) { item_path = gtk_tree_row_reference_get_path (items[i]); gtk_tree_model_get_iter (model, &item, item_path); /* Get the data that should be freed */ gtk_tree_model_get (model, &item, THUMB, &thumb, IMAGE_NAME, &name, -1); /* Only after you have the pointers, remove them from the tree */ gtk_list_store_remove (GTK_LIST_STORE (model), &item); /* Now you can free the data */ g_object_unref(thumb); g_free (name); gtk_tree_path_free (item_path); gtk_tree_row_reference_free (items[i]); multi_page.image_count--; } g_free (items); }
static void do_popup_menu (GtkWidget *icon_list, GdkEventButton *event) { GtkIconView *icon_view = GTK_ICON_VIEW (icon_list); GtkWidget *menu; GtkWidget *menuitem; GtkTreePath *path = NULL; int button, event_time; ItemData *data; GList *list; if (event) path = gtk_icon_view_get_path_at_pos (icon_view, event->x, event->y); else { list = gtk_icon_view_get_selected_items (icon_view); if (list) { path = (GtkTreePath*)list->data; g_list_foreach (list->next, (GFunc) gtk_tree_path_free, NULL); g_list_free (list); } } if (!path) return; menu = gtk_menu_new (); data = g_new0 (ItemData, 1); data->icon_list = icon_view; data->path = path; g_object_set_data_full (G_OBJECT (menu), "item-path", data, (GDestroyNotify)free_item_data); menuitem = gtk_menu_item_new_with_label ("Activate"); gtk_widget_show (menuitem); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); g_signal_connect (menuitem, "activate", G_CALLBACK (item_cb), data); if (event) { button = event->button; event_time = event->time; } else { button = 0; event_time = gtk_get_current_event_time (); } gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, button, event_time); }
static void icon_view_select__(GtkIconView *view, const char* code3 = NULL, void* shangji = NULL, void* ce = NULL) { GtkTreeModel *model = gtk_icon_view_get_model (view); GList *list = gtk_icon_view_get_selected_items (view); if (list == NULL) return; for (GList *cur = g_list_first(list); cur != NULL; cur = g_list_next(cur)) { call_item__(get_id__(model, (GtkTreePath *)cur->data), code3 ? 2 : 0, code3, shangji, ce); } g_list_free (list); }
static void icon_view_selection_changed_cb (GtkIconView *icon_view, DialogData *data) { GList *list; list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (data->icon_view)); gtk_widget_set_sensitive (GET_WIDGET ("ok_button"), list != NULL); g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL); g_list_free (list); }
static void gimp_page_selector_selection_changed (GtkIconView *icon_view, GimpPageSelector *selector) { GimpPageSelectorPrivate *priv = GIMP_PAGE_SELECTOR_GET_PRIVATE (selector); GList *selected; gint n_selected; gchar *range; selected = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (priv->view)); n_selected = g_list_length (selected); g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free); if (n_selected == 0) { gtk_label_set_text (GTK_LABEL (priv->count_label), _("Nothing selected")); } else if (n_selected == 1) { gtk_label_set_text (GTK_LABEL (priv->count_label), _("One page selected")); } else { gchar *text; if (n_selected == priv->n_pages) text = g_strdup_printf (ngettext ("%d page selected", "All %d pages selected", n_selected), n_selected); else text = g_strdup_printf (ngettext ("%d page selected", "%d pages selected", n_selected), n_selected); gtk_label_set_text (GTK_LABEL (priv->count_label), text); g_free (text); } range = gimp_page_selector_get_selected_range (selector); gtk_entry_set_text (GTK_ENTRY (priv->range_entry), range); g_free (range); gtk_editable_set_position (GTK_EDITABLE (priv->range_entry), -1); g_signal_emit (selector, selector_signals[SELECTION_CHANGED], 0); }
void icon_item___::store_add__(callback_item___* si, GdkPixbuf *pixbuf, int posi) { switch(posi) { case -2: case -3: { GList *list = gtk_icon_view_get_selected_items (icon_view__()); if (list) { GtkTreeModel *m = model__(); int id_first = get_id__(m, (GtkTreePath *)(g_list_last(list)->data)); int id_last = g_list_length(list) > 1 ? get_id__(m, (GtkTreePath *)(g_list_first(list)->data)) : id_first; /*for(GList *l = g_list_first(list); l; l = g_list_next(l)) { int id = get_id__(m, (GtkTreePath *)l->data); cout << id << endl; }*/ g_list_free (list); GtkTreeIter i; if (gtk_tree_model_get_iter_first(m, &i)) { int posi2 = posi; for(int i2 = 1;; i2++) { int id = 0; gtk_tree_model_get(m, &i, ID_COLUMN, &id, -1); if(posi == -3) { if(id == id_first) { posi2 = i2 - 1; break; } } else { if(id == id_last) { posi2 = i2; break; } } if(!gtk_tree_model_iter_next(m, &i)) break; } posi = posi2; } } break; } } GtkTreeIter iter; gtk_list_store_insert (store_, &iter, posi); gtk_list_store_set (store_, &iter, ID_COLUMN, si->id_, PIXBUF_COLUMN, pixbuf, TITLE_COLUMN, si->title_.c_str(), -1); }
char * cheese_thumb_view_get_selected_image (CheeseThumbView *thumb_view) { GList *list; char *filename = NULL; list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (thumb_view)); if (list) { filename = cheese_thumb_view_get_url_from_path (thumb_view, (GtkTreePath *) list->data); g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL); g_list_free (list); } return filename; }
/** * ppg_add_instrument_dialog_selection_changed: * @dialog: (in): A #PpgAddInstrumentDialog. * * Handle the "selection-changed" signal of @icon_view. If there is only one * item available in the model, then it is selected. * * Returns: None. * Side effects: None. */ static void ppg_add_instrument_dialog_selection_changed (GtkWidget *icon_view, PpgAddInstrumentDialog *dialog) { PpgAddInstrumentDialogPrivate *priv; GList *list; g_return_if_fail(PPG_IS_ADD_INSTRUMENT_DIALOG(dialog)); priv = dialog->priv; list = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(icon_view)); gtk_widget_set_sensitive(priv->add_button, !!list); g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); g_list_free(list); }
static void cheese_thumb_view_on_drag_data_get_cb (GtkIconView *thumb_view, GdkDragContext *drag_context, GtkSelectionData *data, guint info, guint time, gpointer user_data) { GList *list, *l; GtkTreeIter iter; GtkTreeModel *model; char *str; char *uris = NULL; char *tmp_str; list = gtk_icon_view_get_selected_items (thumb_view); model = gtk_icon_view_get_model (thumb_view); for (l = list; l != NULL; l = l->next) { gtk_tree_model_get_iter (model, &iter, l->data); gtk_tree_model_get (model, &iter, 1, &str, -1); gtk_tree_path_free (l->data); /* we always store local paths in the model, but DnD * needs URIs, so we must add file:// to the path. */ /* build the "text/uri-list" string */ if (uris) { tmp_str = g_strconcat (uris, "file://", str, "\r\n", NULL); g_free (uris); } else { tmp_str = g_strconcat ("file://", str, "\r\n", NULL); } uris = tmp_str; g_free (str); } gtk_selection_data_set (data, gtk_selection_data_get_target (data), 8, (guchar *) uris, strlen (uris)); g_free (uris); g_list_free (list); }
static void mud_connections_properties_cb(GtkWidget *widget, MudConnections *conn) { GList *selected = gtk_icon_view_get_selected_items( GTK_ICON_VIEW(conn->priv->iconview)); GtkTreeIter iter; gchar *buf; if(g_list_length(selected) == 0) return; gtk_tree_model_get_iter(conn->priv->icon_model, &iter, (GtkTreePath *)selected->data); gtk_tree_model_get(conn->priv->icon_model, &iter, 0, &buf, -1); mud_connections_show_properties(conn, buf); }
static gchar * theme_get_selected_name (GtkIconView *icon_view, AppearanceData *data) { gchar *name = NULL; GList *selected = gtk_icon_view_get_selected_items (icon_view); if (selected) { GtkTreePath *path = selected->data; GtkTreeModel *model = gtk_icon_view_get_model (icon_view); GtkTreeIter iter; if (gtk_tree_model_get_iter (model, &iter, path)) gtk_tree_model_get (model, &iter, COL_NAME, &name, -1); g_list_foreach (selected, (GFunc) gtk_tree_path_free, NULL); g_list_free (selected); } return name; }
static void mud_connections_popup(MudConnections *conn, GdkEventButton *event) { GladeXML *glade; GtkWidget *popup; GList *selected = gtk_icon_view_get_selected_items( GTK_ICON_VIEW(conn->priv->iconview)); if(g_list_length(selected) == 0) return; glade = glade_xml_new(GLADEDIR "/muds.glade", "popupmenu", NULL); popup = glade_xml_get_widget(glade, "popupmenu"); g_signal_connect(glade_xml_get_widget(glade, "connect"), "activate", G_CALLBACK(mud_connections_connect_cb), conn); g_signal_connect(glade_xml_get_widget(glade, "add"), "activate", G_CALLBACK(mud_connections_add_cb), conn); g_signal_connect(glade_xml_get_widget(glade, "delete"), "activate", G_CALLBACK(mud_connections_delete_cb), conn); g_signal_connect(glade_xml_get_widget(glade, "properties"), "activate", G_CALLBACK(mud_connections_properties_cb), conn); g_object_unref(glade); gtk_menu_attach_to_widget(GTK_MENU(popup), conn->priv->iconview, NULL); gtk_widget_show_all(popup); gtk_menu_popup(GTK_MENU(popup), NULL, NULL, NULL, NULL, event ? event->button : 0, event ? event->time : gtk_get_current_event_time()); g_list_foreach(selected, (GFunc)gtk_tree_path_free, NULL); g_list_free(selected); }
static void theme_selection_changed_cb (GtkWidget *icon_view, AppearanceData *data) { GList *selection; MateThemeMetaInfo *theme = NULL; gboolean is_custom = FALSE; selection = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (icon_view)); if (selection) { GtkTreeModel *model; GtkTreeIter iter; gchar *name; model = gtk_icon_view_get_model (GTK_ICON_VIEW (icon_view)); gtk_tree_model_get_iter (model, &iter, selection->data); gtk_tree_model_get (model, &iter, COL_NAME, &name, -1); is_custom = !strcmp (name, CUSTOM_THEME_NAME); if (is_custom) theme = data->theme_custom; else theme = mate_theme_meta_info_find (name); if (theme) { mate_meta_theme_set (theme); theme_message_area_update (data); } g_free (name); g_list_foreach (selection, (GFunc) gtk_tree_path_free, NULL); g_list_free (selection); } gtk_widget_set_sensitive (appearance_capplet_get_widget (data, "theme_delete"), theme_is_writable (theme)); gtk_widget_set_sensitive (appearance_capplet_get_widget (data, "theme_save"), is_custom); }
static void foreach_selected_remove (GtkWidget *button, GtkIconView *icon_list) { GtkTreeIter iter; GtkTreeModel *model; GList *list, *selected; selected = gtk_icon_view_get_selected_items (icon_list); model = gtk_icon_view_get_model (icon_list); for (list = selected; list; list = list->next) { GtkTreePath *path = list->data; gtk_tree_model_get_iter (model, &iter, path); gtk_list_store_remove (GTK_LIST_STORE (model), &iter); gtk_tree_path_free (path); } g_list_free (selected); }
/** * ppg_add_instrument_dialog_response: * @dialog: (in): A #PpgAddInstrumentDialog. * @response_id: (in): The dialog response id. * * Handle the "response" signal for the dialog. If @response_id is * GTK_RESPONSE_OK, then the currently selected item is added to the session. * * The signal is also blocked if it was handled. * * Returns: None. * Side effects: None. */ static void ppg_add_instrument_dialog_response (PpgAddInstrumentDialog *dialog, gint response_id, gpointer user_data) { PpgAddInstrumentDialogPrivate *priv; GList *list; g_return_if_fail(PPG_IS_ADD_INSTRUMENT_DIALOG(dialog)); priv = dialog->priv; if (response_id == GTK_RESPONSE_OK) { g_signal_stop_emission_by_name(dialog, "response"); list = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(priv->icon_view)); if (list) { gtk_icon_view_item_activated(GTK_ICON_VIEW(priv->icon_view), list->data); } g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); g_list_free(list); gtk_widget_grab_focus(priv->entry); } }
static void theme_delete_cb (GtkWidget *button, AppearanceData *data) { GtkIconView *icon_view = GTK_ICON_VIEW (appearance_capplet_get_widget (data, "theme_list")); GList *selected = gtk_icon_view_get_selected_items (icon_view); if (selected) { GtkTreePath *path = selected->data; GtkTreeModel *model = gtk_icon_view_get_model (icon_view); GtkTreeIter iter; gchar *name = NULL; if (gtk_tree_model_get_iter (model, &iter, path)) gtk_tree_model_get (model, &iter, COL_NAME, &name, -1); if (name != NULL && strcmp (name, data->theme_custom->name) && theme_delete (name, THEME_TYPE_META)) { /* remove theme from the model, too */ GtkTreeIter child; if (gtk_tree_model_iter_next (model, &iter) || theme_model_iter_last (model, &iter)) theme_select_iter (icon_view, &iter); gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_sort_convert_iter_to_child_iter ( GTK_TREE_MODEL_SORT (model), &child, &iter); gtk_list_store_remove (data->theme_store, &child); } g_list_foreach (selected, (GFunc) gtk_tree_path_free, NULL); g_list_free (selected); g_free (name); } }
static MateWPItem* get_selected_item(AppearanceData* data, GtkTreeIter* iter) { MateWPItem* item = NULL; GList* selected; selected = gtk_icon_view_get_selected_items (data->wp_view); if (selected != NULL) { GtkTreeIter sel_iter; gtk_tree_model_get_iter(data->wp_model, &sel_iter, selected->data); g_list_foreach(selected, (GFunc) gtk_tree_path_free, NULL); g_list_free(selected); if (iter) *iter = sel_iter; gtk_tree_model_get(data->wp_model, &sel_iter, 1, &item, -1); } return item; }
GList * cheese_thumb_view_get_selected_images_list (CheeseThumbView *thumb_view) { GList *l, *item; GList *list = NULL; GFile *file; GtkTreePath *path; l = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (thumb_view)); for (item = l; item != NULL; item = item->next) { path = (GtkTreePath *) item->data; file = g_file_new_for_path (cheese_thumb_view_get_url_from_path (thumb_view, path)); list = g_list_prepend (list, file); gtk_tree_path_free (path); } g_list_free (l); list = g_list_reverse (list); return list; }
static void mud_connections_delete_cb(GtkWidget *widget, MudConnections *conn) { GList *selected = gtk_icon_view_get_selected_items( GTK_ICON_VIEW(conn->priv->iconview)); GtkTreeIter iter; gchar *buf, *mud_name, *key, *strip_name, *strip_char_name, *char_name; gchar **mud_tuple; gint len; GConfClient *client = gconf_client_get_default(); if(g_list_length(selected) == 0) return; char_name = strip_name = NULL; gtk_tree_model_get_iter(conn->priv->icon_model, &iter, (GtkTreePath *)selected->data); gtk_tree_model_get(conn->priv->icon_model, &iter, 0, &buf, -1); mud_tuple = g_strsplit(buf, "\n", -1); g_free(buf); len = g_strv_length(mud_tuple); switch(len) { /* Delete Mud */ case 1: mud_name = g_strdup(mud_tuple[0]); break; /* Delete Character */ case 2: char_name = g_strdup(mud_tuple[0]); mud_name = g_strdup(mud_tuple[1]); break; default: g_warning("Malformed mud name passed to delete."); return; } if(!mud_connections_delete_confirm(mud_tuple[0])) { g_free(mud_name); if(char_name) g_free(char_name); g_strfreev(mud_tuple); g_object_unref(client); g_list_foreach(selected, (GFunc)gtk_tree_path_free, NULL); g_list_free(selected); return; } g_strfreev(mud_tuple); if(len == 1) { strip_name = gconf_escape_key(mud_name, -1); key = g_strdup_printf("/apps/gnome-mud/muds/%s", strip_name); gconf_client_recursive_unset(client, key, 0, NULL); g_free(key); gconf_client_suggest_sync(client, NULL); } else if(len == 2) { strip_name = gconf_escape_key(mud_name, -1); strip_char_name = gconf_escape_key(char_name, -1); key = g_strdup_printf("/apps/gnome-mud/muds/%s/characters/%s", strip_name, strip_char_name); gconf_client_recursive_unset(client, key, 0, NULL); g_free(key); g_free(strip_char_name); g_free(char_name); gconf_client_suggest_sync(client, NULL); } g_free(mud_name); g_free(strip_name); g_object_unref(client); g_list_foreach(selected, (GFunc)gtk_tree_path_free, NULL); g_list_free(selected); }
static void ok_clicked_cb (GtkWidget *widget, DialogData *data) { char *s_value; GFile *destination; int i_value; const char *header; const char *footer; const char *image_page_header; const char *image_page_footer; char *thumbnail_caption; char *image_attributes; GtkTreeIter iter; char *theme_name; GthFileDataSort *sort_type; GthTask *task; /* save the options */ s_value = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (GET_WIDGET ("destination_filechooserbutton"))); destination = g_file_new_for_uri (s_value); _g_settings_set_uri (data->settings, PREF_WEBALBUMS_DESTINATION, s_value); g_free (s_value); g_settings_set_boolean (data->settings, PREF_WEBALBUMS_COPY_IMAGES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("copy_images_checkbutton")))); g_settings_set_boolean (data->settings, PREF_WEBALBUMS_RESIZE_IMAGES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("resize_images_checkbutton")))); i_value = gtk_combo_box_get_active (GTK_COMBO_BOX (GET_WIDGET ("resize_images_combobox"))); g_settings_set_int (data->settings, PREF_WEBALBUMS_RESIZE_WIDTH, ImageSizeValues[i_value].width); g_settings_set_int (data->settings, PREF_WEBALBUMS_RESIZE_HEIGHT, ImageSizeValues[i_value].height); g_settings_set_int (data->settings, PREF_WEBALBUMS_IMAGES_PER_INDEX, gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (GET_WIDGET ("images_per_index_spinbutton")))); g_settings_set_boolean (data->settings, PREF_WEBALBUMS_SINGLE_INDEX, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("single_index_checkbutton")))); g_settings_set_int (data->settings, PREF_WEBALBUMS_COLUMNS, gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (GET_WIDGET ("cols_spinbutton")))); g_settings_set_boolean (data->settings, PREF_WEBALBUMS_ADAPT_TO_WIDTH, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("adapt_column_checkbutton")))); if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (GET_WIDGET ("sort_combobox")), &iter)) { GthFileDataSort *sort_type; gtk_tree_model_get (GTK_TREE_MODEL (GET_WIDGET ("sort_liststore")), &iter, SORT_TYPE_COLUMN_DATA, &sort_type, -1); g_settings_set_string (data->settings, PREF_WEBALBUMS_SORT_TYPE, sort_type->name); } g_settings_set_boolean (data->settings, PREF_WEBALBUMS_SORT_INVERSE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("reverse_order_checkbutton")))); header = gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("header_entry"))); g_settings_set_string (data->settings, PREF_WEBALBUMS_HEADER, header); footer = gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("footer_entry"))); g_settings_set_string (data->settings, PREF_WEBALBUMS_FOOTER, footer); image_page_header = gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("image_page_header_entry"))); g_settings_set_string (data->settings, PREF_WEBALBUMS_IMAGE_PAGE_HEADER, image_page_header); image_page_footer = gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("image_page_footer_entry"))); g_settings_set_string (data->settings, PREF_WEBALBUMS_IMAGE_PAGE_FOOTER, image_page_footer); theme_name = NULL; { GList *list; list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (GET_WIDGET ("theme_iconview"))); if (list != NULL) { GtkTreePath *path; GtkTreeIter iter; path = g_list_first (list)->data; gtk_tree_model_get_iter (GTK_TREE_MODEL (GET_WIDGET ("theme_liststore")), &iter, path); gtk_tree_model_get (GTK_TREE_MODEL (GET_WIDGET ("theme_liststore")), &iter, THEME_COLUMN_NAME, &theme_name, -1); } g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL); g_list_free (list); } g_return_if_fail (theme_name != NULL); g_settings_set_string (data->settings, PREF_WEBALBUMS_THEME, theme_name); g_settings_set_boolean (data->settings, PREF_WEBALBUMS_ENABLE_THUMBNAIL_CAPTION, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("thumbnail_caption_checkbutton")))); thumbnail_caption = gth_metadata_chooser_get_selection (GTH_METADATA_CHOOSER (data->thumbnail_caption_chooser)); g_settings_set_string (data->settings, PREF_WEBALBUMS_THUMBNAIL_CAPTION, thumbnail_caption); g_settings_set_boolean (data->settings, PREF_WEBALBUMS_ENABLE_IMAGE_ATTRIBUTES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("image_attributes_checkbutton")))); g_settings_set_boolean (data->settings, PREF_WEBALBUMS_ENABLE_IMAGE_DESCRIPTION, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("image_description_checkbutton")))); image_attributes = gth_metadata_chooser_get_selection (GTH_METADATA_CHOOSER (data->image_attributes_chooser)); g_settings_set_string (data->settings, PREF_WEBALBUMS_IMAGE_ATTRIBUTES, image_attributes); /* exec the task */ task = gth_web_exporter_new (data->browser, data->file_list); gth_web_exporter_set_header (GTH_WEB_EXPORTER (task), header); gth_web_exporter_set_footer (GTH_WEB_EXPORTER (task), footer); gth_web_exporter_set_image_page_header (GTH_WEB_EXPORTER (task), image_page_header); gth_web_exporter_set_image_page_footer (GTH_WEB_EXPORTER (task), image_page_footer); gth_web_exporter_set_style (GTH_WEB_EXPORTER (task), theme_name); gth_web_exporter_set_destination (GTH_WEB_EXPORTER (task), destination); gth_web_exporter_set_copy_images (GTH_WEB_EXPORTER (task), g_settings_get_boolean (data->settings, PREF_WEBALBUMS_COPY_IMAGES)); gth_web_exporter_set_resize_images (GTH_WEB_EXPORTER (task), g_settings_get_boolean (data->settings, PREF_WEBALBUMS_RESIZE_IMAGES), g_settings_get_int (data->settings, PREF_WEBALBUMS_RESIZE_WIDTH), g_settings_get_int (data->settings, PREF_WEBALBUMS_RESIZE_HEIGHT)); s_value = g_settings_get_string (data->settings, PREF_WEBALBUMS_SORT_TYPE); sort_type = gth_main_get_sort_type (s_value); gth_web_exporter_set_sort_order (GTH_WEB_EXPORTER (task), sort_type, g_settings_get_boolean (data->settings, PREF_WEBALBUMS_SORT_INVERSE)); g_free (s_value); gth_web_exporter_set_images_per_index (GTH_WEB_EXPORTER (task), g_settings_get_int (data->settings, PREF_WEBALBUMS_IMAGES_PER_INDEX)); gth_web_exporter_set_single_index (GTH_WEB_EXPORTER (task), g_settings_get_boolean (data->settings, PREF_WEBALBUMS_SINGLE_INDEX)); gth_web_exporter_set_columns (GTH_WEB_EXPORTER (task), g_settings_get_int (data->settings, PREF_WEBALBUMS_COLUMNS)); gth_web_exporter_set_adapt_to_width (GTH_WEB_EXPORTER (task), g_settings_get_boolean (data->settings, PREF_WEBALBUMS_ADAPT_TO_WIDTH)); gth_web_exporter_set_thumbnail_caption (GTH_WEB_EXPORTER (task), gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("thumbnail_caption_checkbutton"))) ? thumbnail_caption : ""); gth_web_exporter_set_image_attributes (GTH_WEB_EXPORTER (task), gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("image_description_checkbutton"))), gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("image_attributes_checkbutton"))) ? image_attributes : ""); gth_browser_exec_task (data->browser, task, FALSE); gtk_widget_destroy (data->dialog); g_object_unref (task); g_free (image_attributes); g_free (thumbnail_caption); g_free (theme_name); g_object_unref (destination); }