Commit 4ff7cbe02c60df3a5fed41d6ee35d6865869507f

Authored by perry.werneck@gmail.com
1 parent 0c06052f

Incluindo opcao para acesso a hosts com 8 cores

src/pw3270/actions.c
@@ -73,6 +73,7 @@ static void connect_action(GtkAction *action, GtkWidget *widget) @@ -73,6 +73,7 @@ static void connect_action(GtkAction *action, GtkWidget *widget)
73 73
74 if(host) 74 if(host)
75 { 75 {
  76 + lib3270_set_options(v3270_get_session(widget),0);
76 v3270_connect(widget,host); 77 v3270_connect(widget,host);
77 return; 78 return;
78 } 79 }
@@ -80,6 +81,7 @@ static void connect_action(GtkAction *action, GtkWidget *widget) @@ -80,6 +81,7 @@ static void connect_action(GtkAction *action, GtkWidget *widget)
80 host = get_string_from_config("host","uri",""); 81 host = get_string_from_config("host","uri","");
81 if(*host) 82 if(*host)
82 { 83 {
  84 + load_3270_options_from_config(widget);
83 v3270_connect(widget,host); 85 v3270_connect(widget,host);
84 g_free(host); 86 g_free(host);
85 return; 87 return;
src/pw3270/dialog.c
@@ -32,7 +32,46 @@ @@ -32,7 +32,46 @@
32 #include "globals.h" 32 #include "globals.h"
33 #include <pw3270/v3270.h> 33 #include <pw3270/v3270.h>
34 34
35 -/*--[ Implement ]------------------------------------------------------------------------------------*/ 35 + static const struct _lib3270_options
  36 + {
  37 + LIB3270_OPTION value;
  38 + const gchar * key;
  39 + const gchar * text;
  40 + const gchar * tooltip;
  41 + } lib3270_options[] =
  42 + {
  43 + {
  44 + LIB3270_OPTION_COLOR8,
  45 + "color8",
  46 + N_( "_8 colors" ),
  47 + N_( "If active, pw3270 will respond to a Query(Color) with a list of 8 supported colors." )
  48 + },
  49 +
  50 + {
  51 + LIB3270_OPTION_AS400,
  52 + "as400",
  53 + N_( "Host is AS_400" ),
  54 + NULL
  55 + },
  56 +
  57 + };
  58 +
  59 +
  60 +/*--[ Globals ]--------------------------------------------------------------------------------------*/
  61 +
  62 + void load_3270_options_from_config(GtkWidget *widget)
  63 + {
  64 + int f;
  65 + LIB3270_OPTION opt = 0;
  66 +
  67 + for(f=0;f<G_N_ELEMENTS(lib3270_options);f++)
  68 + {
  69 + if(get_boolean_from_config("host",lib3270_options[f].key,FALSE))
  70 + opt |= lib3270_options[f].value;
  71 + }
  72 + lib3270_set_options(v3270_get_session(widget),opt);
  73 + }
  74 +
36 75
37 static void charset_changed(GtkComboBox *widget,gchar **encoding) 76 static void charset_changed(GtkComboBox *widget,gchar **encoding)
38 { 77 {
@@ -286,28 +325,9 @@ @@ -286,28 +325,9 @@
286 return 0; 325 return 0;
287 } 326 }
288 327
  328 +
289 void hostname_action(GtkAction *action, GtkWidget *widget) 329 void hostname_action(GtkAction *action, GtkWidget *widget)
290 { 330 {
291 - static const struct _option  
292 - {  
293 - LIB3270_OPTION value;  
294 - const gchar * text;  
295 - const gchar * tooltip;  
296 - } option[] =  
297 - {  
298 - {  
299 - LIB3270_OPTION_COLOR8,  
300 - N_( "_8 colors" ),  
301 - N_( "If active, pw3270 will respond to a Query(Color) with a list of 8 supported colors." )  
302 - },  
303 -  
304 - {  
305 - LIB3270_OPTION_AS400,  
306 - N_( "Host is AS_400" ),  
307 - NULL  
308 - },  
309 - };  
310 -  
311 const gchar * title = g_object_get_data(G_OBJECT(action),"title"); 331 const gchar * title = g_object_get_data(G_OBJECT(action),"title");
312 gchar * cfghost = get_string_from_config("host","uri",""); 332 gchar * cfghost = get_string_from_config("host","uri","");
313 gchar * hostname; 333 gchar * hostname;
@@ -318,7 +338,7 @@ @@ -318,7 +338,7 @@
318 GtkEntry * host = GTK_ENTRY(gtk_entry_new()); 338 GtkEntry * host = GTK_ENTRY(gtk_entry_new());
319 GtkEntry * port = GTK_ENTRY(gtk_entry_new()); 339 GtkEntry * port = GTK_ENTRY(gtk_entry_new());
320 GtkToggleButton * sslcheck = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic( _( "_Secure connection" ) )); 340 GtkToggleButton * sslcheck = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic( _( "_Secure connection" ) ));
321 - GtkToggleButton * optcheck[G_N_ELEMENTS(option)]; 341 + GtkToggleButton * optcheck[G_N_ELEMENTS(lib3270_options)];
322 GtkWidget * dialog = gtk_dialog_new_with_buttons( gettext(title ? title : N_( "Select hostname" )), 342 GtkWidget * dialog = gtk_dialog_new_with_buttons( gettext(title ? title : N_( "Select hostname" )),
323 GTK_WINDOW(gtk_widget_get_toplevel(widget)), 343 GTK_WINDOW(gtk_widget_get_toplevel(widget)),
324 GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT, 344 GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
@@ -347,20 +367,19 @@ @@ -347,20 +367,19 @@
347 int f; 367 int f;
348 int col = 1; 368 int col = 1;
349 int row = 0; 369 int row = 0;
350 - LIB3270_OPTION optval = lib3270_get_options(v3270_get_session(widget));  
351 370
352 GtkTable * frame = GTK_TABLE(gtk_table_new(2,2,FALSE)); 371 GtkTable * frame = GTK_TABLE(gtk_table_new(2,2,FALSE));
353 gtk_table_attach(frame,GTK_WIDGET(sslcheck), 0,1,0,1,GTK_EXPAND|GTK_FILL,0,0,0); 372 gtk_table_attach(frame,GTK_WIDGET(sslcheck), 0,1,0,1,GTK_EXPAND|GTK_FILL,0,0,0);
354 373
355 - for(f=0;f<G_N_ELEMENTS(option);f++) 374 + for(f=0;f<G_N_ELEMENTS(lib3270_options);f++)
356 { 375 {
357 - optcheck[f] = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic( gettext( option[f].text ) )); 376 + optcheck[f] = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic( gettext( lib3270_options[f].text ) ));
358 377
359 - if(option[f].tooltip)  
360 - gtk_widget_set_tooltip_markup(GTK_WIDGET(optcheck[f]),gettext(option[f].tooltip)); 378 + if(lib3270_options[f].tooltip)
  379 + gtk_widget_set_tooltip_markup(GTK_WIDGET(optcheck[f]),gettext(lib3270_options[f].tooltip));
361 380
362 gtk_table_attach(frame,GTK_WIDGET(optcheck[f]),col,col+1,row,row+1,GTK_EXPAND|GTK_FILL,0,0,0); 381 gtk_table_attach(frame,GTK_WIDGET(optcheck[f]),col,col+1,row,row+1,GTK_EXPAND|GTK_FILL,0,0,0);
363 - gtk_toggle_button_set_active(optcheck[f],optval & option[f].value ? TRUE : FALSE); 382 + gtk_toggle_button_set_active(optcheck[f],get_boolean_from_config("host", lib3270_options[f].key, FALSE));
364 383
365 if(++col > 1); 384 if(++col > 1);
366 { 385 {
@@ -423,6 +442,22 @@ @@ -423,6 +442,22 @@
423 NULL 442 NULL
424 ); 443 );
425 444
  445 + {
  446 + int f;
  447 + LIB3270_OPTION opt = 0;
  448 +
  449 + for(f=0;f<G_N_ELEMENTS(lib3270_options);f++)
  450 + {
  451 + gboolean val = gtk_toggle_button_get_active(optcheck[f]);
  452 + if(val)
  453 + opt |= lib3270_options[f].value;
  454 + set_boolean_to_config("host", lib3270_options[f].key, val);
  455 + }
  456 +
  457 + lib3270_set_options(v3270_get_session(widget),opt);
  458 +
  459 + }
  460 +
426 if(!lib3270_connect(v3270_get_session(widget),hostname,1)) 461 if(!lib3270_connect(v3270_get_session(widget),hostname,1))
427 again = FALSE; 462 again = FALSE;
428 463
src/pw3270/globals.h
@@ -62,6 +62,9 @@ @@ -62,6 +62,9 @@
62 G_GNUC_INTERNAL void load_color_schemes(GtkWidget *widget, gchar *active); 62 G_GNUC_INTERNAL void load_color_schemes(GtkWidget *widget, gchar *active);
63 G_GNUC_INTERNAL GtkWidget * color_scheme_new(const GdkColor *current); 63 G_GNUC_INTERNAL GtkWidget * color_scheme_new(const GdkColor *current);
64 64
  65 + G_GNUC_INTERNAL void load_3270_options_from_config(GtkWidget *widget);
  66 +
  67 +
65 // actions 68 // actions
66 G_GNUC_INTERNAL void paste_file_action(GtkAction *action, GtkWidget *widget); 69 G_GNUC_INTERNAL void paste_file_action(GtkAction *action, GtkWidget *widget);
67 G_GNUC_INTERNAL void hostname_action(GtkAction *action, GtkWidget *widget); 70 G_GNUC_INTERNAL void hostname_action(GtkAction *action, GtkWidget *widget);