Commit f0d77a7a2fd8bd969f24bf219203929f760d2ee5

Authored by Perry Werneck
1 parent 9b7064fe
Exists in master and in 1 other branch develop

Fixing keypad view options.

src/main/builder.c
@@ -21,7 +21,8 @@ @@ -21,7 +21,8 @@
21 #include <pw3270/application.h> 21 #include <pw3270/application.h>
22 #include <pw3270/keypad.h> 22 #include <pw3270/keypad.h>
23 23
24 - static GMenu * get_keypad_menu(GApplication *application) { 24 + /*
  25 + static GMenu * keypad_menu_new(GApplication *application) {
25 26
26 GList * keypads = pw3270_application_get_keypad_models(application); 27 GList * keypads = pw3270_application_get_keypad_models(application);
27 28
@@ -41,6 +42,7 @@ @@ -41,6 +42,7 @@
41 return menu; 42 return menu;
42 43
43 } 44 }
  45 + */
44 46
45 GtkBuilder * pw3270_application_builder_new(GApplication *application) { 47 GtkBuilder * pw3270_application_builder_new(GApplication *application) {
46 48
@@ -100,11 +102,13 @@ @@ -100,11 +102,13 @@
100 // 102 //
101 // View options 103 // View options
102 // 104 //
103 - GMenu * keypad_menu = get_keypad_menu(application); 105 + GList * keypads = pw3270_application_get_keypad_models(application);
104 106
105 - if(keypad_menu) { 107 + if(keypads) {
106 108
107 static const gchar * placeholders[] = { 109 static const gchar * placeholders[] = {
  110 + "app-menu-view-placeholder",
  111 + "top-menu-view-placeholder",
108 "view-menu-placeholder", 112 "view-menu-placeholder",
109 "view-when-offline-placeholder", 113 "view-when-offline-placeholder",
110 "view-when-online-placeholder" 114 "view-when-online-placeholder"
@@ -114,13 +118,33 @@ @@ -114,13 +118,33 @@
114 118
115 placeholder = gtk_builder_get_object(builder, placeholders[ix]); 119 placeholder = gtk_builder_get_object(builder, placeholders[ix]);
116 120
117 - if(placeholder && G_IS_MENU(placeholder)) {  
118 - g_menu_append_item(G_MENU(placeholder), g_menu_item_new_submenu(_("Keypads"),G_MENU_MODEL(keypad_menu))); 121 + if(placeholder) {
  122 +
  123 + if(G_IS_MENU(placeholder)) {
  124 +
  125 + GMenu * menu = g_menu_new();
  126 +
  127 + // Create keypad items.
  128 + GList *item;
  129 + for(item = keypads; item; item = g_list_next(item)) {
  130 + GObject * model = G_OBJECT(item->data);
  131 + g_autofree gchar * action_name = g_strconcat("win.keypad.",pw3270_keypad_model_get_name(model),NULL);
  132 + g_menu_append(menu,pw3270_keypad_model_get_label(model),action_name);
  133 + }
  134 +
  135 + g_menu_append_item(G_MENU(placeholder), g_menu_item_new_submenu(_("Keypads"),G_MENU_MODEL(menu)));
  136 +
  137 + g_object_unref(menu);
  138 +
  139 + } else {
  140 +
  141 + g_message("Placeholder '%s' is invalid",placeholders[ix]);
  142 +
  143 + }
119 } 144 }
120 145
121 } 146 }
122 147
123 - g_object_unref(keypad_menu);  
124 } 148 }
125 149
126 return builder; 150 return builder;
src/objects/application/application.c
@@ -482,11 +482,6 @@ void startup(GApplication *application) { @@ -482,11 +482,6 @@ void startup(GApplication *application) {
482 } 482 }
483 483
484 // 484 //
485 - // Setup application menus  
486 - //  
487 - g_autoptr(GtkBuilder) builder = pw3270_application_builder_new(application);  
488 -  
489 - //  
490 // Load keypad models 485 // Load keypad models
491 // 486 //
492 { 487 {
@@ -511,6 +506,13 @@ void startup(GApplication *application) { @@ -511,6 +506,13 @@ void startup(GApplication *application) {
511 } 506 }
512 } 507 }
513 508
  509 + //
  510 + // Setup application menus
  511 + //
  512 + debug("%s","AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
  513 +
  514 + g_autoptr(GtkBuilder) builder = pw3270_application_builder_new(application);
  515 +
514 if(gtk_application_prefers_app_menu(GTK_APPLICATION(application))) 516 if(gtk_application_prefers_app_menu(GTK_APPLICATION(application)))
515 gtk_application_set_app_menu(GTK_APPLICATION (application), G_MENU_MODEL(gtk_builder_get_object (builder, "app-menu"))); 517 gtk_application_set_app_menu(GTK_APPLICATION (application), G_MENU_MODEL(gtk_builder_get_object (builder, "app-menu")));
516 518
ui/linux.ui.xml
@@ -330,7 +330,7 @@ @@ -330,7 +330,7 @@
330 330
331 </submenu> 331 </submenu>
332 332
333 - <submenu id="view-menu-placeholder"> 333 + <submenu id="top-menu-view-placeholder">
334 334
335 <attribute name='label' translatable='yes'>_View</attribute> 335 <attribute name='label' translatable='yes'>_View</attribute>
336 336
ui/macos.ui.xml
@@ -330,7 +330,7 @@ @@ -330,7 +330,7 @@
330 330
331 </submenu> 331 </submenu>
332 332
333 - <submenu id="view-menu-placeholder"> 333 + <submenu id="top-menu-view-placeholder">
334 334
335 <attribute name='label' translatable='yes'>_View</attribute> 335 <attribute name='label' translatable='yes'>_View</attribute>
336 336
ui/windows.ui.xml
@@ -330,7 +330,7 @@ @@ -330,7 +330,7 @@
330 330
331 </submenu> 331 </submenu>
332 332
333 - <submenu id="view-menu-placeholder"> 333 + <submenu id="top-menu-view-placeholder">
334 334
335 <attribute name='label' translatable='yes'>_View</attribute> 335 <attribute name='label' translatable='yes'>_View</attribute>
336 336