From 76737a9e39a1f6408c869e403e7ef8c98d505675 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 8 Nov 2019 14:31:33 -0300 Subject: [PATCH] Updating settings dialogs. --- src/objects/window/actions/setcolors.c | 6 +----- src/objects/window/actions/sethost.c | 40 ++++++++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/src/objects/window/actions/setcolors.c b/src/objects/window/actions/setcolors.c index 0412015..9443905 100644 --- a/src/objects/window/actions/setcolors.c +++ b/src/objects/window/actions/setcolors.c @@ -50,11 +50,7 @@ GtkWidget * factory(GtkWidget *terminal) { - GtkWidget * dialog = v3270_settings_dialog_new(terminal, v3270_color_selection_new()); - v3270_dialog_setup(dialog,_("Color setup"),_("_Save")); - g_signal_connect(dialog,"response",G_CALLBACK(gtk_widget_destroy),NULL); - - return dialog; + return v3270_settings_get_edit_dialog(v3270_color_selection_new(),terminal,FALSE); } diff --git a/src/objects/window/actions/sethost.c b/src/objects/window/actions/sethost.c index c8f8675..8f4b13e 100644 --- a/src/objects/window/actions/sethost.c +++ b/src/objects/window/actions/sethost.c @@ -42,17 +42,24 @@ action->parent.name = "set.host"; action->group.id = LIB3270_ACTION_GROUP_OFFLINE; action->icon_name = "network-server"; - action->label = N_("Configure host"); + action->label = N_("Host definition"); return G_ACTION(action); } - static void on_response(GtkDialog *dialog, gint response_id, GtkWidget *settings) { - - v3270_settings_on_dialog_response(dialog,response_id,settings); + static void on_response(GtkWidget *dialog, gint response_id, GtkWidget *settings) { if(response_id == GTK_RESPONSE_APPLY) { - v3270_reconnect(v3270_settings_get_terminal_widget(settings)); + + GtkWidget * terminal = v3270_settings_get_terminal_widget(settings); + + v3270_settings_dialog_apply(dialog); + if(terminal) + lib3270_reconnect(v3270_get_session(terminal),0); + + } else { + + v3270_settings_dialog_revert(dialog); } gtk_widget_destroy(GTK_WIDGET(dialog)); @@ -61,20 +68,21 @@ GtkWidget * factory(GtkWidget *terminal) { - GtkWidget * settings = v3270_host_select_new(); - GtkWidget * dialog = - v3270_settings_dialog_new( - terminal, - settings - ); + GtkWidget * dialog = v3270_settings_dialog_new(); + V3270Settings * settings = GTK_V3270_SETTINGS(v3270_host_select_new()); - if(dialog) { + if(settings->title) + gtk_window_set_title(GTK_WINDOW(dialog), settings->title); - v3270_dialog_setup(dialog,_("Setup host"),_("C_onnect")); - gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); - g_signal_connect(dialog,"response",G_CALLBACK(on_response),settings); + gtk_container_add(GTK_CONTAINER(dialog), GTK_WIDGET(settings)); - } + gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(gtk_widget_get_toplevel(terminal))); + gtk_window_set_modal(GTK_WINDOW(dialog),TRUE); + + v3270_settings_dialog_set_terminal_widget(dialog, terminal); + + g_signal_connect(dialog,"close",G_CALLBACK(gtk_widget_destroy),NULL); + g_signal_connect(dialog,"response",G_CALLBACK(v3270_setttings_dialog_response),settings); return dialog; -- libgit2 0.21.2