Commit graph

142 commits

Author SHA1 Message Date
Rui Matos
535c5d1fa2 printers: Disconnect the search bar from the shell's key-press-event
Using g_connect_object() ensures the disconnection happens when the
search bar is finalized.

https://bugzilla.gnome.org/show_bug.cgi?id=786603
2017-08-23 14:30:20 +02:00
Mohammed Sadiq
d5110977da printers: Check if printer name is NULL
This was causing a segfault when the user clicks the cancel button
on add new printer dialog (in case when no printers are listed, and no
printers are added).

output from sanitizer:

==22669==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7fe1c7a4d409 bp 0x7ffd179f6410 sp 0x7ffd179f6410 T0)
    #0 0x7fe1c7a4d408 in g_str_hash /home/sadiq/jhbuild/checkout/glib/glib/ghash.c:1882
    #1 0x7fe1c7a4c814 in g_hash_table_lookup_node /home/sadiq/jhbuild/checkout/glib/glib/ghash.c:379
    #2 0x7fe1c7a4c814 in g_hash_table_lookup /home/sadiq/jhbuild/checkout/glib/glib/ghash.c:1153
    #3 0x55cef023a121 in new_printer_dialog_response_cb /home/sadiq/jhbuild/checkout/gnome-control-center/panels/printers/cc-printers-panel.c:914

https://bugzilla.gnome.org/show_bug.cgi?id=783406
2017-06-23 13:32:42 +02:00
Felipe Borges
0d0b42eb50 printers: Hide supply level bar when there is no inklevel data
https://bugzilla.gnome.org/show_bug.cgi?id=779702
2017-06-15 15:39:22 +02:00
Felipe Borges
6dcf057a53 printers: Scroll view to show newly added Printer
In scenarios with a long list of printers, it might be difficult
to find a newly added printer.

This patch make the view scroll to the allocated position of the
printer entry.

https://bugzilla.gnome.org/show_bug.cgi?id=779506
2017-05-29 17:49:11 +02:00
Felipe Borges
f3141e430b printers: Drop "select_new_printer" property leftover
The select_new_printer property used to be an indicator whether
the view should change to present the newly added printer.

With the Printers presented as a list in the new design, there's
no need for this flag.

https://bugzilla.gnome.org/show_bug.cgi?id=779506
2017-05-29 17:34:55 +02:00
Piotr Drąg
21d697cbe5 printers: Use Unicode quotation marks in a translatable string
See https://developer.gnome.org/hig/stable/typography.html

https://bugzilla.gnome.org/show_bug.cgi?id=772199
2017-05-26 16:10:47 +02:00
Felipe Borges
e5624f90bf printers: Add 10s timeout for printer removal
Dismisses the Printer removal notification after 10 seconds,
removing the printer permanently.

The 10 seconds value is taken from the online-accounts panel.

https://bugzilla.gnome.org/show_bug.cgi?id=693187
2017-05-26 13:16:39 +02:00
Felipe Borges
f065f5005f printers: Allow undoing deletion of a printer
Instead of directly applying the deletion of a printer, we should
follow the GNOME in-app notification deletion guidelines.

This patch introduces the in-app notification following the HIG[0]
for the deletion of a printer. It allows to "undo" the deletion.

The default behavior for these notification is to dismiss a previous
notification. In doing so, when deleting multiple printers, the
"Undo" button only restores the last deleted one. We don't do batch/
bulk removal in the printers panel.

[0] https://developer.gnome.org/hig/stable/in-app-notifications.html.en

https://bugzilla.gnome.org/show_bug.cgi?id=693187
2017-05-26 13:16:39 +02:00
Felipe Borges
870b4e7190 printers: Filter the printer-location in the search
Show printer search results where the searched string matches
the printer-location.

https://bugzilla.gnome.org/show_bug.cgi?id=779656
2017-05-10 11:04:29 +02:00
Felipe Borges
34aedbe992 printers: Add search capabilities to the panel
Due to the recent changes towards the new design, it became slightly
harder to find a printer given a long list of entries.

This patch introduces search capabilities to the panel, filtering
based on the printer name.

https://bugzilla.gnome.org/show_bug.cgi?id=779656
2017-05-09 15:52:12 +02:00
Felipe Borges
e26756d7e3 printers: Make printers-list a GtkListBox
By making the printers list a GtkListBox instead of a GtkBox, we
can use listbox's capabilities for sorting and filter.

https://bugzilla.gnome.org/show_bug.cgi?id=779656
2017-05-09 15:47:04 +02:00
Felipe Borges
519e19f974 printers: Make actualize_printers_list cancellable
This way we can safely interrupt an update without crashing
g-c-c.

https://bugzilla.gnome.org/show_bug.cgi?id=780299
2017-03-28 18:04:56 +02:00
Felipe Borges
89ff6a610e printers: Store PpPrinterEntry instances for individual manipulation
We were actualizing the whole printers collection everytime
something should change.

These patch introduces a HashTable keyed by the unique printer.name,
which allows us to access individual instances of PpPrinterEntry.

https://bugzilla.gnome.org/show_bug.cgi?id=779079
2017-02-27 16:29:43 +01:00
Felipe Borges
5302047ff1 printers: Subscribe to jobs notifications
The previous implementation of the panel was unable to individually
update a PpPrinterEntry jobs count and its PpJobsDialog.

These changes make the job notifications trigger updates in the
PpPrinterEntry UIs, keeping track of job events on the go.

https://bugzilla.gnome.org/show_bug.cgi?id=779079
2017-02-27 16:29:43 +01:00
Felipe Borges
378e04125d printers: Make the printers panel a single column
This patch purges all the former TreeView machinery and makes the
Printers panel have the printers listed in a scrolled window, as
designed at https://wiki.gnome.org/Design/SystemSettings/Printers

https://bugzilla.gnome.org/show_bug.cgi?id=767600
2017-02-13 19:45:35 +01:00
Felipe Borges
7e3d89e13a printers: Introduce PpDetailsDialog
This dialog handles the editing of printer properties such as
name, location, automatic discovery of driver, manual selection
of printer driver, and manual selection of ppd file.

https://bugzilla.gnome.org/show_bug.cgi?id=767600
2017-02-13 19:40:09 +01:00
Felipe Borges
37e37961e5 printers: introduce PpPrinterEntry widget
This commit introduces the following regressions:
- no possibility of renaming properties such as printer names,
location, or changing model/driver. This issue is going to be
solved nextly by the introduction of the PpDetailsDialog.

https://bugzilla.gnome.org/show_bug.cgi?id=767600
2017-02-13 19:27:49 +01:00
Felipe Borges
cf99cebfb9 printers: Move "Add Printer" button to header bar
This patch introduces a change to the Lock/Unlock logic. From now
on, unlocking the panel causes the "Lock" button to turn into the
"Add Printer" button.

https://bugzilla.gnome.org/show_bug.cgi?id=767600
2016-09-20 15:23:20 +02:00
Marek Kasik
77750c5076 printers: Fix compilation warning
We need to include cups/ppd.h explicitly due to some modification
of structure of CUPS headers
2016-09-20 12:35:42 +02:00
Martin Hatina
98cbbeb2db printers: Use PpPrinter class for renaming
Use PpPrinter class for renaming printer asynchronously.

https://bugzilla.gnome.org/show_bug.cgi?id=761539
2016-06-21 13:21:50 +02:00
Felipe Borges
11dd608f94 printers: use panel-wide page for empty-state
Instead of having the empty-state and no-cups-page states displayed
as tabs of the printer notebook, go for panel-wide pages, which
better highlight these states and doesn't unnecessarily shows the
empty printers list.

This change is also part of the effort of the panel redesign,
according to the mockups at
https://wiki.gnome.org/Design/SystemSettings/Printers

https://bugzilla.gnome.org/show_bug.cgi?id=767600
2016-06-15 15:46:19 +02:00
Marek Kasik
1fbc8de8bd printers: Fix compilation error
Fix "format not a string literal" error by not using
formatted print.

https://bugzilla.gnome.org/show_bug.cgi?id=764153
2016-04-15 12:21:27 +02:00
Bastien Nocera
82b73e5e77 printers: Fix "format not a string literal" error
https://bugzilla.gnome.org/show_bug.cgi?id=764727
2016-04-08 11:31:24 +02:00
Michael Catanzaro
3496b0594a printers: Manual ppd selection dialog should have a parent
https://bugzilla.gnome.org/show_bug.cgi?id=755713
2016-03-10 13:54:17 -06:00
Felipe Borges
16d32c4e33 printers: renew cups subscriptions asynchronously
https://bugzilla.gnome.org/show_bug.cgi?id=748336
2016-03-10 11:04:27 +01:00
Felipe Borges
dc7b78ca42 printers: get printer job attributes async
https://bugzilla.gnome.org/show_bug.cgi?id=748336
2016-03-03 16:05:56 +01:00
Felipe Borges
9f9c63fe8d printers: cancel cups subscriptions asynchronously
https://bugzilla.gnome.org/show_bug.cgi?id=748336
2016-03-02 17:16:15 +01:00
Felipe Borges
1d365545cf printers: set current page async
https://bugzilla.gnome.org/show_bug.cgi?id=748336
2016-02-25 16:14:53 +01:00
Felipe Borges
0a7cfa47fb printers: do async connection test during launch of panel
https://bugzilla.gnome.org/show_bug.cgi?id=748336
2016-02-25 16:14:37 +01:00
Felipe Borges
73b07a0b52 printers: use pp_cups_get_dests_async on printers panel
Instead of using the synchronous/blocking cupsGetDests function.

https://bugzilla.gnome.org/show_bug.cgi?id=748336
2016-02-19 15:53:02 +01:00
Felipe Borges
e9413b4b6a printers: polish empty state
If you don't have any printers, the panel used to look rather bare.
There was also a "No printers available" label, which was confusing,
and the insensitive list might be hard to understand.

https://bugzilla.gnome.org/show_bug.cgi?id=690351
2015-10-22 16:40:19 +02:00
Martin Hatina
7b6b3aac39 printers: Fix possible crash after closing the panel
Disconnect on_lockdown_settings_changed and on_permission_changed signals
when printers panels is being disposed, so they won't get called after panel
no longer exists.

https://bugzilla.redhat.com/show_bug.cgi?id=1218003
https://bugzilla.gnome.org/show_bug.cgi?id=750019
2015-06-09 14:35:01 +02:00
Prince781
e01951ede8 printers: Recognize more supply types
Recognize 'inkCartridge' and 'tonerCartridge' supply types.

https://bugzilla.gnome.org/show_bug.cgi?id=743331
2015-04-14 16:29:05 +02:00
Rui Matos
1df796ac28 printers: Drop remaining deprecated API usage
https://bugzilla.gnome.org/show_bug.cgi?id=740986
2015-01-08 19:04:53 +01:00
Marek Kasik
8c67e72821 printers: Fix padding of a progress text
Set padding of the text "Setting new driver" at runtime so that
it is aligned with other fields properly.

https://bugzilla.gnome.org/show_bug.cgi?id=739737
2014-11-25 12:01:17 +01:00
Marek Kasik
38958903ee printers: Add GtkLabel with printer model name
Place a custom GtkLabel with name of printer model
into "printer-model-button". This is needed for us to be
able to align the text and keep the button filling all available
horizontal space.

https://bugzilla.gnome.org/show_bug.cgi?id=739737
2014-11-25 12:01:17 +01:00
Marek Kasik
66eb1c9164 printers: Don't use methods of deprecated GtkMisc
Use GtkWidget's methods for settings of halign, valign and margin-start
instead of GtkMisc's methods for settings of xalign, yalign and xpad.

https://bugzilla.gnome.org/show_bug.cgi?id=739737
2014-11-25 12:01:17 +01:00
Marek Kasik
d32408c051 printers: Ellipsize long names and locations
Ellipsize long names of printers and long location strings
in the printers panel.

https://bugzilla.gnome.org/show_bug.cgi?id=661667
2014-04-30 11:32:42 +02:00
Daniel Mustieles
2c5951819d Updated FSF's address 2014-01-29 11:27:38 +01:00
Yosef Or Boczko
d49a097b3e printer: drop GtkStock
https://bugzilla.gnome.org/show_bug.cgi?id=704178
2013-07-19 15:57:53 +03:00
Marek Kasik
323c09e0b2 printers: Preserve width when setting default printer
Allocate fixed space for cell renderer showing icon of default
printer.

https://bugzilla.gnome.org/show_bug.cgi?id=690443
2013-04-23 13:38:48 +02:00
Marek Kasik
d7f31fc41c printers: Search for samba printers in new printer dialog
Search for samba printers on local network or on specified
host. The new printer dialog asks for password for a samba
server if it is needed for listing printers on it. User is
asked for selection of driver from local database during
addition of new samba printer.

https://bugzilla.gnome.org/show_bug.cgi?id=683229
2013-02-15 18:23:56 +01:00
Marek Kasik
22d8f1be60 printers: Have nicer icon for default printer
Change icon of default printer from emblem-default-symbolic
to object-select-symbolic. Make it follow the state of the cell
in which it is placed.

https://bugzilla.gnome.org/show_bug.cgi?id=690444
2013-01-16 12:44:21 +01:00
Marek Kasik
3482dd19c9 printers: Control acceptance of jobs with enable switch
Control acceptance of jobs by selected printer together
with switch which controls whether printer is enabled/disabled.

Use word "Stopped" instead of "Paused" for disabled printers.

Show state "Does not accept jobs" if printer is enabled but doesn't
accept jobs.

https://bugzilla.gnome.org/show_bug.cgi?id=678668
2013-01-09 14:25:15 +01:00
Cosimo Cecchi
3064425711 printers: use a GResource for GtkBuilder UI definition
https://bugzilla.gnome.org/show_bug.cgi?id=691132
2013-01-07 10:57:15 +01:00
Bastien Nocera
3686cf7eb8 shell: Make all control-center plugins static
This makes loading faster, with less I/O, avoids unnecessary
code duplication (around 1k lines shaved), and ensures that
all the panels link and work appropriately.

By the same token, it will stop external panels from being
created, and loaded.

https://bugzilla.gnome.org/show_bug.cgi?id=690036
2012-12-11 17:07:39 +01:00
Jeremy Bicha
190052ff74 printers: Use the proper Unicode ellipsis (…) instead of three dots
https://bugzilla.gnome.org/show_bug.cgi?id=689497
2012-12-03 09:12:47 -05:00
Marek Kasik
45ba8e89e8 printers: Redesign of new printer dialog
This commit implements design changes from
https://live.gnome.org/Design/SystemSettings/Printers.

The new printer dialog gets informations about connected devices
from CUPS server asynchronously and separately for each backend now.

Entering an address into the entry and pressing the icon inside
the entry or enter starts to detect printers on the entered host.

Entering a text which is a substring of a name of a device or its location
filters the list to contain just devicess with the string in it (e.g. Canon
will keep devices with "Canon" in their name).

The PpNewPrinterDialog is regular object now. It emits signal "pre-response"
when dialog is closed and a printer is being added and signal "response" when
the new printer was added, addition of the new printer failed or the dialog was
cancelled.
This commit removes FirewallD support from new printer dialog. (#683229)
2012-09-04 14:09:06 +02:00
Frédéric Péters
e87c564cdb printers: remove blank class_finalize function 2012-08-21 22:10:14 +02:00
Ray Strode
b0e7a5efa8 panels: add register macro
Bastien says he doesn't like the blank class_finalize
functions in every panel and he would like a wrapper
macro to hide them.

This commit does that.
2012-08-21 14:32:33 -04:00