setlocale() returns a string representing the _new_ locale, so
we have to get the current locale with setlocale (..., NULL) first,
and we have to copy it since it returns a static string that will
otherwise get overwritten.
This code was creating a GString conditionally, but using
it unconditionally afterwards. Instead of special-casing
the str == NULL case, just always create it.
If available, use DBus method MissingExecutables which finds executables
needed by new printer. This method is available in system-config-printer
since version 1.3.5 (#654742). User is offered installation of packages
containing those missing executables then.
If available, use DBus method GroupPhysicalDevices which removes duplicates
from list of found devices. This method is available in system-config-printer
since version 1.3.5 (#654742).
If available, use DBus method GetBestDriver which determines the best PPD file
for the given printer. This method is available in system-config-printer
since version 1.3.5 (#654742).
This commit enables services mdns, ipp, ipp-client and samba-client on
firewall for 5 minutes for detection of network printers (#648784).
It enables required services permanently for printers selected by user
for addition then. It shows a notification for the permanent enable.
It uses firewalld, so if it is not installed or running it shows a warning
message to the user in the place where discovered printers will be shown
(both local and network). The warning disappears after the finish of
printers discovery (but not from network part if no printer was found).
Seeing as people were putting all kind of junk in it,
instead of being sensible, let's close the doors on
external panels.
If you work-around this in any way, you better have a
very good reason to, such as wanting to deny yourself
any support from the upstream gnome-control-center developers,
or wanting ridicule for your poor judgement in UI and code design.