static void irc_network_dialog_destroy_cb (GtkWidget *widget, EmpathyIrcNetworkChooserDialog *self) { EmpathyIrcNetworkChooserDialogPriv *priv = GET_PRIV (self); EmpathyIrcNetwork *network; GtkTreeIter iter, filter_iter; priv->changed = TRUE; network = dup_selected_network (self, &iter); if (network == NULL) return; /* name could be changed */ gtk_list_store_set (GTK_LIST_STORE (priv->store), &iter, COL_NETWORK_NAME, empathy_irc_network_get_name (network), -1); filter_iter = iter_to_filter_iter (self, &iter); scroll_to_iter (self, &filter_iter); gtk_widget_grab_focus (priv->treeview); g_object_unref (network); }
static void edit_network (EmpathyIrcNetworkChooserDialog *self) { EmpathyIrcNetwork *network; network = dup_selected_network (self, NULL); if (network == NULL) return; display_irc_network_dialog (self, network); g_object_unref (network); }
static void remove_network (EmpathyIrcNetworkChooserDialog *self) { EmpathyIrcNetworkChooserDialogPriv *priv = GET_PRIV (self); EmpathyIrcNetwork *network; GtkTreeIter iter; network = dup_selected_network (self, &iter); if (network == NULL) return; /* Hide the search after picking the network to get the right one */ gtk_widget_hide (priv->search); DEBUG ("Remove network %s", empathy_irc_network_get_name (network)); /* Delete network and select next network */ if (gtk_list_store_remove (priv->store, &iter)) { GtkTreeIter filter_iter = iter_to_filter_iter (self, &iter); select_iter (self, &filter_iter, TRUE); } else { /* this should only happen if the last network was deleted */ GtkTreeIter last, filter_iter; gint n_elements; n_elements = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (priv->store), NULL); if (n_elements > 0) { gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (priv->store), &last, NULL, (n_elements-1)); filter_iter = iter_to_filter_iter (self, &last); select_iter (self, &filter_iter, TRUE); } } empathy_irc_network_manager_remove (priv->network_manager, network); gtk_widget_grab_focus (priv->treeview); g_object_unref (network); }
static void treeview_changed_cb (GtkTreeView *treeview, TpawIrcNetworkChooserDialog *self) { TpawIrcNetwork *network; network = dup_selected_network (self, NULL); if (network == self->priv->network) { g_clear_object (&network); return; } tp_clear_object (&self->priv->network); /* Transfer the reference */ self->priv->network = network; self->priv->changed = TRUE; }
static void treeview_changed_cb (GtkTreeView *treeview, EmpathyIrcNetworkChooserDialog *self) { EmpathyIrcNetworkChooserDialogPriv *priv = GET_PRIV (self); EmpathyIrcNetwork *network; network = dup_selected_network (self, NULL); if (network == priv->network) { g_object_unref (network); return; } tp_clear_object (&priv->network); /* Transfer the reference */ priv->network = network; priv->changed = TRUE; }