Commit 953d553a8033b304cef459b5a55abbe7fb2d673a
1 parent
4ef97a3c
Exists in
master
and in
1 other branch
Show host properties when terminal widget is activated without any host
info.
Showing
1 changed file
with
20 additions
and
6 deletions
Show diff stats
src/terminal/actions.c
... | ... | @@ -30,6 +30,7 @@ |
30 | 30 | #include <config.h> |
31 | 31 | #include <terminal.h> |
32 | 32 | #include <lib3270/actions.h> |
33 | + #include <v3270/settings.h> | |
33 | 34 | |
34 | 35 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
35 | 36 | |
... | ... | @@ -53,17 +54,30 @@ LIB3270_EXPORT int v3270_reconnect(GtkWidget *widget) |
53 | 54 | return lib3270_reconnect(GTK_V3270(widget)->host,0); |
54 | 55 | } |
55 | 56 | |
56 | -void v3270_activate(GtkWidget *widget) | |
57 | -{ | |
57 | +void v3270_activate(GtkWidget *widget) { | |
58 | + | |
58 | 59 | v3270 * terminal = GTK_V3270(widget); |
59 | 60 | |
60 | 61 | terminal->activity.timestamp = time(0); |
61 | 62 | |
62 | - if(lib3270_is_connected(terminal->host)) | |
63 | + if(lib3270_is_connected(terminal->host)) { | |
63 | 64 | lib3270_enter(terminal->host); |
64 | - else if(lib3270_get_url(terminal->host)) | |
65 | + } else if(lib3270_get_url(terminal->host)) { | |
65 | 66 | v3270_reconnect(widget); |
66 | - else | |
67 | - g_warning("Terminal widget %p activated without connection or valid url",terminal); | |
67 | + } else { | |
68 | + g_message("Terminal widget activated without connection or valid url"); | |
69 | + | |
70 | + GtkWidget * dialog = v3270_settings_dialog_new(); | |
71 | + gtk_container_add(GTK_CONTAINER(dialog), v3270_host_settings_new()); | |
72 | + gtk_window_set_title(GTK_WINDOW(dialog),_("Setup host properties")); | |
73 | + | |
74 | + gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(gtk_widget_get_toplevel(widget))); | |
75 | + | |
76 | + v3270_settings_dialog_set_terminal_widget(dialog, widget); | |
77 | + g_signal_connect(dialog,"close",G_CALLBACK(gtk_widget_destroy),NULL); | |
78 | + g_signal_connect(dialog,"response",G_CALLBACK(v3270_setttings_dialog_response),NULL); | |
79 | + | |
80 | + gtk_widget_show_all(dialog); | |
81 | + } | |
68 | 82 | } |
69 | 83 | ... | ... |