The set_background() function changes settings, and even though the
underlying GSettings are set to `delay-apply`, every change still fires
a "changed" callback. This results in many intermediate and
unnecessary calls to on_settings_changed().
Fix this by blocking that callback during the set_background() calls,
and manually doing a single on_settings_changed().
The checkmark indicating the active background based on GtkFlowBox
selection does not work when changing the selection with the arrow keys.
Moreover, it is not set when the panel opens.
We fix this by sending the active CcBackgroundItem to the chooser, so
that it can add an "active-item" CSS class to the true active item.
Fixes#1756#2505
Manually tracking which properties are set on a CcBackgroundItem is only
properly done in the background XML loader. Doing this manually is
error-prone and should instead be done inside the relevant property
setters. That would avoid forgetting to set some of the flags, which is
especially relevant for comparing two background items.
This adds automatic setting of background item flags to fix this.
When colored backgrounds were a thing, these where set with style
G_DESKTOP_BACKGROUND_STYLE_NONE. Presumably, changes to these
backgrounds were stored in a local XML file.
Since the colored backgrounds were removed, let's also remove the code
tracking these colored background changes.
These symbols were soft-renamed in libmalcontent 0.5.0 (released in
February 2020), and we already depend on 0.7.0.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
After the port to AdwPreferencesPage and the
main switch being moved out from the headerbar,
the content of the sharing dialogs got a bit hidden,
which requires more scrolling.
Fix such issue by removing the height-request
property, so the window height can follow the content
height. Do the same for the Media Sharing dialog
to keep consistency. Also, use the same window width
in both dialogs (to also keep consistency).
Commit c0c357c3 (!2211) moved the "Remote Login" code to the System
panel. There are some leftover bits of code in the sharing panel though.
This cleans that up.
Closes#2895
Sorting providers and accounts by features flags makes it difficult to
thme how we like, so hard-code the sorting order based on the
non-localized provider name.
Remove the GOA subprocess helper and use GoaClient directly.
The GoaClient is loaded asynchronously, with the panel being marked
insensitive until ready. Any `CcPanel::parameters` passed while loading
are deferred until the client is ready.
- Remove the "Networks" title from CcSharingNetworks
and only use the titles from the AdwPreferencesGroups
- Remove the margins from CcSharingNetworks,
since AdwPreferencesGroup already has margins
- Remove unused `spacing` properties
- Replace the Media Sharing GtkGrid with a GtkBox,
like in the File Sharing dialog, and separate the
networks and folders section into their own
AdwPreferencesGroups
- Remove an unnecessary GtkListBox. It was added[1]
in order to make the "Require Password" and "Password"
rows to have the boxed-list style. Since the dialogs
from Sharing panel started to use AdwPreferencesPage/Group[2],
this GtkListBox is no longer necessary.
[1] 9a15a48d
[2] 45a5a1e0
Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2818
- 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.
The Power panel currently installs "info-symbolic"
in /usr/share/icons, which makes this icon to appear
as a pre-installed system icon. This makes app
developers to use this icon in their apps
under that assumption.
Ship this icon as a gresource to fix this.
Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2865