Commit bd3a838b33c0083c99280fff3d5a0e2a94605807

Authored by Perry Werneck
1 parent 5f05be7b
Exists in master and in 1 other branch develop

Changing SSL toggle to dropdown to allow more options.

Showing 1 changed file with 43 additions and 14 deletions   Show diff stats
src/dialogs/settings/host.c
@@ -52,21 +52,21 @@ @@ -52,21 +52,21 @@
52 { 52 {
53 { 53 {
54 .left = 2, 54 .left = 2,
55 - .top = 3,  
56 - .width = 1, 55 + .top = 2,
  56 + .width = 2,
57 .grid = CONNECTION, 57 .grid = CONNECTION,
58 .id = LIB3270_TOGGLE_CONNECT_ON_STARTUP, 58 .id = LIB3270_TOGGLE_CONNECT_ON_STARTUP,
59 }, 59 },
60 { 60 {
61 - .left = 3,  
62 - .top = 3, 61 + .left = 4,
  62 + .top = 2,
63 .width = 1, 63 .width = 1,
64 .grid = CONNECTION, 64 .grid = CONNECTION,
65 .id = LIB3270_TOGGLE_RECONNECT, 65 .id = LIB3270_TOGGLE_RECONNECT,
66 }, 66 },
67 { 67 {
68 - .left = 4,  
69 - .top = 3, 68 + .left = 5,
  69 + .top = 2,
70 .width = 1, 70 .width = 1,
71 .grid = CONNECTION, 71 .grid = CONNECTION,
72 .id = LIB3270_TOGGLE_KEEP_ALIVE, 72 .id = LIB3270_TOGGLE_KEEP_ALIVE,
@@ -208,7 +208,7 @@ @@ -208,7 +208,7 @@
208 { 208 {
209 .left = 0, 209 .left = 0,
210 .top = 0, 210 .top = 0,
211 - .width = 4, 211 + .width = 5,
212 .height = 1, 212 .height = 1,
213 .grid = CONNECTION, 213 .grid = CONNECTION,
214 214
@@ -260,7 +260,7 @@ @@ -260,7 +260,7 @@
260 { 260 {
261 .left = 2, 261 .left = 2,
262 .top = 1, 262 .top = 1,
263 - .width = 2, 263 + .width = 3,
264 .height = 1, 264 .height = 1,
265 .grid = CONNECTION, 265 .grid = CONNECTION,
266 266
@@ -279,7 +279,7 @@ @@ -279,7 +279,7 @@
279 struct 279 struct
280 { 280 {
281 GtkEntry * entry[G_N_ELEMENTS(entryfields)]; ///< @brief Entry fields for host & service name. 281 GtkEntry * entry[G_N_ELEMENTS(entryfields)]; ///< @brief Entry fields for host & service name.
282 - GtkToggleButton * ssl; ///< @brief SSL Connection? 282 + GtkComboBox * ssl; ///< @brief SSL Connection?
283 GtkComboBox * combos[G_N_ELEMENTS(combos)]; ///< @brief Combo-boxes. 283 GtkComboBox * combos[G_N_ELEMENTS(combos)]; ///< @brief Combo-boxes.
284 GtkComboBox * charset; ///< @brief Charset combo box. 284 GtkComboBox * charset; ///< @brief Charset combo box.
285 GtkToggleButton * toggles[G_N_ELEMENTS(toggleList)]; ///< @brief Toggle checks. 285 GtkToggleButton * toggles[G_N_ELEMENTS(toggleList)]; ///< @brief Toggle checks.
@@ -540,12 +540,41 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) @@ -540,12 +540,41 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget)
540 540
541 } 541 }
542 542
543 - // SSL checkbox 543 + // SSL input
544 { 544 {
  545 + GtkWidget *label = gtk_label_new_with_mnemonic(_( "_Security" ));
  546 + gtk_widget_set_halign(label,GTK_ALIGN_END);
  547 + gtk_grid_attach(GTK_GRID(grids[CONNECTION]),label,0,3,1,1);
  548 +
  549 + GtkTreeModel * model = (GtkTreeModel *) gtk_list_store_new(1,G_TYPE_STRING);
  550 +
  551 + widget->input.ssl = GTK_COMBO_BOX(gtk_combo_box_new_with_model(model));
  552 +
  553 + GtkCellRenderer * text_renderer = gtk_cell_renderer_text_new();
  554 + gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(widget->input.ssl), text_renderer, TRUE);
  555 + gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(widget->input.ssl), text_renderer, "text", 0, NULL);
  556 +
  557 + static const gchar * levels[] =
  558 + {
  559 + N_("Unsecure"),
  560 + N_("SSL/TLS")
  561 + };
  562 +
  563 + size_t level;
  564 + for(level = 0; level < G_N_ELEMENTS(levels); level++)
  565 + {
  566 + GtkTreeIter iter;
  567 + gtk_list_store_append((GtkListStore *) model, &iter);
  568 + gtk_list_store_set((GtkListStore *) model, &iter, 0, levels[level], -1);
  569 + };
  570 +
  571 + /*
545 widget->input.ssl = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic(_( "_Secure connection." ))); 572 widget->input.ssl = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic(_( "_Secure connection." )));
546 gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.ssl),_( "Check for SSL secure connection." )); 573 gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.ssl),_( "Check for SSL secure connection." ));
547 gtk_widget_set_halign(GTK_WIDGET(widget->input.ssl),GTK_ALIGN_START); 574 gtk_widget_set_halign(GTK_WIDGET(widget->input.ssl),GTK_ALIGN_START);
548 - gtk_grid_attach(GTK_GRID(grids[CONNECTION]),GTK_WIDGET(widget->input.ssl),1,3,1,1); 575 + */
  576 +
  577 + gtk_grid_attach(GTK_GRID(grids[CONNECTION]),GTK_WIDGET(widget->input.ssl),1,3,2,1);
549 } 578 }
550 579
551 // Toggle checkboxes 580 // Toggle checkboxes
@@ -699,7 +728,7 @@ static void apply(GtkWidget *w, GtkWidget *terminal) @@ -699,7 +728,7 @@ static void apply(GtkWidget *w, GtkWidget *terminal)
699 { 728 {
700 g_autofree gchar * url = 729 g_autofree gchar * url =
701 g_strconcat( 730 g_strconcat(
702 - (gtk_toggle_button_get_active(widget->input.ssl) ? "tn3270s://" : "tn3270://"), 731 + (gtk_combo_box_get_active(widget->input.ssl) > 0 ? "tn3270s://" : "tn3270://"),
703 gtk_entry_get_text(widget->input.entry[ENTRY_HOSTNAME]), 732 gtk_entry_get_text(widget->input.entry[ENTRY_HOSTNAME]),
704 ":", 733 ":",
705 gtk_entry_get_text(widget->input.entry[ENTRY_SRVCNAME]), 734 gtk_entry_get_text(widget->input.entry[ENTRY_SRVCNAME]),
@@ -778,9 +807,9 @@ static void load(GtkWidget *w, GtkWidget *terminal) @@ -778,9 +807,9 @@ static void load(GtkWidget *w, GtkWidget *terminal)
778 { 807 {
779 808
780 g_autofree gchar * url = g_strdup(u); 809 g_autofree gchar * url = g_strdup(u);
781 - debug("URL=[%s]",url);  
782 810
783 - gtk_toggle_button_set_active(widget->input.ssl,g_str_has_prefix(u,"tn3270s")); 811 + gtk_combo_box_set_active(widget->input.ssl,(g_str_has_prefix(u,"tn3270s") ? 1 : 0));
  812 +// gtk_toggle_button_set_active(widget->input.ssl,g_str_has_prefix(u,"tn3270s"));
784 813
785 gchar *hostname = strstr(url,"://"); 814 gchar *hostname = strstr(url,"://");
786 if(!hostname) 815 if(!hostname)