diff --git a/po/POTFILES.in b/po/POTFILES.in index eb0f8f29dc98ecc8e1882aa5f04ddeaa98da2b72..c3542b02219acca5150ef392673b45c0a3db40b6 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -28,6 +28,7 @@ src/nautilus-compress-dialog-controller.c src/nautilus-dbus-launcher.c src/nautilus-directory.c src/nautilus-dnd.c +src/nautilus-grid-view.c src/nautilus-error-reporting.c src/nautilus-file.c src/nautilus-file-conflict-dialog.c @@ -87,7 +88,6 @@ src/resources/ui/nautilus-properties-window.ui src/resources/ui/nautilus-rename-file-popover.ui src/resources/ui/nautilus-search-popover.ui src/resources/ui/nautilus-toolbar.ui -src/resources/ui/nautilus-toolbar-view-menu.ui src/resources/ui/nautilus-window.ui src/gtk/nautilusgtkplacesview.c src/gtk/nautilusgtkplacesviewrow.c diff --git a/src/meson.build b/src/meson.build index a0c92c92bcc07efd344ab5c8aa2c7b219a65dacb..2176f1d29b5a6a59d2b6fcf691bd9fb0171c3b6d 100644 --- a/src/meson.build +++ b/src/meson.build @@ -124,7 +124,6 @@ libnautilus_sources = [ 'nautilus-star-cell.h', 'nautilus-toolbar.c', 'nautilus-toolbar.h', - 'nautilus-toolbar-menu-sections.h', 'nautilus-trash-bar.c', 'nautilus-trash-bar.h', 'nautilus-view.c', diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c index 1ba862c7a1a886c1e18642bab3c931410dff60c1..7049440dbcad7ddb19c6d1a7f0f3bb9476592401 100644 --- a/src/nautilus-files-view.c +++ b/src/nautilus-files-view.c @@ -246,6 +246,9 @@ typedef struct GtkWidget *stack; + GtkWidget *sort_menu_button; + GMenuModel *sort_menu; + GtkWidget *scrolled_window; /* Empty states */ @@ -257,9 +260,6 @@ typedef struct guint floating_bar_set_passthrough_timeout_id; GtkWidget *floating_bar; - /* Toolbar menu */ - NautilusToolbarMenuSections *toolbar_menu_sections; - /* Exposed menus, for the path bar etc. */ GMenuModel *extensions_background_menu; GMenuModel *templates_menu; @@ -348,7 +348,7 @@ static gboolean nautilus_files_view_is_read_only (NautilusFilesView *view); G_DEFINE_TYPE_WITH_CODE (NautilusFilesView, nautilus_files_view, - ADW_TYPE_BIN, + GTK_TYPE_BOX, G_IMPLEMENT_INTERFACE (NAUTILUS_TYPE_VIEW, nautilus_files_view_iface_init) G_ADD_PRIVATE (NautilusFilesView)); @@ -722,28 +722,6 @@ nautilus_files_view_reveal_selection (NautilusFilesView *view) NAUTILUS_FILES_VIEW_CLASS (G_OBJECT_GET_CLASS (view))->reveal_selection (view); } -/** - * nautilus_files_view_get_toolbar_menu_sections: - * @view: a #NautilusFilesView - * - * Retrieves the menu sections that should be added to the toolbar menu when - * this view is active - * - * Returns: (transfer none): a #NautilusToolbarMenuSections with the details of - * which menu sections should be added to the menu - */ -static NautilusToolbarMenuSections * -nautilus_files_view_get_toolbar_menu_sections (NautilusView *view) -{ - NautilusFilesViewPrivate *priv; - - g_return_val_if_fail (NAUTILUS_IS_FILES_VIEW (view), NULL); - - priv = nautilus_files_view_get_instance_private (NAUTILUS_FILES_VIEW (view)); - - return priv->toolbar_menu_sections; -} - static GMenuModel * nautilus_files_view_get_templates_menu (NautilusView *self) { @@ -3315,7 +3293,6 @@ nautilus_files_view_finalize (GObject *object) g_clear_object (&priv->view_action_group); g_clear_object (&priv->background_menu_model); g_clear_object (&priv->selection_menu_model); - g_clear_object (&priv->toolbar_menu_sections->sort_section); g_clear_object (&priv->extensions_background_menu); g_clear_object (&priv->templates_menu); g_clear_object (&priv->rename_file_controller); @@ -3324,8 +3301,6 @@ nautilus_files_view_finalize (GObject *object) /* We don't own the slot, so no unref */ priv->slot = NULL; - g_free (priv->toolbar_menu_sections); - g_hash_table_destroy (priv->non_ready_files); g_hash_table_destroy (priv->pending_reveal); @@ -4842,6 +4817,15 @@ nautilus_files_view_get_content_widget (NautilusFilesView *view) return priv->scrolled_window; } +void +nautilus_files_view_set_sort_label (NautilusFilesView *view, + const gchar *label) +{ + NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (view); + + gtk_menu_button_set_label (GTK_MENU_BUTTON (priv->sort_menu_button), label); +} + /* home_dir_in_selection() * * Return TRUE if the home directory is in the selection. @@ -7043,9 +7027,7 @@ const GActionEntry view_entries[] = { "paste_accel", action_paste_files_accel }, { "create-link", action_create_links }, { "create-link-shortcut", action_create_links }, - { "new-document" }, /* Selection menu */ - { "scripts" }, { "new-folder-with-selection", action_new_folder_with_selection }, { "open-scripts-folder", action_open_scripts_folder }, { "open-item-location", action_open_item_location }, @@ -7748,11 +7730,6 @@ real_update_actions_state (NautilusFilesView *view) g_simple_action_set_enabled (G_SIMPLE_ACTION (action), show_detect_media); - action = g_action_map_lookup_action (G_ACTION_MAP (view_action_group), - "scripts"); - g_simple_action_set_enabled (G_SIMPLE_ACTION (action), - priv->scripts_menu != NULL); - /* Background menu actions */ action = g_action_map_lookup_action (G_ACTION_MAP (view_action_group), "open-current-directory-with-other-application"); @@ -7783,13 +7760,6 @@ real_update_actions_state (NautilusFilesView *view) "current-directory-properties"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), !selection_contains_search); - action = g_action_map_lookup_action (G_ACTION_MAP (view_action_group), - "new-document"); - g_simple_action_set_enabled (G_SIMPLE_ACTION (action), - can_create_files && - !selection_contains_recent && - !selection_contains_starred && - priv->templates_menu != NULL); /* Actions that are related to the clipboard need request, request the data * and update them once we have the data */ @@ -8128,8 +8098,19 @@ update_selection_menu (NautilusFilesView *view, update_scripts_menu (view, builder); priv->scripts_menu_updated = TRUE; } - object = gtk_builder_get_object (builder, "scripts-submenu-section"); - nautilus_gmenu_set_from_model (G_MENU (object), priv->scripts_menu); + + if (priv->scripts_menu != NULL) + { + object = gtk_builder_get_object (builder, "scripts-submenu-section"); + nautilus_gmenu_set_from_model (G_MENU (object), priv->scripts_menu); + } + else + { + gint i = nautilus_g_menu_model_find_by_string (G_MENU_MODEL (priv->selection_menu_model), + "nautilus-menu-item", + "scripts-submenu"); + g_menu_remove (priv->selection_menu_model, i); + } } static void @@ -8138,6 +8119,7 @@ update_background_menu (NautilusFilesView *view, { NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (view); GObject *object; + gboolean remove_submenu = TRUE; if (nautilus_files_view_supports_creating_files (view) && !showing_recent_directory (view) && @@ -8151,6 +8133,19 @@ update_background_menu (NautilusFilesView *view, object = gtk_builder_get_object (builder, "templates-submenu"); nautilus_gmenu_set_from_model (G_MENU (object), priv->templates_menu); + + if (priv->templates_menu != NULL) + { + remove_submenu = FALSE; + } + } + + if (remove_submenu) + { + gint i = nautilus_g_menu_model_find_by_string (G_MENU_MODEL (priv->background_menu_model), + "nautilus-menu-item", + "templates-submenu"); + g_menu_remove (priv->background_menu_model, i); } } @@ -8200,7 +8195,7 @@ nautilus_files_view_reset_view_menu (NautilusFilesView *view) { NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (view); NautilusFile *file; - GMenuModel *sort_section = priv->toolbar_menu_sections->sort_section; + GMenuModel *sort_section = priv->sort_menu; const gchar *action; gint i; @@ -8283,14 +8278,14 @@ nautilus_files_view_pop_up_selection_context_menu (NautilusFilesView *view, */ update_context_menus_if_pending (view); - if (NULL == priv->selection_menu) - { - priv->selection_menu = gtk_popover_menu_new_from_model (NULL); - gtk_widget_set_parent (priv->selection_menu, GTK_WIDGET (view)); - gtk_popover_set_has_arrow (GTK_POPOVER (priv->selection_menu), FALSE); - gtk_widget_set_halign (priv->selection_menu, GTK_ALIGN_START); - g_signal_connect (priv->selection_menu, "destroy", G_CALLBACK (gtk_widget_unparent), NULL); - } + /* Destroy old popover and create a new one, to avoid duplicate submenu bugs + * and showing old model temporarily. We don't do this when popover is + * closed because it wouldn't activate the actions then. */ + g_clear_pointer (&priv->selection_menu, gtk_widget_unparent); + priv->selection_menu = gtk_popover_menu_new_from_model (NULL); + gtk_widget_set_parent (priv->selection_menu, GTK_WIDGET (view)); + gtk_popover_set_has_arrow (GTK_POPOVER (priv->selection_menu), FALSE); + gtk_widget_set_halign (priv->selection_menu, GTK_ALIGN_START); gtk_popover_menu_set_menu_model (GTK_POPOVER_MENU (priv->selection_menu), G_MENU_MODEL (priv->selection_menu_model)); @@ -8335,15 +8330,15 @@ nautilus_files_view_pop_up_background_context_menu (NautilusFilesView *view, */ update_context_menus_if_pending (view); + /* Destroy old popover and create a new one, to avoid duplicate submenu bugs + * and showing old model temporarily. We don't do this when popover is + * closed because it wouldn't activate the actions then. */ + g_clear_pointer (&priv->background_menu, gtk_widget_unparent); + priv->background_menu = gtk_popover_menu_new_from_model (NULL); + gtk_widget_set_parent (priv->background_menu, GTK_WIDGET (view)); + gtk_popover_set_has_arrow (GTK_POPOVER (priv->background_menu), FALSE); + gtk_widget_set_halign (priv->background_menu, GTK_ALIGN_START); - if (NULL == priv->background_menu) - { - priv->background_menu = gtk_popover_menu_new_from_model (NULL); - gtk_widget_set_parent (priv->background_menu, GTK_WIDGET (view)); - gtk_popover_set_has_arrow (GTK_POPOVER (priv->background_menu), FALSE); - gtk_widget_set_halign (priv->background_menu, GTK_ALIGN_START); - g_signal_connect (priv->background_menu, "destroy", G_CALLBACK (gtk_widget_unparent), NULL); - } gtk_popover_menu_set_menu_model (GTK_POPOVER_MENU (priv->background_menu), G_MENU_MODEL (priv->background_menu_model)); @@ -9337,6 +9332,17 @@ nautilus_files_view_is_loading (NautilusView *view) return priv->loading; } +static void +nautilus_files_view_constructed (GObject *object) +{ + NautilusFilesView *self = NAUTILUS_FILES_VIEW (object); + NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (self); + + G_OBJECT_CLASS (nautilus_files_view_parent_class)->constructed (object); + + gtk_widget_set_visible (priv->sort_menu_button, NAUTILUS_IS_GRID_VIEW (self)); +} + static void nautilus_files_view_iface_init (NautilusViewInterface *iface) { @@ -9346,7 +9352,6 @@ nautilus_files_view_iface_init (NautilusViewInterface *iface) iface->set_selection = nautilus_files_view_set_selection; iface->get_search_query = nautilus_files_view_get_search_query; iface->set_search_query = nautilus_files_view_set_search_query; - iface->get_toolbar_menu_sections = nautilus_files_view_get_toolbar_menu_sections; iface->is_searching = nautilus_files_view_is_searching; iface->is_loading = nautilus_files_view_is_loading; iface->get_view_id = nautilus_files_view_get_view_id; @@ -9365,6 +9370,7 @@ nautilus_files_view_class_init (NautilusFilesViewClass *klass) widget_class = GTK_WIDGET_CLASS (klass); oclass = G_OBJECT_CLASS (klass); + oclass->constructed = nautilus_files_view_constructed; oclass->dispose = nautilus_files_view_dispose; oclass->finalize = nautilus_files_view_finalize; oclass->get_property = nautilus_files_view_get_property; @@ -9482,6 +9488,8 @@ nautilus_files_view_class_init (NautilusFilesViewClass *klass) gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/nautilus/ui/nautilus-files-view.ui"); + gtk_widget_class_bind_template_child_private (widget_class, NautilusFilesView, sort_menu_button); + gtk_widget_class_bind_template_child_private (widget_class, NautilusFilesView, sort_menu); gtk_widget_class_bind_template_child_private (widget_class, NautilusFilesView, overlay); gtk_widget_class_bind_template_child_private (widget_class, NautilusFilesView, stack); gtk_widget_class_bind_template_child_private (widget_class, NautilusFilesView, empty_view_page); @@ -9536,7 +9544,6 @@ static void nautilus_files_view_init (NautilusFilesView *view) { NautilusFilesViewPrivate *priv; - GtkBuilder *builder; NautilusDirectory *scripts_directory; NautilusDirectory *templates_directory; GtkEventController *controller; @@ -9569,11 +9576,6 @@ nautilus_files_view_init (NautilusFilesView *view) priv = nautilus_files_view_get_instance_private (view); - /* Toolbar menu */ - builder = gtk_builder_new_from_resource ("/org/gnome/nautilus/ui/nautilus-toolbar-view-menu.ui"); - priv->toolbar_menu_sections = g_new0 (NautilusToolbarMenuSections, 1); - priv->toolbar_menu_sections->sort_section = G_MENU_MODEL (g_object_ref (gtk_builder_get_object (builder, "sort_section"))); - g_signal_connect (view, "end-file-changes", G_CALLBACK (on_end_file_changes), @@ -9587,8 +9589,6 @@ nautilus_files_view_init (NautilusFilesView *view) G_CALLBACK (on_parent_changed), NULL); - g_object_unref (builder); - g_type_ensure (NAUTILUS_TYPE_FLOATING_BAR); gtk_widget_init_template (GTK_WIDGET (view)); @@ -9675,6 +9675,7 @@ nautilus_files_view_init (NautilusFilesView *view) gtk_widget_insert_action_group (GTK_WIDGET (view), "view", G_ACTION_GROUP (priv->view_action_group)); + app = g_application_get_default (); /* NOTE: Please do not add any key here that could interfere with diff --git a/src/nautilus-files-view.h b/src/nautilus-files-view.h index e1882b7ba082f1f115850c78177a1baef124b594..dc2609a750dc3e390d5877185f3fa3e3a5f0a7cd 100644 --- a/src/nautilus-files-view.h +++ b/src/nautilus-files-view.h @@ -38,10 +38,10 @@ G_BEGIN_DECLS #define NAUTILUS_TYPE_FILES_VIEW nautilus_files_view_get_type() -G_DECLARE_DERIVABLE_TYPE (NautilusFilesView, nautilus_files_view, NAUTILUS, FILES_VIEW, AdwBin) +G_DECLARE_DERIVABLE_TYPE (NautilusFilesView, nautilus_files_view, NAUTILUS, FILES_VIEW, GtkBox) struct _NautilusFilesViewClass { - AdwBinClass parent_class; + GtkBoxClass parent_class; /* The 'clear' signal is emitted to empty the view of its contents. * It must be replaced by each subclass. @@ -321,5 +321,7 @@ void nautilus_files_view_action_show_hidden_files (NautilusFilesV GActionGroup * nautilus_files_view_get_action_group (NautilusFilesView *view); GtkWidget* nautilus_files_view_get_content_widget (NautilusFilesView *view); +void nautilus_files_view_set_sort_label (NautilusFilesView *view, + const gchar *label); G_END_DECLS diff --git a/src/nautilus-grid-view.c b/src/nautilus-grid-view.c index 1e8e54569b88e684840b15fad935e43761974258..a23bbd7d67b2780c0d1f4322440f0b5b48fce0e0 100644 --- a/src/nautilus-grid-view.c +++ b/src/nautilus-grid-view.c @@ -7,6 +7,8 @@ #include "nautilus-list-base-private.h" #include "nautilus-grid-view.h" +#include + #include "nautilus-grid-cell.h" #include "nautilus-global-preferences.h" @@ -261,6 +263,64 @@ real_sort_directories_first_changed (NautilusFilesView *files_view) nautilus_view_model_set_sorter (model, GTK_SORTER (sorter)); } +static void +update_sort_menu_label (NautilusGridView *self) +{ + const gchar *label; + + switch (self->sort_type) + { + case NAUTILUS_FILE_SORT_BY_DISPLAY_NAME: + { + label = self->reversed ? _("Z-A") : _("A-Z"); + } + break; + + case NAUTILUS_FILE_SORT_BY_MTIME: + { + label = self->reversed ? _("Last Modified") : _("First Modified"); + } + break; + + case NAUTILUS_FILE_SORT_BY_SIZE: + { + label = self->reversed ? _("Size") : _("Size (ascending)"); + } + break; + + case NAUTILUS_FILE_SORT_BY_TYPE: + { + label = self->reversed ? _("Type (reversed)") : _("Type"); + } + break; + + case NAUTILUS_FILE_SORT_BY_TRASHED_TIME: + { + label = self->reversed ? _("Last Trashed") : _("First Trashed"); + } + break; + + case NAUTILUS_FILE_SORT_BY_SEARCH_RELEVANCE: + { + label = self->reversed ? _("Relevance") : _("Least Relevant"); + } + break; + + case NAUTILUS_FILE_SORT_BY_RECENCY: + { + label = self->reversed ? _("Recency") : _("Recency (reversed)"); + } + break; + + default: + { + label = _("Sort"); + } + } + + nautilus_files_view_set_sort_label (NAUTILUS_FILES_VIEW (self), label); +} + static void action_sort_order_changed (GSimpleAction *action, GVariant *value, @@ -287,6 +347,8 @@ action_sort_order_changed (GSimpleAction *action, target_name, self->reversed); + update_sort_menu_label (self); + g_simple_action_set_state (action, value); } diff --git a/src/nautilus-places-view.c b/src/nautilus-places-view.c index 30c944c8a120eab28a8f95d33cf84b34017f1299..aa87db2bd871101588dac3fc7d0ba6066fb89cbc 100644 --- a/src/nautilus-places-view.c +++ b/src/nautilus-places-view.c @@ -23,7 +23,6 @@ #include "nautilus-application.h" #include "nautilus-file.h" -#include "nautilus-toolbar-menu-sections.h" #include "nautilus-view.h" #include "nautilus-window-slot.h" @@ -303,12 +302,6 @@ nautilus_places_view_set_search_query (NautilusView *view, g_free (text); } -static NautilusToolbarMenuSections * -nautilus_places_view_get_toolbar_menu_sections (NautilusView *view) -{ - return NULL; -} - static gboolean nautilus_places_view_is_loading (NautilusView *view) { @@ -344,7 +337,6 @@ nautilus_places_view_iface_init (NautilusViewInterface *iface) iface->set_selection = nautilus_places_view_set_selection; iface->get_search_query = nautilus_places_view_get_search_query; iface->set_search_query = nautilus_places_view_set_search_query; - iface->get_toolbar_menu_sections = nautilus_places_view_get_toolbar_menu_sections; iface->is_loading = nautilus_places_view_is_loading; iface->is_searching = nautilus_places_view_is_searching; iface->get_view_id = nautilus_places_view_get_view_id; diff --git a/src/nautilus-toolbar-menu-sections.h b/src/nautilus-toolbar-menu-sections.h deleted file mode 100644 index 8f5a98667eaeca120fad513a91fe251cb0094a2c..0000000000000000000000000000000000000000 --- a/src/nautilus-toolbar-menu-sections.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2016 Neil Herald - * - * Nautilus is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * Nautilus is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#pragma once - -#include - -G_BEGIN_DECLS - -typedef struct _NautilusToolbarMenuSections NautilusToolbarMenuSections; - -struct _NautilusToolbarMenuSections { - GMenuModel *sort_section; -}; - -G_END_DECLS diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c index 27a5f6402957f4f14c769350a30f1ec06057fdea..7522c4212c07b6712127eb99127b73c07951e4aa 100644 --- a/src/nautilus-toolbar.c +++ b/src/nautilus-toolbar.c @@ -34,7 +34,6 @@ #include "nautilus-pathbar.h" #include "nautilus-progress-info-manager.h" #include "nautilus-progress-info-widget.h" -#include "nautilus-toolbar-menu-sections.h" #include "nautilus-ui-utilities.h" #include "nautilus-window.h" @@ -71,9 +70,6 @@ struct _NautilusToolbar GtkWidget *operations_revealer; GtkWidget *operations_icon; - GtkWidget *view_split_button; - GMenuModel *view_menu; - GtkWidget *app_button; GMenuModel *undo_redo_section; @@ -1179,8 +1175,6 @@ nautilus_toolbar_class_init (NautilusToolbarClass *klass) gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, operations_popover); gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, operations_list); gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, operations_revealer); - gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, view_menu); - gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, view_split_button); gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, app_button); gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, undo_redo_section); gtk_widget_class_bind_template_child (widget_class, NautilusToolbar, back_button); @@ -1265,46 +1259,6 @@ slot_on_templates_menu_changed (NautilusToolbar *self, menu); } -static void -on_slot_toolbar_menu_sections_changed (NautilusToolbar *self, - GParamSpec *param, - NautilusWindowSlot *slot) -{ - NautilusToolbarMenuSections *new_sections; - g_autoptr (GMenuItem) zoom_item = NULL; - g_autoptr (GMenuItem) sort_item = NULL; - - new_sections = nautilus_window_slot_get_toolbar_menu_sections (slot); - - gtk_widget_set_sensitive (self->view_split_button, (new_sections != NULL)); - if (new_sections == NULL) - { - return; - } - - /* Let's assume that sort section is the first item - * in view_menu, as per nautilus-toolbar.ui. */ - - sort_item = g_menu_item_new_from_model (self->view_menu, 0); - g_menu_remove (G_MENU (self->view_menu), 0); - g_menu_item_set_section (sort_item, new_sections->sort_section); - g_menu_insert_item (G_MENU (self->view_menu), 0, sort_item); -} - - -static void -disconnect_toolbar_menu_sections_change_handler (NautilusToolbar *self) -{ - if (self->window_slot == NULL) - { - return; - } - - g_signal_handlers_disconnect_by_func (self->window_slot, - G_CALLBACK (on_slot_toolbar_menu_sections_changed), - self); -} - /* Called from on_window_slot_destroyed(), since bindings and signal handlers * are automatically removed once the slot goes away. */ @@ -1327,9 +1281,6 @@ nautilus_toolbar_set_window_slot_real (NautilusToolbar *self, self, "searching", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); - on_slot_toolbar_menu_sections_changed (self, NULL, self->window_slot); - g_signal_connect_swapped (self->window_slot, "notify::toolbar-menu-sections", - G_CALLBACK (on_slot_toolbar_menu_sections_changed), self); g_signal_connect_swapped (self->window_slot, "notify::extensions-background-menu", G_CALLBACK (slot_on_extensions_background_menu_changed), self); g_signal_connect_swapped (self->window_slot, "notify::templates-menu", @@ -1366,7 +1317,6 @@ nautilus_toolbar_set_window_slot (NautilusToolbar *self, g_clear_pointer (&self->search_binding, g_binding_unbind); - disconnect_toolbar_menu_sections_change_handler (self); if (self->window_slot != NULL) { g_signal_handlers_disconnect_by_data (self->window_slot, self); diff --git a/src/nautilus-types.h b/src/nautilus-types.h index 6a13ebb6db426580b3becd9b830118d6a92a762c..714508c772e70922d88d636a90acb3354aeb2429 100644 --- a/src/nautilus-types.h +++ b/src/nautilus-types.h @@ -41,7 +41,6 @@ typedef struct _NautilusListBase NautilusListBase; typedef struct NautilusMonitor NautilusMonitor; typedef struct _NautilusQuery NautilusQuery; typedef struct _NautilusQueryEditor NautilusQueryEditor; -typedef struct _NautilusToolbarMenuSections NautilusToolbarMenuSections; typedef struct _NautilusView NautilusView; typedef struct _NautilusWindow NautilusWindow; typedef struct _NautilusWindowSlot NautilusWindowSlot; diff --git a/src/nautilus-view.c b/src/nautilus-view.c index 2463ba632716a1da7f657a996401c6ab88b81595..117136a7a22897bc66ae24bb7669644a8673bd55 100644 --- a/src/nautilus-view.c +++ b/src/nautilus-view.c @@ -179,24 +179,6 @@ nautilus_view_get_view_id (NautilusView *view) return NAUTILUS_VIEW_GET_IFACE (view)->get_view_id (view); } -/** - * nautilus_view_get_toolbar_menu_sections: - * @view: a #NautilusView - * - * Retrieves the menu sections to show in the main toolbar menu when this view - * is active - * - * Returns: (transfer none): a #NautilusToolbarMenuSections with the sections to - * be displayed - */ -NautilusToolbarMenuSections * -nautilus_view_get_toolbar_menu_sections (NautilusView *view) -{ - g_return_val_if_fail (NAUTILUS_VIEW_GET_IFACE (view)->get_toolbar_menu_sections, NULL); - - return NAUTILUS_VIEW_GET_IFACE (view)->get_toolbar_menu_sections (view); -} - GMenuModel * nautilus_view_get_extensions_background_menu (NautilusView *view) { diff --git a/src/nautilus-view.h b/src/nautilus-view.h index 9a8911e28c1b93daf8daac1c00b492399c1e6a52..431b7989c4efec7649ab5b85e186e56151bdf026 100644 --- a/src/nautilus-view.h +++ b/src/nautilus-view.h @@ -22,7 +22,6 @@ #include #include "nautilus-query.h" -#include "nautilus-toolbar-menu-sections.h" /* Keep values in sync with the org.gnome.nautilus.FolderView schema enums: */ #define NAUTILUS_VIEW_LIST_ID 1 @@ -42,11 +41,6 @@ struct _NautilusViewInterface GTypeInterface parent; guint (*get_view_id) (NautilusView *view); - /* - * Returns the menu sections that should be shown in the toolbar menu - * when this view is active. Implementations must not return %NULL - */ - NautilusToolbarMenuSections * (*get_toolbar_menu_sections) (NautilusView *view); /* * Returns the menu for the background click of extensions. @@ -90,8 +84,6 @@ const gchar * nautilus_view_get_tooltip (gu guint nautilus_view_get_view_id (NautilusView *view); -NautilusToolbarMenuSections * nautilus_view_get_toolbar_menu_sections (NautilusView *view); - GFile * nautilus_view_get_location (NautilusView *view); void nautilus_view_set_location (NautilusView *view, diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c index 976429e277015d78c3b37aa54b6a7847ba0251b6..ac7ec49e871cd5b237644a42fdbd4b5071777faa 100644 --- a/src/nautilus-window-slot.c +++ b/src/nautilus-window-slot.c @@ -54,7 +54,6 @@ enum PROP_ACTIVE = 1, PROP_WINDOW, PROP_ICON_NAME, - PROP_TOOLBAR_MENU_SECTIONS, PROP_EXTENSIONS_BACKGROUND_MENU, PROP_TEMPLATES_MENU, PROP_LOADING, @@ -825,12 +824,6 @@ nautilus_window_slot_get_property (GObject *object, } break; - case PROP_TOOLBAR_MENU_SECTIONS: - { - g_value_set_object (value, nautilus_window_slot_get_toolbar_menu_sections (self)); - } - break; - case PROP_EXTENSIONS_BACKGROUND_MENU: { g_value_set_object (value, real_get_extensions_background_menu (self)); @@ -2864,7 +2857,6 @@ nautilus_window_slot_switch_new_content_view (NautilusWindowSlot *self) self, "templates-menu", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ICON_NAME]); - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_TOOLBAR_MENU_SECTIONS]); g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_EXTENSIONS_BACKGROUND_MENU]); g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_TEMPLATES_MENU]); g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_TOOLTIP]); @@ -3044,12 +3036,6 @@ nautilus_window_slot_class_init (NautilusWindowSlotClass *klass) NULL, G_PARAM_READABLE); - properties[PROP_TOOLBAR_MENU_SECTIONS] = - g_param_spec_pointer ("toolbar-menu-sections", - "Menu sections for the toolbar menu", - "The menu sections to add to the toolbar menu for this slot", - G_PARAM_READABLE); - properties[PROP_EXTENSIONS_BACKGROUND_MENU] = g_param_spec_object ("extensions-background-menu", "Background menu of extensions", @@ -3358,18 +3344,6 @@ nautilus_window_slot_get_tooltip (NautilusWindowSlot *self) } } -NautilusToolbarMenuSections * -nautilus_window_slot_get_toolbar_menu_sections (NautilusWindowSlot *self) -{ - NautilusView *view; - - g_return_val_if_fail (NAUTILUS_IS_WINDOW_SLOT (self), NULL); - - view = nautilus_window_slot_get_current_view (self); - - return view ? nautilus_view_get_toolbar_menu_sections (view) : NULL; -} - gboolean nautilus_window_slot_get_active (NautilusWindowSlot *self) { diff --git a/src/nautilus-window-slot.h b/src/nautilus-window-slot.h index 364c637286b3a7647dc39558d5e706148daa040d..b82adfc9624d32a67772c11f337a8468ddcd576a 100644 --- a/src/nautilus-window-slot.h +++ b/src/nautilus-window-slot.h @@ -84,8 +84,6 @@ const gchar* nautilus_window_slot_get_icon_name (NautilusWindow const gchar* nautilus_window_slot_get_tooltip (NautilusWindowSlot *slot); -NautilusToolbarMenuSections * nautilus_window_slot_get_toolbar_menu_sections (NautilusWindowSlot *slot); - GMenuModel* nautilus_window_slot_get_templates_menu (NautilusWindowSlot *self); GMenuModel* nautilus_window_slot_get_extensions_background_menu (NautilusWindowSlot *self); diff --git a/src/resources/css/Adwaita.css b/src/resources/css/Adwaita.css index f2628f3a981bfe4314359216529a480f29d68dba..a6a6466a1896fbf87c6f6a0da4037973780b430a 100644 --- a/src/resources/css/Adwaita.css +++ b/src/resources/css/Adwaita.css @@ -144,8 +144,25 @@ } /* Grid view */ +.nautilus-grid-view .nautilus-sort-button button { + min-height: 20px; + margin-left: 24px; + margin-right: 24px; + background: none; +} +.nautilus-grid-view .nautilus-sort-button button:not(:hover):not(:checked) { + opacity: 0.4; +} + +.nautilus-grid-view scrolledwindow undershoot.top { + border-top: 1px solid @borders; +} + .nautilus-grid-view gridview { - padding: 15px; + padding-top: 12px; + padding-bottom: 21px; + padding-left: 21px; + padding-right: 21px; } .nautilus-grid-view gridview > child { diff --git a/src/resources/nautilus.gresource.xml b/src/resources/nautilus.gresource.xml index 3a6abce9a4da1f004c18a34b4e633aa835f7414f..69dc9ee6f1fc85dfb6fab8d459c3c48dbf2694d1 100644 --- a/src/resources/nautilus.gresource.xml +++ b/src/resources/nautilus.gresource.xml @@ -6,7 +6,6 @@ ui/nautilus-app-chooser.ui ui/nautilus-pathbar-context-menu.ui ui/nautilus-toolbar.ui - ui/nautilus-toolbar-view-menu.ui ui/nautilus-column-chooser.ui ui/nautilus-list-view-column-editor.ui ui/nautilus-create-folder-dialog.ui diff --git a/src/resources/ui/nautilus-files-view-context-menus.ui b/src/resources/ui/nautilus-files-view-context-menus.ui index a88e5c5a0d050a91408fee64240688072a5726f4..44c58b5ca8a8369ba1cdf0988d1e0c03e67895b0 100644 --- a/src/resources/ui/nautilus-files-view-context-menus.ui +++ b/src/resources/ui/nautilus-files-view-context-menus.ui @@ -8,8 +8,7 @@ New _Document - view.new-document - action-disabled + templates-submenu Add to _Bookmarks @@ -25,6 +24,11 @@ win.stop action-disabled + + _Visible Columns… + view.visible-columns + action-missing +
_Open With Other Application @@ -72,8 +76,7 @@
_Scripts - view.scripts - action-disabled + scripts-submenu
diff --git a/src/resources/ui/nautilus-files-view.ui b/src/resources/ui/nautilus-files-view.ui index eab5bddbe6e0e86a8080af7985e3d1d599e6ec14..767183dc330ff789cb12f580d0954e76593dd1ea 100644 --- a/src/resources/ui/nautilus-files-view.ui +++ b/src/resources/ui/nautilus-files-view.ui @@ -1,11 +1,25 @@ -