Commit bd3a838b33c0083c99280fff3d5a0e2a94605807
1 parent
5f05be7b
Exists in
master
and in
1 other branch
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) |