static void accept_connection_dialog (GstTool *tool) { GstConnectionDialog *dialog; GtkTreeSelection *selection; GtkTreeIter iter; dialog = GST_NETWORK_TOOL (tool)->dialog; connection_dialog_hide (dialog); if (dialog->changed) { connection_save (dialog); selection = gtk_tree_view_get_selection (GST_NETWORK_TOOL (tool)->interfaces_list); if (gtk_tree_selection_get_selected (selection, NULL, &iter)) { ifaces_model_modify_interface_at_iter (&iter); g_signal_emit_by_name (G_OBJECT (selection), "changed"); } gst_tool_commit_async (tool, OOBS_OBJECT (GST_NETWORK_TOOL (tool)->ifaces_config), _("Changing interface configuration"), on_configuration_changed, tool); } g_object_unref (dialog->iface); if (dialog->standalone) gtk_main_quit (); }
static void host_aliases_dialog_save (GtkTreeIter *iter) { GtkTreeView *list; GtkTreeModel *model; GtkWidget *address, *aliases; GtkTextBuffer *buffer; OobsStaticHost *host; GList *aliases_list; address = gst_dialog_get_widget (tool->main_dialog, "host_alias_address"); aliases = gst_dialog_get_widget (tool->main_dialog, "host_alias_list"); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (aliases)); aliases_list = split_buffer_content (buffer); if (iter) { OobsListIter *list_iter; list = GST_NETWORK_TOOL (tool)->host_aliases_list; model = gtk_tree_view_get_model (list); gtk_tree_model_get (model, iter, COL_HOST_OBJECT, &host, COL_HOST_ITER, &list_iter, -1); oobs_static_host_set_ip_address (host, gtk_entry_get_text (GTK_ENTRY (address))); oobs_static_host_set_aliases (host, aliases_list); host_aliases_modify_at_iter (iter, host, list_iter); oobs_list_iter_free (list_iter); g_object_unref (host); } else { OobsList *list; OobsListIter list_iter; list = oobs_hosts_config_get_static_hosts (GST_NETWORK_TOOL (tool)->hosts_config); host = oobs_static_host_new (gtk_entry_get_text (GTK_ENTRY (address)), aliases_list); oobs_list_append (list, &list_iter); oobs_list_set (list, &list_iter, host); host_aliases_add (host, &list_iter); } gst_tool_commit (tool, OOBS_OBJECT (GST_NETWORK_TOOL (tool)->hosts_config)); }
gboolean on_hostname_focus_out (GtkWidget *widget, GdkEventFocus *event, gpointer data) { GstNetworkTool *tool; gboolean changed; const gchar *hostname; tool = GST_NETWORK_TOOL (gst_dialog_get_tool (GST_DIALOG (data))); changed = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "content-changed")); hostname = gtk_entry_get_text (GTK_ENTRY (widget)); if (changed && hostname && *hostname) { GtkWidget *dialog; gint res; dialog = gtk_message_dialog_new (GTK_WINDOW (GST_TOOL (tool)->main_dialog), GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, _("The host name has changed"), NULL); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), _("This will prevent you " "from launching new applications, and so you will " "have to log in again. Continue anyway?"), NULL); gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, _("Change _Host name"), GTK_RESPONSE_ACCEPT, NULL); res = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); if (res == GTK_RESPONSE_ACCEPT) { oobs_hosts_config_set_hostname (tool->hosts_config, hostname); oobs_object_commit (OOBS_OBJECT (tool->hosts_config)); } else { gtk_entry_set_text (GTK_ENTRY (widget), oobs_hosts_config_get_hostname (tool->hosts_config)); } } g_object_set_data (G_OBJECT (widget), "content-changed", GINT_TO_POINTER (FALSE)); return FALSE; }
gboolean on_domain_focus_out (GtkWidget *widget, GdkEventFocus *event, gpointer data) { GstNetworkTool *tool; gboolean changed; const gchar *domain; tool = GST_NETWORK_TOOL (gst_dialog_get_tool (GST_DIALOG (data))); changed = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "content-changed")); domain = gtk_entry_get_text (GTK_ENTRY (widget)); if (changed) { oobs_hosts_config_set_domainname (tool->hosts_config, domain); oobs_object_commit (OOBS_OBJECT (tool->hosts_config)); } g_object_set_data (G_OBJECT (widget), "content-changed", GINT_TO_POINTER (FALSE)); return FALSE; }
void on_iface_toggled (GtkCellRendererToggle *renderer, gchar *path_str, gpointer data) { GtkTreePath *path; GtkTreeModel *model = GTK_TREE_MODEL (data); GtkTreeIter iter; gboolean active, inconsistent; OobsIface *iface; path = gtk_tree_path_new_from_string (path_str); if (gtk_tree_model_get_iter (model, &iter, path)) { gtk_tree_model_get (model, &iter, COL_ACTIVE, &active, COL_INCONSISTENT, &inconsistent, COL_OBJECT, &iface, -1); if (!inconsistent) { active ^= 1; oobs_iface_set_active (iface, active); oobs_iface_set_auto (iface, active); ifaces_model_modify_interface_at_iter (&iter); gst_tool_commit_async (tool, OOBS_OBJECT (GST_NETWORK_TOOL (tool)->ifaces_config), _("Changing interface configuration"), on_configuration_changed, tool); } g_object_unref (iface); } gtk_tree_path_free (path); }
void on_host_aliases_delete_clicked (GtkWidget *widget, gpointer data) { GtkTreeSelection *selection; GtkTreeView *list; GtkTreeModel *model; GtkTreeIter iter; OobsList *hosts_list; OobsListIter *list_iter; list = GST_NETWORK_TOOL (tool)->host_aliases_list; selection = gtk_tree_view_get_selection (list); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gtk_tree_model_get (model, &iter, COL_HOST_ITER, &list_iter, -1); hosts_list = oobs_hosts_config_get_static_hosts (GST_NETWORK_TOOL (tool)->hosts_config); oobs_list_remove (hosts_list, list_iter); gtk_list_store_remove (GTK_LIST_STORE (model), &iter); oobs_list_iter_free (list_iter); oobs_object_commit (OOBS_OBJECT (GST_NETWORK_TOOL (tool)->hosts_config)); } }