[feat] implement new way to set download folder
This commit is contained in:
@@ -21,11 +21,11 @@
|
|||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkEntry" id="settings_download_directory">
|
<object class="GtkFileChooserButton" id="settings_download_directory">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="sensitive">True</property>
|
<property name="sensitive">True</property>
|
||||||
<property name="text">~/Downloads</property>
|
<property name="action">select-folder</property>
|
||||||
<property name="width_chars">25</property>
|
<property name="title" translatable="yes">Choose download dir</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">0</property>
|
<property name="left_attach">0</property>
|
||||||
@@ -34,20 +34,6 @@
|
|||||||
<property name="height">1</property>
|
<property name="height">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</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>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">False</property>
|
<property name="visible">False</property>
|
||||||
|
|||||||
@@ -26,13 +26,28 @@ struct _TeleportWindowPrivate
|
|||||||
|
|
||||||
G_DEFINE_TYPE_WITH_PRIVATE(TeleportWindow, teleport_window, GTK_TYPE_APPLICATION_WINDOW);
|
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
|
static void
|
||||||
teleport_window_init (TeleportWindow *win)
|
teleport_window_init (TeleportWindow *win)
|
||||||
{
|
{
|
||||||
TeleportWindowPrivate *priv;
|
TeleportWindowPrivate *priv;
|
||||||
GtkBuilder *builder;
|
GtkBuilder *builder;
|
||||||
GtkWidget *menu;
|
GtkWidget *menu;
|
||||||
GtkEntry *downloadDir;
|
GtkFileChooserButton *downloadDir;
|
||||||
mainWin = win;
|
mainWin = win;
|
||||||
|
|
||||||
priv = teleport_window_get_instance_private (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) {
|
if (g_settings_get_user_value (priv->settings, "device-name") == NULL) {
|
||||||
g_settings_set_string (priv->settings,
|
g_settings_set_string (priv->settings,
|
||||||
"device-name",
|
"device-name",
|
||||||
@@ -61,16 +75,22 @@ teleport_window_init (TeleportWindow *win)
|
|||||||
|
|
||||||
builder = gtk_builder_new_from_resource ("/com/frac_tion/teleport/settings.ui");
|
builder = gtk_builder_new_from_resource ("/com/frac_tion/teleport/settings.ui");
|
||||||
menu = GTK_WIDGET (gtk_builder_get_object (builder, "settings"));
|
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_menu_button_set_popover(GTK_MENU_BUTTON (priv->gears), menu);
|
||||||
|
|
||||||
gtk_label_set_text (GTK_LABEL (priv->this_device_name_label),
|
gtk_label_set_text (GTK_LABEL (priv->this_device_name_label),
|
||||||
g_settings_get_string (priv->settings, "device-name"));
|
g_settings_get_string (priv->settings, "device-name"));
|
||||||
|
|
||||||
g_settings_bind (priv->settings, "download-dir",
|
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (downloadDir),
|
||||||
downloadDir, "text",
|
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_SETTINGS_BIND_DEFAULT);
|
||||||
|
*/
|
||||||
|
|
||||||
//g_object_unref (menu);
|
//g_object_unref (menu);
|
||||||
//g_object_unref (label);
|
//g_object_unref (label);
|
||||||
|
|||||||
Reference in New Issue
Block a user