void remmina_file_update_screen_resolution(RemminaFile *remminafile) { GdkScreen *screen; gchar *pos; gchar *resolution; gint x, y; gint monitor; GdkRectangle rect; resolution = g_strdup(remmina_file_get_string(remminafile, "resolution")); if (resolution == NULL || strchr(resolution, 'x') == NULL) { gdk_display_get_pointer(gdk_display_get_default(), &screen, &x, &y, NULL); monitor = gdk_screen_get_monitor_at_point(screen, x, y); gdk_screen_get_monitor_geometry(screen, monitor, &rect); remmina_file_set_int(remminafile, "resolution_width", rect.width); remmina_file_set_int(remminafile, "resolution_height", rect.height); } else { pos = strchr(resolution, 'x'); *pos++ = '\0'; remmina_file_set_int(remminafile, "resolution_width", MAX(100, MIN(4096, atoi(resolution)))); remmina_file_set_int(remminafile, "resolution_height", MAX(100, MIN(4096, atoi(pos)))); } g_free(resolution); }
static void remmina_file_editor_update_ssh(RemminaFileEditor* gfe) { RemminaFileEditorPriv* priv = gfe->priv; gboolean ssh_enabled; if (priv->ssh_charset_combo) { remmina_file_set_string_ref(priv->remmina_file, "ssh_charset", remmina_public_combo_get_active_text(GTK_COMBO_BOX(priv->ssh_charset_combo))); } if (g_strcmp0(remmina_file_get_string(priv->remmina_file, "protocol"), "SFTP") == 0 || g_strcmp0(remmina_file_get_string(priv->remmina_file, "protocol"), "SSH") == 0) { ssh_enabled = TRUE; } else { ssh_enabled = (priv->ssh_enabled_check ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->ssh_enabled_check)) : FALSE); remmina_file_set_int( priv->remmina_file, "ssh_loopback", (priv->ssh_loopback_check ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->ssh_loopback_check)) : FALSE)); } remmina_file_set_int(priv->remmina_file, "ssh_enabled", ssh_enabled); remmina_file_set_string(priv->remmina_file, "ssh_username", (ssh_enabled ? gtk_entry_get_text(GTK_ENTRY(priv->ssh_username_entry)) : NULL)); remmina_file_set_string( priv->remmina_file, "ssh_server", (ssh_enabled && priv->ssh_server_entry && (priv->ssh_server_custom_radio == NULL || gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(priv->ssh_server_custom_radio))) ? gtk_entry_get_text(GTK_ENTRY(priv->ssh_server_entry)) : NULL)); remmina_file_set_int( priv->remmina_file, "ssh_auth", (priv->ssh_auth_publickey_radio && gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(priv->ssh_auth_publickey_radio)) ? SSH_AUTH_PUBLICKEY : priv->ssh_auth_auto_publickey_radio && gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(priv->ssh_auth_auto_publickey_radio)) ? SSH_AUTH_AUTO_PUBLICKEY : SSH_AUTH_PASSWORD)); remmina_file_set_string( priv->remmina_file, "ssh_privatekey", (priv->ssh_privatekey_chooser ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(priv->ssh_privatekey_chooser)) : NULL)); }
void remmina_ftp_client_save_state(RemminaFTPClient *client, RemminaFile *remminafile) { gint pos; pos = gtk_paned_get_position(GTK_PANED(client->priv->vpaned)); remmina_file_set_int(remminafile, "ftp_vpanedpos", pos); }
static void remmina_file_editor_update(RemminaFileEditor* gfe) { RemminaFileEditorPriv* priv = gfe->priv; remmina_file_set_string(priv->remmina_file, "name", gtk_entry_get_text(GTK_ENTRY(priv->name_entry))); remmina_file_set_string_ref(priv->remmina_file, "group", (priv->group_combo ? remmina_public_combo_get_active_text(GTK_COMBO_BOX(priv->group_combo)) : NULL)); remmina_file_set_string_ref(priv->remmina_file, "protocol", remmina_public_combo_get_active_text(GTK_COMBO_BOX(priv->protocol_combo))); remmina_file_set_string_ref(priv->remmina_file, "server", (priv->server_combo ? remmina_public_combo_get_active_text(GTK_COMBO_BOX(priv->server_combo)) : NULL)); remmina_file_set_string(priv->remmina_file, "password", (priv->password_entry ? gtk_entry_get_text(GTK_ENTRY(priv->password_entry)) : NULL)); if (priv->resolution_auto_radio) { remmina_file_set_string_ref( priv->remmina_file, "resolution", (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->resolution_auto_radio)) ? NULL : remmina_public_combo_get_active_text( GTK_COMBO_BOX(priv->resolution_custom_combo)))); } if (priv->keymap_combo) { remmina_file_set_string_ref(priv->remmina_file, "keymap", remmina_public_combo_get_active_text(GTK_COMBO_BOX(priv->keymap_combo))); } if (priv->scaler_widget) { remmina_file_set_int(priv->remmina_file, "hscale", REMMINA_SCALER(priv->scaler_widget)->hscale); remmina_file_set_int(priv->remmina_file, "vscale", REMMINA_SCALER(priv->scaler_widget)->vscale); remmina_file_set_int(priv->remmina_file, "aspectscale", REMMINA_SCALER(priv->scaler_widget)->aspectscale); } remmina_file_editor_update_ssh(gfe); remmina_file_editor_update_settings(gfe); }
void remmina_file_update_screen_resolution(RemminaFile *remminafile) { #if GTK_VERSION == 3 GdkDisplay *display; GdkDeviceManager *device_manager; GdkDevice *device; #endif GdkScreen *screen; gchar *pos; gchar *resolution; gint x, y; gint monitor; GdkRectangle rect; resolution = g_strdup(remmina_file_get_string(remminafile, "resolution")); if (resolution == NULL || strchr(resolution, 'x') == NULL) { #if GTK_VERSION == 3 display = gdk_display_get_default(); device_manager = gdk_display_get_device_manager(display); device = gdk_device_manager_get_client_pointer(device_manager); gdk_device_get_position(device, &screen, &x, &y); #elif GTK_VERSION == 2 gdk_display_get_pointer(gdk_display_get_default(), &screen, &x, &y, NULL); #endif monitor = gdk_screen_get_monitor_at_point(screen, x, y); gdk_screen_get_monitor_geometry(screen, monitor, &rect); remmina_file_set_int(remminafile, "resolution_width", rect.width); remmina_file_set_int(remminafile, "resolution_height", rect.height); } else { pos = strchr(resolution, 'x'); *pos++ = '\0'; remmina_file_set_int(remminafile, "resolution_width", MAX(100, MIN(4096, atoi(resolution)))); remmina_file_set_int(remminafile, "resolution_height", MAX(100, MIN(4096, atoi(pos)))); } g_free(resolution); }
static void remmina_file_editor_update_settings(RemminaFileEditor* gfe) { RemminaFileEditorPriv* priv = gfe->priv; GHashTableIter iter; gpointer key, value; g_hash_table_iter_init(&iter, priv->setting_widgets); while (g_hash_table_iter_next(&iter, &key, &value)) { if (GTK_IS_ENTRY(value)) { remmina_file_set_string(priv->remmina_file, (gchar*) key, gtk_entry_get_text(GTK_ENTRY(value))); } else if (GTK_IS_COMBO_BOX(value)) { remmina_file_set_string_ref(priv->remmina_file, (gchar*) key, remmina_public_combo_get_active_text(GTK_COMBO_BOX(value))); } else if (GTK_IS_FILE_CHOOSER(value)) { remmina_file_set_string( priv->remmina_file, (gchar*) key, gtk_widget_get_sensitive(GTK_WIDGET(value)) ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(value)) : NULL); } else if (GTK_IS_TOGGLE_BUTTON(value)) { remmina_file_set_int(priv->remmina_file, (gchar*) key, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(value))); } } }