Commit graph

101 commits

Author SHA1 Message Date
Yuri Chornoivan
e7050ab6f4 Fix minor typos 2020-07-20 10:38:09 +03:00
Robert Ancell
bc648d9c92 printers: Replace PpDevicesList with standard GPtrArray 2020-07-20 14:14:44 +12:00
Robert Ancell
b994237acd printers: Remove unused class members 2020-07-02 16:20:25 +00:00
Elia Geretto
1bf5d4f55f printers: Do not authenticate SMB servers when search field is edited
When the search field in the "Add Printer" dialog is edited, no
authentication with a remote SMB server should be attempted. The server
should just be added to the list and marked with "Server requires
authentication". The user can then authenticate the server by clicking
on it.

The behavior described above is probably the intended one when the code
was written, since there is no closure registered for the
"authentication-required" signal in the function this commit modifies.
This commit should simply restore the intended behavior.

Resolves: https://gitlab.gnome.org/GNOME/gnome-control-center/issues/755
2020-05-12 22:16:32 +00:00
Robert Ancell
815db8f404 printers: Replace explicit g_variant_unref calls with g_autoptr 2020-03-30 03:24:58 +00:00
Robert Ancell
3a7533da1b printers: Use g_autoptr for the results of D-Bus calls 2020-03-30 03:24:58 +00:00
Robert Ancell
67074b7aea printers: Fix GVariantIter leaks 2020-03-30 03:24:58 +00:00
Robert Ancell
46443af0ca printers: Replace GVariant iteration with direct call to copy value 2020-03-30 03:24:58 +00:00
Robert Ancell
9065850b92 printers: Replace g_variant_iter_next_value with the simpler g_variant_iter_next 2020-03-30 03:24:58 +00:00
Robert Ancell
4502673b6c printers: Connect signals with g_signal_connect_object in swapped form 2020-03-30 16:18:50 +13:00
Marek Kasik
923b726b3b printers: Provide a scheme to address parser
Add a scheme to the address which we test for correctness
by g_network_address_parse_uri(). It does not work without it.
Use "none" scheme if user did not entered one.
Use port number 0 if user did not specify any.

Fixes #679
2019-10-08 18:05:56 +02:00
Robert Ancell
9a2e821fe5 Initialize autoptr values to NULL.
These cases were safe, but if the code changed this risked freeing uninitialized
memory.
2019-10-03 10:58:38 +13:00
Felipe Borges
e497ad900d printers: Check whether URI is valid while searching for printers
Fixes #679
2019-10-01 18:56:23 +02:00
Robert Ancell
e9b9966e7d printers: Use g_autoptr with strings 2019-02-05 10:26:15 +13:00
Robert Ancell
47cd15d911 printers: Use self variable to match coding style 2019-01-30 11:33:28 +13:00
Robert Ancell
85604ab4f0 printers: Simplify finalize/dispose methods
Use g_clear_* functions to simplify code and ensure values are set to NULL after freeing.
2019-01-30 11:33:28 +13:00
Robert Ancell
4042cb5d33 printers: Replace GObject boilerplace with G_DECLARE_TYPE 2019-01-30 11:33:28 +13:00
Robert Ancell
fb09d9c090 printers: Use g_error_matches where appropriate 2018-12-10 10:13:28 +13:00
Robert Ancell
877445cbaf printers: Use g_autoptr for GError handling 2018-09-17 15:19:21 +00:00
Robert Ancell
55d47bc83e printers: Plug memory leaks 2018-06-25 22:53:10 +00:00
Robert Ancell
a64ef75ad7 Simplify use of GCancellable
g_cancellable_cancell can be called without checking for a NULL value.
Use g_clear_object instead of g_object_unref
2018-06-01 21:03:19 +00:00
Marek Kasik
f3257ce82a printers: Focus search entry in new printer dialog
Focus search entry in the new printer dialog once user starts to type
so he does not need to click on it.

Closes #41
2018-05-10 16:47:10 +00:00
Felipe Borges
fc073f2185 printers: Authenticate samba server also on double-click
The "Add Printer" dialog should be smart enough to know whether
an item listed in the dialog is a samba server or just a printer.
If it is a samba server, it should go for the authentication page
instead of emitting a GTK_RESPONSE_*.

https://bugzilla.gnome.org/show_bug.cgi?id=778277
2017-02-07 13:14:40 +01:00
Felipe Borges
6f3ed9087d printers: Allow dismissing authentication in "Add New Printer" dialog
Introduce a "go-back" button allowing to get back to the list of
printers when the user is exposed to the authentication form in
the "Add New Printer" dialog.

This is a redesign based on the newest mockups available at
https://wiki.gnome.org/Design/SystemSettings/Printers#Guidelines

https://bugzilla.gnome.org/show_bug.cgi?id=760783
2017-02-01 17:53:40 +01:00
Felipe Borges
e8cdaea332 printers: Decouple PpSamba and the PpNewPrinterDialog
PpSamba no longer needs to hold a reference to the dialog window.

https://bugzilla.gnome.org/show_bug.cgi?id=760783
2017-01-18 15:21:38 +01:00
Felipe Borges
ebe21b68ab printers: Use "hostname" in the "Add Printer" dialog
https://bugzilla.gnome.org/show_bug.cgi?id=760783
2017-01-18 15:21:38 +01:00
Felipe Borges
afac6d5340 printers: Merge authentication dialog into "Add Printer"
This is a redesign based on the newest mockups available at
https://wiki.gnome.org/Design/SystemSettings/Printers#Guidelines

https://bugzilla.gnome.org/show_bug.cgi?id=760783
2017-01-18 10:20:20 +01:00
Felipe Borges
66c7f45307 printers: List new printers ASAP in the "Add Printer" dialog
List a printer in the "Add Printer" dialog as soon as it is
discovered. The header subtitle "Searching for Printers"
denotes that the Search is not done yet.

https://bugzilla.gnome.org/show_bug.cgi?id=760783
2016-12-02 15:10:56 +01:00
Felipe Borges
116f763831 printers: Redesign loading page in the "Add Printer" dialog
This is a redesign based on the newest mockups available at
https://wiki.gnome.org/Design/SystemSettings/Printers#Guidelines

The spinner is displayed while search is taking place AND nothing
has been found. Ongoing search is indicated by the sub-heading.

https://bugzilla.gnome.org/show_bug.cgi?id=760783
2016-10-11 16:55:11 +02:00
Felipe Borges
8f57e4dfc7 printers: Move "Add Printer" dialog buttons to header bar
It also renames the "Authenticate" button to "Unlock".
This is a redesign based on the newest mockups available at
https://wiki.gnome.org/Design/SystemSettings/Printers#Guidelines

https://bugzilla.gnome.org/show_bug.cgi?id=760783
2016-09-22 11:32:53 +02:00
Felipe Borges
ac6b1acc1f printers: avoid crashes when searching for printers w/ special chars
Since the dialog considers just  the hostname part from the URL,
unespacing the url avoids a backend crash.

https://bugzilla.gnome.org/show_bug.cgi?id=754248
2015-09-14 17:47:15 +02:00
Marek Kasik
cb07ee03a0 printers: Use GtkListStore for device list
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
2015-08-03 16:56:41 +02:00
Marek Kasik
60bf057bab printers: Merge device-class and is-network-device properties
'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
2015-07-30 16:28:09 +02:00
Marek Kasik
7b21b22eef printers: Make PpPrintDevice a regular class
Create class PpPrintDevice with properties taken
from the original PpPrintDevice structure.

https://bugzilla.gnome.org/show_bug.cgi?id=749830
2015-07-30 16:28:06 +02:00
Marek Kasik
48ef91a0b9 printers: Fix compile-time warning
pp-new-printer-dialog.c:673:18: warning: 'device' may be used uninitialized
in this function [-Wmaybe-uninitialized]
2015-07-29 15:48:08 +02:00
Marek Kasik
68e92988a8 printers: Cache pointer to devices-treeview
Store device-treeview in PpNewPrinterDialogPrivate so we
don't need to search for it each time we need it.

https://bugzilla.gnome.org/show_bug.cgi?id=749830
2015-07-27 16:28:39 +02:00
Marek Kasik
c26553ed3e printers: Use macro for getting widgets from builder
Use macro for getting widgets from builder in the New printer dialog.

https://bugzilla.gnome.org/show_bug.cgi?id=749830
2015-07-27 16:28:36 +02:00
Marek Kasik
880cc01550 printers: Don't show the same device multiple times
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
2015-07-13 12:07:59 +02:00
Marek Kasik
da9b74061f printers: Install selected printer when the row is activated
Allow user to install printer by activating a row with a found device.

https://bugzilla.gnome.org/show_bug.cgi?id=748206
2015-06-10 11:35:04 +02:00
Marek Kasik
bfd6423dc9 printers: Set focus of the 'New printer dialog' correctly
Show the 'New printer dialog' after setting transient parent for it
so that the warning about missing transient parent is not shown
to the user and the dialog is correctly focused.

https://bugzilla.gnome.org/show_bug.cgi?id=748206
2015-06-10 11:34:57 +02:00
Marek Kasik
15b5045ed3 printers: Don't update alignment padding for dialogs
The update of alignment padding is not needed since gtk+ 3.14.
It was needed for proper alignment of widgets of action area
with those from content area.

https://bugzilla.gnome.org/show_bug.cgi?id=739737
2014-11-25 12:01:17 +01:00
Marek Kasik
873c22e9d4 printers: Make driver installation dialog modal
Pass XID of correct window to InstallPrinterDrivers and
InstallPackageNames methods.

https://bugzilla.gnome.org/show_bug.cgi?id=740115
2014-11-14 14:32:11 +01:00
Marek Kasik
b43f05f740 printers: Allow adding of JetDirect and LPD printers manually
Check the entered address for AppSocket/HP JetDirect and LPD printers.
If there is a printer found, it has a default name which
will be changed right after user selects model of the printer
in the PPD selection dialog.

https://bugzilla.gnome.org/show_bug.cgi?id=695564
2014-07-31 11:44:16 +02:00
Marek Kasik
6576db1a16 printers: Make pp_devices_list_free() generally available
Move pp_devices_list_free() to pp-utils.h and optimize it
using g_list_free_full().

https://bugzilla.gnome.org/show_bug.cgi?id=695564
2014-07-31 11:44:16 +02:00
Marek Kasik
a15c2f831a printers: Don't request port during creation of PpHost
This allows us to distinguish between situations when the port
was specified and when it was not.

https://bugzilla.gnome.org/show_bug.cgi?id=695564
2014-07-31 11:44:16 +02:00
Marek Kasik
375c5b0086 printers: Separate canonicalization of device name
Move code for canonicalization of device names to
a separate function for reusability.

https://bugzilla.gnome.org/show_bug.cgi?id=695564
2014-07-31 11:44:16 +02:00
Marek Kasik
190d27b8aa printers: Merge TDevice into PpPrintDevice
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
2014-07-31 11:44:16 +02:00
Marek Kasik
64ff0dd25a printers: Show connection type of found devices
Parse URIs of devices found by the new printer dialog and
show types of their connections for local printers or
locations for network printers or addresses for network
printers.

https://bugzilla.gnome.org/show_bug.cgi?id=693183
2014-02-28 11:07:51 +01:00
Marek Kasik
352f01bb11 printers: Don't set color for selected text
Show description of selected device in default color
in new printer dialog.

https://bugzilla.gnome.org/show_bug.cgi?id=693183
2014-02-28 11:07:48 +01:00
Marek Kasik
fc0a68430f printers: Set hostname for devices with no hostname
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
2014-02-26 12:09:36 +01:00