[Xfce4-commits] <thunar:master> Session save mount operation passwords.

Nick Schermer noreply at xfce.org
Fri Dec 7 20:46:01 CET 2012


Updating branch refs/heads/master
         to 65dd2ddba44e7bf809fc0bbacb63bd6eb4d24d99 (commit)
       from a5ba2d88a8534cfc0173ab10f3ad5a777ee92f0f (commit)

commit 65dd2ddba44e7bf809fc0bbacb63bd6eb4d24d99
Author: Nick Schermer <nick at xfce.org>
Date:   Fri Dec 7 20:42:49 2012 +0100

    Session save mount operation passwords.
    
    Also centralize the code.

 thunar/thunar-browser.c        |   25 +++----------------
 thunar/thunar-gtk-extensions.c |   23 ++++++++++++++++++
 thunar/thunar-gtk-extensions.h |   50 ++++++++++++++++++++-------------------
 thunar/thunar-launcher.c       |    6 +----
 thunar/thunar-shortcuts-view.c |    8 +----
 thunar/thunar-tree-view.c      |   16 +++---------
 6 files changed, 60 insertions(+), 68 deletions(-)

diff --git a/thunar/thunar-browser.c b/thunar/thunar-browser.c
index 9813936..a6e5b80 100644
--- a/thunar/thunar-browser.c
+++ b/thunar/thunar-browser.c
@@ -28,6 +28,7 @@
 #include <thunar/thunar-file.h>
 #include <thunar/thunar-private.h>
 #include <thunar/thunar-util.h>
+#include <thunar/thunar-gtk-extensions.h>
 
 
 
@@ -187,24 +188,6 @@ thunar_browser_poke_device_data_free (PokeDeviceData *poke_data)
 
 
 
-static GMountOperation *
-thunar_browser_mount_operation_new (gpointer parent)
-{
-  GMountOperation *mount_operation;
-  GtkWindow       *window = NULL;
-  GdkScreen       *screen = NULL;
-
-  mount_operation = gtk_mount_operation_new (NULL);
-
-  screen = thunar_util_parse_parent (parent, &window);
-  gtk_mount_operation_set_screen (GTK_MOUNT_OPERATION (mount_operation), screen);
-  gtk_mount_operation_set_parent (GTK_MOUNT_OPERATION (mount_operation), window);
-
-  return mount_operation;
-}
-
-
-
 static void
 thunar_browser_poke_mountable_file_finish (GFile      *location,
                                            ThunarFile *file,
@@ -473,7 +456,7 @@ thunar_browser_poke_file_internal (ThunarBrowser                *browser,
           poke_data = thunar_browser_poke_file_data_new (browser, location, source,
                                                          file, func, location_func, user_data);
 
-          mount_operation = thunar_browser_mount_operation_new (widget);
+          mount_operation = thunar_gtk_mount_operation_new (widget);
 
           g_file_mount_mountable (thunar_file_get_file (file),
                                   G_MOUNT_MOUNT_NONE, mount_operation, NULL,
@@ -488,7 +471,7 @@ thunar_browser_poke_file_internal (ThunarBrowser                *browser,
       poke_data = thunar_browser_poke_file_data_new (browser, location, source,
                                                      file, func, location_func, user_data);
 
-      mount_operation = thunar_browser_mount_operation_new (widget);
+      mount_operation = thunar_gtk_mount_operation_new (widget);
 
       g_file_mount_enclosing_volume (thunar_file_get_file (file),
                                      G_MOUNT_MOUNT_NONE, mount_operation, NULL,
@@ -659,7 +642,7 @@ thunar_browser_poke_device (ThunarBrowser              *browser,
     {
       poke_data = thunar_browser_poke_device_data_new (browser, device, func, user_data);
 
-      mount_operation = thunar_browser_mount_operation_new (widget);
+      mount_operation = thunar_gtk_mount_operation_new (widget);
 
       thunar_device_mount (device,
                            mount_operation,
diff --git a/thunar/thunar-gtk-extensions.c b/thunar/thunar-gtk-extensions.c
index 0b4232c..1938a95 100644
--- a/thunar/thunar-gtk-extensions.c
+++ b/thunar/thunar-gtk-extensions.c
@@ -29,6 +29,7 @@
 
 #include <thunar/thunar-gtk-extensions.h>
 #include <thunar/thunar-private.h>
+#include <thunar/thunar-util.h>
 
 
 
@@ -248,3 +249,25 @@ thunar_gtk_widget_set_tooltip (GtkWidget   *widget,
 
 
 
+/**
+ * thunar_gtk_mount_operation_new:
+ * @parent : a #GtkWindow or non-toplevel widget.
+ *
+ * Create a mount operation with some defaults.
+ **/
+GMountOperation *
+thunar_gtk_mount_operation_new (gpointer parent)
+{
+  GMountOperation *operation;
+  GdkScreen       *screen;
+  GtkWindow       *window = NULL;
+
+  screen = thunar_util_parse_parent (parent, &window);
+
+  operation = gtk_mount_operation_new (window);
+  g_mount_operation_set_password_save (G_MOUNT_OPERATION (operation), G_PASSWORD_SAVE_FOR_SESSION);
+  if (window == NULL && screen != NULL)
+    gtk_mount_operation_set_screen (GTK_MOUNT_OPERATION (operation), screen);
+
+  return operation;
+}
diff --git a/thunar/thunar-gtk-extensions.h b/thunar/thunar-gtk-extensions.h
index 276394d..881fe0c 100644
--- a/thunar/thunar-gtk-extensions.h
+++ b/thunar/thunar-gtk-extensions.h
@@ -24,30 +24,32 @@
 
 G_BEGIN_DECLS;
 
-void         thunar_gtk_action_set_tooltip                (GtkAction          *action,
-                                                           const gchar        *format,
-                                                           ...) G_GNUC_PRINTF (2, 3);
-
-void         thunar_gtk_action_group_set_action_sensitive (GtkActionGroup     *action_group,
-                                                           const gchar        *action_name,
-                                                           gboolean            sensitive);
-
-void         thunar_gtk_label_set_a11y_relation           (GtkLabel           *label,
-                                                           GtkWidget          *widget);
-
-void         thunar_gtk_menu_run                          (GtkMenu            *menu,
-                                                           gpointer            parent,
-                                                           GtkMenuPositionFunc func,
-                                                           gpointer            data,
-                                                           guint               button,
-                                                           guint32             activate_time);
-
-GtkAction   *thunar_gtk_ui_manager_get_action_by_name     (GtkUIManager       *ui_manager,
-                                                           const gchar        *action_name);
-
-void         thunar_gtk_widget_set_tooltip                (GtkWidget          *widget,
-                                                           const gchar        *format,
-                                                           ...) G_GNUC_PRINTF (2, 3);
+void             thunar_gtk_action_set_tooltip                (GtkAction          *action,
+                                                               const gchar        *format,
+                                                               ...) G_GNUC_PRINTF (2, 3);
+
+void             thunar_gtk_action_group_set_action_sensitive (GtkActionGroup     *action_group,
+                                                               const gchar        *action_name,
+                                                               gboolean            sensitive);
+
+void             thunar_gtk_label_set_a11y_relation           (GtkLabel           *label,
+                                                               GtkWidget          *widget);
+
+void             thunar_gtk_menu_run                          (GtkMenu            *menu,
+                                                               gpointer            parent,
+                                                               GtkMenuPositionFunc func,
+                                                               gpointer            data,
+                                                               guint               button,
+                                                               guint32             activate_time);
+
+GtkAction       *thunar_gtk_ui_manager_get_action_by_name     (GtkUIManager       *ui_manager,
+                                                               const gchar        *action_name);
+
+void             thunar_gtk_widget_set_tooltip                (GtkWidget          *widget,
+                                                               const gchar        *format,
+                                                               ...) G_GNUC_PRINTF (2, 3);
+
+GMountOperation *thunar_gtk_mount_operation_new               (gpointer            parent);
 
 G_END_DECLS;
 
diff --git a/thunar/thunar-launcher.c b/thunar/thunar-launcher.c
index f4f192a..700eaf3 100644
--- a/thunar/thunar-launcher.c
+++ b/thunar/thunar-launcher.c
@@ -1581,7 +1581,6 @@ thunar_launcher_action_sendto_device (GtkAction      *action,
 {
   ThunarLauncherMountData *data;
   GMountOperation         *mount_operation;
-  GtkWidget               *window;
   ThunarDevice            *device;
   GList                   *files;
 
@@ -1601,14 +1600,11 @@ thunar_launcher_action_sendto_device (GtkAction      *action,
   /* make sure to mount the device first, if it's not already mounted */
   if (!thunar_device_is_mounted (device))
     {
-      /* determine the toplevel window */
-      window = gtk_widget_get_toplevel (launcher->widget);
-
       /* allocate mount data */
       data = thunar_launcher_mount_data_new (launcher, files);
 
       /* allocate a GTK+ mount operation */
-      mount_operation = gtk_mount_operation_new (GTK_WINDOW (window));
+      mount_operation = thunar_gtk_mount_operation_new (launcher->widget);
 
       /* try to mount the device and later start sending the files */
       thunar_device_mount (device,
diff --git a/thunar/thunar-shortcuts-view.c b/thunar/thunar-shortcuts-view.c
index 1d57020..8e4c60d 100644
--- a/thunar/thunar-shortcuts-view.c
+++ b/thunar/thunar-shortcuts-view.c
@@ -1863,7 +1863,6 @@ thunar_shortcuts_view_eject (ThunarShortcutsView *view)
   GtkTreeIter       iter;
   ThunarDevice     *device;
   GMountOperation  *mount_operation;
-  GtkWidget        *window;
   GtkTreeModel     *child_model;
 
   _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
@@ -1877,8 +1876,7 @@ thunar_shortcuts_view_eject (ThunarShortcutsView *view)
       _thunar_return_if_fail (THUNAR_IS_DEVICE (device));
 
       /* prepare a mount operation */
-      window = gtk_widget_get_toplevel (GTK_WIDGET (view));
-      mount_operation = gtk_mount_operation_new (GTK_WINDOW (window));
+      mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view));
 
       /* start the spinner */
       child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
@@ -2007,7 +2005,6 @@ thunar_shortcuts_view_unmount (ThunarShortcutsView *view)
   GtkTreeIter       iter;
   ThunarDevice     *device;
   GMountOperation  *mount_operation;
-  GtkWidget        *window;
   GtkTreeModel     *child_model;
 
   _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
@@ -2021,8 +2018,7 @@ thunar_shortcuts_view_unmount (ThunarShortcutsView *view)
       _thunar_return_if_fail (THUNAR_IS_DEVICE (device));
 
       /* prepare a mount operation */
-      window = gtk_widget_get_toplevel (GTK_WIDGET (view));
-      mount_operation = gtk_mount_operation_new (GTK_WINDOW (window));
+      mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view));
 
       /* start the spinner */
       child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
diff --git a/thunar/thunar-tree-view.c b/thunar/thunar-tree-view.c
index 0d87711..1bca480 100644
--- a/thunar/thunar-tree-view.c
+++ b/thunar/thunar-tree-view.c
@@ -991,7 +991,6 @@ thunar_tree_view_test_expand_row (GtkTreeView *tree_view,
   ThunarTreeViewMountData *data;
   GMountOperation         *mount_operation;
   ThunarTreeView          *view = THUNAR_TREE_VIEW (tree_view);
-  GtkWidget               *window;
   gboolean                 expandable = TRUE;
   ThunarDevice            *device;
 
@@ -1011,8 +1010,7 @@ thunar_tree_view_test_expand_row (GtkTreeView *tree_view,
           data = thunar_tree_view_mount_data_new (view, path, FALSE, OPEN_IN_VIEW);
 
           /* allocate a GTK+ mount operation */
-          window = gtk_widget_get_toplevel (GTK_WIDGET (view));
-          mount_operation = gtk_mount_operation_new (GTK_WINDOW (window));
+          mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view));
 
           /* try to mount the device and expand the row on success. the
            * data is destroyed in the finish callback */
@@ -1831,7 +1829,6 @@ thunar_tree_view_action_eject (ThunarTreeView *view)
 {
   ThunarDevice    *device;
   GMountOperation *mount_operation;
-  GtkWidget       *window;
 
   _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view));
 
@@ -1840,8 +1837,7 @@ thunar_tree_view_action_eject (ThunarTreeView *view)
   if (G_LIKELY (device != NULL))
     {
       /* prepare a mount operation */
-      window = gtk_widget_get_toplevel (GTK_WIDGET (view));
-      mount_operation = gtk_mount_operation_new (GTK_WINDOW (window));
+      mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view));
 
       /* eject */
       thunar_device_eject (device,
@@ -1888,7 +1884,6 @@ thunar_tree_view_action_unmount (ThunarTreeView *view)
 {
   ThunarDevice    *device;
   GMountOperation *mount_operation;
-  GtkWidget       *window;
 
   _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view));
 
@@ -1897,8 +1892,7 @@ thunar_tree_view_action_unmount (ThunarTreeView *view)
   if (G_LIKELY (device != NULL))
     {
       /* prepare a mount operation */
-      window = gtk_widget_get_toplevel (GTK_WIDGET (view));
-      mount_operation = gtk_mount_operation_new (GTK_WINDOW (window));
+      mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view));
 
       /* eject */
       thunar_device_unmount (device,
@@ -1993,7 +1987,6 @@ thunar_tree_view_mount (ThunarTreeView *view,
 {
   ThunarTreeViewMountData *data;
   GMountOperation         *mount_operation;
-  GtkWidget               *window;
   ThunarDevice            *device;
 
   _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view));
@@ -2009,8 +2002,7 @@ thunar_tree_view_mount (ThunarTreeView *view,
           data = thunar_tree_view_mount_data_new (view, NULL, open_after_mounting, open_in);
 
           /* allocate a GTK+ mount operation */
-          window = gtk_widget_get_toplevel (GTK_WIDGET (view));
-          mount_operation = gtk_mount_operation_new (GTK_WINDOW (window));
+          mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view));
 
           /* try to mount the device and expand the row on success. the
            * data is destroyed in the finish callback */


More information about the Xfce4-commits mailing list