12009-08-11  Tim Waugh  <twaugh@redhat.com>
2
3	* cupshelpers/cupshelpers.py (missingPackagesAndExecutables):
4	Accept a filter of "-" (Ubuntu #411376).
5
62009-06-23  Tim Waugh  <twaugh@redhat.com>
7
8	* system-config-printer.py (NewPrinterGUI.nextNPTab): Don't log
9	non-fatal traceback messages if we cannot connect to the IPP
10	printer (bug #507629).
11
122009-06-23  Tim Waugh  <twaugh@redhat.com>
13
14	* troubleshoot/CheckPrinterSanity.py (CheckPrinterSanity.display):
15	Parse nmblookup failures correctly (from bug #507442).
16
172009-06-19  Till Kamppeter  <till.kamppeter@gmail.com>
18
19	* system-config-printer.py: Call "hp-info" with the "-x" option.
20	Then it works also when there is no CUPS queue for the URI.
21
22	* cupshelpers/ppds.py: Support for the new CUPS Raster driver of HPLIP
23	(hpcups). Use it preferably.
24
252009-05-13  Till Kamppeter  <till.kamppeter@gmail.com>
26
27	* system-config-printer.py (NewPrinterGUI.fetchJockeyDriver):
28	While waiting for Jockey to download a driver from OpenPrinting,
29	check whether the CUPS connection stays stable and re-establish it
30	if it gets lost. Sometimes the installation of a driver package
31	breaks down the connection to CUPS (probably due to the restart of
32	CUPS).
33
342009-04-29  Till Kamppeter  <till.kamppeter@gmail.com>
35
36	* system-config-printer.py: Compare make and model names
37	case-insensitively when positioning the cursor in the make/model
38	selection list (Ubuntu bug #365329).
39	Made sure that print queue name suggestion is always generated
40	(Ubuntu bug #363522, comment 6).
41
42	* cupshelpers/ppds.py: Let the getPPDNameFromDeviceID() function
43	always output which PPD got selected.
44
452009-04-28  Tim Waugh  <twaugh@redhat.com>
46
47	* glade/NewPrinterWindow.glade: Adjusted border padding for New
48	Printer window (bug #493862).
49
502009-04-20  Till Kamppeter  <till.kamppeter@gmail.com>
51
52	* system-config-printer.py: Made call of hp-plugin also working with
53	HPLIP 3.9.2.
54
552009-04-15  Tim Waugh  <twaugh@redhat.com>
56
57	* system-config-printer.py
58	(NewPrinterGUI.on_btnIPPVerify_clicked): Fixed URI parsing.
59
602009-04-14  Tim Waugh  <twaugh@redhat.com>
61
62	* system-config-printer.py: Set relaxed PPD conformance (trac #159).
63	* applet.py (NewPrinterNotification.NewPrinter): Likewise.
64
652009-04-01  Till Kamppeter  <till.kamppeter@gmail.com>
66
67	* cupshelpers/cupshelpers.py (_expand_flags): Do not use
68	locale.setlocale() to only convert uppercase to lowercase letters in
69	pure ASCII text. With many locales Python bugs get be triggered by
70	that. Define a simple case-conversion function which does not use
71	any locale-dependent constant or function (Ubuntu #340932).
72
73	* applet.py, glade.py, glade/PrintersWindow.glade, jobviewer.py,
74	system-config-printer.py: Added support for notfication daemons which
75	do not support action buttons in the notification bubbles. Now the
76	capabilities of the notification server are checked and if needed,
77	alternative notifications are used (Ubuntu #328604, #339847). Thanks to
78	David Barth and Ken VanDine (both from Ubuntu) to make the patch.
79
802009-03-20  Till Kamppeter  <till.kamppeter@gmail.com>
81
82	* cupshelpers/ppds.py: Improved identification of detected printers:
83	   o HP's PPD files in HPLIP 3.9.2 have totally broken device IDs, all
84	     lowercase and underscores instead of spaces, not really what
85	     the printer reports. Added workarounds to match them with the
86	     real device IDs (Ubuntu #306301).
87	   o Match the model names of the PPDs case-insensitive with the
88	     model names of the detected printer. Some printers, like the
89	     HP DeskJet 895C report an all-uppercase model name
90	     (Ubuntu #306301).
91
922009-03-17  Till Kamppeter  <till.kamppeter@gmail.com>
93
94	* cupshelpers/ppds.py: Improved identification of detected printers:
95	   o HP introduced a lot of abbreviations (like LJ, DJ, OJ, PS, ...)
96	     in the model names of their PPDs in HPLIP 3.9.2. These
97	     abbreviations are not used in device IDs. Now we expand the
98	     abbreviations in ppdMakeModelSplit() and take them also into
99	     account when we have to guess a missing manufacturer name.
100	   o Let ppdMakeModelSplit() also truncate the model name on the
101	     string "hpijs", from HPLIP 3.9.2 on there is no "Foomatic" in
102	     the NickNames of the PPDs any more.
103	   o Make guessing of manufacturer names in ppdMakeModelSplit() also
104	     working if there is whitespace in the beginning of the input
105	     string.
106           o Protect the manufacturer/model lists from being messed up by
107	     TurboPrint PPDs. They have manufacturer and model being stuffed
108	     into the manufacturer field, so each printer appeared as its own
109	     manufacturer (ppdMakeModelSplit()).
110	   o Make TurboPrint PPDs lowest priority, as this is a non-free
111	     third-party driver (_getDriverType()).
112	   o If no manufacturer name is supplied to the
113	     getPPDNameFromDeviceID() function (broken device ID from network
114	     CUPS backend), call ppdMakeModelSplit() to find out the
115	     manufacturer via the model name.
116
1172009-03-16  Tim Waugh  <twaugh@redhat.com>
118
119	* monitor.py (Monitor.__init__): Initialise update_timer to
120	prevent tracebacks if the connection fails (Ubuntu #343387).
121
1222009-03-10  Tim Waugh  <twaugh@redhat.com>
123
124	* cupshelpers/ppds.py (ppdMakeModelSplit): Strip " hpijs" from PPD
125	names.
126	(ppdMakeModelSplit.strip_suffix): Removed dead code.
127
1282009-03-10  Tim Waugh  <twaugh@redhat.com>
129
130	* cupshelpers/ppds.py (PPDs.getPPDNameFromDeviceID): Better PPD
131	fallback searching.
132
1332009-03-10  Till Kamppeter  <till.kamppeter@gmail.com>
134
135	* newprinternotification.conf: Adapted D-Bus policy file to the
136	new D-Bus defaults (Ubuntu #318776).
137
1382009-03-10  Tim Waugh  <twaugh@redhat.com>
139
140	* cupshelpers/ppds.py (PPDs._findBestMatchPPDs): Don't try search
141	for a model series if there are no digits in the model name.
142
1432009-03-09  Tim Waugh  <twaugh@redhat.com>
144
145	* cupshelpers/cupshelpers.py (Printer._expand_flags): Use
146	setlocale() to save current LC_CTYPE value, not getlocale() (bug
147	#489313).
148
1492009-03-03  Tim Waugh  <twaugh@redhat.com>
150
151	* troubleshoot/CheckPrinterSanity.py (CheckPrinterSanity.display):
152	Include local printer attributes in diagnostic output.
153
1542009-03-02  Tim Waugh  <twaugh@redhat.com>
155
156	* system-config-printer.py
157	(NewPrinterGUI.on_tvNPDeviceURIs_cursor_changed): Clear LPD
158	drop-down list.
159
1602009-02-25  Tim Waugh  <twaugh@redhat.com>
161
162	* system-config-printer.py
163	(NewPrinterGUI.on_tvNPDeviceURIs_cursor_changed): Set initial
164	sensitivity of LPD probe button.
165	(NewPrinterGUI.on_cmbentNPTLpdHost_changed): Adjust button
166	sensitivity when hostname is changed.
167
1682009-02-18  Tim Waugh  <twaugh@redhat.com>
169
170	* cupshelpers/cupshelpers.py (Printer._expand_flags): Perform
171	lowercase operations in locale-independent manner (trac #151).
172
1732009-02-16  Till Kamppeter  <till.kamppeter@gmail.com>
174
175	* applet.py: Fixed switch between the notification for the case that
176	a queue got created and the case that no queue got created.
177
1782009-02-13  Till Kamppeter  <till.kamppeter@gmail.com>
179
180	* system-config-printer.py (get_hpfax_device_id): Return None
181	if the "fax-type" is 0, this means that fax is not available
182	on the given printer.
183
1842009-02-13  Till Kamppeter  <till.kamppeter@gmail.com>
185
186	* system-config-printer.py, troubleshoot/CheckPrinterSanity.py:
187	Fixed "hp-info" calls: There should be no space between "-d" and
188	the "URI" to work around HPLIP option parsing bug.
189
1902009-02-15  Till Kamppeter  <till.kamppeter@gmail.com>
191
192	* system-config-printer.py: Added functionality to automatically
193	recognize whether the proprietary plug-in of HPLIP is useful or
194	even required and to aks the user whether he want to download and
195	install it. This way the setup of HP printers which require the
196	plugin (especially the printers requiring firmware, as LaserJet
197	1000, 1005, 1018, 1020) is intuitive and the user does not end up
198	with non-working queues (fixes long-standing Ubuntu bug LP: #96454).
199	To achieve maximum compatibility with Ubuntu, an hp-plugin call
200	failing due to PyQt not installed is caught and then the text mode
201	version of hp-plugin is called in a terminal window.
202
2032009-02-12  Till Kamppeter  <till.kamppeter@gmail.com>
204
205	* system-config-printer.py: Skip selection of manufacturer, model,
206	and driver in the new-printer wizard if an exact driver match has
207	been found (trac #141).
208
2092009-02-11  Till Kamppeter  <till.kamppeter@gmail.com>
210
211	* system-config-printer.py, applet.py: Support for auto-detection
212	of printers vis hal-cups-utils without hal-cups-utils creating a
213	queue, especially if there is no driver specifically assigned to
214	the detected printer. This way the user does not get confused by a
215	non-working queue when he ignores the notifications of the applet.
216	In such a case hal-cups-utils sends the CUPS URI resulting from
217	the auto-detection in the place of the queue name. the applet does
218	an appropriate notification then and if the user clicks the
219	button, system-config-printer is started with the new-printer
220	wizard direcly opening, but skipping the device selection step.
221
2222009-02-11  Tim Waugh  <twaugh@redhat.com>
223
224	* system-config-printer.py (GUI.setDataButtonState): Don't allow
225	PPD changes when there are conflicts (trac #144).
226
2272009-02-11  Tim Waugh  <twaugh@redhat.com>
228
229	* optionwidgets.py (Option.checkConflicts): Check constraints in
230	reverse as well, so that constraint checking is symmetrical.
231
2322009-02-11  Tim Waugh  <twaugh@redhat.com>
233
234	* jobviewer.py (JobViewer.update_job): Don't display a
235	notification when authentication is required, just go straight to
236	the authentication dialog.  Don't grab keyboard and pointer for
237	that dialog and instead let the window manager prevent keyboard
238	input accidentally going to the wrong window.
239
2402009-02-11  Tim Waugh  <twaugh@redhat.com>
241
242	* authconn.py (Connection._perform_authentication): Don't grab
243	keyboard and pointer when displaying authentication dialog.
244	Instead let the window manager prevent keyboard input accidentally
245	going to the wrong window.
246
2472009-02-11  Tim Waugh  <twaugh@redhat.com>
248
249	* system-config-printer.py (NewPrinterGUI.on_btnNPApply_clicked):
250	Don't show wait window when adding a new printer, as that may
251	require an authentication dialog and we don't want them competing
252	for focus (bug #484960).
253
2542009-02-11  Tim Waugh  <twaugh@redhat.com>
255
256	* system-config-printer.py (NewPrinterGUI.getNPPPD): Fixed
257	indentation.
258
2592009-02-10  Tim Waugh  <twaugh@redhat.com>
260
261	* system-config-printer.py (NewPrinterGUI.getJockeyDriver_thread):
262	Handle D-Bus failures when connecting to the session bus (bug
263	#484402).
264
2652009-02-04  Tim Waugh  <twaugh@redhat.com>
266
267	* jobviewer.py (JobViewer.set_statusicon_visibility): Fixed typo.
268	(JobViewer.job_added): Only add this job to the active set if it
269	is active; otherwise, remove it from the set if it is there.
270	(JobViewer.job_event): If the emptiness of the active set has
271	changed, update the status icon (trac #140).
272
2732009-02-04  Tim Waugh  <twaugh@redhat.com>
274
275	* jobviewer.py (JobViewer.set_statusicon_visibility): Don't
276	display status icon for completed jobs (trac #140).
277
2782009-01-27  Tim Waugh  <twaugh@redhat.com>
279
280	* system-config-printer.py (GUI.on_troubleshoot_activate): Don't
281	make the troubleshooter window transient for the main window (bug
282	#481505).
283
2842009-01-27  Tim Waugh  <twaugh@redhat.com>
285
286	* troubleshoot/PrintTestPage.py (PrintTestPage): Use authenticated
287	connection, except when printing the test page.
288
2892009-01-27  Tim Waugh  <twaugh@redhat.com>
290
291	* system-config-printer.py (NewPrinterGUI.get_hpfax_device_id):
292	Fixed traceback while fetching hpfax device ID (Ubuntu #321139).
293
2942009-01-27  Tim Waugh  <twaugh@redhat.com>
295
296	* newprinternotification.conf: Specify both send_destination and
297	send_interface for allow/deny rules.
298
2992009-01-26  Tim Waugh  <twaugh@redhat.com>
300
301	* optionwidgets.py: Find parent window to set Conflicts dialog
302	transient for.
303	* system-config-printer.glade: Distinct response ID for
304	Conflicts button.
305	* system-config-printer.py: Fixed conflicts button.
306
3072009-01-26  Tim Waugh  <twaugh@redhat.com>
308
309	* system-config-printer.py (NewPrinterGUI.fillMakeList): Use
310	set_cursor (trac #142).
311	(NewPrinterGUI.fillModelList): Likewise.
312
3132009-01-22  Tim Waugh  <twaugh@redhat.com>
314
315	* glade/JobsWindow.glade: Better default height for jobs window.
316
3172009-01-16  Tim Waugh  <twaugh@redhat.com>
318
319	* AdvancedServerSettings.py
320	(AdvancedServerSettingsDialog.on_response): Give a callback on
321	apply.
322	* system-config-printer.py (GUI.on_adv_server_settings_apply):
323	Refresh server settings when the advanced server settings dialog
324	has finished (trac #133).
325
3262009-01-14  Tim Waugh  <twaugh@redhat.com>
327
328	* system-config-printer.py
329	(NewPrinterGUI.on_tvNPDevices_cursor_changed): Prevent traceback.
330	(NewPrinterGUI.device_row_activated): Collapse/expand device rows
331	on activation.
332
3332009-01-14  Tim Waugh  <twaugh@redhat.com>
334
335	* system-config-printer.py (GUI.fillPrinterTab): Avoid traceback
336	with raw queues.
337
3382009-01-13  Tim Waugh  <twaugh@redhat.com>
339
340	* system-config-printer.py
341	(NewPrinterGUI.on_tvNPDownloadableDrivers_cursor_changed): Fixed
342	traceback (Ubuntu #316828).
343
3442009-01-13  Tim Waugh  <twaugh@redhat.com>
345
346	* glade/ConnectDialog.glade, glade/NewPrinterWindow.glade,
347	glade/PrinterPropertiesDialog.glade: Added accessibility
348	relations, patch from Ghee Teo (trac #136).
349
3502009-01-12  Tim Waugh  <twaugh@redhat.com>
351
352	* system-config-printer.py (NewPrinterGUI.on_btnNPApply_clicked):
353	Treat classes the same as printers after adding them: enable them
354	and set them accepting jobs (trac #132).
355
3562009-01-12  Tim Waugh  <twaugh@redhat.com>
357
358	* monitor.py (Monitor.__init__): Handle exception from
359	dbus.SystemBus() (bug #479534).
360	(Monitor.cleanup): Only remove the D-Bus signal receiver if we
361	managed to add it in the first place.
362
3632009-01-08  Tim Waugh  <twaugh@redhat.com>
364
365	* system-config-printer.py (GUI.dests_iconview_item_activated):
366	Use set_cursor here to match change introduced when fixing
367	Ubuntu #282634.
368
3692009-01-08  Tim Waugh  <twaugh@redhat.com>
370
371	* jobviewer.py (JobViewer.now_connected): Handle notification
372	closure for re-connected printers correctly.
373
3742009-01-07  Tim Waugh  <twaugh@redhat.com>
375
376	* system-config-printer.py (GUI.__init__): Advertise correct
377	defaults for page-left, page-right, page-top and page-bottom job
378	options (bug #468553).
379
3802009-01-07  Tim Waugh  <twaugh@redhat.com>
381
382	* system-config-printer.py
383	(NewPrinterGUI.on_tvNPMakes_cursor_changed): Use get_cursor here.
384	(NewPrinterGUI.on_tvNPModels_cursor_changed): Likewise (Ubuntu
385	#299724).
386	(NewPrinterGUI.on_tvNPDevices_cursor_changed): Likewise.
387
3882008-12-19  Tim Waugh  <twaugh@redhat.com>
389
390	* system-config-printer.in: Set prefix environment variable here,
391	partially reverting earlier change.
392	* system-config-printer-applet.in: Likewise.
393	* my-default-printer.in: Likewise.
394
3952008-12-19  Tim Waugh  <twaugh@redhat.com>
396
397	* PhysicalDevice.py (PhysicalDevice.get_info): The hpfax backend
398	wants to tell us that the device make and model is "HP Fax", so
399	ignore that useless field and use the device-info field instead.
400
4012008-12-19  Tim Waugh  <twaugh@redhat.com>
402
403	* system-config-printer.py (NewPrinterGUI.nextNPTab): Prevent
404	traceback when adding a printer driven by HPLIP (bug #477107).
405
4062008-12-16  Tim Waugh  <twaugh@redhat.com>
407
408	* Makefile.am (EXTRA_DIST): Ship config.py.in.
409	(DISTCLEANFILES): Clean config.py.
410
4112008-12-15  Till Kamppeter  <till.kamppeter@gmail.com>
412
413	* cupshelpers/openprinting.py (OpenPrinting.searchPrinters):
414	The search term must be submitted with the query as the "printer"
415	argument and not as the "make" argument.
416
4172008-12-15  Tim Waugh  <twaugh@redhat.com>
418
419	* monitor.py (Monitor.refresh): Use getPrinters instead of
420	getDests to avoid character encoding problems.
421
4222008-12-15  Tim Waugh  <twaugh@redhat.com>
423
424	* system-config-printer.py (NewPrinterGUI.on_btnNPApply_clicked):
425	Convert name of new printer to unicode (trac #124).
426
4272008-12-15  Tim Waugh  <twaugh@redhat.com>
428
429	* system-config-printer.py
430	(NewPrinterGUI.browse_ipp_queues_thread): Split port out from host
431	string if required (bug #476396).
432
4332008-12-13  Tim Waugh  <twaugh@redhat.com>
434
435	* system-config-printer.py
436	(GUI.on_tvPrinterProperties_cursor_changed): Use get_cursor here
437	(Ubuntu #282634).
438
4392008-12-13  Tim Waugh  <twaugh@redhat.com>
440
441	* system-config-printer.py (NewPrinterGUI.on_btnNPApply_clicked):
442	Check we have a real PPD before trying to copy options (Ubuntu
443	#285133).
444
4452008-12-13  Tim Waugh  <twaugh@redhat.com>
446
447	* system-config-printer.py (GUI.on_btnPrintTestPage_clicked):
448	Display an error dialog if unable to connect to server (Ubuntu
449	#286943).
450
4512008-12-13  Tim Waugh  <twaugh@redhat.com>
452
453	* cupshelpers/ppds.py (PPDs._findBestMatchPPDs): Handle model
454	names with more than one set of digits (Ubuntu #251244).
455
4562008-12-12  Tim Waugh  <twaugh@redhat.com>
457
458	* troubleshoot/__init__.py (Troubleshooter.is_moving_backwards):
459	Allow troubleshooter pages to know the direction we're going.
460
461	* troubleshoot/DeviceListed.py (DeviceListed.display): Don't
462	perform expensive operation if we're moving backwards and this
463	page will not be displayed.
464
4652008-12-11  Tim Waugh  <twaugh@redhat.com>
466
467	* troubleshoot/ErrorLogCheckpoint.py
468	(ErrorLogCheckpoint.enable_clicked): Reconnect after adjusting
469	server settings.
470	* troubleshoot/ErrorLogFetch.py (ErrorLogFetch.button_clicked):
471	Likewise.
472
4732008-12-11  Tim Waugh  <twaugh@redhat.com>
474
475	* troubleshoot/ErrorLogCheckpoint.py
476	(ErrorLogCheckpoint.enable_clicked): Handle values like '1m' for
477	MaxLogSize.
478
4792008-12-11  Tim Waugh  <twaugh@redhat.com>
480
481	* system-config-printer.py (GUI.server_settings_response): Reload
482	server settings after advanced server settings dialog has
483	finished.
484
4852008-12-09  Tim Waugh  <twaugh@redhat.com>
486
487	* system-config-printer.py (GUI.populateList): Allow prompting
488	again even if we disallowed it for one operation.
489
4902008-12-04  Tim Waugh  <twaugh@redhat.com>
491
492	* system-config-printer.py (GUI.fillPrinterTab): Localize a copy
493	of the PPD, retaining the original in-memory representation.
494	(GUI.fillPrinterOptions): Use the localized PPD for widget labels,
495	and the original PPD for value writebacks.
496	(NewPrinterGUI.getNPPPD): Don't localize PPDs here.
497	(NewPrinterGUI.on_btnNPApply_clicked): Likewise.
498
4992008-12-04  Tim Waugh  <twaugh@redhat.com>
500
501	* cupshelpers/cupshelpers.py (Printer.__init__, Printer.getPPD):
502	Cache the temporary PPD filename instead of the in-memory
503	representation, to allow for a separate localized in-memory copy.
504	(Printer.__del__): Remove the temporary PPD file.
505
5062008-11-27  Tim Waugh  <twaugh@redhat.com>
507
508	* system-config-printer.py (NewPrinterGUI.fillDeviceTab): Removed
509	some dead code.
510
5112008-11-26  Tim Waugh  <twaugh@redhat.com>
512
513	* troubleshoot/ErrorLogCheckpoint.py
514	(ErrorLogCheckpoint.collect_answer): Make sure to use
515	authenticated connection here.
516
5172008-11-26  Tim Waugh  <twaugh@redhat.com>
518
519	* troubleshoot/DeviceListed.py (DeviceListed.display): Avoid
520	traceback if getDevices fails.
521
5222008-11-24  Tim Waugh  <twaugh@redhat.com>
523
524	* troubleshoot/CheckLocalServerPublishing.py
525	(CheckLocalServerPublishing.__init__): Fixed option description
526	(bug #462934).
527
5282008-11-24  Tim Waugh  <twaugh@redhat.com>
529
530	* troubleshoot/ErrorLogCheckpoint.py
531	(ErrorLogCheckpoint.collect_answer): Prevent exception when
532	getFile fails.
533	* troubleshoot/ErrorLogFetch.py (ErrorLogFetch.display): Likewise.
534	* troubleshoot/PrintTestPage.py (PrintTestPage.print_clicked):
535	Likewise for printTestPage.
536
5372008-11-24  Tim Waugh  <twaugh@redhat.com>
538
539	* system-config-printer.py (GUI.maintenance_command): Remove
540	temporary file.
541
5422008-11-24  Tim Waugh  <twaugh@redhat.com>
543
544	* cupshelpers/cupshelpers.py
545	(missingPackagesAndExecutables): Don't leak file descriptors, and
546	clean up temporary files.
547
5482008-11-21  Tim Waugh  <twaugh@redhat.com>
549
550	* jobviewer.py (JobViewer.add_job): Update job creation times.
551
5522008-11-21  Tim Waugh  <twaugh@redhat.com>
553
554	* system-config-printer.py (GUI.setDataButtonState): Avoid
555	use-before-set traceback (trac #111).
556
5572008-11-21  Tim Waugh  <twaugh@redhat.com>
558
559	* monitor.py (Monitor.__init__): Remember which user to connect as.
560	(Monitor.cleanup): Connect as correct user (trac #110).
561	(Monitor.get_notifications): Likewise.
562	(Monitor.refresh): Likewise.
563	(Monitor.fetch_jobs): Likewise.
564
5652008-11-21  Tim Waugh  <twaugh@redhat.com>
566
567	* cupshelpers/cupshelpers.py (Device.__cmp__): Sort usb devices
568	before hal devices (trac #109).
569
5702008-11-19  Tim Waugh  <twaugh@redhat.com>
571
572	* authconn.py (Connection._perform_authentication): If we get
573	IPP_FORBIDDEN, switch to asking for the root password.
574
5752008-11-19  Tim Waugh  <twaugh@redhat.com>
576
577	* system-config-printer.py (NewPrinterGUI.getNPPPD): Localize the
578	PPD.
579	(NewPrinterGUI.on_btnNPApply_clicked): Likewise.
580	* cupshelpers/cupshelpers.py (Printer.getPPD): Likewise.
581
5822008-11-19  Tim Waugh  <twaugh@redhat.com>
583
584	* glade/ConnectDialog.glade: Pressing Return in the Connect
585	dialog activates the Connect... button.
586
5872008-11-18  Tim Waugh  <twaugh@redhat.com>
588
589	* cupshelpers/ppds.py
590	(PPDs.orderPPDNamesByPreference.sort_ppdnames.is_C_locale): Catch
591	exceptions when examining file names (Ubuntu #299074).
592
5932008-11-13  Tim Waugh  <twaugh@redhat.com>
594
595	* system-config-printer.py (NewPrinterGUI.init): Fetch PPDs in a
596	background thread, again.
597
5982008-11-13  Tim Waugh  <twaugh@redhat.com>
599
600	* monitor.py (Monitor.cleanup): Remove any pending timers.
601
6022008-11-13  Tim Waugh  <twaugh@redhat.com>
603
604	* authconn.py (Connection._authloop): Remember the distinction
605	between a canceled dialog and an authentication we've given up
606	on.
607	* errordialogs.py (show_IPP_Error): Only show IPP error dialog for
608	errors not caused by a canceled authentication dialog.
609
6102008-11-12  Tim Waugh  <twaugh@redhat.com>
611
612	* system-config-printer.py (NewPrinterGUI.queryDevices,
613	NewPrinterGUI.getDevices_thread): Removed.
614	(NewPrinterGUI.fetchDevices): Run in the main thread instead of
615	starting a new one.  This is necessary because the default
616	configuration of CUPS 1.4 is to require an authenticated system
617	user, and to do that we may need to present an authentication
618	dialog.
619	* PhysicalDevice.py (PhysicalDevice): Use authconn.Connection in
620	case we need to present an authentication dialog.
621	* troubleshoot/DeviceListed.py (DeviceListed.display): Likewise.
622
6232008-11-07  Tim Waugh  <twaugh@redhat.com>
624
625	* authconn.py (Connection._perform_authentication): Grab keyboard
626	and mouse when showing authentication dialog.
627	* pysmb.py (AuthContext.perform_authentication): Likewise.
628	* jobviewer.py (JobViewer.display_auth_info_dialog): Likewise.
629	(JobViewer.auth_info_dialog_response): Ungrab them.
630
6312008-11-07  Tim Waugh  <twaugh@redhat.com>
632
633	* jobviewer.py (JobViewer.auth_info_dialog_response): Don't leak
634	AuthDialog.
635
6362008-11-06  Tim Waugh  <twaugh@redhat.com>
637
638	* troubleshoot/CheckNetworkServerSanity.py
639	(CheckNetworkServerSanity.display): Use strictly correct smb URI.
640
6412008-11-06  Tim Waugh  <twaugh@redhat.com>
642
643	* system-config-printer.py
644	(NewPrinterGUI.on_tvNPDownloadableDrivers_cursor_changed): Fixed
645	traceback in downloadable driver dialog.
646
6472008-10-06  Till Kamppeter  <till.kamppeter@gmail.com>
648
649	* system-config-printer.py, glade/NewPrinterWindow.glade: Display
650	more driver info for downloadable drivers from OpenPrinting:
651	Manufacturer/third-party-supplied? Free software? Patent issues?
652	Recommended? Functionality, support contacts. The license text
653	will now always be shown if available, but the user will only
654	asked whether he accepts it in the case of a non-free license or
655	patentissues.
656
6572008-11-06  Tim Waugh  <twaugh@redhat.com>
658
659	* cupshelpers/cupshelpers.py (Printer.setAsDefault): Removed
660	old reconnect call which caused a traceback.  Return a boolean
661	indicating whether reconnection is necessary.
662	* system-config-printer.py (GUI.set_default_printer): Reload only
663	if necessary.
664	(GUI.rename_printer): Likewise.
665
6662008-11-05  Tim Waugh  <twaugh@redhat.com>
667
668	* configure.in: Version 1.0.10.
669
6702008-11-06  Tim Waugh  <twaugh@redhat.com>
671
672	* system-config-printer.py (GUI.reconnect): Sleep before
673	reconnection attempt, not after.  The CUPS server doesn't
674	necessarily re-start immediately.
675
6762008-11-05  Tim Waugh  <twaugh@redhat.com>
677
678	* troubleshoot/CheckNetworkServerSanity.py
679	(CheckNetworkServerSanity.display): Prevent traceback.
680
6812008-11-05  Tim Waugh  <twaugh@redhat.com>
682
683	* troubleshoot/CheckPPDSanity.py: Use gpk-install-package-name
684	instead of system-install-packages.
685
6862008-11-05  Tim Waugh  <twaugh@redhat.com>
687
688	* applet.py (NewPrinterNotification): Use gpk-install-package-name
689	instead of system-install-packages.
690	* system-config-printer.py (NewPrinterGUI.checkDriverExists):
691	Likewise.
692
6932008-11-04  Tim Waugh  <twaugh@redhat.com>
694
695	* system-config-printer.py (GUI.__init__): Don't set the
696	IconView's item_width as that causes problem.  Set the column and
697	row spacing instead.
698
6992008-11-04  Tim Waugh  <twaugh@redhat.com>
700
701	* monitor.py (Monitor.fetch_jobs): Apply specific_dests filter to
702	fetched jobs.
703
7042008-11-04  Tim Waugh  <twaugh@redhat.com>
705
706	* monitor.py (Monitor.update_connecting_devices): Only call
707	still_connecting once, not repeatedly.
708
7092008-11-04  Tim Waugh  <twaugh@redhat.com>
710
711	* monitor.py (Monitor.get_notifications): Prevent timer callbacks
712	while we handle client callbacks.
713	(Monitor.refresh): Likewise.
714
7152008-11-04  Tim Waugh  <twaugh@redhat.com>
716
717	* monitor.py (Monitor.refresh): Reverted recent change inverting
718	order of calls.  The current_printers_and_jobs callback must be
719	called first.
720	(Monitor.set_process_pending): Control whether pending events may
721	be processed.
722	(Monitor.__init__): Initially they can.
723	(Monitor.check_still_connecting): Defer timer callback if pending
724	events are held.
725	(Monitor.get_notifications): Likewise.
726	(Monitor.fetch_jobs): Skip callback if events are held.
727
7282008-11-03  Tim Waugh  <twaugh@redhat.com>
729
730	* jobviewer.py (JobViewer.current_printers_and_jobs): Don't
731	process pending events while processing new jobs list.
732
7332008-11-03  Tim Waugh  <twaugh@redhat.com>
734
735	* jobviewer.py (JobViewer.set_process_pending): Control whether
736	pending events may be processed.
737	(JobViewer.__init__): Initially they can.
738	(JobViewer.set_statusicon_visibility): Only process pending events
739	if allowed to.
740
7412008-11-03  Tim Waugh  <twaugh@redhat.com>
742
743	* jobviewer.py (JobViewer.update_job): Make sure the notification
744	is still valid after letting the status icon show itself.
745	(JobViewer.on_auth_notification_closed): Mark notification as
746	closed.
747	(JobViewer.job_removed): Likewise.
748
7492008-11-03  Tim Waugh  <twaugh@redhat.com>
750
751	* glade/statusicon_popupmenu.glade: Added a 'Configure Printers'
752	entry to the pop-up menu.
753	* jobviewer.py (JobViewer.on_icon_configure_printers_activate):
754	New method.  Launch system-config-printer.
755	(JobViewer.poll_subprocess): New method.  Collect exit status.
756	Fixes trac #96.
757
7582008-11-03  Tim Waugh  <twaugh@redhat.com>
759
760	* jobviewer.py (JobViewer.update_job): Restored compatibility code
761	for pycups < 1.9.40 when connecting to CUPS and requesting
762	specific job attributes.
763
7642008-11-03  Tim Waugh  <twaugh@redhat.com>
765
766	* jobviewer.py (JobViewer.cleanup): Close open notifications on
767	exit (trac #106).
768
7692008-11-03  Tim Waugh  <twaugh@redhat.com>
770
771	* monitor.py (Monitor.refresh): Fixed race condition causing stale
772	jobs (trac #107).
773
7742008-11-03  Tim Waugh  <twaugh@redhat.com>
775
776	* jobviewer.py (JobViewer.update_job): Already set status icon
777	visibility here.
778
7792008-11-02  Tim Waugh  <twaugh@redhat.com>
780
781	* monitor.py (Monitor.fetch_jobs): Better logic for job trimming.
782
7832008-10-31  Tim Waugh  <twaugh@redhat.com>
784
785	* jobviewer.py (JobViewer.current_printers_and_jobs): Better
786	debugging.
787	(JobViewer.job_event): Likewise.
788
7892008-10-31  Tim Waugh  <twaugh@redhat.com>
790
791	* jobviewer.py (JobViewer.job_event): Remove job-hold-until from
792	provided job data unless it was also provided as part of the
793	notification.  Call update_job earlier to make sure all required
794	attributes are present.
795
7962008-10-31  Tim Waugh  <twaugh@redhat.com>
797
798	* jobviewer.py (JobViewer.add_job): Use iter while it's fresh.
799
8002008-10-31  Tim Waugh  <twaugh@redhat.com>
801
802	* jobviewer.py (JobViewer.update_job): Delete auth notification
803	after closing it, otherwise we'll never show the notification for
804	this job again.
805
8062008-10-31  Tim Waugh  <twaugh@redhat.com>
807
808	* jobviewer.py (JobViewer.set_statusicon_visibility): Let the icon
809	show/hide itself before continuing.
810	(JobViewer.notify_new_printer): No longer need to do that here.
811	(JobViewer.notify_printer_state_reason): Likewise.
812
8132008-10-31  Tim Waugh  <twaugh@redhat.com>
814
815	* jobviewer.py (JobViewer.update_job): Set status icon visibility
816	before making auth notification visible.
817
8182008-10-31  Tim Waugh  <twaugh@redhat.com>
819
820	* jobviewer.py (JobViewer.add_job): Moved fetch of required job
821	attributes...
822	(JobViewer.update_job): ...here so that job event handling has
823	access to all the attributes it requires.
824
8252008-10-31  Tim Waugh  <twaugh@redhat.com>
826
827	* jobviewer.py (JobViewer.set_statusicon_visibility): Count auth
828	notifications as reasons to keep the status icon visible.
829
8302008-10-31  Tim Waugh  <twaugh@redhat.com>
831
832	* jobviewer.py (JobViewer.job_removed): Close outstanding auth
833	notifications when the job is removed.
834
8352008-10-31  Tim Waugh  <twaugh@redhat.com>
836
837	* monitor.py (Monitor.fetch_jobs): Trim the remaining jobs after
838	the last job is returned.
839
8402008-10-29  Tim Waugh  <twaugh@redhat.com>
841
842	* jobviewer.py (JobViewer.on_state_reason_notification_closed):
843	Set 'closed' data for notification instead of removing the object
844	from the state_reason_notifications dict.
845	(JobViewer.set_statusicon_visibility): Skip closed notifications
846	when counting how many open notifications there are.
847	(JobViewer.notify_printer_state_reason): No need to set
848	'printer-state-reason' data on object any more.
849	(JobViewer.state_reason_removed): Don't try closing notification
850	if it was already closed.  Remove the notification from the
851	state_reasons_notification dict now that the reason is cleared.
852	Adjust statusicon visibility appropriately.
853
8542008-10-29  Tim Waugh  <twaugh@redhat.com>
855
856	* my-default-printer.py (Dialog.__init__): Set default window icon
857	(Ubuntu #290469).
858
8592008-10-28  Tim Waugh  <twaugh@redhat.com>
860
861	* jobviewer.py (JobViewer.current_printers_and_jobs): Moved fetch
862	of required job attributes...
863	* jobviewer.py (JobViewer.add_job): ...here.  This is needed
864	because all jobs are added via add_job now, even pre-existing
865	ones.
866
8672008-10-28  Tim Waugh  <twaugh@redhat.com>
868
869	* system-config-printer.py (GUI.__init__): Set up policy
870	comboboxes to separate IPP string from its presentable value.
871	(GUI.on_printer_changed): Updated.
872	(GUI.save_printer): Likewise.
873	(GUI.fillComboBox): Likewise.
874
8752008-10-28  Tim Waugh  <twaugh@redhat.com>
876
877	* ppdippstr.py: New module holding translations for common IPP and
878	PPD strings (trac #103).
879	* Makefile.am (nobase_pkgdata_DATA): Ship it.
880	* po/POTFILES.in: Translate it.
881	* optionwidgets.py (OptionBool.__init__, OptionPickOne.__init__):
882	Use it to translate PPD option names and values.
883	* system-config-printer.py (GUI.fillComboBox): Use it to translate
884	job sheet, printer operation and printer error policies.
885	(GUI.fillPrinterOptions): Use it to translate PPD group names.
886
8872008-10-17  Tim Waugh  <twaugh@redhat.com>
888
889	* jobviewer.py (JobViewer.get_icon_pixbuf): Use printer-printing
890	icon when appropriate (trac #86).
891
8922008-10-16  Tim Waugh  <twaugh@redhat.com>
893
894	* system-config-printer.py (GUI.save_printer): Prevent traceback
895	when printer has been deleted.
896	* system-config-printer.py (GUI.populateList): Cancel properties
897	dialog if the printer we're editing has been deleted.
898	Fixes Ubuntu #284444.
899
9002008-10-16  Tim Waugh  <twaugh@redhat.com>
901
902	* system-config-printer.py (GUI.__init__): Set the item width for
903	the icon view, for a nicer appearance.
904
9052008-10-16  Tim Waugh  <twaugh@redhat.com>
906
907	* debug.py (debugprint): Send debug output to stderr to work
908	around the samba bug (#5805) that closes stdout.
909
9102008-10-16  Tim Waugh  <twaugh@redhat.com>
911
912	* pysmb.py (AuthContext.perform_authentication): Fixed the SMB
913	authentication dialog's cancel button (bug #467127).
914
9152008-10-15  Tim Waugh  <twaugh@redhat.com>
916
917	* pysmb.py (AuthContext.perform_authentication): Don't destroy
918	authentication dialog until after we've fetched the details (bug
919	#464003).
920
9212008-10-15  Tim Waugh  <twaugh@redhat.com>
922
923	* pysmb.py: Import gettext.
924
9252008-10-15  Tim Waugh  <twaugh@redhat.com>
926
927	* smburi.py (SMBURI._construct): Don't construct URIs containing
928	"@/".
929
9302008-10-15  Tim Waugh  <twaugh@redhat.com>
931
932	* cupshelpers/ppds.py (PPDs.getInfoFromModel): Restrict URI in
933	debugging output.
934
9352008-10-15  Tim Waugh  <twaugh@redhat.com>
936
937	* pysmb.py (AuthContext.perform_authentication): Show an error
938	dialog if the password was incorrect (bug #465407).
939	* po/POTFILES.in: Translate pysmb.py (no new translatable
940	strings).
941
9422008-10-15  Tim Waugh  <twaugh@redhat.com>
943
944	* system-config-printer.py
945	(NewPrinterGUI.on_btnSMBVerify_clicked): Don't show an error
946	dialog if the SMB authentication dialog is cancelled by the
947	user (bug #465407).
948
9492008-10-15  Tim Waugh  <twaugh@redhat.com>
950
951	* print-applet.desktop.in (NotShowIn): Don't show the applet in
952	KDE, as that provides its own version (bug #466945).
953
9542008-10-10  Tim Waugh  <twaugh@redhat.com>
955
956	* system-config-printer.py
957	(GUI.__init__.UnobtrusiveButton.__init__): Don't use a LinkButton
958	for the 'Problems?' button (bug #465407).
959
9602008-10-10  Tim Waugh  <twaugh@redhat.com>
961
962	* glade/PrinterPropertiesDialog.glade: Don't set non-zero page
963	size for SpinButtons.
964
9652008-10-10  Tim Waugh  <twaugh@redhat.com>
966
967	* errordialogs.py (show_IPP_Error): Don't show an error dialog if
968	an IPP operation's authentication dialog is cancelled by the
969	user (bug #465407).
970	* authconn.py: Show an error dialog if the password was
971	incorrect (bug #465407).
972
9732008-10-09  Till Kamppeter  <till.kamppeter@gmail.com>
974
975	* system-config-printer.py: Use message "Searching for
976	downloadable drivers" in the wait window when polling OpenPrinting
977	database vis Jockey.
978
9792008-10-09  Tim Waugh  <twaugh@redhat.com>
980
981	* system-config-printer.glade: Renamed server_settings to
982	server_settings_menu_entry to avoid naming collision.
983	* system-config-printer.py (GUI.setConnected): Set Server
984	Settings... menu entry sensitive depending on whether we are
985	connected to a server (Ubuntu #280736).
986
9872008-09-26  Tim Waugh  <twaugh@redhat.com>
988
989	* system-config-printer.py (NewPrinterGUI.fetchJockeyDriver):
990	Make this translatable string the same as another to avoid
991	breaking the Fedora string freeze.
992
9932008-09-25  Till Kamppeter  <till.kamppeter@gmail.com>
994
995	* applet.py, cupshelpers/ppds.py, system-config-printer.py: Added
996	support for automatic printer driver download from OpenPrinting
997	via Jockey. If no exactly matching driver for a new printer is
998	found, Jockey is asked for a driver via D-Bus. If Jockey actually
999	downloads a driver this way, the PPD list is rebuilt and if one of
1000	the new PPDs installed by the driver package matches the printer,
1001	it is suggested with priority.
1002
1003	If hal-cups-utils reports a newly generated queue with a driver
1004	which does not match exactly, we capture the device ID now so that
1005	we can ask Jockey.
1006
1007	If Jockey is not installed or too old, the Jockey queries fail
1008	gracefully and a locally installed driver is chosen.
1009
1010	* cupshelpers/openprinting.py: When querying a driver entry from the
1011	OpenPrinting database, add also the fields
1012         - thirdpartysupplied
1013         - manufacturersupplied
1014         - supportcontacts
1015	to the data structure (Ubuntu #269454).
1016
10172008-09-08  Tim Waugh  <twaugh@redhat.com>
1018
1019	* system-config-printer.py (GUI.server_settings_response): If the
1020	advanced server settings dialog raises an exception, catch it
1021	(Ubuntu #267557).
1022
10232008-09-03  Tim Waugh  <twaugh@redhat.com>
1024
1025	* cupshelpers/ppds.py (PPDs.getInfoFromModel): Try 'Lexmark'
1026	instead of 'Lexmark International' when matching.
1027
10282008-09-03  Tim Waugh  <twaugh@redhat.com>
1029
1030	* cupshelpers/ppds.py (_self_test): Fixed testing for a specific
1031	IEEE 1284 Device ID.
1032
10332008-09-01  Tim Waugh  <twaugh@redhat.com>
1034
1035	* glade/NewPrinterWindow.glade: Avoid display problem with
1036	installable options.  We now have a label where the options table
1037	will go, rather than starting the vbox empty.
1038
10392008-09-01  Tim Waugh  <twaugh@redhat.com>
1040
1041	* system-config-printer.py (NewPrinterGUI.nextNPTab): Use
1042	modelName string from custom PPD file to suggest name for new
1043	queue if no Device ID is available (trac #97).
1044
10452008-09-01  Tim Waugh  <twaugh@redhat.com>
1046
1047	* system-config-printer.py (NewPrinterGUI.nextNPTab): Rearranged
1048	code for suggesting an appropriate name for a new printer.
1049
10502008-08-30  Tim Waugh  <twaugh@redhat.com>
1051
1052	* authconn.py (Connection._authloop): Handle IPP_FORBIDDEN (bug
1053	#460670).
1054
10552008-08-30  Tim Waugh  <twaugh@redhat.com>
1056
1057	* GroupsPane.py (GroupsPane.on_group_name_edited): Fixed
1058	translatable string.
1059	(GroupsPane.delete_selected_group): Likewise.
1060
1061	* GroupsPaneModel.py (FavouritesItem.__init__): Use US spelling
1062	here, ready for translation.
1063
10642008-08-30  Tim Waugh  <twaugh@redhat.com>
1065
1066	* po/POTFILES.in: Translate GroupsPane.py, GroupsPaneModel.py
1067	and ToolbarSearchEntry.py.
1068	* Makefile.am: Ship them.
1069	* Makefile.am: Ship HIG.py, SearchCriterion.py and
1070	XmlHelper.py.
1071
10722008-08-29  Tim Waugh  <twaugh@redhat.com>
1073
1074	* system-config-printer.py: Require pycups >= 1.9.42.
1075
1076	* AdvancedServerSettings.py
1077	(AdvancedServerSettingsDialog.on_response): Removed legacy pycups
1078	code.
1079
1080	* applet.py (any_jobs): Removed legacy pycups code.
1081
1082	* monitor.py (Monitor.fetch_jobs): Removed legacy pycups code.
1083	(Monitor.fetch_jobs): Likewise.
1084
1085	* jobviewer.py (JobViewer.current_printers_and_jobs): Removed
1086	legacy pycups code.
1087	(JobViewer.job_event): Likewise.
1088
10892008-08-28  Tim Waugh  <twaugh@redhat.com>
1090
1091	* monitor.py (Monitor.refresh): New parameter refresh_all.
1092	(Monitor.fetch_jobs): Skip over jobs we already know about unless
1093	refresh_all is True.
1094
1095	* jobviewer.py (JobViewer.on_show_completed_jobs_activate): Don't
1096	refresh all jobs, just completed ones.
1097
10982008-08-28  Tim Waugh  <twaugh@redhat.com>
1099
1100	* monitor.py (Monitor.get_notifications): Don't call job_removed
1101	if we are interested in completed jobs.
1102
11032008-08-28  Tim Waugh  <twaugh@redhat.com>
1104
1105	* jobviewer.py (JobViewer.current_printers_and_jobs): Only fetch
1106	missing job attributes we require.
1107	(JobViewer.job_event): Likewise.
1108
11092008-08-27  Tim Waugh  <twaugh@redhat.com>
1110
1111	* system-config-printer.py (NewPrinterGUI.setNPButtons): Hide Back
1112	button on first page of New Class dialog.
1113
11142008-08-28  Tim Waugh  <twaugh@redhat.com>
1115
1116	* monitor.py (Monitor.fetch_jobs): Fixed bad merge.  The old
1117	update() method is now called update_jobs().
1118
11192008-08-26  Tim Waugh  <twaugh@redhat.com>
1120
1121	* monitor.py (Monitor.fetch_jobs): Handle job fetching in parts on
1122	a timer (trac #93).
1123	(Monitor.refresh): Start timer.
1124
11252008-08-26  Tim Waugh  <twaugh@redhat.com>
1126
1127	* monitor.py (Monitor.refresh): Allow which_jobs to be specified
1128	when refreshing.
1129	* jobviewer.py (JobViewer.on_show_completed_jobs_activate): Give
1130	new which_jobs value to monitor.refresh().
1131
11322008-08-26  Tim Waugh  <twaugh@redhat.com>
1133
1134	* jobviewer.py (JobViewer.add_job): Efficiency improvement.
1135
11362008-08-26  Tim Waugh  <twaugh@redhat.com>
1137
1138	* jobviewer.py (JobViewer.__init__): Removed self.which_jobs as
1139	not used.
1140
11412008-08-26  Tim Waugh  <twaugh@redhat.com>
1142
1143	* applet.py: Catch exceptions when printing non-fatal messages to
1144	stderr.
1145
11462008-08-23  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1147
1148	* system-config-printer.py (GUI.on_delete_activate): HIG
1149	fixes. Only delete printers if we really have a positive
1150	response.
1151
11522008-08-23  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1153
1154	* system-config-printer.py (GUI.dests_iconview_key_press_event):
1155	Handle "standard" key shortcuts to delete and rename printers.
1156
11572008-08-22  Tim Waugh  <twaugh@redhat.com>
1158
1159	* monitor.py (Monitor.get_notifications): Handle job completion
1160	when the state changes to 'completed'; don't wait for the
1161	job-completed event.
1162
11632008-08-22  Tim Waugh  <twaugh@redhat.com>
1164
1165	* monitor.py (Monitor.refresh): Don't request job-progress
1166	events.
1167
11682008-08-22  Tim Waugh  <twaugh@redhat.com>
1169
1170	* monitor.py (Monitor.check_state_reasons): Efficiency
1171	improvement when not running in debug mode.
1172	(Monitor.get_notifications): Likewise.
1173
11742008-08-22  Tim Waugh  <twaugh@redhat.com>
1175
1176	* applet.py (show_version.any_jobs): Don't fetch all jobs to see
1177	if there are jobs; just one is sufficient (trac #92).
1178
11792008-08-22  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1180
1181	* GroupsPane.py (GroupsPane.__init__):
1182	* GroupsPane.py (GroupsPane.on_drag_*):
1183	* system-config-printer.py (GUI.__init__):
1184	* system-config-printer.py (GUI.dests_iconview_drag_data_get):
1185	Uncomment and rework the DnD signal handlers to finally provide
1186	working DnD from the icon view to a static icon group.
1187
11882008-08-22  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1189
1190	* GroupsPane.py (GroupsPane.n_groups): New method to get the
1191	number of groups.
1192	* system-config-printer.py (GUI.__init__): Use it instead of
1193	checking only the static groups to decide about wether the groups
1194	pane should start visible.
1195
11962008-08-21  Tim Waugh  <twaugh@redhat.com>
1197
1198	* system-config-printer.py (GUI.__init__): Don't set View
1199	Discovered Printers menu item insensitive.
1200	(GUI.populateList): Filter out discovered printers if necessary.
1201	(GUI.on_view_discovered_printers_activate): New method.  Redraw
1202	the printer list when View Discovered Printers is changed.
1203	Fixes trac #15.
1204
12052008-08-21  Tim Waugh  <twaugh@redhat.com>
1206
1207	* system-config-printer.py (NewPrinterGUI.init): No need to start
1208	a devices query here.
1209
12102008-08-21  Tim Waugh  <twaugh@redhat.com>
1211
1212	* system-config-printer.py (NewPrinterGUI.init): No need to load
1213	PPDs while changing the device.
1214
12152008-08-21  Tim Waugh  <twaugh@redhat.com>
1216
1217	* system-config-printer.py (NewPrinterGUI.init): No need to load
1218	PPDs before changing the device.
1219
12202008-08-21  Tim Waugh  <twaugh@redhat.com>
1221
1222	* system-config-printer.py (NewPrinterGUI.fillDeviceTab): Merge
1223	current device into detected physical device if possible.
1224
12252008-08-21  Tim Waugh  <twaugh@redhat.com>
1226
1227	* system-config-printer.py (NewPrinterGUI.setNPButtons): Avoid
1228	traceback when no device has been selected yet.
1229
12302008-08-21  Tim Waugh  <twaugh@redhat.com>
1231
1232	* system-config-printer.py (NewPrinterGUI.fetchDevices): Cache
1233	device list (trac #36).
1234
12352008-08-21  Tim Waugh  <twaugh@redhat.com>
1236
1237	* system-config-printer.py (NewPrinterGUI.fillDeviceTab): Cache
1238	device list (trac #36).
1239
12402008-08-18  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1241
1242	* XmlHelper.py (XmlHelper): Remove 'ospm' from the filename of the
1243	xml printer group file.
1244
12452008-08-18  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1246
1247	* GroupsPane.py (GroupsPane.on_group_name_edited): Use
1248	gtk.BUTTONS_OK instead of gtk.BUTTONS_CLOSE to comply with HIG.
1249
12502008-08-12  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1251
1252	* GroupsPane.py (GroupsPane.__init__): Load search groups from the
1253	xml file.
1254	* GroupsPane.py (GroupsPane._create_new_group_common): Share some
1255	code between...
1256	* GroupsPane.py (GroupsPane.create_new_search_group): ... this new
1257	method...
1258	* GroupsPane.py (GroupsPane.create_new_group): ... and this one.
1259	* GroupsPaneModel.py (SavedSearchGroupItem.__init__): Implemented
1260	search group saving and loading from xml.
1261	* SearchCriterion.py (SearchCriterion): New class with the
1262	necessary definitions to put in the search group xml serialization
1263	and be compatible with Project Presto's ospm.
1264	* XmlHelper.py (XmlHelper.get_search_groups): New method.
1265	* system-config-printer.py (GUI.__init__): Added a search entry
1266	popdown menu item to save a search group.
1267	* system-config-printer.py (GUI.on_search_entry_search): Set the
1268	previous menu item sensitivity.
1269	* system-config-printer.py (GUI.on_groups_pane_item_activated):
1270	Clear the search entry when changing groups and fill the search
1271	entry when a search group has been selected.
1272	* system-config-printer.py (GUI.populateList): Handle search
1273	groups like AllPrinters since it's only the filtering that makes
1274	the difference.
1275	* system-config-printer.py (GUI.on_save_as_search_group_activate):
1276	New method.
1277
12782008-08-10  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1279
1280	* system-config-printer.py (GUI.__init__):
1281	* system-config-printer.py (GUI.on_filter_criterion_changed):
1282	* system-config-printer.py (GUI.populateList): Add UI and code to
1283	filter printers by name, description/location or
1284	manufacturer/model.
1285
12862008-08-01  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1287
1288	* GroupsPane.py (GroupsPane.on_new_group_activate):
1289	* GroupsPane.py (GroupsPane.on_new_group_from_selection_activate):
1290	Redefine these methods in terms of...
1291	* GroupsPane.py (GroupsPane.create_new_group): ... this new, more
1292	general, one.
1293	* ToolbarSearchEntry.py (ToolbarSearchEntry.__init__): Create a
1294	clickable icon to drop a menu.
1295	* ToolbarSearchEntry.py (ToolbarSearchEntry.set_drop_down_menu):
1296	New method to set the drop down menu.
1297	* ToolbarSearchEntry.py (ToolbarSearchEntry.on_icon_pressed): New
1298	method to show the menu.
1299	* system-config-printer.py (GUI.__init__): New action to save the
1300	filtered printer queues as a static group. Also, create and set the
1301	search entry drop down menu.
1302	* system-config-printer.py (GUI.on_search_entry_search): Set the
1303	save-as-group action sensitivity.
1304	* system-config-printer.py (GUI.on_save_as_group_activate): Save
1305	the currently displayed printer queues as a static group.
1306
13072008-07-30  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1308
1309	* system-config-printer.py (GUI.populateList): Remove no longer
1310	existing printer queues from the currently selected static
1311	group. It seems the cleanliest way to do this, even if a bit too
1312	lazy. Both the user removing the printer in All Printers and the
1313	auto discovered printers going away should be covered.
1314	Also, reverted these points from commit
1315	7e7cf4188fc790f705c3e837e1ef69699133b145:
1316
1317		* system-config-printer.py (GUI.populateList): Use an
1318		unreadable emblem on printer icons for queues which are no
1319		longer available.
1320		* system-config-printer.py (GUI): Protect several
1321		potential NoneType object accesses. Certainly there are a
1322		lot more.
1323
1324	since they are no longer needed with this change.
1325
13262008-07-28  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1327
1328	* GroupsPaneModel.py (GroupsPaneModel.get): This function can be
1329	used with either a TreeIter or a path thanks to the gtk.ListStore
1330	implementors. Use this function all over GroupsPane.py where it
1331	saves us from doing path-to-iter and iter-to-path conversions.
1332
13332008-07-27  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1334
1335	* GroupsPaneModel.py (StaticGroupItem.add_queues): Removed bogus
1336	code to check if a static group xml node has a child called
1337	"queues". We make sure that always happens anyway. Better error
1338	handling for the XML handling code can be done later.
1339	* GroupsPaneModel.py (StaticGroupItem.remove_queues): New method.
1340	* system-config-printer.py (GUI.populateList): Change the
1341	delete-printer action's label to "Remove from Group" when a static
1342	group is active.
1343	* system-config-printer.py (GUI.delete_selected_printer_queues):
1344	New method with the old contents of...
1345	* system-config-printer.py (GUI.on_delete_activate): ...this. Now
1346	this method handles the remove from static group case and calls
1347	the previously mentioned one when in the All Printers view.
1348
13492008-07-26  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1350
1351	* GroupsPane.py (GroupsPane): New signal "items-changed".
1352	* GroupsPane.py (GroupsPane.on_group_name_edited):
1353	* GroupsPane.py (GroupsPane.on_delete_selected_group_response):
1354	* GroupsPane.py (GroupsPane.on_new_group_activate):
1355	* GroupsPane.py (GroupsPane.on_new_group_from_selection_activate):
1356	Emit it.
1357	* GroupsPane.py (GroupsPane.get_static_groups): New method.
1358	* system-config-printer.py (GUI.__init__): New action "add-to-group".
1359	* system-config-printer.py
1360	(GUI.on_add_to_group_menu_item_activate): Add selected
1361	printer queues to a group.
1362	* system-config-printer.py (GUI.update_add_to_group_menu): Build
1363	the add-to-group submenu.
1364	* system-config-printer.py (GUI.on_groups_pane_items_changed):
1365	Handle group items changes.
1366
13672008-07-17  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1368
1369	* GroupsPane.py (GroupsPane.__init__): Build the groups menu on
1370	__init__().
1371	* system-config-printer.py (GUI.__init__): Use the groups popup
1372	menu as the menubar's Group menu.
1373
13742008-08-21  Tim Waugh  <twaugh@redhat.com>
1375
1376	* system-config-printer.glade: New expander in the New Printer
1377	dialog on the Select Device page, for selecting a connection.
1378	* system-config-printer.py
1379	(NewPrinterGUI.on_tvNPDeviceURIs_cursor_changed): New method.
1380	Update the description depending on the selected connection.
1381	(NewPrinterGUI.on_expNPDeviceURIs_expanded): New method.  Adjust
1382	the expander's packing depending on its expanded state.
1383
13842008-08-21  Tim Waugh  <twaugh@redhat.com>
1385
1386	* system-config-printer.py (NewPrinterGUI.fillDeviceTab): Let the
1387	PhysicalDevice class handle duplicate merging.
1388
13892008-08-21  Tim Waugh  <twaugh@redhat.com>
1390
1391	* PhysicalDevice.py: New module.
1392	* Makefile.am (nobase_pkgdata_DATA): Ship it.
1393
13942008-08-21  Tim Waugh  <twaugh@redhat.com>
1395
1396	* system-config-printer.py (NewPrinterGUI.fillDeviceTab): More
1397	efficient algorithm for deleting duplicates.
1398
13992008-08-21  Tim Waugh  <twaugh@redhat.com>
1400
1401	* cupshelpers/ppds.py (ppdMakeModelSplit): The canonical name for
1402	Hewlett-Packard is HP.
1403
14042008-08-21  Tim Waugh  <twaugh@redhat.com>
1405
1406	* Makefile.am (nobase_pkgdata_DATA): Ship Locale troubleshooter
1407	module (Ubuntu #259926).
1408
14092008-08-20  Tim Waugh  <twaugh@redhat.com>
1410
1411	* glade/NewPrinterWindow.glade: Better layout for the new printer
1412	dialog.
1413
14142008-08-17  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1415
1416	* authconn.py (Connection._perform_authentication): Destroy the
1417	AuthDialog after run() since a new one is always created. Handle
1418	response == gtk.RESPONSE_DELETE_EVENT as gtk.RESPONSE_CANCEL.
1419
14202008-08-19  Tim Waugh  <twaugh@redhat.com>
1421
1422	* pysmb.py (AuthContext.perform_authentication): Destroy this
1423	dialog instead of hiding it.
1424
14252008-08-19  Tim Waugh  <twaugh@redhat.com>
1426
1427	* errordialogs.py (show_dialog): Destroy these dialogs instead of
1428	hiding them.
1429
14302008-08-19  Tim Waugh  <twaugh@redhat.com>
1431
1432	* userdefault.py (UserDefaultPrompt.on_response): Destroy this
1433	dialog instead of hiding it so that we avoid leaking it.
1434
14352008-08-19  Tim Waugh  <twaugh@redhat.com>
1436
1437	* AdvancedServerSettings.py
1438	(AdvancedServerSettingsDialog.__del__): Destroy this dialog
1439	instead of hiding it so that we avoid leaking it.
1440
14412008-08-18  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1442
1443	* errordialogs.py (show_dialog): Use gtk.MessageDialog instead of
1444	gtk.Dialog as it saves us a lot of code and already complies with
1445	the HIG. Also, destroy the dialog after running it.
1446
14472008-08-18  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1448
1449	* system-config-printer.py (GUI.on_connect_activate): Make
1450	pressing Enter on the combo box's entry activate the default
1451	dialog widget.
1452
14532008-08-17  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1454
1455	* glade/ServerSettingsDialog.glade: Add border width. Remove
1456	resizable and has_separator properties. Add mnemonics to the
1457	check boxes' labels.
1458
14592008-08-17  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1460
1461	* authconn.py (Connection._perform_authentication): Destroy the
1462	AuthDialog after run() since a new one is always created. Handle
1463	response == gtk.RESPONSE_DELETE_EVENT as gtk.RESPONSE_CANCEL.
1464
14652008-08-17  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1466
1467	* glade/ConnectingDialog.glade: HIG fixes. Added a progress bar.
1468	* system-config-printer.py (GUI.__init__): The delete-event
1469	handler for ConnectingDialog must act as if the cancel button was
1470	pressed.
1471	* system-config-printer.py (GUI.on_connectingdialog_delete): New
1472	method to call the cancel button's click handler on delete-event
1473	and avoid dialog destruction.
1474	* system-config-printer.py (GUI.on_connect_activate): Changed
1475	lblConnecting to use a markup string. Call...
1476	* system-config-printer.py (GUI.update_connecting_pbar): ... this
1477	to update the progress bar.
1478
14792008-08-19  Till Kamppeter  <till.kamppeter@gmail.com>
1480
1481	* cupshelpers/ppds.py (ppdMakeModelSplit): Replace the
1482	manufacturer name "Okidata" by "Oki". Remove empty parentheses and
1483	trailing slashes from cleaned model names (they appear when "PS"
1484	or "PostScript") is removed from the names).
1485
14862008-08-18  Tim Waugh  <twaugh@redhat.com>
1487
1488	* jobviewer.py (JobViewer.__init__): Remember current host, port,
1489	encryption settings.
1490	(JobViewer.display_auth_info_dialog): Use them when making new
1491	connections.
1492	(JobViewer.auth_info_dialog_response): Likewise.
1493	(JobViewer.on_job_cancel_activate): Likewise.
1494	(JobViewer.on_job_hold_activate): Likewise.
1495	(JobViewer.on_job_release_activate): Likewise.
1496	(JobViewer.on_job_reprint_activate): Likewise.
1497	(JobViewer.current_printers_and_jobs): Likewise.
1498	(JobViewer.job_event): Likewise.
1499
15002008-08-18  Tim Waugh  <twaugh@redhat.com>
1501
1502	* jobviewer.py (JobViewer.on_job_cancel_activate): Ask user if
1503	they are sure they want to cancel the job.
1504	(JobViewer.on_job_cancel_prompt_delete): Handle delete-event for
1505	the dialog.
1506	(JobViewer.on_job_cancel_prompt_response): Handle response for the
1507	dialog.
1508
15092008-08-18  Tim Waugh  <twaugh@redhat.com>
1510
1511	* jobviewer.py (JobViewer.on_job_cancel_activate): Set current
1512	operation.
1513	(JobViewer.on_job_hold_activate): Likewise.
1514	(JobViewer.on_job_release_activate): Likewise.
1515
15162008-08-18  Tim Waugh  <twaugh@redhat.com>
1517
1518	* system-config-printer.py: Require pycups >= 1.9.40.
1519	(GUI.populateList): Removed pycups compatibility code.
1520	(GUI.connect): Likewise.
1521	(NewPrinterGUI.getPPDs_thread): Likewise.
1522	(NewPrinterGUI.nextNPTab): Likewise.
1523	(NewPrinterGUI.getDevices_thread): Likewise.
1524	(NewPrinterGUI.on_btnIPPVerify_clicked): Likewise.
1525	(NewPrinterGUI.browse_ipp_queues_thread): Likewise.
1526	(NewPrinterGUI.getNPPPD): Likewise.
1527
1528	* AdvancedServerSettings.py
1529	(AdvancedServerSettingsDialog.on_response): Removed pycups
1530	compatibility code for pycups < 1.9.40.
1531
1532	* my-default-printer.py (Server.getSystemDefault): Removed pycups
1533	compatibility code.
1534
1535	* monitor.py (collect_printer_state_reasons): Removed pycups
1536	compatibility code.
1537	(Monitor.cleanup): Likewise.
1538	(Monitor.get_notifications): Likewise.
1539	(Monitor.refresh): Likewise.
1540
1541	* authconn.py (Connection._connect): Removed pycups compatibility
1542	code.
1543
1544	* jobviewer.py (PrinterURIIndex.lookup): Removed pycups
1545	compatibility code.
1546	(JobViewer.display_auth_info_dialog): Likewise.
1547
15482008-08-18  Tim Waugh  <twaugh@redhat.com>
1549
1550	* system-config-printer.py (GUI.__init__): Initialise
1551	connect_encrypt.
1552
1553	* system-config-printer.py (GUI.connect): Use parameters to
1554	Connection() when possible.
1555	(GUI.on_btnPrintTestPage_clicked): Likewise.  Make sure to restore
1556	cups user.
1557	(NewPrinterGUI.getPPDs_thread): Use parameter to Connection() when
1558	possible.
1559	(NewPrinterGUI.nextNPTab): Likewise.
1560	(NewPrinterGUI.getDevices_thread): Likewise.
1561	(NewPrinterGUI.on_btnIPPVerify_clicked): Likewise.  Restore
1562	current server afterwards.
1563	(NewPrinterGUI.browse_ipp_queues_thread): Likewise.
1564
1565	* authconn.py (Connection.__init__): New parameters host, port,
1566	encryption.
1567	(Connection._connect): Use them.  Use parameters to Connection()
1568	when possible.
1569
1570	* monitor.py (Monitor.__init__): New parameters host, port,
1571	encryption.
1572	(Monitor.cleanup): Use them for new connections.  Use parameters
1573	to Connection() when possible.
1574	(Monitor.get_notifications): Likewise.
1575	(Monitor.refresh): Likewise.
1576
15772008-08-18  Tim Waugh  <twaugh@redhat.com>
1578
1579	* system-config-printer.py (GUI.save_printer): Allow caller to set
1580	parent window.
1581	(GUI.copy_printer): Set parent window so that error dialogs are
1582	transient for the main window.
1583
15842008-08-18  Tim Waugh  <twaugh@redhat.com>
1585
1586	* system-config-printer.py (GUI.save_printer): Set current
1587	operation.
1588	(GUI.set_default_printer): Likewise.
1589	(GUI.on_btnPrintTestPage_clicked): Likewise.
1590	(GUI.maintenance_command): Likewise.
1591	(GUI.copy_printer): Likewise.
1592	(GUI.rename_printer): Likewise.
1593	(GUI.on_delete_activate): Likewise.
1594	(GUI.on_enabled_activate): Likewise.
1595	(GUI.on_shared_activate): Likewise.
1596	(GUI.fillServerTab): Likewise.
1597	(GUI.save_serversettings): Likewise.
1598	(NewPrinterGUI.on_btnNPApply_clicked): Likewise.
1599
16002008-08-18  Tim Waugh  <twaugh@redhat.com>
1601
1602	* system-config-printer.py (GUI.populateList): Set current
1603	operation.
1604	(GUI.save_printer): Likewise.
1605
16062008-08-18  Tim Waugh  <twaugh@redhat.com>
1607
1608	* authconn.py (Connection._begin_operation): New method.
1609	(Connection._end_operation): New method.
1610	(Connection._perform_authentication): Display current operation in
1611	the dialog window title.
1612
16132008-08-18  Tim Waugh  <twaugh@redhat.com>
1614
1615	* jobviewer.py (JobViewer.display_auth_info_dialog): Fixed widget
1616	name.  JobsWindow was MainWindow in the branch this change was
1617	merged from.
1618	* system-config-printer.py (GUI.is_rename_possible): Fixed widget
1619	name.  PrintersWindow was MainWindow in the branch this change was
1620	merged from.
1621	(GUI.rename_printer): Likewise.
1622
16232008-08-18  Tim Waugh  <twaugh@redhat.com>
1624
1625	* system-config-printer.py (GUI.on_shared_activate): Handle IPP
1626	errors while setting shared status.
1627
16282008-08-18  Tim Waugh  <twaugh@redhat.com>
1629
1630	* system-config-printer.py (GUI.rename_printer): Handle IPP errors
1631	while setting original printer to reject jobs.
1632
16332008-08-15  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1634
1635	* glade/ConnectDialog.glade: Adjusted spacing. Removed
1636	separator. Changed cancel/connect button ordering. The
1637	GtkAlignment widgets aren't needed, removed. Added mnemonics to
1638	the labels.
1639
16402008-08-15  Tim Waugh  <twaugh@redhat.com>
1641
1642	* jobviewer.py (JobViewer.display_auth_info_dialog): Allow more
1643	than one authentication dialog at a time.
1644
16452008-08-15  Tim Waugh  <twaugh@redhat.com>
1646
1647	* jobviewer.py (JobViewer.current_printers_and_jobs): Reset jobs
1648	dict to keep it in synchronisation with the jobiters dict.  This
1649	prevents a traceback after releasing a held job.
1650
16512008-08-15  Tim Waugh  <twaugh@redhat.com>
1652
1653	* cupshelpers/cupshelpers.py (_PrintersConf.fetch): Clean up
1654	temporary file in case of error.
1655
16562008-08-15  Tim Waugh  <twaugh@redhat.com>
1657
1658	* jobviewer.py (JobViewer.auth_info_dialog_delete): Handle
1659	delete-event.
1660	(JobViewer.display_auth_info_dialog): Connect to signal.
1661
16622008-08-14  Tim Waugh  <twaugh@redhat.com>
1663
1664	* cupshelpers/openprinting.py
1665	(OpenPrinting.listDrivers.parse_result): OpenPrinting API change:
1666	freesoftware -> nonfreesoftware (trac #74).
1667	* system-config-printer.py
1668	(NewPrinterGUI.on_tvNPDownloadableDrivers_cursor_changed):
1669	Likewise.
1670
16712008-08-14  Tim Waugh  <twaugh@redhat.com>
1672
1673	* jobviewer.py (JobViewer.on_new_printer_notification_closed):
1674	Optional reason parameter to handle newer libnotify signal
1675	interface.
1676	(JobViewer.on_state_reason_notification_closed): Likewise.
1677	(JobViewer.on_auth_notification_closed): Likewise.
1678
16792008-08-14  Tim Waugh  <twaugh@redhat.com>
1680
1681	* jobviewer.py (JobViewer.update_job): Display a notification when
1682	a job requires authentication (trac #91).
1683	(JobViewer.on_auth_notification_authenticate): New method.
1684	Display an authentication dialog when the notification's
1685	authenticate action is triggered.
1686	(JobViewer.on_auth_notification_closed): New method.  Handle an
1687	auth notification being closed.
1688
16892008-08-14  Tim Waugh  <twaugh@redhat.com>
1690
1691	* jobviewer.py (JobViewer.update_job): Moved code for displaying
1692	authentication dialog...
1693	(JobViewer.display_auth_info_dialog): ...here.  New method.
1694
16952008-08-14  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1696
1697	* system-config-printer.py (GUI.__init__):
1698	* system-config-printer.py (NewPrinterGUI.__init__): Since some
1699	dialogs are reused we can't let the delete-event's default handler
1700	destroy them.
1701	* system-config-printer.py (on_delete_just_hide): This method is
1702	connected to those dialog's delete-event (trac #88).
1703
17042008-08-14  Tim Waugh  <twaugh@redhat.com>
1705
1706	* jobviewer.py (JobViewer.update_job): When a job is held for
1707	authentication, say so in the status column.
1708
17092008-08-14  Tim Waugh  <twaugh@redhat.com>
1710
1711	* jobviewer.py (JobViewer.update_job): Show authentication dialog
1712	in the middle of the screen (trac #90).
1713
17142008-08-13  Tim Waugh  <twaugh@redhat.com>
1715
1716	* authconn.py (Connection._authloop): Re-bind to the named method
1717	on reconnection.  Handle HTTP_FORBIDDEN (trac #89).
1718	(Connection._failed): New optional parameter forbidden.  Remember
1719	whether we saw HTTP_FORBIDDEN.
1720	(Connection._perform_authentication): Initialise self._forbidden.
1721	Use it to decide whether to try as root.  Don't call setUser()
1722	here; _connect() will do that.
1723
17242008-08-12  Tim Waugh  <twaugh@redhat.com>
1725
1726	* jobviewer.py (JobViewer.update_job): Pre-fill the username field
1727	when asking for authentication for the job (trac #87).
1728
17292008-08-02  Tim Waugh  <twaugh@redhat.com>
1730
1731	* system-config-printer.py
1732	(NewPrinterGUI.openprinting_printers_found): Fix selection of
1733	printer model from query result.  We'd been using the index in the
1734	list before sorting instead of after sorting.
1735
17362008-08-01  Tim Waugh  <twaugh@redhat.com>
1737
1738	* system-config-printer.py (NewPrinterGUI.browse_smb_hosts): If
1739	the user has specified a URI before clicking Browse, add that
1740	server at the top-level and expand it (trac #66).
1741
17422008-08-01  Tim Waugh  <twaugh@redhat.com>
1743
1744	* smburi.py (SMBURI._construct): Construct minimal URI so that
1745	typing in a complete URI works without it becoming disrupted.
1746	(SMBURI.separate): If no hostname is present, use the empty string
1747	instead of 'localhost'.
1748
17492008-08-01  Tim Waugh  <twaugh@redhat.com>
1750
1751	* system-config-printer.py (GUI.is_rename_possible): New method to
1752	determine whether a rename can go ahead and display an error
1753	dialog if not.
1754	(GUI.rename_printer): Use it.
1755	(GUI.on_rename_activate): Likewise (trac #78).
1756
17572008-08-01  Tim Waugh  <twaugh@redhat.com>
1758
1759	* system-config-printer.py (GUI.rename_printer): Restore original
1760	accepting/rejecting state if copying the printer fails.
1761
17622008-08-01  Tim Waugh  <twaugh@redhat.com>
1763
1764	* system-config-printer.py (GUI.rename_printer): Fixed typo.
1765
17662008-08-01  Tim Waugh  <twaugh@redhat.com>
1767
1768	* system-config-printer.py (GUI.updatePrinterProperties): Include
1769	printer-state-message next to printer state, so that reasons such
1770	as 'unplugged or turned off' are shown when the printer is
1771	stopped (trac #85).
1772
17732008-07-31  Tim Waugh  <twaugh@redhat.com>
1774
1775	* system-config-printer.py (NewPrinterGUI.nextNPTab): Don't load
1776	PPDs if we are creating an explicit queue for a remote CUPS
1777	queue (trac #72).
1778
17792008-07-31  Tim Waugh  <twaugh@redhat.com>
1780
1781	* options.py (OptionAlwaysShown.get_widget_value): Prevent
1782	traceback when editing the text of a SpinButton widget (e.g. when
1783	the box is empty).
1784
17852008-07-31  Till Kamppeter  <till.kamppeter@gmail.com>
1786
1787	* options.py (get_widget_value): Work around broken get_value()
1788	method in gtk.SpinButton class of pygtk. get_value() does not
1789	return an updated value when only typing in the input field, it
1790	only gives the updated value when clicking the spin arrows or
1791	switching to another widget. This leads to the "Apply" button
1792	staying gray when typing into the input field of the
1793	spinbox. Replaced get_value() by the get_text() method inherited
1794	from gtk.Entry class to solve the problem (trac #83).
1795
1796	* ppds.py: Case-insensitive sorting of printer model list.
1797
17982008-07-29  Tim Waugh  <twaugh@redhat.com>
1799
1800	* system-config-printer.py (NewPrinterGUI.nextNPTab): Preserve
1801	server and port settings while fetching IPP attributes of remote
1802	printer.
1803
18042008-07-29  Tim Waugh  <twaugh@redhat.com>
1805
1806	* authconn.py (Connection.__init__): Note current settings for
1807	CUPS user, server and port.
1808	(Connection._connect): Reset user, server and port settings before
1809	connection (trac #79).
1810
18112008-07-29  Tim Waugh  <twaugh@redhat.com>
1812
1813	* system-config-printer.py (GUI.printer_properties_response):
1814	Re-read the PPD after applying changes (trac #76).
1815
18162008-07-29  Tim Waugh  <twaugh@redhat.com>
1817
1818	* jobviewer.py (JobViewer.on_job_cancel_activate): Ask the monitor
1819	to update after cancelling a job.
1820	(JobViewer.on_job_hold_activate): Likewise for held jobs.
1821	(JobViewer.on_job_release_activate): Likewise for released jobs.
1822	(JobViewer.on_job_reprint_activate): Likewise for reprinted jobs.
1823
18242008-07-29  Tim Waugh  <twaugh@redhat.com>
1825
1826	* jobviewer.py (JobViewer.on_job_cancel_activate): Don't display
1827	an error dialog if a job to cancel has already been cancelled.
1828	(JobViewer.on_job_hold_activate): Likewise for held jobs.
1829	(JobViewer.on_job_release_activate): Likewise for released jobs.
1830
18312008-07-29  Tim Waugh  <twaugh@redhat.com>
1832
1833	* system-config-printer.py (NewPrinterGUI.__init__): If pysmbc is
1834	not available, set Browse button tooltip to explain why browsing
1835	is disabled (trac #81).
1836
18372008-07-29  Tim Waugh  <twaugh@redhat.com>
1838
1839	* system-config-printer.py
1840	(GUI.dests_iconview_button_release_event): Set the cursor to the
1841	pointed-to icon if not already selected.
1842
18432008-07-29  Tim Waugh  <twaugh@redhat.com>
1844
1845	* system-config-printer.py (GUI.rename_printer.jobs_error):
1846	Display an error dialog if the operation cannot go ahead due to
1847	jobs being in the queue (trac #78).
1848
18492008-07-17  Tim Waugh  <twaugh@redhat.com>
1850
1851	* system-config-printer.py
1852	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Guard against shares
1853	being found instead of servers.  In this case, only use printer
1854	shares.
1855
18562008-07-17  Tim Waugh  <twaugh@redhat.com>
1857
1858	* system-config-printer.py
1859	(NewPrinterGUI.on_tvSMBBrowser_row_activated): Removed
1860	USE_OLD_CODE check.
1861	(NewPrinterGUI.on_tvSMBBrowser_cursor_changed): Likewise.
1862	(NewPrinterGUI.on_btnSMBBrowseOk_clicked): Likewise.
1863
18642008-07-17  Tim Waugh  <twaugh@redhat.com>
1865
1866	* system-config-printer.py
1867	(NewPrinterGUI.on_btnSMBBrowseOk_clicked): Fixed typos.
1868
18692008-07-17  Tim Waugh  <twaugh@redhat.com>
1870
1871	* system-config-printer.py
1872	(NewPrinterGUI.on_tvSMBBrowser_cursor_changed): Prevent
1873	traceback.
1874
18752008-07-17  Tim Waugh  <twaugh@redhat.com>
1876
1877	* system-config-printer.py
1878	(NewPrinterGUI.on_tvSMBBrowser_row_activated): Use smbc_type to
1879	determine how to act rather than the tree depth.
1880	(NewPrinterGUI.on_tvSMBBrowser_cursor_changed): Likewise.
1881	(NewPrinterGUI.on_btnSMBBrowseOk_clicked): Likewise.
1882	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Examine smbc_type of
1883	opendir results.
1884	(NewPrinterGUI.on_btnSMBBrowseOk_clicked): Workgroup may not be
1885	available, so use the empty string in that case.
1886
18872008-07-17  Tim Waugh  <twaugh@redhat.com>
1888
1889	* system-config-printer.py (NewPrinterGUI.browse_smb_hosts): Allow
1890	servers to be shown at the top level.
1891	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Use smbc_type to
1892	determine how to act, rather than the tree depth.
1893	Fixes trac #45.
1894
18952008-07-15  Tim Waugh  <twaugh@redhat.com>
1896
1897	* system-config-printer.py (GUI.on_shared_activate): Can't use
1898	self.monitor.update() here because CUPS doesn't give us an IPP
1899	notification for this.  Defer a call to populateList() instead.
1900
19012008-07-15  Tim Waugh  <twaugh@redhat.com>
1902
1903	* system-config-printer.py (GUI.on_enabled_activate): Tell the
1904	monitor to check for updates.
1905	(GUI.on_shared_activate): Likewise.
1906	(GUI.save_printer): Likewise.
1907	(GUI.rename_printer): Likewise.
1908	(GUI.on_copy_activate): Likewise.
1909	(GUI.on_delete_activate): Likewise.
1910
19112008-07-15  Tim Waugh  <twaugh@redhat.com>
1912
1913	* monitor.py (Monitor.update): Renamed...
1914	(Monitor.update_jobs): ...to this.
1915	(Monitor.get_notifications): Track name change.
1916	(Monitor.refresh): Likewise.
1917	(Monitor.update): New method for queuing an update (i.e. a call to
1918	get_notifications).
1919	(Monitor.handle_dbus_signal): Use it.
1920
19212008-07-15  Tim Waugh  <twaugh@redhat.com>
1922
1923	* po/POTFILES.in: Don't try to translate
1924	glade/printer_context_menu.glade since that has been removed.
1925
19262008-07-15  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1927
1928	* system-config-printer.py (GUI.__init__): Call ensure_update() on
1929	the UIManager to get rid of the warning about not being able to
1930	create an accelerator label.
1931
19322008-07-14  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1933
1934	* system-config-printer.py (GUI.on_enabled_activate): Call
1935	populateList() on an idle callback. This is a workaround for an
1936	endless loop that was occuring with the previous commit.
1937	* system-config-printer.py (GUI.on_edit_activate): Add a dummy
1938	parameter to comply with the signal handler signature.
1939
19402008-07-12  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
1941
1942	* Makefile.am (nobase_pkgdata_DATA): Remove contextmenu.py and
1943	glade/printer_context_menu.glade.
1944	* glade/printer_context_menu.glade: Removed.
1945	* glade/PrintersWindow.glade: Remove the Printer menu
1946	definition. It's handled in system-config-printer.py now. Glade
1947	added some GtkImage id noise.
1948	* system-config-printer.py
1949	(GUI.dests_iconview_button_press_event): Popup the context menu on
1950	button-press-event instead of on button-release-event like other
1951	menus.
1952	* system-config-printer.py (GUI): The Printer menubar item and the
1953	iconview's menu is now the same and a proxy to a set of
1954	gtk.Actions grouped on a gtk.UIManager instance.
1955
19562008-07-14  Tim Waugh  <twaugh@redhat.com>
1957
1958	* Makefile.am (nobase_pkgdata_DATA): Ship new module.
1959	* po/POTFILES.in: Translate it.
1960
19612008-07-11  Tim Waugh  <twaugh@redhat.com>
1962
1963	* system-config-printer.py (GUI.server_settings_response): Display
1964	Advanced Server Settings dialog when Advanced is clicked in the
1965	Server Settings dialog.
1966
19672008-07-09  Tim Waugh  <twaugh@redhat.com>
1968
1969	* glade/ServerSettingsDialog.glade: Added 'Advanced...' button to
1970	server settings dialog.
1971
19722008-07-11  Tim Waugh  <twaugh@redhat.com>
1973
1974	* system-config-printer.py (GUI.__init__): Connect the response
1975	signal from the server settings dialog to a handler for it.
1976	(GUI.on_server_settings_activate): Don't call run() here, just
1977	display the dialog.  The response signal will call...
1978	(GUI.server_settings_response): ...this new handler.
1979
19802008-07-11  Tim Waugh  <twaugh@redhat.com>
1981
1982	* errordialogs.py (show_HTTP_Error): Fixed traceback.
1983
19842008-07-10  Tim Waugh  <twaugh@redhat.com>
1985
1986	* system-config-printer.py
1987	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Use URI exactly as
1988	specified in libsmbclient man page.
1989
19902008-07-09  Tim Waugh  <twaugh@redhat.com>
1991
1992	* system-config-printer.py (NewPrinterGUI.nextNPTab): When adding
1993	an IPP printer, pre-fill the info and location fields from the
1994	remote queue (trac #37).
1995
19962008-07-09  Tim Waugh  <twaugh@redhat.com>
1997
1998	* troubleshoot/CheckPPDSanity.py (CheckPPDSanity.display): Report
1999	PPD option defaults.
2000
20012008-07-09  Tim Waugh  <twaugh@redhat.com>
2002
2003	* troubleshoot/Locale.py: New module.
2004	* troubleshoot/__init__.py (Troubleshooter._collect_answer): Run
2005	it (trac #38).
2006
20072008-07-09  Tim Waugh  <twaugh@redhat.com>
2008
2009	* troubleshoot/CheckNetworkServerSanity.py
2010	(CheckNetworkServerSanity.display): Look for SMB shares (trac
2011	#47).
2012
20132008-07-09  Tim Waugh  <twaugh@redhat.com>
2014
2015	* troubleshoot/base.py: Make _ a public name for this module.
2016	* troubleshoot/*.py: Don't explicitly import _.
2017
20182008-07-09  Tim Waugh  <twaugh@redhat.com>
2019
2020	* system-config-printer.py
2021	(NewPrinterGUI.openprinting_printers_found): More descriptive
2022	'select model' text.  Part of trac #25.
2023
20242008-07-09  Tim Waugh  <twaugh@redhat.com>
2025
2026	* system-config-printer.py
2027	(NewPrinterGUI.openprinting_printers_found): If an exact match is
2028	found, pre-select it.  Part of trac #25.
2029
20302008-07-15  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2031
2032	* GroupsPane.py (GroupsPane.on_button_press_event): Pop up the
2033	menu on button-press-event to be consistent with how most context
2034	menus work.
2035
20362008-07-09  Tim Waugh  <twaugh@redhat.com>
2037
2038	* cupshelpers/openprinting.py: Moved top-level test code...
2039	(_simple_gui): ...here.
2040
20412008-07-09  Tim Waugh  <twaugh@redhat.com>
2042
2043	* cupshelpers/ppds.py: Removed self_test from public interface.
2044	It can still be called during 'make check'.
2045	(PPDs.self_test): Renamed so that it starts with an underscore.
2046	* Makefile.am (test-ppd-module.sh): Track name change.
2047
20482008-07-09  Tim Waugh  <twaugh@redhat.com>
2049
2050	* system-config-printer.py (NewPrinterGUI.init): Clear text entry
2051	fields before filling devices list, so that when
2052	self.on_tvNPDevices_cursor_changed() pre-fills the location field
2053	it doesn't get reset afterwards.
2054
20552008-07-09  Tim Waugh  <twaugh@redhat.com>
2056
2057	* system-config-printer.py
2058	(NewPrinterGUI.on_tvNPDevices_cursor_changed): Fixed location
2059	pre-fill.
2060
20612008-07-09  Tim Waugh  <twaugh@redhat.com>
2062
2063	* system-config-printer.py (GUI.dests_iconview_selection_changed):
2064	Factored out get_model() from this loop.
2065
20662008-07-08  Tim Waugh  <twaugh@redhat.com>
2067
2068	* system-config-printer.glade: Added 'Close' button to printer
2069	properties dialog.
2070	* system-config-printer.py (GUI.__init__): Fetch 'Close' button
2071	widget.
2072	(GUI.dests_iconview_item_activated): Show Close button only when
2073	the printer is a discovered one, and Apply/Cancel/OK otherwise.
2074	Fixes trac #61.
2075
20762008-07-08  Tim Waugh  <twaugh@redhat.com>
2077
2078	* system-config-printer.py (NewPrinterGUI.browse_smb_hosts):
2079	Increase smbc debugging level.
2080	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Likewise.
2081	(NewPrinterGUI.on_btnSMBVerify_clicked): Likewise.
2082
20832008-07-07  Tim Waugh  <twaugh@redhat.com>
2084
2085	* jobviewer.py (JobViewer.unset_special_statusicon): Set status
2086	icon visibility.  We might need to hide the icon at this point.
2087
20882008-07-07  Tim Waugh  <twaugh@redhat.com>
2089
2090	* cupshelpers/ppds.py (PPDs.__init__): Removed unneeded debugging
2091	output.
2092
20932008-07-07  Tim Waugh  <twaugh@redhat.com>
2094
2095	* setup.py: New module.  Configuration for distutils.
2096	* Makefile.am (EXTRA_DIST): Ship it.
2097	(.stamp-distutils-in-builddir): Convince distutils to work when
2098	srcdir is different to builddir.
2099	(all-local): Build cupshelpers module using distutils.
2100	(install-exec-local): Install it using distutils.
2101	(clean-local): Clean using distutils.
2102	(uninstall-local): Remove installed module.
2103
21042008-07-07  Tim Waugh  <twaugh@redhat.com>
2105
2106	* cupshelpers/__init__.py (__all__): Define public names.
2107	* cupshelpers/openprinting.py (__all__): Likewise.
2108	* cupshelpers/ppds.py (__all__): Likewise.
2109
21102008-07-04  Tim Waugh  <twaugh@redhat.com>
2111
2112	* system-config-printer.py
2113	(NewPrinterGUI.on_cmbNPDownloadableDriverFoundPrinters_changed):
2114	Only download PPD files, not drivers.
2115
21162008-07-04  Tim Waugh  <twaugh@redhat.com>
2117
2118	* glade/PrintersWindow.glade: Moved Ctrl+N accelerator from
2119	'New', which has a sub-menu, to New->Printer (trac #55).
2120
21212008-06-20  Till Kamppeter  <till.kamppeter@gmail.com>
2122
2123	* cupshelpers/ppds.py: Made PostScript printers reliably be used
2124	with the manufacturer's PPD file. The manufacturer's PPD appeared
2125	as a separate model (at least for HP) and so got never used.
2126	Made SpliX and Gutenprint PPDs also be recognized as such if the
2127	drivers are downloaded from OpenPrinting (as LSB driver packages).
2128
21292008-07-01  Tim Waugh  <twaugh@redhat.com>
2130
2131	* system-config-printer.py
2132	(NewPrinterGUI.on_tvNPDevices_cursor_changed): Use uname call
2133	instead of parsing /bin/hostname output (trac #52).
2134
21352008-07-01  Tim Waugh  <twaugh@redhat.com>
2136
2137	* system-config-printer.glade: Added 'Apply' button to printer
2138	properties dialog.
2139	* system-config-printer.py (GUI.__init__): Fetch Apply button
2140	widget.
2141	(GUI.setDataButtonState): Set Apply button sensitibity.
2142	(GUI.dests_iconview_item_activated): Set data button state.
2143	(GUI.printer_properties_response): Handle APPLY response.
2144	Fixes trac #54.
2145
21462008-07-01  Tim Waugh  <twaugh@redhat.com>
2147
2148	* system-config-printer.py (GUI.__init__): Limit the initial size
2149	of the window (trac #53).
2150
21512008-07-01  Tim Waugh  <twaugh@redhat.com>
2152
2153	* system-config-printer.py (GUI.__init__): No need to adjust width
2154	here.
2155
21562008-06-30  Tim Waugh  <twaugh@redhat.com>
2157
2158	* cupshelpers/cupshelpers.py (Printer.__repr__): New method.
2159	(Device.__repr__): New method.
2160
21612008-06-26  Tim Waugh  <twaugh@redhat.com>
2162
2163	* troubleshoot/Shrug.py: Hide the diagnostic output in an
2164	expander, and remove the copy-to-clipboard function.
2165	Fixes https://fedorahosted.org/system-config-printer/ticket/41.
2166
21672008-06-26  Tim Waugh  <twaugh@redhat.com>
2168
2169	* cupshelpers/openprinting.py
2170	(OpenPrinting.listDrivers.parse_result): Use _normalize_space
2171	instead of normalize_space.
2172
21732008-06-26  Tim Waugh  <twaugh@redhat.com>
2174
2175	* cupshelpers/__init__.py (set_debugprint_fn): New function to set
2176	debugging hook.
2177
2178	* cupshelpers/cupshelpers.py: Don't import debug.
2179	Use _debugprint instead of debugprint throughout.
2180
2181	* cupshelpers/ppds.py: Import _debugprint from the main
2182	cupshelpers module.  Use _debugprint throughout.
2183
2184	Fixes https://fedorahosted.org/system-config-printer/ticket/50.
2185
21862008-06-26  Tim Waugh  <twaugh@redhat.com>
2187
2188	* system-config-printer.py
2189	(NewPrinterGUI.getNetworkPrinterMakeModel): Use subprocess module
2190	instead of os.popen.
2191	(NewPrinterGUI.on_tvNPDevices_cursor_changed): Likewise.
2192	(NewPrinterGUI.getNPPPD): Likewise.
2193	Fixes https://fedorahosted.org/system-config-printer/ticket/44.
2194
21952008-06-25  Tim Waugh  <twaugh@redhat.com>
2196
2197	* system-config-printer.py (NewPrinterGUI.get_hpfax_device_id):
2198	Use subprocess module instead of os.popen.
2199	(NewPrinterGUI.get_hplip_uri_for_network_printer): Likewise.
2200
22012008-06-25  Tim Waugh  <twaugh@redhat.com>
2202
2203	* system-config-printer.py (NewPrinterGUI.get_hpfax_device_id):
2204	Prevent hp-info from accessing X display.
2205
22062008-06-25  Tim Waugh  <twaugh@redhat.com>
2207
2208	* system-config-printer.py (NewPrinterGUI.get_hpfax_device_id):
2209	Run hp-info in the C locale.
2210
22112008-06-25  Tim Waugh  <twaugh@redhat.com>
2212
2213	* troubleshoot/CheckPrinterSanity.py (CheckPrinterSanity.display):
2214	Prevent hp-info from accessing X display, so that it does not
2215	start the HPLIP systray applet (bug #452371 comment #4).
2216
22172008-06-24  Tim Waugh  <twaugh@redhat.com>
2218
2219	* Makefile.am (nobase_pkgdata_SCRIPTS): No need to install
2220	exported modules in pkgdatadir now.
2221	(EXTRA_DIST): Ship exported modules.
2222
22232008-06-24  Tim Waugh  <twaugh@redhat.com>
2224
2225	* openprinting.py: Moved...
2226	* cupshelpers/openprinting.py: ...here.
2227	* cupshelpers/__init__.py: Import it.
2228	* Makefile.am (EXPORT_MODULES): Export openprinting.
2229	* system-config-printer.py (NewPrinterGUI.__init__): Updated.
2230	Fixes https://fedorahosted.org/system-config-printer/ticket/34.
2231
22322008-06-24  Tim Waugh  <twaugh@redhat.com>
2233
2234	* openprinting.py (normalize_space): This function has private
2235	scope.
2236	(QueryThread): This class has private scope.
2237	Better docstrings throughout.
2238
22392008-06-24  Tim Waugh  <twaugh@redhat.com>
2240
2241	* cupshelpers/cupshelpers.py (main): This function has private
2242	scope.
2243	(iteratePPDOptions): Likewise.
2244	(getPPDGroupOptions): Likewise.
2245	(PrintersConf): This class has private scope.
2246	Better docstrings throughout.
2247
22482008-06-24  Tim Waugh  <twaugh@redhat.com>
2249
2250	* cupshelpers/cupshelpers.py (Printer.printer_states): Moved...
2251	* system-config-printer.py (GUI.printer_states): ...here.
2252	(GUI.updatePrinterProperties): Updated.
2253	* cupshelpers/cupshelpers.py (Printer): Removed instance variable
2254	state_description.
2255	* cupshelpers/cupshelpers.py: Don't import rhpl.translate.
2256	* po/POTFILES.in: Don't translate cupshelpers.py.
2257
22582008-06-24  Tim Waugh  <twaugh@redhat.com>
2259
2260	* ppds.py: Moved...
2261	* cupshelpers/ppds.py: ...here.  Use implicit relative path to
2262	import parseDeviceID.
2263	(PPDs._main): Renamed self_test.
2264	* Makefile.am (test-ppd-module.sh): Adjusted.
2265	* cupshelpers/__init__.py: Import ppds module.
2266
2267	* system-config-printer.py (NewPrinterGUI.init): The ppds module
2268	is now part of cupshelpers.
2269	(NewPrinterGUI.getPPDs_thread): Likewise.
2270	(NewPrinterGUI.nextNPTab): Likewise.
2271	(NewPrinterGUI.getNetworkPrinterMakeModel): Likewise.
2272	* applet.py (NewPrinterNotification.NewPrinter): Likewise.
2273	* Makefile.am (nobase_pkgdata_SCRIPTS): Track file move.
2274
22752008-06-24  Tim Waugh  <twaugh@redhat.com>
2276
2277	* cupshelpers.py: Moved...
2278	* cupshelpers/cupshelpers.py: ...here.
2279	* cupshelpers/__init__.py: New module.
2280	* Makefile.am (EXPORT_MODULES): Export cupshelpers.
2281	* POTFILES.in: Track file move.
2282
22832008-06-24  Tim Waugh  <twaugh@redhat.com>
2284
2285	* configure.in: Add AM_PATH_PYTHON.
2286	* Makefile.am (pythondir_SCRIPTS): Install exported modules.
2287
22882008-06-24  Tim Waugh  <twaugh@redhat.com>
2289
2290	* Makefile.am (EXPORT_MODULES): New variable.
2291	(html): New rule.  Build API documentation for exported modules
2292	using epydoc.
2293	(distclean-local): Clean documentation.
2294
22952008-06-24  Tim Waugh  <twaugh@redhat.com>
2296
2297	* ppds.py: Better docstrings throughout.
2298
22992008-06-24  Tim Waugh  <twaugh@redhat.com>
2300
2301	* ppds.py (getDriverType): Made this function private as it is not
2302	part of the API for this module.
2303	(show_help): Likewise.
2304	(main): Likewise.
2305
23062008-06-23  Tim Waugh  <twaugh@redhat.com>
2307
2308	* system-config-printer.py: New global PYSMB_AVAILABLE.
2309	(NewPrinterGUI.__init__): Make SMB browse button insensitive if
2310	pysmb is not available.  Removed legacy pysmb code.
2311	(NewPrinterGUI.browse_smb_hosts): Removed legacy pysmb code.
2312	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Likewise.
2313	(NewPrinterGUI.on_btnSMBBrowseOk_clicked): Likewise.
2314	(NewPrinterGUI.on_btnSMBVerify_clicked): Likewise.
2315
2316	* pysmb.py (get_wins_server): Removed.
2317	(get_domain_list): Removed.
2318	(get_host_list): Removed.
2319	(get_host_list_from_domain): Removed.
2320	(get_host_info): Removed.
2321	(get_printer_list): Removed.
2322	(printer_share_accessible): Removed.
2323
2324	Fixes https://fedorahosted.org/system-config-printer/ticket/35.
2325
23262008-06-24  Tim Waugh  <twaugh@redhat.com>
2327
2328	* system-config-printer.py
2329	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Remove expander
2330	arrow when there are no sub-entries.
2331
23322008-06-23  Tim Waugh  <twaugh@redhat.com>
2333
2334	* system-config-printer.py (GUI.populateList): Better icon
2335	fallbacks.  Fixes traceback seen in bug #452371 comment #2.
2336
23372008-06-20  Tim Waugh  <twaugh@redhat.com>
2338
2339	* Makefile.am (DISTCLEANFILES): Clean up PPDs cache file.
2340	* Makefile.am (test-ppd-module.sh): Use top_srcdir.
2341	Now 'make distcheck' passes again.
2342
23432008-06-20  Tim Waugh  <twaugh@redhat.com>
2344
2345	* ui: Renamed to glade to avoid intltool bug #452255.
2346	* Makefile.am: Updated.
2347	* po/POTFILES.in: Updated.
2348	* glade.py (GtkGUI.getWidgets): Updated.
2349
23502008-06-20  Tim Waugh  <twaugh@redhat.com>
2351
2352	* ppds.py (ppdMakeModelSplit): Don't strip " Printer" from the end
2353	of the ppd-make-and-model string.  Generic printers should be
2354	named like "Generic XYZ Printer".
2355	Fixes https://fedorahosted.org/system-config-printer/ticket/33.
2356
23572008-06-20  Tim Waugh  <twaugh@redhat.com>
2358
2359	* ppds.py (main): Check the results of the test suite against
2360	maximum permissable status code and regular expression for
2361	expected ppd-make-and-model string.
2362	* Makefile.am (test-ppd-module.sh): Create shell script to run
2363	PPDs test suite.
2364	* Makefile.am (TESTS): Run it.
2365	* Makefile.am (DISTCLEANFILES): Clean it up.
2366
23672008-06-20  Tim Waugh  <twaugh@redhat.com>
2368
2369	* pysmb.py (AuthContext.initial_authentication): Pre-fill SMB
2370	workgroup from smbc.Context.workgroup.
2371	Fixes https://fedorahosted.org/system-config-printer/ticket/30.
2372
23732008-06-20  Till Kamppeter  <till.kamppeter@gmail.com>
2374
2375	* ppds.py: Case-insensitive sorting of printer model list.
2376
23772008-06-19  Tim Waugh  <twaugh@redhat.com>
2378
2379	* system-config-printer.py
2380	(NewPrinterGUI.browse_ipp_queues_thread): More informative dialog
2381	when queue list cannot be fetched.
2382	Part of https://fedorahosted.org/system-config-printer/ticket/26.
2383
23842008-06-19  Tim Waugh  <twaugh@redhat.com>
2385
2386	* system-config-printer.py
2387	(NewPrinterGUI.browse_ipp_queues_thread): Hide browse window if
2388	there was a problem browsing.
2389	Part of https://fedorahosted.org/system-config-printer/ticket/26.
2390
23912008-06-19  Tim Waugh  <twaugh@redhat.com>
2392
2393	* system-config-printer.py (NewPrinterGUI.browse_smb_hosts): If no
2394	hosts are found, advise user to check firewall.
2395	Part of https://fedorahosted.org/system-config-printer/ticket/26.
2396
23972008-06-19  Tim Waugh  <twaugh@redhat.com>
2398
2399	* system-config-printer.py (TEXT_start_firewall_tool): Moved this
2400	translatable string to a global variable.
2401	(GUI.save_serversettings): Use the global variable.
2402
24032008-06-19  Tim Waugh  <twaugh@redhat.com>
2404
2405	* jobviewer.py (PrinterURIIndex): New class, for mapping printer
2406	URIs to printer names.
2407	(JobViewer.printer_event): New method.  Update printer URI index.
2408	(JobViewer.printer_removed): New method.  Update printer URI
2409	index.
2410	(JobViewer.current_printers_and_jobs): Instantiate printer URI
2411	index, and use it to look up printer names by job-printer-uri.
2412	(JobViewer.job_added): Look up printer names by job-printer-uri.
2413	(JobViewer.job_event): Likewise.
2414	Fixes https://fedorahosted.org/system-config-printer/ticket/29.
2415
24162008-06-19  Tim Waugh  <twaugh@redhat.com>
2417
2418	* system-config-printer.glade: Give names to the separators in
2419	the printer context menu.
2420	* contextmenu.py (PrinterContextMenu.__init__): Fetch named
2421	separator widgets from glade file.
2422	(PrinterContextMenu.__init__.popup): Show separators only when
2423	there is something to separate.
2424	Fixes https://fedorahosted.org/system-config-printer/ticket/31.
2425
24262008-06-17  Tim Waugh  <twaugh@redhat.com>
2427
2428	* options.py (OptionAlwaysShown.reinit): Support use_supported for
2429	combobox_map-using options such as finishings.
2430	* system-config-printer.py (GUI.__init__): Set use_supported true
2431	for the finishings options.
2432	Fixes https://fedorahosted.org/system-config-printer/ticket/32.
2433
24342008-06-17  Tim Waugh  <twaugh@redhat.com>
2435
2436	* cupshelpers.py (Printer.getAttributes): Work around a pycups
2437	bug fixed in 1.9.40: finishings-supported should be a list.
2438
24392008-06-16  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2440
2441	* system-config-printer.py (GUI.populateList): Remove unused
2442	select_path local variable.
2443
24442008-06-16  Tim Waugh  <twaugh@redhat.com>
2445
2446	* pysmb.py (AuthContext.perform_authentication): Use
2447	STOCK_DIALOG_AUTHENTICATION instead of literal string.
2448
2449	* optionwidgets.py (Option.__init__): Use STOCK_DIALOG_WARNING and
2450	ICON_SIZE_SMALL_TOOLBAR instead of literal strings and ints.
2451
2452	* authconn.py (AuthDialog.__init__): Use
2453	STOCK_DIALOG_AUTHENTICATION instead of literal string.
2454
2455	* errordialogs.py (show_info_dialog): Use STOCK_DIALOG_INFO
2456	instead of literal string.
2457	(show_error_dialog): Use STOCK_DIALOG_ERROR instead of literal
2458	string.
2459	* jobviewer.py (JobViewer.job_event): Likewise.
2460
2461	* userdefault.py (UserDefaultPrompt.__init__): Use
2462	STOCK_DIALOG_QUESTION instead of a literal string.
2463
24642008-06-16  Tim Waugh  <twaugh@redhat.com>
2465
2466	* userdefault.py (UserDefaultPrompt): New class, implementing a
2467	user/system default printer dialog.
2468	* system-config-printer.py
2469	(GUI.set_system_or_user_default_printer): New method.  Display
2470	dialog.
2471	(PrinterContextMenu.on_printer_context_set_as_default_activate):
2472	Use new method.
2473	(GUI.on_set_as_default_activate): Likewise.
2474
24752008-06-16  Tim Waugh  <twaugh@redhat.com>
2476
2477	* contextmenu.py (PrinterContextMenu.popup): Show the Set As
2478	Default menu item for the system default printer except when no
2479	user default is set.
2480
24812008-06-16  Tim Waugh  <twaugh@redhat.com>
2482
2483	* system-config-printer.py (GUI.populateList): Display emblem for
2484	user default printer.
2485
24862008-06-16  Tim Waugh  <twaugh@redhat.com>
2487
2488	* userdefault.py: New module.
2489	* Makefile.am (nobase_pkgdata_DATA): Ship it.
2490
24912008-06-13  Tim Waugh  <twaugh@redhat.com>
2492
2493	* cupshelpers.py (Printer.update): Work-around pycups bug.  The
2494	printer-uri-supported attribute should always be a list.
2495
24962008-06-13  Tim Waugh  <twaugh@redhat.com>
2497
2498	* Makefile.am (nobase_pkgdata_DATA): Replaced applet.glade with
2499	ui/job_popupmenu.glade, ui/JobsWindow.glade,
2500	ui/PrinterStatusWindow.glade, and ui/statusicon_popupmenu.glade.
2501	Added missing ui/PrintersWindow.glade.
2502	* po/POTFILES.in: Likewise.
2503	Fixes https://fedorahosted.org/system-config-printer/ticket/27.
2504
25052008-07-07  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2506
2507	* ui/PrintersWindow.glade: Added a Group menu item to the
2508	menubar. The attached menu is built programatically.
2509	* contextmenu.py (PrinterContextMenu.popup): Protect potential
2510	NoneType object access.
2511	* GroupsPaneModel.py (StaticGroupItem): Implemented reading and
2512	saving queues.
2513	* system-config-printer.py (GUI.populateList): Use an unreadable
2514	emblem on printer icons for queues which are no longer available.
2515	* system-config-printer.py (GUI): Protect several potential
2516	NoneType object accesses. Certainly there are a lot more.
2517	* system-config-printer.py (GUI.dests_iconview_drag_data_get): New
2518	method for D&D.
2519	* system-config-printer.py (GUI.dests_iconview_selection_changed):
2520	Reorganized the code a bit to update the GroupsPane.
2521	* system-config-printer.py (GUI.__init__): Add the GroupsPane
2522	UIManager's accelerator group to the main window.
2523	Build a menu for the Group menubar item.
2524	* GroupsPane.py (GroupsPane): Added various methods for D&D.
2525	Reorganized the popup menu around gtk.Actions and gtk.UIManager.
2526	Implemented an action to create a group from the main window's
2527	current iconview queue selection.
2528
25292008-07-02  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2530
2531	* system-config-printer.py (GUI.__init__): Small code shuffle.
2532	* XmlHelper.py (XmlHelper): New file implementing a class to
2533	handle the low level xml processing. Instantiates a global
2534	singleton handler so that all modules have access to it.
2535	* GroupsPaneModel.py (GroupsPaneModel): Added some utility
2536	methods.
2537	* GroupsPaneModel.py: Abstracted some common functionality in
2538	common base classes for the several groups pane item types.
2539	* GroupsPane.py: Implemented group adding, renaming and
2540	deletion. Also a popup menu to access that functionality.
2541
25422008-06-24  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2543
2544	* GroupsPane.py (GroupsPane.__init__): Receive the first groups
2545	item as a contructor parameter.
2546	* system-config-printer.py (GUI.populateList): Rework filtering
2547	and current groups item selection to do all their work here. This
2548	way everything is kept in sync. Thanks to Tim Waugh for helping
2549	with this.
2550
25512008-06-24  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2552
2553	* GroupsPane.py: Make GroupsPane a proper widget. It's now a
2554	ScrolledWindow containing a TreeView and taking care of all the
2555	TreeView's functionality.
2556	* GroupsPaneModel.py: New file containing a ListStore subclass to
2557	implement the GroupsPane item list and several classes
2558	implementing such item types.
2559	* ToolbarSearchEntry.py (ToolbarSearchEntry.get_text): Added this
2560	method for convenience.
2561	* system-config-printer.py (GUI.__init__): Use the GroupsPane
2562	widget.
2563	* system-config-printer.py (GUI.filter_iconview): New method to
2564	allow filtering not just from the search signal handler. We now
2565	filter from the current iconview model instead of from canonical
2566	printers list.
2567	* system-config-printer.py (GUI.on_groups_pane_item_activated):
2568	New signal handler to change the iconview's model when a different
2569	group pane item is selected. Just a sketch for now.
2570	* system-config-printer.py (GUI.populateList): Don't update the
2571	iconview's model from here for now.
2572	* ui/PrintersWindow.glade: Don't build a TreeView from glade. It's
2573	done on code now.
2574
25752008-06-18  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2576
2577	* system-config-printer.py (GUI.on_search_entry_search): Use a
2578	regular expression to ignore case while searching.
2579
25802008-06-18  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2581
2582	* system-config-printer.py (GUI.__init__): Moved the search and
2583	printer groups setup code earlier since we will need to access the
2584	search entry in ...
2585	* system-config-printer.py (GUI.populateList): ... here. This
2586	allows the refresh button to work properly.
2587
25882008-06-18  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2589
2590	* ToolbarSearchEntry.py (ToolbarSearchEntry.on_activate): It makes
2591	more sense to emit the search signal here too.
2592
25932008-06-18  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2594
2595	* GroupsPane.py (GroupsPane): Add a separator.
2596	* GroupsPane.py (GroupsPane): Change selection changes order.
2597	* system-config-printer.py
2598	(GUI.on_groups_treeview_selection_changed): Catch the treeview's
2599	selection 'changed' signal.
2600
26012008-06-17  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2602
2603	* system-config-printer.py (GUI.on_search_entry_search): Do the
2604	filtering on the search signal handler.
2605	* system-config-printer.py (GUI.populateList): Moved the part of
2606	this function that updates the icon view...
2607	* system-config-printer.py (GUI.reset_icon_view_model): ... into
2608	here to be reusable.
2609
26102008-06-17  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2611
2612	* ToolbarSearchEntry.py (ToolbarSearchEntry.__init__): Change the
2613	label to "Filter" since it better describes what we do here.
2614	* GroupsPane.py (GroupsPane): Add a "Current search" item when
2615	filtering is active.
2616
26172008-06-17  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2618
2619	* ToolbarSearchEntry.py (ToolbarSearchEntry): Remove the clearing
2620	variable since there aren't multiple threads accessing the UI.
2621
26222008-06-17  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2623
2624	* ToolbarSearchEntry.py (ToolbarSearchEntry): Reimplemented based
2625	on Rhythmbox's C version.
2626
26272008-06-16  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2628
2629	* system-config-printer.py (GUI.populateList): Remove unused
2630	select_path local variable.
2631
26322008-06-16  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2633
2634	* GroupsPane.py: Initial implementation.
2635	* ui/PrintersWindow.glade: Removed the height request from the
2636	GtkWindow. Removed horizontal scrolling from the printer groups
2637	treeview's GtkScrolledWindow.
2638	* system-config-printer.py (GUI.__init__): Use GroupsPane. Moved
2639	GUI.setup_toolbar_for_search_entry before the icon_view resizing
2640	block.
2641
26422008-06-15  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2643
2644	* ui/PrintersWindow.glade: Make the window have a minimum size so
2645	that the user can't resize to the point of making the search entry
2646	disappear. There might be a better way to do this.
2647
26482008-06-15  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2649
2650	* ui/PrintersWindow.glade: Added a HPaned widget with a TreeView
2651	to hold printer groups.
2652
26532008-06-15  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2654
2655	* system-config-printer.py (GUI.setup_toolbar_for_search_entry):
2656	Put the search entry widget into place.
2657
26582008-06-15  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2659
2660	* ToolbarSearchEntry.py: Initial widget implementation.
2661
26622008-06-15  Rui Tiago Cação Matos  <tiagomatos@gmail.com>
2663
2664	* HIG.py: New module to hold definitions usefull when applying
2665	GNOME HIG rules programatically.
2666
26672008-06-11  Tim Waugh  <twaugh@redhat.com>
2668
2669	* system-config-printer.py
2670	(NewPrinterGUI.openprinting_printers_found): Set the combobox
2671	sensitive.
2672	(NewPrinterGUI.on_btnNPDownloadableDriverSearch_clicked): Set the
2673	combobox insensitive.
2674	(NewPrinterGUI.on_rbtnNPFoomatic_toggled): Set the combobox
2675	insensitive if the search is cancelled.
2676	Part of https://fedorahosted.org/system-config-printer/ticket/25.
2677
26782008-06-10  Tim Waugh  <twaugh@redhat.com>
2679
2680	* jobviewer.py (JobViewer.__init__): Use glade.GtkGUI.
2681
2682	* applet.glade: Split into...
2683	* ui/JobsWindow.glade, ui/PrinterStatusWindow.glade,
2684	ui/job_popupmenu.glade, ui/statusicon_popupmenu.glade: ...new
2685	files.
2686
26872008-06-10  Tim Waugh  <twaugh@redhat.com>
2688
2689	* ui/MainWindow.glade:  Renamed to...
2690	* ui/PrintersWindow.glade: ...this, to avoid collisions with
2691	the applet's glade XML.
2692
26932008-06-10  Tim Waugh  <twaugh@redhat.com>
2694
2695	* Makefile.am (help): Added help for run-applet.
2696
26972008-06-10  Tim Waugh  <twaugh@redhat.com>
2698
2699	* contextmenu.py (PrinterContextMenu.__init__): Use glade.GtkGUI.
2700
2701	* glade.py (GtkGUI.getWidgets): Adapted.
2702
2703	* Makefile.am (run): Point to ui directory.
2704	(run-applet): Likewise.
2705
2706	* system-config-printer.py (GtkGUI.getWidgets): Adapted.
2707
2708	* ui/AboutDialog.glade, ui/ConnectDialog.glade,
2709	ui/ConnectingDialog.glade, ui/InstallDialog.glade,
2710	ui/IPPBrowseDialog.glade, ui/NewPrinterName.glade,
2711	ui/NewPrinterWindow.glade, ui/printer_context_menu.glade,
2712	ui/PrinterPropertiesDialog.glade, ui/ServerSettingsDialog.glade,
2713	ui/SMBBrowseDialog.glade, ui/WaitWindow.glade: New files.
2714	* system-config-printer.glade: Removed.
2715
2716	* Makefile.am (nobase_pkgdata_DATA): Ship separate glade files
2717	instead of all-in-one glade file for main application.
2718	* POTFILES.in: Translate them.
2719
27202008-06-10  Tim Waugh  <twaugh@redhat.com>
2721
2722	* system-config-printer.py (GtkGUI): Moved...
2723	* glade.py (GtkGUI): ...here.
2724
27252008-06-10  Tim Waugh  <twaugh@redhat.com>
2726
2727	* system-config-printer.py (GtkGUI.moveClassMembers): Moved...
2728	(moveClassMembers): ...here.
2729	(GtkGUI.getCurrentClassMembers): Moved...
2730	(getCurrentClassMembers): ...here.
2731	(GUI.save_printer): Use function, not method.
2732	(GUI.on_btnClassAddMember_clicked): Likewise.
2733	(GUI.on_btnClassDelMember_clicked): Likewise.
2734	(NewPrinterGUI.on_btnNCAddMember_clicked): Likewise.
2735	(NewPrinterGUI.on_btnNCDelMember_clicked): Likewise.
2736	(NewPrinterGUI.setNPButtons): Likewise.
2737	(NewPrinterGUI.on_btnNPApply_clicked): Likewise.
2738
27392008-06-10  Tim Waugh  <twaugh@redhat.com>
2740
2741	* applet.glade (PasswordDialog): Removed.
2742
2743	* system-config-printer.glade (ApplyDialog): Removed.
2744	(PrinterContextMenu): Removed.
2745
27462008-06-10  Tim Waugh  <twaugh@redhat.com>
2747
2748	* configure.in: Version 1.0.2.
2749
27502008-06-10  Tim Waugh  <twaugh@redhat.com>
2751
2752	* system-config-printer.py (NewPrinterGUI.getPPDs_thread):
2753	Propagate all exceptions.
2754	(NewPrinterGUI.fetchPPDs): Likewise.
2755	(NewPrinterGUI.init): Handle exceptions here to some degree.
2756	(GUI.cups_connection_error): New method.  Watch for connection
2757	errors.
2758	(GUI.dests_iconview_item_activated): Watch for connection errors.
2759
27602008-06-10  Tim Waugh  <twaugh@redhat.com>
2761
2762	* system-config-printer.py (GUI.on_btnRefresh_clicked): Update
2763	status bar with connection status if we tried to connect.
2764
27652008-06-10  Tim Waugh  <twaugh@redhat.com>
2766
2767	* system-config-printer.py
2768	(NewPrinterGUI.on_btnSMBVerify_clicked): Fixed typo causing
2769	traceback.  Was introduced by 'transient for parent' change
2770	yesterday.
2771
27722008-06-09  Tim Waugh  <twaugh@redhat.com>
2773
2774	* configure.in: Version 1.0.1.
2775
27762008-06-09  Tim Waugh  <twaugh@redhat.com>
2777
2778	* system-config-printer.py (GUI.on_btnPrintTestPage_clicked): Use
2779	show_info_dialog.
2780	(GUI.maintenance_command): Likewise.
2781	(NewPrinterGUI.on_btnSMBVerify_clicked): Likewise.
2782	(NewPrinterGUI.on_btnIPPVerify_clicked): Likewise.
2783	* system-config-printer.glade (InfoDialog): Removed.
2784
27852008-06-09  Tim Waugh  <twaugh@redhat.com>
2786
2787	(NewPrinterGUI.on_btnSMBVerify_clicked): Set verification failure
2788	dialog transient for parent.
2789
27902008-06-09  Tim Waugh  <twaugh@redhat.com>
2791
2792	* system-config-printer.py (NewPrinterGUI.on_btnSMBVerify_clicked):
2793	Better error dialog for SMB verification failure.
2794
27952008-06-09  Tim Waugh  <twaugh@redhat.com>
2796
2797	* pysmb.py (AuthContext.__init__): New variable, cancel.  Clear
2798	it.
2799	(AuthContext.perform_authentication): Set it when Cancel button
2800	pressed.
2801	(AuthContext.failed): Raise exception if operation is canceled;
2802	also if operation failed due to some error unrelated to
2803	authentication.
2804
28052008-06-09  Tim Waugh  <twaugh@redhat.com>
2806
2807	* system-config-printer.py (NewPrinterGUI.__init__): Removed smb_lock.
2808	(NewPrinterGUI.browse_smb_hosts_thread): Removed.
2809	(NewPrinterGUI.browse_smb_hosts): Do top-level browsing here.
2810
28112008-06-08  Tim Waugh  <twaugh@redhat.com>
2812
2813	* system-config-printer.py (GUI.on_connect_activate): Save
2814	encryption state.
2815	(GUI.connect): Restore encryption state.
2816	Fixes https://fedorahosted.org/system-config-printer/ticket/21.
2817
28182008-06-06  Tim Waugh  <twaugh@redhat.com>
2819
2820	* system-config-printer.py (GUI.populateList): Save/restore
2821	selection of printers.
2822	(GUI.printer_added_or_removed): No longer need to do this here.
2823
28242008-06-06  Tim Waugh  <twaugh@redhat.com>
2825
2826	* system-config-printer.py (GUI.__init__): Initialise
2827	server_is_publishing variable.
2828	(GUI.fillPrinterTab): Update it from server-is-sharing-printers
2829	attribute if available (CUPS 1.4).
2830	(GUI.fillServerTab): Update it from CUPS_SERVER_SHARE_PRINTERS
2831	setting.
2832	(GUI.advise_publish): New method.
2833	(GUI.on_shared_activate): Use it.
2834
28352008-06-06  Tim Waugh  <twaugh@redhat.com>
2836
2837	* system-config-printer.glade: New Shared checkbox menu item, both
2838	for the menu bar and the context menu.
2839
2840	* system-config-printer.py (GUI.on_shared_activate): New method.
2841	(GUI.dests_iconview_selection_changed): Update Shared checkbox
2842	state.
2843
2844	* contextmenu.py
2845	(PrinterContextMenu.on_printer_context_shared_activate): New
2846	method.
2847	(PrinterContextMenu.popup): Update Shared checkbox state.
2848
2849	Fixes https://fedorahosted.org/system-config-printer/ticket/1.
2850
28512008-06-06  Tim Waugh  <twaugh@redhat.com>
2852
2853	* system-config-printer.glade: Changed Enable/Disable menu items
2854	to a single Enabled checkbox menu item, both for the menu bar and
2855	the context menu.
2856
2857	* system-config-printer.py (GUI.on_enable_activate): Renamed...
2858	(GUI.on_enabled_activate): ...to this.  Use checkbox.
2859	(GUI.on_disable_activate): Removed.
2860	(GUI.dests_iconview_selection_changed): Update Enabled checkbox
2861	state.
2862
2863	* contextmenu.py
2864	(PrinterContextMenu.on_printer_context_enable_activate):
2865	Renamed...
2866	(PrinterContextMenu.on_printer_context_enabled_activate): ...to
2867	this.  Use checkbox.
2868	(PrinterContextMenu.on_printer_context_disable_activate):
2869	Removed.
2870	(PrinterContextMenu.popup): Update Enabled checkbox state.
2871
28722008-06-06  Tim Waugh  <twaugh@redhat.com>
2873
2874	* cupshelpers.py (Printer.update): Work around pycups bug with
2875	printer-uri-supported.
2876
28772008-06-06  Tim Waugh  <twaugh@redhat.com>
2878
2879	* system-config-printer.glade: Better menu layout.  Fixes
2880	https://fedorahosted.org/system-config-printer/ticket/2.
2881	* system-config-printer.py (GUI.__init__): Set View->Discovered
2882	Printers menu item insensitive for now (not implemented).
2883
28842008-06-06  Tim Waugh  <twaugh@redhat.com>
2885
2886	* system-config-printer.py (GUI.populateList): Better
2887	classification of available printers.  Fixes
2888	https://fedorahosted.org/system-config-printer/ticket/7.
2889
28902008-06-06  Tim Waugh  <twaugh@redhat.com>
2891
2892	* applet.glade: Remove treeview signal connection for
2893	button_press_event.
2894	* jobviewer.py (JobViewer.__init__): Connect treeview's
2895	button_release_event and popup-menu signals.
2896	(JobViewer.show_treeview_popup_menu): New method, to adjust the
2897	visible menu items of the job context menu and show it.
2898	(JobViewer.on_treeview_button_press_event): Renamed...
2899	(JobViewer.on_treeview_button_release_event): ...to this.  Use
2900	show_treeview_popup_menu.
2901	(JobViewer.on_treeview_popup_menu): New method.  Fixes
2902	https://fedorahosted.org/system-config-printer/ticket/5.
2903
29042008-06-05  Tim Waugh  <twaugh@redhat.com>
2905
2906	* Makefile.am: Ship translation template file.
2907
29082008-06-05  Tim Waugh  <twaugh@redhat.com>
2909
2910	(NewPrinterGUI.browse_ipp_queues_thread): Fixed typo (bug
2911	#450120).
2912
29132008-06-05  Tim Waugh  <twaugh@redhat.com>
2914
2915	* system-config-printer.py
2916	(NewPrinterGUI.browse_ipp_queues_thread): Better exception
2917	handling.
2918	(NewPrinterGUI.browse_smb_hosts_thread): Likewise.
2919	(NewPrinterGUI.openprinting_printers_found): Likewise.
2920
29212008-06-05  Tim Waugh  <twaugh@redhat.com>
2922
2923	* system-config-printer.py
2924	(NewPrinterGUI.browse_ipp_queues_thread): IPP errors are fine
2925	here.
2926
29272008-06-05  Tim Waugh  <twaugh@redhat.com>
2928
2929	* system-config-printer.py (GUI.save_serversettings): Show a
2930	dialog advising the user to review the firewall if sharing has
2931	been enabled.
2932
29332008-06-05  Tim Waugh  <twaugh@redhat.com>
2934
2935	* errordialogs.py (show_dialog): New function.
2936	(show_error_dialog): Use it.
2937	(show_info_dialog): New function.
2938
29392008-06-04  Tim Waugh  <twaugh@redhat.com>
2940
2941	* system-config-printer.py (GUI.connect): Always show traceback
2942	for unhandled exceptions if debugging.
2943	(NewPrinterGUI.getDevices_thread): Likewise.
2944
29452008-06-04  Tim Waugh  <twaugh@redhat.com>
2946
2947	* system-config-printer.py (GUI.__init__): Don't fetch
2948	InstallDialog widget here...
2949	(NewPrinterGUI.__init__): ...fetch it here instead (bug #449860).
2950	(NewPrinterGUI.checkDriverExists): Fixed traceback.
2951
29522008-06-03  Tim Waugh  <twaugh@redhat.com>
2953
2954	* system-config-printer.glade: Adjust left hpane width in the
2955	printer properties dialog to be slightly wider.
2956
29572008-06-03  Tim Waugh  <twaugh@redhat.com>
2958
2959	* system-config-printer.py (GUI.on_btnPrintTestPage_clicked):
2960	Don't automatically try authenticating as root if asked for a
2961	password when printing a test page, as the authentication is
2962	likely to be needed for the remote print server.
2963
2964	* authconn.py (Connection.__init__): New optional parameter
2965	try_as_root.
2966	(Connection._perform_authentication): Only try as root if allowed
2967	to.
2968
29692008-06-03  Tim Waugh  <twaugh@redhat.com>
2970
2971	* Makefile.am (run-applet): New target.
2972
29732008-06-03  Tim Waugh  <twaugh@redhat.com>
2974
2975	* jobviewer.py (JobViewer.__init__): Initialise set of stopped job
2976	IDs for which we are showing a dialog.
2977	(JobViewer.job_event): Don't show stopped-job dialog if we are
2978	already showing one for this job.
2979	(JobViewer.job_event): Add job ID to set before showing dialog.
2980	(JobViewer.print_error_dialog_response): Remove job ID from set.
2981
29822008-06-02  Tim Waugh  <twaugh@redhat.com>
2983
2984	* jobviewer.py (JobViewer.job_event): Ignore stopped jobs when
2985	they have been stopped due to the printer being paused.
2986
29872008-06-02  Tim Waugh  <twaugh@redhat.com>
2988
2989	* system-config-printer.py (NewPrinterGUI.init): Handle exceptions
2990	when fetching PPDs.
2991
29922008-05-31  Tim Waugh  <twaugh@redhat.com>
2993
2994	* applet.py (WaitForJobs): Harden against races.
2995
29962008-05-30  Tim Waugh  <twaugh@redhat.com>
2997
2998	* troubleshoot/CheckUSBPermissions.py: New module.
2999	* troubleshoot/__init__.py (QUESTIONS): Run it.
3000	* Makefile.am (nobase_pkgdata_DATA): Ship it.
3001
30022008-05-30  Tim Waugh  <twaugh@redhat.com>
3003
3004	* system-config-printer.py (GUI.populateList): No longer needs
3005	change_ppd argument.
3006	(GUI.__init__): Don't give change_ppd argument to populateList.
3007	(GUI.printer_properties_response): New method.
3008	(GUI.__init__): Connect the response signal to it.
3009	(GUI.dests_iconview_item_activated): Just show the dialog, don't
3010	call its run method.
3011	(GUI.__init__): Click the Change PPD... button if the change_ppd
3012	argument was given.
3013
30142008-05-29  Tim Waugh  <twaugh@redhat.com>
3015
3016	* system-config-printer.py (GUI.__init__): Renamed start_printer
3017	argument to configure_printer.  Activate the relevant item.
3018	(GUI.populateList): No longer needs start_printer argument.
3019	(GUI.connect): Likewise.
3020	(GUI.on_connect_activate): Don't give start_printer argument to
3021	new thread.
3022	(GUI.on_copy_activate): Omit start_printer argument.
3023	(NewPrinterGUI.on_btnNPApply_clicked): Likewise.
3024	(main): Renamed start_printer argument to configure_printer.
3025
3026	* system-config-printer.py (GUI.__init__): Connect IconView's
3027	popup-menu signal to...
3028	(GUI.dests_iconview_popup_menu): ...this new signal handler.
3029	* contextmenu.py (PrinterContextMenu.popup): Allow event to be
3030	None, for the case of the gtk.Widget popup-menu signal.
3031
3032	* troubleshoot/PrintTestPage.py (PrintTestPage.update_jobs_list):
3033	Mark jobs as test jobs by default so that people who don't realise
3034	they need to click the check-box still get sufficient information
3035	in the troubleshoot.txt file.
3036
3037	* jobviewer.py (JobViewer.update_job): If the job's
3038	auth-info-required attribute indicates Kerberos negotiation, try
3039	to authenticate the job without providing an auth-info attribute.
3040
30412008-05-28  Tim Waugh  <twaugh@redhat.com>
3042
3043	* troubleshoot/CheckPrinterSanity.py (CheckPrinterSanity.display):
3044	Make the cups_printer_remote answer a Boolean.
3045
3046	* troubleshoot/DeviceListed.py (DeviceListed.collect_answer):
3047	Return all answers, including any set during the display method.
3048	(DeviceListed.display): Set cups_device_dict answer if the queue
3049	already exists, to make it easier to determine IEEE 1284 strings
3050	of devices that already have queues set up.
3051	* troubleshoot/DeviceListed.py (DeviceListed.display): Don't fetch
3052	devices if the selected queue is remote.
3053
3054	* troubleshoot/ErrorLogCheckpoint.py
3055	(ErrorLogCheckpoint.enable_clicked): Set MaxLogSize to 0 to avoid
3056	cupsd rotating the log while the test page is printed.
3057	* troubleshoot/ErrorLogFetch.py (ErrorLogFetch.button_clicked):
3058	Reset MaxLogSize.
3059
3060	* troubleshoot/CheckNetworkServerSanity.py
3061	(CheckNetworkServerSanity.display): Split output lines from
3062	traceroute.
3063
30642008-05-27  Tim Waugh  <twaugh@redhat.com>
3065
3066	* configure.in: Version 1.0.0.
3067
30682008-05-27  Tim Waugh  <twaugh@redhat.com>
3069
3070	* system-config-printer.py (GUI.__init__): Allow directory
3071	containing glade files to be overridden.
3072	* jobviewer.py (JobViewer.__init__): Likewise.
3073	Get pkgdatadir from config module.
3074	(JobViewer.__init__): Set window title appropriately.
3075
3076	* Makefile.am (run): Give path to directory containing glade
3077	files, not to specific glade file.
3078
3079	* system-config-printer.glade: Added 'Create Class' menu item to
3080	printer context menu.
3081	* contextmenu.py
3082	(PrinterContextMenu.on_printer_context_create_class): New method.
3083
3084	* system-config-printer.py (GUI.__init__): Set toolbar buttons at
3085	runtime instead of using glade, in order to have a MenuToolButton
3086	for New Printer/New Class.
3087	* system-config-printer.glade: Removed toolbar buttons.
3088
3089	* errordialogs.py (show_IPP_Error): Fixed typo.
3090
3091	* system-config-printer.py (NewPrinterGUI.setNPButtons): Don't
3092	allow Forward button to be pressed on the downloadable driver
3093	screen if no driver is selected.
3094
3095	* openprinting.py (OpenPrinting.searchPrinters): This is a search
3096	term, not a manufacturer's name.
3097
3098	* system-config-printer.py (NewPrinterGUI.__init__): Don't disable
3099	OpenPrinting widgets, as only the PPD downloading part currently
3100	work.
3101	(NewPrinterGUI.getNPPPD): Use mkstemp here.
3102	(NewPrinterGUI.init): Set 'Select printer from database' radio
3103	button active.
3104
3105	* system-config-printer.py (NewPrinterGUI.fillMakeList): Pre-fill
3106	the OpenPrinting.org search box.
3107
31082008-05-25  Tim Waugh  <twaugh@redhat.com>
3109
3110	* system-config-printer.py (GUI.__init__): Set default window icon
3111	name (Ubuntu #234750).
3112	* applet.py: Likewise.
3113
31142008-05-23  Tim Waugh  <twaugh@redhat.com>
3115
3116	* system-config-printer.py
3117	(NewPrinterGUI.browse_smb_hosts_thread): Remove the 'Scanning...'
3118	label when browsing is unsuccessful.
3119
3120	* configure.in: Version 0.9.93.
3121
31222008-05-23  Tim Waugh  <twaugh@redhat.com>
3123
3124	* jobviewer.py (JobViewer.__init__): Added User column to job
3125	view.
3126	(JobViewer.update_job_creation_times): Updated Time column ID.
3127	(JobViewer.add_job): Fill User column.  Updated Name column ID.
3128	(JobViewer.update_job): Updated other column IDs.
3129
3130	* system-config-printer.py
3131	(GUI.populateList): New keyword parameter prompt_allowed.
3132	(GUI.printer_added_or_removed.maybe_select): Don't allow auth
3133	prompting when re-populating the printer list.
3134
3135	* contextmenu.py
3136	(PrinterContextMenu.on_printer_context_set_as_default_activate):
3137	Use GUI.set_default_printer so that we handle errors correctly,
3138	and in case the server needed to reload.
3139	(PrinterContextMenu.on_printer_context_enable_activate): Handle
3140	IPP errors.
3141
3142	* applet.glade (ErrorDialog): Removed.
3143	* jobviewer.py (JobViewer.show_IPP_Error): Use errordialogs
3144	module.
3145
3146	* system-config-printer.glade (ErrorDialog): Removed.
3147	* system-config-printer.py: Use show_error_dialog() instead of the
3148	glade ErrorDialog widget.
3149
3150	* system-config-printer.py (GUI.show_HTTP_Error): Moved...
3151	* errordialogs.py (show_HTTP_Error): ...here.
3152
3153	* system-config-printer.py (GUI.show_IPP_Error): Moved...
3154	* errordialogs.py (show_IPP_Error): ...here.
3155
3156	* troubleshoot/__init__.py (Troubleshooter.get_window): New
3157	method.
3158	* troubleshoot/PrintTestPage.py (PrintTestPage.print_clicked): Use
3159	it.
3160
3161	* troubleshoot/PrintTestPage.py: Import errordialogs.
3162
3163	* troubleshoot/base.py (show_error_dialog): Moved...
3164	* errordialogs.py (show_error_dialog): ...here.  New module.
3165	* Makefile.am (nobase_pkgdata_DATA): Ship it.
3166	* po/POTFILES.in: Translate it.
3167
31682008-05-22  Tim Waugh  <twaugh@redhat.com>
3169
3170	* authconn.py (Connection._authloop): Move some initial variable
3171	settings...
3172	(Connection._perform_authentication): ...here, for the first
3173	pass.
3174	(Connection._perform_authentication): If no prompting is allowed,
3175	set _cancel and return non-zero so that we break out of the
3176	authentication loop.
3177	(Connection._perform_authentication): Likewise if we are about to
3178	prompt the user but never got a password callback from libcups.
3179
31802008-05-21  Tim Waugh  <twaugh@redhat.com>
3181
3182	* system-config-printer.py
3183	(NewPrinterGUI.on_btnSMBVerify_clicked): Set cursor busy during
3184	verify.
3185
3186	* system-config-printer.py
3187	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Don't remove row
3188	expansion arrow unless authentication was successful.
3189	(NewPrinterGUI.browse_smb_hosts_thread): Likewise.
3190	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Likewise.
3191
3192	* system-config-printer.py: Set gettext function for monitor
3193	module.
3194
3195	* system-config-printer.py
3196	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Create a new context
3197	here.
3198
3199	* system-config-printer.py
3200	(NewPrinterGUI.browse_smb_hosts_thread): Set the auth function
3201	directly to the AuthContext callback.
3202	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Likewise.
3203	(NewPrinterGUI.on_btnSMBVerify_clicked): Likewise.
3204	(NewPrinterGUI.browse_smb_hosts_thread_auth_callback): Removed.
3205
3206	* system-config-printer.py
3207	(NewPrinterGUI.browse_smb_hosts_thread): Made more robust in the
3208	face of SMB errors.
3209	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Likewise.
3210
32112008-05-20  Tim Waugh  <twaugh@redhat.com>
3212
3213	* authconn.py (Connection._perform_authentication): Reconnect
3214	after prompting.
3215
3216	* cupshelpers.py (Printer.getAttributes): Avoid losing SMB
3217	authentication details.
3218
3219	* system-config-printer.py (NewPrinterGUI.on_entSMBURI_changed):
3220	Don't reset authentication radio button if not necessary.
3221
32222008-05-20  Tim Waugh  <twaugh@redhat.com>
3223
3224	* configure.in: Version 0.9.92.
3225
32262008-05-20  Tim Waugh  <twaugh@redhat.com>
3227
3228	* system-config-printer.py
3229	(NewPrinterGUI.on_tvSMBBrowser_row_activated): Double-clicking on
3230	a share selects it.
3231
3232	* system-config-printer.py
3233	(GUI.dests_iconview_button_release_event): Fix right-click
3234	behaviour.
3235
3236	* system-config-printer.glade: Removed user entry box in the
3237	connection dialog.
3238	* system-config-printer.py (GUI.on_connect_activate): Removed
3239	references to user entry box.
3240
3241	* system-config-printer.py
3242	(NewPrinterGUI.on_btnSMBVerify_clicked): Don't use
3243	pysmb.printer_share_accessible for access checks unless we are
3244	using the old browsing code.
3245
3246	* pysmb.py (AuthContext.__init__): Allow initial credentials to be
3247	set.
3248
3249	* system-config-printer.py
3250	(NewPrinterGUI.browse_smb_hosts_thread): Fixed 'scanning...'
3251	message for new SMB browse code.
3252
32532008-05-19  Tim Waugh  <twaugh@redhat.com>
3254
3255	* system-config-printer.py
3256	(NewPrinterGUI.browse_smb_hosts_thread): Don't set no-anon-login
3257	flag as it seems to break browsing.
3258
3259	* pysmb.py (AuthContext.failed): Raise exception if authentication
3260	details were not asked for.
3261
3262	* system-config-printer.py
3263	(NewPrinterGUI.browse_smb_hosts_thread): Better exception
3264	handling.
3265	(NewPrinterGUI.on_tvSMBBrowser_row_expanded): Likewise.
3266
32672008-05-18  Tim Waugh  <twaugh@redhat.com>
3268
3269	* pysmb.py (AuthContext.perform_authentication): More debugging.
3270
3271	* system-config-printer.py
3272	(NewPrinterGUI.on_tvNPDevices_cursor_changed): Better parsing of
3273	socket: URIs (Ubuntu bug #222616).
3274	(iconpath): Fixed icon search path.
3275	(GUI.populateList): Fail if an icon is not available.
3276	(NewPrinterGUI.browse_smb_hosts_thread): Enable smbc debugging if
3277	debugging is enabled.
3278
32792008-05-16  Tim Waugh  <twaugh@redhat.com>
3280
3281	* configure.in: Version 0.9.91.
3282
32832008-05-16  Tim Waugh  <twaugh@redhat.com>
3284
3285	* system-config-printer.py
3286	(NewPrinterGUI.on_rbtnChangePPDasIs_toggled): Removed.
3287	(NewPrinterGUI.nextNPTab): Fetch the PPD before the copy-settings
3288	page and avoid showing an empty installable options page.
3289	(NewPrinterGUI.setNPButtons): Set buttons appropriately on the
3290	copy-settings page.
3291
3292	* system-config-printer.py (NewPrinterGUI.setNPButtons): Initial
3293	value for radio button should be set in init...
3294	(NewPrinterGUI.init): ...here.
3295
3296	* system-config-printer.py (NewPrinterGUI.__init__,
3297	NewPrinterGUI.browse_smb_hosts_thread,
3298	NewPrinterGUI.on_tvSMBBrowser_row_activated,
3299	NewPrinterGUI.on_btnSMBBrowseOk_clicked): Start of new SMB code.
3300
3301	* system-config-printer.glade: Adjusted SMB authentication
3302	screen.
3303	* system-config-printer.py (NewPrinterGUI.on_entSMBURI_changed,
3304	NewPrinterGUI.on_btnSMBVerify_clicked,
3305	NewPrinterGUI.getDeviceURI): User interface adjustment.
3306
3307	* system-config-printer.py (NewPrinterGUI.smbbrowser_cell_share):
3308	New method.
3309	(NewPrinterGUI.smbbrowser_cell_comment): New method.
3310	(NewPrinterGUI.browse_smb_hosts_thread_auth_callback): New method.
3311
3312	* pysmb.py: Try to import smbc module.
3313	(AuthContext): New class.
3314
3315	* system-config-printer.py
3316	(NewPrinterGUI.on_tvNPDevices_cursor_changed): Removed debugging.
3317
3318	* system-config-printer.glade: Removed default printer parts from
3319	the printer properties dialog, as this is now done in the main
3320	window.
3321	* system-config-printer.py (GUI.fillPrinterTab): Removed
3322	references to printer properties default printer widgets.
3323	(GUI.on_btnPMakeDefault_clicked): Likewise.
3324
3325	* system-config-printer.py (GUI.fillPrinterTab): Moved some
3326	code...
3327	(GUI.updatePrinterProperties): ...here.
3328	(GUI.printer_event): Update state etc.
3329
3330	* cupshelpers.py (Printer.__init__): Moved some code...
3331	(Printer.update): ...here.
3332	(Printer.getAttributes): Update state etc.
3333
3334	* system-config-printer.py (GUI.setTestButton): Removed.
3335	(GUI.fillPrinterTab): Don't call setTestButton.
3336	(GUI.on_btnPrintTestPage_clicked): Likewise, and don't ever
3337	cancel.
3338	(GUI.setDataButtonState): Removed cancellation handling.
3339
33402008-05-15  Tim Waugh  <twaugh@redhat.com>
3341
3342	* system-config-printer.py (NewPrinterGUI.init): Only set location
3343	to current hostname if the added printer is directly connected.
3344	(NewPrinterGUI.on_tvNPDevices_cursor_changed): Don't set location
3345	of remote printers to the local hostname.
3346
3347	* troubleshoot/base.py (show_error_dialog): New method.
3348	* troubleshoot/PrintTestPage.py (PrintTestPage.print_clicked): Use
3349	it.
3350	(PrintTestPage.print_clicked): Try printing a text/plain file if
3351	application/postscript is not accepted.
3352
3353	* authconn.py (AuthDialog.__init__): Set alignment for icon.
3354
33552008-05-14  Tim Waugh  <twaugh@redhat.com>
3356
3357	* system-config-printer.py (NewPrinterGUI.nextNPTab): Better
3358	translatable string.
3359	(NewPrinterGUI.getNPPPD): Likewise.
3360
3361	* system-config-printer.py (NewPrinterGUI.getNPPPD): Finish
3362	writing the file before trying to parse it.  Patch from George
3363	Liu.
3364
3365	* system-config-printer.desktop.in, manage-print-jobs.desktop.in,
3366	print-applet.desktop.in, my-default-printer.desktop.in: Just exec
3367	binary name, not path name.
3368
3369	* system-config-printer-applet: Generate this with autoconf so
3370	that configured paths can be used.
3371	* my-default-printer: Likewise.
3372	* system-config-printer: Likewise.
3373	* configure.in: Generate above scripts.
3374
3375	* config.py.in: Get DATADIR from autoconf.
3376	* config.py.in (Paths): New class to handle pathname expansion.
3377	* system-config-printer.py: Use config.Paths to get pkgdatadir.
3378
33792008-05-13  Tim Waugh  <twaugh@redhat.com>
3380
3381	* system-config-printer.py (GUI.dests_iconview_selection_changed):
3382	Better logic for sensitivity.
3383	(GUI.on_enable_activate): New method.
3384	(GUI.on_disable_activate): New method.
3385
3386	* system-config-printer.py (GUI.on_set_as_default_activate): New
3387	method.
3388
3389	* system-config-printer.py (GUI.printer_name_edit_cancel): Moved
3390	from...
3391	* contextmenu.py (PrinterContextMenu.printer_name_edit_cancel):
3392	...here.
3393	* system-config-printer.py (GUI.printer_name_edited): Moved
3394	from...
3395	* contextmenu.py
3396	(PrinterContextMenu.printer_name_edited): ...here.
3397	* system-config-printer.py (GUI.on_rename_activate): New method,
3398	from...
3399	* contextmenu.py
3400	(PrinterContextMenu.on_printer_context_rename_activate): ...here.
3401	Call main class's handler.
3402
3403	* system-config-printer.glade: Add 'Copy' entry to printer context
3404	menu.
3405	* contextmenu.py
3406	(PrinterContextMenu.on_printer_context_copy_activate): New
3407	method.
3408
3409	* troubleshoot/ErrorLogCheckpoint.py (ErrorLogCheckpoint.display):
3410	Clear 'done' label on page display.
3411	* troubleshoot/ErrorLogFetch.py (ErrorLogFetch.display):
3412	Likewise.
3413
34142008-05-12  Tim Waugh  <twaugh@redhat.com>
3415
3416	* applet.py (NewPrinterNotification.collect_exit_code): New
3417	method.  Collect exit code of child (bug #446055).
3418
3419	* jobviewer.py (JobViewer.notify_new_printer): Fixed new printer
3420	notifications.
3421
3422	* applet.py: Set locale.
3423
3424	* system-config-printer.py (GUI.makeNameUnique): Use dash instead
3425	of underscore when replacing disallowed characters (bug #445790).
3426
3427	* system-config-printer.py (GUI.save_printer): Display any IPP
3428	error caught while refreshing printer information (Ubuntu
3429	#224021).
3430
3431	* monitor.py (collect_printer_state_reasons): Ignore IPP errors
3432	here (Ubuntu #225241).
3433
3434	* troubleshoot/PrintTestPage.py (PrintTestPage.print_clicked):
3435	Handle failure to connect to CUPS and failure to submit the test
3436	page (Ubuntu #222494).
3437	(PrintTestPage.cancel_clicked): Record failure reason instead of
3438	raising exception.
3439
34402008-05-09  Tim Waugh  <twaugh@redhat.com>
3441
3442	* system-config-printer.py (GUI.printer_added): Fixed typo calling
3443	base function.
3444	(GUI.printer_removed): Likewise.
3445	(GUI.printer_event): New method.  Handle printer state updates so
3446	that enabled/disabled printers are shown correctly.
3447
34482008-05-08  Tim Waugh  <twaugh@redhat.com>
3449
3450	* system-config-printer.py (NewPrinterGUI.nextNPTab): Don't flip
3451	to the next page if there is an error obtaining the PPD.
3452
34532008-05-07  Tim Waugh  <twaugh@redhat.com>
3454
3455	* openprinting.py (OpenPrinting.__init__): Default to only Free
3456	downloads.
3457
3458	* system-config-printer.py (NewPrinterGUI.getNPPPD): Implemented
3459	PPD download.  Use urlopen to download PPD file from
3460	openprinting.org.  Patch from George Liu.
3461
3462	* system-config-printer.glade: Re-worked some of the downloadable
3463	PPD interface.  Patch from George Liu.
3464
3465	* openprinting.py (OpenPrinting.searchPrinters): Replaced web
3466	query filter printer=(searchterm) with make=(make).  All models by
3467	the printer manufacturer will be returned.  Patch from George
3468	Liu.
3469	(OpenPrinting.listDrivers): Changed search term onlydownloads to
3470	onlyppdfiles.  Patch from George Liu.
3471
3472	* system-config-printer.py
3473	(NewPrinterGUI.on_cmbNPDownloadableDriverFoundPrinters_changed):
3474	Fixed typo (patch from George Liu).
3475
34762008-05-06  Till Kamppeter  <till.kamppeter@gmail.com>
3477
3478	* system-config-printer.glade: More fixes to make the properties
3479	dialog smaller.
3480
3481	* applet.py (NewPrinterNotification.wake_up, check_for_jobs): Fixed
3482	crash on waitloop.quit().
3483
34842008-05-02  Tim Waugh  <twaugh@redhat.com>
3485
3486	* system-config-printer.py (GUI.on_btnPrintTestPage_clicked):
3487	Connect as the current user to print the test page (bug #444306).
3488
3489	* Makefile.am: Install main script in bindir, not sbindir.
3490
34912008-05-01  Tim Waugh  <twaugh@redhat.com>
3492
3493	* my-default-printer.py: Guard against locale errors (bug
3494	#417951).
3495	* openprinting.py (OpenPrinting.__init__): Likewise.
3496	* system-config-printer.py (show_help): Likewise.
3497
34982008-04-30  Tim Waugh  <twaugh@redhat.com>
3499
3500	* applet.py (NewPrinterNotification.NewPrinter): Only include
3501	Install button if we are able to install packages.
3502
35032008-04-29  Tim Waugh  <twaugh@redhat.com>
3504
3505	* troubleshoot/CheckPPDSanity.py (CheckPPDSanity.display): Provide
3506	null stdin.
3507	* troubleshoot/CheckNetworkServerSanity.py
3508	(CheckNetworkServerSanity.display): Likewise. Catch exceptions.
3509
3510	* troubleshoot/CheckPrinterSanity.py (CheckPrinterSanity.display):
3511	Try hp-info for hp-scheme device URIs.
3512
35132008-04-21  Tim Waugh  <twaugh@redhat.com>
3514
3515	* configure.in (ALL_LINGUAS): Added sr@latin.  Removed sr@Latn.
3516	* po/sr@Latn.po: Removed.
3517	* Makefile.am: Check for missing languages in update-po.
3518
35192008-04-21  Tim Waugh  <twaugh@redhat.com>
3520
3521	* system-config-printer.py (NewPrinterGUI.init): Don't empty the
3522	JetDirect hostname text entry widget here, as it might have been
3523	pre-filled for a selected device (Ubuntu #220041).
3524
35252008-04-18  Tim Waugh  <twaugh@redhat.com>
3526
3527	* system-config-prnter.py (NewPrinterGUI.init): Fix model
3528	pre-selection when changing PPD.
3529
3530	* system-config-printer.py (NewPrinterGUI.on_btnNPApply_clicked):
3531	Reset 'media' default job option if it becomes invalid (bug
3532	#441836).
3533
35342008-04-17  Tim Waugh  <twaugh@redhat.com>
3535
3536	* ppds.py (ppdMakeModelSplit): Fix display of Generic PostScript
3537	model, which was getting set to the empty string.
3538
3539	* system-config-printer.py (NewPrinterGUI.on_btnNPApply_clicked):
3540	Update printer properties when dialog is finished.
3541
35422008-04-16  Tim Waugh  <twaugh@redhat.com>
3543
3544	* applet.py (WaitForJobs): Cancel the deferral timer.
3545
35462008-04-16  Till Kamppeter  <till.kamppeter@gmail.com>
3547
3548	* applet.py (main): Fixed Ubuntu crash bug #195508.
3549
35502008-04-16  Tim Waugh  <twaugh@redhat.com>
3551
3552	* system-config-printer.py (GUI.copy_printer): New method.
3553	(GUI.on_copy_activate): Use it.
3554	(GUI.rename_printer): New method.
3555
3556	* cupshelpers.py (Printer.jobsQueued): New method.
3557	(Printer.testsQueued): Use it.
3558
3559	* contextmenu.py
3560	(PrinterContextMenu.on_printer_context_rename_activate): New
3561	method.
3562	(PrinterContextMenu.printer_name_edited): New method.
3563	(PrinterContextMenu.printer_name_edit_cancel): New method.
3564
3565	* system-config-printer.py (CUPS_server_hostname): New function.
3566	(GUI.setConnected): Use it.
3567	(GUI.dests_iconview_item_activated): Set printer properties dialog
3568	title to show printer and hostname.
3569
3570	* system-config-printer.glade (PrinterPropertiesDialog): Use a
3571	TreeView to display option groupings instead of Notebook tabs.
3572	* system-config-printer.py (GUI.__init__): Set tree view column,
3573	selection mode and signals.
3574	(GUI.dests_iconview_item_activated): Select first page of the
3575	properties notebook.
3576	(GUI.on_tvPrinterProperties_selection_changed): Prevent selection
3577	from being de-selected.
3578	(GUI.on_tvPrinterProperties_cursor_changed): Flip notebook to
3579	correct page.
3580	(GUI.fillPrinterTab): Fill in tree view rows according to notebook
3581	tabs.
3582	(GUI.setDataButtonState): Display conflicts using bold markup in
3583	the tree view.
3584
35852008-04-15  Tim Waugh  <twaugh@redhat.com>
3586
3587	* system-config-printer.py (GUI.save_printer): Avoid copied queue
3588	having extra job options set.
3589	(GUI.on_copy_activate): Set transient for main window.  Fixed typo
3590	in comment.
3591
3592	* probe_printer.py (LpdServer._probe_queue): Better error handling
3593	so as to prevent tracebacks as in Ubuntu #213624.
3594
3595	* system-config-printer.py (NewPrinterGUI.setNPButtons): Set
3596	sensitivity of Forward button when in ppd dialog mode (Ubuntu
3597	#211867).
3598
3599	* po/pt.po: Mark bad translation fuzzy.
3600
3601	* jobviewer.py: Don't import pynotify twice.
3602
36032008-04-13  Tim Waugh  <twaugh@redhat.com>
3604
3605	* statereason.py (StateReason.get_description): Don't crash on
3606	incorrect translations (Ubuntu #214732).
3607
36082008-04-11  Tim Waugh  <twaugh@redhat.com>
3609
3610	* system-config-printer.py (GUI.on_server_settings_activate): Set
3611	transient for main window.
3612	(GUI.on_troubleshoot_activate): Set transient for main window.
3613
3614	* troubleshoot/__init__.py (Troubleshooter.__init__): Allow parent
3615	window to be specified.
3616
3617	* system-config-printer.py (GUI.populateList): Use
3618	gtk.icon_size_lookup.
3619
3620	* monitor.py (Monitor.handle_dbus_signal): Fixed typo.
3621
3622	* applet.py (show_version): Correct comment.
3623	(WaitForJobs.handle_dbus_signal): New method.
3624	(WaitForJobs): Better deferral.
3625
36262008-04-10  Tim Waugh  <twaugh@redhat.com>
3627
3628	* system-config-printer.py (GUI.on_quit_activate): Clean up
3629	monitor instance so we don't leak CUPS subscriptions.
3630
3631	* monitor.py (Monitor.get_notifications): Update after
3632	notify-get-interval period if we haven't ever had a D-Bus signal
3633	from CUPS.
3634	(Monitor.__init__): Initialise flag.
3635	(Monitor.handle_dbus_signal): Set flag.
3636
36372008-04-09  Tim Waugh  <twaugh@redhat.com>
3638
3639	* my-default-printer.py (Dialog.selection_changed): New method.
3640	Prevent selected item being de-selected.
3641	(Dialog.__init__): Connect TreeSelection changed signal to
3642	selection_changed method.
3643	This fixes Ubuntu #214579.
3644
36452008-04-08  Tim Waugh  <twaugh@redhat.com>
3646
3647	* system-config-printer.glade: No separator for the properties dialog.
3648
3649	* jobviewer.py (JobViewer.__init__): Set transient for parent, if
3650	appropriate.
3651	* contextmenu.py
3652	(PrinterContextMenu.on_printer_context_view_print_queue_activate):
3653	Indicate parent window.
3654
3655	* system-config-printer.py (GUI.on_about_activate): Make the About
3656	dialog appear in the right place.
3657
36582008-04-03  Tim Waugh  <twaugh@redhat.com>
3659
3660	* configure.in: Version 0.9.90, on the way to 1.0.0.
3661
36622008-04-03  Tim Waugh  <twaugh@redhat.com>
3663
3664	* Makefile.am: Ship monitor.py.
3665
3666	* jobviewer.py (JobViewer.update_job): Don't dispay an
3667	authentication dialog if pycups doesn't provide
3668	authenticateJob().
3669
3670	* system-config-printer.py (GUI.printer_added_or_removed): New
3671	method.
3672	(GUI.printer_added): New method.
3673	(GUI.printer_removed): New method.
3674	(GUI.__init__): Start a monitor to watch for added and removed
3675	printers.
3676	(GUI.dests_iconview_item_activated): If the printer is discovered,
3677	don't allow the OK button to be clicked in the properties dialog.
3678
3679	* monitor.py (Watcher.cups_connection_error): New API method.
3680	(Watcher.cups_ipp_error): New API method.
3681	(Monitor.get_notifications): Add cups_connection_error and
3682	cups_ipp_error hooks.
3683	(Monitor.refresh): Likewise.
3684
3685	* jobviewer.py (JobViewer.current_printers_and_jobs): Fetch full
3686	job attributes for each job initially.
3687	(JobViewer.update_job): If proxy authentication is necessary,
3688	prompt for authentication information.
3689	(JobViewer.auth_info_dialog_response): Collect authentication
3690	information and perform proxy authentication.
3691	(JobViewer.job_added): Prevent traceback when there are no printer
3692	state reasons.
3693	(JobViewer.job_event): Display a print error dialog when a job
3694	stops for any reason other than authentication required (rescued
3695	from applet.py revision 2145).
3696
3697	* authconn.py (AuthDialog): New class.
3698	(Connection._perform_authentication): Use it.
3699
37002008-04-01  Tim Waugh  <twaugh@redhat.com>
3701
3702	* cupshelpers.py (Printer.setAsDefault): Try specifying the file
3703	descriptor for getFile (requires pycups >= 1.9.38).
3704	(PrintersConf.fetch): Likewise.
3705
3706	* monitor.py (Monitor.__init__): Allow caller to opt out of
3707	monitoring jobs.
3708	(Monitor.refresh): If not monitoring jobs, don't subscribe to job
3709	events.
3710	(Monitor.refresh): Only fetch jobs if we are monitoring them.
3711
3712	* troubleshoot/CheckPrinterSanity.py (CheckPrinterSanity.display):
3713	Determine remote server name for smb URIs by parsing nmblookup
3714	output.
3715
3716	* troubleshoot/CheckNetworkServerSanity.py
3717	(CheckNetworkServerSanity.display): Only try IPP connection for
3718	ipp URI schemes.
3719
3720	* smburi.py (SMBURI.__init__): Accept full URIs.
3721
3722	* troubleshoot/CheckPrinterSanity.py (CheckPrinterSanity.display):
3723	Treat http scheme the same as ipp.
3724
3725	* system-config-printer.py (GUI.busy): Make more robust.
3726	(GUI.ready): Likewise.
3727
3728	* my-default-printer.py (Dialog.__init__): Sort printers by name
3729	(bug #439804).
3730
37312008-03-31  Tim Waugh  <twaugh@redhat.com>
3732
3733	* system-config-printer.py (GUI.fillPrinterTab): If supported
3734	values are not known but the value is a Boolean, we can work out
3735	the supported values (Ubuntu #207338).
3736	(GUI.fillPrinterOptions): Initialise inputslot/manualfeed
3737	variables regardless of whether there are option groups.
3738
3739	* system-config-printer.glade (PrinterPropertiesDialog): Fixed
3740	expand/fill flags in the job options tab (Ubuntu #208304).
3741
37422008-03-26  Tim Waugh  <twaugh@redhat.com>
3743
3744	* system-config-printer.py (fatalException): Moved...
3745	* debug.py (fatalException): ...here.
3746	* system-config-printer.py (nonfatalException): Moved...
3747	* debug.py (nonfatalException): ...here.
3748	* jobviewer.py (JobViewer.get_icon_pixbuf): Use it.
3749
3750	* jobviewer.py (JobViewer.__init__): Removed dead code.
3751	(JobViewer.update_status): Renamed.  Update statusbar.
3752	(JobViewer.add_state_reason_emblem): Moved worst reason search...
3753	(JobViewer.update_status): ...here.
3754	(JobViewer.current_printers_and_jobs): Set 'job-printer-name'.
3755
3756	* jobviewer.py (JobViewer.set_statusicon_tooltip): New method.
3757	(JobViewer.update_statusicon): New method.
3758	(JobViewer.current_printers_and_jobs): Use it.
3759	(JobViewer.job_added): Likewise.
3760	(JobViewer.job_removed): Likewise.
3761	(JobViewer.state_reason_added): Likewise.
3762	(JobViewer.state_reason_removed): Likewise.
3763
3764	* jobviewer.py (JobViewer.job_added): Set 'job-printer-name'.
3765	(JobViewer.job_event): Likewise.
3766	(JobViewer.add_state_reason_emblem): Use it.
3767	(JobViewer.update_job): Likewise.
3768	(JobViewer.state_reason_added): Likewise.
3769
3770	* jobviewer.py (JobViewer.get_icon_pixbuf): New method.
3771	(JobViewer.current_printers_and_jobs): Use it.
3772	(JobViewer.job_added): Likewise.
3773	(JobViewer.job_removed): Likewise.
3774	(JobViewer.job_is_active): New method.
3775	(JobViewer.job_added): Use it.
3776	(JobViewer.state_reason_added): Likewise.
3777	(JobViewer.current_printers_and_jobs): Build active jobs list.
3778	(JobViewer.job_added): Maintain it.
3779	(JobViewer.job_event): Likewise.
3780	(JobViewer.job_removed): Likewise.
3781	(JobViewer.state_reason_added): Update status icon.
3782	(JobViewer.state_reason_removed): Likewise.
3783	(JobViewer.state_reason_removed): Don't return early if a
3784	notification for the removed state reason was closed.
3785
37862008-03-25  Tim Waugh  <twaugh@redhat.com>
3787
3788	* system-config-printer.py: Removed dead code (passwd_retry).
3789
37902008-03-24  Till Kamppeter  <till.kamppeter@gmail.com>
3791
3792	* ppds.py (PPDs.orderPPDNamesByPreference): For HP LaserJet
3793	12xx/13xx prefer HPIJS over PostScript, as they do not have enough
3794	memory to render complex graphics with their on-board PostScript
3795	interpreter. This is a workaround for the time being until HP fixes
3796	this in the HPLIP-generated PPDs.
3797
37982008-03-22  Till Kamppeter  <till.kamppeter@gmail.com>
3799
3800	* ppds.py (ppdMakeModelSplit): Improved filtering of driver information
3801	from the printer model name, added missing product names "PSC" and
3802	"Edgeline" to manufacturer guessing for HP.
3803
38042008-03-21  Till Kamppeter  <till.kamppeter@gmail.com>
3805
3806	* system-config-printer.py (NewPrinterGUI.nextNPTab): Support that
3807	HP has now two fax PPDs ("HP Fax" and "HP Fax 2").
3808	(NewPrinterGUI.fillDeviceTab): Likewise.
3809	(NewPrinterGUI.get_hpfax_device_id): New method. Get device ID for
3810	an HPLIP fax URI, so that correct PPD ("HP Fax" or "HP Fax 2") can
3811	get selected.
3812	(NewPrinterGUI.get_hplip_uri_for_network_printer): Strip newline
3813	from device URI.
3814
38152008-03-20  Tim Waugh  <twaugh@redhat.com>
3816
3817	* system-config-printer.py (GUI.on_copy_activate): Adapted to
3818	iconview.
3819
3820	* monitor.py (Monitor.get_notifications): Small fix for
3821	job_removed calls.
3822	(Monitor.get_notifications): Call state_reason_removed for each
3823	reason associated with a removed printer.
3824	(Watcher.current_printers_and_jobs): Provide printers as well.
3825	(Monitor.refresh): Fetch list of printers.
3826	(Monitor.get_notifications): Track added and removed printers.
3827	(Watcher.printer_added): New method.
3828	(Watcher.printer_removed): New method.
3829
3830	* jobviewer.py (JobViewer.current_printers_and_jobs): Adjusted.
3831
3832	* monitor.py (Watcher.current_jobs): New Watcher interface
3833	method.
3834	(Monitor.refresh): Call it.
3835	* jobviewer.py (JobViewer.current_jobs): Implement it.
3836	(JobViewer.refresh): Removed.
3837	(JobViewer.__init__): Start with icon hidden; removed dead code.
3838
3839	* applet.py (show_version.any_jobs): Just check for jobs, not
3840	errors.
3841	* jobviewer.py (worst_printer_state_reason): Removed.
3842
3843	* monitor.py (Monitor.sort_jobs_by_printer): Better error
3844	checking.
3845	(Monitor.check_state_reasons): Don't only process
3846	connecting-to-device when it is a newly added state reason.
3847
3848	* jobviewer.py (JobViewer.state_reason_added): Mark state reason
3849	as not notified.
3850	(JobViewer.notify_printer_state_reason): Mark state reason as
3851	notified.
3852	(JobViewer.state_reason_added): Only send a notification if the
3853	user has a job on this printer.
3854	(JobViewer.job_added): Notify user of current state reasons on
3855	this printer.
3856
38572008-03-19  Till Kamppeter  <till.kamppeter@gmail.com>
3858
3859	* system-config-printer.py (NewPrinterGUI.nextNPTab): If a network
3860	printer is chosen from the auto-detected printers in the "New
3861	Printer" dialog and the printer is an HP MF device with both
3862	printer and fax, the user can choose by a pop-up dialog whether he
3863	wants to set up a queue for the printer or for the fax.
3864
38652008-03-19  Tim Waugh  <twaugh@redhat.com>
3866
3867	* jobviewer.py (JobViewer.add_job): New method.
3868	(JobViewer.update_job): New method.
3869	(JobViewer.refresh): Use add_job
3870	(JobViewer.update_job_creation_times): Better timer handling.
3871	(JobViewer.job_added): New method, part of Watcher interface.
3872	(JobViewer.job_event): Likewise.
3873	(JobViewer.job_removed): Likewise.
3874	(JobViewer.still_connecting): Likewise.
3875	(JobViewer.now_connected): Likewise.
3876	(JobViewer.state_reason_added): Likewise.
3877
3878	* cupshelpers.py (Printer.setAsDefault): New method.
3879	* system-config-printer.py (GUI.set_default_printer): Use it.
3880
38812008-03-18  Tim Waugh  <twaugh@redhat.com>
3882
3883	* statereason.py (StateReason.__repr__): New method.
3884
3885	* system-config-printer.py (GUI.reconnect): Use
3886	authconn.Connection._connect() to reconnect.
3887
3888	* jobviewer.py (JobViewer.__init__): Removed password dialog
3889	bits.
3890	(JobViewer.cupsPasswdCallback): Removed.
3891
3892	* contextmenu.py (PrinterContextMenu.popup): Show or hide context
3893	menu items.
3894
3895	* system-config-printer.glade: Removed password dialog.
3896	* system-config-printer.py (GUI.__init__): Don't set CUPS password
3897	callback, as this is set in authconn.Connection.
3898	(GUI.connect): Likewise.
3899	(NewPrinterGUI.getPPDs_thread): Set password callback to empty
3900	function.
3901	(NewPrinterGUI.getDevices_thread): Likewise.
3902	(GUI.cupsPasswdCallback): Removed.
3903	(GUI.on_btnPasswdOk_clicked): Removed.
3904	(GUI.on_btnPasswdCancel_clicked): Removed.
3905
3906	* system-config-printer.py (GUI.on_quit_activate): Clean up
3907	context menu and any jobviewers it has launched.
3908
3909	* jobviewer.py (JobViewer.__init__): Optional exit_handler
3910	function.
3911	(JobViewer.cleanup): Call it.
3912
3913	* contextmenu.py (PrinterContextMenu.__init__): Track jobviewers.
3914	(PrinterContextMenu.cleanup): New method.
3915	(PrinterContextMenu.on_jobviewer_exit): New method.
3916
3917	* smburi.py: New module.
3918	* Makefile.am (nobase_pkgdata_DATA): Ship it.
3919
3920	* contextmenu.py: New module.
3921	* Makefile.am (nobase_pkgdata_DATA): Ship it.
3922
3923	* system-config-printer.py (GUI.populateList): Add default emblem.
3924	(PrinterContextMenu.popup): Don't include Set As Default in the
3925	context menu if the printer is already the default.
3926	(GUI.set_default_printer): New method.
3927	(GUI.on_btnPMakeDefault_clicked): Use it.
3928	(PrinterContextMenu.on_printer_context_set_as_default_activate):
3929	Likewise.
3930	(PrinterContextMenu.popup): Don't include Enable or Disable if not
3931	possible.
3932	(PrinterContextMenu.on_printer_context_enable_activate): New
3933	method.
3934	(PrinterContextMenu.on_printer_context_disable_activate): New
3935	method.
3936	(GUI.on_btnApply_clicked): Removed.
3937	(GUI.apply): Removed.
3938	(GUI.on_delete_activate): Handle the Icon View.
3939	(PrinterContextMenu.on_printer_context_delete_activate): New
3940	method.
3941	(PrinterContextMenu.popup): Disallow actions on discovered
3942	printers that require a remote connection.
3943
39442008-03-17  Tim Waugh  <twaugh@redhat.com>
3945
3946	* system-config-printer.py (GUI.__init__): Set initial window size
3947	appropriately.
3948	(GUI.fillServerTab): Removed old code.
3949	(GUI.on_tvMainList_row_activated): Removed.
3950	(GUI.on_btnRevert_clicked): Removed.
3951	(GUI.fillServerTab): Propagate the exception.
3952	(GUI.on_server_settings_activate): Catch the exception and
3953	return.
3954	(GUI.__init__): Simpler method for setting initial window size.
3955
3956	* system-config-printer.glade: Removed unnecessary button box
3957	buttons.
3958	* system-config-printer.py (GUI.dests_iconview_selection_changed):
3959	Only allow copying of a	single destination.
3960
3961	* system-config-printer.py (main): New option --debug.
3962	* man/system-config-printer.xml: Document it.
3963	* Makefile.am (run): Run with debugging enabled.
3964
3965	* system-config-printer.py (GUI.__init__): Use authconn.Connection.
3966	(GUI.on_connect_activate): Pass in the parent window widget.
3967	(GUI.connect): Use authconn.Connection.
3968	(GUI.reconnect): Likewise.
3969	(GUI.on_btnRefresh_clicked): Likewise.
3970
3971	* jobviewer.py (JobViewer.on_job_cancel_activate): Use
3972	authconn.Connection.
3973	(JobViewer.on_job_hold_activate): Likewise.
3974	(JobViewer.on_job_release_activate): Likewise.
3975	(JobViewer.on_job_reprint_activate): Likewise.
3976
3977	* troubleshoot/ErrorLogCheckpoint.py
3978	(ErrorLogCheckpoint.enable_clicked): No need to work around
3979	adminGetServerSettings weirdness.
3980	* troubleshoot/ErrorLogFetch.py (ErrorLogFetch.button_clicked):
3981	Likewise.
3982
3983	* troubleshoot/base.py: Use debug module.
3984	* troubleshoot/__init__.py (run): Likewise.
3985
3986	* troubleshoot/ErrorLogFetch.py (ErrorLogFetch.display): Reconnect
3987	in case cupsd has restarted.
3988
3989	* authconn.py (Connection._authloop): Raise IPPError if
3990	adminGetServerSettings returns no settings.
3991
3992	* troubleshoot/ErrorLogFetch.py (ErrorLogFetch.button_clicked):
3993	Changed to use authconn.Connection.
3994
3995	* authconn.py (Connection.__init__): Initialise _use_user correctly.
3996	(Connection._set_prompt_allowed): Allow caller to disallow
3997	prompting.
3998	(Connection._authloop): Handle cups.HTTPError.
3999
4000	* troubleshoot/ErrorLogCheckpoint.py
4001	(ErrorLogCheckpoint.enable_clicked): Changed to use
4002	authconn.Connection.
4003
4004	* troubleshoot/Welcome.py (AuthenticationDialog): Removed.  Use
4005	authconn.Connection instead.
4006
4007	* authconn.py: New file.
4008	* po/POTFILES.in: Translate it.
4009	* Makefile.am (nobase_pkgdata_DATA): Ship it.
4010
40112008-03-16  Tim Waugh  <twaugh@redhat.com>
4012
4013	* jobviewer.py (JobViewer.__init__): Default trayicon to False.
4014	(JobViewer.on_delete_event): Cancel subscriptions when run from
4015	main applications.
4016
4017	* system-config-printer.py
4018	(PrinterContextMenu.on_printer_context_view_print_queue_activate):
4019	No need to specify trayicon=False.
4020
4021	* jobviewer.py: Moved JobManager here and renamed as JobViewer.
4022	* po/POTFILES.in: Translate jobviewer.
4023	* Makefile.am (nobase_pkgdata_DATA): Ship it.
4024	* system-config-printer.py
4025	(PrinterContextMenu.on_printer_context_view_print_queue_activate):
4026	Updated.
4027
4028	* debug.py: New module.
4029	* Makefile.am (nobase_pkgdata_DATA): Ship it.
4030	* applet.py: Use it.
4031	* system-config-printer.py: Likewise.
4032	* cupshelpers.py: Likewise.
4033
40342008-03-15  Tim Waugh  <twaugh@redhat.com>
4035
4036	* system-config-printer.py (GUI.populateList): Set tooltips.
4037
40382008-03-14  Tim Waugh  <twaugh@redhat.com>
4039
4040	* system-config-printer.py: Import applet.
4041	(PrinterContextMenu.on_printer_context_view_print_queue_activate):
4042	Use JobManager to display jobs for selected printers.
4043
4044	* applet.py (JobManager.__init__): Add my_jobs and specific_dests
4045	arguments.
4046	(JobManager.refresh): Use my_jobs argument.
4047	(JobManager.get_notifications): Likewise.
4048	(JobManager.refresh): Ignore jobs not matching specific_dests.
4049	(JobManager.get_notifications): Likewise.
4050
4051	* icons/i-network-printer.png: New file.
4052	* Makefile.am (nobase_pkgdata_DATA): Ship icon.
4053	* system-config-printer.py (GUI.populateList): Use different icon
4054	for remote printers.
4055	(GUI.dests_iconview_button_release_event): Allow multiple
4056	destinations to be selected.
4057
4058	* system-config-printer.py (GUI.on_btnApplyApply_clicked):
4059	Removed.
4060	(GUI.on_btnApplyCancel_clicked): Likewise.
4061	(GUI.on_btnApplyDiscard_clicked): Likewise.
4062	(GUI): No need to check for unapplied changes.
4063	(GUI.on_quit_activate): Likewise.
4064	(GUI.on_copy_activate): Likewise.
4065	(GUI.setDataButtonState): Only set Installable Options tab
4066	weight.
4067	(GUI.dests_iconview_button_release_event): Display printer context
4068	menu.
4069	(PrinterContextMenu): New class.
4070
4071	* cupshelpers.py (getPrinters): Avoid fetching printers.conf when
4072	not needed.
4073
4074	* system-config-printer.py (GUI.dests_iconview_item_activated):
4075	Apply changes.
4076	(GUI.on_server_settings_activate): New method.
4077
40782008-03-13  Tim Waugh  <twaugh@redhat.com>
4079
4080	* system-config-printer.py: Some changes to cope with the new UI.
4081	* system-config-printer.glade: Switch to icon view.
4082
4083	* applet.py (JobManager.get_notifications): Ignore jobs that are
4084	not owned by the current user.
4085
40862008-03-10  Tim Waugh  <twaugh@redhat.com>
4087
4088	* applet.py (JobManager.get_notifications): Distinguish between
4089	failed jobs and jobs that require authentication.
4090
40912008-03-07  Tim Waugh  <twaugh@redhat.com>
4092
4093	* system-config-printer.glade: 'Goto' isn't a word.
4094
4095	* system-config-printer.py (GUI.populateList): Fix default printer
4096	detection.
4097
4098	* troubleshoot/__init__.py (QUESTIONS): Run it.
4099	* troubleshoot/CheckPPDSanity.py: New module.
4100	* Makefile.am (nobase_pkgdata_DATA): Ship it.
4101	* po/POTFILES.in: Translate it.
4102
4103	* troubleshoot/CheckLocalServerPublishing.py: New module.
4104	* Makefile.am (nobase_pkgdata_DATA): Ship it.
4105	* po/POTFILES.in: Translate it.
4106	* troubleshoot/__init__.py (QUESTIONS): Run it.
4107
4108	* troubleshoot/SchedulerNotRunning.py
4109	(SchedulerNotRunning.display): Deal with being run before a
4110	printer is chosen.
4111
4112	* troubleshoot/__init__.py (QUESTIONS): Check that the scheduler
4113	is running very first thing.
4114
41152008-03-06  Tim Waugh  <twaugh@redhat.com>
4116
4117	* troubleshoot/DeviceListed.py: New module.
4118	* po/POTFILES.in: Translate it.
4119	* Makefile.am: Ship it.
4120	* troubleshoot/__init__.py (QUESTIONS): Run it.
4121
41222008-03-05  Tim Waugh  <twaugh@redhat.com>
4123
4124	* cupshelpers.py (Printer.getAttributes): Store all other
4125	attributes.
4126
4127	* system-config-printer.py (GUI.fillPrinterTab): Use
4128	server-is-sharing-printers attribute if present.
4129
4130	* applet.py (collect_printer_state_reasons): Fix work-around.
4131	(JobManager.get_notifications): Likewise.
4132
4133	* system-config-printer.py
4134	(NewPrinterGUI.on_btnIPPVerify_clicked): Prevent traceback when
4135	failing to fetch printer attributes.
4136
41372008-03-03  Tim Waugh  <twaugh@redhat.com>
4138
4139	* applet.py (JobManager.get_notifications): The notify-printer-uri
4140	attribute may not be set.
4141	(JobManager.get_notifications): If the printer has been disabled
4142	as a result of a failed job, say so.
4143
41442008-02-29  Tim Waugh  <twaugh@redhat.com>
4145
4146	* applet.py (JobManager.update): Make a list of active jobs
4147	indexed by printer name.
4148	(JobManager.check_state_reasons): Only display a
4149	connecting-to-device warning if we have a job processing on that
4150	device.
4151	(JobManager.toggle_window_display): New force_show parameter.
4152	(JobManager.get_notifications): Handle job-stopped event by
4153	displaying a dialog when running as a tray icon.
4154	(JobManager.print_error_dialog_response): New method.  Invoke the
4155	troubleshooter if user selects 'Diagnose'.
4156	(JobManager.on_troubleshoot_quit): New method.
4157
41582008-02-28  Tim Waugh  <twaugh@redhat.com>
4159
4160	* applet.py (debugprint): New function.
4161	(JobManager.__init__): No longer need will_refresh or
4162	last_refreshed attributes.
4163	(JobManager.__init__): Initialise subscription ID.
4164	(JobManager.refresh): Cancel existing subscription and create new
4165	subscription.  No longer need throttling.
4166	(JobManager.cleanup): New method.  Cancel subscription.
4167	(JobManager.get_notifications): New method.
4168	(JobManager.handle_dbus_signal): Use get_notifications instead of
4169	refresh.
4170	(JobManager.check_still_connecting): Use get_notifications, not
4171	refresh.
4172	(JobManager.check_state_reasons): Don't take a CUPS connection as
4173	argument.  For now, open a new connection, although this should
4174	not be needed really.
4175	(JobManager.update): New method, split out from old refresh
4176	method.  Don't fetch job list again; we already have enough
4177	information.
4178	(JobManager.on_job_reprint_activate): Don't need to call refresh
4179	now.
4180	(JobManager.handle_dbus_signal): Schedule a call to
4181	get_notifications.
4182	(top level): New --debug option.
4183	(state_reason_is_harmless): New function, split out from
4184	collect_printer_state_reasons.
4185	(collect_printer_state_reasons): Collate reasons by printer name.
4186	(worst_printer_state_reason): Handle reasons collation.
4187	(JobManager.update_connecting_devices): Likewise.
4188	(JobManager.check_state_reasons): Likewise.
4189	(JobManager.check_still_connecting): No longer need to connect to
4190	CUPS here.
4191	(JobManager.check_state_reasons): Likewise.
4192	(JobManager.get_notifications): Remove state reasons for deleted
4193	printers, and update state reasons for printers whose state has
4194	changed.
4195	(JobManager.get_notifications): Don't update when the
4196	notify-get-interval tells us to; instead, rely on D-Bus for this.
4197	(JobManager.refresh): Add printer-deleted and
4198	printer-state-changed to the list of interesting events.
4199	(JobManager.refresh): Fetch printer state reasons.
4200
4201	* troubleshoot/PrintTestPage.py (PrintTestPage.connect_signals):
4202	Connect to the system D-Bus.
4203	(PrintTestPage.disconnect_signals): Disconnect from D-Bus.
4204	(PrintTestPage.handle_dbus_signal): Schedule a refresh.
4205	(PrintTestPage.update_jobs_list): Schedule the next refresh
4206	according to notify-get-interval.
4207
4208	* troubleshoot/ErrorLogParse.py (ErrorLogParse.display): Use log
4209	severity indicator.
4210
42112008-02-26  Tim Waugh  <twaugh@redhat.com>
4212
4213	* statereason.py (StateReason.get_description): Handle 'offline'
4214	state reason.
4215	(StateReason.get_description): Handle 'other' state reason.
4216
42172008-02-25  Tim Waugh  <twaugh@redhat.com>
4218
4219	* applet.py (show_version.monitor_session): Correct comment.
4220
42212008-02-20  Tim Waugh  <twaugh@redhat.com>
4222
4223	* troubleshoot/ErrorLogCheckpoint.py (ErrorLogCheckpoint.display):
4224	Remember CUPS server settings for diagnostic output.
4225	(ErrorLogCheckpoint.enable_clicked): Likewise.
4226
4227	* troubleshoot/Welcome.py (AuthenticationDialog.callback): Don't
4228	remember a password if the dialog was cancelled.
4229
4230	* troubleshoot/__init__.py (Troubleshooter.answers_as_text): Don't
4231	display answers whose tags begin with an underscore.
4232
4233	* troubleshoot/ErrorLogCheckpoint.py
4234	(ErrorLogCheckpoint.enable_clicked): Don't create a new
4235	AuthenticationDialog instance.
4236
4237	* troubleshoot/Welcome.py (Welcome.collect_answer): Instantiate
4238	AuthenticationDialog.
4239
4240	* troubleshoot/base.py (AuthenticationDialog): Moved...
4241	* troubleshoow/Welcome.py (AuthenticationDialog): ...here.
4242
42432008-02-19  Tim Waugh  <twaugh@redhat.com>
4244
4245	* configure.in: Version 0.7.82.
4246
42472008-02-19  Tim Waugh  <twaugh@redhat.com>
4248
4249	* troubleshoot/PrintTestPage.py
4250	(PrintTestPage.collect_answer.collect_jobs.each): Try to use
4251	getJobAttributes if available.
4252
4253	* applet.py (JobManager.on_notification_closed): Reset connecting
4254	timer when notification is closed.
4255	(JobManager.check_state_reasons): Use printer icon in notification
4256	bubble.
4257	(NewPrinterNotification.NewPrinter): Likewise.
4258
4259	* troubleshoot/Shrug.py (Shrug.on_save_clicked): Save as
4260	troubleshoot.txt by default.
4261
4262	* troubleshoot/ErrorLogParse.py (ErrorLogParse.display): Don't
4263	trigger on error_log fetch.
4264
4265	* troubleshoot/ErrorLogFetch.py (ErrorLogFetch.__init__): Disable
4266	debug logging if we enabled it.
4267	(ErrorLogFetch.display): Fetch error_log here instead of in
4268	collect_answer.
4269	(ErrorLogFetch.connect_signals): New method.
4270	(ErrorLogFetch.disconnect_signals): New method.
4271	(ErrorLogFetch.button_clicked): New method.  Disable debug
4272	logging.
4273
4274	* troubleshoot/ErrorLogCheckpoint.py
4275	(ErrorLogCheckpoint.__init__): Enable debug logging if not set.
4276	(ErrorLogCheckpoint.display): Fetch server settings.
4277	(ErrorLogCheckpoint.connect_signals): New method.
4278	(ErrorLogCheckpoint.disconnect_signals): New method.
4279	(ErrorLogCheckpoint.enable_clicked): New method.  Enable debug
4280	logging.
4281
4282	* troubleshoot/base.py (AuthenticationDialog): Added some fixes.
4283
4284	* troubleshoot/PrintTestPage.py (PrintTestPage.update_jobs_list):
4285	Work around old pycups bug.
4286	(PrintTestPage.__init__): Allow other documents to be printed and
4287	tracked using a check-box in each job row.
4288	(PrintTestPage.update_job): Update columns IDs.
4289	(PrintTestPage.display): Update store column types, and initialise
4290	check-boxes.
4291	(PrintTestPage.test_toggled): New method.
4292	(PrintTestPage.connect_signals): Connect toggle signal.
4293	(PrintTestPage.disconnect_signals): Disconnect it.
4294	(PrintTestPage.collect_answer.collect_jobs.each): Include job
4295	attributes for selected jobs.
4296	(PrintTestPage.update_jobs_list): Initialise check-box.
4297
42982008-02-18  Tim Waugh  <twaugh@redhat.com>
4299
4300	* troubleshoot/ErrorLogFetch.py: New module.
4301	* troubleshoot/ErrorLogCheckpoint.py: New module.
4302	* troubleshoot/ErrorLogParse.py: New module.
4303	* troubleshoot/__init__.py (QUESTIONS): Run them.
4304	* Makefile.am: Ship them.
4305	* po/POTFILES.in: Translate them.
4306
4307	* troubleshoot/PrinterStateReasons.py
4308	(PrinterStateReasons.collect_answer): Fixed traceback.
4309	(PrinterStateReasons.display): Use saved state message and
4310	reasons.
4311
4312	* troubleshoot.py: Moved...
4313	* troubleshoot/__init__.py: ...here.
4314	* troubleshoot/base.py: Split out from troubleshoot.py.
4315	* troubleshoot/CheckNetworkServerSanity.py: Likewise.
4316	* troubleshoot/CheckPrinterSanity.py: Likewise.
4317	* troubleshoot/ChooseNetworkPrinter.py: Likewise.
4318	* troubleshoot/ChoosePrinter.py: Likewise.
4319	* troubleshoot/LocalOrRemote.py: Likewise.
4320	* troubleshoot/NetworkCUPSPrinterShared.py: Likewise.
4321	* troubleshoot/PrinterStateReasons.py: Likewise.
4322	* troubleshoot/PrintTestPage.py: Likewise.
4323	* troubleshoot/QueueNotEnabled.py: Likewise.
4324	* troubleshoot/QueueRejectingJobs.py: Likewise.
4325	* troubleshoot/RemoteAddress.py: Likewise.
4326	* troubleshoot/SchedulerNotRunning.py: Likewise.
4327	* troubleshoot/ServerFirewalled.py: Likewise.
4328	* troubleshoot/Shrug.py: Likewise.
4329	* troubleshoot/Welcome.py: Likewise.
4330	* Makefile.am: Ship new files.
4331	* po/POTFILES.in: Translate them.
4332
4333	* po/de.po: Updated (bug #433230).
4334
43352008-02-17  Tim Waugh  <twaugh@redhat.com>
4336
4337	* po/fr.po: Updated (bug #433193).
4338
43392008-02-14  Tim Waugh  <twaugh@redhat.com>
4340
4341	* troubleshoot.py (CheckPrinterSanity.display): Don't display
4342	unless queue is listed.
4343	(ServerFirewalled.display): Likewise.
4344	(QueueNotEnabled.display): Likewise.
4345	(QueueRejectingJobs.display): Likewise.
4346	(PrinterStateReasons.display): Likewise.
4347	(PrinterNotListed.display): Don't display if queue is listed.
4348	(LocalOrRemote.display): Likewise.
4349	(RemoteAddress.display): Likewise.
4350	(ChooseNetworkPrinter.display): Likewise.
4351	(NetworkCUPSPrinterShared.display): Better restrictions.
4352	(NetworkCUPSPrinterEnabled.display): Tighter exception handling.
4353	(NetworkCUPSPrinterAccepting.display): Likewise.
4354
4355	* applet.py (StateReason): Moved...
4356	* statereason.py (StateReason): ...here.  New file.
4357	* Makefile.am (nobase_pkgdata_DATA): Ship it.
4358
43592008-02-13  Tim Waugh  <twaugh@redhat.com>
4360
4361	* troubleshoot.py (CheckNetworkPrinterSanity.display): Fetch
4362	printer attributes if we know the queue name.
4363	(ChoosePrinter.cursor_changed): Don't the
4364	CheckNetworkPrinterSanity test twice.
4365
43662008-02-13  Tim Waugh  <twaugh@redhat.com>
4367
4368	* configure.in: Version 0.7.81.
4369
43702008-02-13  Tim Waugh  <twaugh@redhat.com>
4371
4372	* troubleshoot.py: Detect CUPS servers that have their TCP port
4373	firewalled.
4374
4375	* troubleshoot.py (QueueNotEnabled.display): More explanation.
4376	(ChooseNetworkPrinter.display): Skip over default entry.
4377	(ChoosePrinter.display): Likewise.
4378
4379	* my-default-printer.py (Server.getUserDefault): Fixed breakage
4380	caused by pycups change.
4381	(Server.getSystemDefault): Use getDefault if available.
4382
43832008-02-12  Tim Waugh  <twaugh@redhat.com>
4384
4385	* system-config-printer.py (NewPrinterGUI.nextNPTab): Moved remote
4386	CUPS test to the right place (Ubuntu #178727).
4387
43882008-02-07  Tim Waugh  <twaugh@redhat.com>
4389
4390	* troubleshoot.py (PrintTestPage.__init__): Add a 'Cancel All
4391	Jobs' button.
4392	(PrintTestPage.cancel_clicked): New method.
4393	(PrintTestPage.update_jobs_list): Display all jobs on that
4394	printer, not just our test pages.
4395	(PrintTestPage.update_job): New method.
4396	(PrintTestPage.display): Use it.
4397	(PrintTestPage.update_jobs_list): Likewise.
4398	(AuthenticationDialog): New class.
4399	(PrintTestPage.update_jobs_list): Record test page completion
4400	notify-text messages for diagnostic output.
4401
44022008-02-06  Tim Waugh  <twaugh@redhat.com>
4403
4404	* troubleshoot.py (ChoosePrinter.display): Handle CUPS connection
4405	failure.
4406	(PrinterNotListed.can_click_forward): No more questions to ask.
4407	(PrinterStateReasons.display): Fetch the printer-state-message and
4408	printer-state-reasons fresh from the server.
4409	(PrinterStateReasons.display): Work around a pycups bug.
4410	(PrinterStateReasons.collect_answer): Record state message and
4411	reasons for diagnostic output.
4412
4413	* system-config-printer.glade: Align widgets on the Policies tab.
4414
44152008-02-05  Tim Waugh  <twaugh@redhat.com>
4416
4417	* troubleshoot.py (PrintTestPage): Improvements to the job
4418	display.
4419
44202008-02-04  Tim Waugh  <twaugh@redhat.com>
4421
4422	* configure.in: Version 0.7.80.
4423
44242008-02-04  Tim Waugh  <twaugh@redhat.com>
4425
4426	* troubleshoot.py (Troubleshooter.answers_as_text): Don't
4427	translate this.
4428
4429	* po/POTFILES.in: Added troubleshoot.py.
4430
4431	* system-config-printer.py (GUI.on_troubleshoot_activate): Run the
4432	trouble-shooter.
4433
4434	* troubleshoot.py: New file.
4435	* Makefile.am: Ship it.
4436
44372008-02-01  Tim Waugh  <twaugh@redhat.com>
4438
4439	* system-config-printer.py
4440	(NewPrinterGUI.browse_ipp_queues_thread): Fix enumeration of
4441	classes.
4442
44432008-01-31  Tim Waugh  <twaugh@redhat.com>
4444
4445	* config.py.in: Set DOWNLOADABLE_DRIVER_SUPPORT.
4446	* system-config-printer.py: Remove downloadable driver support if not
4447	enabled in config module.
4448
4449	* ppds.py (PPDs._findBestMatchPPDs): Fixed thinko.
4450
4451	* system-config-printer.py
4452	(NewPrinterGUI.on_tvNPDownloadableDrivers_cursor_changed): Fixed
4453	typo.
4454
4455	* system-config-printer.glade: Line wrap long label.
4456
44572008-01-30  Tim Waugh  <twaugh@redhat.com>
4458
4459	* openprinting.py (OpenPrinting.listDrivers.parse_result): Don't
4460	normalize space in licensetext.
4461
4462	* system-config-printer.py (NewPrinterGUI.fillDeviceTab): Disabled
4463	slow HPLIP URI look-ups until they are moved to the right place.
4464
4465	* system-config-printer.py
4466	(NewPrinterGUI.openprinting_drivers_found): Display traceback for
4467	debugging.
4468	(NewPrinterGUI.on_tvNPDownloadableDrivers_cursor_changed): Fill in
4469	driver properties.
4470
4471	* openprinting.py (OpenPrinting.listDrivers.parse_result): File's
4472	url attribute was missing.
4473	(QueryThread.run): Print query URL for debugging.
4474	(OpenPrinting.listDrivers.parse_result): Re-work data type for XML
4475	format change.
4476	(OpenPrinting.listDrivers.parse_result): Include functionality
4477	elements.
4478	(normalize_space): New function.
4479	(OpenPrinting.listDrivers.parse_result): Normalize space.
4480
44812008-01-29  Tim Waugh  <twaugh@redhat.com>
4482
4483	* system-config-printer.py
4484	(NewPrinterGUI.on_rbtnNPFoomatic_toggled): Better logic for search
4485	widget sensitivity.
4486	(NewPrinterGUI.openprinting_printers_found): Use
4487	threads_enter/threads_leave.
4488	(NewPrinterGUI.on_cmbNPDownloadableDriverFoundPrinters_changed):
4489	Start a query for drivers.
4490	(NewPrinterGUI.openprinting_drivers_found): New method.
4491	(NewPrinterGUI.nextNPTab): Display wait window if driver query is
4492	still in progress.
4493	(NewPrinterGUI.on_rbtnNPFoomatic_toggled): Properly cancel out the
4494	search operation.
4495	(NewPrinterGUI.openprinting_drivers_found): Populate downloadable
4496	drivers list and hide wait window.
4497	(NewPrinterGUI.on_tvNPDownloadableDrivers_cursor_changed): New
4498	method.
4499	(NewPrinterGUI.on_cmbNPDownloadableDriverFoundPrinters_changed):
4500	Cancel any driver query in progress.
4501	(NewPrinterGUI.fillDownloadableDrivers): Avoid traceback when
4502	there are no drivers returned.
4503	(NewPrinterGUI.on_btnNPDownloadableDriverSearch_clicked): Cancel
4504	out the driver search operation if a new printer search is
4505	performed.
4506
4507	* openprinting.py (QueryThread.__init__): Set query thread as
4508	daemon to prevent open queries from keeping the application
4509	running.
4510
4511	* system-config-printer.py
4512	(NewPrinterGUI.openprinting_printers_found): Simplified code.
4513
45142008-01-28  Tim Waugh  <twaugh@redhat.com>
4515
4516	* system-config-printer.py: Import the openprinting module.
4517	(NewPrinterGUI.__init__): Additional set-up for OpenPrinting
4518	widgets.
4519	(NewPrinterGUI.setNPButtons): If downloading a driver, check that
4520	a model is selected before proceeding.
4521	(NewPrinterGUI.on_btnNPDownloadableDriverSearch_clicked): New
4522	method.
4523	(NewPrinterGUI.openprinting_printers_found): New method.
4524	(NewPrinterGUI.on_cmbNPDownloadableDriverFoundPrinters_changed):
4525	New method.
4526	(NewPrinterGUI.__init__): Initialise search handle.
4527	(NewPrinterGUI.on_NPCancel): Cancel search.
4528	(NewPrinterGUI.openprinting_printers_found): Clear search handle.
4529	(NewPrinterGUI.init): Initialise search widgets.
4530	(NewPrinterGUI.openprinting_printers_found): When only one printer
4531	is found from the search, select it automatically.
4532	(NewPrinterGUI.init): Set search button label.
4533	(NewPrinterGUI.on_btnNPDownloadableDriverSearch_clicked): Update
4534	search button label.
4535	(NewPrinterGUI.openprinting_printers_found): Reset search button
4536	label.
4537
4538	* openprinting.py (OpenPrinting.searchPrinters.parse_result):
4539	Don't call the callback twice on error; instead display a
4540	useful traceback.
4541
45422008-01-25  Tim Waugh  <twaugh@redhat.com>
4543
4544	* openprinting.py (OpenPrinting): Fixed test app threading.
4545
45462008-01-25  Tim Waugh  <twaugh@redhat.com>
4547
4548	* configure.in: Version 0.7.79.
4549
45502008-01-25  Tim Waugh  <twaugh@redhat.com>
4551
4552	* openprinting.py: New module.
4553
4554	* Makefile.am: Ship it and install it.
4555
4556	* system-config-printer.py (NewPrinterGUI.__init__): No need to
4557	fetch labels we aren't going to do anything with.
4558	(NewPrinterGUI.on_rbtnNPFoomatic_changed): Set sensitivity of
4559	downloadable driver widgets as a group.
4560	(NewPrinterGUI.__init__): Disable downloadable driver support
4561	until it's working.
4562
45632008-01-18  Tim Waugh  <twaugh@redhat.com>
4564
4565	* system-config-printer.py (GUI.reconnect): Better reconnection
4566	method.
4567	(GUI.save_serversettings): Really refresh server settings after
4568	applying changes.
4569	(NewPrinterGUI.get_hplip_uri_for_network_printer): Add debugging
4570	output.
4571	(NewPrinterGUI.getNetworkPrinterMakeModel): Likewise.
4572
45732008-01-17  Till Kamppeter  <till.kamppeter@gmail.com>
4574
4575	* system-config-printer.glade: Added search button and printer
4576	list combo box to the search term input field for finding
4577	drivers. So the user can select his printer first and then see the
4578	downloadable drivers.
4579
45802008-01-16  Tim Waugh  <twaugh@redhat.com>
4581
4582	* applet.py (JobManager.on_treeview_button_press_event): Use
4583	job-preserved to control whether reprint is allowed, as with the
4584	CUPS web interface (bug #423441).
4585
4586	* system-config-printer.py (GUI.save_serversettings): Refresh
4587	server settings after applying changes (bug #421431).
4588
4589	* applet.py (NewPrinterNotification.install_driver): New method.
4590	(NewPrinterNotification.NewPrinter): Prompt for driver
4591	installation if needed (bug #379321).
4592
45932008-01-11  Till Kamppeter  <till.kamppeter@gmail.com>
4594
4595	* system-config-printer.py (pollDownloadableDrivers): Added code
4596	for querying the OpenPrinting database for downloadable drivers.
4597
45982008-01-11  Tim Waugh  <twaugh@redhat.com>
4599
4600	* system-config-printer.py (GUI.on_btnRefresh_clicked): Try to
4601	reconnect if not connected.
4602
46032008-01-10  Till Kamppeter  <till.kamppeter@gmail.com>
4604
4605	* system-config-printer.py: Started on the code to make the new GUI
4606	elements for the automatic driver download working.
4607
4608	* system-config-printer.glade: Added GUI for automatic driver download
4609	from the OpenPrinting web site.
4610	Updated list of authors in the "About" dialog.
4611
46122008-01-08  Tim Waugh  <twaugh@redhat.com>
4613
4614	* applet.py (JobManager.update_job_creation_times): Fill in number
4615	of hours.
4616
46172008-01-07  Till Kamppeter  <till.kamppeter@gmail.com>
4618
4619	* cupshelpers.py: If the device discovery output of a CUPS backend
4620	has "Unknown" for make and model but something useful in the info
4621	field, copy the info field into the make-and-model field.
4622
4623	* ppds.py: Derive manufacturer name from model name if the manufacturer
4624	name is missing in the Nickname or make-and-model string.
4625	Remove "(Bluetooth)" from model name for more reliable matching.
4626	Handle the manufacturer name "KONICA MINOLTA" correctly (Ubuntu
4627	#64046).
4628	Use case-insensitive when cleaning model names.
4629	For "recommended" Foomatic PPDs give higher priority than a vendor PPD
4630	in case of the recommended driver being not "Postscript" and lower
4631	priority otherwise. So if using the printer in PostScript mode is
4632	recommended, the vendor PPD will be preferred, if another mode of
4633	the printer is recommended (like PCL on HP LaserJet 12xx/13xx) the
4634	appropriate non-PostScript PPD will be used (Ubuntu #172550).
4635
4636	* system-config-printer.py: Allow listing of all files in file
4637	chooser dialog for selecting a custom PPD file. This way also PPDs
4638	without the ".ppd" extension can be selected (Ubuntu #153585).
4639
46402008-01-04  Till Kamppeter  <till.kamppeter@gmail.com>
4641
4642	* system-config-printer.py, ppds.py: Make automatic recognition
4643	of make and model of Bluetooth-connected printers working.
4644
46452007-12-20  Tim Waugh  <twaugh@redhat.com>
4646
4647	* system-config-printer.glade: Make the Wait window a top-level
4648	window not a pop-up (Ubuntu #175766).
4649
4650	* system-config-printer.py (GUI.populateList): Only try to fetch
4651	the default printer if we have a CUPS connection (Ubuntu
4652	#159212).
4653	(GUI.on_tvMainList_cursor_changed): Set data button state when no
4654	CUPS connection.
4655
4656	* system-config-printer.py (NewPrinterGUI.on_entSMBURI_changed):
4657	SMB browser is no longer in the same window as the editable URI
4658	(Ubuntu #173115).
4659
4660	* system-config-printer.py (debugprint): New function.
4661	(nonfatalException): Use it.
4662	(GUI.on_btnPMakeDefault_clicked): Likewise.
4663	(GUI.on_btnPrintTestPage_clicked): Likewise.
4664	(NewPrinterGUI.queryPPDs): Likewise.
4665	(NewPrinterGUI.getPPDs_thread): Likewise.
4666	(NewPrinterGUI.fetchPPDs): Likewise.
4667	(NewPrinterGUI.queryDevices): Likewise.
4668	(NewPrinterGUI.getDevices_thread): Likewise.
4669	(NewPrinterGUI.fetchDevices): Likewise.
4670	(NewPrinterGUI.on_btnIPPVerify_clicked): Likewise.
4671	(NewPrinterGUI.getNPPPD): Likewise.
4672
4673	* cupshelpers.py (debugprint): New function for printing without
4674	propagating print exceptions (Ubuntu #175500).
4675	(copyPPDOptions): Use it.
4676	(setPPDPageSize): Likewise.
4677	(missingPackagesAndExecutables.pathcheck): Likewise.
4678	(missingPackagesAndExecutables): Likewise.
4679
46802007-12-14  Tim Waugh  <twaugh@redhat.com>
4681
4682	* cupshelpers.py (missingPackagesAndExecutables): Moved this
4683	function here...
4684	* system-config-printer.py (NewPrinterGUI.checkDriverExists):
4685	...from here.
4686
46872007-12-14  Tim Waugh  <twaugh@redhat.com>
4688
4689	* applet.py (StateReason.__cmp__): Fixed use of __cmp__ (Ubuntu
4690	#149393).
4691
46922007-12-12  Tim Waugh  <twaugh@redhat.com>
4693
4694	* system-config-printer.py
4695	(NewPrinterGUI.on_btnIPPVerify_clicked): Fixed typo.
4696
46972007-12-03  Till Kamppeter  <till.kamppeter@gmail.com>
4698
4699	* cupshelpers.py (getPrinters): Determine via printers.conf whether
4700	an IPP queue was locally defined or whether it appears induced by
4701	a broadcasted remote queue.
4702	* system-config-printer.py (nextNPTab): If an IPP queue from a remote
4703	CUPS server gets auto-detected create a local raw queue, so that the
4704	driver from the server gets used. Such CUPS queues are queues which
4705	are advertised by the server only via DNS-SD/mDNS/Bonjour/ZeroConf
4706	as for example from Mac OS X servers. They can be detected via the
4707	dnssd backend from http://www.linuxprinting.org/download/printing/dnssd
4708	(on_tvMainList_cursor_changed, fillPrinterTab): Allow deleting/editing
4709	of local raw IPP queues which point to a remote CUPS queue.
4710	(checkNPName): Do not allow silent overwriting of locally defined
4711	raw IPP queues pointing to a remote CUPS queue.
4712	(on_tvNPDevices_cursor_changed): Fixed bug of IPP printer setup
4713	GUI not showing the printer parameters when selecting an
4714	auto-detected IPP printer
4715	(getNPPPD): Fixed traceback when creating a raw queue.
4716	(nextNPTab): When stepping back with the "Previous" button in the
4717	"New printer" wizard the empty "Installed Options" screen was not
4718	skipped.
4719
47202007-11-30  Tim Waugh  <twaugh@redhat.com>
4721
4722	* applet.py: Fixed New Printer notifications after they got broken
4723	by the icon hiding changes.
4724
47252007-11-29  Tim Waugh  <twaugh@redhat.com>
4726
4727	* ppds.py (PPDs.__init__): For C/POSIX locale, filter PPDs by
4728	American English.
4729
4730	* system-config-printer.py (NewPrinterGUI.fillDriverList): Include
4731	PPD language in driver description (Ubuntu #161037).
4732
4733	* applet.py (JobManager.refresh): If there are no jobs but there
4734	is a printer warning/error indicated by the icon, set the icon
4735	tooltip to the reason description.
4736	(JobManager.__init__): Fix printer status window columns so that
4737	the full printer name can be seen.
4738
47392007-11-27  Tim Waugh  <twaugh@redhat.com>
4740
4741	* system-config-printer.glade: Set printer icon in Connect dialog.
4742
4743	* system-config-printer.py (GUI.__init__): Set AboutDialog logo by
4744	icon name, set URL and email hooks, set icon (Ubuntu #165101).
4745
4746	* applet.glade: Set Ctrl+R accelerator for Refresh menu
4747	entry (Ubuntu #137984).
4748
4749	* system-config-printer.py (GUI.fillPrinterTab): Fetch attributes
4750	on demand.
4751
4752	* cupshelpers.py (Printer.getAttributes): Make this method
4753	public.
4754	(Printer.__init__): Don't fetch attributes automatically.
4755
4756	* system-config-printer.py
4757	(NewPrinterGUI.browse_ipp_queues_thread): Handle exceptions other
4758	than RuntimeError and cups.IPPError (bug #252304).
4759	(NewPrinterGUI.on_btnIPPVerify_clicked): Get printer attributes by
4760	printer URI not name, to prevent pycups constructing a CUPS URI
4761	(bug #252304).
4762
47632007-11-22  Till Kamppeter  <till.kamppeter@gmail.com>
4764
4765	* print-applet.desktop.in: Removed the last printer.png (Ubuntu package
4766	did not build with Icon=printer.png in the .desktop file).
4767
47682007-11-22  Tim Waugh  <twaugh@redhat.com>
4769
4770	* configure.in: Version 0.7.78.
4771
47722007-11-22  Tim Waugh  <twaugh@redhat.com>
4773
4774	* applet.py (JobManager.check_state_reasons): Emblems and
4775	notifications make the icon useful.  For notifications, make the
4776	icon visible if it was not previously visible.  For emblems, do
4777	not hide the icon if currently visible (Ubuntu #151360).
4778	(JobManager.on_icon_hide_activate): When hiding the icon, allow it
4779	to become visible next time a job is submitted.
4780	(JobManager.__init__): Attach signal receiver after everything is
4781	correctly initialised.
4782
47832007-11-21  Tim Waugh  <twaugh@redhat.com>
4784
4785	* cupshelpers.py (activateNewPrinter): Use getDefault (or, failing
4786	that, getDests) to find whether a default printer is set.
4787	* system-config-printer.py (GUI.populateList): Likewise.
4788
4789	* system-config-printer.py (GUI.on_btnPrintTestPage_clicked):
4790	Better check for whether the CUPS server is local.
4791
47922007-11-19  Tim Waugh  <twaugh@redhat.com>
4793
4794	* applet.py (NewPrinterNotification.any_jobs_or_errors): Fixed
4795	typo (bug #390431).
4796
4797	* system-config-printer.py (NewPrinterGUI.on_btnNPApply_clicked):
4798	Handle unexpected exceptions a little bit better.
4799	(fatalException): New function.
4800
48012007-11-15  Tim Waugh  <twaugh@redhat.com>
4802
4803	* system-config-printer.py (GUI.getSelectedItem): Decode GtkStore
4804	value from UTF-8.
4805
48062007-11-14  Tim Waugh  <twaugh@redhat.com>
4807
4808	* system-config-printer.glade: Add a blank page to the main
4809	window's right-pane notebook for occasions when there is a problem
4810	fetching information about the printer.
4811	* system-config-printer.py (GUI.on_tvMainList_cursor_changed):
4812	When cupsGetPPD2() fails this is not fatal (bug #382031).
4813
48142007-11-13  Tim Waugh  <twaugh@redhat.com>
4815
4816	* applet.py (WaitForJobs): New class to throttle the rate of
4817	checking for jobs or error messages when in start-up mode.  This
4818	prevents the applet being a nuisance when a large number of CUPS
4819	administration operations are performed in a batch.
4820
48212007-11-11  Tim Waugh  <twaugh@redhat.com>
4822
4823	* manage-print-jobs.desktop.in, my-default-printer.desktop.in,
4824	system-config-printer.desktop.in: Don't require PNG format
4825	icon (Ubuntu #152634).
4826
48272007-11-06  Tim Waugh  <twaugh@redhat.com>
4828
4829	* system-config-printer.glade: Better widget layouts for JetDirect
4830	and IPP device types in the New Printer dialog.
4831
4832	* system-config-printer.py (NewPrinterGUI.update_IPP_URI_label):
4833	Show the IPP queue name widget and update the forward/backward
4834	buttons.
4835	(NewPrinterGUI.on_tvNPDevices_cursor_changed): Set the queue to a
4836	sensible CUPS template.
4837
48382007-10-31  Tim Waugh  <twaugh@redhat.com>
4839
4840	* ppds.py (main): Allow stand-alone Device ID testing.
4841
48422007-10-30  Tim Waugh  <twaugh@redhat.com>
4843
4844	* configure.in: Version 0.7.77.
4845
48462007-10-30  Tim Waugh  <twaugh@redhat.com>
4847
4848	* system-config-printer.glade: Removed reference to applet.png.
4849
4850	* system-config-printer.glade: Tooltips for the button bar
4851	buttons (bug #335601).
4852
48532007-10-23  Tim Waugh  <twaugh@redhat.com>
4854
4855	* applet.py (StateReason): Better state reason icon names.
4856
48572007-10-18  Tim Waugh  <twaugh@redhat.com>
4858
4859	* applet.py (JobManager.check_state_reasons): Reverted testing
4860	change.
4861
48622007-10-17  Tim Waugh  <twaugh@redhat.com>
4863
4864	* print-applet.desktop.in: Removed reference to applet.png.
4865
4866	* applet.png: Removed.
4867	* inspecting-printer.png: Removed.
4868	* Makefile.am: Removed references to shipped icons.
4869
4870	* applet.py (ICON, JobManager.__init__): Use 'printer' named icon
4871	from theme (Ubuntu #152634).
4872
4873	* applet.py (StateReason): Use named icons for state reason
4874	severities (part of Ubuntu #152634).
4875	(JobManager.check_state_reasons): Load them from the theme.
4876	(JobManager.set_printer_status_icon): Likewise.
4877
4878	* manage-print-jobs.desktop.in (Icon): Likewise.
4879	* applet.py (JobManager.set_special_status_icon,
4880	NewPrinterNotification.GetReady): Use 'document-print-preview'
4881	named icon from theme (Ubuntu #152634).
4882
48832007-10-16  Tim Waugh  <twaugh@redhat.com>
4884
4885	* applet.py: Reverted mistaken commit (Ubuntu #149572).
4886
48872007-10-15  Tim Waugh  <twaugh@redhat.com>
4888
4889	* po/no.po: Removed (bug #332381).
4890	* configure.in (ALL_LINGUAS): Removed 'no'.
4891
4892	* Makefile.am (fix-glade): Remove toolbar_style property so as not
4893	to over-ride the session preferences (Ubuntu #135844).
4894
48952007-10-15  Tim Waugh  <twaugh@redhat.com>
4896
4897	* configure.in: Version 0.7.76.
4898
48992007-10-15  Tim Waugh  <twaugh@redhat.com>
4900
4901	* applet.py (JobManager.__init__): Set text domain for Glade
4902	(Ubuntu #149572).
4903
49042007-10-05  Tim Waugh  <twaugh@redhat.com>
4905
4906	* ppds.py (PPDs._findBestMatchPPDs): Efficiency improvement (don't
4907	run lower() on the loop-constant string).
4908	(PPDs._findBestMatchPPDs): The model search should be performed in
4909	model order.
4910
49112007-10-05  Till Kamppeter  <till.kamppeter@gmail.com>
4912
4913	* ppds.py (_findBestMatchPPDs): Do case-insensitive match when
4914	matching "most important" word. Especially important for matching
4915	Canon printers (Ubuntu #149264).
4916
49172007-10-05  Tim Waugh  <twaugh@redhat.com>
4918
4919	* system-config-printer.glade: SMB device screen padding changes.
4920
4921	* system-config-printer.py (NewPrinterGUI.update_IPP_URI_label):
4922	New method.
4923	(NewPrinterGUI.on_entNPTIPPHostname_changed): Use it.
4924	(NewPrinterGUI.on_entNPTIPPQueuename_changed): New method.
4925	(NewPrinterGUI.on_btnIPPVerify_clicked): New method.
4926	(NewPrinterGUI.browse_ipp_queues_thread): Display a different
4927	message when the IPP request failed.
4928
4929	* system-config-printer.glade: Another IPP browse change.
4930
4931	* pysmb.py: More consistency and care in building command lines.
4932
49332007-10-03  Till Kamppeter  <till.kamppeter@gmail.com>
4934
4935	* my-default-printer.py: Corrected gettext domain (Ubuntu #147788).
4936
49372007-10-02  Tim Waugh  <twaugh@redhat.com>
4938
4939	* system-config-printer.py (GUI.on_server_changed): Fixed change
4940	tracking.
4941	(GUI.fillServerTab): Set sensitivity of 'Allow printing from the
4942	Internet' (Ubuntu #146471).
4943	(GUI.save_printer): Fetch server settings if printer was saved.
4944	This allows us to update the 'not published' label earlier.
4945
4946	* applet.py (StateReason.__cmp__): Fixed typo (Ubuntu #148022).
4947
4948	* system-config-printer.glade: Wrap explanation text for other job
4949	options (Ubuntu #148010).
4950
49512007-10-01  Tim Waugh  <twaugh@redhat.com>
4952
4953	* system-config-printer.py (GUI.on_server_changed): Fixed
4954	traceback (Ubuntu #139192).
4955
4956	* my-default-printer.py (Dialog.run): Disable the Set Default
4957	button when there are no printers available (Ubuntu #146925).
4958
4959	* system-config-printer.glade: Give a proper name to the Connect
4960	button.
4961	* system-config-printer.py (GUI.on_connect_servername_changed):
4962	Disable the Connect button when the server name is
4963	empty (Ubuntu #147450).
4964
49652007-09-28  Tim Waugh  <twaugh@redhat.com>
4966
4967	* cupshelpers.py: Removed shebang.
4968	(Printer.setOption): Convert floating point values to strings in a
4969	locale-safe manner (Ubuntu #145693).
4970	(Printer._getAttributes): Avoid mis-interpreting '1,2'-type
4971	values.
4972
4973	* system-config-printer.py (GUI.fillPrinterTab): Handle strange
4974	options a little bit more gracefully.
4975
4976	* system-config-printer.py: Don't import cupsd module.
4977
4978	* cupsd.py: Removed.
4979	* Makefile.am: Don't ship cupsd.py.
4980
4981	* system-config-printer.glade: Alignment fixes for SMB device
4982	page.
4983
49842007-09-27  Tim Waugh  <twaugh@redhat.com>
4985
4986	* ppds.py (PPDs.__init__): CUPS sets the 'raw' model's
4987	ppd-make-and-model to 'Raw Queue' which unfortunately then appears
4988	as manufacturer Raw and model Queue.  Use 'Generic' for this
4989	model.
4990
49912007-09-26  Tim Waugh  <twaugh@redhat.com>
4992
4993	* system-config-printer.py
4994	(NewPrinterGUI.browse_smb_hosts_thread): This is a translatable
4995	string.
4996
4997	* system-config-printer.py (GUI.on_entNPTDevice_changed): Set
4998	button sensitivity.
4999	* system-config-printer.glade: Added 'changed' handler for URI
5000	text entry.
5001
5002	* system-config-printer.py (NewPrinterGUI.__init__): New widgets.
5003	(NewPrinterGUI.on_entNPTIPPHostname_changed): New method.
5004	(NewPrinterGUI.__init__): Set up IPP browser.
5005	(NewPrinterGUI.on_btnIPPFindQueue_clicked): Display IPP browser.
5006	(NewPrinterGUI.browse_ipp_queues): Start IPP browse thread.
5007	(NewPrinterGUI.browse_ipp_queues_thread): Browse for IPP queues.
5008	(NewPrinterGUI.on_btnIPPBrowseRefresh_clicked): Fixed typo.
5009
5010	* system-config-printer.glade: IPP browse dialog and re-worked IPP
5011	device page.
5012
5013	* system-config-printer.py (GUI.on_tvMainList_row_activated): Just
5014	selecting printer type headings should not expand or collapse the
5015	list, but activating them (double-clicking) should.  Part of
5016	Ubuntu #144106.
5017
5018	* system-config-printer.py (GUI.setDataButtonState): Don't allow
5019	test pages for raw queues (Ubuntu #145098).
5020
5021	* ppds.py (PPDs._findBestMatchPPDs): Rather than just looking for
5022	the longest initial match in model order, sort our model name into
5023	the available models and look at the immediate neighbours.  Pick
5024	the longest initial match from them (bug #244546).
5025	(main): New ID matching test case.
5026
50272007-09-25  Tim Waugh  <twaugh@redhat.com>
5028
5029	* ppds.py (getDriverType): Fix foomatic recommended driver
5030	discovery (requires CUPS patch to prevent '(recommended)' string
5031	getting stripped).
5032	(PPDs.getDriverTypeWithBias): Let getDriverType have access to the
5033	PPDs object.
5034
50352007-09-23  Till Kamppeter  <till.kamppeter@gmail.com>
5036
5037	* system-config-printer.py: Added missing argument to call of the
5038	  set_transient_for() method of ErrorDialog.
5039
50402007-09-21  Tim Waugh  <twaugh@redhat.com>
5041
5042	* po/ko.po: Updated (from 0.7.32.x POT; needs further updating).
5043
50442007-09-20  Tim Waugh  <twaugh@redhat.com>
5045
5046	* options.py (OptionAlwaysShownSpecial): New class to handle
5047	orientation-requsted.
5048	* system-config-printer.py (GUI.__init__): Use it.
5049
50502007-09-19  Tim Waugh  <twaugh@redhat.com>
5051
5052	* options.py (OptionAlwaysShown.__init__): Handle IPP_TAG_NOVALUE
5053	by treating the option as not set (i.e. Reset button is not
5054	sensitive).
5055
5056	* system-config-printer.py: Require pycups-1.9.27 so that
5057	IPP_TAG_NOVALUE attributes have Python value None instead of a
5058	string.
5059
5060	* options.py (OptionAlwaysShown.__init__): Handle IPP_TAG_NOVALUE
5061	by translating it to a valid default value.
5062
50632007-09-18  Tim Waugh  <twaugh@redhat.com>
5064
5065	* configure.in: Version 0.7.75.
5066
50672007-09-18  Till Kamppeter  <till.kamppeter@gmail.com>
5068
5069	* system-config-printer.py, system-config-printer.glade: When
5070	changing the PPD lets the user's settings stay conserved. This is
5071	the behaviour expected more by the user and it is also the default
5072	behavior of CUPS.
5073
50742007-09-18  Tim Waugh  <twaugh@redhat.com>
5075
5076	* system-config-printer.py (NewPrinterGUI.nextNPTab): Show the
5077	'No installable options' label when we can't fetch the PPD.
5078
50792007-09-18  Florian Festi  <ffesti@redhat.com>
5080
5081	* system-config-printer.py: Show Installable Options when changing
5082	PPD without accepting old settings
5083	* system-config-printer.glade: rename Installable Options to Installed Options
5084
50852007-09-18  Till Kamppeter  <till.kamppeter@gmail.com>
5086
5087	* system-config-printer.py: Remove duplicate URIs from the list of
5088	auto-discovered printers. This way one can use more than one
5089	network printer auto-discovery CUPS backend using different
5090	methods.
5091
50922007-09-18  Tim Waugh  <twaugh@redhat.com>
5093
5094	* ppds.py (PPDs.getPPDNameFromDeviceID): Fixed typo.
5095
50962007-09-17  Till Kamppeter  <till.kamppeter@gmail.com>
5097
5098	* system-config-printer.py: Avoid duplicate "(recommended)" marks
5099	  in the list of available drivers/PPDs for a given printer
5100	* ppds.py: Fixed typo.
5101
51022007-09-17  Tim Waugh  <twaugh@redhat.com>
5103
5104	* system-config-printer.glade: A little more descriptive text in
5105	the Installed Options page.
5106
5107	* system-config-printer.py (NewPrinterGUI.__init__): Share error
5108	display functions with the main class.
5109	(NewPrinterGUI.on_btnNPApply_clicked): Hide wait window before
5110	displaying error.
5111
51122007-09-17  Florian Festi  <ffesti@redhat.com>
5113
5114	* system-config-printer.py (NewPrinterGUI.on_btnNPApply_clicked):
5115	Add changes to Installable Options to the PPD
5116	(fillNPInstallableOptions): fix invisible Installable Options
5117
51182007-09-17  Tim Waugh  <twaugh@redhat.com>
5119
5120	* ppds.py (PPDs.getMakes): Use strcoll to sort manufacturer's
5121	names.
5122
5123	* system-config-printer.py (show_help): Better help message.
5124
51252007-09-15  Tim Waugh  <twaugh@redhat.com>
5126
5127	* po/fi.po: Updated.
5128
51292007-09-14  Tim Waugh  <twaugh@redhat.com>
5130
5131	* system-config-printer.py (SMBURI): New class for manipulating
5132	SMB URIs.
5133	(GUI.fillPrinterTab): Use it.
5134	(NewPrinterGUI.on_entSMBURI_changed): Likewise.
5135	(NewPrinterGUI.on_btnSMBBrowseOk_clicked): Likewise.
5136	(NewPrinterGUI.on_btnSMBVerify_clicked): Likewise.
5137	(NewPrinterGUI.getDeviceURI): Likewise.
5138	(NewPrinterGUI.__init__): Fetch chkSMBAuth widget.
5139	(NewPrinterGUI.nextNPTab): Sanitize SMB URIs (remove passwords)
5140	before giving them to the PPD matcher; otherwise debug messages
5141	might show passwords.
5142	(NewPrinterGUI.fillDeviceTab): Don't print current URI.
5143	(NewPrinterGUI.on_entSMBURI_changed): Set authentication check-box
5144	inactive when not needed.
5145	(NewPrinterGUI.getDeviceURI): No user and password when the
5146	authentication check-box is not checked.
5147	(NewPrinterGUI.on_btnSMBVerify_clicked): Use get_active on the
5148	check-box rather than looking at the table's sensitivity.
5149	(GUI.fillPrinterTab): Set device URI sensitive when there is no
5150	needed for an ellipsis.
5151	(NewPrinterGUI.on_entSMBURI_changed): Always set username and
5152	password fields, even when empty.
5153	(NewPrinterGUI.on_btnSMBBrowseOk_clicked): Clear SMB username and
5154	password fields.
5155	(NewPrinterGUI.on_tvNPDevices_cursor_changed): Likewise.
5156	(NewPrinterGUI.on_entSMBURI_changed): Removed redundant code.
5157	(GUI.populateList): Select newly added printer instead of
5158	previously selected printer.
5159
51602007-09-13  Tim Waugh  <twaugh@redhat.com>
5161
5162	* system-config-printer.py (NewPrinterGUI.__init__): Fetch the
5163	InfoDialog and lblInfo widgets from the Glade XML.
5164	(GUI.__init__): Fetch the widgets for the 'copy printer' dialog.
5165	(GUI.on_copy_activate): Select newly-copied printer.
5166	(GUI.populateList): When deleting a printer, select the default
5167	printer again.
5168	(NewPrinterGUI.getNPPPD): It is non-fatal for getServerPPD to fail
5169	here.
5170	(NewPrinterGUI.nextNPTab): Don't try to show installable options
5171	when the PPD cannot be fetched due to (a) lack of pycups support,
5172	(b) lack of libcups support, or (c) lack of support in the CUPS
5173	server.
5174	(NewPrinterGUI.nextNPTab): Only try to fill in Installable Options
5175	page if it's the next page (Change PPD currently doesn't have such
5176	a page).
5177
51782007-09-12  Tim Waugh  <twaugh@redhat.com>
5179
5180	* system-config-printer.py
5181	(NewPrinterGUI.on_btnSMBBrowseOk_clicked): Don't ignore 'changed'
5182	signal from Entry widget; otherwise the Verify button never gets
5183	set sensitive.
5184	(NewPrinterGUI.__init__): Fetch the ErrorDialog and lblError
5185	widgets from the Glade XML.
5186
5187	* system-config-printer.glade: Prevent GTK+ warning about
5188	non-scrollable widgets.
5189
5190	* system-config-printer.py (GUI.save_printer): When a class is
5191	removed on the server, remove it from the user interface.
5192
51932007-09-12  Florian Festi  <ffesti@redhat.com>
5194
5195	* system-config-printer.py: Split out NewPrinterWindow into an own
5196	class and move all kind of code arround.
5197	* system-config-printer.glade: Add a Installable Options tab to the
5198	New Printer Dialog.
5199
5200	* still missing:
5201	 - Installable Options are not set yet.
5202	 - Installable Options are not shown when changing the PPD
5203
52042007-09-11  Till Kamppeter  <till.kamppeter@gmail.com>
5205
5206	* Makefile.am: Let "make install" also install the new file
5207	gtk_treeviewtooltips.py
5208
52092007-09-07  Tim Waugh  <twaugh@redhat.com>
5210
5211	* system-config-printer.py (GUI.maintenance_command): Set MIME
5212	type for command file.
5213	(GUI.setDataButtonState): Set maintenance buttons insensitive when
5214	not possible to submit maintenance jobs.
5215	(GUI.populateList): Don't select the default printer after changes
5216	to another printer have been made.
5217	(GUI.get_PPD_but_handle_errors): Always construct URI from input
5218	fields (bug #281551).
5219	(GUI.fillDeviceTab): No need to browse for SMB servers when
5220	changing device now; a separate Browse button handles that.
5221
52222007-09-05  Tim Waugh  <twaugh@redhat.com>
5223
5224	* system-config-printer.py: Moved state widget code to a sane place.
5225	(GUI.maintenance_command): New method implementing maintenance
5226	commands.
5227
5228	* system-config-printer.glade: Button text changes.
5229
52302007-09-05  Florian Festi  <ffesti@redhat.com>
5231
5232	* system-config-printer.glade: Adjusted spacing for small dialogs
5233	* system-config-printer.py(on_server_changed, fillServerTab):
5234	Set unsupported Server Settings insensitve instead of hidden
5235	Make SMBBrowseDialog transient to the New Printer Dialog
5236	Disable Verify SMB URI button if URI is empty
5237	Make sure new default Class names are unique
5238	Start counting from 2 when creating unique names
5239	Remove Apply New Printer/Class tab
5240	Added buttons for "Print Self Test" and "Clean Print Head"
5241
52422007-09-04  Florian Festi  <ffesti@redhat.com>
5243
5244	* system-config-printer.glade, system-config-printer.py:
5245	Remove inactive PPD comments in the New Printer Dialog
5246	Show human readable name in the driver list
5247	Added tooltips to driver list
5248
5249	* system-config-printer.py: Fix locking problems in PPD and Devices fetching code
5250
52512007-09-04  Tim Waugh  <twaugh@redhat.com>
5252
5253	* system-config-printer.py (GUI.setConnected): Set sensitivity for
5254	new check-box.
5255	(GUI.fillServerTab): Show setting for new check-box.
5256	(GUI.on_server_changed): Set sensitivity for new check-box.
5257	(GUI.save_serversettings): Set server setting from check-box.
5258
5259	* system-config-printer.glade: New check-box for 'Allow printing
5260	from the Internet'.
5261
52622007-09-03  Tim Waugh  <twaugh@redhat.com>
5263
5264	* po/pl.po: Updated (bug #263001).
5265
5266	* system-config-printer.py (GUI.on_tvSMBBrowser_cursor_changed):
5267	Prevent traceback when iter is None.
5268
52692007-09-03  Florian Festi  <ffesti@redhat.com>
5270
5271	* system-config-printer.glade, system-config-printer.py:
5272	Move SMB browser into an own dialog that is filled in a separate thread.
5273
5274	* pysmb.py: Remove signal.signal to allow usage in sub thread
5275
52762007-08-31  Tim Waugh  <twaugh@redhat.com>
5277
5278	* my-default-printer.py (handle_sigchld): Ignore OSError
5279	(Ubuntu	#136403).
5280
52812007-08-30  Florian Festi  <ffesti@redhat.com>
5282
5283	* system-config-printer.glade:
5284	 - Use gtk.AboutDialog
5285	 - Make sub dialogs center on parent
5286
52872007-08-30  Tim Waugh  <twaugh@redhat.com>
5288
5289	* configure.in: Version 0.7.74.
5290
52912007-08-30  Tim Waugh  <twaugh@redhat.com>
5292
5293	* Makefile.am: Added 'help' target.
5294
52952007-08-30  Florian Festi  <ffesti@redhat.com>
5296
5297	* system-config-printer.py (on_new_printer_activate): call
5298	on_rbtnNPFoomatic_toggled after initNewPrinterWindow to avoid
5299	trace back
5300
53012007-08-30  Tim Waugh  <twaugh@redhat.com>
5302
5303	* system-config-printer.glade: Applied patch from Florian Festi to
5304	fix widget padding in the dialogs.
5305
53062007-08-29  Tim Waugh  <twaugh@redhat.com>
5307
5308	* po/fr.po: Updated (bug #264281).
5309
5310	* system-config-printer.py (__init__): Developer can use
5311	environment variable SYSTEM_CONFIG_PRINTER_GLADE to override the
5312	location of the XML file to read.
5313	(GUI.connect): When connecting to a new server, try to select the
5314	printer we already had selected.  This is useful when selecting a
5315	remote printer and then clicking 'Go to...'.
5316	(GUI.initNewPrinterWindow): Fixed New Class dialog.
5317	(GUI.populateList): Expand list in order to select specified
5318	printer.
5319
5320	* Makefile.am: New target 'run'.
5321
5322	* system-config-printer.py: Expand/collapse printer lists.  Patch
5323	from Florian Festi.
5324
5325	* system-config-printer.glade: Applied patch from Florian Festi to
5326	fix widget padding in the main window.
5327
5328	* po/pl.po: Updated (bug #263001).
5329
53302007-08-24  Tim Waugh  <twaugh@redhat.com>
5331
5332	* configure.in: Version 0.7.73.
5333
53342007-08-24  Tim Waugh  <twaugh@redhat.com>
5335
5336	* system-config-printer.py (main): Use CUPS_USER if set in the
5337	environment.
5338
5339	* Makefile.am: New 'fix-glade' target for fixing glade XML produced
5340	by the glade-2 program; for instance, removing 'invisible_char'
5341	attributes.
5342
53432007-08-24  Till Kamppeter  <till.kamppeter@gmail.com>
5344
5345	* system-config-printer.glade: Removed superfluous
5346	scrolledwindow+viewport set around the printer list. Thanks
5347	to Ryan Lovett for this patch. Fixes Ubuntu bug 134427.
5348
53492007-08-23  Till Kamppeter  <till.kamppeter@gmail.com>
5350
5351	* system-config-printer.py: Fixed display of warning message that
5352	a shared printer is not really published due to the CUPS server
5353	settings. The message was not removed when turning on printer
5354	sharing in the CUPS server setting. This fixes Ubuntu bug 132735.
5355	Set decent default selection in the main window when
5356	system-config-printer is started without options. If there is a
5357	default printer, select it, if not select the first printer in
5358	the list, and if there are no printers, select the server
5359	settings. Fixes Ubuntu bug 132652.
5360
53612007-08-22  Till Kamppeter  <till.kamppeter@gmail.com>
5362
5363	* pysmb.py: Added new function get_host_list_from_domain() which
5364	lists all hosts belonging to a given domain using the command
5365	"nmblookup -R '<DOMAIN>'" and getting the SMB names of the hosts
5366	via "nmblookup -A <IP>". This is more reliable than the old
5367	function get_host_list() which uses "smbclient -N -L //<DOMAIN IP>".
5368	See Ubuntu bug 127152.
5369	Modified the test procedure to use the new function.
5370
5371	* system-config-printer.py: Look up the hosts in a domain with the
5372	new get_host_list_from_domain() function. Make also sure that all
5373	items in the tree list of SMB domains/servers/shares have the little
5374	triangle to show the sub-tem list, even before the sub-items were
5375	scanned. These two fixes should fix Ubuntu bug 127152.
5376	Quote/Unquote all elements of the SMB device URIs, as spaces are
5377	also allowed in SMB host and share names. Should fix Ubuntu bug
5378	128261.
5379	Scan SMB host list when in the main window the "Change" button for
5380	the URI is clicked and the URI is an SMB URI. This way the list
5381	of SMB domains/servers/shares in the dialog for setting the URI
5382	does not stay empty.
5383	Handle exceptions raised by the browse_smb_hosts() function if it
5384	is called before the add-printer wizard window is open. Should fix
5385	Ubuntu bug 133573.
5386
53872007-08-21  Till Kamppeter  <till.kamppeter@gmail.com>
5388
5389	* pysmb.py: "nmblookup -M -- -" not always gives a result. If not,
5390	fall back to "nmblookup '*'". This should fix Ubuntu bug 127152.
5391	If a printer share name has spaces, it got truncated at its first
5392	space this is fixed now and should fix Ubuntu bug 128261.
5393
5394	* system-config-printer.py: Extract make and model name from the
5395	PPD file for positioning the cursor in the make/model selection
5396	whenever a PPD file was found, also with STATUS_NO_DRIVER.
5397	If there is no device ID information at all call PPD search with
5398	a non-existing device ID to get a fallback PPD (like textonly.ppd or
5399	postscript.ppd). This way the model selection cursor is never simply
5400	set onto the first entry of the "Generic" printers.
5401	This two changes fix Ubuntu bug 102389.
5402
5403	* ppds.py: Let the PPDs coming with CUPS have higher priority than the
5404	"Generic" PPDs of Foomatic, but lower priority than model-specific
5405	Foomatic PPDs.
5406	(PPDs._findBestMatchPPDs): This function raised an exception on model
5407	names without digits.
5408
54092007-08-16  Till Kamppeter  <till.kamppeter@gmail.com>
5410
5411	* ppds.py: Allow textonly.ppd and postscript.ppd (for fallback on
5412	unknown printer models) to be at any arbitrary place in the PPD
5413	file directories
5414
54152007-08-16  Tim Waugh  <twaugh@redhat.com>
5416
5417	* ppds.py (PPDs.getPPDNameFromDeviceID): Better fall-back if no
5418	textonly.ppd is available.
5419	(PPDs._findBestMatchPPDs): If no match is found at all, try
5420	searching for the model ID word, with decreasing significant
5421	figures.
5422
54232007-08-15  Till Kamppeter  <till.kamppeter@gmail.com>
5424
5425	* system-config-printer.py: Added support for custom
5426	page-size-specific test pages. When clicking "Test Page"
5427	system-config-printer looks at first for a file
5428	/usr/share/system-config-printer/testpage-<PageSize>.ps where
5429	<PageSize> is the current page size setting of the printer
5430	(case-insensitive matching). If such a file is there, it will be
5431	printed, otherwise the standard CUPS test page. This allows
5432	distributions to place custom test pages (Thanks to Martin Pitt
5433	from Ubuntu/Debian).
5434
5435	* system-config-printer.py: Made system-config-printer more
5436	flexible for special situations:
5437          - system-config-printer can be started and used by users in
5438	    the lpadmin group now
5439	  - system-config-printer can be started on systems without local CUPS
5440	    deamon (with client.conf pointing to a remote server)
5441	This should not break running system-config-printer as root.
5442
54432007-08-15  Tim Waugh  <twaugh@redhat.com>
5444
5445	* system-config-printer.py (GUI.populateList): New optional
5446	argument for selecting an initial printer after connection (Ubuntu
5447	#132652).
5448	(GUI.populateList): Initially select default/first printer/class.
5449
5450	* system-config-printer.py (GUI.save_serversettings): Handle
5451	RuntimeError from cups.adminSetServerSettings (Ubuntu #131848).
5452	(GUI.makeNameUnique): New method, for creating unique queue
5453	names (Ubuntu #132227).
5454	(GUI.nextNPTab): Use it.
5455	(GUI.on_btnNPApply_clicked): Show the Wait window when adding
5456	a new printer.
5457	(GUI.cupsPasswdCallback): Hide the Wait window while asking for
5458	password.
5459
5460	* ppds.py (PPDs._findBestMatchPPDs): Don't try to match 'series'
5461	in Device ID MDL fields.
5462
5463	* system-config-printer.glade (WaitWindow): New window.
5464	* system-config-printer.py: Responsiveness improvements.  Call
5465	into the main GTK+ loop when waiting for threads to finish, and
5466	index PPDs in the PPD thread.
5467
5468	* system-config-printer.py (GUI.nextNPTab): Ask for name, location
5469	and description after model selection (Ubuntu #132227).
5470	(GUI.nextNPTab): Choose printer name based on selected model if no
5471	Device ID was available.
5472
54732007-08-14  Tim Waugh  <twaugh@redhat.com>
5474
5475	* system-config-printer.py (GUI.initNewPrinterWindow): Set
5476	location as the hostname.
5477	(GUI.get_hplip_uri_for_network_printer): Protect hostname against
5478	shell expansion.
5479	(GUI.fillDeviceTab): Catch non-fatal exceptions when fetching make
5480	and model information from network printers.
5481
5482	* system-config-printer.py (GUI.nextNPTab): Switch the first two
5483	pages of the New Printer wizard around, so that the device is
5484	chosen first and then the name.
5485	(GUI.initNewPrinterWindow): Likewise.
5486	(GUI.__init__): Query devices as soon as the application is
5487	started.
5488	(GUI.on_new_printer_activate): Fill device tab first when
5489	displaying the New Printer wizard.
5490	(GUI.nextNPTab): Choose an appropriate name for the new queue if
5491	possible.
5492	(GUI.setNPButtons): Adjust which pages get forward/back buttons.
5493
5494	* ppds.py (PPDs.getPPDNameFromDeviceID): Unbreak HPLIP made-up
5495	Device IDs.
5496
5497	* system-config-printer.py (GUI.on_tvNPDevices_cursor_changed):
5498	Update wizard buttons in device selection screen, to allow for
5499	validation.
5500	(GUI.setNPButtons): Validate device URI.
5501	(validDeviceURI): New function for validating device URIs.
5502	(GUI.fillDeviceTab): Fix display of current URI.
5503
55042007-08-14  Till Kamppeter  <till.kamppeter@gmail.com>
5505
5506	* ppds.py: Strip version numbers from model name (ex: "ML-1610,
5507	1.0")
5508
55092007-08-10  Tim Waugh  <twaugh@redhat.com>
5510
5511	* system-config-printer.py (GUI.on_btnNPApply_clicked): Select
5512	newly-created printer.
5513
5514	* system-config-printer.glade: Connect dialog user name field
5515	activates default.
5516
5517	* system-config-printer.py (GUI.on_btnNPApply_clicked): Set cursor
5518	busy while adding queue.
5519	(GUI.cupsPasswdCallback): Wait for main loop to hide dialog before
5520	returning from callback.
5521
5522	* cupshelpers.py (activateNewPrinter): New function.
5523	* system-config-printer.py (GUI.on_btnNPApply_clicked): Use it.
5524
5525	* system-config-printer.py (GUI.getPPDs_thread): Store IPP error
5526	for collection by main thread.
5527	(GUI.fetchPPDs): Propagate exception.
5528	(GUI.nextNPTab): Handle IPP error while fetching PPDs.
5529	(GUI.fillDeviceTab): More error handling for failure to fetch
5530	device list.
5531
55322007-08-09  Tim Waugh  <twaugh@redhat.com>
5533
5534	* optionwidgets.py (OptionWidget): Treat incorrect Boolean options
5535	as PickOne (bug #241809).
5536
55372007-08-08  Tim Waugh  <twaugh@redhat.com>
5538
5539	* configure.in: Version 0.7.72.
5540
55412007-08-07  Tim Waugh  <twaugh@redhat.com>
5542
5543	* system-config-printer.py (GUI.getNetworkPrinterMakeModel):
5544	Prevent traceback (sys.environ -> os.environ).
5545	(GUI.on_tvMainList_cursor_changed): Allow copying of remote
5546	queues.
5547	(GUI.connect): If connection via the UNIX domain socket fails,
5548	fall back to local loopback.
5549
55502007-08-06  Tim Waugh  <twaugh@redhat.com>
5551
5552	* system-config-printer.py (GUI.on_new_printer_activate): Remember
5553	that PPDs and devices have not yet been loaded.
5554	(GUI.nextNPTab): Only load PPDs and devices if not already
5555	loaded.
5556	(GUI.getNetworkPrinterMakeModel): Protect hostname from shell
5557	expansion.
5558	(GUI.on_tvMainList_cursor_changed): Only allow Delete/Copy for
5559	locally-defined printers (bug #250384).
5560
5561	* probe_printer.py (LpdServer.probe): Try leaving queue name blank
5562	when probing.  This should work for e.g. HP LaserJet 3390.
5563
5564	* system-config-printer.py: Integrated add-printer wizard patch
5565	from Till Kamppeter:
5566
5567	o If an auto-detected device (USB, network) is supported by HPLIP
5568	  only the HPLIP URIs are shown, to assure that the user gets it
5569	  correctly set up to get access to the complete functionality
5570	o For auto-detected network MF devices from HP also an entry
5571	  for setting up the fax queue is shown
5572	o Make and model info of auto-detected network printers is used to
5573	  direct the user to the correct PPD/driver
5574	o For manually entered printers make and model are determined via
5575	  SNMP. It is also checked whether the printer is supported by
5576	  HPLIP
5577	o No "HP Fax" entry any more when no Fax-capable HP printer is
5578	  connected.
5579	o When selecting an auto-detected non-HPLIP network printer the
5580	  fields of the form on the right are correctly prefilled now.
5581	o Improved sorting of the device list entries.
5582
5583	Very important changes for that are:
5584
5585	o Improved filtering of the detected devices when building the
5586	  device list for the second page of the wizard
5587	o Moved assignment of the PPD to the device from the stage of
5588	  initializing the forms on the right on the second page of
5589	  the wizard to the stage of clicking "Forward" for getting from
5590	  the second to the third page (after the user has manually entered
5591	  an IP address for a network printer)
5592	o Used "/usr/lib/cups/backend/snmp <host name or IP>" to obtain
5593	  make and model for a manually entered network printer
5594	o Used "hp-makeuri" to determine whether a network printer is
5595	  supported by HPLIP.
5596
55972007-08-04  Tim Waugh  <twaugh@redhat.com>
5598
5599	* my-default-printer.py (Dialog.response): The method name is
5600	iter_next, not get_iter_next (patch from Till Kamppeter).
5601
56022007-08-03  Tim Waugh  <twaugh@redhat.com>
5603
5604	* configure.in: Version 0.7.71.
5605
56062007-08-03  Tim Waugh  <twaugh@redhat.com>
5607
5608	* system-config-printer.py (GUI.on_tvNPDevices_cursor_changed):
5609	Handle socket: URIs (Ubuntu #127074).
5610
5611	* system-config-printer.glade: Moved default printer label below
5612	make-default button because some translation strings are very
5613	long (Ubuntu #128263).
5614
5615	* my-default-printer.py (error_out): New function.
5616	(Dialog.response): Catch exceptions and error out (Ubuntu
5617	#129901).
5618	(*top-level*): Likewise.
5619
5620	* ppds.py (PPDs.getPPDNameFromDeviceID): Initialise the make/model
5621	list when an ID match failed (patch from Till Kamppeter).
5622	(PPDs.getPPDNameFromDeviceID): Fixed fallback if no text-only
5623	driver is available (patch from Till Kamppeter).
5624	(PPDs.getPPDNameFromDeviceID): Don't discard make/model-matched
5625	devices when there are ID-matched devices found (patch from Till
5626	Kamppeter).
5627
56282007-07-09  Tim Waugh  <twaugh@redhat.com>
5629
5630	* configure.in: Version 0.7.70.
5631
56322007-07-09  Tim Waugh  <twaugh@redhat.com>
5633
5634	* inspecting-printer.png: Added.
5635
5636	* print-applet.desktop.in: Fixes for KDE (bug #247299).
5637
56382007-07-06  Tim Waugh  <twaugh@redhat.com>
5639
5640	* system-config-printer.py (GUI.checkDriverExists): Only show
5641	install dialog is system-install-packages is available.
5642
5643	* ppds.py (PPDs.__init__): Don't list PPDs removed due to language
5644	mismatch or else we end up with far too much output.
5645
56462007-07-04  Tim Waugh  <twaugh@redhat.com>
5647
5648	* system-config-printer.py (GUI.checkDriverExists): Run
5649	system-install-packages to install missing drivers (bug #246726).
5650
5651	* system-config-printer.py (GUI.checkDriverExists): More binary
5652	names mapped to package names.
5653
5654	* applet.py (NewPrinterNotification.GetReady): Increased
5655	GetReady->NewPrinter timeout.
5656
56572007-06-28  Tim Waugh  <twaugh@redhat.com>
5658
5659	* configure.in: Version 0.7.69.
5660
56612007-06-28  Tim Waugh  <twaugh@redhat.com>
5662
5663	* ppds.py (PPDs.__init__): Filter PPDs by natural language (bug
5664	#244173).
5665
5666	* system-config-printer.py (GUI.loadPPDs): Give PPDs constructor
5667	the natural language we expect.
5668
5669	* foomatic.py: Removed.
5670	* nametree.py: Removed.
5671	* system-config-printer.py: Removed commented-out code that used
5672	nametree.
5673	* gtk_html2pango.py: Removed.
5674
56752007-06-25  Tim Waugh  <twaugh@redhat.com>
5676
5677	* Makefile.am: Use HardwareSettings category for the
5678	my-default-printer app (bug #244935).
5679
56802007-06-15  Tim Waugh  <twaugh@redhat.com>
5681
5682	* configure.in: Version 0.7.68.
5683
56842007-06-15  Tim Waugh  <twaugh@redhat.com>
5685
5686	* my-default-printer.py: New file.
5687	* my-default-printer.desktop.in: New file.
5688	* my-default-printer: New file.
5689	* po/POTFILES.in: Translate it.
5690	* Makefile.am: Ship it and install it.
5691
56922007-06-15  Tim Waugh  <twaugh@redhat.com>
5693
5694	* applet.py (NewPrinterNotification.NewPrinter): Keep the
5695	notification object around so it knows which action callback to
5696	call (bug #241531).
5697
56982007-06-08  Tim Waugh  <twaugh@redhat.com>
5699
5700	* Makefile.am: Don't use the TrayIcon category in the applet desktop
5701	file since that is reserved now.  Use HardwareSettings and Printing
5702	categories for the admin tool's desktop file.
5703
57042007-06-08  Tim Waugh  <twaugh@redhat.com>
5705
5706	* configure.in: Version 0.7.67.
5707
57082007-06-08  Tim Waugh  <twaugh@redhat.com>
5709
5710	* ppds.py (PPDs.orderPPDNamesByPreference): Prefer HPIJS for HP
5711	devices.
5712	(getDriverType): New function.
5713
5714	* system-config-printer.py (GUI.on_tvNPDevices_cursor_changed):
5715	Use PPDs class for ID matching.
5716	(GUI.fillMakeList): Use PPDs class.
5717	(GUI.fillModelList): Likewise.
5718	(GUI.on_tvNPModels_cursor_changed): Likewise.
5719	(GUI.on_tvNPDrivers_cursor_changed): Likewise.
5720	(GUI.getNPPPD): Likewise.
5721	(GUI.loadPPDs): New method, replacing loadFoomatic().
5722	(GUI.dropPPDs): New method, replacing unloadFoomatic().
5723	(GUI.on_btnChangePPD_clicked): Load PPDs on demand.
5724	(GUI.on_btnChangePPD_clicked): Don't drop PPDs each time.
5725	(GUI.on_tvNPModels_cursor_changed): Order PPD names by preference.
5726	(GUI.getPPDs_thread): Fetch PPDs from the correct server.
5727	(GUI.getDevices_thread): Fetch devices from the correct server.
5728
5729	* ppds.py (PPDs.getPPDNameFromDeviceID): Display message to stdout
5730	when the ID was not matched.
5731
5732	* applet.py (NewPrinterNotification.NewPrinter): Use
5733	ppdMakeModelSplit from the new ppds module, not the old foomatic
5734	module.
5735
5736	* Makefile.am: Ship ppds.py as a script.  Running it on its own
5737	gives statistics on the installed PPDs, and runs some ID tests.
5738
5739	* foomatic.py (Foomatic.getPrinterFromCupsDevice): Don't split the
5740	CMD field: it is already split.
5741	* cupshelpers.py (parseDeviceID): Always split the CMD field.
5742
5743	* manage-print-jobs.desktop.in (_Name): Use capital letters at the
5744	start of each word for the Name field (bug #242859).
5745
57462007-06-07  Tim Waugh  <twaugh@redhat.com>
5747
5748	* system-config-printer.py (GUI.save_printer): Don't call
5749	populateList() after saving printer, just update the printer we
5750	changed.  This prevents a GTK+ crash (bug #242961).
5751	(GUI.maySelectItem): Only clear the changed set when the cursor is
5752	going to change.
5753	(GUI.on_tvMainList_cursor_changed): Don't update when unapplied
5754	changes remain.
5755
57562007-06-06  Tim Waugh  <twaugh@redhat.com>
5757
5758	* print-applet.desktop.in: Fixed Name field to start each word with
5759	a capital letter (bug #242859).
5760
57612007-05-30  Tim Waugh  <twaugh@redhat.com>
5762
5763	* configure.in: Version 0.7.66.
5764
57652007-05-30  Tim Waugh  <twaugh@redhat.com>
5766
5767	* foomatic.py (_ppdMakeModelSplit): Don't require ppdname when
5768	stripping foomatic driver information.
5769
5770	* applet.py (NewPrinterNotification): Use the system bus not the
5771	session bus.
5772
5773	* newprinternotification.conf: D-Bus configuration file.
5774	* Makefile.am: Ship it.
5775
57762007-05-28  Tim Waugh  <twaugh@redhat.com>
5777
5778	* Makefile.am (nobase_pkgdata_DATA): Ship 'inspecting' icon.
5779
5780	* applet.py (NewPrinterNotification): Implemented.
5781
57822007-05-25  Tim Waugh  <twaugh@redhat.com>
5783
5784	* man/system-config-printer.xml: Document new options.
5785
5786	* system-config-printer.py (GUI.populateList): Now
5787	--configure-printer=x automatically selects that printer on
5788	start-up, and --choose-driver=x invokes the "Change PPD" dialog
5789	as well.  Needed for "new printer" notifications in the applet.
5790
57912007-05-23  Tim Waugh  <twaugh@redhat.com>
5792
5793	* applet.py (JobManager.set_special_statusicon): New method.
5794	(JobManager.unset_special_statusicon): New method.
5795	(JobManager.set_statusicon_from_pixbuf): New method.
5796	(JobManager.refresh): Use it.
5797
5798	* system-config-printer.py (GUI.__init__): Added 'Hold until:'
5799	control to Job Options screen (bug #239776).
5800	* cupshelpers.py (Printer._getAttributes): Allow job-hold-until to
5801	be set (bug #239776).
5802
58032007-05-22  Tim Waugh  <twaugh@redhat.com>
5804
5805	* configure.in: Version 0.7.65.
5806
58072007-05-21  Tim Waugh  <twaugh@redhat.com>
5808
5809	* man/system-config-printer.xml: New file.
5810	* Makefile.am: Ship it.  Create man files and install them.
5811
5812	* Makefile.am: Not all of the Python modules are scripts.  Mark
5813	the ones that are and aren't so that the executable permissions
5814	are set correctly on install.
5815
58162007-05-16  Tim Waugh  <twaugh@redhat.com>
5817
5818	* system-config-printer.py (GUI.on_btnSelectDevice_clicked): Start
5819	fetching the device list in a separate thread.
5820	(GUI.loadFoomatic): Start fetching the PPD list while we parse the
5821	XML database.
5822	(GUI.on_new_printer_activate): Start fetching PPD and device lists
5823	while the user picks a name for the printer.
5824
5825	* applet.py (JobManager.refresh): Limit refresh frequency.
5826	Sometimes several D-Bus events will occur in quick succession, and
5827	we do not want a full refresh every single time.
5828
58292007-05-15  Tim Waugh  <twaugh@redhat.com>
5830
5831	* Makefile.am (DISTCLEANFILES): Don't removed intltool .in files
5832	on distclean.
5833
58342007-05-09  Tim Waugh  <twaugh@redhat.com>
5835
5836	* configure.in (ALL_LINGUAS): Added kn.
5837
58382007-04-29  Tim Waugh  <twaugh@redhat.com>
5839
5840	* applet.py (JobManager.__init__): Prevent traceback.
5841
58422007-04-26  Tim Waugh  <twaugh@redhat.com>
5843
5844	* applet.py (JobManager.update_job_creation_times): Split out
5845	creation time text into separate function, and update it every
5846	minute when there are jobs.
5847
58482007-04-25  Tim Waugh  <twaugh@redhat.com>
5849
5850	* applet.py (JobManager.refresh): Fix relative time description.
5851
58522007-04-13  Tim Waugh  <twaugh@redhat.com>
5853
5854	* applet.py (JobManager.update_connecting_devices): New method.
5855	Be a bit smarter about connecting-to-device, to make sure it
5856	really has been in that state for as long as we think.
5857
58582007-04-11  Tim Waugh  <twaugh@redhat.com>
5859
5860	* applet.py (StateReason.get_description): Fixed typo.
5861	(JobManager.check_still_connecting): New method.
5862	(JobManager.check_state_reasons): Add a timed callback to check
5863	for connecting-to-device after a minute's time.
5864	(StateReason.get_description): Messages for connecting-to-device.
5865
58662007-04-10  Tim Waugh  <twaugh@redhat.com>
5867
5868	* applet.py: Don't connect to the session bus if we don't need to,
5869	and exit if connecting to D-Bus fails for any reason (Ubuntu #102992).
5870	(JobManager.check_state_reasons): Put warning/error symbol at the
5871	bottom right of the icon instead of the top right.
5872
5873	* system-config-printer.py (GUI.parse_SMBURI): Use urllib for
5874	quoting/unquoting (Val Henson, Ubuntu #105022).
5875	(GUI.construct_SMBURI): Likewise.
5876	(percentEncode, percentDecode): Removed.
5877
58782007-04-06  Tim Waugh  <twaugh@redhat.com>
5879
5880	* applet.py (JobManager.check_state_reasons): Clear the status bar
5881	when there is no warning/error to report.
5882	(JobManager.refresh): Check status reasons when running without a
5883	tray icon.
5884	(JobManager.check_state_reasons): Only check for notifications to
5885	close if we are running with a tray icon.
5886
58872007-04-05  Tim Waugh  <twaugh@redhat.com>
5888
5889	* configure.in: Version 0.7.64.
5890
58912007-04-05  Tim Waugh  <twaugh@redhat.com>
5892
5893	* applet.py (StateReason): New class.
5894	(JobManager.__init__): Set up printer state treeview.
5895	(JobManager.on_printer_status_delete_event): New method.
5896	(JobManager.on_show_printer_status_activate): New method.
5897	(JobManager.check_state_reasons): Update printer state display
5898	window.
5899	(JobManager.check_state_reasons): Send notifications for printer
5900	errors on our jobs.
5901	(JobManager.check_state_reasons): Set statusbar.
5902
5903	* applet.glade: Added windows for printer state display.
5904
5905	* applet.py (JobManager.__init__): Set rules hint for the
5906	treeview.
5907
59082007-04-04  Tim Waugh  <twaugh@redhat.com>
5909
5910	* applet.py (JobManager.check_state_reasons): New method.
5911	(worst_printer_state_reason): Helper function.
5912	(collect_printer_state_reasons): Helper function.
5913
59142007-04-05  Tim Waugh  <twaugh@redhat.com>
5915
5916	* configure.in: Version 0.7.63.
5917
59182007-04-05  Tim Waugh  <twaugh@redhat.com>
5919
5920	* po: Updated translations pulled in.
5921	* manage-print-jobs.desktop.in: This file had not been checked in.
5922
59232007-04-02  Tim Waugh  <twaugh@redhat.com>
5924
5925	* configure.in: Version 0.7.62.
5926
59272007-04-02  Tim Waugh  <twaugh@redhat.com>
5928
5929	* system-config-printer.py (GUI.on_tvSMBBrowser_cursor_changed):
5930	Prevent a traceback (bug #225351).  Patch from Jani Monoses.
5931
5932	* manage-print-jobs.desktop.in: New file.
5933	* po/POTFILES.in: Translate it.
5934	* Makefile.am: Ship it.
5935
5936	* applet.py (monitor_session): Stop running when the session
5937	ends.
5938
59392007-03-30  Tim Waugh  <twaugh@redhat.com>
5940
5941	* applet.py, cupsd.py, cupshelpers.py, foomatic.py,
5942	  system-config-printer.py: Use /usr/bin/env instead of /bin/env.
5943
5944	* system-config-printer.desktop.in: Use printer.png as the icon.
5945
59462007-03-30  Tim Waugh  <twaugh@redhat.com>
5947
5948	* configure.in: Version 0.7.61.
5949
59502007-03-30  Tim Waugh  <twaugh@redhat.com>
5951
5952	* cupshelpers.py (PrintersConf): Reinstated (bug #203539).
5953	(getPrinters): Fetch and parse printers.conf if needed for SMB
5954	authentication details (bug #203539).
5955
5956	* applet.py: Added support for --help, --version and
5957	--no-tray-icon.
5958	(show_help): Implemented.
5959	(show_version): Likewise.
5960
59612007-03-27  Tim Waugh  <twaugh@redhat.com>
5962
5963	* configure.in: Version 0.7.60.
5964
59652007-03-27  Tim Waugh  <twaugh@redhat.com>
5966
5967	* applet.py (JobManager.refresh): Use job state constants (requires
5968	pycups 1.9.19).
5969	(JobManager.on_treeview_button_press_event): Likewise.
5970
5971	* applet.py: No need to check for --sm-client-id now that the
5972	applet has a different name.
5973
5974	* Makefile.am: Better desktop-file categories.
5975
5976	* print-applet.desktop.in: Remove 'eggcups' name from the
5977	applet.
5978	* Makefile.am: Install the autostart file in the correct
5979	location, and install the applet.
5980	* system-config-printer-applet: New file.
5981
5982	* system-config-printer.py (GUI.reconnect): Handle reconnection
5983	failure (Ubuntu #95629).
5984
59852007-03-26  Tim Waugh  <twaugh@redhat.com>
5986
5987	* configure.in: Version 0.7.59.
5988
59892007-03-26  Tim Waugh  <twaugh@redhat.com>
5990
5991	* configure.in: Version 0.7.58.
5992
59932007-03-26  Tim Waugh  <twaugh@redhat.com>
5994
5995	* applet.py (JobManager.on_icon_hide_activate): Hide icon when
5996	requested (bug #233899).  If the service is not running, quit.
5997
5998	* applet.glade: Icon pop-up menu.
5999
6000	* applet.glade: Removed status bar (bug #233899).
6001
6002	* applet.py (JobManager.__init__): Ellipsize the document name
6003	(bug #233899).
6004	(PrintDriverSelection.PromptPrintDriver): Handle failure to start
6005	the service.
6006	(JobManager.__init__): Set a window icon (bug #233899).
6007
60082007-03-23  Tim Waugh  <twaugh@redhat.com>
6009
6010	* applet.py (JobManager.refresh): Fixed '1 document queued'
6011	string.
6012
60132007-03-21  Tim Waugh  <twaugh@redhat.com>
6014
6015	* configure.in: Version 0.7.57.
6016
60172007-03-21  Tim Waugh  <twaugh@redhat.com>
6018
6019	* Makefile.am: Ship the applet icon.
6020
6021	* applet.py: Put the PrintDriverSelection service on the system
6022	bus not the session bus.
6023	Exit immediately if --sm-client-id is seen (bug #233261).
6024
6025	* print-applet.desktop.in: New file.
6026	* po/POTFILES.in: Translate it.
6027	* Makefile.am: Merge translations and ship it.
6028
6029	* applet.py, applet.glade: New files.
6030	* po/POTFILES.in: Translate them.
6031
60322007-03-17  Tim Waugh  <twaugh@redhat.com>
6033
6034	* system-config-printer.py (GUI.on_btnPMakeDefault_clicked):
6035	Prevent traceback when removing temporary file (Ubuntu #92914).
6036
60372007-03-16  Tim Waugh  <twaugh@redhat.com>
6038
6039	* configure.in: Version 0.7.56.
6040
60412007-03-16  Tim Waugh  <twaugh@redhat.com>
6042
6043	* cupshelpers.py (Printer._getAttributes): Removed always-shown
6044	options from the possible_attributes list.
6045
6046	* cupshelpers.py (Printer._getAttributes): Handle 'sides'.
6047	* system-config-printer.py (GUI.__init__): Likewise.
6048
6049	* options.py (OptionAlwaysShown.set_default): New method.
6050	(OptionAlwaysShown.__init__): Use it.
6051	* system-config-printer.py (GUI.fillPrinterTab): Likewise.
6052
6053	* options.py (OptionAlwaysShown.set_widget_value): Handle str-type
6054	IPP enums.
6055	(OptionAlwaysShown.get_widget_value): Likewise.
6056
60572007-03-13  Tim Waugh  <twaugh@redhat.com>
6058
6059	* cupshelpers.py (Printer._getAttributes): Handle 'media'.
6060	* system-config-printer.py (GUI.fillPrinterTab): Pass supported
6061	values through to the option widget, if supplied.
6062	* options.py (OptionAlwaysShown.reinit): Fit the supported list,
6063	if supplied, to	the combobox.
6064
6065	* cupshelpers.py (Printer._getAttributes): Handle 'job-priority'.
6066	* system-config-printer.py (GUI.__init__): Likewise.
6067
6068	* cupshelpers.py (Printer._getAttributes): Handle 'finishings'.
6069	* system-config-printer.py (GUI.__init__): Likewise.
6070
6071	* cupshelpers.py (PrintersConf): Removed (bug #231826).
6072	(Printer._getAttributes): Removed set_attributes parameter.
6073	(Printer.__init__): Likewise.
6074	(Printer._getAttributes): For the time being ignore finishings,
6075	job-priority, media, document-format, job-hold-until, sides and
6076	notify-lease-duration defaults.
6077
60782007-03-12  Tim Waugh  <twaugh@redhat.com>
6079
6080	* system-config-printer.py (GUI.checkDriverExists): Updated
6081	filter-to-driver map.
6082
60832007-03-12  Tim Waugh  <twaugh@redhat.com>
6084
6085	* probe_printer.py (LpdServer._open_socket): Handle hostname
6086	look-up failures (Ubuntu #87115).
6087
60882007-03-02  Tim Waugh  <twaugh@redhat.com>
6089
6090	* foomatic.py (Foomatic.getPrinterFromCupsDevice): Make
6091	commandsets into a list instead of a string (seen in bug
6092	#230665).
6093
60942007-02-27  Tim Waugh  <twaugh@redhat.com>
6095
6096	* options.py (OptionAlwaysShown.bool_type): Parse Boolean strings
6097	correctly.
6098
60992007-02-27  Tim Waugh  <twaugh@redhat.com>
6100
6101	* configure.in: Version 0.7.55.
6102
61032007-02-27  Tim Waugh  <twaugh@redhat.com>
6104
6105	* options.py (OptionAlwaysShown.reinit): Use converted value.
6106
61072007-02-27  Tim Waugh  <twaugh@redhat.com>
6108
6109	* configure.in: Version 0.7.54.
6110
61112007-02-27  Tim Waugh  <twaugh@redhat.com>
6112
6113	* system-config-printer.py: Disable debugging code (oops).
6114
61152007-02-27  Tim Waugh  <twaugh@redhat.com>
6116
6117	* configure.in: Version 0.7.53.
6118
61192007-02-26  Tim Waugh  <twaugh@redhat.com>
6120
6121	* system-config-printer.py (GUI.__init__): Added 'scaling'
6122	option.
6123	(GUI.__init__): Added 'saturation', 'hue' and 'gamma' options.
6124	(GUI.__init__): Added 'cpi', 'lpi', 'page-left', 'page-right',
6125	'page-top', 'page-bottom', 'prettyprint', 'wrap' and 'columns'
6126	options.
6127	(GUI.fillPrinterOptions): 6 pixels row spacings for PPD options.
6128	(GUI.draw_other_job_options): No job options are editable for
6129	remote queues (although might not be a bad idea for implementing
6130	lpoptions edits..).
6131
61322007-02-23  Tim Waugh  <twaugh@redhat.com>
6133
6134	* system-config-printer.py (GUI.__init__): Added 'mirror' option.
6135
6136	* system-config-printer.glade: "Other" job options.
6137	* system-config-printer.py (GUI.draw_other_job_options): New
6138	function to redraw the other job options table.
6139	(GUI.add_job_option): Implemented for new UI.
6140	(GUI.on_btnJOOtherRemove_clicked): Likewise.
6141	(GUI.on_btnNewJobOption_clicked): Likewise.
6142	(GUI.on_entNewJobOption_changed): Likewise.
6143	(GUI.on_entNewJobOption_activate): Pressing Return in the new
6144	option text entry widget adds the option.
6145	(GUI.fillPrinterTab): Added support for "Other" job options.
6146
6147	* options.py (OptionAlwaysShown.set_widget_value): Make
6148	combobox_map optional.
6149	(OptionAlwaysShown.get_current_value): Likewise.
6150	(OptionAlwaysShown.set_widget_value): Handle CheckButtons.
6151	(OptionAlwaysShown.get_widget_value): Likewise.
6152	(OptionAlwaysShown.is_changed): Explicitly check original_value
6153	against None to protect against false bools.
6154
61552007-02-22  Tim Waugh  <twaugh@redhat.com>
6156
6157	* system-config-printer.py (GUI.on_job_option_reset): New
6158	function.
6159	(GUI.on_job_option_changed): New function.
6160
6161	* options.py (OptionInterface): Interface class for Option.
6162	(Option): Inherit OptionInterface.
6163	(OptionAlwaysShown): New class for always-shown job options
6164	widgets.
6165
61662007-02-21  Tim Waugh  <twaugh@redhat.com>
6167
6168	* system-config-printer.py (GUI.fillPrinterTab): Make the text
6169	entry boxes sensitive but not editable for remote printers (bug
6170	#229381).
6171
6172	* cupshelpers.py (Printer.testsQueued): Handle failure gracefully
6173	(bug #229406).
6174
6175	* system-config-printer.py (GUI.fillPrinterTab): Display an error
6176	dialog if we get a RuntimeError trying to get the PPD, instead of
6177	just a traceback (bug #229406).
6178
6179	* cupshelpers.py (Printer.getPPD): Only IPP_NOT_FOUND means the
6180	queue is raw; anything else needs to be handled as an error (bug
6181	#229406).
6182
6183	* system-config-printer.py (GUI.maySelectItem): Handle applying
6184	changes here rather than...
6185	(GUI.on_tvMainList_cursor_changed): ...here, after the new item
6186	has been selected (bug #229378).
6187
6188	* system-config-printer.glade: Added scrollbars to main printer
6189	list (bug #229453).
6190	Set maximum width of default printer label (bug #229453).
6191
61922007-02-20  Tim Waugh  <twaugh@redhat.com>
6193
6194	* system-config-printer.py (GUI.fillPrinterOptions): Better
6195	layout.
6196
61972007-02-14  Tim Waugh  <twaugh@redhat.com>
6198
6199	* optionwidgets.py: Use gettext instead of rhpl.translate.
6200	* system-config-printer.py (domain): Likewise.
6201
62022007-02-13  Tim Waugh  <twaugh@redhat.com>
6203
6204	* configure.in: Version 0.7.52.
6205
62062007-02-13  Tim Waugh  <twaugh@redhat.com>
6207
6208	* foomatic.py (Foomatic.getPrinterFromDeviceID): Sort models using
6209	cups.modelSort before scanning for a close match (bug #228505).
6210	(Foomatic.getPrinterFromDeviceID): Fixed matching logic (bug #228505).
6211
62122007-02-09  Tim Waugh  <twaugh@redhat.com>
6213
6214	* configure.in: Version 0.7.51.
6215
62162007-02-09  Tim Waugh  <twaugh@redhat.com>
6217
6218	* system-config-printer.py (GUI.on_tvNPMakes_cursor_changed):
6219	Handle interactive search a little better (bug #227935).
6220	(GUI.on_tvNPModels_cursor_changed): Likewise.
6221
6222	* system-config-printer.py (GUI.on_btnPMakeDefault_clicked): Fixed
6223	typo (bug #227936).
6224
62252007-02-08  Tim Waugh  <twaugh@redhat.com>
6226
6227	* optionwidgets.py (OptionWidget): Remember the tab label.
6228	* system-config-printer.py (GUI.setDataButtonState): Embolden the
6229	tab containing options in conflict (bug #226368).
6230
6231	* system-config-printer.py (GUI.fillPrinterTab): Prevent display
6232	glitch in job options list when clicking on printer repeatedly.
6233	(GUI.on_btnConflict_clicked): List conflicting options (bug
6234	#226368).
6235
62362007-02-07  Tim Waugh  <twaugh@redhat.com>
6237
6238	* configure.in: Version 0.7.50.
6239
62402007-02-07  Tim Waugh  <twaugh@redhat.com>
6241
6242	* system-config-printer.py (GUI.fillPrinterTab): Handle unknown
6243	job options (bug #225538).
6244	(GUI.on_btnPMakeDefault_clicked): Don't throw exception if
6245	getFile() already removed the temporary file (bug #226703).
6246	(GUI.get_PPD_but_handle_errors): Get the arguments the right way
6247	round.
6248	(GUI.get_PPD_but_handle_errors): Likewise.
6249	(GUI.fillPrinterTab): Point to the server settings if a printer is
6250	shared but the server is not publishing shared printers (bug
6251	#225081).
6252	(GUI.setConnected): Clear out remembered server settings when
6253	connecting to a new server.
6254
6255	* cupshelpers.py (Printer._getAttributes): cpi, lpi and scaling
6256	are floats (bug #224651).
6257
6258	* options.py (OptionWidget): Handle floating point options.
6259	(OptionNumeric.get_current_value): Allow floating point values
6260	(bug #224651).
6261
6262	* system-config-printer.py (GUI.checkDriverExists): If there are
6263	unreplaced HTML entities, give up checking (bug #225104).
6264	(GUI.save_printer): Don't write an ellipsis in the actual device
6265	URI we set (bug #227643).
6266
6267	* configure.in (ALL_LINGUAS): Added bs.
6268
62692007-01-24  Tim Waugh  <twaugh@redhat.com>
6270
6271	* system-config-printer.py (percentDecode): Fix hex digits list so
6272	we get A-F right (bug #223770).
6273
62742007-01-16  Tim Waugh  <twaugh@redhat.com>
6275
6276	* configure.in: Version 0.7.49.
6277
62782007-01-16  Tim Waugh  <twaugh@redhat.com>
6279
6280	* optionwidgets.py (Option.__init__): Maintain 'enabled' state.
6281	(Option.enable): Method for enabling.
6282	(Option.disable): Method for disabling.
6283	(Option.is_enabled): Method for discovering whether enabled.
6284	(Option.writeback): Only mark PPD option if enabled.
6285
6286	* system-config-printer.py (GUI.fillPrinterOptions): Take
6287	references to InputSlot and ManualFeed widgets.
6288	(GUI.option_changed): Enable/disable InputSlot option based on
6289	ManualFeed state (bug #222490).
6290
62912007-01-15  Tim Waugh  <twaugh@redhat.com>
6292
6293	* system-config-printer.py (on_btnConflict_clicked): Fixed typo in
6294	string.
6295
6296	* system-config-printer.py (GUI.checkDriverExists): Fixed another
6297	traceback.
6298
62992007-01-15  Tim Waugh  <twaugh@redhat.com>
6300
6301	* configure.in: Version 0.7.48 (only translations updated).
6302
63032007-01-12  Tim Waugh  <twaugh@redhat.com>
6304
6305	* configure.in: Version 0.7.47.
6306
63072007-01-12  Tim Waugh  <twaugh@redhat.com>
6308
6309	* system-config-printer.py (GUI.get_PPD_but_handle_errors): Fixed
6310	typo.
6311	(GUI.checkDriverExists): Handle multiple commands better.
6312	(GUI.pathcheck): Handle shell builtins (bug #222413).
6313
63142007-01-11  Tim Waugh  <twaugh@redhat.com>
6315
6316	* system-config-printer.py (GUI.__init__): Updated copyright
6317	notice.
6318	(GUI.__init__): Fixed incorrect nouns-with-capitals in
6319	translatable text.
6320	(GUI.on_connect_activate): Likewise.
6321	(GUI.on_btnPrintTestPage_clicked): US spelling for 'cancelling'.
6322	(GUI.on_delete_activate): Fixed incorrect nouns-with-capitals in
6323	translatable text.
6324
63252007-01-08  Tim Waugh  <twaugh@redhat.com>
6326
6327	* configure.in: Version 0.7.46.
6328
63292007-01-08  Tim Waugh  <twaugh@redhat.com>
6330
6331	* foomatic.py (Printer.getPPDDrivers): Removed some dead code.
6332
6333	* cupshelpers.py (setPPDPageSize): New function.
6334	* system-config-printer.py (GUI.on_btnNPApply_clicked): Use it
6335	for user-provided PPD.
6336	(GUI.on_btnNPApply_clicked): Use it for new printers (bug
6337	#221702).
6338
6339	* configure.in (ALL_LINGUAS): Added ro.
6340
63412007-01-03  Tim Waugh  <twaugh@redhat.com>
6342
6343	* configure.in: Version 0.7.45.
6344
63452007-01-03  Tim Waugh  <twaugh@redhat.com>
6346
6347	* system-config-printer.py (GUI.checkDriverExists): Fixed
6348	traceback.
6349
63502007-01-02  Tim Waugh  <twaugh@redhat.com>
6351
6352	* configure.in: Version 0.7.44.
6353
63542007-01-02  Tim Waugh  <twaugh@redhat.com>
6355
6356	* foomatic.py (Foomatic.getPrinterFromDeviceID): Preserve case in
6357	model string when dumping debug output.
6358
63592006-12-28  Tim Waugh  <twaugh@redhat.com>
6360
6361	* system-config-printer.py (GUI.get_PPD_but_handle_errors): Fixed
6362	traceback in error display.
6363
63642006-12-21  Tim Waugh  <twaugh@redhat.com>
6365
6366	* configure.in: Version 0.7.43.
6367
63682006-12-21  Tim Waugh  <twaugh@redhat.com>
6369
6370	* system-config-printer.py (GUI.checkDriverExists): Stop checking
6371	for binaries if we already discovered one missing (bug #220347).
6372	(GUI.on_btnNPApply_clicked.get_PPD_but_handle_errors): Distinguish
6373	between PPD and Foomatic errors, and for PPD errors show the
6374	output of the cupstestppd command to help pinpoint the
6375	problem (bug #220136).
6376
63772006-12-15  Tim Waugh  <twaugh@redhat.com>
6378
6379	* system-config-printer.py (GUI.on_btnApply_clicked): Use
6380	nonfatalException() if exception caught.
6381
63822006-12-14  Tim Waugh  <twaugh@redhat.com>
6383
6384	* system-config-printer.py (nonfatalException): New function.
6385	(GUI.on_tvNPDevices_cursor_changed): Use it when trying to
6386	auto-match printer model.
6387
6388	* foomatic.py (Foomatic.getPrinterFromDeviceID): New function.
6389	(Foomatic.getPrinterFromCupsDevice): Use it.
6390	(Foomatic.getPPD): Likewise (bug #219518).
6391
63922006-12-12  Tim Waugh  <twaugh@redhat.com>
6393
6394	* foomatic.py (Foomatic.getPrinterFromCupsDevice): Don't check
6395	against DES field at all; if the make and model strings don't
6396	match, the description field isn't helpful.  Example: '6543' which
6397	is the same between two unrelated devices.
6398
6399	* Makefile.am: New target missing-languages.
6400
64012006-12-11  Tim Waugh  <twaugh@redhat.com>
6402
6403	* configure.in: Version 0.7.42.
6404
64052006-12-11  Tim Waugh  <twaugh@redhat.com>
6406
6407	* foomatic.py (Foomatic.getPrinterFromCommandSet): Fixed typo.
6408	(Foomatic.getPrinterFromCupsDevice): Case-insensitive matching
6409	when Device ID not known to database.
6410
6411	* configure.in (ALL_LINGUAS): Added mr.
6412
64132006-12-07  Tim Waugh  <twaugh@redhat.com>
6414
6415	* configure.in: Version 0.7.41.
6416
64172006-12-01  Tim Waugh  <twaugh@redhat.com>
6418
6419	* system-config-printer.py (GUI.on_about_activate): hpfax backend
6420	should set empty/description tab.
6421	(GUI.on_tvNPDevices_cursor_changed): Set description label to
6422	reflect backend type.
6423
6424	* system-config-printer.glade: Added label to describe devices
6425	with no optional parameters.
6426
64272006-11-30  Tim Waugh  <twaugh@redhat.com>
6428
6429	* cupshelpers.py (Printer.setEnabled): Optional 'reason'
6430	argument.
6431	(Printer.setAccepting): Likewise.
6432
6433	* system-config-printer.glade: Centre Connecting dialog on
6434	parent.
6435	* system-config-printer.py (GUI.on_connect_activate): Set
6436	Connecting dialog transient for main window.
6437	(GUI.reconnect): Provoke libcups into reconnecting.
6438	(GUI.populateList): Keep Server Settings selected if it was before.
6439
64402006-11-28  Tim Waugh  <twaugh@redhat.com>
6441
6442	* system-config-printer.py (GUI.setNPButtons): Set Forward button
6443	sensitive on Device screen in new-printer dialog (bug #217515).
6444	(GUI.on_tvNPDevices_cursor_changed): Don't pre-select make and
6445	model when not discoverable for chosen device (bug #217518).
6446	(GUI.show_HTTP_Error): Fixed typo (bug #217537).
6447	(GUI.on_btnPMakeDefault_clicked): If the system-wide lpoptions
6448	file sets a default printer that conflicts with the new server
6449	default, alter lpoptions so that it no longer overrides
6450	it (bug	#217395).
6451	(GUI.show_HTTP_Error): Describe cups.HTTPError -1 as 'not
6452	connected'.
6453	(GUI.reconnect): Implemented.
6454	(GUI.apply): Reconnect after applying server settings.
6455
64562006-11-27  Tim Waugh  <twaugh@redhat.com>
6457
6458	* configure.in: Version 0.7.40.
6459
64602006-11-24  Tim Waugh  <twaugh@redhat.com>
6461
6462	* configure.in (ALL_LINGUAS): Added lv and si.
6463
64642006-11-23  Tim Waugh  <twaugh@redhat.com>
6465
6466	* system-config-printer.glade: Don't set button widths in
6467	new-printer dialog (bug #217025).
6468
64692006-11-21  Tim Waugh  <twaugh@redhat.com>
6470
6471	* system-config-printer.glade: Removed username:password from
6472	hint string because we add that in afterwards.
6473
64742006-11-21  Tim Waugh  <twaugh@redhat.com>
6475
6476	* configure.in: Version 0.7.39.
6477
64782006-11-21  Tim Waugh  <twaugh@redhat.com>
6479
6480	* system-config-printer.glade: Added SMB hint label on device
6481	screen (bug #212759).
6482
64832006-11-15  Tim Waugh  <twaugh@redhat.com>
6484
6485	* configure.in (ALL_LINGUAS): Updated.
6486
64872006-11-14  Tim Waugh  <twaugh@redhat.com>
6488
6489	* system-config-printer.glade: Make PPD NickName selectable.
6490
6491	* system-config-printer.py (GUI.on_btnChangePPD_clicked): Busy
6492	cursor while loading foomatic and PPD list (bug #215527).
6493	(GUI.on_btnSelectDevice_clicked): Busy cursor while loading
6494	foomatic and device list (bug #215527).
6495
64962006-11-14  Tim Waugh  <twaugh@redhat.com>
6497
6498	* configure.in: Version 0.7.38.
6499
65002006-11-14  Tim Waugh  <twaugh@redhat.com>
6501
6502	* system-config-printer.py (GUI.pathcheck): Fixed indentation so
6503	that IJS servers are checked to be in the path.
6504
6505	* foomatic.py (Foomatic.addCupsPPDs): Fixed traceback in
6506	'ppd-device-id' parsing code.
6507
65082006-11-13  Tim Waugh  <twaugh@redhat.com>
6509
6510	* configure.in: Version 0.7.37.
6511
65122006-11-11  Tim Waugh  <twaugh@redhat.com>
6513
6514	* system-config-printer.py (GUI.on_btnPrintTestPage_clicked): IPP
6515	Error dialog for any cancelling errors.
6516
65172006-11-10  Tim Waugh  <twaugh@redhat.com>
6518
6519	* system-config-printer.py (GUI.setTestButton): New function for
6520	allowing user to cancel test jobs if there are some.
6521	(GUI.fillPrinterTab): Use it.
6522	(GUI.on_btnPrintTestPage_clicked): Cancel jobs if cancelling (bug
6523	#215054).
6524
6525	* cupshelpers.py (Printer.testsQueued): New method for finding out
6526	if test pages are queued.
6527	(Printer.cancelJobs): New method for cancelling jobs.
6528
65292006-11-10  Tim Waugh  <twaugh@redhat.com>
6530
6531	* configure.in: Version 0.7.36.
6532
65332006-11-10  Tim Waugh  <twaugh@redhat.com>
6534
6535	* foomatic.py (Foomatic.addCupsPPDs): No need to remove foomatic
6536	PPDs now; this is handled in foomatic.
6537
65382006-11-09  Tim Waugh  <twaugh@redhat.com>
6539
6540	* cupshelpers.py (parseDeviceID): New function.
6541	(Device.__init__): Use it.
6542	* foomatic.py (Foomatic._add_printer): Likewise.
6543	(Foomatic.addCupsPPDs): Parse IEEE 1284 Device IDs from CUPS PPDs
6544	and add them to the make/model look-up dictionary.
6545	(Foomatic._add_printer): Don't add empty fields to the look-up
6546	dictionary.
6547	(Foomatic.getPrinterFromCupsDevice): Fixed typo.
6548	(Foomatic.getPrinterFromCommandSet): New function.
6549	(Foomatic.getPPD): Use it.
6550	(Foomatic.getPrinterFromCupsDevice): Match against command sets.
6551
6552	* foomatic.py (Foomatic.getPPD): Convert command sets to lower
6553	case for comparison.
6554	(Foomatic.getPPD): Match PCL6, PCL5e, PCL5c, ESCPL2 command sets.
6555
6556	* foomatic.py (Foomatic._add_printer): Parse
6557	'autodetect/*/ieee1284' entries (bug #214761).
6558
65592006-11-08 Florian Festi  <ffesti@redhat.com>
6560
6561	* foomatic.py (Foomatic.getPPD): now matches against
6562	commandset (bug #214181), removed debug code and
6563	code commented out
6564
6565	* cupshelpers.py: removed code commented out
6566
65672006-11-07  Tim Waugh  <twaugh@redhat.com>
6568
6569	* configure.in: 0.7.35.
6570
65712006-11-07  Tim Waugh  <twaugh@redhat.com>
6572
6573	* system-config-printer.py (GUI.fillModelList): Reset scroll.
6574	(GUI.fillMakeList): Likewise.
6575	(GUI.fillDriverList): Scroll to pre-selected driver.
6576
6577	* foomatic.py (Foomatic.getPrinterFromCupsDevice): Handle bogus
6578	HPLIP Device IDs (bug #214434).
6579
6580	* system-config-printer.py (GUI.pathcheck): Support absolute paths
6581	in foomatic command line.
6582	(GUI.pathcheck): Fixed typo.
6583	(GUI.on_tvNPDrivers_cursor_changed): Better PPD information
6584	display (bug #214365).
6585
6586	* foomatic.py (_ppdMakeModelSplit): Merge CUPS and foomatic
6587	manufacturers when they differ in case.
6588
6589	* system-config-printer.py (GUI.on_btnNPApply_clicked): Handle
6590	missing driver XML for drivers like Gutenprint.
6591
6592	* system-config-printer.py (GUI.checkDriverExists): Check for
6593	'*cupsFilter' lines and verify filters are installed (bug
6594	#212139).
6595
6596	* foomatic.py (_ppdMakeModelSplit):  Better display for models
6597	driven by Gimp-Print PPDs (bug #213862).
6598
65992006-11-06  Tim Waugh  <twaugh@redhat.com>
6600
6601	* configure.in: Version 0.7.34.
6602
66032006-11-06  Tim Waugh  <twaugh@redhat.com>
6604
6605	* foomatic.py (Foomatic.getPPD): Only match against description
6606	when it is valid (bug #206907).
6607
6608	* cupshelpers.py (PrintersConf.parse): Handle invalid printers.conf
6609	file gracefully (bug #214134).
6610
66112006-11-04  Tim Waugh  <twaugh@redhat.com>
6612
6613	* optionwidgets.py (OptionBool.__init__): Handle Boolean values
6614	with "On" and "Off" as choices (bug #213136).
6615
6616	* system-config-printer.py (GUI.on_btnNPApply_clicked): Handle
6617	database errors gracefully (bug #213992).
6618	(GUI.on_btnNPApply_clicked): Only translate the strings once.
6619
66202006-11-03  Tim Waugh  <twaugh@redhat.com>
6621
6622	* foomatic.py (_ppdMakeModelSplit): "EPSON" -> "Epson".
6623
6624	* system-config-printer.py (GUI.checkDriverExists): Include
6625	gutenprint driver check.
6626
6627	* foomatic.py (_ppdMakeModelSplit): Better display for models
6628	driven by Gutenprint PPDs (bug #213862).
6629
66302006-11-02  Tim Waugh  <twaugh@redhat.com>
6631
6632	* configure.in: Version 0.7.33.
6633
66342006-11-02  Tim Waugh  <twaugh@redhat.com>
6635
6636	* system-config-printer.py (GUI.save_printer): Refresh after
6637	applying changes (bug #213692).
6638
6639	* system-config-printer.py (GUI.on_btnNPApply_clicked): Set
6640	PageSize when uploading a new PPD as-is (bug #213680).
6641
6642	* cupshelpers.py (copyPPDOptions): Skip 'PageRegion' since that's
6643	special (bug #213680).
6644
6645	* system-config-printer.py (GUI.on_btnNPApply_clicked): Fix using
6646	the new PPD as-is (bug #203905).
6647
6648	* system-config-printer.py (GUI.fillDeviceTab): Sort 'Other' last
6649	in the devices list (bug #213676).
6650
6651	* system-config-printer.py (GUI.on_btnChangePPD_clicked): Fix
6652	auto-selection of current PPD when changing it (bug #213667).
6653
6654	* optionwidgets.py (OptionPickOne.__init__): Handle enum values
6655	already set outside the range (bug #213136).
6656
66572006-11-01  Tim Waugh  <twaugh@redhat.com>
6658
6659	* system-config-printer.py (GUI.checkDriverExists): New function
6660	to check that the driver exists.
6661	(GUI.on_btnNPApply_clicked): Use it (bug #212139).
6662
66632006-10-31  Tim Waugh  <twaugh@redhat.com>
6664
6665	* system-config-printer.py (GUI.__init__): Find '.PPD' files as
6666	well as '.ppd' files (bug #213223).
6667
66682006-10-25  Tim Waugh  <twaugh@redhat.com>
6669
6670	* foomatic.py (Printer.getPPD): Clean up temporary file.
6671
66722006-10-05  Tim Waugh  <twaugh@redhat.com>
6673
6674	* system-config-printer.glade: Fix invisible_char in glade
6675	file (bug #209368).
6676
66772006-10-02  Tim Waugh  <twaugh@redhat.com>
6678
6679	* configure.in: Version 0.7.32.
6680
66812006-10-02  Tim Waugh  <twaugh@redhat.com>
6682
6683	* system-config-printer.py (GUI.show_HTTP_Error): New function.
6684	(GUI.connect): Use it to handle HTTPError (bug #208824).
6685	(GUI.setConnected): Set 'server settings' widgets insensitive when
6686	not connected.
6687	(GUI.on_tvMainList_cursor_changed): Only set widget status when
6688	connected.
6689	(GUI.__init__): Handle error on initial connection (bug #208824).
6690
66912006-09-29  Tim Waugh  <twaugh@redhat.com>
6692
6693	* configure.in: Version 0.7.31.
6694
66952006-09-29  Tim Waugh  <twaugh@redhat.com>
6696
6697	* system-config-printer.py: Fixed automatic selection of recommended
6698	driver (bug #208606).
6699
6700	* system-config-printer.glade: Better visibility for printer
6701	drivers (bug #203907).
6702
67032006-09-29  Tim Waugh  <twaugh@redhat.com>
6704
6705	* configure.in: Version 0.7.30.
6706
67072006-09-29  Tim Waugh  <twaugh@redhat.com>
6708
6709	* Makefile.am: Add a distcheck-hook for update-po.
6710
6711	* system-config-printer.glade: Don't set width_request on buttons
6712	that don't need it (bug #208556).
6713
67142006-09-29  Tim Waugh  <twaugh@redhat.com>
6715
6716	* configure.in: Version 0.7.29.
6717
67182006-09-29  Tim Waugh  <twaugh@redhat.com>
6719
6720	* foomatic.py (getPrinterFromCupsDevice): Fixed debug message.
6721
6722	* system-config-printer.py (GUI.__init__): Set glade translation
6723	domain (bug #206622).
6724
6725	* po/fr.po: Fixed vertext ('%' -> '%s').
6726
67272006-09-26  Tim Waugh  <twaugh@redhat.com>
6728
6729	* configure.in: Version 0.7.28.
6730
67312006-09-26  Tim Waugh  <twaugh@redhat.com>
6732
6733	* configure.in: Set CATOBJECT to fix bug #206622.
6734
67352006-08-30  Tim Waugh  <twaugh@redhat.com>
6736
6737	* configure.in: Version 0.7.27.
6738
67392006-08-30  Tim Waugh  <twaugh@redhat.com>
6740
6741	Applied patch from Kjartan Maraas:
6742	* Makefile.am: Use intltool to translate desktop file.
6743	* bootstrap: Run intltoolize.
6744	* configure.in: Added intltool hook.
6745	* system-config-printer.desktop.in: New file.
6746	* po/POTFILES.in: Translate desktop file.
6747
67482006-08-24  Tim Waugh  <twaugh@redhat.com>
6749
6750	* foomatic.py: Removed special raw printer handling in favour of
6751	CUPS-provided 'Raw Queue' pseudo-PPD.
6752
6753	* system-config-printer.py (GUI.on_btnChangePPD_clicked): Prevent
6754	traceback on raw queue.
6755	(GUI.on_btnNPApply_clicked): Cope with changing from a PPD-driven
6756	queue to a raw queue.
6757
67582006-08-23  Tim Waugh  <twaugh@redhat.com>
6759
6760	* configure.in: Version 0.7.26.
6761
67622006-08-23  Tim Waugh  <twaugh@redhat.com>
6763
6764	* system-config-printer.py (GUI.fillPrinterTab): Use ellipsis to
6765	show authentication details are hidden.
6766	(percentDecode): New function.
6767
67682006-08-18  Tim Waugh  <twaugh@redhat.com>
6769
6770	* system-config-printer.py (percentEncode): New function.
6771	(GUI.getDeviceURI): Use it (bug #203066).
6772	(GUI.fillNPApply): When authentication details are hidden in SMB
6773	URI, show this with an ellipsis.
6774
67752006-08-14 Florian Festi  <ffesti@redhat.com>
6776
6777	* configure.in: Version 0.7.25.
6778	* cupshelpers.py (Printer.getPPD): fix for raw queues
6779	* system-config-printer.py (GUI.fillPrinterOptions): don't show
6780	  option tabs for raw queues
6781	* system-config-printer.py (GUI.on_btnNPApply_clicked): fix for
6782	  raw queues
67832006-08-03  Tim Waugh  <twaugh@redhat.com>
6784
6785	* configure.in: Version 0.7.24.
6786
67872006-08-03  Tim Waugh  <twaugh@redhat.com>
6788
6789	* system-config-printer.py (GUI.getDeviceURI): Fixed IPP URI
6790	generation.
6791	(GUI.on_tvNPDevices_cursor_changed): Parse IPP URIs correctly.
6792
67932006-07-28  Tim Waugh  <twaugh@redhat.com>
6794
6795	* cupshelpers.py (Device.__init__): Fixed traceback when handling
6796	non-conforming Device IDs.
6797
67982006-07-24  Tim Waugh  <twaugh@redhat.com>
6799
6800	* configure.in: Version 0.7.23.
6801
68022006-07-24  Tim Waugh  <twaugh@redhat.com>
6803
6804	* system-config-printer.py (GUI.initNewPrinterWindow): Set JetDirect
6805	port number to 9100 by default (bug #197866).
6806
68072006-07-07  Tim Waugh  <twaugh@redhat.com>
6808
6809	* system-config-printer.py (GUI.save_serversettings): Reconnect
6810	after adjusting server settings.
6811
68122006-07-07  Tim Waugh  <twaugh@redhat.com>
6813
6814	* configure.in: Version 0.7.22.
6815
68162006-07-07  Tim Waugh  <twaugh@redhat.com>
6817
6818	* system-config-printer.py (GUI.on_tvNPDrivers_cursor_changed):
6819	Fix PPD description for PPDs from the CUPS foomatic driver.
6820
6821	* foomatic.py (_ppdMakeModelSplit): Handle PPDs from the CUPS
6822	foomatic driver.
6823
6824	* cupshelpers.py (PrintersConf.fetch): Handle classes.conf or
6825	printers.conf being asent.
6826
68272006-07-06 Florian Festi  <ffesti@redhat.com>
6828
6829	* system-config-printer.py (GUI.fillPrinterOptions): Keep
6830	"Installable Options" tab focused when Apply button is pressed.
6831	* system-config-printer.glade: hide "Installable Options" tab to
6832	haveit redrawn on the first showall()
6833	* system-config-printer.py (GUI.on_btnNewOption_clicked,
6834	GUI.removeOption_clicked, GUI.on_cmbentNewOption_changed): Don't offer
6835	options as new that are already set.
6836
68372006-07-05  Tim Waugh  <twaugh@redhat.com>
6838
6839	* configure.in: Version 0.7.21.
6840
68412006-07-05  Tim Waugh  <twaugh@redhat.com>
6842
6843	* options.py (OptionSelectOne.__init__): Handle Booleans.
6844	(Option.is_changed): Compare strings not values.
6845
6846	* cupshelpers.py (Printer._getAttributes): Fix case in Boolean
6847	options.
6848
68492006-07-05 Florian Festi  <ffesti@redhat.com>
6850
6851	* cupshelpers.py (Printer._getAttributes, GUI.fillPrinterTab):
6852	fixed handling of server side settings
6853
68542006-07-04  Tim Waugh  <twaugh@redhat.com>
6855
6856	* foomatic.py (Printer.getPPD): Fix foomatic-provided PPD
6857	loading.
6858
68592006-07-03  Tim Waugh  <twaugh@redhat.com>
6860
6861	* configure.in: Version 0.7.20.
6862
68632006-07-03 Florian Festi  <ffesti@redhat.com>
6864
6865	* system-config-printer.glade: Spacing (HIG)
6866
68672006-07-03 Florian Festi  <ffesti@redhat.com>
6868
6869	* system-config-printer.py (GUI.populateList): Hide empty entries in
6870	the main list
6871
68722006-07-03  Tim Waugh  <twaugh@redhat.com>
6873
6874	* foomatic.py (_ppdMakeModelSplit): Fixed indentation.
6875	(_ppdMakeModelSplit): Better commented explanations.
6876	(Foomatic.addCupsPPDs): Don't include foomatic-provided PPDs
6877	because we already know about them from foomatic.
6878
68792006-06-30  Tim Waugh  <twaugh@redhat.com>
6880
6881	* configure.in: Version 0.7.19.
6882
68832006-06-30  Tim Waugh  <twaugh@redhat.com>
6884
6885	* foomatic.py (Printer.parse_xml): There's no ppds node.  Handle
6886	lang/*/ppd.
6887	(_ppdMakeModelSplit): New function.
6888
6889	* system-config-printer.py (GUI.on_tvNPDrivers_cursor_changed):
6890	More reliable PPD information.
6891
6892	* foomatic.py: Use /var/cache/foomatic/foomatic.pickle for pickle
6893	file.
6894	(Foomatic.addCupsPPDs): Strip PS/PXL suffices from CUPS PPD
6895	nicknames.
6896	(Foomatic.addCupsPPDs): Add loaded PPD drivers to existing
6897	printers.
6898	(Printer.getPPDDrivers): Strip .gz when comparing file names.
6899
69002006-06-29  Tim Waugh  <twaugh@redhat.com>
6901
6902	* system-config-printer.py (GUI.on_delete_activate): Clear any
6903	un-applied changes.
6904
6905	* system-config-printer.glade: Make buttons on the new printer dialog
6906	all the same width.
6907
69082006-06-27  Tim Waugh  <twaugh@redhat.com>
6909
6910	* configure.in: Version 0.7.18.
6911
69122006-06-27  Tim Waugh  <twaugh@redhat.com>
6913
6914	* system-config-printer.py (GUI.setDataButtonState): Print Test
6915	Page button is only sensitive when printer is enabled, accepting
6916	jobs, and no changes need to be applied.
6917	(GUI.fillPrinterTab): Likewise.
6918	(GUI.on_btnPrintTestPage_clicked): Tell the user that the test
6919	page was submitted, and which job number it was.
6920	(GUI.on_btnPrintTestPage_clicked): Handle test page failures due
6921	to the remote printer not being shared.  In theory it should be
6922	possible to print test pages there, but needs hackery.
6923
69242006-06-26 Florian Festi  <ffesti@redhat.com>
6925	* system-config-printer.glade,
6926	system-config-printer.py (GUI.on_btnPrintTestPage_clicked):
6927	Print test page button
6928
69292006-06-26  Tim Waugh  <twaugh@redhat.com>
6930
6931	* po/POTFILES.in: Include the glade file.
6932	* po/Makevars: Bugzilla for reporting bugs.
6933	* system-config-printer.glade: Some translatable="no" fixes.
6934
69352006-06-25  Tim Waugh  <twaugh@redhat.com>
6936
6937	* system-config-printer.py (GUI.on_btnNPApply_clicked): Set
6938	newly-created queue enabled and accepting jobs.
6939
6940	* cupshelpers.py: Strings marked for translation.
6941
69422006-06-23  Tim Waugh  <twaugh@redhat.com>
6943
6944	* configure.in: Version 0.7.17.
6945
69462006-06-23  Tim Waugh  <twaugh@redhat.com>
6947
6948	* system-config-printer.py (GUI.on_tvNPDrivers_cursor_changed):
6949	Provide PPD information.
6950	(GUI.busy, GUI.ready): New cursor functions.
6951	(GUI.on_entSMBURI_changed): Check whether to ignore this signal.
6952	(GUI.on_tvSMBBrowser_cursor_changed): Suppress signals from
6953	entSMBURI when we set its text.
6954	(GUI.on_btnSMBVerify_clicked): Implemented.
6955	(GUI.initNewPrinterWindow): Grab focus after setting text, so that
6956	it is highlighted.
6957
69582006-06-23  Tim Waugh  <twaugh@redhat.com>
6959
6960	* configure.in: Version 0.7.16.
6961
69622006-06-23  Tim Waugh  <twaugh@redhat.com>
6963
6964	* system-config-printer.py (GUI.fillDeviceTab): Filter out
6965	hpfax:/no_device_found.
6966	(GUI.construct_SMBURI): New function.
6967	(GUI.on_tvSMBBrowser_cursor_changed): Use it.
6968	(GUI.fillNPApply): Don't reveal SMB authentication details.
6969	(GUI.initNewPrinterWindow): Clear out SMB screen.
6970
69712006-06-22  Tim Waugh  <twaugh@redhat.com>
6972
6973	* system-config-printer.py (GUI): Show SMB tab.
6974	(GUI.initNewPrinterWindow): Set up SMB browser columns.
6975	(GUI.on_tvSMBBrowser_row_activated): New function, ported from
6976	printconf.
6977	(GUI.on_tvSMBBrowser_row_expanded): Likewise.
6978	(GUI.on_tvSMBBrowser_select_cursor_row): New function.
6979	(GUI.getDeviceURI): Use constructed SMB URI.
6980	(GUI.nextNPTab): Load foomatic after getting the new queue name.
6981	This way the dialog appears as soon as you click 'New'.
6982	(GUI.on_btnSMBVerify_clicked): Added 'Verify' button.
6983
6984	* pysmb.py: New file, imported from printconf.
6985
69862006-06-22  Tim Waugh  <twaugh@redhat.com>
6987
6988	* configure.in: Version 0.7.15.
6989
69902006-06-21  Tim Waugh  <twaugh@redhat.com>
6991
6992	* foomatic.py (Foomatic.getPrinterFromCupsDevice): Best matching.
6993
6994	* system-config-printer.py (GUI.on_tvNPDevices_cursor_changed):
6995	Select make based on the selected device.
6996
6997	* system-config-printer.py: Copyright and license header.
6998	* cupshelpers.py: Likewise.
6999	* foomatic.py: Likewise.
7000	* gtk_html2pango.py: Likewise.
7001	* nametree.py: Likewise.
7002	* options.py: Likewise.
7003	* optionwidgets.py: Likewise.
7004	* probe_printer.py: Likewise.
7005
7006	* system-config-printer.py (GUI.show_IPP_Error): Tidied
7007	translatable strings.
7008
7009	* po/*.po: msgmerged from printconf.
7010
70112006-06-20  Tim Waugh  <twaugh@redhat.com>
7012
7013	* configure.in: Version 0.7.14.
7014
70152006-06-20  Tim Waugh  <twaugh@redhat.com>
7016
7017	* cupshelpers.py (Device.__cmp__): Fixed device sorting.
7018
7019	* foomatic.py (Foomatic._write_pickle): Fixed typo.
7020
7021	* Makefile.am: Ship config.py.
7022
7023	* configure.in: Generate config.py.
7024
7025	* config.py.in: New file, for any autoconf-generated variables
7026	such as VERSION.
7027
7028	* system-config-printer.py (connect, main): Use gtk.gdk.threads_enter,
7029	because gtk.threads_enter is deprecated.
7030	(GUI.__init__): Set up "About" dialog strings (bug #192764).
7031
70322006-06-19  Tim Waugh  <twaugh@redhat.com>
7033
7034	* Makefile: Version 0.7.13.
7035
70362006-06-19  Tim Waugh  <twaugh@redhat.com>
7037
7038	* Makefile.am: Added automake infrastructure.
7039
7040	* foomatic.py (_write_pickle, _load_pickle): Don't use /tmp, even as
7041	a default.
7042
7043	* po/*: Added i18n infrastructure using gettextize.
7044
70452006-06-09  Tim Waugh  <twaugh@redhat.com>
7046
7047	* Makefile: Version 0.7.12.
7048
70492006-06-09  Tim Waugh  <twaugh@redhat.com>
7050
7051	* cupshelpers.py (PrintersConf.parse): Handle empty lines in
7052	printers.conf (bug #194217).
7053
70542006-06-01  Tim Waugh  <twaugh@redhat.com>
7055
7056	* system-config-printer.py (GUI.on_btnNPApply_clicked): Fixed
7057	typo.
7058
70592006-05-31  Tim Waugh  <twaugh@redhat.com>
7060
7061	* Makefile: Version 0.7.11.
7062
70632006-05-30  Tim Waugh  <twaugh@redhat.com>
7064
7065	* system-config-printer.py (GUI.getDeviceURI): Use correct widget
7066	names (bug #192764).
7067
70682006-05-26  Tim Waugh  <twaugh@redhat.com>
7069
7070	* Makefile: Version 0.7.10.
7071
70722006-05-26  Tim Waugh  <twaugh@redhat.com>
7073
7074	* system-config-printer.glade: Set 'Job options' help text.
7075
7076	* system-config-printer.py (GUI.__init__): Grab
7077	entNPTDirectJetHostname and entNPTDirectJetPort widgets from the
7078	XML (bug #192764).
7079	(GUI.getDeviceURI): Use them.
7080
70812006-05-25  Tim Waugh  <twaugh@redhat.com>
7082
7083	* Makefile: Version 0.7.9.
7084
70852006-05-25  Tim Waugh  <twaugh@redhat.com>
7086
7087	* cupshelpers.py (PrintersConf.fetch): Handle IPP errors
7088	somewhat gracefully.
7089
7090	* system-config-printer.py (GUI.__init__): Don't assume all LC_*
7091	variables are set to the same locale (bug #192807).
7092
70932006-05-18 Florian Festi  <ffesti@redhat.com>
7094	* cupshelpers.py (Printer._getAttributes): filter out "notify-events"
7095	because it is not (yet) supported by cups
7096	* foomatic.py (Foomatic.getPPD): new method used by new hal_lpadmin
7097	* system-config-printer.glade, system-config-printer.py
7098	(GUI.on_btnRefresh_clicked): Refresh button
7099
71002006-05-17  Tim Waugh  <twaugh@redhat.com>
7101
7102	* system-config-printer.py (GUI.connect): Turns out we need to set
7103	the password callback again when we start a new thread.
7104
71052006-05-16  Tim Waugh  <twaugh@redhat.com>
7106
7107	* system-config-printer.py (GUI.removeOption_clicked): Actually
7108	remove the option from our list.
7109	(GUI.save_printer): Fixed debugging code.
7110
71112006-05-15  Tim Waugh  <twaugh@redhat.com>
7112
7113	* Makefile: Version 0.7.8.
7114
71152006-05-15 Florian Festi  <ffesti@redhat.com>
7116	* cupshelpers.py (Printer._getAttributes): Support more job options
7117	* system-config-printer.py: refining interface for job options
7118
71192006-05-05  Tim Waugh  <twaugh@redhat.com>
7120
7121	* Makefile: Ship options.py.
7122
71232006-05-04  Tim Waugh  <twaugh@redhat.com>
7124
7125	* Makefile: Version 0.7.7.
7126
71272006-05-04  Tim Waugh  <twaugh@redhat.com>
7128
7129	* system-config-printer.desktop: New file.
7130
71312006-05-04 Florian Festi  <ffesti@redhat.com>
7132	* system-config-printer.py(GUI.fillPrinterTab, GUI.save_printer,
7133	GUI.add_option, ...) Support for job options
7134
71352006-04-28  Tim Waugh  <twaugh@redhat.com>
7136
7137	* Makefile: Version 0.7.6.
7138
71392006-04-28  Tim Waugh  <twaugh@redhat.com>
7140
7141	* system-config-printer.py: Make it actually run.
7142
71432006-04-20  Tim Waugh  <twaugh@redhat.com>
7144
7145	* Makefile: Version 0.7.5.
7146
71472006-04-20 Florian Festi  <ffesti@redhat.com>
7148	* system-config-printer.py (GUI.fillServerTab,
7149	GUI.save_serversettings, GUI.on_server_changed): Handle server settings
7150
71512006-04-14  Tim Waugh  <twaugh@redhat.com>
7152
7153	* system-config-printer.py: Exit gracefully when DISPLAY is not
7154	set, and when '--help' is given (bug #168485).
7155
71562006-04-12  Tim Waugh  <twaugh@redhat.com>
7157
7158	* Makefile: Version 0.7.4.
7159
71602006-04-09  Tim Waugh  <twaugh@redhat.com>
7161
7162	* system-config-printer.py (GUI.fillNPApply): Fill in name and
7163	uri.
7164	(GUI.loadFoomatic): New function to load foomatic database (and
7165	get CUPS PPDs) on demand, since this is an expensive process.
7166	(GUI.unloadFoomatic): New function.
7167	(GUI.on_connect_activate): Unload foomatic.
7168	(GUI.on_new_printer_activate): Load foomatic.
7169	(GUI.on_btnSelectDevice_clicked): Likewise.
7170	(GUI.on_btnChangePPD_clicked): Likewise.
7171
71722006-04-07  Tim Waugh  <twaugh@redhat.com>
7173
7174	* Makefile: Version 0.7.3.
7175
71762006-04-07  Tim Waugh  <twaugh@redhat.com>
7177
7178	* Makefile: Packaging fixes.
7179
71802006-04-07  Tim Waugh  <twaugh@redhat.com>
7181
7182	* Makefile: Version 0.7.2.
7183
71842006-04-06 Florian Festi  <ffesti@redhat.com>
7185
7186	* system-config-printer.py (GUI.on_connect_activate, connect):
7187	Open connection to cups server in a new thread to avoid GUI freeze
7188	* system-config-printer.glade (ConnectingDialog): Shown while
7189	connection to server
7190
7191	* system-config-printer.py (GUI.save_printer, ...) Do error
7192	handling when communicationg with cups server.
7193
7194	* system-config-printer.py (...) make GUI strings translatable
7195
7196	* foomatic.py (copyPPDOptions): Migrate options settings between PPDs
7197
7198	* foomatic.py (FoomaticXMLFile.getLangComment): search for language
7199	fammilies
7200
7201	* foomatic.py: "Generic Raw" printer for raw queues
7202
7203	* system-config-printer.glade (NewPrinterDialog): Tab for applying
7204	new PPD: Ask copy option settings or not?
7205
7206	* system-config-printer.glade Commented out Server setting tab, allow
7207	no printer is selected, support not connected to cups server
7208
72092006-03-27 Tim Waugh  <twaugh@redhat.com>
7210
7211	* system-config-printer.py (GUI.__init__): Always set
7212	self.conflicts, to prevent tracebacks in self.setDataButtonState()
7213	later.
7214
72152006-03-27 Florian Festi  <ffesti@redhat.com>
7216	* system-config-printer.glade, system-config-printer.py:
7217	New tab for Access Control, list with add/remove buttons for
7218	user handling
7219
72202006-03-25 Florian Festi  <ffesti@redhat.com>
7221
7222	* system-config-printer.glade, system-config-printer.py
7223	(NewPrinterDialog): Reuse NewPrinterDialog for changing Device
7224	and PPD
7225
72262006-03-23 Florian Festi  <ffesti@redhat.com>
7227
7228	* system-config-printer.glade (NewPrinterDialog)
7229	* system-config-printer.py (GUI): Redesigned PPD selection, added
7230	filechooser for providing own PPDs
7231
7232	* gtk_label_autowrap.py: online fix for multiline gtk.Label to force
7233	adjustion to size changes
7234
7235	* gtk_html2pango.py (HTML2PangoParser)
7236	* foomatic.py (FoomaticXMLFile): Convert HTML to pango markup
7237
72382006-03-20 Florian Festi  <ffesti@redhat.com>
7239
7240	* system-config-printer.glade (MainWindow)
7241	* system-config-printer.py: Removed Server CmbBox in Toolbar, make
7242	Connect Window default to server of currently selected Printer.
7243
7244	* system-config-printer.glade (NewPrinterDialog)
7245	* system-config-printer.py (GUI.fillNewClassMembers,
7246	GUI.on_btnNC(Add|Del)Member_clicked): Change member handling in new
7247	class dialog to the same way as the main window
7248
7249	* system-config-printer.glade (NewPrinterName)
7250	* system-config-printer.py (GUI.save_printer): Copy printers and
7251	classes
7252
7253
72542006-03-17 Florian Festi  <ffesti@redhat.com>
7255
7256	* foomatic.py (Foomatic._add_printer): fixed bug: used printer.name
7257	insted of printer.model as keys in self.makes[make][model]
7258
7259	* system-config-printer.glade (NewPrinterDialog): Visual improvements
7260
7261	* system-config-printer.glade
7262	* system-config-printer.py (printer data handling): Changed Allow/Deny
7263	from ToggleButton to ComboBox
7264
7265	* foomatic.py (Foomatic._load_pickle): If there are files with
7266	newer mtime and discard pickle
7267
7268	* system-config-printer.py (GUI.fillClassMembers): Support remote
7269	Printers as class members
7270
7271	* system-config-printer.glade
7272	* system-config-printer.py: NewPrinterDialog also supports new classes
7273
72742006-03-17  Tim Waugh  <twaugh@redhat.com>
7275
7276	* foomatic.py: No need to adjust sys.path.
7277
72782006-03-16  Tim Waugh  <twaugh@redhat.com>
7279
7280	* Makefile: Version 0.7.1 (packaging test).
7281
72822006-03-16  Tim Waugh  <twaugh@redhat.com>
7283
7284	* Makefile: Don't forget to ship the glade files.
7285
72862006-03-16  Tim Waugh  <twaugh@redhat.com>
7287
7288	* Makefile: Version 0.7.0 (for testing).
7289
72902006-03-16  Tim Waugh  <twaugh@redhat.com>
7291
7292	* system-config-printer.py (pkgdata): Prepare for packaging.
7293	(GUI.fillPrinterOptions): Remove temporary file.
7294	(GUI.on_tvMainList_cursor_changed): Place-holder for handling
7295	remote queues that no longer exist.
7296	(GUI.fillPrinterOptions): Place-holder for handling raw queues.
7297	(GUI.initNewPrinterWindow): Better initialization.
7298
72992006-03-15  Tim Waugh  <twaugh@redhat.com>
7300
7301	* system-config-printer.py (GUI.__init__): Fetch entNPTDevice
7302	widget.
7303
7304	* foomatic.py (Foomatic.getPrinters): Use glob for this, so we
7305	only pick up XML files.  Foomatic has shipped DTD files here in
7306	the past, and may again.
7307	(Foomatic.getDrivers): Likewise.
7308
73092006-03-15 Florian Festi  <ffesti@redhat.com>
7310
7311	* foomatic.py (Foomatic.__init__): pickle printers' make,
7312	model, name to disk
7313	* system-config-printer.glade,
7314	* system-config-printer.py (GUI.fillPPDList): GUI for selecting
7315	printers and drivers (no "give PPD file" yet)
7316	* system-config-printer.py (GUI.fillDeviceTab,
7317	GUI.on_cmbNPType_changed, GUI.getDeviceURI):
7318	Use cups.Connection.getDevices() for DeviceURI GUI
7319
73202006-03-14  Tim Waugh  <twaugh@redhat.com>
7321
7322	* cupshelpers.py (Printer.setShared): setPrinterPublished changed
7323	to setPrinterShared.
7324
73252006-03-14 Florian Festi  <ffesti@redhat.com>
7326	* probe_printer.py: First code for probing queue names on remote
7327	printers/printing servers.
7328
7329	* cupshelpers.py (Printer._getAttributes): Read CUPS printer attributes
7330	* cupshelpers.py (Printer.set*): Methods for setting CUPS attributes
7331	* system-config-printer.glade: New tab for CUPS printer attributes
7332	* system-config-printer.py (GUI.fillPrinterTab, GUI.save_printer,
7333	GUI.on_printer_changed, GUI.on_tbtnPAllow_changed,
7334	GUI.on_entPExceptUsers_changed): Handle CUPS printer attributes
7335
73362006-03-10 Florian Festi  <ffesti@redhat.com>
7337
7338	* system-config-printer.py (GUI.__init__, GUI.populateList):
7339	Make main list a tree (remote/local printers/classes)
7340
73412006-03-09 Florian Festi  <ffesti@redhat.com>
7342
7343	* cupshelpers.py (Printer.__init__): save cups.Connection within
7344	Printer object
7345	* cupshelpers.py (Printer.set*): Methods for setting printer
7346	enabled/disabled, accepting/rejecting, shared
7347	* system-config-printer.py (GUI.fillPrinterTab, GUI.savePrinter):
7348	support for the settings above
7349
7350	* system-config-printer.glade: signals for printer settings
7351	* system-config-printer.py (GUI.on_printer_changed) keep track if
7352	printer settings got changed
7353
7354	* system-config-printer.py (GUI.fillPrinterTab, GUI.fillServerTab,
7355	GUI.setCmbServers): fast goto server feature
7356
7357	* system-config-printer.glade, system-config-printer.py
7358	(GUI.fillPrinterOptions): polished MainWindow
7359
7360	* system-config-printer.py (GUI.fillPrinterOptions)
7361	* optionswidgets.py (Option.__init__, Option.checkConflicts)
7362	* system-config-printer.py (GUI.fillPrinterOptions):
7363	Made conflict icon a button
7364
73652006-03-08 Florian Festi  <ffesti@redhat.com>
7366
7367	* cupshelpers.py:
7368	new Printer class, cups.Connection.getPrinters() replacement
7369	* system-config-printer.py (GUI.fill*, GUI.save_printer):
7370	change printers to new Printer class
7371
7372	* system-config-printer.py (GUI.fill*): don't allow changes
7373	to remote printers
7374
73752006-03-07 Florian Festi  <ffesti@redhat.com>
7376
7377	* system-config-printer.glade: Tab for members of printer classes
7378	* system-config-printer.py (GUI.fill*, GUI.save_printer, ...):
7379	support for printer classes
7380
73812006-03-06 Florian Festi  <ffesti@redhat.com>
7382
7383	* optionswidgets.py (Option.__init__, Option.checkConflicts):
7384	Conflict handling
7385	* system-config-printer.py (GUI.fillPrinterTab) Calculate conflicts,
7386	add conflict icons to table
7387	* system-config-printer.py (GUI.option_changed,
7388	GUI.setDataButtonState): disable Apply and Revert buttons on
7389	conflicts and show Error icon
7390
7391	* system-config-printer.py (GUI.on_btnApply*_clicked):
7392	ApplyDialog
7393	* system-config-printer.py (GUI.on_quit_activate,
7394	GUI.on_tvMainList_cursor_changed, GUI.on_connect_activate):
7395	Run ApplyDialog if there are unapplied changes
7396
73972006-03-03  Tim Waugh  <twaugh@redhat.com>
7398
7399	* system-config-printer.glade: Make error dialog label selectable.
7400
7401	* system-config-printer.py (GUI.on_btnApply_clicked): Some
7402	error-checking.
7403
7404	* system-config-printer.glade: New ErrorDialog.
7405
7406	* system-config-printer.py (GUI.cupsPasswdCallback): Set query
7407	label.
7408	(GUI.cupsPasswdCallback): Set transient for main window.
7409	(GUI.on_btnApply_clicked): Only set PPD options if they have
7410	changed.
7411
7412	* system-config-printer.glade: Better PasswordDialog layout.
7413
7414	* optionwidgets.py (Option.__init__): End option labels with ':'.
7415
7416	* system-config-printer.py (GUI.fillPrinterTab): HIG spacing
7417	between labels and widgets.
7418
74192006-03-02  Tim Waugh  <twaugh@redhat.com>
7420
7421	* system-config-printer.glade: Use a Dialog for
7422	Connect... dialog.
7423	* system-config-printer.py (GUI.on_connect_activate): Run the dialog.
7424
7425	* optionwidgets.py (OptionBool.__init__): Use CheckButton's
7426	built-in label.
7427
7428	* system-config-printer.py (GUI.fillPrinterTab): Textual
7429	printer-state description.
7430	(GUI.fillPrinterTab): More consistent layout.
7431
7432	* system-config-printer.glade: Added 'items' property to
7433	cmbServername.
7434
7435	* system-config-printer.py (GUI.on_connect_activate): Populate
7436	server-name combo-box from browsed queues.
7437
7438