diff --git a/src/teleport-window.c b/src/teleport-window.c index c288ba7..7404d25 100644 --- a/src/teleport-window.c +++ b/src/teleport-window.c @@ -14,7 +14,7 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . -*/ + */ #include @@ -49,7 +49,7 @@ G_DEFINE_TYPE_WITH_PRIVATE(TeleportWindow, teleport_window, GTK_TYPE_APPLICATION static void change_download_directory_cb (GtkWidget *widget, - gpointer user_data) { + gpointer user_data) { GSettings *settings; gchar * newDownloadDir; settings = (GSettings *)user_data; @@ -57,11 +57,21 @@ change_download_directory_cb (GtkWidget *widget, newDownloadDir = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); g_print ("Change download directory\n"); g_settings_set_string (settings, - "download-dir", - newDownloadDir); + "download-dir", + newDownloadDir); g_free(newDownloadDir); } +static void +update_download_directory (GSettings *settings, + gchar *key, + gpointer *data) { + if (g_strcmp0 (key, "download-dir") == 0) { + gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (data), + g_settings_get_string(settings, key)); + } +} + static void on_click_this_device_settings_button (GtkWidget *widget, gpointer user_data) { @@ -114,22 +124,13 @@ teleport_window_init (TeleportWindow *win) priv->this_device_name_label, "label", G_SETTINGS_BIND_DEFAULT); - /*gtk_label_set_text (GTK_LABEL (priv->this_device_name_label), - g_settings_get_string (priv->settings, "device-name")); - */ - gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (downloadDir), g_settings_get_string(priv->settings, "download-dir")); g_signal_connect (downloadDir, "file-set", G_CALLBACK (change_download_directory_cb), priv->settings); - /*g_settings_bind (priv->settings, "download-dir", - GTK_FILE_CHOOSER (downloadDir), "current-folder", - G_SETTINGS_BIND_DEFAULT); - */ + g_signal_connect (priv->settings, "changed", G_CALLBACK (update_download_directory), downloadDir); - //g_object_unref (menu); - //g_object_unref (label); g_object_unref (builder); /* Add popover for device settings */