diff options
author | Carlos Soriano <csoriano1618@gmail.com> | 2018-01-05 13:52:11 +0000 |
---|---|---|
committer | Carlos Soriano <csoriano1618@gmail.com> | 2018-01-05 13:52:11 +0000 |
commit | 3f5d5e2de114596e7a690e772599be7929a44225 (patch) | |
tree | fb00b4c4e996704acba6692e3ad6cb6a5e7553e4 | |
parent | 2fff34b21ceb33c9f3811fce550221cd220b0702 (diff) | |
parent | 3d2af16001897095d744e26e5597f9c6c5b58bb6 (diff) | |
download | nautilus-3f5d5e2de114596e7a690e772599be7929a44225.tar.gz |
Merge branch 'a-very-vague-branch-name' into 'master'
Various cleanups and fixes
Closes #176
See merge request GNOME/nautilus!52
-rw-r--r-- | README.md | 10 | ||||
-rw-r--r-- | data/org.gnome.nautilus.gschema.xml | 5 | ||||
-rw-r--r-- | src/nautilus-directory-async.c | 4 | ||||
-rw-r--r-- | src/nautilus-file.c | 192 | ||||
-rw-r--r-- | src/nautilus-file.h | 27 | ||||
-rw-r--r-- | src/nautilus-files-view.c | 32 | ||||
-rw-r--r-- | src/nautilus-global-preferences.h | 3 | ||||
-rw-r--r-- | src/nautilus-view-icon-ui.c | 1 |
8 files changed, 64 insertions, 210 deletions
@@ -1,7 +1,11 @@ +# Nautilus + +![Pipeline status](https://gitlab.gnome.org/GNOME/nautilus/badges/master/build.svg) + This is Nautilus, the file manager for the GNOME desktop. https://wiki.gnome.org/Apps/Nautilus -# Hacking on Nautilus +## Hacking on Nautilus To build the development version of Nautilus and hack on the code see the general guide for build the GNOME platform at @@ -10,13 +14,13 @@ are in https://wiki.gnome.org/Newcomers/BuildProject Guidelines and tutorials to contribute to the GNOME platform are in https://wiki.gnome.org/Newcomers -# Mailing List +## Mailing List The nautilus mailing list is nautilus-list@gnome.org. Subscription information is available at https://mail.gnome.org/mailman/listinfo/nautilus-list -# How to report bugs +## How to report bugs Bugs should be reported to the GNOME bug tracking system at https://gitlab.gnome.org/GNOME/nautilus/issues. diff --git a/data/org.gnome.nautilus.gschema.xml b/data/org.gnome.nautilus.gschema.xml index d4ca8f2a3..7ad4df3b6 100644 --- a/data/org.gnome.nautilus.gschema.xml +++ b/data/org.gnome.nautilus.gschema.xml @@ -236,11 +236,6 @@ <default>'large'</default> <summary>Default icon view zoom level</summary> </key> - <key type="i" name="thumbnail-size"> - <default>64</default> - <summary>Default Thumbnail Icon Size</summary> - <description>The default size of an icon for a thumbnail in the icon view when using NAUTILUS_ICON_SIZE_STANDARD size.</description> - </key> <key type="as" name="text-ellipsis-limit"> <default>[ '3' ]</default> <summary>Text Ellipsis Limit</summary> diff --git a/src/nautilus-directory-async.c b/src/nautilus-directory-async.c index d642e6fad..e44d1a8e0 100644 --- a/src/nautilus-directory-async.c +++ b/src/nautilus-directory-async.c @@ -3911,8 +3911,6 @@ thumbnail_state_free (ThumbnailState *state) g_free (state); } -extern int cached_thumbnail_size; - /* scale very large images down to the max. size we need */ static void thumbnail_loader_size_prepared (GdkPixbufLoader *loader, @@ -3926,7 +3924,7 @@ thumbnail_loader_size_prepared (GdkPixbufLoader *loader, aspect_ratio = ((double) width) / height; /* cf. nautilus_file_get_icon() */ - max_thumbnail_size = NAUTILUS_CANVAS_ICON_SIZE_LARGEST * cached_thumbnail_size / NAUTILUS_CANVAS_ICON_SIZE_SMALL; + max_thumbnail_size = NAUTILUS_CANVAS_ICON_SIZE_LARGEST * NAUTILUS_CANVAS_ICON_SIZE_STANDARD / NAUTILUS_CANVAS_ICON_SIZE_SMALL; if (MAX (width, height) > max_thumbnail_size) { if (width > height) diff --git a/src/nautilus-file.c b/src/nautilus-file.c index e62b54a5c..6402e87ae 100644 --- a/src/nautilus-file.c +++ b/src/nautilus-file.c @@ -124,7 +124,6 @@ static guint signals[LAST_SIGNAL]; static GHashTable *symbolic_links; static guint64 cached_thumbnail_limit; -int cached_thumbnail_size; static NautilusSpeedTradeoffValue show_file_thumbs; static NautilusSpeedTradeoffValue show_directory_item_count; @@ -175,7 +174,6 @@ static const char *nautilus_file_peek_display_name_collation_key (NautilusFile * static void file_mount_unmounted (GMount *mount, gpointer data); static void metadata_hash_free (GHashTable *hash); -static gboolean real_drag_can_accept_files (NautilusFile *drop_target_item); G_DEFINE_TYPE_WITH_CODE (NautilusFile, nautilus_file, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (NAUTILUS_TYPE_FILE_INFO, @@ -1671,12 +1669,6 @@ can_rename_desktop_file (NautilusFile *file) gboolean nautilus_file_can_rename (NautilusFile *file) { - return NAUTILUS_FILE_CLASS (G_OBJECT_GET_CLASS (file))->can_rename (file); -} - -static gboolean -real_can_rename (NautilusFile *file) -{ gboolean can_rename; g_return_val_if_fail (NAUTILUS_IS_FILE (file), FALSE); @@ -1809,12 +1801,6 @@ nautilus_file_get_uri_scheme (NautilusFile *file) gboolean nautilus_file_opens_in_view (NautilusFile *file) { - return NAUTILUS_FILE_CLASS (G_OBJECT_GET_CLASS (file))->opens_in_view (file); -} - -static gboolean -real_opens_in_view (NautilusFile *file) -{ return nautilus_file_is_directory (file); } @@ -2029,18 +2015,6 @@ name_is (NautilusFile *file, return strcmp (new_name, old_name) == 0; } -void -nautilus_file_rename (NautilusFile *file, - const char *new_name, - NautilusFileOperationCallback callback, - gpointer callback_data) -{ - NAUTILUS_FILE_CLASS (G_OBJECT_GET_CLASS (file))->rename (file, - new_name, - callback, - callback_data); -} - static gchar * nautilus_file_can_rename_file (NautilusFile *file, const char *new_name, @@ -2178,6 +2152,58 @@ nautilus_file_can_rename_file (NautilusFile *file, return new_file_name; } +void +nautilus_file_rename (NautilusFile *file, + const char *new_name, + NautilusFileOperationCallback callback, + gpointer callback_data) +{ + NautilusFileOperation *op; + char *old_name; + char *new_file_name; + GFile *location; + + g_return_if_fail (NAUTILUS_IS_FILE (file)); + g_return_if_fail (new_name != NULL); + g_return_if_fail (callback != NULL); + + new_file_name = nautilus_file_can_rename_file (file, + new_name, + callback, + callback_data); + + if (new_file_name == NULL) + { + return; + } + + /* Set up a renaming operation. */ + op = nautilus_file_operation_new (file, callback, callback_data); + op->is_rename = TRUE; + location = nautilus_file_get_location (file); + + /* Tell the undo manager a rename is taking place */ + if (!nautilus_file_undo_manager_is_operating ()) + { + op->undo_info = nautilus_file_undo_info_rename_new (); + + old_name = nautilus_file_get_display_name (file); + nautilus_file_undo_info_rename_set_data_pre (NAUTILUS_FILE_UNDO_INFO_RENAME (op->undo_info), + location, old_name, new_file_name); + g_free (old_name); + } + + /* Do the renaming. */ + g_file_set_display_name_async (location, + new_file_name, + G_PRIORITY_DEFAULT, + op->cancellable, + rename_callback, + op); + g_free (new_file_name); + g_object_unref (location); +} + gboolean nautilus_file_rename_handle_file_gone (NautilusFile *file, NautilusFileOperationCallback callback, @@ -2411,58 +2437,6 @@ nautilus_file_batch_rename (GList *files, callback_data); } -static void -real_rename (NautilusFile *file, - const char *new_name, - NautilusFileOperationCallback callback, - gpointer callback_data) -{ - NautilusFileOperation *op; - char *old_name; - char *new_file_name; - GFile *location; - - g_return_if_fail (NAUTILUS_IS_FILE (file)); - g_return_if_fail (new_name != NULL); - g_return_if_fail (callback != NULL); - - new_file_name = nautilus_file_can_rename_file (file, - new_name, - callback, - callback_data); - - if (new_file_name == NULL) - { - return; - } - - /* Set up a renaming operation. */ - op = nautilus_file_operation_new (file, callback, callback_data); - op->is_rename = TRUE; - location = nautilus_file_get_location (file); - - /* Tell the undo manager a rename is taking place */ - if (!nautilus_file_undo_manager_is_operating ()) - { - op->undo_info = nautilus_file_undo_info_rename_new (); - - old_name = nautilus_file_get_display_name (file); - nautilus_file_undo_info_rename_set_data_pre (NAUTILUS_FILE_UNDO_INFO_RENAME (op->undo_info), - location, old_name, new_file_name); - g_free (old_name); - } - - /* Do the renaming. */ - g_file_set_display_name_async (location, - new_file_name, - G_PRIORITY_DEFAULT, - op->cancellable, - rename_callback, - op); - g_free (new_file_name); - g_object_unref (location); -} - gboolean nautilus_file_rename_in_progress (NautilusFile *file) { @@ -4722,12 +4696,6 @@ nautilus_file_get_activation_location (NautilusFile *file) char * nautilus_file_get_target_uri (NautilusFile *file) { - return NAUTILUS_FILE_CLASS (G_OBJECT_GET_CLASS (file))->get_target_uri (file); -} - -static char * -real_get_target_uri (NautilusFile *file) -{ char *uri, *target_uri; GFile *location; @@ -5397,9 +5365,7 @@ nautilus_file_get_thumbnail_icon (NautilusFile *file, } else { - modified_size = size * scale * cached_thumbnail_size / NAUTILUS_CANVAS_ICON_SIZE_SMALL; - DEBUG ("Modifying icon size to %d, as our cached thumbnail size is %d", - modified_size, cached_thumbnail_size); + modified_size = size * scale * NAUTILUS_CANVAS_ICON_SIZE_STANDARD / NAUTILUS_CANVAS_ICON_SIZE_SMALL; } if (file->details->thumbnail) @@ -5409,7 +5375,7 @@ nautilus_file_get_thumbnail_icon (NautilusFile *file, s = MAX (w, h); /* Don't scale up small thumbnails in the standard view */ - if (s <= cached_thumbnail_size) + if (s <= NAUTILUS_CANVAS_ICON_SIZE_STANDARD) { thumb_scale = (double) size / NAUTILUS_CANVAS_ICON_SIZE_SMALL; } @@ -8289,18 +8255,6 @@ nautilus_file_is_user_special_directory (NautilusFile *file, } gboolean -nautilus_file_is_special_link (NautilusFile *file) -{ - return NAUTILUS_FILE_CLASS (G_OBJECT_GET_CLASS (file))->is_special_link (file); -} - -static gboolean -real_is_special_link (NautilusFile *file) -{ - return FALSE; -} - -gboolean nautilus_file_is_archive (NautilusFile *file) { g_autofree char *mime_type = NULL; @@ -8818,13 +8772,6 @@ void nautilus_file_invalidate_attributes_internal (NautilusFile *file, NautilusFileAttributes file_attributes) { - NAUTILUS_FILE_CLASS (G_OBJECT_GET_CLASS (file))->invalidate_attributes_internal (file, file_attributes); -} - -static void -real_invalidate_attributes_internal (NautilusFile *file, - NautilusFileAttributes file_attributes) -{ Request request; if (file == NULL) @@ -9352,19 +9299,6 @@ thumbnail_limit_changed_callback (gpointer user_data) } static void -thumbnail_size_changed_callback (gpointer user_data) -{ - cached_thumbnail_size = g_settings_get_int (nautilus_icon_view_preferences, - NAUTILUS_PREFERENCES_ICON_VIEW_THUMBNAIL_SIZE); - - /* Tell the world that icons might have changed. We could invent a narrower-scope - * signal to mean only "thumbnails might have changed" if this ends up being slow - * for some reason. - */ - emit_change_signals_for_all_files_in_all_directories (); -} - -static void show_thumbnails_changed_callback (gpointer user_data) { show_file_thumbs = g_settings_get_enum (nautilus_preferences, NAUTILUS_PREFERENCES_SHOW_FILE_THUMBNAILS); @@ -9556,13 +9490,6 @@ nautilus_file_class_init (NautilusFileClass *class) class->get_deep_counts = real_get_deep_counts; class->set_metadata = real_set_metadata; class->set_metadata_as_list = real_set_metadata_as_list; - class->can_rename = real_can_rename; - class->rename = real_rename; - class->get_target_uri = real_get_target_uri; - class->drag_can_accept_files = real_drag_can_accept_files; - class->invalidate_attributes_internal = real_invalidate_attributes_internal; - class->opens_in_view = real_opens_in_view; - class->is_special_link = real_is_special_link; signals[CHANGED] = g_signal_new ("changed", @@ -9589,11 +9516,6 @@ nautilus_file_class_init (NautilusFileClass *class) "changed::" NAUTILUS_PREFERENCES_FILE_THUMBNAIL_LIMIT, G_CALLBACK (thumbnail_limit_changed_callback), NULL); - thumbnail_size_changed_callback (NULL); - g_signal_connect_swapped (nautilus_preferences, - "changed::" NAUTILUS_PREFERENCES_ICON_VIEW_THUMBNAIL_SIZE, - G_CALLBACK (thumbnail_size_changed_callback), - NULL); show_thumbnails_changed_callback (NULL); g_signal_connect_swapped (nautilus_preferences, "changed::" NAUTILUS_PREFERENCES_SHOW_FILE_THUMBNAILS, @@ -9695,12 +9617,6 @@ nautilus_file_info_providers_done (NautilusFile *file) static gboolean nautilus_drag_can_accept_files (NautilusFile *drop_target_item) { - return NAUTILUS_FILE_CLASS (G_OBJECT_GET_CLASS (drop_target_item))->drag_can_accept_files (drop_target_item); -} - -static gboolean -real_drag_can_accept_files (NautilusFile *drop_target_item) -{ if (nautilus_file_is_directory (drop_target_item)) { NautilusDirectory *directory; diff --git a/src/nautilus-file.h b/src/nautilus-file.h index c3e434c94..670009d05 100644 --- a/src/nautilus-file.h +++ b/src/nautilus-file.h @@ -121,11 +121,6 @@ typedef void (*NautilusFileOperationCallback) (NautilusFile *file, GFile *result_location, GError *error, gpointer callback_data); -typedef int (*NautilusWidthMeasureCallback) (const char *string, - void *context); -typedef char * (*NautilusTruncateCallback) (const char *string, - int width, - void *context); #define NAUTILUS_FILE_ATTRIBUTES_FOR_ICON (NAUTILUS_FILE_ATTRIBUTE_INFO | NAUTILUS_FILE_ATTRIBUTE_LINK_INFO | NAUTILUS_FILE_ATTRIBUTE_THUMBNAIL) @@ -213,7 +208,6 @@ gboolean nautilus_file_is_directory (Nautilu gboolean nautilus_file_is_regular_file (NautilusFile *file); gboolean nautilus_file_is_user_special_directory (NautilusFile *file, GUserDirectory special_directory); -gboolean nautilus_file_is_special_link (NautilusFile *file); gboolean nautilus_file_is_archive (NautilusFile *file); gboolean nautilus_file_is_in_search (NautilusFile *file); gboolean nautilus_file_is_in_trash (NautilusFile *file); @@ -619,27 +613,6 @@ typedef struct { gpointer callback_data); void (* poll_for_media) (NautilusFile *file); - - gboolean (* can_rename) (NautilusFile *file); - - void (* rename) (NautilusFile *file, - const char *new_name, - NautilusFileOperationCallback callback, - gpointer callback_data); - - char* (* get_target_uri) (NautilusFile *file); - - gboolean (* drag_can_accept_files) (NautilusFile *drop_target_item); - - void (* invalidate_attributes_internal) (NautilusFile *file, - NautilusFileAttributes file_attributes); - - gboolean (* opens_in_view) (NautilusFile *file); - - /* Use this if the custom file class doesn't support usual operations like - * copy, delete or move. - */ - gboolean (* is_special_link) (NautilusFile *file); } NautilusFileClass; #endif /* NAUTILUS_FILE_H */ diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c index 889559421..ab782af76 100644 --- a/src/nautilus-files-view.c +++ b/src/nautilus-files-view.c @@ -4651,31 +4651,6 @@ nautilus_files_view_get_content_widget (NautilusFilesView *view) return priv->scrolled_window; } -static gboolean -nautilus_files_view_special_link_in_selection (NautilusFilesView *view, - GList *selection) -{ - gboolean saw_link; - GList *node; - NautilusFile *file; - - saw_link = FALSE; - - for (node = selection; node != NULL; node = node->next) - { - file = NAUTILUS_FILE (node->data); - - saw_link = nautilus_file_is_special_link (file); - - if (saw_link) - { - break; - } - } - - return saw_link; -} - /* desktop_or_home_dir_in_selection * * Return TRUE if either the desktop or the home directory is in the selection. @@ -7363,7 +7338,6 @@ real_update_actions_state (NautilusFilesView *view) NautilusFile *file; gint selection_count; gboolean zoom_level_is_default; - gboolean selection_contains_special_link; gboolean selection_contains_desktop_or_home_dir; gboolean selection_contains_recent; gboolean selection_contains_search; @@ -7402,7 +7376,6 @@ real_update_actions_state (NautilusFilesView *view) selection = nautilus_view_get_selection (NAUTILUS_VIEW (view)); selection_count = g_list_length (selection); - selection_contains_special_link = nautilus_files_view_special_link_in_selection (view, selection); selection_contains_desktop_or_home_dir = desktop_or_home_dir_in_selection (selection); selection_contains_recent = showing_recent_directory (view); selection_contains_starred = showing_starred_directory (view); @@ -7418,15 +7391,12 @@ real_update_actions_state (NautilusFilesView *view) can_delete_files = can_delete_all (selection) && selection_count != 0 && - !selection_contains_special_link && !selection_contains_desktop_or_home_dir; can_trash_files = can_trash_all (selection) && selection_count != 0 && - !selection_contains_special_link && !selection_contains_desktop_or_home_dir; - can_copy_files = selection_count != 0 - && !selection_contains_special_link; + can_copy_files = selection_count != 0; can_move_files = can_delete_files && !selection_contains_recent && !selection_contains_starred; can_paste_files_into = (!selection_contains_recent && diff --git a/src/nautilus-global-preferences.h b/src/nautilus-global-preferences.h index a9bede7f2..ac5d9becf 100644 --- a/src/nautilus-global-preferences.h +++ b/src/nautilus-global-preferences.h @@ -96,9 +96,6 @@ typedef enum /* Which text attributes appear beneath icon names */ #define NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS "captions" -/* The default size for thumbnail icons */ -#define NAUTILUS_PREFERENCES_ICON_VIEW_THUMBNAIL_SIZE "thumbnail-size" - /* ellipsization preferences */ #define NAUTILUS_PREFERENCES_ICON_VIEW_TEXT_ELLIPSIS_LIMIT "text-ellipsis-limit" diff --git a/src/nautilus-view-icon-ui.c b/src/nautilus-view-icon-ui.c index c39656704..2ccdf8b95 100644 --- a/src/nautilus-view-icon-ui.c +++ b/src/nautilus-view-icon-ui.c @@ -190,6 +190,7 @@ constructed (GObject *object) gtk_flow_box_set_max_children_per_line (GTK_FLOW_BOX (self), 20); gtk_flow_box_set_selection_mode (GTK_FLOW_BOX (self), GTK_SELECTION_MULTIPLE); gtk_flow_box_set_homogeneous (GTK_FLOW_BOX (self), FALSE); + gtk_widget_set_can_focus (GTK_WIDGET (self), TRUE); gtk_widget_set_valign (GTK_WIDGET (self), GTK_ALIGN_START); gtk_widget_set_margin_top (GTK_WIDGET (self), 10); gtk_widget_set_margin_start (GTK_WIDGET (self), 10); |