files-view: Don't offer to make search global

These floating buttons conflict with floating status bar and their
implementation is glitchy. Also, with the introduction of the global
search mode, the new design guidance asks for their removal.

Instead, allow the new global search action to reuse the existing
local query but run it anew with a global scope.

The "Search Everywhere" button on empty local search results page
is preserved, but made to perform the exact same action.

This effectively reverts commit 67194751aa
This commit is contained in:
António Fernandes 2024-02-02 18:23:26 +00:00
parent 90c79b6a08
commit ff70e5702b
6 changed files with 8 additions and 106 deletions

View file

@ -235,8 +235,6 @@ typedef struct
GtkWidget *stack;
GtkWidget *extend_search_revealer;
/* Empty states */
GtkWidget *empty_view_page;
@ -3320,48 +3318,6 @@ on_unload_subdirectory (NautilusListBase *list_base,
}
}
static void
update_extend_search_revealer (NautilusFilesView *self)
{
NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (self);
gboolean is_empty = nautilus_files_view_is_empty (self);
gboolean showing_search_results = FALSE;
gboolean search_is_global = FALSE;
gboolean can_show_search_everywhere = FALSE;
if (!is_empty && NAUTILUS_IS_SEARCH_DIRECTORY (priv->directory))
{
NautilusSearchDirectory *search = NAUTILUS_SEARCH_DIRECTORY (priv->directory);
search_is_global = nautilus_query_is_global (nautilus_search_directory_get_query (search));
showing_search_results = TRUE;
}
if (showing_search_results && !search_is_global)
{
GtkAdjustment *adjustment = nautilus_list_base_get_vadjustment (priv->list_base);
gdouble value = gtk_adjustment_get_value (adjustment);
gdouble page_size = gtk_adjustment_get_page_size (adjustment);
gdouble upper = gtk_adjustment_get_upper (adjustment);
if (value + page_size >= upper)
{
/* Search results are scrolled to the bottom (or not scrolling). */
can_show_search_everywhere = TRUE;
}
/* Reserve space for the button even if not scrolled to the bottom. */
gtk_widget_add_css_class (GTK_WIDGET (self), "extra-bottom-padding");
}
else
{
gtk_widget_remove_css_class (GTK_WIDGET (self), "extra-bottom-padding");
}
gtk_revealer_set_reveal_child (GTK_REVEALER (priv->extend_search_revealer),
!priv->loading && can_show_search_everywhere);
}
static void
connect_inner_view (NautilusFilesView *self)
{
@ -3389,13 +3345,6 @@ connect_inner_view (NautilusFilesView *self)
G_CALLBACK (on_popup_selection_context_menu), self,
G_CONNECT_DEFAULT);
g_signal_connect_object (nautilus_list_base_get_vadjustment (priv->list_base),
"changed",
G_CALLBACK (update_extend_search_revealer), self, G_CONNECT_SWAPPED);
g_signal_connect_object (nautilus_list_base_get_vadjustment (priv->list_base),
"value-changed",
G_CALLBACK (update_extend_search_revealer), self, G_CONNECT_SWAPPED);
if (NAUTILUS_IS_LIST_VIEW (priv->list_base))
{
g_signal_connect_object (priv->list_base, "load-subdirectory",
@ -3804,18 +3753,6 @@ nautilus_files_view_set_location (NautilusView *view,
}
}
static void
globalize_search (NautilusFilesView *self)
{
NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (self);
g_return_if_fail (NAUTILUS_IS_SEARCH_DIRECTORY (priv->directory));
g_return_if_fail (priv->search_query != NULL);
nautilus_query_set_location (priv->search_query, NULL);
load_directory (self, priv->directory);
}
static GtkWidget *
build_search_settings_button (NautilusFilesView *self)
{
@ -3836,7 +3773,7 @@ build_search_everywhere_button (NautilusFilesView *self)
gtk_widget_set_halign (button, GTK_ALIGN_CENTER);
gtk_widget_add_css_class (button, "pill");
gtk_widget_add_css_class (button, "suggested-action");
g_signal_connect_swapped (button, "clicked", G_CALLBACK (globalize_search), self);
gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "slot.search-global");
return button;
}
@ -3957,7 +3894,6 @@ done_loading (NautilusFilesView *view,
if (!priv->in_destruction)
{
nautilus_files_view_check_empty_states (view);
update_extend_search_revealer (view);
}
}
@ -4218,7 +4154,6 @@ real_end_file_changes (NautilusFilesView *view)
/* Addition and removal of files modify the empty state */
nautilus_files_view_check_empty_states (view);
update_extend_search_revealer (view);
/* If the view is empty, zoom slider and sort menu are insensitive */
nautilus_files_view_update_toolbar_menus (view);
@ -8802,7 +8737,6 @@ finish_loading (NautilusFilesView *view)
emit_begin_loading (view);
nautilus_files_view_check_empty_states (view);
update_extend_search_revealer (view);
if (nautilus_directory_are_all_files_seen (priv->directory))
{
@ -9560,8 +9494,6 @@ nautilus_files_view_class_init (NautilusFilesViewClass *klass)
gtk_widget_class_bind_template_child_private (widget_class, NautilusFilesView, stack);
gtk_widget_class_bind_template_child_private (widget_class, NautilusFilesView, empty_view_page);
gtk_widget_class_bind_template_child_private (widget_class, NautilusFilesView, floating_bar);
gtk_widget_class_bind_template_child_private (widget_class, NautilusFilesView, extend_search_revealer);
gtk_widget_class_bind_template_callback (widget_class, globalize_search);
/* See also the global accelerators in init() in addition to all the local
* ones defined below.

View file

@ -1357,14 +1357,6 @@ nautilus_list_base_get_backing_item (NautilusListBase *self)
return NAUTILUS_LIST_BASE_CLASS (G_OBJECT_GET_CLASS (self))->get_backing_item (self);
}
GtkAdjustment *
nautilus_list_base_get_vadjustment (NautilusListBase *self)
{
NautilusListBasePrivate *priv = nautilus_list_base_get_instance_private (self);
return gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (priv->scrolled_window));
}
NautilusViewInfo
nautilus_list_base_get_view_info (NautilusListBase *self)
{

View file

@ -50,7 +50,6 @@ struct _NautilusListBaseClass
NautilusViewItem *nautilus_list_base_get_backing_item (NautilusListBase *self);
GtkWidget *nautilus_list_base_get_selected_item_ui (NautilusListBase *self);
GVariant *nautilus_list_base_get_sort_state (NautilusListBase *self);
GtkAdjustment *nautilus_list_base_get_vadjustment (NautilusListBase *self);
NautilusViewInfo nautilus_list_base_get_view_info (NautilusListBase *self) G_GNUC_PURE;
int nautilus_list_base_get_zoom_level (NautilusListBase *self);
void nautilus_list_base_preview_selection_event (NautilusListBase *self,

View file

@ -981,6 +981,13 @@ action_search_global (GSimpleAction *action,
if (search_global)
{
NautilusQuery *query = nautilus_view_get_search_query (self->content_view);
if (query != NULL)
{
nautilus_query_set_location (query, NULL);
nautilus_view_set_search_query (self->content_view, query);
}
nautilus_query_editor_set_location (self->query_editor, NULL);
gtk_stack_set_visible_child (GTK_STACK (self->stack), GTK_WIDGET (self->global_search_page));
}

View file

@ -251,12 +251,6 @@ placesview list {
background: none;
}
/* Reserve empty space for the "Search Everywhere" overlaid button */
.nautilus-list-view.extra-bottom-padding listview,
.nautilus-grid-view.extra-bottom-padding gridview {
padding-bottom: 66px;
}
.image-frame {
margin: 8px;
border-radius: 4px;

View file

@ -22,28 +22,6 @@
</child>
</object>
</child>
<child type="overlay">
<object class="GtkRevealer" id="extend_search_revealer">
<property name="transition-type">swing-up</property>
<property name="halign">start</property>
<property name="valign">end</property>
<property name="margin-top">12</property>
<property name="margin-start">18</property>
<property name="margin-end">18</property>
<property name="margin-bottom">18</property>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">Search _Everywhere</property>
<property name="use-underline">true</property>
<signal name="clicked" swapped="yes"
handler="globalize_search" object="NautilusFilesView"/>
<style>
<class name="pill"/>
</style>
</object>
</child>
</object>
</child>
<child type="overlay">
<object class="NautilusFloatingBar" id="floating_bar">
<property name="halign">end</property>