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