printer_set_ppd_async and printer_set_ppd_file_async copy the printer name, but
this isn't freed in any cases that use these callback (the string isn't even
used at all).
In CUPS 1.7 httpConnect() and httpConnectEncrypt() were deprecated and
replaced with httpConnect2(). This checks if httpConnect2() is available
and if so, replaces the uses of the deprecated functions.
In the CUPS source code, httpConnect() and httpConnectEncrypt() are now
wrappers around httpConnect2(), so we make sure to use the same
arguments as in the CUPS source code so the two code paths are sure to
be identical:
2c030c7a06/cups/http.c (L412)2c030c7a06/cups/http.c (L477)
Remove the GList holding printing devices and use already present
GtkListStore for this in the New printer dialog.
This avoids us to install wrong printer when there is more devices
with the same name since we have GtkTreeIter of the selected row.
Use GtkTreeModelFilter for filtering of current devices.
Update test for canonicalize_device_name() since I had to change one
of its parameters.
https://bugzilla.gnome.org/show_bug.cgi?id=749830
'device-class' property of PpPrintDevice can contain "network"
or "direct" values. This information can be stored in already
present property 'is-network-device' as well.
https://bugzilla.gnome.org/show_bug.cgi?id=749830
Pass all discovered devices to 'GroupPhysicalDevices' instead of just
the devices already present in the list and the newly discovered ones.
Replace an existing device in the list if there is a better device
(e.g. replace 'usb:' by 'hp:' device).
https://bugzilla.gnome.org/show_bug.cgi?id=693186
Set 'PageSize' instead of 'media' for new printers since we use PPD
for construction of the combo for selecting of default paper size.
Previously, we've been setting 'media' attribute for new printers.
Attribute 'media' is used by IPP but we set paper size using 'PageSize'
which comes from PPD in the options dialog. Sometimes (quite often) IPP
gets priority over PPD in print systems. Therefore there was inconsistency
of what user set as default paper size on the options dialog and what was used.
Also don't mark IPP and user's local options as default in PpPPDOptionWidget
since it should use just PPD (we can change PPD values only in this widget).
Since we use PPD for setting of paper size in the options dialog, we shouldn't
show a value which user does not change actually (IPP's 'media' vs. PPD's
'PageSize').
https://bugzilla.gnome.org/show_bug.cgi?id=748569
PpPrintDevice has grown quite a lot since its introduction.
It contains almost all members of TDevice now.
Merging members of TDevice into PpPrintDevice saves us some work
and allows us to process TDevice's data out of pp-new-printer-dialog.c.
https://bugzilla.gnome.org/show_bug.cgi?id=695564
Guess hostname of found device if it was not provided before.
CUPS browses its printers as "PrinterName @ ComputerName" or
"PrinterInfo @ ComputerName" through DNS-SD. Get the last part
of that string and set it as hostname.
HPLIP printers have URIs of form
hp:/net/PrinterModel?ip=IPAddress&port=Port or
hp:/net/PrinterModel?ip=IPAddress.
URIs of other protocols are parsed by httpSeparateURI().
https://bugzilla.gnome.org/show_bug.cgi?id=693183
Get devices also from backends which are not hard-coded
in pp-utils.c. This is achieved by searching on all
backends with excluding hard-coded ones in the last search.
https://bugzilla.gnome.org/show_bug.cgi?id=693182
Use GCancellable when setting a new value of an option.
This prevents Printers panel from crash caused by
calling of option widget's callback on finalized widget.
https://bugzilla.gnome.org/show_bug.cgi?id=694874
root is not able to resolve symlinks in /tmp/ created by ordinary users
because of a new policy and PPDs got from CUPS are symlinks to /etc/cups/ppd/*
placed to /tmp/.
Since we need to pass PPD file of original printer to CUPS when renaming
a printer we resolve given symlink and pass original filename to the CUPS.