diff options
author | Giovanni Panozzo <giovanni@panozzo.it> | 2019-07-22 18:58:04 +0300 |
---|---|---|
committer | Giovanni Panozzo <giovanni@panozzo.it> | 2019-07-22 18:58:04 +0300 |
commit | d29923796bc5e9d6a51b66d00557a55c58b85e3a (patch) | |
tree | e005e868aa297d2a05ee0794b1c02e3ed4fa79e2 /src | |
parent | 572ebe093191907bbf03918958cbcac555e49ae9 (diff) | |
parent | 65ca30e7b5a18af468054592871ebcc8e0b79850 (diff) |
Merge branch 'issue_1861' into 'master'
Remember last quickconnect selected protocol
Closes #1861
See merge request Remmina/Remmina!1875
Diffstat (limited to 'src')
-rw-r--r-- | src/remmina_main.c | 24 | ||||
-rw-r--r-- | src/remmina_pref.c | 6 | ||||
-rw-r--r-- | src/remmina_pref.h | 1 |
3 files changed, 26 insertions, 5 deletions
diff --git a/src/remmina_main.c b/src/remmina_main.c index f47eb7cae..92c300b1b 100644 --- a/src/remmina_main.c +++ b/src/remmina_main.c @@ -1024,6 +1024,16 @@ static gboolean remmina_main_quickconnect(void) TRACE_CALL(__func__); RemminaFile* remminafile; gchar* server; + gchar *qcp; + + + /* Save quick connect protocol if different from the previuous one */ + qcp = gtk_combo_box_text_get_active_text(remminamain->combo_quick_connect_protocol); + if (strcmp(qcp, remmina_pref.last_quickconnect_protocol) != 0) { + g_free(remmina_pref.last_quickconnect_protocol); + remmina_pref.last_quickconnect_protocol = g_strdup(qcp); + remmina_pref_save(); + } remminafile = remmina_file_new(); server = g_strdup(gtk_entry_get_text(remminamain->entry_quick_connect_server)); @@ -1031,8 +1041,7 @@ static gboolean remmina_main_quickconnect(void) remmina_file_set_string(remminafile, "sound", "off"); remmina_file_set_string(remminafile, "server", server); remmina_file_set_string(remminafile, "name", server); - remmina_file_set_string(remminafile, "protocol", - gtk_combo_box_text_get_active_text(remminamain->combo_quick_connect_protocol)); + remmina_file_set_string(remminafile, "protocol", qcp); g_free(server); rcw_open_from_file(remminafile); @@ -1175,7 +1184,7 @@ gboolean remmina_main_on_window_state_event(GtkWidget *widget, GdkEventWindowSta static void remmina_main_init(void) { TRACE_CALL(__func__); - int i; + int i, qcp_idx, qcp_actidx; char *name; remminamain->priv->expanded_group = remmina_string_array_new_from_string(remmina_pref.expanded_group); @@ -1199,12 +1208,17 @@ static void remmina_main_init(void) remmina_plugin_manager_for_each_plugin(REMMINA_PLUGIN_TYPE_TOOL, remmina_main_add_tool_plugin, remminamain); /* Add available quick connect protocols to remminamain->combo_quick_connect_protocol */ + qcp_idx = qcp_actidx = 0; for (i = 0; i < sizeof(quick_connect_plugin_list) / sizeof(quick_connect_plugin_list[0]); i++) { name = quick_connect_plugin_list[i]; - if (remmina_plugin_manager_get_plugin(REMMINA_PLUGIN_TYPE_PROTOCOL, name)) + if (remmina_plugin_manager_get_plugin(REMMINA_PLUGIN_TYPE_PROTOCOL, name)) { gtk_combo_box_text_append(remminamain->combo_quick_connect_protocol, name, name); + if (remmina_pref.last_quickconnect_protocol != NULL && strcmp(name, remmina_pref.last_quickconnect_protocol) == 0) + qcp_actidx = qcp_idx; + qcp_idx ++; + } } - gtk_combo_box_set_active(GTK_COMBO_BOX(remminamain->combo_quick_connect_protocol), 0); + gtk_combo_box_set_active(GTK_COMBO_BOX(remminamain->combo_quick_connect_protocol), qcp_actidx); /* Connect the group accelerators to the GtkWindow */ //gtk_window_add_accel_group(remminamain->window, remminamain->accelgroup_shortcuts); diff --git a/src/remmina_pref.c b/src/remmina_pref.c index 149fd7420..4c5ea3fa0 100644 --- a/src/remmina_pref.c +++ b/src/remmina_pref.c @@ -314,6 +314,11 @@ void remmina_pref_init(void) else remmina_pref.prevent_snap_welcome_message = FALSE; + if (g_key_file_has_key(gkeyfile, "remmina_pref", "last_quickconnect_protocol", NULL)) + remmina_pref.last_quickconnect_protocol = g_key_file_get_string(gkeyfile, "remmina_pref", "last_quickconnect_protocol", NULL); + else + remmina_pref.last_quickconnect_protocol = g_strdup(""); + if (g_key_file_has_key(gkeyfile, "remmina_pref", "toolbar_placement", NULL)) remmina_pref.toolbar_placement = g_key_file_get_integer(gkeyfile, "remmina_pref", "toolbar_placement", NULL); else @@ -724,6 +729,7 @@ gboolean remmina_pref_save(void) g_key_file_set_integer(gkeyfile, "remmina_pref", "floating_toolbar_placement", remmina_pref.floating_toolbar_placement); g_key_file_set_integer(gkeyfile, "remmina_pref", "toolbar_placement", remmina_pref.toolbar_placement); g_key_file_set_boolean(gkeyfile, "remmina_pref", "prevent_snap_welcome_message", remmina_pref.prevent_snap_welcome_message); + g_key_file_set_string(gkeyfile, "remmina_pref", "last_quickconnect_protocol", remmina_pref.last_quickconnect_protocol); g_key_file_set_boolean(gkeyfile, "remmina_pref", "fullscreen_on_auto", remmina_pref.fullscreen_on_auto); g_key_file_set_boolean(gkeyfile, "remmina_pref", "always_show_tab", remmina_pref.always_show_tab); g_key_file_set_boolean(gkeyfile, "remmina_pref", "hide_connection_toolbar", remmina_pref.hide_connection_toolbar); diff --git a/src/remmina_pref.h b/src/remmina_pref.h index 62b206240..5f5aa559b 100644 --- a/src/remmina_pref.h +++ b/src/remmina_pref.h @@ -186,6 +186,7 @@ typedef struct _RemminaPref { gint floating_toolbar_placement; gint toolbar_placement; gboolean prevent_snap_welcome_message; + gchar *last_quickconnect_protocol; /* Crypto */ gchar *secret; |