diff options
author | Mathieu Lacage <mathieu@gnome.org> | 2003-09-12 08:45:53 +0000 |
---|---|---|
committer | Mathieu Lacage <mathieu@src.gnome.org> | 2003-09-12 08:45:53 +0000 |
commit | 887e6cae5bded5d0e9b90c871223922310dcc88b (patch) | |
tree | 96da01fd19ce05142d8a14adab00f3d3ec1db070 | |
parent | 0bc745c9ffeafcdd985ac75d3dcc98daefa38d73 (diff) | |
download | nautilus-887e6cae5bded5d0e9b90c871223922310dcc88b.tar.gz |
add a wait cursor during permission change. This is most useful whenNAUTILUS_SPATIAL_PLAYGROUND_BRANCHPOINT
2003-09-11 Mathieu Lacage <mathieu@gnome.org>
* src/file-manager/fm-properties-window.c: add a wait cursor during
permission change. This is most useful when changing the permission
a big group of files.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | src/file-manager/fm-properties-window.c | 23 |
2 files changed, 26 insertions, 3 deletions
@@ -1,3 +1,9 @@ +2003-09-11 Mathieu Lacage <mathieu@gnome.org> + + * src/file-manager/fm-properties-window.c: add a wait cursor during + permission change. This is most useful when changing the permission + a big group of files. + 2003-09-11 Bastien Nocera <hadess@hadess.net> * libnautilus-private/nautilus-volume-monitor.c: diff --git a/src/file-manager/fm-properties-window.c b/src/file-manager/fm-properties-window.c index 2f8393ffd..8435f8ac3 100644 --- a/src/file-manager/fm-properties-window.c +++ b/src/file-manager/fm-properties-window.c @@ -123,6 +123,8 @@ struct FMPropertiesWindowDetails { guint total_count; GnomeVFSFileSize total_size; + + guint long_operation_underway; }; enum { @@ -2436,7 +2438,14 @@ create_emblems_page (FMPropertiesWindow *window) static void permission_change_callback (NautilusFile *file, GnomeVFSResult result, gpointer callback_data) { - g_assert (callback_data == NULL); + g_assert (callback_data != NULL); + + FMPropertiesWindow *window = (FMPropertiesWindow *)callback_data; + if (window->details->long_operation_underway == 1) { + /* finished !! */ + gdk_window_set_cursor (GTK_WIDGET (window)->window, NULL); + } + window->details->long_operation_underway--; /* Report the error if it's an error. */ fm_report_error_setting_permissions (file, result, NULL); @@ -2514,6 +2523,14 @@ permission_button_toggled (GtkToggleButton *button, G_CALLBACK (permission_button_toggled), window); + if (window->details->long_operation_underway == 0) { + /* start long operation */ + GdkCursor * cursor = gdk_cursor_new (GDK_WATCH); + gdk_window_set_cursor (GTK_WIDGET (window)->window, cursor); + } + window->details->long_operation_underway += g_list_length (files_on); + window->details->long_operation_underway += g_list_length (files_off); + for (l = files_on; l != NULL; l = l->next) { NautilusFile *file; @@ -2527,7 +2544,7 @@ permission_button_toggled (GtkToggleButton *button, nautilus_file_set_permissions (file, permissions, permission_change_callback, - NULL); + window); } } @@ -2546,7 +2563,7 @@ permission_button_toggled (GtkToggleButton *button, nautilus_file_set_permissions (file, permissions, permission_change_callback, - NULL); + window); } } |