Commit 92790c48459458fcea97a673f9c766722d212f74

Authored by Perry Werneck
1 parent bb522ebf

Adjustments in dialog actions.

src/include/pw3270/actions.h
@@ -193,7 +193,7 @@ @@ -193,7 +193,7 @@
193 typedef struct _pw3270DialogAction pw3270DialogAction; 193 typedef struct _pw3270DialogAction pw3270DialogAction;
194 typedef struct _pw3270DialogActionClass pw3270DialogActionClass; 194 typedef struct _pw3270DialogActionClass pw3270DialogActionClass;
195 195
196 - pw3270SimpleAction * pw3270_dialog_action_new(GtkWidget * (*factory)(GtkWidget *)); 196 + pw3270SimpleAction * pw3270_dialog_action_new(GtkWidget * (*factory)(pw3270SimpleAction *action, GtkWidget *));
197 197
198 // 198 //
199 // V3270 Property Action 199 // V3270 Property Action
src/objects/actions/dialog.c
@@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@
45 pw3270SimpleAction parent; 45 pw3270SimpleAction parent;
46 46
47 GtkWidget * dialog; 47 GtkWidget * dialog;
48 - GtkWidget * (*factory)(GtkWidget *); 48 + GtkWidget * (*factory)(pw3270SimpleAction *, GtkWidget *);
49 49
50 }; 50 };
51 51
@@ -82,7 +82,7 @@ @@ -82,7 +82,7 @@
82 82
83 } 83 }
84 84
85 - pw3270SimpleAction * pw3270_dialog_action_new(GtkWidget * (*factory)(GtkWidget *)) { 85 + pw3270SimpleAction * pw3270_dialog_action_new(GtkWidget * (*factory)(pw3270SimpleAction *, GtkWidget *)) {
86 86
87 pw3270DialogAction * action = (pw3270DialogAction *) g_object_new(PW3270_TYPE_DIALOG_ACTION, NULL); 87 pw3270DialogAction * action = (pw3270DialogAction *) g_object_new(PW3270_TYPE_DIALOG_ACTION, NULL);
88 action->factory = factory; 88 action->factory = factory;
@@ -109,7 +109,7 @@ @@ -109,7 +109,7 @@
109 if(action->dialog || !action->factory) 109 if(action->dialog || !action->factory)
110 return; 110 return;
111 111
112 - action->dialog = action->factory(terminal); 112 + action->dialog = action->factory((pw3270SimpleAction *) object, terminal);
113 pw3270_action_notify_enabled(G_ACTION(action)); 113 pw3270_action_notify_enabled(G_ACTION(action));
114 114
115 if(action->dialog) { 115 if(action->dialog) {
src/objects/actions/save.c
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 #include <pw3270/application.h> 38 #include <pw3270/application.h>
39 39
40 40
41 - static GtkWidget * factory(GtkWidget *terminal); 41 + static GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal);
42 static void response(GtkWidget *dialog, gint response_id, GtkWidget *terminal); 42 static void response(GtkWidget *dialog, gint response_id, GtkWidget *terminal);
43 43
44 GAction * pw3270_action_save_session_as_new(void) { 44 GAction * pw3270_action_save_session_as_new(void) {
@@ -46,19 +46,19 @@ @@ -46,19 +46,19 @@
46 pw3270SimpleAction * action = pw3270_dialog_action_new(factory); 46 pw3270SimpleAction * action = pw3270_dialog_action_new(factory);
47 47
48 action->parent.name = "save.session.as"; 48 action->parent.name = "save.session.as";
49 - action->label = N_("Save As"); 49 + action->label = _("Save As");
50 action->icon_name = "document-save-as"; 50 action->icon_name = "document-save-as";
51 - action->tooltip = N_("Save session properties to file"); 51 + action->tooltip = _("Save session properties");
52 52
53 return G_ACTION(action); 53 return G_ACTION(action);
54 54
55 } 55 }
56 56
57 - GtkWidget * factory(GtkWidget *terminal) { 57 + GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal) {
58 58
59 GtkWidget * dialog = 59 GtkWidget * dialog =
60 gtk_file_chooser_dialog_new( 60 gtk_file_chooser_dialog_new(
61 - _("Save session properties"), 61 + action->tooltip,
62 GTK_WINDOW(gtk_widget_get_toplevel(terminal)), 62 GTK_WINDOW(gtk_widget_get_toplevel(terminal)),
63 GTK_FILE_CHOOSER_ACTION_SAVE, 63 GTK_FILE_CHOOSER_ACTION_SAVE,
64 _("Save"), GTK_RESPONSE_OK, 64 _("Save"), GTK_RESPONSE_OK,
src/objects/application/actions/open.c
@@ -63,7 +63,7 @@ @@ -63,7 +63,7 @@
63 return filename; 63 return filename;
64 } 64 }
65 65
66 - void pw3270_application_open_activated(GSimpleAction * action, GVariant *parameter, gpointer application) { 66 + void pw3270_application_open_activated(GSimpleAction * action, GVariant G_GNUC_UNUSED(*parameter), gpointer G_GNUC_UNUSED(application)) {
67 67
68 debug("%s",__FUNCTION__); 68 debug("%s",__FUNCTION__);
69 g_simple_action_set_enabled(action,FALSE); 69 g_simple_action_set_enabled(action,FALSE);
@@ -71,22 +71,28 @@ @@ -71,22 +71,28 @@
71 g_simple_action_set_enabled(action,TRUE); 71 g_simple_action_set_enabled(action,TRUE);
72 } 72 }
73 73
74 - void pw3270_application_open_tab_activated(GSimpleAction * action, GVariant *parameter, gpointer application) { 74 + void pw3270_application_open_tab_activated(GSimpleAction * action, GVariant G_GNUC_UNUSED(*parameter), gpointer application) {
75 75
76 debug("%s",__FUNCTION__); 76 debug("%s",__FUNCTION__);
77 g_simple_action_set_enabled(action,FALSE); 77 g_simple_action_set_enabled(action,FALSE);
78 g_autofree gchar * session_file_name = get_session_file_name(GTK_APPLICATION(application),_("Open session in new tab")); 78 g_autofree gchar * session_file_name = get_session_file_name(GTK_APPLICATION(application),_("Open session in new tab"));
79 79
  80 + if(session_file_name) {
  81 + pw3270_terminal_new(GTK_WIDGET(gtk_application_get_active_window(GTK_APPLICATION(application))), session_file_name);
  82 + }
80 83
81 g_simple_action_set_enabled(action,TRUE); 84 g_simple_action_set_enabled(action,TRUE);
82 } 85 }
83 86
84 - void pw3270_application_open_window_activated(GSimpleAction * action, GVariant *parameter, gpointer application) { 87 + void pw3270_application_open_window_activated(GSimpleAction * action, GVariant G_GNUC_UNUSED(*parameter), gpointer application) {
85 88
86 debug("%s",__FUNCTION__); 89 debug("%s",__FUNCTION__);
87 g_simple_action_set_enabled(action,FALSE); 90 g_simple_action_set_enabled(action,FALSE);
88 g_autofree gchar * session_file_name = get_session_file_name(GTK_APPLICATION(application),_("Open session in new window")); 91 g_autofree gchar * session_file_name = get_session_file_name(GTK_APPLICATION(application),_("Open session in new window"));
89 92
  93 + if(session_file_name) {
  94 +// pw3270_terminal_new(pw3270_application_window_new(GTK_APPLICATION(application)), session_file_name);
  95 + }
90 96
91 g_simple_action_set_enabled(action,TRUE); 97 g_simple_action_set_enabled(action,TRUE);
92 } 98 }
src/objects/application/application.c
@@ -310,49 +310,6 @@ @@ -310,49 +310,6 @@
310 310
311 } 311 }
312 312
313 - /*  
314 - // Create conditional actions.  
315 - static const struct {  
316 - const gchar * label;  
317 - const gchar * tooltip;  
318 - const gchar * action_name;  
319 - const gchar * icon_name;  
320 - const gchar * property_name;  
321 - void (*activate)(GAction *action, GVariant *parameter, GtkWidget *terminal);  
322 - } conditional_actions[] = {  
323 - {  
324 - .label = N_("Save copy"),  
325 - .action_name = "save.copy",  
326 - .property_name = "has_copy",  
327 - .activate = pw3270_application_save_copy_activated  
328 - },  
329 - {  
330 - .label = N_("Print copy"),  
331 - .action_name = "print.copy",  
332 - .icon_name = "printer",  
333 - .property_name = "has_copy",  
334 - .activate = pw3270_application_print_copy_activated  
335 - }  
336 - };  
337 -  
338 - for(ix = 0; ix < G_N_ELEMENTS(conditional_actions); ix++) {  
339 -  
340 - pw3270SimpleAction * action = PW3270_SIMPLE_ACTION(v3270_conditional_action_new(terminal,conditional_actions[ix].property_name));  
341 -  
342 - action->parent.name = conditional_actions[ix].action_name;  
343 - action->label = conditional_actions[ix].label;  
344 - action->tooltip = conditional_actions[ix].tooltip;  
345 - action->icon_name = conditional_actions[ix].icon_name;  
346 - PW3270_ACTION(action)->activate = conditional_actions[ix].activate;  
347 -  
348 - g_action_map_add_action(  
349 - G_ACTION_MAP(window),  
350 - G_ACTION(action)  
351 - );  
352 -  
353 - }  
354 - */  
355 -  
356 // Present the new window 313 // Present the new window
357 pw3270_window_set_current_page(window,0); 314 pw3270_window_set_current_page(window,0);
358 gtk_window_present(GTK_WINDOW(window)); 315 gtk_window_present(GTK_WINDOW(window));
src/objects/window/actions/hostproperties.c
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
33 #include <v3270/settings.h> 33 #include <v3270/settings.h>
34 #include <v3270/dialogs.h> 34 #include <v3270/dialogs.h>
35 35
36 - static GtkWidget * factory(GtkWidget *terminal); 36 + static GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal);
37 37
38 GAction * pw3270_action_host_properties_new(void) { 38 GAction * pw3270_action_host_properties_new(void) {
39 39
@@ -47,7 +47,7 @@ @@ -47,7 +47,7 @@
47 return G_ACTION(action); 47 return G_ACTION(action);
48 } 48 }
49 49
50 - GtkWidget * factory(GtkWidget *terminal) { 50 + GtkWidget * factory(pw3270SimpleAction G_GNUC_UNUSED(*action), GtkWidget *terminal) {
51 51
52 GtkWidget * dialog = v3270_settings_dialog_new(); 52 GtkWidget * dialog = v3270_settings_dialog_new();
53 V3270Settings * settings = GTK_V3270_SETTINGS(v3270_host_settings_new()); 53 V3270Settings * settings = GTK_V3270_SETTINGS(v3270_host_settings_new());
src/objects/window/actions/sessionproperties.c
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 #include <v3270/dialogs.h> 34 #include <v3270/dialogs.h>
35 #include <v3270/colorscheme.h> 35 #include <v3270/colorscheme.h>
36 36
37 - static GtkWidget * factory(GtkWidget *terminal); 37 + static GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal);
38 38
39 GAction * pw3270_action_session_properties_new(void) { 39 GAction * pw3270_action_session_properties_new(void) {
40 40
@@ -42,20 +42,20 @@ @@ -42,20 +42,20 @@
42 42
43 action->parent.name = "session.properties"; 43 action->parent.name = "session.properties";
44 action->icon_name = "preferences-other"; 44 action->icon_name = "preferences-other";
45 - action->label = N_("Session properties"); 45 + action->label = _("Session properties");
46 46
47 return G_ACTION(action); 47 return G_ACTION(action);
48 48
49 49
50 } 50 }
51 51
52 - GtkWidget * factory(GtkWidget *terminal) { 52 + GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal) {
53 53
54 size_t ix; 54 size_t ix;
55 55
56 GtkWidget * dialog = v3270_settings_dialog_new(); 56 GtkWidget * dialog = v3270_settings_dialog_new();
57 57
58 - gtk_window_set_title(GTK_WINDOW(dialog), _("Session properties")); 58 + gtk_window_set_title(GTK_WINDOW(dialog), action->label);
59 59
60 // Add settings pages. 60 // Add settings pages.
61 GtkWidget * elements[] = { 61 GtkWidget * elements[] = {
src/objects/window/actions/setcolors.c
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 #include <v3270/dialogs.h> 34 #include <v3270/dialogs.h>
35 #include <v3270/colorscheme.h> 35 #include <v3270/colorscheme.h>
36 36
37 - static GtkWidget * factory(GtkWidget *terminal); 37 + static GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal);
38 38
39 GAction * pw3270_set_color_action_new(void) { 39 GAction * pw3270_set_color_action_new(void) {
40 40
@@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
48 48
49 } 49 }
50 50
51 - GtkWidget * factory(GtkWidget *terminal) { 51 + GtkWidget * factory(pw3270SimpleAction G_GNUC_UNUSED(*action), GtkWidget *terminal) {
52 52
53 return v3270_settings_get_edit_dialog(v3270_color_settings_new(),terminal,FALSE); 53 return v3270_settings_get_edit_dialog(v3270_color_settings_new(),terminal,FALSE);
54 54