[feat] implement new way to set download folder

This commit is contained in:
Julian Sparber
2017-10-17 18:58:13 +02:00
parent 6995b34b69
commit 2f26a1c487
2 changed files with 29 additions and 23 deletions

View File

@@ -21,11 +21,11 @@
</packing>
</child>
<child>
<object class="GtkEntry" id="settings_download_directory">
<object class="GtkFileChooserButton" id="settings_download_directory">
<property name="visible">True</property>
<property name="sensitive">True</property>
<property name="text">~/Downloads</property>
<property name="width_chars">25</property>
<property name="action">select-folder</property>
<property name="title" translatable="yes">Choose download dir</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -34,20 +34,6 @@
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="sensitive">false</property>
<property name="label">Browse...</property>
<property name="margin_start">12</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">False</property>

View File

@@ -26,13 +26,28 @@ struct _TeleportWindowPrivate
G_DEFINE_TYPE_WITH_PRIVATE(TeleportWindow, teleport_window, GTK_TYPE_APPLICATION_WINDOW);
static void
change_download_directory_cb (GtkWidget *widget,
gpointer user_data) {
GSettings *settings;
gchar * newDownloadDir;
settings = (GSettings *)user_data;
newDownloadDir = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
g_print ("Change download directory\n");
g_settings_set_string (settings,
"download-dir",
newDownloadDir);
g_free(newDownloadDir);
}
static void
teleport_window_init (TeleportWindow *win)
{
TeleportWindowPrivate *priv;
GtkBuilder *builder;
GtkWidget *menu;
GtkEntry *downloadDir;
GtkFileChooserButton *downloadDir;
mainWin = win;
priv = teleport_window_get_instance_private (win);
@@ -50,7 +65,6 @@ teleport_window_init (TeleportWindow *win)
}
}
if (g_settings_get_user_value (priv->settings, "device-name") == NULL) {
g_settings_set_string (priv->settings,
"device-name",
@@ -61,16 +75,22 @@ teleport_window_init (TeleportWindow *win)
builder = gtk_builder_new_from_resource ("/com/frac_tion/teleport/settings.ui");
menu = GTK_WIDGET (gtk_builder_get_object (builder, "settings"));
downloadDir = GTK_ENTRY (gtk_builder_get_object (builder, "settings_download_directory"));
downloadDir = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (builder, "settings_download_directory"));
gtk_menu_button_set_popover(GTK_MENU_BUTTON (priv->gears), menu);
gtk_label_set_text (GTK_LABEL (priv->this_device_name_label),
g_settings_get_string (priv->settings, "device-name"));
g_settings_bind (priv->settings, "download-dir",
downloadDir, "text",
G_SETTINGS_BIND_DEFAULT);
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_object_unref (menu);
//g_object_unref (label);