Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGiovanni Panozzo <giovanni@panozzo.it>2019-07-22 18:58:04 +0300
committerGiovanni Panozzo <giovanni@panozzo.it>2019-07-22 18:58:04 +0300
commitd29923796bc5e9d6a51b66d00557a55c58b85e3a (patch)
treee005e868aa297d2a05ee0794b1c02e3ed4fa79e2 /src
parent572ebe093191907bbf03918958cbcac555e49ae9 (diff)
parent65ca30e7b5a18af468054592871ebcc8e0b79850 (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.c24
-rw-r--r--src/remmina_pref.c6
-rw-r--r--src/remmina_pref.h1
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;