The Search panel providers listbox has a placeholder label that is
visible when there are no listbox items.
The placeholder label is being considered in the list of children
of the listbox while estimating whether "Moving down" is allowed for
the listbox reorder feature.
The current placeholder that appears when no
providers are available has some problems:
- The row is activatable, but this is unnecessary
- The row has no padding
- The "No Apps Found" string doesn't use header
capitalization
Fix this by using a GtkListBox placeholder widget, with
margins and with header capitalization in the string.
- refresh the symbolic icons to sync some style changes and update the source sheet
- rename assets for the privacy subpanel's symbolic icons
- delete deprecated/unused symbolic icons
- add new icon for system panel
- add new icon for remote desktop so it isn't using displays icons
This change effectively reverts commit 5c679301ec ("search: Invalidate
"Search Locations" list when folders can't be found"). The crash
that commits intends to fix does not occur on main anymore, and there's
no real difference between an existing and non existing file from this
interface's perspective.
Removing a folder automatically is dangerous because it may be on
an unmounted external hard drive or another location that is not
currently available. This also removes some blocking i/o on the main
thread.
Instead replace with a subtitle message to notify the user that the
folder is inaccessible.
We handle index-single-directories and index-recursive-directories
different, but the user has no idea. Add a subtitle to clarify
the difference in behavior.
We wrongly assume that the only directory set to index-single-directories
is the home directory. Now adays [1] tracker miners defaults home
and downloads to index-single-directories. This leads to a behavior
where downloads appears to be unindexed (the switch is set to inactive),
but if you set the switch to active you will end up with downloads
in index-single-directories and index-recursive-directories.
Check the index-single-directories (as well as its default value)
to consistently handle this setting correctly.
[1] d97cf22273
However, for Default or Bookmarked locations, the switch is not shown if
the location is not found, but there is no reason to now allow the user
to switch that location of, even if not found.
We therefore now show the switch unconditionally for the Default and
Bookmarked locations. This allows a great deal of code simplification
too, as the file info query is now only used to place a subtitle if it
is not found.
A regression from commit f473ec45c7 ("search: introduce the new Search
Locations dialog") causes the entries to be in a random order (as
determined by g_hash_table_get_values()). Previous to this commit,
there was a single listbox sorted by a custom sort func which grouped
XDG folders, bookmarks, and others. Now there's a listbox for each of
those groupings, but only others_list gets the sort func. Sort each
of the lists, and remove unnecessary code.
Settings is the central place to change search locations. Nautilus wants
to link to it, but since it's a dialog and not a panel, use a parameter
to enable opening search locations directly.
As described in #2565, the "Move Up" and "Move Down" popover menu options
are currently displayed for all search panel rows in the list, doing nothing
if clicked when a row is at the top or bottom of the list respectively.
This commit adds checks when creating and moving the search panel rows
and disables these options at the top and bottom of the list respectively,
removing a useless menu option.
Fixes#2565
Meson extracts them by itself and add them as dependencies for the target.
It means one less location to keep track of files, and a lot less boilerplate
around the meson files
Error building template class 'CcSearchPanel' for an instance of type 'CcSearchPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcDisplayPanel' for an instance of type 'CcDisplayPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcMousePanel' for an instance of type 'CcMousePanel': .:0:0 Invalid object type 'CcIllustratedRow'
Error building template class 'CcKeyboardPanel' for an instance of type 'CcKeyboardPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcRegionPanel' for an instance of type 'CcRegionPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcUaPanel' for an instance of type 'CcUaPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcUserPanel' for an instance of type 'CcUserPanel': .:0:0 Invalid object type 'CcAvatarChooser'
Error building template class 'CcUserPanel' for an instance of type 'CcUserPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcDateTimePanel' for an instance of type 'CcDateTimePanel': .:0:0 Invalid object type 'CcTzDialog'
cc_tz_dialog_get_selected_location: assertion 'CC_IS_TZ_DIALOG (self)' failed
dumped core
Error building template class 'CcDateTimePanel' for an instance of type 'CcDateTimePanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcInfoOverviewPanel' for an instance of type 'CcInfoOverviewPanel': .:0:0 Invalid object type 'CcHostnameEntry'
This is part of an initiative to use "app" instead of "applications",
see: https://gitlab.gnome.org/Teams/Design/initiatives/-/issues/123
Redo of !1539 that was closed by a ghosting user.
Replaces "application" with "app" in user facing strings in these
panels:
- applications
- camera, location, microphone
- default-apps
- multitasking
- notifications
- removable-media
- search
- usage
- user-accounts
Fixes: #2208.
GtkStyleContext will be deprecated in gtk 4.10.
https://docs.gtk.org/gtk4/class.StyleContext.html
This preserves code blocks where additional GtkStyleContext operations
were used, such as gtk_style_context_save/restore.
The `X-GNOME-Bugzilla-*` entries were for use by bug-buddy, a GNOME 2
technology that's been gone for over a decade. These entries are
obsolete and can be removed from all desktop files.
The `X-GNOME-Settings-Panel` entry is also obsolete as far as I can
tell and only these panels had it in their desktop file: notifications,
sharing, sound and user-accounts. These entries can also be removed.
After removing the `X-GNOME-Bugzilla-*` entries, the desktop files have
no more variables in them. The meson `configure_file` step is therefor
pointless—there are no variables to configure. As such the
`*.desktop.in.in` files are renamed to `*.desktop.in` to reflect this
and `meson.build` files are modified to remove `configure_file` step.