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 52 {
53 53 {
54 54 .left = 2,
55   - .top = 3,
56   - .width = 1,
  55 + .top = 2,
  56 + .width = 2,
57 57 .grid = CONNECTION,
58 58 .id = LIB3270_TOGGLE_CONNECT_ON_STARTUP,
59 59 },
60 60 {
61   - .left = 3,
62   - .top = 3,
  61 + .left = 4,
  62 + .top = 2,
63 63 .width = 1,
64 64 .grid = CONNECTION,
65 65 .id = LIB3270_TOGGLE_RECONNECT,
66 66 },
67 67 {
68   - .left = 4,
69   - .top = 3,
  68 + .left = 5,
  69 + .top = 2,
70 70 .width = 1,
71 71 .grid = CONNECTION,
72 72 .id = LIB3270_TOGGLE_KEEP_ALIVE,
... ... @@ -208,7 +208,7 @@
208 208 {
209 209 .left = 0,
210 210 .top = 0,
211   - .width = 4,
  211 + .width = 5,
212 212 .height = 1,
213 213 .grid = CONNECTION,
214 214  
... ... @@ -260,7 +260,7 @@
260 260 {
261 261 .left = 2,
262 262 .top = 1,
263   - .width = 2,
  263 + .width = 3,
264 264 .height = 1,
265 265 .grid = CONNECTION,
266 266  
... ... @@ -279,7 +279,7 @@
279 279 struct
280 280 {
281 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 283 GtkComboBox * combos[G_N_ELEMENTS(combos)]; ///< @brief Combo-boxes.
284 284 GtkComboBox * charset; ///< @brief Charset combo box.
285 285 GtkToggleButton * toggles[G_N_ELEMENTS(toggleList)]; ///< @brief Toggle checks.
... ... @@ -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 572 widget->input.ssl = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic(_( "_Secure connection." )));
546 573 gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.ssl),_( "Check for SSL secure connection." ));
547 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 580 // Toggle checkboxes
... ... @@ -699,7 +728,7 @@ static void apply(GtkWidget *w, GtkWidget *terminal)
699 728 {
700 729 g_autofree gchar * url =
701 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 732 gtk_entry_get_text(widget->input.entry[ENTRY_HOSTNAME]),
704 733 ":",
705 734 gtk_entry_get_text(widget->input.entry[ENTRY_SRVCNAME]),
... ... @@ -778,9 +807,9 @@ static void load(GtkWidget *w, GtkWidget *terminal)
778 807 {
779 808  
780 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 814 gchar *hostname = strstr(url,"://");
786 815 if(!hostname)
... ...