mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-10-01 05:23:56 +00:00
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:
parent
90c79b6a08
commit
ff70e5702b
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue