From b529f046c9a64ac5fcfa60747af940cf972b3ebc Mon Sep 17 00:00:00 2001
From: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date: Sun, 6 Nov 2011 15:56:34 -0600
Subject: Actually move the kde files that were renamed in the last commit

---
 doc/glossary/kdeprintingglossary.docbook           | 1387 ----
 doc/glossary/tdeprintingglossary.docbook           | 1387 ++++
 doc/kdeprint/CMakeLists.txt                        |   12 -
 doc/kdeprint/Makefile.am                           |    3 -
 doc/kdeprint/add-printer-wiz.docbook               |  290 -
 doc/kdeprint/cr32-action-wizard.png                |  Bin 606 -> 0 bytes
 doc/kdeprint/cups-config.docbook                   | 2072 ------
 ...s-filterarchitecture-kivio-70Percent-scaled.png |  Bin 100464 -> 0 bytes
 doc/kdeprint/cupsaddprinterwizard1.png             |  Bin 70554 -> 0 bytes
 .../cupsaddprinterwizard2_backendselection.png     |  Bin 76444 -> 0 bytes
 doc/kdeprint/cupsaddprinterwizard3_networkscan.png |  Bin 70820 -> 0 bytes
 .../cupsaddprinterwizard3_networkscan_results.png  |  Bin 90883 -> 0 bytes
 .../cupsaddprinterwizard4_networkscan_config.png   |  Bin 10607 -> 0 bytes
 doc/kdeprint/cupsoptions.docbook                   |  602 --
 .../cupsserverconfig_browse_relay_add_button.png   |  Bin 2562 -> 0 bytes
 .../cupsserverconfig_browsingmasks_add_button.png  |  Bin 2294 -> 0 bytes
 .../cupsserverconfiguration10_browsinggeneral.png  |  Bin 14678 -> 0 bytes
 ...psserverconfiguration11_browsingconnections.png |  Bin 15433 -> 0 bytes
 .../cupsserverconfiguration11_browsingmasks.png    |  Bin 15493 -> 0 bytes
 .../cupsserverconfiguration12_browsingtimeouts.png |  Bin 14109 -> 0 bytes
 .../cupsserverconfiguration14_browsingrelay.png    |  Bin 14903 -> 0 bytes
 ...uration15a_resourceallprinters_defineaccess.png |  Bin 15822 -> 0 bytes
 ...uration15b_resourceallprinters_defineaccess.png |  Bin 5870 -> 0 bytes
 ...uration15c_resourceallprinters_defineaccess.png |  Bin 5470 -> 0 bytes
 doc/kdeprint/cupsserverconfiguration1_welcome.png  |  Bin 31316 -> 0 bytes
 doc/kdeprint/cupsserverconfiguration2_general.png  |  Bin 15870 -> 0 bytes
 doc/kdeprint/cupsserverconfiguration3_logging.png  |  Bin 16490 -> 0 bytes
 .../cupsserverconfiguration4_directories.png       |  Bin 17728 -> 0 bytes
 doc/kdeprint/cupsserverconfiguration5_HTTP.png     |  Bin 15010 -> 0 bytes
 .../cupsserverconfiguration6_encryption.png        |  Bin 15083 -> 0 bytes
 .../cupsserverconfiguration7_miscellanious.png     |  Bin 15943 -> 0 bytes
 .../cupsserverconfiguration8_networkgeneral.png    |  Bin 15538 -> 0 bytes
 .../cupsserverconfiguration9_networkclients.png    |  Bin 14998 -> 0 bytes
 ...erverconfiguration_resourceadminaccessmasks.png |  Bin 47480 -> 0 bytes
 ...erverconfiguration_resourceadminaddprinters.png |  Bin 30334 -> 0 bytes
 ...ation_resourceadminaddprinters_defineaccess.png |  Bin 43890 -> 0 bytes
 ...verconfiguration_resourceadminauthorization.png |  Bin 30503 -> 0 bytes
 .../cupsserverconfiguration_securityoverview.png   |  Bin 16804 -> 0 bytes
 doc/kdeprint/extensions.docbook                    |   57 -
 doc/kdeprint/external-command.docbook              |   25 -
 doc/kdeprint/final-word.docbook                    |  117 -
 doc/kdeprint/getting-started.docbook               |  143 -
 doc/kdeprint/highlights.docbook                    |  518 --
 doc/kdeprint/index.docbook                         |  200 -
 doc/kdeprint/kcontrol-icon.png                     |  Bin 1202 -> 0 bytes
 .../kcontrolcenter-printmanager-jobcontrol-2.png   |  Bin 10761 -> 0 bytes
 doc/kdeprint/kcron_to_be_printed.png               |  Bin 10637 -> 0 bytes
 doc/kdeprint/kdeprint-jobviewer.png                |  Bin 11220 -> 0 bytes
 doc/kdeprint/kprinter-as-netscape-printcommand.png |  Bin 8210 -> 0 bytes
 doc/kdeprint/kprinter-kivio.png                    |  Bin 11149 -> 0 bytes
 doc/kdeprint/kprinter.png                          |  Bin 12568 -> 0 bytes
 doc/kdeprint/kprinter_called_from_run_command.png  |  Bin 6068 -> 0 bytes
 .../kprinter_with_kcron_developer_special.png      |  Bin 11245 -> 0 bytes
 doc/kdeprint/lpd.docbook                           |   18 -
 doc/kdeprint/lpr-bsd.docbook                       |   25 -
 doc/kdeprint/lprng.docbook                         |    7 -
 doc/kdeprint/ps-boxes.png                          |  Bin 441 -> 0 bytes
 doc/kdeprint/rlpr.docbook                          |   18 -
 doc/kdeprint/steinbruch_scaled.png                 |  Bin 116567 -> 0 bytes
 doc/kdeprint/tech-overview.docbook                 |  280 -
 doc/kdeprint/theory.docbook                        |  690 --
 doc/kdesu/CMakeLists.txt                           |   12 -
 doc/kdesu/Makefile.am                              |    5 -
 doc/kdesu/index.docbook                            |  320 -
 doc/kdesu/man-kdesu.1.docbook                      |  179 -
 doc/tdeprint/CMakeLists.txt                        |   12 +
 doc/tdeprint/Makefile.am                           |    3 +
 doc/tdeprint/add-printer-wiz.docbook               |  290 +
 doc/tdeprint/cr32-action-wizard.png                |  Bin 0 -> 606 bytes
 doc/tdeprint/cups-config.docbook                   | 2072 ++++++
 ...s-filterarchitecture-kivio-70Percent-scaled.png |  Bin 0 -> 100464 bytes
 doc/tdeprint/cupsaddprinterwizard1.png             |  Bin 0 -> 70554 bytes
 .../cupsaddprinterwizard2_backendselection.png     |  Bin 0 -> 76444 bytes
 doc/tdeprint/cupsaddprinterwizard3_networkscan.png |  Bin 0 -> 70820 bytes
 .../cupsaddprinterwizard3_networkscan_results.png  |  Bin 0 -> 90883 bytes
 .../cupsaddprinterwizard4_networkscan_config.png   |  Bin 0 -> 10607 bytes
 doc/tdeprint/cupsoptions.docbook                   |  602 ++
 .../cupsserverconfig_browse_relay_add_button.png   |  Bin 0 -> 2562 bytes
 .../cupsserverconfig_browsingmasks_add_button.png  |  Bin 0 -> 2294 bytes
 .../cupsserverconfiguration10_browsinggeneral.png  |  Bin 0 -> 14678 bytes
 ...psserverconfiguration11_browsingconnections.png |  Bin 0 -> 15433 bytes
 .../cupsserverconfiguration11_browsingmasks.png    |  Bin 0 -> 15493 bytes
 .../cupsserverconfiguration12_browsingtimeouts.png |  Bin 0 -> 14109 bytes
 .../cupsserverconfiguration14_browsingrelay.png    |  Bin 0 -> 14903 bytes
 ...uration15a_resourceallprinters_defineaccess.png |  Bin 0 -> 15822 bytes
 ...uration15b_resourceallprinters_defineaccess.png |  Bin 0 -> 5870 bytes
 ...uration15c_resourceallprinters_defineaccess.png |  Bin 0 -> 5470 bytes
 doc/tdeprint/cupsserverconfiguration1_welcome.png  |  Bin 0 -> 31316 bytes
 doc/tdeprint/cupsserverconfiguration2_general.png  |  Bin 0 -> 15870 bytes
 doc/tdeprint/cupsserverconfiguration3_logging.png  |  Bin 0 -> 16490 bytes
 .../cupsserverconfiguration4_directories.png       |  Bin 0 -> 17728 bytes
 doc/tdeprint/cupsserverconfiguration5_HTTP.png     |  Bin 0 -> 15010 bytes
 .../cupsserverconfiguration6_encryption.png        |  Bin 0 -> 15083 bytes
 .../cupsserverconfiguration7_miscellanious.png     |  Bin 0 -> 15943 bytes
 .../cupsserverconfiguration8_networkgeneral.png    |  Bin 0 -> 15538 bytes
 .../cupsserverconfiguration9_networkclients.png    |  Bin 0 -> 14998 bytes
 ...erverconfiguration_resourceadminaccessmasks.png |  Bin 0 -> 47480 bytes
 ...erverconfiguration_resourceadminaddprinters.png |  Bin 0 -> 30334 bytes
 ...ation_resourceadminaddprinters_defineaccess.png |  Bin 0 -> 43890 bytes
 ...verconfiguration_resourceadminauthorization.png |  Bin 0 -> 30503 bytes
 .../cupsserverconfiguration_securityoverview.png   |  Bin 0 -> 16804 bytes
 doc/tdeprint/extensions.docbook                    |   57 +
 doc/tdeprint/external-command.docbook              |   25 +
 doc/tdeprint/final-word.docbook                    |  117 +
 doc/tdeprint/getting-started.docbook               |  143 +
 doc/tdeprint/highlights.docbook                    |  518 ++
 doc/tdeprint/index.docbook                         |  200 +
 doc/tdeprint/kcontrol-icon.png                     |  Bin 0 -> 1202 bytes
 .../kcontrolcenter-printmanager-jobcontrol-2.png   |  Bin 0 -> 10761 bytes
 doc/tdeprint/kcron_to_be_printed.png               |  Bin 0 -> 10637 bytes
 doc/tdeprint/kprinter-as-netscape-printcommand.png |  Bin 0 -> 8210 bytes
 doc/tdeprint/kprinter-kivio.png                    |  Bin 0 -> 11149 bytes
 doc/tdeprint/kprinter.png                          |  Bin 0 -> 12568 bytes
 doc/tdeprint/kprinter_called_from_run_command.png  |  Bin 0 -> 6068 bytes
 .../kprinter_with_kcron_developer_special.png      |  Bin 0 -> 11245 bytes
 doc/tdeprint/lpd.docbook                           |   18 +
 doc/tdeprint/lpr-bsd.docbook                       |   25 +
 doc/tdeprint/lprng.docbook                         |    7 +
 doc/tdeprint/ps-boxes.png                          |  Bin 0 -> 441 bytes
 doc/tdeprint/rlpr.docbook                          |   18 +
 doc/tdeprint/steinbruch_scaled.png                 |  Bin 0 -> 116567 bytes
 doc/tdeprint/tdeprint-jobviewer.png                |  Bin 0 -> 11220 bytes
 doc/tdeprint/tech-overview.docbook                 |  280 +
 doc/tdeprint/theory.docbook                        |  690 ++
 doc/tdesu/CMakeLists.txt                           |   12 +
 doc/tdesu/Makefile.am                              |    5 +
 doc/tdesu/index.docbook                            |  320 +
 doc/tdesu/man-tdesu.1.docbook                      |  179 +
 kdeprint/CMakeLists.txt                            |   17 -
 kdeprint/Makefile.am                               |    1 -
 kdeprint/configure.in.in                           |    1 -
 kdeprint/descriptions/Makefile.am                  |   24 -
 kdeprint/descriptions/printers.cpp                 | 7084 --------------------
 kdeprint/descriptions/readppd                      |   83 -
 kdeprint/descriptions/sortthem.cpp                 |   28 -
 kdeprint/kdeprint_part/CMakeLists.txt              |   37 -
 kdeprint/kdeprint_part/Makefile.am                 |   24 -
 kdeprint/kdeprint_part/kdeprint_part.desktop       |   85 -
 kdeprint/kdeprint_part/kdeprint_part.rc            |   28 -
 kdeprint/kdeprint_part/printpart.cpp               |   81 -
 kdeprint/kdeprint_part/printpart.h                 |   59 -
 kdeprint/kdeprintfax/CMakeLists.txt                |   42 -
 kdeprint/kdeprintfax/Makefile.am                   |   23 -
 kdeprint/kdeprintfax/anytops                       |   98 -
 kdeprint/kdeprintfax/conffax.cpp                   |   80 -
 kdeprint/kdeprintfax/conffax.h                     |   40 -
 kdeprint/kdeprintfax/conffilters.cpp               |  192 -
 kdeprint/kdeprintfax/conffilters.h                 |   48 -
 kdeprint/kdeprintfax/confgeneral.cpp               |   90 -
 kdeprint/kdeprintfax/confgeneral.h                 |   43 -
 kdeprint/kdeprintfax/configdlg.cpp                 |   75 -
 kdeprint/kdeprintfax/configdlg.h                   |   48 -
 kdeprint/kdeprintfax/confsystem.cpp                |  199 -
 kdeprint/kdeprintfax/confsystem.h                  |   50 -
 kdeprint/kdeprintfax/cr16-action-abentry.png       |  Bin 864 -> 0 bytes
 kdeprint/kdeprintfax/defcmds.cpp                   |   38 -
 kdeprint/kdeprintfax/defcmds.h                     |   32 -
 kdeprint/kdeprintfax/faxab.cpp                     |  212 -
 kdeprint/kdeprintfax/faxab.h                       |   64 -
 kdeprint/kdeprintfax/faxctrl.cpp                   |  669 --
 kdeprint/kdeprintfax/faxctrl.h                     |   73 -
 kdeprint/kdeprintfax/faxfilters                    |    3 -
 kdeprint/kdeprintfax/filterdlg.cpp                 |   72 -
 kdeprint/kdeprintfax/filterdlg.h                   |   41 -
 kdeprint/kdeprintfax/hi128-app-kdeprintfax.png     |  Bin 10612 -> 0 bytes
 kdeprint/kdeprintfax/hi16-app-kdeprintfax.png      |  Bin 787 -> 0 bytes
 kdeprint/kdeprintfax/hi22-app-kdeprintfax.png      |  Bin 1241 -> 0 bytes
 kdeprint/kdeprintfax/hi32-app-kdeprintfax.png      |  Bin 1928 -> 0 bytes
 kdeprint/kdeprintfax/hi48-app-kdeprintfax.png      |  Bin 3352 -> 0 bytes
 kdeprint/kdeprintfax/hi64-app-kdeprintfax.png      |  Bin 4669 -> 0 bytes
 kdeprint/kdeprintfax/hisc-app-kdeprintfax.svgz     |  Bin 11876 -> 0 bytes
 kdeprint/kdeprintfax/kdeprintfax.cpp               |  607 --
 kdeprint/kdeprintfax/kdeprintfax.desktop           |   97 -
 kdeprint/kdeprintfax/kdeprintfax.h                 |  115 -
 kdeprint/kdeprintfax/kdeprintfaxui.rc              |   31 -
 kdeprint/kdeprintfax/main.cpp                      |   78 -
 kdeprint/kjobviewer/CMakeLists.txt                 |   37 -
 kdeprint/kjobviewer/Makefile.am                    |   24 -
 kdeprint/kjobviewer/hi128-app-kjobviewer.png       |  Bin 8472 -> 0 bytes
 kdeprint/kjobviewer/hi16-app-kjobviewer.png        |  Bin 684 -> 0 bytes
 kdeprint/kjobviewer/hi22-app-kjobviewer.png        |  Bin 1003 -> 0 bytes
 kdeprint/kjobviewer/hi32-app-kjobviewer.png        |  Bin 1633 -> 0 bytes
 kdeprint/kjobviewer/hi48-app-kjobviewer.png        |  Bin 2588 -> 0 bytes
 kdeprint/kjobviewer/hi64-app-kjobviewer.png        |  Bin 3720 -> 0 bytes
 kdeprint/kjobviewer/hisc-app-kjobviewer.svgz       |  Bin 17679 -> 0 bytes
 kdeprint/kjobviewer/kjobviewer.cpp                 |  233 -
 kdeprint/kjobviewer/kjobviewer.desktop             |   92 -
 kdeprint/kjobviewer/kjobviewer.h                   |   57 -
 kdeprint/kjobviewer/kjobviewerui.rc                |   35 -
 kdeprint/kjobviewer/main.cpp                       |   49 -
 kdeprint/kprinter/CMakeLists.txt                   |   34 -
 kdeprint/kprinter/Makefile.am                      |   18 -
 kdeprint/kprinter/configure.in.in                  |    1 -
 kdeprint/kprinter/kprinter.desktop                 |  107 -
 kdeprint/kprinter/main.cpp                         |   58 -
 kdeprint/kprinter/printwrapper.cpp                 |  403 --
 kdeprint/kprinter/printwrapper.h                   |   49 -
 kdeprint/printmgr/CMakeLists.txt                   |   37 -
 kdeprint/printmgr/Makefile.am                      |   18 -
 kdeprint/printmgr/hi128-app-printmgr.png           |  Bin 8472 -> 0 bytes
 kdeprint/printmgr/hi16-app-printmgr.png            |  Bin 684 -> 0 bytes
 kdeprint/printmgr/hi22-app-printmgr.png            |  Bin 1003 -> 0 bytes
 kdeprint/printmgr/hi32-app-printmgr.png            |  Bin 1633 -> 0 bytes
 kdeprint/printmgr/hi48-app-printmgr.png            |  Bin 2588 -> 0 bytes
 kdeprint/printmgr/hi64-app-printmgr.png            |  Bin 3720 -> 0 bytes
 kdeprint/printmgr/hisc-app-printmgr.svgz           |  Bin 17679 -> 0 bytes
 kdeprint/printmgr/kcmprintmgr.cpp                  |   73 -
 kdeprint/printmgr/kcmprintmgr.h                    |   39 -
 kdeprint/printmgr/printers.desktop                 |  235 -
 kdeprint/slave/CMakeLists.txt                      |   39 -
 kdeprint/slave/Makefile.am                         |   22 -
 kdeprint/slave/kio_print.cpp                       |  920 ---
 kdeprint/slave/kio_print.h                         |   70 -
 kdeprint/slave/mimetypes/CMakeLists.txt            |   16 -
 kdeprint/slave/mimetypes/Makefile.am               |    3 -
 kdeprint/slave/mimetypes/class.desktop             |   75 -
 kdeprint/slave/mimetypes/driver.desktop            |   76 -
 kdeprint/slave/mimetypes/folder.desktop            |   76 -
 kdeprint/slave/mimetypes/jobs.desktop              |   85 -
 kdeprint/slave/mimetypes/manager.desktop           |   87 -
 kdeprint/slave/mimetypes/printer.desktop           |   79 -
 kdeprint/slave/mimetypes/printermodel.desktop      |   78 -
 kdeprint/slave/pics/.gitignore                     |    0
 kdeprint/slave/print.protocol                      |   15 -
 kdeprint/slave/printdb.protocol                    |   14 -
 kdeprint/slave/templates/CMakeLists.txt            |   25 -
 kdeprint/slave/templates/Makefile.am               |   31 -
 kdeprint/slave/templates/bar-bottom-left.png       |  Bin 369 -> 0 bytes
 kdeprint/slave/templates/bar-bottom-middle.png     |  Bin 160 -> 0 bytes
 kdeprint/slave/templates/bar-bottom-right.png      |  Bin 346 -> 0 bytes
 kdeprint/slave/templates/bar-middle-left.png       |  Bin 126 -> 0 bytes
 kdeprint/slave/templates/bar-middle-right.png      |  Bin 141 -> 0 bytes
 kdeprint/slave/templates/bar-top-left.png          |  Bin 358 -> 0 bytes
 kdeprint/slave/templates/bar-top-middle.png        |  Bin 145 -> 0 bytes
 kdeprint/slave/templates/bar-top-right.png         |  Bin 359 -> 0 bytes
 kdeprint/slave/templates/bottom-left.png           |  Bin 665 -> 0 bytes
 kdeprint/slave/templates/bottom-middle.png         |  Bin 174 -> 0 bytes
 kdeprint/slave/templates/bottom-right.png          |  Bin 4922 -> 0 bytes
 kdeprint/slave/templates/box-bottom-left.png       |  Bin 616 -> 0 bytes
 kdeprint/slave/templates/box-bottom-middle.png     |  Bin 171 -> 0 bytes
 kdeprint/slave/templates/box-bottom-right.png      |  Bin 578 -> 0 bytes
 kdeprint/slave/templates/box-centre-kdeprint.png   |  Bin 9633 -> 0 bytes
 kdeprint/slave/templates/box-middle-left.png       |  Bin 157 -> 0 bytes
 kdeprint/slave/templates/box-middle-right.png      |  Bin 161 -> 0 bytes
 kdeprint/slave/templates/box-top-left.png          |  Bin 673 -> 0 bytes
 kdeprint/slave/templates/box-top-middle.png        |  Bin 181 -> 0 bytes
 kdeprint/slave/templates/box-top-right.png         |  Bin 679 -> 0 bytes
 kdeprint/slave/templates/class.template            |  188 -
 kdeprint/slave/templates/driver.template           |  133 -
 kdeprint/slave/templates/htmlstyles.css            |   38 -
 kdeprint/slave/templates/jobs.template             |  140 -
 kdeprint/slave/templates/printer.template          |  205 -
 kdeprint/slave/templates/pseudo.template           |  188 -
 kdeprint/slave/templates/top-left.png              |  Bin 15484 -> 0 bytes
 kdeprint/slave/templates/top-middle.png            |  Bin 233 -> 0 bytes
 kdeprint/slave/templates/top-right-kdeprint.png    |  Bin 13466 -> 0 bytes
 kdesu/AUTHORS                                      |    2 -
 kdesu/CMakeLists.txt                               |   53 -
 kdesu/ChangeLog                                    |  128 -
 kdesu/FAQ                                          |   46 -
 kdesu/LICENSE.readme                               |  125 -
 kdesu/Makefile.am                                  |    1 -
 kdesu/README                                       |   34 -
 kdesu/TODO                                         |    3 -
 kdesu/configure.in.in                              |   62 -
 kdesu/kdesu/CMakeLists.txt                         |   30 -
 kdesu/kdesu/Makefile.am                            |   15 -
 kdesu/kdesu/kdesu.cpp                              |  431 --
 kdesu/kdesu/sudlg.cpp                              |  103 -
 kdesu/kdesu/sudlg.h                                |   32 -
 kdesu/kdesud/CMakeLists.txt                        |   35 -
 kdesu/kdesud/Makefile.am                           |   31 -
 kdesu/kdesud/handler.cpp                           |  512 --
 kdesu/kdesud/handler.h                             |   52 -
 kdesu/kdesud/kdesud.cpp                            |  418 --
 kdesu/kdesud/lexer.cpp                             |  134 -
 kdesu/kdesud/lexer.h                               |   42 -
 kdesu/kdesud/repo.cpp                              |  188 -
 kdesu/kdesud/repo.h                                |   68 -
 kdesu/kdesud/secure.cpp                            |   80 -
 kdesu/kdesud/secure.h                              |   52 -
 kicker/menuext/kdeprint/CMakeLists.txt             |   33 -
 kicker/menuext/kdeprint/Makefile.am                |   15 -
 kicker/menuext/kdeprint/print_mnu.cpp              |  139 -
 kicker/menuext/kdeprint/print_mnu.h                |   46 -
 kicker/menuext/kdeprint/printmenu.desktop          |  144 -
 kicker/menuext/tdeprint/CMakeLists.txt             |   33 +
 kicker/menuext/tdeprint/Makefile.am                |   15 +
 kicker/menuext/tdeprint/print_mnu.cpp              |  139 +
 kicker/menuext/tdeprint/print_mnu.h                |   46 +
 kicker/menuext/tdeprint/printmenu.desktop          |  144 +
 tdeprint/CMakeLists.txt                            |   17 +
 tdeprint/Makefile.am                               |    1 +
 tdeprint/configure.in.in                           |    1 +
 tdeprint/descriptions/Makefile.am                  |   24 +
 tdeprint/descriptions/printers.cpp                 | 7084 ++++++++++++++++++++
 tdeprint/descriptions/readppd                      |   83 +
 tdeprint/descriptions/sortthem.cpp                 |   28 +
 tdeprint/kjobviewer/CMakeLists.txt                 |   37 +
 tdeprint/kjobviewer/Makefile.am                    |   24 +
 tdeprint/kjobviewer/hi128-app-kjobviewer.png       |  Bin 0 -> 8472 bytes
 tdeprint/kjobviewer/hi16-app-kjobviewer.png        |  Bin 0 -> 684 bytes
 tdeprint/kjobviewer/hi22-app-kjobviewer.png        |  Bin 0 -> 1003 bytes
 tdeprint/kjobviewer/hi32-app-kjobviewer.png        |  Bin 0 -> 1633 bytes
 tdeprint/kjobviewer/hi48-app-kjobviewer.png        |  Bin 0 -> 2588 bytes
 tdeprint/kjobviewer/hi64-app-kjobviewer.png        |  Bin 0 -> 3720 bytes
 tdeprint/kjobviewer/hisc-app-kjobviewer.svgz       |  Bin 0 -> 17679 bytes
 tdeprint/kjobviewer/kjobviewer.cpp                 |  233 +
 tdeprint/kjobviewer/kjobviewer.desktop             |   92 +
 tdeprint/kjobviewer/kjobviewer.h                   |   57 +
 tdeprint/kjobviewer/kjobviewerui.rc                |   35 +
 tdeprint/kjobviewer/main.cpp                       |   49 +
 tdeprint/kprinter/CMakeLists.txt                   |   34 +
 tdeprint/kprinter/Makefile.am                      |   18 +
 tdeprint/kprinter/configure.in.in                  |    1 +
 tdeprint/kprinter/kprinter.desktop                 |  107 +
 tdeprint/kprinter/main.cpp                         |   58 +
 tdeprint/kprinter/printwrapper.cpp                 |  403 ++
 tdeprint/kprinter/printwrapper.h                   |   49 +
 tdeprint/printmgr/CMakeLists.txt                   |   37 +
 tdeprint/printmgr/Makefile.am                      |   18 +
 tdeprint/printmgr/hi128-app-printmgr.png           |  Bin 0 -> 8472 bytes
 tdeprint/printmgr/hi16-app-printmgr.png            |  Bin 0 -> 684 bytes
 tdeprint/printmgr/hi22-app-printmgr.png            |  Bin 0 -> 1003 bytes
 tdeprint/printmgr/hi32-app-printmgr.png            |  Bin 0 -> 1633 bytes
 tdeprint/printmgr/hi48-app-printmgr.png            |  Bin 0 -> 2588 bytes
 tdeprint/printmgr/hi64-app-printmgr.png            |  Bin 0 -> 3720 bytes
 tdeprint/printmgr/hisc-app-printmgr.svgz           |  Bin 0 -> 17679 bytes
 tdeprint/printmgr/kcmprintmgr.cpp                  |   73 +
 tdeprint/printmgr/kcmprintmgr.h                    |   39 +
 tdeprint/printmgr/printers.desktop                 |  235 +
 tdeprint/slave/CMakeLists.txt                      |   39 +
 tdeprint/slave/Makefile.am                         |   22 +
 tdeprint/slave/kio_print.cpp                       |  920 +++
 tdeprint/slave/kio_print.h                         |   70 +
 tdeprint/slave/mimetypes/CMakeLists.txt            |   16 +
 tdeprint/slave/mimetypes/Makefile.am               |    3 +
 tdeprint/slave/mimetypes/class.desktop             |   75 +
 tdeprint/slave/mimetypes/driver.desktop            |   76 +
 tdeprint/slave/mimetypes/folder.desktop            |   76 +
 tdeprint/slave/mimetypes/jobs.desktop              |   85 +
 tdeprint/slave/mimetypes/manager.desktop           |   87 +
 tdeprint/slave/mimetypes/printer.desktop           |   79 +
 tdeprint/slave/mimetypes/printermodel.desktop      |   78 +
 tdeprint/slave/pics/.gitignore                     |    0
 tdeprint/slave/print.protocol                      |   15 +
 tdeprint/slave/printdb.protocol                    |   14 +
 tdeprint/slave/templates/CMakeLists.txt            |   25 +
 tdeprint/slave/templates/Makefile.am               |   31 +
 tdeprint/slave/templates/bar-bottom-left.png       |  Bin 0 -> 369 bytes
 tdeprint/slave/templates/bar-bottom-middle.png     |  Bin 0 -> 160 bytes
 tdeprint/slave/templates/bar-bottom-right.png      |  Bin 0 -> 346 bytes
 tdeprint/slave/templates/bar-middle-left.png       |  Bin 0 -> 126 bytes
 tdeprint/slave/templates/bar-middle-right.png      |  Bin 0 -> 141 bytes
 tdeprint/slave/templates/bar-top-left.png          |  Bin 0 -> 358 bytes
 tdeprint/slave/templates/bar-top-middle.png        |  Bin 0 -> 145 bytes
 tdeprint/slave/templates/bar-top-right.png         |  Bin 0 -> 359 bytes
 tdeprint/slave/templates/bottom-left.png           |  Bin 0 -> 665 bytes
 tdeprint/slave/templates/bottom-middle.png         |  Bin 0 -> 174 bytes
 tdeprint/slave/templates/bottom-right.png          |  Bin 0 -> 4922 bytes
 tdeprint/slave/templates/box-bottom-left.png       |  Bin 0 -> 616 bytes
 tdeprint/slave/templates/box-bottom-middle.png     |  Bin 0 -> 171 bytes
 tdeprint/slave/templates/box-bottom-right.png      |  Bin 0 -> 578 bytes
 tdeprint/slave/templates/box-centre-tdeprint.png   |  Bin 0 -> 9633 bytes
 tdeprint/slave/templates/box-middle-left.png       |  Bin 0 -> 157 bytes
 tdeprint/slave/templates/box-middle-right.png      |  Bin 0 -> 161 bytes
 tdeprint/slave/templates/box-top-left.png          |  Bin 0 -> 673 bytes
 tdeprint/slave/templates/box-top-middle.png        |  Bin 0 -> 181 bytes
 tdeprint/slave/templates/box-top-right.png         |  Bin 0 -> 679 bytes
 tdeprint/slave/templates/class.template            |  188 +
 tdeprint/slave/templates/driver.template           |  133 +
 tdeprint/slave/templates/htmlstyles.css            |   38 +
 tdeprint/slave/templates/jobs.template             |  140 +
 tdeprint/slave/templates/printer.template          |  205 +
 tdeprint/slave/templates/pseudo.template           |  188 +
 tdeprint/slave/templates/top-left.png              |  Bin 0 -> 15484 bytes
 tdeprint/slave/templates/top-middle.png            |  Bin 0 -> 233 bytes
 tdeprint/slave/templates/top-right-tdeprint.png    |  Bin 0 -> 13466 bytes
 tdeprint/tdeprint_part/CMakeLists.txt              |   37 +
 tdeprint/tdeprint_part/Makefile.am                 |   24 +
 tdeprint/tdeprint_part/printpart.cpp               |   81 +
 tdeprint/tdeprint_part/printpart.h                 |   59 +
 tdeprint/tdeprint_part/tdeprint_part.desktop       |   85 +
 tdeprint/tdeprint_part/tdeprint_part.rc            |   28 +
 tdeprint/tdeprintfax/CMakeLists.txt                |   42 +
 tdeprint/tdeprintfax/Makefile.am                   |   23 +
 tdeprint/tdeprintfax/anytops                       |   98 +
 tdeprint/tdeprintfax/conffax.cpp                   |   80 +
 tdeprint/tdeprintfax/conffax.h                     |   40 +
 tdeprint/tdeprintfax/conffilters.cpp               |  192 +
 tdeprint/tdeprintfax/conffilters.h                 |   48 +
 tdeprint/tdeprintfax/confgeneral.cpp               |   90 +
 tdeprint/tdeprintfax/confgeneral.h                 |   43 +
 tdeprint/tdeprintfax/configdlg.cpp                 |   75 +
 tdeprint/tdeprintfax/configdlg.h                   |   48 +
 tdeprint/tdeprintfax/confsystem.cpp                |  199 +
 tdeprint/tdeprintfax/confsystem.h                  |   50 +
 tdeprint/tdeprintfax/cr16-action-abentry.png       |  Bin 0 -> 864 bytes
 tdeprint/tdeprintfax/defcmds.cpp                   |   38 +
 tdeprint/tdeprintfax/defcmds.h                     |   32 +
 tdeprint/tdeprintfax/faxab.cpp                     |  212 +
 tdeprint/tdeprintfax/faxab.h                       |   64 +
 tdeprint/tdeprintfax/faxctrl.cpp                   |  669 ++
 tdeprint/tdeprintfax/faxctrl.h                     |   73 +
 tdeprint/tdeprintfax/faxfilters                    |    3 +
 tdeprint/tdeprintfax/filterdlg.cpp                 |   72 +
 tdeprint/tdeprintfax/filterdlg.h                   |   41 +
 tdeprint/tdeprintfax/hi128-app-tdeprintfax.png     |  Bin 0 -> 10612 bytes
 tdeprint/tdeprintfax/hi16-app-tdeprintfax.png      |  Bin 0 -> 787 bytes
 tdeprint/tdeprintfax/hi22-app-tdeprintfax.png      |  Bin 0 -> 1241 bytes
 tdeprint/tdeprintfax/hi32-app-tdeprintfax.png      |  Bin 0 -> 1928 bytes
 tdeprint/tdeprintfax/hi48-app-tdeprintfax.png      |  Bin 0 -> 3352 bytes
 tdeprint/tdeprintfax/hi64-app-tdeprintfax.png      |  Bin 0 -> 4669 bytes
 tdeprint/tdeprintfax/hisc-app-tdeprintfax.svgz     |  Bin 0 -> 11876 bytes
 tdeprint/tdeprintfax/main.cpp                      |   78 +
 tdeprint/tdeprintfax/tdeprintfax.cpp               |  607 ++
 tdeprint/tdeprintfax/tdeprintfax.desktop           |   97 +
 tdeprint/tdeprintfax/tdeprintfax.h                 |  115 +
 tdeprint/tdeprintfax/tdeprintfaxui.rc              |   31 +
 tdesu/AUTHORS                                      |    2 +
 tdesu/CMakeLists.txt                               |   53 +
 tdesu/ChangeLog                                    |  128 +
 tdesu/FAQ                                          |   46 +
 tdesu/LICENSE.readme                               |  125 +
 tdesu/Makefile.am                                  |    1 +
 tdesu/README                                       |   34 +
 tdesu/TODO                                         |    3 +
 tdesu/configure.in.in                              |   62 +
 tdesu/tdesu/CMakeLists.txt                         |   30 +
 tdesu/tdesu/Makefile.am                            |   15 +
 tdesu/tdesu/sudlg.cpp                              |  103 +
 tdesu/tdesu/sudlg.h                                |   32 +
 tdesu/tdesu/tdesu.cpp                              |  431 ++
 tdesu/tdesud/CMakeLists.txt                        |   35 +
 tdesu/tdesud/Makefile.am                           |   31 +
 tdesu/tdesud/handler.cpp                           |  512 ++
 tdesu/tdesud/handler.h                             |   52 +
 tdesu/tdesud/lexer.cpp                             |  134 +
 tdesu/tdesud/lexer.h                               |   42 +
 tdesu/tdesud/repo.cpp                              |  188 +
 tdesu/tdesud/repo.h                                |   68 +
 tdesu/tdesud/secure.cpp                            |   80 +
 tdesu/tdesud/secure.h                              |   52 +
 tdesu/tdesud/tdesud.cpp                            |  418 ++
 444 files changed, 24948 insertions(+), 24948 deletions(-)
 delete mode 100644 doc/glossary/kdeprintingglossary.docbook
 create mode 100644 doc/glossary/tdeprintingglossary.docbook
 delete mode 100644 doc/kdeprint/CMakeLists.txt
 delete mode 100644 doc/kdeprint/Makefile.am
 delete mode 100644 doc/kdeprint/add-printer-wiz.docbook
 delete mode 100644 doc/kdeprint/cr32-action-wizard.png
 delete mode 100644 doc/kdeprint/cups-config.docbook
 delete mode 100644 doc/kdeprint/cups-filterarchitecture-kivio-70Percent-scaled.png
 delete mode 100644 doc/kdeprint/cupsaddprinterwizard1.png
 delete mode 100644 doc/kdeprint/cupsaddprinterwizard2_backendselection.png
 delete mode 100644 doc/kdeprint/cupsaddprinterwizard3_networkscan.png
 delete mode 100644 doc/kdeprint/cupsaddprinterwizard3_networkscan_results.png
 delete mode 100644 doc/kdeprint/cupsaddprinterwizard4_networkscan_config.png
 delete mode 100644 doc/kdeprint/cupsoptions.docbook
 delete mode 100644 doc/kdeprint/cupsserverconfig_browse_relay_add_button.png
 delete mode 100644 doc/kdeprint/cupsserverconfig_browsingmasks_add_button.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration10_browsinggeneral.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration11_browsingconnections.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration11_browsingmasks.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration12_browsingtimeouts.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration14_browsingrelay.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration15a_resourceallprinters_defineaccess.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration15b_resourceallprinters_defineaccess.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration15c_resourceallprinters_defineaccess.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration1_welcome.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration2_general.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration3_logging.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration4_directories.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration5_HTTP.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration6_encryption.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration7_miscellanious.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration8_networkgeneral.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration9_networkclients.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration_resourceadminaccessmasks.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration_resourceadminaddprinters.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration_resourceadminaddprinters_defineaccess.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration_resourceadminauthorization.png
 delete mode 100644 doc/kdeprint/cupsserverconfiguration_securityoverview.png
 delete mode 100644 doc/kdeprint/extensions.docbook
 delete mode 100644 doc/kdeprint/external-command.docbook
 delete mode 100644 doc/kdeprint/final-word.docbook
 delete mode 100644 doc/kdeprint/getting-started.docbook
 delete mode 100644 doc/kdeprint/highlights.docbook
 delete mode 100644 doc/kdeprint/index.docbook
 delete mode 100644 doc/kdeprint/kcontrol-icon.png
 delete mode 100644 doc/kdeprint/kcontrolcenter-printmanager-jobcontrol-2.png
 delete mode 100644 doc/kdeprint/kcron_to_be_printed.png
 delete mode 100644 doc/kdeprint/kdeprint-jobviewer.png
 delete mode 100644 doc/kdeprint/kprinter-as-netscape-printcommand.png
 delete mode 100644 doc/kdeprint/kprinter-kivio.png
 delete mode 100644 doc/kdeprint/kprinter.png
 delete mode 100644 doc/kdeprint/kprinter_called_from_run_command.png
 delete mode 100644 doc/kdeprint/kprinter_with_kcron_developer_special.png
 delete mode 100644 doc/kdeprint/lpd.docbook
 delete mode 100644 doc/kdeprint/lpr-bsd.docbook
 delete mode 100644 doc/kdeprint/lprng.docbook
 delete mode 100644 doc/kdeprint/ps-boxes.png
 delete mode 100644 doc/kdeprint/rlpr.docbook
 delete mode 100644 doc/kdeprint/steinbruch_scaled.png
 delete mode 100644 doc/kdeprint/tech-overview.docbook
 delete mode 100644 doc/kdeprint/theory.docbook
 delete mode 100644 doc/kdesu/CMakeLists.txt
 delete mode 100644 doc/kdesu/Makefile.am
 delete mode 100644 doc/kdesu/index.docbook
 delete mode 100644 doc/kdesu/man-kdesu.1.docbook
 create mode 100644 doc/tdeprint/CMakeLists.txt
 create mode 100644 doc/tdeprint/Makefile.am
 create mode 100644 doc/tdeprint/add-printer-wiz.docbook
 create mode 100644 doc/tdeprint/cr32-action-wizard.png
 create mode 100644 doc/tdeprint/cups-config.docbook
 create mode 100644 doc/tdeprint/cups-filterarchitecture-kivio-70Percent-scaled.png
 create mode 100644 doc/tdeprint/cupsaddprinterwizard1.png
 create mode 100644 doc/tdeprint/cupsaddprinterwizard2_backendselection.png
 create mode 100644 doc/tdeprint/cupsaddprinterwizard3_networkscan.png
 create mode 100644 doc/tdeprint/cupsaddprinterwizard3_networkscan_results.png
 create mode 100644 doc/tdeprint/cupsaddprinterwizard4_networkscan_config.png
 create mode 100644 doc/tdeprint/cupsoptions.docbook
 create mode 100644 doc/tdeprint/cupsserverconfig_browse_relay_add_button.png
 create mode 100644 doc/tdeprint/cupsserverconfig_browsingmasks_add_button.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration10_browsinggeneral.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration11_browsingconnections.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration11_browsingmasks.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration12_browsingtimeouts.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration14_browsingrelay.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration15a_resourceallprinters_defineaccess.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration15b_resourceallprinters_defineaccess.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration15c_resourceallprinters_defineaccess.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration1_welcome.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration2_general.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration3_logging.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration4_directories.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration5_HTTP.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration6_encryption.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration7_miscellanious.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration8_networkgeneral.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration9_networkclients.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration_resourceadminaccessmasks.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration_resourceadminaddprinters.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration_resourceadminaddprinters_defineaccess.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration_resourceadminauthorization.png
 create mode 100644 doc/tdeprint/cupsserverconfiguration_securityoverview.png
 create mode 100644 doc/tdeprint/extensions.docbook
 create mode 100644 doc/tdeprint/external-command.docbook
 create mode 100644 doc/tdeprint/final-word.docbook
 create mode 100644 doc/tdeprint/getting-started.docbook
 create mode 100644 doc/tdeprint/highlights.docbook
 create mode 100644 doc/tdeprint/index.docbook
 create mode 100644 doc/tdeprint/kcontrol-icon.png
 create mode 100644 doc/tdeprint/kcontrolcenter-printmanager-jobcontrol-2.png
 create mode 100644 doc/tdeprint/kcron_to_be_printed.png
 create mode 100644 doc/tdeprint/kprinter-as-netscape-printcommand.png
 create mode 100644 doc/tdeprint/kprinter-kivio.png
 create mode 100644 doc/tdeprint/kprinter.png
 create mode 100644 doc/tdeprint/kprinter_called_from_run_command.png
 create mode 100644 doc/tdeprint/kprinter_with_kcron_developer_special.png
 create mode 100644 doc/tdeprint/lpd.docbook
 create mode 100644 doc/tdeprint/lpr-bsd.docbook
 create mode 100644 doc/tdeprint/lprng.docbook
 create mode 100644 doc/tdeprint/ps-boxes.png
 create mode 100644 doc/tdeprint/rlpr.docbook
 create mode 100644 doc/tdeprint/steinbruch_scaled.png
 create mode 100644 doc/tdeprint/tdeprint-jobviewer.png
 create mode 100644 doc/tdeprint/tech-overview.docbook
 create mode 100644 doc/tdeprint/theory.docbook
 create mode 100644 doc/tdesu/CMakeLists.txt
 create mode 100644 doc/tdesu/Makefile.am
 create mode 100644 doc/tdesu/index.docbook
 create mode 100644 doc/tdesu/man-tdesu.1.docbook
 delete mode 100644 kdeprint/CMakeLists.txt
 delete mode 100644 kdeprint/Makefile.am
 delete mode 100644 kdeprint/configure.in.in
 delete mode 100644 kdeprint/descriptions/Makefile.am
 delete mode 100644 kdeprint/descriptions/printers.cpp
 delete mode 100755 kdeprint/descriptions/readppd
 delete mode 100644 kdeprint/descriptions/sortthem.cpp
 delete mode 100644 kdeprint/kdeprint_part/CMakeLists.txt
 delete mode 100644 kdeprint/kdeprint_part/Makefile.am
 delete mode 100644 kdeprint/kdeprint_part/kdeprint_part.desktop
 delete mode 100644 kdeprint/kdeprint_part/kdeprint_part.rc
 delete mode 100644 kdeprint/kdeprint_part/printpart.cpp
 delete mode 100644 kdeprint/kdeprint_part/printpart.h
 delete mode 100644 kdeprint/kdeprintfax/CMakeLists.txt
 delete mode 100644 kdeprint/kdeprintfax/Makefile.am
 delete mode 100755 kdeprint/kdeprintfax/anytops
 delete mode 100644 kdeprint/kdeprintfax/conffax.cpp
 delete mode 100644 kdeprint/kdeprintfax/conffax.h
 delete mode 100644 kdeprint/kdeprintfax/conffilters.cpp
 delete mode 100644 kdeprint/kdeprintfax/conffilters.h
 delete mode 100644 kdeprint/kdeprintfax/confgeneral.cpp
 delete mode 100644 kdeprint/kdeprintfax/confgeneral.h
 delete mode 100644 kdeprint/kdeprintfax/configdlg.cpp
 delete mode 100644 kdeprint/kdeprintfax/configdlg.h
 delete mode 100644 kdeprint/kdeprintfax/confsystem.cpp
 delete mode 100644 kdeprint/kdeprintfax/confsystem.h
 delete mode 100644 kdeprint/kdeprintfax/cr16-action-abentry.png
 delete mode 100644 kdeprint/kdeprintfax/defcmds.cpp
 delete mode 100644 kdeprint/kdeprintfax/defcmds.h
 delete mode 100644 kdeprint/kdeprintfax/faxab.cpp
 delete mode 100644 kdeprint/kdeprintfax/faxab.h
 delete mode 100644 kdeprint/kdeprintfax/faxctrl.cpp
 delete mode 100644 kdeprint/kdeprintfax/faxctrl.h
 delete mode 100644 kdeprint/kdeprintfax/faxfilters
 delete mode 100644 kdeprint/kdeprintfax/filterdlg.cpp
 delete mode 100644 kdeprint/kdeprintfax/filterdlg.h
 delete mode 100644 kdeprint/kdeprintfax/hi128-app-kdeprintfax.png
 delete mode 100644 kdeprint/kdeprintfax/hi16-app-kdeprintfax.png
 delete mode 100644 kdeprint/kdeprintfax/hi22-app-kdeprintfax.png
 delete mode 100644 kdeprint/kdeprintfax/hi32-app-kdeprintfax.png
 delete mode 100644 kdeprint/kdeprintfax/hi48-app-kdeprintfax.png
 delete mode 100644 kdeprint/kdeprintfax/hi64-app-kdeprintfax.png
 delete mode 100644 kdeprint/kdeprintfax/hisc-app-kdeprintfax.svgz
 delete mode 100644 kdeprint/kdeprintfax/kdeprintfax.cpp
 delete mode 100644 kdeprint/kdeprintfax/kdeprintfax.desktop
 delete mode 100644 kdeprint/kdeprintfax/kdeprintfax.h
 delete mode 100644 kdeprint/kdeprintfax/kdeprintfaxui.rc
 delete mode 100644 kdeprint/kdeprintfax/main.cpp
 delete mode 100644 kdeprint/kjobviewer/CMakeLists.txt
 delete mode 100644 kdeprint/kjobviewer/Makefile.am
 delete mode 100644 kdeprint/kjobviewer/hi128-app-kjobviewer.png
 delete mode 100644 kdeprint/kjobviewer/hi16-app-kjobviewer.png
 delete mode 100644 kdeprint/kjobviewer/hi22-app-kjobviewer.png
 delete mode 100644 kdeprint/kjobviewer/hi32-app-kjobviewer.png
 delete mode 100644 kdeprint/kjobviewer/hi48-app-kjobviewer.png
 delete mode 100644 kdeprint/kjobviewer/hi64-app-kjobviewer.png
 delete mode 100644 kdeprint/kjobviewer/hisc-app-kjobviewer.svgz
 delete mode 100644 kdeprint/kjobviewer/kjobviewer.cpp
 delete mode 100644 kdeprint/kjobviewer/kjobviewer.desktop
 delete mode 100644 kdeprint/kjobviewer/kjobviewer.h
 delete mode 100644 kdeprint/kjobviewer/kjobviewerui.rc
 delete mode 100644 kdeprint/kjobviewer/main.cpp
 delete mode 100644 kdeprint/kprinter/CMakeLists.txt
 delete mode 100644 kdeprint/kprinter/Makefile.am
 delete mode 100644 kdeprint/kprinter/configure.in.in
 delete mode 100644 kdeprint/kprinter/kprinter.desktop
 delete mode 100644 kdeprint/kprinter/main.cpp
 delete mode 100644 kdeprint/kprinter/printwrapper.cpp
 delete mode 100644 kdeprint/kprinter/printwrapper.h
 delete mode 100644 kdeprint/printmgr/CMakeLists.txt
 delete mode 100644 kdeprint/printmgr/Makefile.am
 delete mode 100644 kdeprint/printmgr/hi128-app-printmgr.png
 delete mode 100644 kdeprint/printmgr/hi16-app-printmgr.png
 delete mode 100644 kdeprint/printmgr/hi22-app-printmgr.png
 delete mode 100644 kdeprint/printmgr/hi32-app-printmgr.png
 delete mode 100644 kdeprint/printmgr/hi48-app-printmgr.png
 delete mode 100644 kdeprint/printmgr/hi64-app-printmgr.png
 delete mode 100644 kdeprint/printmgr/hisc-app-printmgr.svgz
 delete mode 100644 kdeprint/printmgr/kcmprintmgr.cpp
 delete mode 100644 kdeprint/printmgr/kcmprintmgr.h
 delete mode 100644 kdeprint/printmgr/printers.desktop
 delete mode 100644 kdeprint/slave/CMakeLists.txt
 delete mode 100644 kdeprint/slave/Makefile.am
 delete mode 100644 kdeprint/slave/kio_print.cpp
 delete mode 100644 kdeprint/slave/kio_print.h
 delete mode 100644 kdeprint/slave/mimetypes/CMakeLists.txt
 delete mode 100644 kdeprint/slave/mimetypes/Makefile.am
 delete mode 100644 kdeprint/slave/mimetypes/class.desktop
 delete mode 100644 kdeprint/slave/mimetypes/driver.desktop
 delete mode 100644 kdeprint/slave/mimetypes/folder.desktop
 delete mode 100644 kdeprint/slave/mimetypes/jobs.desktop
 delete mode 100644 kdeprint/slave/mimetypes/manager.desktop
 delete mode 100644 kdeprint/slave/mimetypes/printer.desktop
 delete mode 100644 kdeprint/slave/mimetypes/printermodel.desktop
 delete mode 100644 kdeprint/slave/pics/.gitignore
 delete mode 100644 kdeprint/slave/print.protocol
 delete mode 100644 kdeprint/slave/printdb.protocol
 delete mode 100644 kdeprint/slave/templates/CMakeLists.txt
 delete mode 100644 kdeprint/slave/templates/Makefile.am
 delete mode 100644 kdeprint/slave/templates/bar-bottom-left.png
 delete mode 100644 kdeprint/slave/templates/bar-bottom-middle.png
 delete mode 100644 kdeprint/slave/templates/bar-bottom-right.png
 delete mode 100644 kdeprint/slave/templates/bar-middle-left.png
 delete mode 100644 kdeprint/slave/templates/bar-middle-right.png
 delete mode 100644 kdeprint/slave/templates/bar-top-left.png
 delete mode 100644 kdeprint/slave/templates/bar-top-middle.png
 delete mode 100644 kdeprint/slave/templates/bar-top-right.png
 delete mode 100644 kdeprint/slave/templates/bottom-left.png
 delete mode 100644 kdeprint/slave/templates/bottom-middle.png
 delete mode 100644 kdeprint/slave/templates/bottom-right.png
 delete mode 100644 kdeprint/slave/templates/box-bottom-left.png
 delete mode 100644 kdeprint/slave/templates/box-bottom-middle.png
 delete mode 100644 kdeprint/slave/templates/box-bottom-right.png
 delete mode 100644 kdeprint/slave/templates/box-centre-kdeprint.png
 delete mode 100644 kdeprint/slave/templates/box-middle-left.png
 delete mode 100644 kdeprint/slave/templates/box-middle-right.png
 delete mode 100644 kdeprint/slave/templates/box-top-left.png
 delete mode 100644 kdeprint/slave/templates/box-top-middle.png
 delete mode 100644 kdeprint/slave/templates/box-top-right.png
 delete mode 100644 kdeprint/slave/templates/class.template
 delete mode 100644 kdeprint/slave/templates/driver.template
 delete mode 100644 kdeprint/slave/templates/htmlstyles.css
 delete mode 100644 kdeprint/slave/templates/jobs.template
 delete mode 100644 kdeprint/slave/templates/printer.template
 delete mode 100644 kdeprint/slave/templates/pseudo.template
 delete mode 100644 kdeprint/slave/templates/top-left.png
 delete mode 100644 kdeprint/slave/templates/top-middle.png
 delete mode 100644 kdeprint/slave/templates/top-right-kdeprint.png
 delete mode 100644 kdesu/AUTHORS
 delete mode 100644 kdesu/CMakeLists.txt
 delete mode 100644 kdesu/ChangeLog
 delete mode 100644 kdesu/FAQ
 delete mode 100644 kdesu/LICENSE.readme
 delete mode 100644 kdesu/Makefile.am
 delete mode 100644 kdesu/README
 delete mode 100644 kdesu/TODO
 delete mode 100644 kdesu/configure.in.in
 delete mode 100644 kdesu/kdesu/CMakeLists.txt
 delete mode 100644 kdesu/kdesu/Makefile.am
 delete mode 100644 kdesu/kdesu/kdesu.cpp
 delete mode 100644 kdesu/kdesu/sudlg.cpp
 delete mode 100644 kdesu/kdesu/sudlg.h
 delete mode 100644 kdesu/kdesud/CMakeLists.txt
 delete mode 100644 kdesu/kdesud/Makefile.am
 delete mode 100644 kdesu/kdesud/handler.cpp
 delete mode 100644 kdesu/kdesud/handler.h
 delete mode 100644 kdesu/kdesud/kdesud.cpp
 delete mode 100644 kdesu/kdesud/lexer.cpp
 delete mode 100644 kdesu/kdesud/lexer.h
 delete mode 100644 kdesu/kdesud/repo.cpp
 delete mode 100644 kdesu/kdesud/repo.h
 delete mode 100644 kdesu/kdesud/secure.cpp
 delete mode 100644 kdesu/kdesud/secure.h
 delete mode 100644 kicker/menuext/kdeprint/CMakeLists.txt
 delete mode 100644 kicker/menuext/kdeprint/Makefile.am
 delete mode 100644 kicker/menuext/kdeprint/print_mnu.cpp
 delete mode 100644 kicker/menuext/kdeprint/print_mnu.h
 delete mode 100644 kicker/menuext/kdeprint/printmenu.desktop
 create mode 100644 kicker/menuext/tdeprint/CMakeLists.txt
 create mode 100644 kicker/menuext/tdeprint/Makefile.am
 create mode 100644 kicker/menuext/tdeprint/print_mnu.cpp
 create mode 100644 kicker/menuext/tdeprint/print_mnu.h
 create mode 100644 kicker/menuext/tdeprint/printmenu.desktop
 create mode 100644 tdeprint/CMakeLists.txt
 create mode 100644 tdeprint/Makefile.am
 create mode 100644 tdeprint/configure.in.in
 create mode 100644 tdeprint/descriptions/Makefile.am
 create mode 100644 tdeprint/descriptions/printers.cpp
 create mode 100755 tdeprint/descriptions/readppd
 create mode 100644 tdeprint/descriptions/sortthem.cpp
 create mode 100644 tdeprint/kjobviewer/CMakeLists.txt
 create mode 100644 tdeprint/kjobviewer/Makefile.am
 create mode 100644 tdeprint/kjobviewer/hi128-app-kjobviewer.png
 create mode 100644 tdeprint/kjobviewer/hi16-app-kjobviewer.png
 create mode 100644 tdeprint/kjobviewer/hi22-app-kjobviewer.png
 create mode 100644 tdeprint/kjobviewer/hi32-app-kjobviewer.png
 create mode 100644 tdeprint/kjobviewer/hi48-app-kjobviewer.png
 create mode 100644 tdeprint/kjobviewer/hi64-app-kjobviewer.png
 create mode 100644 tdeprint/kjobviewer/hisc-app-kjobviewer.svgz
 create mode 100644 tdeprint/kjobviewer/kjobviewer.cpp
 create mode 100644 tdeprint/kjobviewer/kjobviewer.desktop
 create mode 100644 tdeprint/kjobviewer/kjobviewer.h
 create mode 100644 tdeprint/kjobviewer/kjobviewerui.rc
 create mode 100644 tdeprint/kjobviewer/main.cpp
 create mode 100644 tdeprint/kprinter/CMakeLists.txt
 create mode 100644 tdeprint/kprinter/Makefile.am
 create mode 100644 tdeprint/kprinter/configure.in.in
 create mode 100644 tdeprint/kprinter/kprinter.desktop
 create mode 100644 tdeprint/kprinter/main.cpp
 create mode 100644 tdeprint/kprinter/printwrapper.cpp
 create mode 100644 tdeprint/kprinter/printwrapper.h
 create mode 100644 tdeprint/printmgr/CMakeLists.txt
 create mode 100644 tdeprint/printmgr/Makefile.am
 create mode 100644 tdeprint/printmgr/hi128-app-printmgr.png
 create mode 100644 tdeprint/printmgr/hi16-app-printmgr.png
 create mode 100644 tdeprint/printmgr/hi22-app-printmgr.png
 create mode 100644 tdeprint/printmgr/hi32-app-printmgr.png
 create mode 100644 tdeprint/printmgr/hi48-app-printmgr.png
 create mode 100644 tdeprint/printmgr/hi64-app-printmgr.png
 create mode 100644 tdeprint/printmgr/hisc-app-printmgr.svgz
 create mode 100644 tdeprint/printmgr/kcmprintmgr.cpp
 create mode 100644 tdeprint/printmgr/kcmprintmgr.h
 create mode 100644 tdeprint/printmgr/printers.desktop
 create mode 100644 tdeprint/slave/CMakeLists.txt
 create mode 100644 tdeprint/slave/Makefile.am
 create mode 100644 tdeprint/slave/kio_print.cpp
 create mode 100644 tdeprint/slave/kio_print.h
 create mode 100644 tdeprint/slave/mimetypes/CMakeLists.txt
 create mode 100644 tdeprint/slave/mimetypes/Makefile.am
 create mode 100644 tdeprint/slave/mimetypes/class.desktop
 create mode 100644 tdeprint/slave/mimetypes/driver.desktop
 create mode 100644 tdeprint/slave/mimetypes/folder.desktop
 create mode 100644 tdeprint/slave/mimetypes/jobs.desktop
 create mode 100644 tdeprint/slave/mimetypes/manager.desktop
 create mode 100644 tdeprint/slave/mimetypes/printer.desktop
 create mode 100644 tdeprint/slave/mimetypes/printermodel.desktop
 create mode 100644 tdeprint/slave/pics/.gitignore
 create mode 100644 tdeprint/slave/print.protocol
 create mode 100644 tdeprint/slave/printdb.protocol
 create mode 100644 tdeprint/slave/templates/CMakeLists.txt
 create mode 100644 tdeprint/slave/templates/Makefile.am
 create mode 100644 tdeprint/slave/templates/bar-bottom-left.png
 create mode 100644 tdeprint/slave/templates/bar-bottom-middle.png
 create mode 100644 tdeprint/slave/templates/bar-bottom-right.png
 create mode 100644 tdeprint/slave/templates/bar-middle-left.png
 create mode 100644 tdeprint/slave/templates/bar-middle-right.png
 create mode 100644 tdeprint/slave/templates/bar-top-left.png
 create mode 100644 tdeprint/slave/templates/bar-top-middle.png
 create mode 100644 tdeprint/slave/templates/bar-top-right.png
 create mode 100644 tdeprint/slave/templates/bottom-left.png
 create mode 100644 tdeprint/slave/templates/bottom-middle.png
 create mode 100644 tdeprint/slave/templates/bottom-right.png
 create mode 100644 tdeprint/slave/templates/box-bottom-left.png
 create mode 100644 tdeprint/slave/templates/box-bottom-middle.png
 create mode 100644 tdeprint/slave/templates/box-bottom-right.png
 create mode 100644 tdeprint/slave/templates/box-centre-tdeprint.png
 create mode 100644 tdeprint/slave/templates/box-middle-left.png
 create mode 100644 tdeprint/slave/templates/box-middle-right.png
 create mode 100644 tdeprint/slave/templates/box-top-left.png
 create mode 100644 tdeprint/slave/templates/box-top-middle.png
 create mode 100644 tdeprint/slave/templates/box-top-right.png
 create mode 100644 tdeprint/slave/templates/class.template
 create mode 100644 tdeprint/slave/templates/driver.template
 create mode 100644 tdeprint/slave/templates/htmlstyles.css
 create mode 100644 tdeprint/slave/templates/jobs.template
 create mode 100644 tdeprint/slave/templates/printer.template
 create mode 100644 tdeprint/slave/templates/pseudo.template
 create mode 100644 tdeprint/slave/templates/top-left.png
 create mode 100644 tdeprint/slave/templates/top-middle.png
 create mode 100644 tdeprint/slave/templates/top-right-tdeprint.png
 create mode 100644 tdeprint/tdeprint_part/CMakeLists.txt
 create mode 100644 tdeprint/tdeprint_part/Makefile.am
 create mode 100644 tdeprint/tdeprint_part/printpart.cpp
 create mode 100644 tdeprint/tdeprint_part/printpart.h
 create mode 100644 tdeprint/tdeprint_part/tdeprint_part.desktop
 create mode 100644 tdeprint/tdeprint_part/tdeprint_part.rc
 create mode 100644 tdeprint/tdeprintfax/CMakeLists.txt
 create mode 100644 tdeprint/tdeprintfax/Makefile.am
 create mode 100755 tdeprint/tdeprintfax/anytops
 create mode 100644 tdeprint/tdeprintfax/conffax.cpp
 create mode 100644 tdeprint/tdeprintfax/conffax.h
 create mode 100644 tdeprint/tdeprintfax/conffilters.cpp
 create mode 100644 tdeprint/tdeprintfax/conffilters.h
 create mode 100644 tdeprint/tdeprintfax/confgeneral.cpp
 create mode 100644 tdeprint/tdeprintfax/confgeneral.h
 create mode 100644 tdeprint/tdeprintfax/configdlg.cpp
 create mode 100644 tdeprint/tdeprintfax/configdlg.h
 create mode 100644 tdeprint/tdeprintfax/confsystem.cpp
 create mode 100644 tdeprint/tdeprintfax/confsystem.h
 create mode 100644 tdeprint/tdeprintfax/cr16-action-abentry.png
 create mode 100644 tdeprint/tdeprintfax/defcmds.cpp
 create mode 100644 tdeprint/tdeprintfax/defcmds.h
 create mode 100644 tdeprint/tdeprintfax/faxab.cpp
 create mode 100644 tdeprint/tdeprintfax/faxab.h
 create mode 100644 tdeprint/tdeprintfax/faxctrl.cpp
 create mode 100644 tdeprint/tdeprintfax/faxctrl.h
 create mode 100644 tdeprint/tdeprintfax/faxfilters
 create mode 100644 tdeprint/tdeprintfax/filterdlg.cpp
 create mode 100644 tdeprint/tdeprintfax/filterdlg.h
 create mode 100644 tdeprint/tdeprintfax/hi128-app-tdeprintfax.png
 create mode 100644 tdeprint/tdeprintfax/hi16-app-tdeprintfax.png
 create mode 100644 tdeprint/tdeprintfax/hi22-app-tdeprintfax.png
 create mode 100644 tdeprint/tdeprintfax/hi32-app-tdeprintfax.png
 create mode 100644 tdeprint/tdeprintfax/hi48-app-tdeprintfax.png
 create mode 100644 tdeprint/tdeprintfax/hi64-app-tdeprintfax.png
 create mode 100644 tdeprint/tdeprintfax/hisc-app-tdeprintfax.svgz
 create mode 100644 tdeprint/tdeprintfax/main.cpp
 create mode 100644 tdeprint/tdeprintfax/tdeprintfax.cpp
 create mode 100644 tdeprint/tdeprintfax/tdeprintfax.desktop
 create mode 100644 tdeprint/tdeprintfax/tdeprintfax.h
 create mode 100644 tdeprint/tdeprintfax/tdeprintfaxui.rc
 create mode 100644 tdesu/AUTHORS
 create mode 100644 tdesu/CMakeLists.txt
 create mode 100644 tdesu/ChangeLog
 create mode 100644 tdesu/FAQ
 create mode 100644 tdesu/LICENSE.readme
 create mode 100644 tdesu/Makefile.am
 create mode 100644 tdesu/README
 create mode 100644 tdesu/TODO
 create mode 100644 tdesu/configure.in.in
 create mode 100644 tdesu/tdesu/CMakeLists.txt
 create mode 100644 tdesu/tdesu/Makefile.am
 create mode 100644 tdesu/tdesu/sudlg.cpp
 create mode 100644 tdesu/tdesu/sudlg.h
 create mode 100644 tdesu/tdesu/tdesu.cpp
 create mode 100644 tdesu/tdesud/CMakeLists.txt
 create mode 100644 tdesu/tdesud/Makefile.am
 create mode 100644 tdesu/tdesud/handler.cpp
 create mode 100644 tdesu/tdesud/handler.h
 create mode 100644 tdesu/tdesud/lexer.cpp
 create mode 100644 tdesu/tdesud/lexer.h
 create mode 100644 tdesu/tdesud/repo.cpp
 create mode 100644 tdesu/tdesud/repo.h
 create mode 100644 tdesu/tdesud/secure.cpp
 create mode 100644 tdesu/tdesud/secure.h
 create mode 100644 tdesu/tdesud/tdesud.cpp

diff --git a/doc/glossary/kdeprintingglossary.docbook b/doc/glossary/kdeprintingglossary.docbook
deleted file mode 100644
index 6a0f35a34..000000000
--- a/doc/glossary/kdeprintingglossary.docbook
+++ /dev/null
@@ -1,1387 +0,0 @@
-
-<!--
-<?xml version="1.0" ?>
-<!DOCTYPE glossary PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
-"customization/dtd/kdex.dtd" [
-<!ENTITY % addindex "IGNORE">
-<!ENTITY % English "INCLUDE">
-<!ENTITY glossary-tdeprinting SYSTEM "tdeprintingglossary.docbook">
-
-]>
-<glossary id="glossary">
--->
-        <glossdiv id="glossdiv-printing">
-                <title>Printing</title>
- 
-
-                <glossentry id="gloss-acl">
-                        <glossterm><acronym>ACLs</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>A</emphasis>ccess
-			<emphasis>C</emphasis>ontrol <emphasis>L</emphasis>ists;
-				ACLs are used to check for the access by a given
-				(authenticated) user. A first rough support for ACLs
-				for printing is available from &CUPS;; this will be refined
-				in future versions. </para>
-                                <glossseealso otherterm="gloss-authentication">Authentication</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-appsocketprotocol">
-                        <glossterm>AppSocket Protocol</glossterm>
-                        <glossdef><para>AppSocket is a protocol for the transfer of
-				print data, also frequently called "Direct TCP/IP Printing".
-				&Hewlett-Packard; have taken AppSocket, added a few minor
-				extensions around it and been very successful in renaming
-				and marketing it under the brand "&HP; JetDirect"...</para>
-                                <glossseealso otherterm="gloss-hpjetdirectprotocol">&HP; JetDirect Protocol</glossseealso>
-                                <glossseealso otherterm="gloss-directtcpipprinting">Direct TCP/IP Printing</glossseealso>
-                        </glossdef>
-                </glossentry>
- 
-                <glossentry id="gloss-apsfilter">
-                        <glossterm>APSfilter</glossterm>
-                        <glossdef><para>APSfilter is used mainly in the context of  "classical"
-				&UNIX; printing (BSD-style LPD). It is a sophisticated shell script,
-				disguised as an "all-in-one" filtering program. In reality,
-				APSfilter calls "real filters" to do the jobs needed. It sends
-				printjobs automatically through these other filters, based on an
-				initial file-type analysis of the printfile.
-				It is written and maintained by Andreas Klemm.
-<!--
-				</para>
-				<para>
--->
-				It is
-				similar to Magicfilter and mostly uses Ghostscript for file conversions. 
-				Some Linux Distributions (like &SuSE;) use APSfilter, others
-				Magicfilter (like &RedHat;), some have both for preference selection
-				(like *BSD).
-<!--
-				</para>
-				<para>
--->
-				&CUPS; has <emphasis>no</emphasis> need for APSfilter,
-				as it runs its own file type recognition (based on &MIME; types)
-				and applies its own filtering logic.</para>
-                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
-				<glossseealso otherterm="gloss-magicfilter">Magicfilter</glossseealso>
-				<glossseealso otherterm="gloss-mimetypes">&MIME;-Types</glossseealso>
-				<glossseealso otherterm="gloss-printcap">printcap</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-authentication">
-                        <glossterm>Authentication</glossterm>
-                        <glossdef><para>Proving the identity of a certain person (maybe via username/password
-				or by means of a certificate) is often called authentication. Once you are
-				authenticated, you may or may not get access to a requested ressource,
-				possibly based on ACLs.</para>
-                                <glossseealso otherterm="gloss-acl">ACLs</glossseealso>
-                        </glossdef>
-                </glossentry>
- 
-                <glossentry id="gloss-bidirectionalcommunication">
-                        <glossterm>Bi-directional communication</glossterm>
-                        <glossdef><para>In the context of printing, a server or a host may receive additional
-				information sent back from the printer (status messages &etc;), either
-				upon a query or unrequested. AppSocket ( = &HP; JetDirect), &CUPS; and IPP
-				support bi-directional communication, LPR/LPD and BSD-style printing
-				do not...</para>
-                                <glossseealso otherterm="gloss-appsocketprotocol">AppSocket Protocol</glossseealso> 
-                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
-                                <glossseealso otherterm="gloss-directtcpipprinting">Direct TCP/IP Printing</glossseealso> 
-                                <glossseealso otherterm="gloss-hpjetdirectprotocol">&HP; JetDirect</glossseealso> 
-                                <glossseealso otherterm="gloss-ipp">IPP</glossseealso>
-                                <glossseealso otherterm="gloss-lprlpd">LPR/LPD</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-bsdstyleprinting">
-                        <glossterm>BSD-style Printing</glossterm>
-                        <glossdef><para>Generic term for different variants of the traditional &UNIX;
-				printing method. Its first version appeared in the early 70s on
-				BSD &UNIX; and was formally described in <ulink url="http://www.rfc.net/rfc1179.html">RFC 1179</ulink> only as late
-				as 1990.
-<!--
-				</para>
-				<para>
--->
-				At the time when BSD "remote" printing was first designed, printers
-				were serially or otherwise directly connected devices to a host
-				(with the Internet hardly consisting of more than 100 nodes!); printers
-				used hole-punched, continuous paper, fed through by a tractor
-				mechanism, with simple rows of ASCII text mechanically hammered on to
-				the medium, drawn from a cardboard box beneath the table. It came out
-				like a zig-zag folded paper "snake". Remote printing consisted of a
-				neighboring host in the next room sending a file
-				asking for printout.
-<!--
-				</para>
-				<para>
--->
-				How technology has changed! Printers generally use cut-sheet media, they have
-				built-in intelligence to compute the raster images of pages after pages
-				that are sent to them using one of the powerful page description
-				languages (PDL). Many are network nodes in their own right,
-				with CPU, RAM, a hard disk and their own Operation System, and
-				are hooked to a net with potentially millions of users...
-<!--
-				</para>
-				<para>
--->
-                                It is a vast proof of the flexible &UNIX; concept for doing things,
-				that it made "Line Printing" reliably work even under these modern
-				conditions. But time has finally come now to go for something new
-				-- the IPP.
-																
-				It is strong proof of the flexibility of &UNIX;; that "Line Printing" works
-				reliably, even under these modern conditions. But time has finally come now
-				to go for something new -- the IPP.
-				
-				</para>
-				<glossseealso otherterm="gloss-ipp">IPP</glossseealso>
-				<glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
-                                <glossseealso otherterm="gloss-lprlpd">LPR/LPD printing</glossseealso>
-                        </glossdef>
-                </glossentry>
- 
-                <glossentry id="gloss-cups">
-                        <glossterm>&CUPS;</glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>C</emphasis>ommon
-				<emphasis>U</emphasis>NIX <emphasis>P</emphasis>rinting
-				<emphasis>S</emphasis>ystem; &CUPS; is the most modern &UNIX; and Linux
-				printing system, also providing cross-platform print services
-				to &Microsoft; &Windows; and Apple &MacOS; clients. Based on IPP, it does
-				away with all the pitfalls of old-style BSD printing,
-				providing authentication, encryption and ACLs, plus many more
-				features. At the same time it is backward-compatible enough
-				to serve all legacy clients that are not yet up to IPP, via
-				LPR/LPD (BSD-style).
-<!--
-				</para>
-				<para>
--->
-				&CUPS; is able to control any &PostScript; printer by
-				utilizing the vendor-supplied PPD (PostScript Printer
-				Description file), targeted originally for &Microsoft; Windows NT
-				printing only. &kde; Printing is most powerful if based on
-				&CUPS;.</para>
-                                <glossseealso otherterm="gloss-acl">ACLs</glossseealso>
-                                <glossseealso otherterm="gloss-authentication">Authentication</glossseealso>
-                                <glossseealso otherterm="gloss-bsdstyleprinting">BSD-style printing</glossseealso>
-                                <glossseealso otherterm="gloss-ipp">IPP</glossseealso>
-                                <glossseealso otherterm="gloss-tdeprint">KDEPrint</glossseealso>
-                                <glossseealso otherterm="gloss-lprlpd">LPR/LPD</glossseealso>
-                                <glossseealso otherterm="gloss-ppd">PPD</glossseealso>
-                        </glossdef>
-                </glossentry>
-
- 
-                <glossentry id="gloss-cupsfaq">
-                        <glossterm><acronym>&CUPS;-FAQ</acronym></glossterm>
-                        <glossdef><para>Currently only available in German (translation is on the way),
-				the <ulink url="http://www.danka.de/printpro/faq.html">&CUPS;-FAQ</ulink> 
-				is a valuable resource to answer many questions that anyone new to 
-				&CUPS; printing might have at first.
-				</para>
-                                <glossseealso otherterm="gloss-tdeprinthandbook">KDEPrint Handbook</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-                <glossentry id="gloss-cups-o-matic">
-                        <glossterm>&CUPS;-O-Matic</glossterm>
-                        <glossdef><para>&CUPS;-O-Matic was the first "Third Party" plugin for
-				the &CUPS; printing software. It is available on the  <ulink 
-				url="http://www.linuxprinting.org/cups-doc.html">Linuxprinting.org
-				website</ulink> to provide an online PPD-generating service.
-<!--
-				</para>
-				<para>
--->
-
-				Together with the companion <application>cupsomatic</application> Perl-Script,
-				that needs to be installed as an additional &CUPS; backend,
-				it redirects output from the native <application>pstops</application> filter into
-				a chain of suitable Ghostscript filters. Upon completion, it
-				passes the resulting data back to a &CUPS; "backend" for sending
-				to the printer.
-<!--
-				</para>
-				<para>
--->
-				In this way, &CUPS;-O-Matic enables support for any printer known to
-				have worked previously in a "classical" Ghostscript environment.
-				If no native &CUPS; support for that printer is in sight... &CUPS;-O-Matic 
-				is now replaced by the more capable PPD-O-Matic.</para>
-                                <glossseealso otherterm="gloss-cupsomatic">cupsomatic</glossseealso>
-                                <glossseealso otherterm="gloss-PPD-O-Matic">PPD-O-Matic</glossseealso>
-                                <glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-                <glossentry id="gloss-cupsomatic">
-                        <glossterm>cupsomatic</glossterm>
-                        <glossdef><para>The Perl script <application>cupsomatic</application> (plus a working Perl installation
-				on your system) is needed to make any &CUPS;-O-Matic (or PPD-O-Matic) 
-				generated PPD work with &CUPS;. It was written by Grant Taylor, author of
-				the Linux Printing HOWTO and Maintainer of the <ulink 
-				url="http://www.linuxprinting.org/printer_list.cgi">printer 
-				database</ulink> at the Linuxprinting.org website.</para>
-                                <glossseealso otherterm="gloss-cups-o-matic">&CUPS;-O-Matic</glossseealso>
-                                <glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
-                                <glossseealso otherterm="gloss-cupsomatic">cupsomatic</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-daemon">
-                        <glossterm><acronym>Daemon</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>D</emphasis>isk
-				<emphasis>a</emphasis>nd <emphasis>e</emphasis>xecution
-				<emphasis>mon</emphasis>itor; <acronym>Daemons</acronym> are present
-				on all &UNIX; systems to perform tasks independent of user
-				intervention. Readers more familiar with &Microsoft; &Windows; might
-				want to compare daemons and the tasks they are responsible
-				with "services".
-<!--
-				</para>
-				<para>
--->
-				One example of a daemon present on most
-				legacy &UNIX; systems is the LPD (Line Printer Daemon); &CUPS; is
-				widely seen as the successor to LPD in the &UNIX; world and
-				it also operates through a daemon. </para>
-                                <glossseealso otherterm="gloss-spooling">SPOOLing</glossseealso>
-                        </glossdef>
-                </glossentry>
- 
-                <glossentry id="gloss-databaselinuxprinting">
-                        <glossterm>Database, Linuxprinting.org</glossterm>
-                        <glossdef><para>Already years ago, when Linux printing was still really difficult
-				(only command line printing was known to most Linux users, no device
-				specific print options were available for doing the jobs), Grant Taylor, 
-				author of the "Linux Printing HOWTO", collected most of the available
-				information about printers, drivers and filters in his database.
-<!--
-				</para>
-				<para>
--->
-				With the emerging
-				&CUPS; concept, extending the use of PPDs even to non-PostScript printers,
-				he realized the potential of this database: if one puts the different
-				datablobs (with content that could be described along the lines
-				"Which device prints with which Ghostscript or other
-				filter?", "How well?", and "What command line switches are available?") into
-				PPD-compatible files, he could have all the power of &CUPS; on top of
-				the traditional printer "drivers".
-<!--
-				</para>
-				<para>
--->
-				This has now developed into a broader
-				concept, known as "Foomatic". Foomatic extends the capabilities
-				of spoolers other than &CUPS; (LPR/LPD, LPRng, PDQ, PPR) to a certain
-				degree ("stealing" some concepts from &CUPS;). The Linuxprinting
-				Database is not a Linux-only stop -- people running other &UNIX;
- 				based OSes (like *BSD or &MacOS; X) will also find valuable information
-				and software there.
-				</para>
-                                <glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
-                                <glossseealso otherterm="gloss-linuxprintingdatabase">Linuxprinting database</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-directtcpipprinting">
-                        <glossterm>Direct TCP/IP Printing</glossterm>
-                        <glossdef><para>This is a method that often uses TCP/IP port 9100 to connect
-				to the printer. It works with many modern network printers and has
-				a few advantages over LPR/LPD, as it is faster and provides some 
-				"backchannel feedback data" from the printer to the host sending
-				the job.</para>
-                                <glossseealso otherterm="gloss-appsocketprotocol">AppSocket Protocol</glossseealso>
-                                <glossseealso otherterm="gloss-hpjetdirectprotocol">&HP; JetDirect Protocol</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-                <glossentry id="gloss-drivers">
-                        <glossterm>Drivers, Printer Drivers</glossterm>
-                        <glossdef><para>The term "printer drivers", used in the same sense
-				as on the &Microsoft; &Windows; platform, is not entirely applicable
-				to a Linux or &UNIX; platform. A "driver" functionality
-				is supplied on &UNIX; by different modular components working
-				together. At the core of the printer drivers are "filters". Filters convert
-				print files from a given input format to another format that is acceptable
-				to the target printer. In many cases filters may be connected to a whole
-				filter "chain", where only the result of the last conversion is sent to the
-				printer. The actual transfer of the print data to the device is performed by
-				a "backend".
-				</para>
-                                <glossseealso otherterm="gloss-filter">Filter</glossseealso>
-                                <glossseealso otherterm="gloss-ppd">PPDs</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-easysoftwareproducts">
-                        <glossterm>Easy Software Products</glossterm>
-                        <glossdef><para>Mike Sweet's company, which has contributed a few substantial
-				software products towards the Free Software community; amongst
-				them the initial version of <ulink 
-				url="http://gimp-print.sf.net/">Gimp-Print,</ulink> the <ulink 
-				url="http://www.easysw.com/epm/">EPM software packaging</ulink> tool 
-				and <ulink url="http://www.easysw.com/htmldoc/">HTMLDOC</ulink>
-				(used by the "Linux Documentation Project" to build the PDF versions
-				of the HOWTOs) -- but most importantly:  <ulink 
-				url="http://www.cups.org/">&CUPS;</ulink> (the 'Common &UNIX; Printing
-				System').
-<!--
-				</para>
-				<para>
--->
-				ESP finance themselves by selling a commercial version
-				of &CUPS;, called <ulink url="http://www.easysw.com/">ESP PrintPro,</ulink> 
-				that includes some professional enhancements.
-				</para>
-                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
-                                <glossseealso otherterm="gloss-espprintpro">ESP PrintPro</glossseealso>
-                                <glossseealso otherterm="gloss-esp">ESP</glossseealso>
-                                <glossseealso otherterm="gloss-gimpprint">Gimp-Print</glossseealso>
-                        </glossdef>
-                </glossentry>
- 
-                <glossentry id="gloss-encryption">
-                        <glossterm>Encryption</glossterm>
-                        <glossdef><para>Encryption of confidential data is an all-important issue if
-				you transfer it over the Internet or even within intranets.
-<!--
-				</para>
-				<para>
--->
-				Printing
-				via traditional protocols is not encrypted at all -- it is very easy
-				to tap and eavesdrop &eg; into &PostScript; or PCL data transfered
-				over the wire.
-<!--
-				</para>
-				<para>
--->
-				Therefore, in the design of IPP, provision was made for the easy
-				plugin of encryption mechanisms (which can be provided by the same
-				means as the encryption standards for HTTP traffic: SSL and TLS).</para>
-                                <glossseealso otherterm="gloss-authentication">Authentication</glossseealso>
-                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
-                                <glossseealso otherterm="gloss-ipp">IPP</glossseealso>
-                                <glossseealso otherterm="gloss-ssl">SSL</glossseealso>
-                                <glossseealso otherterm="gloss-tls">TLS</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-                <glossentry id="gloss-epson">
-                        <glossterm><acronym>Epson</acronym></glossterm>
-                        <glossdef><para>Epson inkjets are among the best supported models by Free software
-				drivers, as the company was not necessarily as secretive about their
-				devices and handed technical specification documents to developers.
-				The excellent print quality achieved by Gimp-Print on the Stylus
-				series of printers can be attributed to this openness.
-<!--
-				</para>
-				<para>
--->
-				They have also
-				contracted Easy Software Products to maintain an enhanced version
-				of Ghostscript ("ESP GhostScript") for improved support of their
-				printer portfolio.
-				</para>
-                                <glossseealso otherterm="gloss-ghostscript">ESP Ghostscript</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-                <glossentry id="gloss-escapesequence">
-                        <glossterm>Escape Sequences</glossterm>
-                        <glossdef><para>The first ever printers printed ASCII data only. To
-				initiate a new line, or eject a page, they included special
-				command sequences, often carrying a leading [ESC]-character.
-				&HP; evolved this concept through its series of PCL language
-				editions until today, having now developed a full-blown
-				Page Description Language (PDL) from these humble beginnings.
-				</para>
-                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
-                                <glossseealso otherterm="gloss-pdl">PDL</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-escp">
-                        <glossterm><acronym>ESC/P</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>E</emphasis>pson
-				<emphasis>S</emphasis>tandard <emphasis>C</emphasis>odes for
-				<emphasis>P</emphasis>rinters. Besides &PostScript; and PCL, Epson's ESC/P
-				printer language is one of the best known.</para>
-                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
-                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
-                                <glossseealso otherterm="gloss-hpgl">hpgl</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-esp">
-                        <glossterm><acronym>ESP</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>E</emphasis>asy
-				<emphasis>S</emphasis>oftware <emphasis>P</emphasis>roducts;
-				the company that developed &CUPS; (the "Common &UNIX; Printing System").
-				</para>
-                                <glossseealso otherterm="gloss-easysoftwareproducts">Easy Software Products</glossseealso>
-                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
-                                <glossseealso otherterm="gloss-espprintpro">ESP PrintPro</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-                <glossentry id="gloss-espghostscript">
-                        <glossterm><acronym>ESP</acronym> Ghostscript</glossterm>
-                        <glossdef><para>A Ghostscript version that is maintained by Easy Software
-				Products. It includes pre-compiled Gimp-Print drivers for
-				many inkjets (plus some other goodies). ESP Ghostscript
-				will produce photographic quality prints in many cases, especially
-				with the Epson Stylus model series. ESP Ghostscript is GPL-software.
-				</para>
-                                <glossseealso otherterm="gloss-easysoftwareproducts">Easy Software Products</glossseealso>
-                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
-                                <glossseealso otherterm="gloss-espprintpro">ESP PrintPro</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-espprintpro">
-                        <glossterm><acronym>ESP</acronym> PrintPro</glossterm>
-                        <glossdef><para> This professional enhancement to &CUPS; (the "Common &UNIX; 
-				Printing System") is sold by the developers 
-				of &CUPS; complete with more than 2,300 printer drivers for several commercial
-				&UNIX; platforms. <ulink url="http://www.easysw.com/printpro/">ESP PrintPro</ulink>
-				is supposed to work "out of the box" with little or no configuration
-				for users or admins. ESP also sell support contracts for
-				&CUPS; and PrintPro. These sales help to feed the programmers who
-				develop the Free version of &CUPS;.
-			</para>
-                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-               <glossentry id="gloss-filter">
-                        <glossterm>Filter</glossterm>
-                        <glossdef><para>Filters, in general, are programs that take some input
-				data, work on it and pass it on as their output data. Filters
-				may or may not change the data.
-<!--
-				</para>
-				<para>
--->
-				Filters in the context of printing, are programs that convert
-				a given file (destined for printing, but not suitable in the
-				format it is presently) into a printable format. Sometimes
-				whole "filter chains" have to be constructed to achieve the
-				goal, piping the output of one filter as the input to the next.
-				</para>
-                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
-                                <glossseealso otherterm="gloss-rip">RIP</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-foomatic">
-                        <glossterm>Foomatic</glossterm>
-                        <glossdef><para>Foomatic started out as the wrapper name for a set of
-				different tools available from <ulink
-				url="http://www.linuxprinting.org/">Linuxprinting.org</ulink>
-				These tools aimed to make the usage of traditional
-				Ghostscript and other print filters easier for users and
-				extend the filters' capabilities by adding more command line
-				switches or explain the driver's execution data.
-<!--
-				</para>
-				<para>
--->
-				Foomatic's different incarnations are &CUPS;-O-Matic, PPD-O-Matic,
-				PDQ-O-Matic, LPD-O-Matic, PPR-O-Matic, MF-O-Matic and 
-				Direct-O-Matic. All of these allow the generation
-				of appropriate printer configuration files online, by simply
-				selection the suitable model and suggested (or alternate) driver
-				for that machine.
-<!--
-				</para>
-				<para>
--->
-				More recently, Foomatic gravitated towards becoming a "meta-spooling"
-				system, that allows configuration of the underlying print subsystem
-				through a unified set of commands (however, this is much more
-				complicated than KDEPrint's &GUI; interface, which performs a similar
-				task with regards to different print subsystems). </para>
-                                <glossseealso otherterm="gloss-cups-o-matic">&CUPS;-O-Matic</glossseealso>
-                                <glossseealso otherterm="gloss-PPD-O-Matic">PPD-O-Matic</glossseealso>
-                                <glossseealso otherterm="gloss-cupsomatic">cupsomatic</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-               <glossentry id="gloss-ghostscript">
-                        <glossterm>Ghostscript</glossterm>
-                        <glossdef><para>Ghostscript is a &PostScript; Raster Image Processor (RIP) in software, originally
-				developed by L. Peter Deutsch. There is always a <acronym>GPL</acronym> version
-				of Ghostscript available for free usage and distribution
-				(mostly 1 year old) while
-				the current version is commercially sold under another license.
-<!--
-				</para>
-				<para>
--->
-				Ghostscript is widely used inside the Linux and &UNIX; world
-				for transforming &PostScript; into raster data suitable
-				for sending to non-&PostScript; devices.</para>
-                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
-                                <glossseealso otherterm="gloss-rip">RIP</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-gimpprint">
-                        <glossterm>Gimp-Print</glossterm>
-                        <glossdef><para>Contrary to its name, Gimp-Print is no longer
-				just the plugin to be used for printing from the popular
-				Gimp program -- its codebase can also serve to be compiled
-				into...
-				<!--
-				</para>
-				<para>
--->
-				*...a set of PPDs and associated filters that integrate seamlessly
-				into &CUPS;, supporting around 130 different printer models, providing
-				photographic output quality in many cases;
-<!--
-				</para>
-				<para>
--->
-
-				*...a Ghostscript filter that can be used with any other
-				program that needs a software-RIP;
-<!--
-				</para>
-				<para>
--->
-
-				*...a library that can be used by other software applications
-				in need of rasterization functions.
-
-
-<!--
-after 4 hours fiddling, I
-could not get those s!@*#?
-<itemizedlist> to pass
-through the meinproc checks.
-For the time being I gave up
-on it and handle it differently
-now.
-				<itemizedlist>
-				<listitem>...a set of PPDs and associated filters that integrate seamlessly
-				into &CUPS;, supporting around 130 different printer models, providing
-				photografic output quality in many cases;</listitem>
-				<listitem>...a Ghostscript filter that can be used with any other
-				program that needs a software-RIP;</listitem>
-				<listitem>...a library that can be used by other software applications
-				in need of rasterization functions.</listitem>
-				</itemizedlist>
--->
-				</para>
-                                <glossseealso otherterm="gloss-lexmark">Lexmark Drivers</glossseealso>
-                                <glossseealso otherterm="gloss-rip">RIP</glossseealso>
-                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-hp">
-                        <glossterm><acronym>&HP;</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>H</emphasis>ewlett-<emphasis>Packard</emphasis>;
-				one of the first companies to distribute their own Linux printer
-				drivers. -- More recently, the Company has released their
-				"HPIJS" package of drivers, including source code and a Free license. 
-				This is the first printer manufacturer to do so. HPIJS supports most
-				current models of HP Ink- and DeskJets.
-				</para>
-                        </glossdef>
-                </glossentry>
-
-
-                <glossentry id="gloss-hpgl">
-                        <glossterm><acronym>&HP;/GL</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>&HP;</emphasis>
-				<emphasis>G</emphasis>raphical <emphasis>L</emphasis>anguage;
-				a &HP; printer language mainly used for plotters; many CAD
-				(Computer Aided Design) software programs output &HP;/GL files for
-				printing.</para>
-                                <glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
-                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
-                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-hpjetdirectprotocol">
-                        <glossterm>&HP; JetDirect Protocol</glossterm>
-                        <glossdef><para>A term branded by &HP; to describe their implementation
-				of print data transfer to the printer via an otherwise "AppSocket" or
-				"Direct TCP/IP Printing" named protocol.</para>
-                                <glossseealso otherterm="gloss-appsocketprotocol">AppSocket Protocol</glossseealso>
-                                <glossseealso otherterm="gloss-directtcpipprinting">Direct TCP/IP Printing</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-		<glossentry id="gloss-ietf">
-                        <glossterm><acronym>IETF</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>I</emphasis>nternet
-				<emphasis>E</emphasis>ngineering <emphasis>T</emphasis>ask
-				<emphasis>F</emphasis>orce; an assembly of Internet, software
-				and hardware experts that discuss
-				new networking technologies and very often arrive at
-				conclusions that are regarded by many as standards. "TCP/IP"
-				is the most famous example.
-<!--
-				</para>
-				<para>
--->
-
-				IETF standards, as well as
-				drafts, discussions, ideas and useful tutorials, are
-				put in writing in the famous series of "RFCs", which
-				are available to the public and included in most Linux and
-				BSD distributions.</para>
-                                <glossseealso otherterm="gloss-ipp">IPP</glossseealso>
-                                <glossseealso otherterm="gloss-pwg">PWG</glossseealso>
-                                <glossseealso otherterm="gloss-rfc">RFC</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-ipp">
-                        <glossterm><acronym>IPP</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>I</emphasis>nternet
-				<emphasis>P</emphasis>rinting <emphasis>P</emphasis>rotocol;
-				defined in a series of RFCs accepted by the IETF with
-				status "proposed standard"; was designed
-				by the PWG. -- IPP is a completely new design for network printing,
-				but it utilizes a very well-known and proven method for the
-				actual data transfer: HTTP 1.1! By not "re-inventing the wheel",
-				and basing itself on an existing and robust Internet standard,
-				IPP is able to relatively easily bolt other HTTP-compatible standard
-				mechanisms into its framework:
-<!--
-				</para>
-				<para>
--->
-					* Basic, Digest or Certificate authentication
-					mechanisms;
-<!--
-				</para>
-				<para>
--->
-					* SSL or TLS for encryption of transferred
-					data;
-<!--
-				</para>
-				<para>
--->
-					* LDAP for directory services (to publish
-					data on printers, device-options, drivers, costs or
-					also to the network; or to check for passwords while
-					performing authentication).
-<!--
-				</para>
-				<para>
--->
-
-<!--
-				</para>
-				<itemizedlist>
-					<listitem>Basic, Digest or Certificate authentication
-					mechanisms</listitem>
-					<listitem>SSL or TLS for encryption of transferred
-					data</listitem>
-					<listitem>LDAP for directory services (to publish
-					data on printers, device-options, drivers, costs or
-					elso to the network; or to check for passwords while
-					conducting authentication)</listitem>
-				</itemizedlist>
--->
-				</para>
-
-                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
-                                <glossseealso otherterm="gloss-pwg">PWG</glossseealso>
-                                <glossseealso otherterm="gloss-ietf">IETF</glossseealso>
-                                <glossseealso otherterm="gloss-rfc">RFC</glossseealso>
-                                <glossseealso otherterm="gloss-tls">TLS</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-tdeprint">
-                        <glossterm><acronym>KDEPrint</acronym></glossterm>
-                        <glossdef><para>The new printing functionality of &kde; since version 2.2
-				consists of several modules that translate the features and settings
-				of different available print subsystems (&CUPS;, BSD-style LPR/LPD, RLPR...)
-				into nice &kde; desktop &GUI; windows and dialogs to ease their
-				usage.
-<!--
-				</para>
-				<para>
--->
-				Most important for day-to-day usage is "kprinter", the new
-				&GUI; print command. -- Note: KDEPrint does <emphasis>not</emphasis> implement its own
-				spooling mechanism or its own &PostScript; processing; for this it
-				relies on the selected <emphasis>print subsystem</emphasis>
-				-- however it does add some functionality of its own on top of this
-				foundation...
-				</para>
-                                <glossseealso otherterm="gloss-bsdstyleprinting">BSD-style printing</glossseealso>
-                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
-                                <glossseealso otherterm="gloss-kprinter">kprinter</glossseealso>
-                                <glossseealso otherterm="gloss-tdeprinthandbook">KDEPrint Handbook</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-                <glossentry id="gloss-tdeprinthandbook">
-                        <glossterm><acronym>KDEPrint Handbook...</acronym></glossterm>
-                        <glossdef><para>...is the name of the reference document that describes KDEPrint
-				functions to users and administrators. You can load it into Konqueror by
-				typing "help:/tdeprint" into the address field. The <ulink
-				url="http://printing.kde.org/">KDEPrint website</ulink>
-				is the resource for updates to this documentation, as well as PDF
-				versions suitable for printing it. It is authored and maintained by Kurt 
-				Pfeifle.
-				</para>
-                                <glossseealso otherterm="gloss-cupsfaq">&CUPS;-FAQ</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-kprinter">
-                        <glossterm>kprinter</glossterm>
-                        <glossdef><para><emphasis>kprinter</emphasis> is the new powerful
-				print utility that is natively used by all &kde; applications.
-<!--
-				</para>
-				<para>
--->
-				Contrary to some common misconceptions,
-				<emphasis>kprinter</emphasis> is <emphasis>not</emphasis> a &CUPS;-only tool,
-				but supports different print subsystems. You can even switch
-				to a different print subsystem "on the fly", in between two jobs,
-				without re-configuration. Of course, due to the powerful
-				features of &CUPS;, <emphasis>kprinter</emphasis> is
-				best suited for use with a &CUPS; frontend.
-<!--
-				</para>
-				<para>
--->
-				<emphasis>kprinter</emphasis> is the successor
-				to "qtcups", which is no longer being actively maintained. It has
-				inherited all the best features of qtcups and added several new ones.
-<!--
-				</para>
-				<para>
--->
-
-				MOST IMPORTANT: you can use <emphasis>kprinter</emphasis>
-				with all its features in all non-&kde; applications that allow
-				a customized print command, like gv, Acrobat Reader, Netscape,
-				Mozilla, Galeon, StarOffice, OpenOffice and all GNOME programs.
-<!--
-				</para>
-				<para>
--->
-				<emphasis>kprinter</emphasis> can act as a "standalone"
-				utility, started from an X-Terminal or a "Mini-CLI" to
-				print many different files, from different folders, with different 
-				formats, in one job and simultaneously, without the need to first open the
-				files in the applications! (File formats supported this way are &PostScript;,
-				PDF, International and ASCII Text, as well as many different popular graphic
-				formats, such as PNG, TIFF, JPEG, PNM, Sun RASTER, &etc;)
-				 </para>
-                                <glossseealso otherterm="gloss-qtcups">QtCUPS</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-lexmark">
-                        <glossterm><acronym>Lexmark</acronym></glossterm>
-                        <glossdef><para>was one of the first companies to distribute their own Linux printer
-				drivers for some of their models. However, those drivers are binary only
-				(no source code available), and therefore cannot be used to integrate into
-				other Free printing software projects.  
-				 </para>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-linuxprintingorg">
-                        <glossterm>Linuxprinting.org</glossterm>
-                        <glossdef><para>Linuxprinting.org = not just for Linux; all &UNIX;-like OS-es,
-				like *BSD and commercial Unices may find useful printing
-				information on this site. This web site is the home for the interesting 
-				Foomatic project, that strives to develop the "Meta Print Spool and Driver
-  				Configuration Toolset" (being able to configure, through one common
-				interface, different print subsystems and their required drivers) with the
-				ability to transfer all queues, printers and configuration files seamlessly
-				to another spooler without new configuration effort. -- Also, they maintain
-				the Printing Database; a collection of driver and device information that
-				enables everybody to find the most current information about printer models,
-				and also generate online the configuration files for any
-				spooler/driver/device combo known to work with one of the common Linux or
-				&UNIX; print subsystems.	
-				</para>
-                                <glossseealso otherterm="gloss-linuxprintingdatabase">Linuxprinting database</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-                <glossentry id="gloss-linuxprintingdatabase">
-                        <glossterm><acronym>Linuxprinting.org Database</acronym></glossterm>
-                        <glossdef><para>....Database containing printers and drivers that are suitable
-				for them... ...a lot of information and documentation to be found... ...it 
-				is now also providing some tools and utilities for easing the integration 
-				of those drivers into a given system... ...the "Foomatic" family 
-				of utilities; being the toolset to make use of the database 
-				for most of the commonly used print subsystems, for generating "on the fly" 
-				working configurations for your printer model.
-				</para>
-                                <glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-lprlpd">
-                        <glossterm><acronym>LPR/LPD</acronym> printing</glossterm>
-                        <glossdef><para>LPR == some people translate <emphasis>L</emphasis>ine
-				<emphasis>P</emphasis>rinting <emphasis>R</emphasis>equest, others:
-				<emphasis>L</emphasis>ine <emphasis>P</emphasis>rinter
-				<emphasis>R</emphasis>emote.</para>
-                                <glossseealso otherterm="gloss-bsdstyleprinting">BSD-style printing</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-magicfilter">
-                        <glossterm>Magicfilter</glossterm>
-                        <glossdef><para>Similarly to the APSfilter program, Magicfilter
-				provides automatic file type recognition functions and, base
-				on that, automatic file conversion to a printable format,
-				depending on the target printer.</para>
-                                <glossseealso otherterm="gloss-apsfilter">APSfilter</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-mimetypes">
-                        <glossterm>&MIME;-Types</glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>M</emphasis>ultipurpose (or
-				Multimedia) <emphasis>I</emphasis>nternet <emphasis>M</emphasis>ail
-				<emphasis>E</emphasis>xtensions; &MIME;-Types were first used to allow
-				the transport of binary data (like mail attachments containing
-				graphics) over mail connections that were normally only transmitting
-				ASCII characters: the data had to be encoded into an ASCII representation.
-<!--
-				</para>
-				<para>
--->
-				Later this concept was extended to describe a data format in
-				a platform independent, but at the same time non-ambiguous, way.
-				From &Windows; everybody knows the .doc extensions for &Microsoft; Word files.
-				This is handled ambiguously on the &Windows; platform: .doc extensions are also
-				used for simple text files or for Adobe Framemaker files. And if a real
-				Word file is renamed with a different extension, it can no longer be
-				opened by the program.
-<!--
-				</para>
-				<para>
--->
-				&MIME; typed files carry a recognition string with them, describing
-				their file format based on <emphasis>main_category/sub_category</emphasis>.
-				Inside IPP, print files are also described using the &MIME; type scheme.
-				&MIME; types are registered with the IANA (Internet Assigning Numbers
-				<emphasis>Association</emphasis>) to keep them unambiguous.
-<!--
-				</para>
-				<para>
--->
-				&CUPS; has some &MIME; types of its own registered, like
-				<emphasis>application/vnd.cups-raster</emphasis> (for the &CUPS;-internal
-				raster image format).
-
-				</para>
-                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
-                                <glossseealso otherterm="gloss-easysoftwareproducts">Easy Software Products</glossseealso>
-                                <glossseealso otherterm="gloss-espprintpro">ESP PrintPro</glossseealso>
-                                <glossseealso otherterm="gloss-gimpprint">Gimp-Print</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-pcl">
-                        <glossterm><acronym>PCL</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>P</emphasis>rinter
-				<emphasis>C</emphasis>ontrol <emphasis>L</emphasis>anguage;
-				developed by &HP;. PCL started off in version 1 as a simple
-				command set for ASCII printing; now,
-				in its versions PCL6 and PCL-X, it is capable of printing graphics
-				and color -- but outside the &Microsoft; &Windows; realm and &HP-UX; 
-				(&HP;'s own brand of &UNIX;), it is not commonly used...</para>
-                                <glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
-                                <glossseealso otherterm="gloss-hpgl">&HP;/GL</glossseealso>
-                                <glossseealso otherterm="gloss-pdl">PDL</glossseealso>
-                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-pdl">
-                        <glossterm><acronym>PDL</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>P</emphasis>age
-				<emphasis>D</emphasis>escription <emphasis>L</emphasis>anguage;
-				PDLs describe, in an abstract way, the graphical representation
-				of a page. - Before it is actually transferred into
-				toner or ink laid down on to paper, a PDL needs to be
-				"interpreted" first. In &UNIX;, the most important PDL
-				is &PostScript;.
-				</para>
-				<glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
-                                <glossseealso otherterm="gloss-hpgl">&HP;/GL</glossseealso>
-                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
-                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-pixel">
-                        <glossterm>Pixel</glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>Pic</emphasis>ture
-				<emphasis>El</emphasis>ement; this term describes the smallest
-				part of a raster picture (either as printed on paper
-				or as displayed on a monitor by cathode rays or LCD elements). As
-				any graphical or image representation on those types of output
-				devices is composed of pixels, the values of "ppi" (pixel per inch)
-				and &dpi; (dots per inch) are one important parameter for the
-				overall quality and resolution of an image.</para>
-                                <glossseealso otherterm="gloss-filter">Filter</glossseealso>
-                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
-                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
-                                <glossseealso otherterm="gloss-raster">Raster</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-pjl">
-                        <glossterm><acronym>PJL</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>P</emphasis>rint
-				<emphasis>J</emphasis>ob <emphasis>L</emphasis>anguage;
-				developed by &HP; to control and influence default and per-job
-				settings of a printer. It may not only be used
-				for &HP;'s own (PCL-)printers; also many &PostScript;
-				and other printers understand PJL commands sent to them
-				inside a print job, or in a separate signal.</para>
-                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-postscript">
-                        <glossterm>&PostScript;</glossterm>
-                        <glossdef><para>&PostScript; (often shortened to "PS") is the de-facto
-				standard in the &UNIX; world for printing files. It was
-				developed by Adobe and licensed to printer manufacturers 
-				and software companies.
-<!--
-				</para>
-				<para>
--->
-				As the &PostScript; specifications were
-				published by Adobe, there are also "Third Party" implementations
-				of &PostScript; generating and &PostScript; interpreting software
-				available (one of the best-known in the Free software world
-				being Ghostscript, a powerful PS-interpreter).
-                                </para>
-                                <glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
-                                <glossseealso otherterm="gloss-hpgl">&HP;/GL</glossseealso>
-                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
-                                <glossseealso otherterm="gloss-ppd">PPD</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-ppd">
-                        <glossterm><acronym>PPD</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>P</emphasis>ostScript
-				<emphasis>P</emphasis>rinter <emphasis>D</emphasis>escription;
-				PPDs are ASCII files storing all information about the special
-				capabilities of a printer, plus definitions of the (PostScript-
-				or PJL-) commands to call on a certain capability (like print
-				duplexing).
-<!--
-				</para>
-				<para>
--->
-
-				As the explanation of the acronym reveals, PPDs were originally
-				only used for &PostScript; printers. &CUPS; has extended the
-				PPD concept to all types of printers.
-<!--
-				</para>
-				<para>
--->
-
-				PPDs for &PostScript; printers are provided by the printer
-				vendors. They can be used with &CUPS; and KDEPrint to have access
-				to the full features of any &PostScript; printer. The KDEPrint Team
-				recommends using a PPD originally intended for use with
-				&Microsoft; Windows NT.
-<!--
-				</para>
-				<para>
--->
-
-				PPDs for non-PostScript printers <emphasis>need</emphasis> a
-				companion "filter" to process the &PostScript; print files into
-				a format digestible for the non-PostScript target device. Those
-				PPD/filter combos are not (yet) available from the vendors. After
-				the initiative by the &CUPS; developers to utilize PPDs, the Free
-				Software community was creative enough to quickly come up with
-				support for most of the currently used printer models, through
-				PPDs and classical Ghostscript filters. But note: the printout
-				quality varies from "hi-quality photographic output" (using
-				Gimp-Print with most Epson inkjets) to "hardly readable" (using
-				Foomatic-enabled Ghostscript filters for models rated as
-				"paperweight" in the Linuxprinting.org database).
-                                </para>
-                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
-                                <glossseealso otherterm="gloss-linuxprintingorg">Linuxprinting.org</glossseealso>
-                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-PPD-O-Matic">
-                        <glossterm>PPD-O-Matic</glossterm>
-                        <glossdef><para>PPD-O-Matic is a set of Perl scripts that run on the Linuxprinting.org
-				web server and can be used online to generate PPDs for any printer that is known
-				to print with Ghostscript.
-<!--
-				</para>
-				<para>
--->
-
-				These PPDs can be hooked up to &CUPS;/KDEPrint, as well as
-				used inside PPD-aware applications like StarOffice to determine all different 
-				parameters of your printjobs. It is now recommended, in most cases, to 
-				use "PPD-O-Matic" instead of the older &CUPS;-O-Matic.
-<!--
-				</para>
-				<para>
--->
-
-				To generate a PPD, go to the <ulink
-				url="http://www.linuxprinting.org/printer_list.cgi">printer 
-				database</ulink>, select your printer model, follow
-				the link to show the available Ghostscript filters for that printer, select
-				one, click "generate" and finally save the file to your local system.
-				Be sure to read the instructions. Make sure that your local system
-				does indeed have Ghostscript and the filter, which you chose
-				before generating the PPD, installed.
-				</para>
-				<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
-                                <glossseealso otherterm="gloss-cups-o-matic">&CUPS;-O-Matic</glossseealso>
-                                <glossseealso otherterm="gloss-linuxprintingorg">Linuxprinting.org</glossseealso>
-                                <glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-printcap">
-                        <glossterm>printcap</glossterm>
-                        <glossdef><para>In BSD-style print systems, the "printcap" file holds
-				the configuration information; the printing daemon reads this file
-				to determine which printers are available, what filters are to be
-				user for each, where the spooling folder is located,
-				if there are banner pages to be used, and so on...
-				Some applications also depend on read access to the printcap 
-				file, to obtain the names of available printers. </para>
-                                <glossseealso otherterm="gloss-bsdstyleprinting">BSD-style printing</glossseealso>
-                        </glossdef>
-                </glossentry>
-  
-
-                <glossentry id="gloss-printermib">
-                        <glossterm>Printer-<acronym>MIB</acronym></glossterm>
-                        <glossdef><para>Abbreviation for
-				<emphasis>Printer</emphasis>-<emphasis>M</emphasis>anagement
-				<emphasis>I</emphasis>nformation <emphasis>B</emphasis>ase; the
-				Printer-MIB defines a set of parameters that are to be
-				stored inside the printer for access
-				through the network. This is useful if many (in some cases, literally 
-				thousands) network printers are managed centrally
-				with the help of SNMP (Simple Network Management Protocol).</para>
-                                <glossseealso otherterm="gloss-pwg">PWG</glossseealso>
-                                <glossseealso otherterm="gloss-snmp">SNMP</glossseealso>
-                        </glossdef>
-                </glossentry>
-  
-                <glossentry id="gloss-pwg">
-                        <glossterm><acronym>PWG</acronym></glossterm>
-                        <glossdef><para>Abbreviation for
-				<emphasis>P</emphasis>rinter <emphasis>W</emphasis>orking
-				<emphasis>G</emphasis>roup; the PWG is a loose grouping of
-				representatives of the printer industry that has, in the past
-				years, developed different standards
-				in relation to network printing. These were later accepted by the
-				IETF as RFC standards, like the "Printer-MIB" and the IPP.</para>
-				<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
-                                <glossseealso otherterm="gloss-ipp">IPP</glossseealso>
-                                <glossseealso otherterm="gloss-printermib">Printer-MIB</glossseealso>
-                                <glossseealso otherterm="gloss-snmp">SNMP</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-printkioslave">
-                        <glossterm>print:/ KIO Slave</glossterm>
-                        <glossdef><para>You can use a syntax of "print:/..." to get quick access
-				to KDEPrint resources. Typing "print:/manager" as a Konqueror URL
-				address gives administrative access to KDEPrint. Konqueror uses &kde;'s
-				famous "KParts" technology to achieve that. </para>
-                                <glossseealso otherterm="gloss-ioslave">IO Slave</glossseealso>
-                                <glossseealso otherterm="gloss-kparts">KParts</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-                <glossentry id="gloss-printerdatabase">
-                        <glossterm>Printer Database</glossterm>
-                        <glossdef><para>.</para>
-                                <glossseealso otherterm="gloss-linuxprintingdatabase">Linuxprinting Database</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-qtcups">
-                        <glossterm><acronym>Qt&CUPS;</acronym></glossterm>
-                        <glossdef><para>Qt&CUPS; and KUPS were the predecessors of KDEPrint; they are now 
-				deprecated and no longer maintained. What was good in qtcups is all inherited
-				by "kprinter", the new KDE print dialog (which is much improved over qtcups);
-				what you liked about kups is now all in the KDEPrint Manager (accessible 
-				via the KDE Control Center or via the URL "print:/manager" from Konqueror) --
-				with more functionality and less bugs... Its former developer, Michael Goffioul, is now
-				the developer of KDEPrint -- a very nice and productive guy and quick bug fixer...
-				 </para>
-                                <glossseealso otherterm="gloss-kprinter">kprinter</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-raster">
-                        <glossterm>Raster Image</glossterm>
-                        <glossdef><para>Every picture on a physical medium
-				is composed of a pattern of discrete dots in different colors and (maybe)
-				sizes. This is called a "raster image".
-<!--
-				</para>
-				<para>
--->
-
-				This is as opposed to a "vector image"
-				where the graphic is described in terms of continuous curves, shades,
-				forms and filled areas, represented by mathematical formula. Vector images
-				normally have a smaller file size and may be scaled in size 
-				without any loss of information and quality --- but they cannot be
-				output directly, but always have to be "rendered" or "rasterized"
-				first to the given resolution that the output device is capable of...
-<!--
-				</para>
-				<para>
--->
-
-
-				The rasterization is done by a Raster Image Processor (RIP,
-				often the Ghostscript software) or some other filtering
-				instance.</para>
-                                <glossseealso otherterm="gloss-pixel">Pixel</glossseealso>
-                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
-                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
-                                <glossseealso otherterm="gloss-filter">Filter</glossseealso>
-                                <glossseealso otherterm="gloss-rip">RIP</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-rip">
-                        <glossterm><acronym>RIP</acronym></glossterm>
-                        <glossdef><para>Abbreviation for
-				<emphasis>R</emphasis>aster <emphasis>I</emphasis>mage
-				<emphasis>P</emphasis>rocess(or); if used in the context of
-				printing, "RIP" means a hardware or software
-				instance that converts &PostScript; (or other print formats
-				that are represented in one of the non-Raster PDLs) into a
-				raster image format in such a way that it is acceptable
-				for the "marking engine" of the printer.
-<!--
-				</para>
-				<para>
--->
-
-				&PostScript; printers
-				contain their own PostScript-RIPs. A RIP may or may not be located 
-				inside a printer.
-<!--
-				</para>
-				<para>
--->
-
-				For many &UNIX; systems, Ghostscript is the package that provides
-				a "RIP in software", running on the host computer, and pre-digesting
-				the &PostScript; or other data to become ready to be sent to the
-				printing device (hence you may perceive a "grain of truth" in the
-				slogan "Ghostscript turns your printer into a &PostScript;
-				machine", which of course is not correct in the true sense of the
-				meaning).</para>
-                                <glossseealso otherterm="gloss-filter">Filter</glossseealso>
-                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
-                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
-                                <glossseealso otherterm="gloss-pdl">PDL</glossseealso>
-                                <glossseealso otherterm="gloss-raster">Raster</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-                <glossentry id="gloss-rlpr">
-                        <glossterm><acronym>RLPR</acronym> (Remote LPR)</glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>R</emphasis>emote
-				<emphasis>L</emphasis>ine <emphasis>P</emphasis>rinting
-				<emphasis>R</emphasis>equest; this is a BSD-style printing system,
-				that needs no root privileges to be installed, and no "printcap" to
-				work: all parameters may be specified on the command
-				line.
-<!--
-				</para>
-				<para>
--->
-
-				RLPR comes in handy for many laptop users who are
-				working in frequently changing environments. This is because it
-				may be installed concurrently with every other printing
-				sub system, and allows a very flexible and quick
-				way to install a printer for direct access via LPR/LPD.
-<!--
-				</para>
-				<para>
--->
-
-				KDEPrint
-				has an "Add Printer Wizard" to make RLPR usage even easier.
-				The kprinter command allows switching to RLPR "on
-				the fly" at any time.</para>
-                                <glossseealso otherterm="gloss-tdeprint">KDEPrint</glossseealso>
-                                <glossseealso otherterm="gloss-kprinter">kprinter</glossseealso>
-                                <glossseealso otherterm="gloss-printcap">printcap</glossseealso>
-                        </glossdef>
-                </glossentry>
-
- 
-                <glossentry id="gloss-snmp">
-                        <glossterm><acronym>SNMP</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>S</emphasis>imple
-				<emphasis>N</emphasis>etwork <emphasis>M</emphasis>anagement
-				<emphasis>P</emphasis>rotocol; SNMP is widely used to control
-				all types of network node (Hosts, Routers, Switches, Gateways,
-				Printers...) remotely.</para>
-                                <glossseealso otherterm="gloss-pwg">PWG</glossseealso>
-                                <glossseealso otherterm="gloss-printermib">Printer-MIB</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-	        <glossentry id="gloss-ssl">
-                        <glossterm><acronym>SSL(3)</acronym> encryption</glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>S</emphasis>ecure
-				<emphasis>S</emphasis>ocket <emphasis>L</emphasis>ayer;
-				<acronym>SSL</acronym> is a proprietary encryption method for data
-				transfer over HTTP that was developed by Netscape. It is now being 
-				replaced by an IETF standard named TLS.
-				</para>
-                                <glossseealso otherterm="gloss-tls"><acronym>TLS</acronym></glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-	        <glossentry id="gloss-spooling">
-                        <glossterm><acronym>SPOOL</acronym>ing</glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>S</emphasis>ynchronous
-				<emphasis>P</emphasis>eripheral <emphasis>O</emphasis>perations
-				<emphasis>O</emphasis>n<emphasis>L</emphasis>ine;
-				<acronym>SPOOL</acronym>ing enables printing applications
-				(and users) to continue their work
-                                as the job is being taken care of by a system <acronym>daemon</acronym>,
-				which stores the file at a temporary location until the printer is ready
-				to print. </para>
-                                <glossseealso otherterm="gloss-daemon"><acronym>Daemon</acronym></glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-	        <glossentry id="gloss-tls">
-                        <glossterm><acronym>TLS</acronym> encryption</glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>T</emphasis>ransport
-				<emphasis>L</emphasis>ayer <emphasis>S</emphasis>ecurity;
-				<acronym>TLS</acronym> is an encryption standard for
-				data transfered over HTTP 1.1; it is defined in RFC 2246;
-				although based on the former SSL development
-				(from Netscape) it is not fully compatible with it.
-				</para>
-                                <glossseealso otherterm="gloss-ssl"><acronym>SSL(3)</acronym></glossseealso>
-                        </glossdef>
-                </glossentry>
-
-
-	        <glossentry id="gloss-systemVstyleprinting">
-                        <glossterm>System V-style printing</glossterm>
-                        <glossdef><para>This is the second flavor of traditional &UNIX;
-				printing (as opposed to BSD-style printing). It uses
-				a different command set (lp, lpadmin,...) to BSD,
-				but is not fundamentally different from it. However, the 
-				gap between the two is big enough to make the two
-				incompatible, so that a BSD-client cannot simply print
-				to a System V style print server without additional
-				tweaking... IPP is supposed to resolve this weakness
-				and more.
-				</para>
-                                <glossseealso otherterm="gloss-bsdstyleprinting"><acronym>BSD-style printing</acronym></glossseealso>
-                                <glossseealso otherterm="gloss-ipp"><acronym>IPP</acronym></glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-turboprint">
-                        <glossterm>TurboPrint</glossterm>
-                        <glossdef><para>Shareware software providing photo quality printing for many
-				inkjet printers. It is useful if you are unable to find a driver for your
-				printer and may be hooked into either a traditional Ghostscript system
-				or a modern &CUPS; system.</para>
-                                <glossseealso otherterm="gloss-gimpprint">Gimp-Print</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-xpp">
-                        <glossterm><acronym>XPP</acronym></glossterm>
-                        <glossdef><para>Abbreviation for <emphasis>X</emphasis>
-				<emphasis>P</emphasis>rinting <emphasis>P</emphasis>anel;
-				<acronym>XPP</acronym> was the first Free
-				graphical print command for &CUPS;, written by Till Kamppeter,
-				and in some ways a model for the "kprinter" utility in &kde;.</para>
-                        </glossdef>
-                </glossentry>
-<!--
-                <glossentry id="gloss-1">
-                        <glossterm>xxxx</glossterm>
-                        <glossdef><para>.</para>
-                                <glossseealso otherterm="gloss-1">xyz</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-3">
-                        <glossterm>xxxx</glossterm>
-                        <glossdef><para>.</para>
-                                <glossseealso otherterm="gloss-1">xyz</glossseealso>
-                        </glossdef>
-                </glossentry>
-
-                <glossentry id="gloss-4">
-                        <glossterm>xxxx</glossterm>
-                        <glossdef><para>.</para>
-                                <glossseealso otherterm="gloss-1">xyz</glossseealso>
-                        </glossdef>
-                </glossentry>
--->
-	</glossdiv>
-
-
-<!--
-</glossary>
--->
diff --git a/doc/glossary/tdeprintingglossary.docbook b/doc/glossary/tdeprintingglossary.docbook
new file mode 100644
index 000000000..6a0f35a34
--- /dev/null
+++ b/doc/glossary/tdeprintingglossary.docbook
@@ -0,0 +1,1387 @@
+
+<!--
+<?xml version="1.0" ?>
+<!DOCTYPE glossary PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
+"customization/dtd/kdex.dtd" [
+<!ENTITY % addindex "IGNORE">
+<!ENTITY % English "INCLUDE">
+<!ENTITY glossary-tdeprinting SYSTEM "tdeprintingglossary.docbook">
+
+]>
+<glossary id="glossary">
+-->
+        <glossdiv id="glossdiv-printing">
+                <title>Printing</title>
+ 
+
+                <glossentry id="gloss-acl">
+                        <glossterm><acronym>ACLs</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>A</emphasis>ccess
+			<emphasis>C</emphasis>ontrol <emphasis>L</emphasis>ists;
+				ACLs are used to check for the access by a given
+				(authenticated) user. A first rough support for ACLs
+				for printing is available from &CUPS;; this will be refined
+				in future versions. </para>
+                                <glossseealso otherterm="gloss-authentication">Authentication</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-appsocketprotocol">
+                        <glossterm>AppSocket Protocol</glossterm>
+                        <glossdef><para>AppSocket is a protocol for the transfer of
+				print data, also frequently called "Direct TCP/IP Printing".
+				&Hewlett-Packard; have taken AppSocket, added a few minor
+				extensions around it and been very successful in renaming
+				and marketing it under the brand "&HP; JetDirect"...</para>
+                                <glossseealso otherterm="gloss-hpjetdirectprotocol">&HP; JetDirect Protocol</glossseealso>
+                                <glossseealso otherterm="gloss-directtcpipprinting">Direct TCP/IP Printing</glossseealso>
+                        </glossdef>
+                </glossentry>
+ 
+                <glossentry id="gloss-apsfilter">
+                        <glossterm>APSfilter</glossterm>
+                        <glossdef><para>APSfilter is used mainly in the context of  "classical"
+				&UNIX; printing (BSD-style LPD). It is a sophisticated shell script,
+				disguised as an "all-in-one" filtering program. In reality,
+				APSfilter calls "real filters" to do the jobs needed. It sends
+				printjobs automatically through these other filters, based on an
+				initial file-type analysis of the printfile.
+				It is written and maintained by Andreas Klemm.
+<!--
+				</para>
+				<para>
+-->
+				It is
+				similar to Magicfilter and mostly uses Ghostscript for file conversions. 
+				Some Linux Distributions (like &SuSE;) use APSfilter, others
+				Magicfilter (like &RedHat;), some have both for preference selection
+				(like *BSD).
+<!--
+				</para>
+				<para>
+-->
+				&CUPS; has <emphasis>no</emphasis> need for APSfilter,
+				as it runs its own file type recognition (based on &MIME; types)
+				and applies its own filtering logic.</para>
+                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
+				<glossseealso otherterm="gloss-magicfilter">Magicfilter</glossseealso>
+				<glossseealso otherterm="gloss-mimetypes">&MIME;-Types</glossseealso>
+				<glossseealso otherterm="gloss-printcap">printcap</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-authentication">
+                        <glossterm>Authentication</glossterm>
+                        <glossdef><para>Proving the identity of a certain person (maybe via username/password
+				or by means of a certificate) is often called authentication. Once you are
+				authenticated, you may or may not get access to a requested ressource,
+				possibly based on ACLs.</para>
+                                <glossseealso otherterm="gloss-acl">ACLs</glossseealso>
+                        </glossdef>
+                </glossentry>
+ 
+                <glossentry id="gloss-bidirectionalcommunication">
+                        <glossterm>Bi-directional communication</glossterm>
+                        <glossdef><para>In the context of printing, a server or a host may receive additional
+				information sent back from the printer (status messages &etc;), either
+				upon a query or unrequested. AppSocket ( = &HP; JetDirect), &CUPS; and IPP
+				support bi-directional communication, LPR/LPD and BSD-style printing
+				do not...</para>
+                                <glossseealso otherterm="gloss-appsocketprotocol">AppSocket Protocol</glossseealso> 
+                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
+                                <glossseealso otherterm="gloss-directtcpipprinting">Direct TCP/IP Printing</glossseealso> 
+                                <glossseealso otherterm="gloss-hpjetdirectprotocol">&HP; JetDirect</glossseealso> 
+                                <glossseealso otherterm="gloss-ipp">IPP</glossseealso>
+                                <glossseealso otherterm="gloss-lprlpd">LPR/LPD</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-bsdstyleprinting">
+                        <glossterm>BSD-style Printing</glossterm>
+                        <glossdef><para>Generic term for different variants of the traditional &UNIX;
+				printing method. Its first version appeared in the early 70s on
+				BSD &UNIX; and was formally described in <ulink url="http://www.rfc.net/rfc1179.html">RFC 1179</ulink> only as late
+				as 1990.
+<!--
+				</para>
+				<para>
+-->
+				At the time when BSD "remote" printing was first designed, printers
+				were serially or otherwise directly connected devices to a host
+				(with the Internet hardly consisting of more than 100 nodes!); printers
+				used hole-punched, continuous paper, fed through by a tractor
+				mechanism, with simple rows of ASCII text mechanically hammered on to
+				the medium, drawn from a cardboard box beneath the table. It came out
+				like a zig-zag folded paper "snake". Remote printing consisted of a
+				neighboring host in the next room sending a file
+				asking for printout.
+<!--
+				</para>
+				<para>
+-->
+				How technology has changed! Printers generally use cut-sheet media, they have
+				built-in intelligence to compute the raster images of pages after pages
+				that are sent to them using one of the powerful page description
+				languages (PDL). Many are network nodes in their own right,
+				with CPU, RAM, a hard disk and their own Operation System, and
+				are hooked to a net with potentially millions of users...
+<!--
+				</para>
+				<para>
+-->
+                                It is a vast proof of the flexible &UNIX; concept for doing things,
+				that it made "Line Printing" reliably work even under these modern
+				conditions. But time has finally come now to go for something new
+				-- the IPP.
+																
+				It is strong proof of the flexibility of &UNIX;; that "Line Printing" works
+				reliably, even under these modern conditions. But time has finally come now
+				to go for something new -- the IPP.
+				
+				</para>
+				<glossseealso otherterm="gloss-ipp">IPP</glossseealso>
+				<glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
+                                <glossseealso otherterm="gloss-lprlpd">LPR/LPD printing</glossseealso>
+                        </glossdef>
+                </glossentry>
+ 
+                <glossentry id="gloss-cups">
+                        <glossterm>&CUPS;</glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>C</emphasis>ommon
+				<emphasis>U</emphasis>NIX <emphasis>P</emphasis>rinting
+				<emphasis>S</emphasis>ystem; &CUPS; is the most modern &UNIX; and Linux
+				printing system, also providing cross-platform print services
+				to &Microsoft; &Windows; and Apple &MacOS; clients. Based on IPP, it does
+				away with all the pitfalls of old-style BSD printing,
+				providing authentication, encryption and ACLs, plus many more
+				features. At the same time it is backward-compatible enough
+				to serve all legacy clients that are not yet up to IPP, via
+				LPR/LPD (BSD-style).
+<!--
+				</para>
+				<para>
+-->
+				&CUPS; is able to control any &PostScript; printer by
+				utilizing the vendor-supplied PPD (PostScript Printer
+				Description file), targeted originally for &Microsoft; Windows NT
+				printing only. &kde; Printing is most powerful if based on
+				&CUPS;.</para>
+                                <glossseealso otherterm="gloss-acl">ACLs</glossseealso>
+                                <glossseealso otherterm="gloss-authentication">Authentication</glossseealso>
+                                <glossseealso otherterm="gloss-bsdstyleprinting">BSD-style printing</glossseealso>
+                                <glossseealso otherterm="gloss-ipp">IPP</glossseealso>
+                                <glossseealso otherterm="gloss-tdeprint">KDEPrint</glossseealso>
+                                <glossseealso otherterm="gloss-lprlpd">LPR/LPD</glossseealso>
+                                <glossseealso otherterm="gloss-ppd">PPD</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+ 
+                <glossentry id="gloss-cupsfaq">
+                        <glossterm><acronym>&CUPS;-FAQ</acronym></glossterm>
+                        <glossdef><para>Currently only available in German (translation is on the way),
+				the <ulink url="http://www.danka.de/printpro/faq.html">&CUPS;-FAQ</ulink> 
+				is a valuable resource to answer many questions that anyone new to 
+				&CUPS; printing might have at first.
+				</para>
+                                <glossseealso otherterm="gloss-tdeprinthandbook">KDEPrint Handbook</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+                <glossentry id="gloss-cups-o-matic">
+                        <glossterm>&CUPS;-O-Matic</glossterm>
+                        <glossdef><para>&CUPS;-O-Matic was the first "Third Party" plugin for
+				the &CUPS; printing software. It is available on the  <ulink 
+				url="http://www.linuxprinting.org/cups-doc.html">Linuxprinting.org
+				website</ulink> to provide an online PPD-generating service.
+<!--
+				</para>
+				<para>
+-->
+
+				Together with the companion <application>cupsomatic</application> Perl-Script,
+				that needs to be installed as an additional &CUPS; backend,
+				it redirects output from the native <application>pstops</application> filter into
+				a chain of suitable Ghostscript filters. Upon completion, it
+				passes the resulting data back to a &CUPS; "backend" for sending
+				to the printer.
+<!--
+				</para>
+				<para>
+-->
+				In this way, &CUPS;-O-Matic enables support for any printer known to
+				have worked previously in a "classical" Ghostscript environment.
+				If no native &CUPS; support for that printer is in sight... &CUPS;-O-Matic 
+				is now replaced by the more capable PPD-O-Matic.</para>
+                                <glossseealso otherterm="gloss-cupsomatic">cupsomatic</glossseealso>
+                                <glossseealso otherterm="gloss-PPD-O-Matic">PPD-O-Matic</glossseealso>
+                                <glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+                <glossentry id="gloss-cupsomatic">
+                        <glossterm>cupsomatic</glossterm>
+                        <glossdef><para>The Perl script <application>cupsomatic</application> (plus a working Perl installation
+				on your system) is needed to make any &CUPS;-O-Matic (or PPD-O-Matic) 
+				generated PPD work with &CUPS;. It was written by Grant Taylor, author of
+				the Linux Printing HOWTO and Maintainer of the <ulink 
+				url="http://www.linuxprinting.org/printer_list.cgi">printer 
+				database</ulink> at the Linuxprinting.org website.</para>
+                                <glossseealso otherterm="gloss-cups-o-matic">&CUPS;-O-Matic</glossseealso>
+                                <glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
+                                <glossseealso otherterm="gloss-cupsomatic">cupsomatic</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-daemon">
+                        <glossterm><acronym>Daemon</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>D</emphasis>isk
+				<emphasis>a</emphasis>nd <emphasis>e</emphasis>xecution
+				<emphasis>mon</emphasis>itor; <acronym>Daemons</acronym> are present
+				on all &UNIX; systems to perform tasks independent of user
+				intervention. Readers more familiar with &Microsoft; &Windows; might
+				want to compare daemons and the tasks they are responsible
+				with "services".
+<!--
+				</para>
+				<para>
+-->
+				One example of a daemon present on most
+				legacy &UNIX; systems is the LPD (Line Printer Daemon); &CUPS; is
+				widely seen as the successor to LPD in the &UNIX; world and
+				it also operates through a daemon. </para>
+                                <glossseealso otherterm="gloss-spooling">SPOOLing</glossseealso>
+                        </glossdef>
+                </glossentry>
+ 
+                <glossentry id="gloss-databaselinuxprinting">
+                        <glossterm>Database, Linuxprinting.org</glossterm>
+                        <glossdef><para>Already years ago, when Linux printing was still really difficult
+				(only command line printing was known to most Linux users, no device
+				specific print options were available for doing the jobs), Grant Taylor, 
+				author of the "Linux Printing HOWTO", collected most of the available
+				information about printers, drivers and filters in his database.
+<!--
+				</para>
+				<para>
+-->
+				With the emerging
+				&CUPS; concept, extending the use of PPDs even to non-PostScript printers,
+				he realized the potential of this database: if one puts the different
+				datablobs (with content that could be described along the lines
+				"Which device prints with which Ghostscript or other
+				filter?", "How well?", and "What command line switches are available?") into
+				PPD-compatible files, he could have all the power of &CUPS; on top of
+				the traditional printer "drivers".
+<!--
+				</para>
+				<para>
+-->
+				This has now developed into a broader
+				concept, known as "Foomatic". Foomatic extends the capabilities
+				of spoolers other than &CUPS; (LPR/LPD, LPRng, PDQ, PPR) to a certain
+				degree ("stealing" some concepts from &CUPS;). The Linuxprinting
+				Database is not a Linux-only stop -- people running other &UNIX;
+ 				based OSes (like *BSD or &MacOS; X) will also find valuable information
+				and software there.
+				</para>
+                                <glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
+                                <glossseealso otherterm="gloss-linuxprintingdatabase">Linuxprinting database</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-directtcpipprinting">
+                        <glossterm>Direct TCP/IP Printing</glossterm>
+                        <glossdef><para>This is a method that often uses TCP/IP port 9100 to connect
+				to the printer. It works with many modern network printers and has
+				a few advantages over LPR/LPD, as it is faster and provides some 
+				"backchannel feedback data" from the printer to the host sending
+				the job.</para>
+                                <glossseealso otherterm="gloss-appsocketprotocol">AppSocket Protocol</glossseealso>
+                                <glossseealso otherterm="gloss-hpjetdirectprotocol">&HP; JetDirect Protocol</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+                <glossentry id="gloss-drivers">
+                        <glossterm>Drivers, Printer Drivers</glossterm>
+                        <glossdef><para>The term "printer drivers", used in the same sense
+				as on the &Microsoft; &Windows; platform, is not entirely applicable
+				to a Linux or &UNIX; platform. A "driver" functionality
+				is supplied on &UNIX; by different modular components working
+				together. At the core of the printer drivers are "filters". Filters convert
+				print files from a given input format to another format that is acceptable
+				to the target printer. In many cases filters may be connected to a whole
+				filter "chain", where only the result of the last conversion is sent to the
+				printer. The actual transfer of the print data to the device is performed by
+				a "backend".
+				</para>
+                                <glossseealso otherterm="gloss-filter">Filter</glossseealso>
+                                <glossseealso otherterm="gloss-ppd">PPDs</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-easysoftwareproducts">
+                        <glossterm>Easy Software Products</glossterm>
+                        <glossdef><para>Mike Sweet's company, which has contributed a few substantial
+				software products towards the Free Software community; amongst
+				them the initial version of <ulink 
+				url="http://gimp-print.sf.net/">Gimp-Print,</ulink> the <ulink 
+				url="http://www.easysw.com/epm/">EPM software packaging</ulink> tool 
+				and <ulink url="http://www.easysw.com/htmldoc/">HTMLDOC</ulink>
+				(used by the "Linux Documentation Project" to build the PDF versions
+				of the HOWTOs) -- but most importantly:  <ulink 
+				url="http://www.cups.org/">&CUPS;</ulink> (the 'Common &UNIX; Printing
+				System').
+<!--
+				</para>
+				<para>
+-->
+				ESP finance themselves by selling a commercial version
+				of &CUPS;, called <ulink url="http://www.easysw.com/">ESP PrintPro,</ulink> 
+				that includes some professional enhancements.
+				</para>
+                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
+                                <glossseealso otherterm="gloss-espprintpro">ESP PrintPro</glossseealso>
+                                <glossseealso otherterm="gloss-esp">ESP</glossseealso>
+                                <glossseealso otherterm="gloss-gimpprint">Gimp-Print</glossseealso>
+                        </glossdef>
+                </glossentry>
+ 
+                <glossentry id="gloss-encryption">
+                        <glossterm>Encryption</glossterm>
+                        <glossdef><para>Encryption of confidential data is an all-important issue if
+				you transfer it over the Internet or even within intranets.
+<!--
+				</para>
+				<para>
+-->
+				Printing
+				via traditional protocols is not encrypted at all -- it is very easy
+				to tap and eavesdrop &eg; into &PostScript; or PCL data transfered
+				over the wire.
+<!--
+				</para>
+				<para>
+-->
+				Therefore, in the design of IPP, provision was made for the easy
+				plugin of encryption mechanisms (which can be provided by the same
+				means as the encryption standards for HTTP traffic: SSL and TLS).</para>
+                                <glossseealso otherterm="gloss-authentication">Authentication</glossseealso>
+                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
+                                <glossseealso otherterm="gloss-ipp">IPP</glossseealso>
+                                <glossseealso otherterm="gloss-ssl">SSL</glossseealso>
+                                <glossseealso otherterm="gloss-tls">TLS</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+                <glossentry id="gloss-epson">
+                        <glossterm><acronym>Epson</acronym></glossterm>
+                        <glossdef><para>Epson inkjets are among the best supported models by Free software
+				drivers, as the company was not necessarily as secretive about their
+				devices and handed technical specification documents to developers.
+				The excellent print quality achieved by Gimp-Print on the Stylus
+				series of printers can be attributed to this openness.
+<!--
+				</para>
+				<para>
+-->
+				They have also
+				contracted Easy Software Products to maintain an enhanced version
+				of Ghostscript ("ESP GhostScript") for improved support of their
+				printer portfolio.
+				</para>
+                                <glossseealso otherterm="gloss-ghostscript">ESP Ghostscript</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+                <glossentry id="gloss-escapesequence">
+                        <glossterm>Escape Sequences</glossterm>
+                        <glossdef><para>The first ever printers printed ASCII data only. To
+				initiate a new line, or eject a page, they included special
+				command sequences, often carrying a leading [ESC]-character.
+				&HP; evolved this concept through its series of PCL language
+				editions until today, having now developed a full-blown
+				Page Description Language (PDL) from these humble beginnings.
+				</para>
+                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
+                                <glossseealso otherterm="gloss-pdl">PDL</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-escp">
+                        <glossterm><acronym>ESC/P</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>E</emphasis>pson
+				<emphasis>S</emphasis>tandard <emphasis>C</emphasis>odes for
+				<emphasis>P</emphasis>rinters. Besides &PostScript; and PCL, Epson's ESC/P
+				printer language is one of the best known.</para>
+                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
+                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
+                                <glossseealso otherterm="gloss-hpgl">hpgl</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-esp">
+                        <glossterm><acronym>ESP</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>E</emphasis>asy
+				<emphasis>S</emphasis>oftware <emphasis>P</emphasis>roducts;
+				the company that developed &CUPS; (the "Common &UNIX; Printing System").
+				</para>
+                                <glossseealso otherterm="gloss-easysoftwareproducts">Easy Software Products</glossseealso>
+                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
+                                <glossseealso otherterm="gloss-espprintpro">ESP PrintPro</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+                <glossentry id="gloss-espghostscript">
+                        <glossterm><acronym>ESP</acronym> Ghostscript</glossterm>
+                        <glossdef><para>A Ghostscript version that is maintained by Easy Software
+				Products. It includes pre-compiled Gimp-Print drivers for
+				many inkjets (plus some other goodies). ESP Ghostscript
+				will produce photographic quality prints in many cases, especially
+				with the Epson Stylus model series. ESP Ghostscript is GPL-software.
+				</para>
+                                <glossseealso otherterm="gloss-easysoftwareproducts">Easy Software Products</glossseealso>
+                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
+                                <glossseealso otherterm="gloss-espprintpro">ESP PrintPro</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-espprintpro">
+                        <glossterm><acronym>ESP</acronym> PrintPro</glossterm>
+                        <glossdef><para> This professional enhancement to &CUPS; (the "Common &UNIX; 
+				Printing System") is sold by the developers 
+				of &CUPS; complete with more than 2,300 printer drivers for several commercial
+				&UNIX; platforms. <ulink url="http://www.easysw.com/printpro/">ESP PrintPro</ulink>
+				is supposed to work "out of the box" with little or no configuration
+				for users or admins. ESP also sell support contracts for
+				&CUPS; and PrintPro. These sales help to feed the programmers who
+				develop the Free version of &CUPS;.
+			</para>
+                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+               <glossentry id="gloss-filter">
+                        <glossterm>Filter</glossterm>
+                        <glossdef><para>Filters, in general, are programs that take some input
+				data, work on it and pass it on as their output data. Filters
+				may or may not change the data.
+<!--
+				</para>
+				<para>
+-->
+				Filters in the context of printing, are programs that convert
+				a given file (destined for printing, but not suitable in the
+				format it is presently) into a printable format. Sometimes
+				whole "filter chains" have to be constructed to achieve the
+				goal, piping the output of one filter as the input to the next.
+				</para>
+                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
+                                <glossseealso otherterm="gloss-rip">RIP</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-foomatic">
+                        <glossterm>Foomatic</glossterm>
+                        <glossdef><para>Foomatic started out as the wrapper name for a set of
+				different tools available from <ulink
+				url="http://www.linuxprinting.org/">Linuxprinting.org</ulink>
+				These tools aimed to make the usage of traditional
+				Ghostscript and other print filters easier for users and
+				extend the filters' capabilities by adding more command line
+				switches or explain the driver's execution data.
+<!--
+				</para>
+				<para>
+-->
+				Foomatic's different incarnations are &CUPS;-O-Matic, PPD-O-Matic,
+				PDQ-O-Matic, LPD-O-Matic, PPR-O-Matic, MF-O-Matic and 
+				Direct-O-Matic. All of these allow the generation
+				of appropriate printer configuration files online, by simply
+				selection the suitable model and suggested (or alternate) driver
+				for that machine.
+<!--
+				</para>
+				<para>
+-->
+				More recently, Foomatic gravitated towards becoming a "meta-spooling"
+				system, that allows configuration of the underlying print subsystem
+				through a unified set of commands (however, this is much more
+				complicated than KDEPrint's &GUI; interface, which performs a similar
+				task with regards to different print subsystems). </para>
+                                <glossseealso otherterm="gloss-cups-o-matic">&CUPS;-O-Matic</glossseealso>
+                                <glossseealso otherterm="gloss-PPD-O-Matic">PPD-O-Matic</glossseealso>
+                                <glossseealso otherterm="gloss-cupsomatic">cupsomatic</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+               <glossentry id="gloss-ghostscript">
+                        <glossterm>Ghostscript</glossterm>
+                        <glossdef><para>Ghostscript is a &PostScript; Raster Image Processor (RIP) in software, originally
+				developed by L. Peter Deutsch. There is always a <acronym>GPL</acronym> version
+				of Ghostscript available for free usage and distribution
+				(mostly 1 year old) while
+				the current version is commercially sold under another license.
+<!--
+				</para>
+				<para>
+-->
+				Ghostscript is widely used inside the Linux and &UNIX; world
+				for transforming &PostScript; into raster data suitable
+				for sending to non-&PostScript; devices.</para>
+                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
+                                <glossseealso otherterm="gloss-rip">RIP</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-gimpprint">
+                        <glossterm>Gimp-Print</glossterm>
+                        <glossdef><para>Contrary to its name, Gimp-Print is no longer
+				just the plugin to be used for printing from the popular
+				Gimp program -- its codebase can also serve to be compiled
+				into...
+				<!--
+				</para>
+				<para>
+-->
+				*...a set of PPDs and associated filters that integrate seamlessly
+				into &CUPS;, supporting around 130 different printer models, providing
+				photographic output quality in many cases;
+<!--
+				</para>
+				<para>
+-->
+
+				*...a Ghostscript filter that can be used with any other
+				program that needs a software-RIP;
+<!--
+				</para>
+				<para>
+-->
+
+				*...a library that can be used by other software applications
+				in need of rasterization functions.
+
+
+<!--
+after 4 hours fiddling, I
+could not get those s!@*#?
+<itemizedlist> to pass
+through the meinproc checks.
+For the time being I gave up
+on it and handle it differently
+now.
+				<itemizedlist>
+				<listitem>...a set of PPDs and associated filters that integrate seamlessly
+				into &CUPS;, supporting around 130 different printer models, providing
+				photografic output quality in many cases;</listitem>
+				<listitem>...a Ghostscript filter that can be used with any other
+				program that needs a software-RIP;</listitem>
+				<listitem>...a library that can be used by other software applications
+				in need of rasterization functions.</listitem>
+				</itemizedlist>
+-->
+				</para>
+                                <glossseealso otherterm="gloss-lexmark">Lexmark Drivers</glossseealso>
+                                <glossseealso otherterm="gloss-rip">RIP</glossseealso>
+                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-hp">
+                        <glossterm><acronym>&HP;</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>H</emphasis>ewlett-<emphasis>Packard</emphasis>;
+				one of the first companies to distribute their own Linux printer
+				drivers. -- More recently, the Company has released their
+				"HPIJS" package of drivers, including source code and a Free license. 
+				This is the first printer manufacturer to do so. HPIJS supports most
+				current models of HP Ink- and DeskJets.
+				</para>
+                        </glossdef>
+                </glossentry>
+
+
+                <glossentry id="gloss-hpgl">
+                        <glossterm><acronym>&HP;/GL</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>&HP;</emphasis>
+				<emphasis>G</emphasis>raphical <emphasis>L</emphasis>anguage;
+				a &HP; printer language mainly used for plotters; many CAD
+				(Computer Aided Design) software programs output &HP;/GL files for
+				printing.</para>
+                                <glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
+                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
+                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-hpjetdirectprotocol">
+                        <glossterm>&HP; JetDirect Protocol</glossterm>
+                        <glossdef><para>A term branded by &HP; to describe their implementation
+				of print data transfer to the printer via an otherwise "AppSocket" or
+				"Direct TCP/IP Printing" named protocol.</para>
+                                <glossseealso otherterm="gloss-appsocketprotocol">AppSocket Protocol</glossseealso>
+                                <glossseealso otherterm="gloss-directtcpipprinting">Direct TCP/IP Printing</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+		<glossentry id="gloss-ietf">
+                        <glossterm><acronym>IETF</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>I</emphasis>nternet
+				<emphasis>E</emphasis>ngineering <emphasis>T</emphasis>ask
+				<emphasis>F</emphasis>orce; an assembly of Internet, software
+				and hardware experts that discuss
+				new networking technologies and very often arrive at
+				conclusions that are regarded by many as standards. "TCP/IP"
+				is the most famous example.
+<!--
+				</para>
+				<para>
+-->
+
+				IETF standards, as well as
+				drafts, discussions, ideas and useful tutorials, are
+				put in writing in the famous series of "RFCs", which
+				are available to the public and included in most Linux and
+				BSD distributions.</para>
+                                <glossseealso otherterm="gloss-ipp">IPP</glossseealso>
+                                <glossseealso otherterm="gloss-pwg">PWG</glossseealso>
+                                <glossseealso otherterm="gloss-rfc">RFC</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-ipp">
+                        <glossterm><acronym>IPP</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>I</emphasis>nternet
+				<emphasis>P</emphasis>rinting <emphasis>P</emphasis>rotocol;
+				defined in a series of RFCs accepted by the IETF with
+				status "proposed standard"; was designed
+				by the PWG. -- IPP is a completely new design for network printing,
+				but it utilizes a very well-known and proven method for the
+				actual data transfer: HTTP 1.1! By not "re-inventing the wheel",
+				and basing itself on an existing and robust Internet standard,
+				IPP is able to relatively easily bolt other HTTP-compatible standard
+				mechanisms into its framework:
+<!--
+				</para>
+				<para>
+-->
+					* Basic, Digest or Certificate authentication
+					mechanisms;
+<!--
+				</para>
+				<para>
+-->
+					* SSL or TLS for encryption of transferred
+					data;
+<!--
+				</para>
+				<para>
+-->
+					* LDAP for directory services (to publish
+					data on printers, device-options, drivers, costs or
+					also to the network; or to check for passwords while
+					performing authentication).
+<!--
+				</para>
+				<para>
+-->
+
+<!--
+				</para>
+				<itemizedlist>
+					<listitem>Basic, Digest or Certificate authentication
+					mechanisms</listitem>
+					<listitem>SSL or TLS for encryption of transferred
+					data</listitem>
+					<listitem>LDAP for directory services (to publish
+					data on printers, device-options, drivers, costs or
+					elso to the network; or to check for passwords while
+					conducting authentication)</listitem>
+				</itemizedlist>
+-->
+				</para>
+
+                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
+                                <glossseealso otherterm="gloss-pwg">PWG</glossseealso>
+                                <glossseealso otherterm="gloss-ietf">IETF</glossseealso>
+                                <glossseealso otherterm="gloss-rfc">RFC</glossseealso>
+                                <glossseealso otherterm="gloss-tls">TLS</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-tdeprint">
+                        <glossterm><acronym>KDEPrint</acronym></glossterm>
+                        <glossdef><para>The new printing functionality of &kde; since version 2.2
+				consists of several modules that translate the features and settings
+				of different available print subsystems (&CUPS;, BSD-style LPR/LPD, RLPR...)
+				into nice &kde; desktop &GUI; windows and dialogs to ease their
+				usage.
+<!--
+				</para>
+				<para>
+-->
+				Most important for day-to-day usage is "kprinter", the new
+				&GUI; print command. -- Note: KDEPrint does <emphasis>not</emphasis> implement its own
+				spooling mechanism or its own &PostScript; processing; for this it
+				relies on the selected <emphasis>print subsystem</emphasis>
+				-- however it does add some functionality of its own on top of this
+				foundation...
+				</para>
+                                <glossseealso otherterm="gloss-bsdstyleprinting">BSD-style printing</glossseealso>
+                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
+                                <glossseealso otherterm="gloss-kprinter">kprinter</glossseealso>
+                                <glossseealso otherterm="gloss-tdeprinthandbook">KDEPrint Handbook</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+                <glossentry id="gloss-tdeprinthandbook">
+                        <glossterm><acronym>KDEPrint Handbook...</acronym></glossterm>
+                        <glossdef><para>...is the name of the reference document that describes KDEPrint
+				functions to users and administrators. You can load it into Konqueror by
+				typing "help:/tdeprint" into the address field. The <ulink
+				url="http://printing.kde.org/">KDEPrint website</ulink>
+				is the resource for updates to this documentation, as well as PDF
+				versions suitable for printing it. It is authored and maintained by Kurt 
+				Pfeifle.
+				</para>
+                                <glossseealso otherterm="gloss-cupsfaq">&CUPS;-FAQ</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-kprinter">
+                        <glossterm>kprinter</glossterm>
+                        <glossdef><para><emphasis>kprinter</emphasis> is the new powerful
+				print utility that is natively used by all &kde; applications.
+<!--
+				</para>
+				<para>
+-->
+				Contrary to some common misconceptions,
+				<emphasis>kprinter</emphasis> is <emphasis>not</emphasis> a &CUPS;-only tool,
+				but supports different print subsystems. You can even switch
+				to a different print subsystem "on the fly", in between two jobs,
+				without re-configuration. Of course, due to the powerful
+				features of &CUPS;, <emphasis>kprinter</emphasis> is
+				best suited for use with a &CUPS; frontend.
+<!--
+				</para>
+				<para>
+-->
+				<emphasis>kprinter</emphasis> is the successor
+				to "qtcups", which is no longer being actively maintained. It has
+				inherited all the best features of qtcups and added several new ones.
+<!--
+				</para>
+				<para>
+-->
+
+				MOST IMPORTANT: you can use <emphasis>kprinter</emphasis>
+				with all its features in all non-&kde; applications that allow
+				a customized print command, like gv, Acrobat Reader, Netscape,
+				Mozilla, Galeon, StarOffice, OpenOffice and all GNOME programs.
+<!--
+				</para>
+				<para>
+-->
+				<emphasis>kprinter</emphasis> can act as a "standalone"
+				utility, started from an X-Terminal or a "Mini-CLI" to
+				print many different files, from different folders, with different 
+				formats, in one job and simultaneously, without the need to first open the
+				files in the applications! (File formats supported this way are &PostScript;,
+				PDF, International and ASCII Text, as well as many different popular graphic
+				formats, such as PNG, TIFF, JPEG, PNM, Sun RASTER, &etc;)
+				 </para>
+                                <glossseealso otherterm="gloss-qtcups">QtCUPS</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-lexmark">
+                        <glossterm><acronym>Lexmark</acronym></glossterm>
+                        <glossdef><para>was one of the first companies to distribute their own Linux printer
+				drivers for some of their models. However, those drivers are binary only
+				(no source code available), and therefore cannot be used to integrate into
+				other Free printing software projects.  
+				 </para>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-linuxprintingorg">
+                        <glossterm>Linuxprinting.org</glossterm>
+                        <glossdef><para>Linuxprinting.org = not just for Linux; all &UNIX;-like OS-es,
+				like *BSD and commercial Unices may find useful printing
+				information on this site. This web site is the home for the interesting 
+				Foomatic project, that strives to develop the "Meta Print Spool and Driver
+  				Configuration Toolset" (being able to configure, through one common
+				interface, different print subsystems and their required drivers) with the
+				ability to transfer all queues, printers and configuration files seamlessly
+				to another spooler without new configuration effort. -- Also, they maintain
+				the Printing Database; a collection of driver and device information that
+				enables everybody to find the most current information about printer models,
+				and also generate online the configuration files for any
+				spooler/driver/device combo known to work with one of the common Linux or
+				&UNIX; print subsystems.	
+				</para>
+                                <glossseealso otherterm="gloss-linuxprintingdatabase">Linuxprinting database</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+                <glossentry id="gloss-linuxprintingdatabase">
+                        <glossterm><acronym>Linuxprinting.org Database</acronym></glossterm>
+                        <glossdef><para>....Database containing printers and drivers that are suitable
+				for them... ...a lot of information and documentation to be found... ...it 
+				is now also providing some tools and utilities for easing the integration 
+				of those drivers into a given system... ...the "Foomatic" family 
+				of utilities; being the toolset to make use of the database 
+				for most of the commonly used print subsystems, for generating "on the fly" 
+				working configurations for your printer model.
+				</para>
+                                <glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-lprlpd">
+                        <glossterm><acronym>LPR/LPD</acronym> printing</glossterm>
+                        <glossdef><para>LPR == some people translate <emphasis>L</emphasis>ine
+				<emphasis>P</emphasis>rinting <emphasis>R</emphasis>equest, others:
+				<emphasis>L</emphasis>ine <emphasis>P</emphasis>rinter
+				<emphasis>R</emphasis>emote.</para>
+                                <glossseealso otherterm="gloss-bsdstyleprinting">BSD-style printing</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-magicfilter">
+                        <glossterm>Magicfilter</glossterm>
+                        <glossdef><para>Similarly to the APSfilter program, Magicfilter
+				provides automatic file type recognition functions and, base
+				on that, automatic file conversion to a printable format,
+				depending on the target printer.</para>
+                                <glossseealso otherterm="gloss-apsfilter">APSfilter</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-mimetypes">
+                        <glossterm>&MIME;-Types</glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>M</emphasis>ultipurpose (or
+				Multimedia) <emphasis>I</emphasis>nternet <emphasis>M</emphasis>ail
+				<emphasis>E</emphasis>xtensions; &MIME;-Types were first used to allow
+				the transport of binary data (like mail attachments containing
+				graphics) over mail connections that were normally only transmitting
+				ASCII characters: the data had to be encoded into an ASCII representation.
+<!--
+				</para>
+				<para>
+-->
+				Later this concept was extended to describe a data format in
+				a platform independent, but at the same time non-ambiguous, way.
+				From &Windows; everybody knows the .doc extensions for &Microsoft; Word files.
+				This is handled ambiguously on the &Windows; platform: .doc extensions are also
+				used for simple text files or for Adobe Framemaker files. And if a real
+				Word file is renamed with a different extension, it can no longer be
+				opened by the program.
+<!--
+				</para>
+				<para>
+-->
+				&MIME; typed files carry a recognition string with them, describing
+				their file format based on <emphasis>main_category/sub_category</emphasis>.
+				Inside IPP, print files are also described using the &MIME; type scheme.
+				&MIME; types are registered with the IANA (Internet Assigning Numbers
+				<emphasis>Association</emphasis>) to keep them unambiguous.
+<!--
+				</para>
+				<para>
+-->
+				&CUPS; has some &MIME; types of its own registered, like
+				<emphasis>application/vnd.cups-raster</emphasis> (for the &CUPS;-internal
+				raster image format).
+
+				</para>
+                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
+                                <glossseealso otherterm="gloss-easysoftwareproducts">Easy Software Products</glossseealso>
+                                <glossseealso otherterm="gloss-espprintpro">ESP PrintPro</glossseealso>
+                                <glossseealso otherterm="gloss-gimpprint">Gimp-Print</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-pcl">
+                        <glossterm><acronym>PCL</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>P</emphasis>rinter
+				<emphasis>C</emphasis>ontrol <emphasis>L</emphasis>anguage;
+				developed by &HP;. PCL started off in version 1 as a simple
+				command set for ASCII printing; now,
+				in its versions PCL6 and PCL-X, it is capable of printing graphics
+				and color -- but outside the &Microsoft; &Windows; realm and &HP-UX; 
+				(&HP;'s own brand of &UNIX;), it is not commonly used...</para>
+                                <glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
+                                <glossseealso otherterm="gloss-hpgl">&HP;/GL</glossseealso>
+                                <glossseealso otherterm="gloss-pdl">PDL</glossseealso>
+                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-pdl">
+                        <glossterm><acronym>PDL</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>P</emphasis>age
+				<emphasis>D</emphasis>escription <emphasis>L</emphasis>anguage;
+				PDLs describe, in an abstract way, the graphical representation
+				of a page. - Before it is actually transferred into
+				toner or ink laid down on to paper, a PDL needs to be
+				"interpreted" first. In &UNIX;, the most important PDL
+				is &PostScript;.
+				</para>
+				<glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
+                                <glossseealso otherterm="gloss-hpgl">&HP;/GL</glossseealso>
+                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
+                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-pixel">
+                        <glossterm>Pixel</glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>Pic</emphasis>ture
+				<emphasis>El</emphasis>ement; this term describes the smallest
+				part of a raster picture (either as printed on paper
+				or as displayed on a monitor by cathode rays or LCD elements). As
+				any graphical or image representation on those types of output
+				devices is composed of pixels, the values of "ppi" (pixel per inch)
+				and &dpi; (dots per inch) are one important parameter for the
+				overall quality and resolution of an image.</para>
+                                <glossseealso otherterm="gloss-filter">Filter</glossseealso>
+                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
+                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
+                                <glossseealso otherterm="gloss-raster">Raster</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-pjl">
+                        <glossterm><acronym>PJL</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>P</emphasis>rint
+				<emphasis>J</emphasis>ob <emphasis>L</emphasis>anguage;
+				developed by &HP; to control and influence default and per-job
+				settings of a printer. It may not only be used
+				for &HP;'s own (PCL-)printers; also many &PostScript;
+				and other printers understand PJL commands sent to them
+				inside a print job, or in a separate signal.</para>
+                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-postscript">
+                        <glossterm>&PostScript;</glossterm>
+                        <glossdef><para>&PostScript; (often shortened to "PS") is the de-facto
+				standard in the &UNIX; world for printing files. It was
+				developed by Adobe and licensed to printer manufacturers 
+				and software companies.
+<!--
+				</para>
+				<para>
+-->
+				As the &PostScript; specifications were
+				published by Adobe, there are also "Third Party" implementations
+				of &PostScript; generating and &PostScript; interpreting software
+				available (one of the best-known in the Free software world
+				being Ghostscript, a powerful PS-interpreter).
+                                </para>
+                                <glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
+                                <glossseealso otherterm="gloss-hpgl">&HP;/GL</glossseealso>
+                                <glossseealso otherterm="gloss-pcl">PCL</glossseealso>
+                                <glossseealso otherterm="gloss-ppd">PPD</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-ppd">
+                        <glossterm><acronym>PPD</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>P</emphasis>ostScript
+				<emphasis>P</emphasis>rinter <emphasis>D</emphasis>escription;
+				PPDs are ASCII files storing all information about the special
+				capabilities of a printer, plus definitions of the (PostScript-
+				or PJL-) commands to call on a certain capability (like print
+				duplexing).
+<!--
+				</para>
+				<para>
+-->
+
+				As the explanation of the acronym reveals, PPDs were originally
+				only used for &PostScript; printers. &CUPS; has extended the
+				PPD concept to all types of printers.
+<!--
+				</para>
+				<para>
+-->
+
+				PPDs for &PostScript; printers are provided by the printer
+				vendors. They can be used with &CUPS; and KDEPrint to have access
+				to the full features of any &PostScript; printer. The KDEPrint Team
+				recommends using a PPD originally intended for use with
+				&Microsoft; Windows NT.
+<!--
+				</para>
+				<para>
+-->
+
+				PPDs for non-PostScript printers <emphasis>need</emphasis> a
+				companion "filter" to process the &PostScript; print files into
+				a format digestible for the non-PostScript target device. Those
+				PPD/filter combos are not (yet) available from the vendors. After
+				the initiative by the &CUPS; developers to utilize PPDs, the Free
+				Software community was creative enough to quickly come up with
+				support for most of the currently used printer models, through
+				PPDs and classical Ghostscript filters. But note: the printout
+				quality varies from "hi-quality photographic output" (using
+				Gimp-Print with most Epson inkjets) to "hardly readable" (using
+				Foomatic-enabled Ghostscript filters for models rated as
+				"paperweight" in the Linuxprinting.org database).
+                                </para>
+                                <glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
+                                <glossseealso otherterm="gloss-linuxprintingorg">Linuxprinting.org</glossseealso>
+                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-PPD-O-Matic">
+                        <glossterm>PPD-O-Matic</glossterm>
+                        <glossdef><para>PPD-O-Matic is a set of Perl scripts that run on the Linuxprinting.org
+				web server and can be used online to generate PPDs for any printer that is known
+				to print with Ghostscript.
+<!--
+				</para>
+				<para>
+-->
+
+				These PPDs can be hooked up to &CUPS;/KDEPrint, as well as
+				used inside PPD-aware applications like StarOffice to determine all different 
+				parameters of your printjobs. It is now recommended, in most cases, to 
+				use "PPD-O-Matic" instead of the older &CUPS;-O-Matic.
+<!--
+				</para>
+				<para>
+-->
+
+				To generate a PPD, go to the <ulink
+				url="http://www.linuxprinting.org/printer_list.cgi">printer 
+				database</ulink>, select your printer model, follow
+				the link to show the available Ghostscript filters for that printer, select
+				one, click "generate" and finally save the file to your local system.
+				Be sure to read the instructions. Make sure that your local system
+				does indeed have Ghostscript and the filter, which you chose
+				before generating the PPD, installed.
+				</para>
+				<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
+                                <glossseealso otherterm="gloss-cups-o-matic">&CUPS;-O-Matic</glossseealso>
+                                <glossseealso otherterm="gloss-linuxprintingorg">Linuxprinting.org</glossseealso>
+                                <glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-printcap">
+                        <glossterm>printcap</glossterm>
+                        <glossdef><para>In BSD-style print systems, the "printcap" file holds
+				the configuration information; the printing daemon reads this file
+				to determine which printers are available, what filters are to be
+				user for each, where the spooling folder is located,
+				if there are banner pages to be used, and so on...
+				Some applications also depend on read access to the printcap 
+				file, to obtain the names of available printers. </para>
+                                <glossseealso otherterm="gloss-bsdstyleprinting">BSD-style printing</glossseealso>
+                        </glossdef>
+                </glossentry>
+  
+
+                <glossentry id="gloss-printermib">
+                        <glossterm>Printer-<acronym>MIB</acronym></glossterm>
+                        <glossdef><para>Abbreviation for
+				<emphasis>Printer</emphasis>-<emphasis>M</emphasis>anagement
+				<emphasis>I</emphasis>nformation <emphasis>B</emphasis>ase; the
+				Printer-MIB defines a set of parameters that are to be
+				stored inside the printer for access
+				through the network. This is useful if many (in some cases, literally 
+				thousands) network printers are managed centrally
+				with the help of SNMP (Simple Network Management Protocol).</para>
+                                <glossseealso otherterm="gloss-pwg">PWG</glossseealso>
+                                <glossseealso otherterm="gloss-snmp">SNMP</glossseealso>
+                        </glossdef>
+                </glossentry>
+  
+                <glossentry id="gloss-pwg">
+                        <glossterm><acronym>PWG</acronym></glossterm>
+                        <glossdef><para>Abbreviation for
+				<emphasis>P</emphasis>rinter <emphasis>W</emphasis>orking
+				<emphasis>G</emphasis>roup; the PWG is a loose grouping of
+				representatives of the printer industry that has, in the past
+				years, developed different standards
+				in relation to network printing. These were later accepted by the
+				IETF as RFC standards, like the "Printer-MIB" and the IPP.</para>
+				<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
+                                <glossseealso otherterm="gloss-ipp">IPP</glossseealso>
+                                <glossseealso otherterm="gloss-printermib">Printer-MIB</glossseealso>
+                                <glossseealso otherterm="gloss-snmp">SNMP</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-printkioslave">
+                        <glossterm>print:/ KIO Slave</glossterm>
+                        <glossdef><para>You can use a syntax of "print:/..." to get quick access
+				to KDEPrint resources. Typing "print:/manager" as a Konqueror URL
+				address gives administrative access to KDEPrint. Konqueror uses &kde;'s
+				famous "KParts" technology to achieve that. </para>
+                                <glossseealso otherterm="gloss-ioslave">IO Slave</glossseealso>
+                                <glossseealso otherterm="gloss-kparts">KParts</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+                <glossentry id="gloss-printerdatabase">
+                        <glossterm>Printer Database</glossterm>
+                        <glossdef><para>.</para>
+                                <glossseealso otherterm="gloss-linuxprintingdatabase">Linuxprinting Database</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-qtcups">
+                        <glossterm><acronym>Qt&CUPS;</acronym></glossterm>
+                        <glossdef><para>Qt&CUPS; and KUPS were the predecessors of KDEPrint; they are now 
+				deprecated and no longer maintained. What was good in qtcups is all inherited
+				by "kprinter", the new KDE print dialog (which is much improved over qtcups);
+				what you liked about kups is now all in the KDEPrint Manager (accessible 
+				via the KDE Control Center or via the URL "print:/manager" from Konqueror) --
+				with more functionality and less bugs... Its former developer, Michael Goffioul, is now
+				the developer of KDEPrint -- a very nice and productive guy and quick bug fixer...
+				 </para>
+                                <glossseealso otherterm="gloss-kprinter">kprinter</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-raster">
+                        <glossterm>Raster Image</glossterm>
+                        <glossdef><para>Every picture on a physical medium
+				is composed of a pattern of discrete dots in different colors and (maybe)
+				sizes. This is called a "raster image".
+<!--
+				</para>
+				<para>
+-->
+
+				This is as opposed to a "vector image"
+				where the graphic is described in terms of continuous curves, shades,
+				forms and filled areas, represented by mathematical formula. Vector images
+				normally have a smaller file size and may be scaled in size 
+				without any loss of information and quality --- but they cannot be
+				output directly, but always have to be "rendered" or "rasterized"
+				first to the given resolution that the output device is capable of...
+<!--
+				</para>
+				<para>
+-->
+
+
+				The rasterization is done by a Raster Image Processor (RIP,
+				often the Ghostscript software) or some other filtering
+				instance.</para>
+                                <glossseealso otherterm="gloss-pixel">Pixel</glossseealso>
+                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
+                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
+                                <glossseealso otherterm="gloss-filter">Filter</glossseealso>
+                                <glossseealso otherterm="gloss-rip">RIP</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-rip">
+                        <glossterm><acronym>RIP</acronym></glossterm>
+                        <glossdef><para>Abbreviation for
+				<emphasis>R</emphasis>aster <emphasis>I</emphasis>mage
+				<emphasis>P</emphasis>rocess(or); if used in the context of
+				printing, "RIP" means a hardware or software
+				instance that converts &PostScript; (or other print formats
+				that are represented in one of the non-Raster PDLs) into a
+				raster image format in such a way that it is acceptable
+				for the "marking engine" of the printer.
+<!--
+				</para>
+				<para>
+-->
+
+				&PostScript; printers
+				contain their own PostScript-RIPs. A RIP may or may not be located 
+				inside a printer.
+<!--
+				</para>
+				<para>
+-->
+
+				For many &UNIX; systems, Ghostscript is the package that provides
+				a "RIP in software", running on the host computer, and pre-digesting
+				the &PostScript; or other data to become ready to be sent to the
+				printing device (hence you may perceive a "grain of truth" in the
+				slogan "Ghostscript turns your printer into a &PostScript;
+				machine", which of course is not correct in the true sense of the
+				meaning).</para>
+                                <glossseealso otherterm="gloss-filter">Filter</glossseealso>
+                                <glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
+                                <glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
+                                <glossseealso otherterm="gloss-pdl">PDL</glossseealso>
+                                <glossseealso otherterm="gloss-raster">Raster</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+                <glossentry id="gloss-rlpr">
+                        <glossterm><acronym>RLPR</acronym> (Remote LPR)</glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>R</emphasis>emote
+				<emphasis>L</emphasis>ine <emphasis>P</emphasis>rinting
+				<emphasis>R</emphasis>equest; this is a BSD-style printing system,
+				that needs no root privileges to be installed, and no "printcap" to
+				work: all parameters may be specified on the command
+				line.
+<!--
+				</para>
+				<para>
+-->
+
+				RLPR comes in handy for many laptop users who are
+				working in frequently changing environments. This is because it
+				may be installed concurrently with every other printing
+				sub system, and allows a very flexible and quick
+				way to install a printer for direct access via LPR/LPD.
+<!--
+				</para>
+				<para>
+-->
+
+				KDEPrint
+				has an "Add Printer Wizard" to make RLPR usage even easier.
+				The kprinter command allows switching to RLPR "on
+				the fly" at any time.</para>
+                                <glossseealso otherterm="gloss-tdeprint">KDEPrint</glossseealso>
+                                <glossseealso otherterm="gloss-kprinter">kprinter</glossseealso>
+                                <glossseealso otherterm="gloss-printcap">printcap</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+ 
+                <glossentry id="gloss-snmp">
+                        <glossterm><acronym>SNMP</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>S</emphasis>imple
+				<emphasis>N</emphasis>etwork <emphasis>M</emphasis>anagement
+				<emphasis>P</emphasis>rotocol; SNMP is widely used to control
+				all types of network node (Hosts, Routers, Switches, Gateways,
+				Printers...) remotely.</para>
+                                <glossseealso otherterm="gloss-pwg">PWG</glossseealso>
+                                <glossseealso otherterm="gloss-printermib">Printer-MIB</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+	        <glossentry id="gloss-ssl">
+                        <glossterm><acronym>SSL(3)</acronym> encryption</glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>S</emphasis>ecure
+				<emphasis>S</emphasis>ocket <emphasis>L</emphasis>ayer;
+				<acronym>SSL</acronym> is a proprietary encryption method for data
+				transfer over HTTP that was developed by Netscape. It is now being 
+				replaced by an IETF standard named TLS.
+				</para>
+                                <glossseealso otherterm="gloss-tls"><acronym>TLS</acronym></glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+	        <glossentry id="gloss-spooling">
+                        <glossterm><acronym>SPOOL</acronym>ing</glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>S</emphasis>ynchronous
+				<emphasis>P</emphasis>eripheral <emphasis>O</emphasis>perations
+				<emphasis>O</emphasis>n<emphasis>L</emphasis>ine;
+				<acronym>SPOOL</acronym>ing enables printing applications
+				(and users) to continue their work
+                                as the job is being taken care of by a system <acronym>daemon</acronym>,
+				which stores the file at a temporary location until the printer is ready
+				to print. </para>
+                                <glossseealso otherterm="gloss-daemon"><acronym>Daemon</acronym></glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+	        <glossentry id="gloss-tls">
+                        <glossterm><acronym>TLS</acronym> encryption</glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>T</emphasis>ransport
+				<emphasis>L</emphasis>ayer <emphasis>S</emphasis>ecurity;
+				<acronym>TLS</acronym> is an encryption standard for
+				data transfered over HTTP 1.1; it is defined in RFC 2246;
+				although based on the former SSL development
+				(from Netscape) it is not fully compatible with it.
+				</para>
+                                <glossseealso otherterm="gloss-ssl"><acronym>SSL(3)</acronym></glossseealso>
+                        </glossdef>
+                </glossentry>
+
+
+	        <glossentry id="gloss-systemVstyleprinting">
+                        <glossterm>System V-style printing</glossterm>
+                        <glossdef><para>This is the second flavor of traditional &UNIX;
+				printing (as opposed to BSD-style printing). It uses
+				a different command set (lp, lpadmin,...) to BSD,
+				but is not fundamentally different from it. However, the 
+				gap between the two is big enough to make the two
+				incompatible, so that a BSD-client cannot simply print
+				to a System V style print server without additional
+				tweaking... IPP is supposed to resolve this weakness
+				and more.
+				</para>
+                                <glossseealso otherterm="gloss-bsdstyleprinting"><acronym>BSD-style printing</acronym></glossseealso>
+                                <glossseealso otherterm="gloss-ipp"><acronym>IPP</acronym></glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-turboprint">
+                        <glossterm>TurboPrint</glossterm>
+                        <glossdef><para>Shareware software providing photo quality printing for many
+				inkjet printers. It is useful if you are unable to find a driver for your
+				printer and may be hooked into either a traditional Ghostscript system
+				or a modern &CUPS; system.</para>
+                                <glossseealso otherterm="gloss-gimpprint">Gimp-Print</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-xpp">
+                        <glossterm><acronym>XPP</acronym></glossterm>
+                        <glossdef><para>Abbreviation for <emphasis>X</emphasis>
+				<emphasis>P</emphasis>rinting <emphasis>P</emphasis>anel;
+				<acronym>XPP</acronym> was the first Free
+				graphical print command for &CUPS;, written by Till Kamppeter,
+				and in some ways a model for the "kprinter" utility in &kde;.</para>
+                        </glossdef>
+                </glossentry>
+<!--
+                <glossentry id="gloss-1">
+                        <glossterm>xxxx</glossterm>
+                        <glossdef><para>.</para>
+                                <glossseealso otherterm="gloss-1">xyz</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-3">
+                        <glossterm>xxxx</glossterm>
+                        <glossdef><para>.</para>
+                                <glossseealso otherterm="gloss-1">xyz</glossseealso>
+                        </glossdef>
+                </glossentry>
+
+                <glossentry id="gloss-4">
+                        <glossterm>xxxx</glossterm>
+                        <glossdef><para>.</para>
+                                <glossseealso otherterm="gloss-1">xyz</glossseealso>
+                        </glossdef>
+                </glossentry>
+-->
+	</glossdiv>
+
+
+<!--
+</glossary>
+-->
diff --git a/doc/kdeprint/CMakeLists.txt b/doc/kdeprint/CMakeLists.txt
deleted file mode 100644
index 3a1f95d9e..000000000
--- a/doc/kdeprint/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-tde_create_handbook( DESTINATION tdeprint )
diff --git a/doc/kdeprint/Makefile.am b/doc/kdeprint/Makefile.am
deleted file mode 100644
index e786da562..000000000
--- a/doc/kdeprint/Makefile.am
+++ /dev/null
@@ -1,3 +0,0 @@
-
-KDE_LANG = en
-KDE_DOCS = AUTO
diff --git a/doc/kdeprint/add-printer-wiz.docbook b/doc/kdeprint/add-printer-wiz.docbook
deleted file mode 100644
index 28d5791d2..000000000
--- a/doc/kdeprint/add-printer-wiz.docbook
+++ /dev/null
@@ -1,290 +0,0 @@
-<chapter id="add-printer-wizard-2">
-<title>The <quote>Add Printer Wizard</quote> for &CUPS;</title>
-
-<para>Clicking on the leftmost icon on the toolbar
-<inlinemediaobject><imageobject> <imagedata
-fileref="cr32-action-wizard.png" format="PNG"/></imageobject>
-</inlinemediaobject> in the upper part of the window starts the
-<quote>Add Printer Wizard</quote>.</para>
-
-<para>This wizard steps you through various screens to install a new
-printer. At present this Wizard works for &CUPS; and the
-<acronym>RLPR</acronym> environment module. The number of steps depend
-on the actual print-subsystem which is active and available to you on
-your box.</para>
-
-<sect1>
-<title>Starting</title>
-
-<para>The welcome screen informs you that you can go back any time to
-change a setting. </para>
-
-<screenshot>
-<screeninfo>The &tdeprint; wizard introduction screen</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsaddprinterwizard1.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>The introduction screen of the printer wizard</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-</sect1>
-<sect1 id="backend-selection">
-<title>Backend Selection</title>
-
-<para>Choose the <quote>backend</quote> protocol that &CUPS; is supposed to
-use with your new printer. There are:</para>
-
-<itemizedlist>
-<listitem>
-<para>local printer (serial, parallel, <acronym>USB</acronym>)</para>
-</listitem>
-<listitem>
-<para>remote <acronym>LPD</acronym> queue</para>
-</listitem>
-<listitem>
-<para><acronym>SMB</acronym> shared printer (&Windows;)</para>
-</listitem>
-<listitem>
-<para>Network Printer (<acronym>TCP</acronym>, &HP; JetDirect,
-AppSocket)</para>
-</listitem>
-<listitem>
-<para>Network printer with &IPP; (&IPP;/<acronym>HTTP</acronym>)</para>
-</listitem>
-<listitem>
-<para>File printer</para>
-</listitem>
-<listitem>
-<para>serial fax /modem printer</para>
-</listitem>
-<listitem>
-<para>Class of Printers</para>
-</listitem>
-</itemizedlist>
-
-<para>If some choices are grayed out, they are not available.  For
-example, you may have no FAX backend software or no modem installed to
-use it.</para>
-
-<screenshot>
-<screeninfo>Choosing your Printer system</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsaddprinterwizard2_backendselection.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Choosing your Printer System</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-</sect1>
-
-<sect1 id="direct-network-settings">
-<title>Direct Network Setting</title>
-
-<para>The contents of your next screen is dependent on your choice in
-the previous screen. If you know the details, just type them in to
-configure your network settings directly.</para>
-
-<para>In other cases the wizard can scan the network for you, to help you
-decide which setting could be useful. </para>
-
-<screenshot>
-<screeninfo>&tdeprint; wizard network scan</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsaddprinterwizard3_networkscan.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>In the &tdeprint; wizard, you can enter network details
-directly, or you can scan the network
-automatically.</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-</sect1>
-<sect1 id="information-retrieval-by-network-scanning">
-<title>Information Retrieval by Scanning the Network</title>
-
-<para>If you use one of the network connections (remote
-<acronym>LPD</acronym>, <acronym>SMB</acronym>, remote &CUPS;, network
-printer with &IPP;), you have an option for scanning the network. Be careful
-when applying this; in some environments network scanning is considered
-to be hostile and harmful!</para>
-
-<para>In the case of <acronym>SMB</acronym>, &tdeprint; will use the
-Samba utilities <command>nmblookup</command> and
-<command>smbclient</command> (which need to be installed for this to
-work) to retrieve the information it presents in a tree
-structure.</para>
-
-<para>In the case of &IPP; (Port 631) and <acronym>TCP</acronym>
-Network/AppSocket (Port 9100) &tdeprint; will try to open the port and,
-if successful, send an <command>ipp-get-printer-attribute</command>
-request to the printer. For newer &HP; printers the latter usually
-works, because they support both AppSocket and &IPP;.</para>
-
-<para>Some printers or manufacturers use other port numbers for direct
-TCP/IP printing. You may need to look up which one to use. The
-<guilabel>Settings</guilabel> button in the dialog lets you configure
-your scan, including <acronym>IP</acronym> addresses, ports and
-timeout to use.</para>
-
-<para>Once again: be careful not to be mistaken for an intruder on
-your network, if you use the scanning technique.</para>
-
-<screenshot>
-<screeninfo>&tdeprint; wizard network configuration dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsaddprinterwizard4_networkscan_config.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>In the &tdeprint; wizard, you can enter parameters to have the
-wizard scan parts of your network.</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-</sect1>
-<sect1 id="printer-model-selection">
-<title>Printer Model Selection</title>
-
-<para>The hardest part is probably the <quote>Printer Model
-Selection</quote>. In former years the situation was difficult, because
-there were hardly any drivers to find. The difficulty now is there are too
-many; though some of them are very good, many are quite broken. </para>
-
-<para>If you have a current <quote>database</quote> of available drivers
-on your system, select the manufacturer in the left part of the window
-first, then the device model in the right part. This split window shows
-all &PPD;s found by &CUPS; in its standard repository of installable
-&PPD;s.  This repository normally is <filename
-class="directory">/usr/share/cups/model/</filename>. If you want your
-driver to be found automatically by &CUPS; and &tdeprint;, place it in
-there.</para>
-
-<!-- Insert Screenshot here:  -->
-
-</sect1>
-
-<sect1 id="driver-selection">
-<title>Driver Selection</title>
-
-<para>On the next screen you will see a description of the driver
-selected previously. This description is extracted from the actual &PPD;
-used.</para>
-
-<warning>
-<para>For a real &PostScript; printer <emphasis>never</emphasis> try to
-install a <quote>Foomatic</quote> or <quote>Gimp-Print</quote> &PPD;,
-even if it is offered. You won't be happy with it. Instead find the
-original &PPD; from the manufacturer, preferably the one written for
-&Windows; NT and use it. </para>
-</warning>
-
-<para>Some &Linux; distributions have supplied for &CUPS; every
-possible combination of <application>Ghostscript</application> filters
-and <quote>foomatic</quote> &PPD; files they could find on the net.
-Many of these are quite useless; they were generated a year ago, when
-the people at <ulink
-url="http://www.linuxprinting.org">www.linuxprinting.org</ulink> began
-their first experiments with supplying third party &PPD;s for
-&CUPS;. Although dubbed <quote>Alpha</quote> at the time, these
-started to take on a life of their own and can now be found at various
-places on the net, doing &CUPS; no favors.</para>
-
-<para>If you are not sure which ones to use go to:</para>
-
-<itemizedlist>
-<listitem>
-<para><ulink
-url="http://www.linuxprinting.org">http://www.linuxprinting.org</ulink>
-</para>
-</listitem>
-
-<listitem>
-<para>
-<ulink url="http://www.cups.org">http://www.cups.org</ulink>
-</para>
-</listitem>
-</itemizedlist>
-
-<para>And ask for help. At a later stage, a document detailing the
-differences between the different driver and &PPD; models will appear at
-<ulink
-url="http://tdeprint.sourceforge.net">http://tdeprint.sourceforge.net/</ulink>
-Watch out for this!</para>
-
-<para>Via the <guibutton>Other...</guibutton> button you are able to
-retrieve any &PPD; located somewhere on your available file
-system.</para>
-
-<!-- Insert Screenshot here:  -->
-
-</sect1>
-<sect1 id="printer-test-and-finding-settings">
-<title>Printer Test and Finding the Right Settings</title>
-
-<para>Specify your first driver settings now. The most important one is the
-default paper size. In many cases this is set to
-<quote>Letter</quote>. If you live in an <quote>A4</quote>
-country and don't want your first test page to jam: now is the time to
-prevent this. </para>
-
-<para>You are ready to start a test print. Hit the
-<guibutton>Test</guibutton> button.</para>
-
-<!-- Insert Screenshot here: -->
-
-</sect1>
-
-<sect1 id="banner-selection">
-<title>Banner Selection</title>
-
-<para>The last but one screen lets you select whether you want banners, and
-which ones you want to use, to mark the beginning and/or end of every printjob
-on that printer. You can also select and deselect banners before printing
-in the job options dialogs.</para>
-
-<para>If you need to use custom banners, copy them into <filename
-class="directory">/usr/share/cups/banners/</filename> to make them
-available for selection. They must be &PostScript; files,
-however.</para>
-
-<!-- Insert Screenshot here: -->
-
-</sect1>
-
-<sect1 id="baptizing-your-printer">
-<title>Finally: Baptizing Your New Printer</title>
-
-<para>The last screen lets you insert a name for your new
-printer.</para>
-
-<para>The name must start with a letter and may contain numbers and
-underscores with a maximum size of 128 characters. Conform to this if you
-want to avoid erratic behavior of your &CUPS; daemon. The printer
-names in &CUPS; are <emphasis>not</emphasis> case sensitive! This is a
-requirement of &IPP;. So the names <systemitem
-class="resource">DANKA_infotec</systemitem>, <systemitem
-class="resource">Danka_Infotec</systemitem> and <systemitem
-class="resource">danka_infotec</systemitem> all represent the same
-printer.</para>
-
-<!-- Insert Screenshot here: -->
-
-</sect1>
-
-<sect1 id="final-confirmation-screen">
-<title>The Final Confirmation Screen</title>
-
-<para> 
-<!-- Insert Screenshot here: -->
-</para>
-
-</sect1>
-
-</chapter>
diff --git a/doc/kdeprint/cr32-action-wizard.png b/doc/kdeprint/cr32-action-wizard.png
deleted file mode 100644
index b00db2499..000000000
Binary files a/doc/kdeprint/cr32-action-wizard.png and /dev/null differ
diff --git a/doc/kdeprint/cups-config.docbook b/doc/kdeprint/cups-config.docbook
deleted file mode 100644
index 304fe9514..000000000
--- a/doc/kdeprint/cups-config.docbook
+++ /dev/null
@@ -1,2072 +0,0 @@
-<chapter id="cups-configuration">
-<title>Print Server Configuration: CUPS</title>
-
-<para>Start the print server configuration (now that you have chosen
-&CUPS;, this is equivalent to the configuration of the &CUPS; daemon) by
-clicking on the appropriate button. You can find it by moving the mouse
-slowly over the buttons and reading the tooltips. It should be the 11th
-from the left , or third from the right; its icon is a
-<guiicon>wrench</guiicon>.</para>
-
-<para>The &CUPS; Server Configuration window pops up. It gives you a
-structured view of all the settings that apply to the &CUPS; daemon. The
-configuration file for that daemon is normally located in
-<filename>/etc/cups/cupsd.conf</filename>. This is a plain
-<acronym>ASCII</acronym> file with a syntax similar to the configuration
-file of the <application>Apache</application> web server. It is a good
-idea to create a backup copy, just in case something goes wrong with the
-configuration through &tdeprint;/&CUPS; Server Configuration
-dialogs:</para>
-
-<screen><userinput><command>cp</command> <filename>/etc/cups/cupsd.conf</filename> <filename>/etc/cups/cupsd.conf.bak</filename></userinput></screen>
-
-<para>As this graphical user interface to edit the configuration file is
-such a new feature, you should have the second chance of resorting to
-the original file. So back it up, please.</para>
-
-<sect1 id="quick-help">
-<title>Quick Help</title>
-
-<para>One very nice feature is the <quote>Quick Help</quote>
-available. If you click on the little question mark (<guiicon>What's
-this?</guiicon>) on your window title bar, you'll see the cursor
-changing its form.  Now click on a <command>cupsd</command>
-configuration setting field to find out what it means and what your
-options are. In most cases you should understand the meaning
-immediately, otherwise turn to the excellent &CUPS; documentation. (If
-your &CUPS; Daemon is running, you have it online on your own host at
-<ulink
-url="http://localhost:631/documentation.html">http://localhost:631/documentation.html</ulink>.</para>
-<para>If &CUPS; is not running, but installed on your system you could
-find it in your own host's file system.  The exact location depends on
-your &OS;, but on &Linux; the default is <filename
-class="directory">/usr/share/doc/cups/</filename> or
-<filename class="directory">
-/usr/share/doc/cups/documentation.html</filename>.</para>
-
-</sect1>
-<sect1 id="longer-help">
-<title>Longer Help</title>
-
-<para>For the best, most detailed and most recent information you should
-always refer to the original &CUPS; documentation.  &CUPS; is, much like
-&kde; in a rapid development process.  There are constantly new features
-being added. New features might for times be only configurable by
-directly editing the configuration files. The &tdeprint; &GUI; might not
-have caught up with &CUPS; development.</para>
-
-<para>Just in case you want to look at the original configuration files
-of your &CUPS; system -- they are here:</para>
-
-<note>
-<para>These paths are based on the default installation.  Your &OS;
-may have installed them to a different prefix, for example, <filename
-class="directory">/usr/local/</filename>, but the hierarchy should
-still match that shown below.</para>
-</note>
-
-<variablelist>
-<varlistentry>
-<term><filename class="directory">/etc/cups/</filename></term>
-<listitem>
-<para>The folder with the configuration files</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><filename>/etc/cups/cupsd.conf</filename></term>
-<listitem>
-<para>The configuration file for the &CUPS; daemon</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><filename>/etc/cups/printers.conf</filename></term>
-<listitem>
-<para>The configuration file that contains the information about your
-locally installed printers.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><filename class="directory">/etc/cups/ppd/</filename></term>
-<listitem>
-<para>The folder with &PPD; files of your installed
-printers.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-<para>The following links only work if your &CUPS; daemon is up and
-running.  To access all the original &CUPS; documentation, go
-to:</para>
-
-<variablelist>
-<varlistentry>
-<term><ulink url="http://localhost:631/documentation.html">
-http://localhost:631/documentation.html</ulink></term>
-<listitem>
-<para>A page with all the links to the other documents.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><ulink url="http://localhost:631/sam.html">
-http://localhost:631/sam.html</ulink></term>
-<listitem>
-<para>Direct access to the &CUPS; Software Administrator Manual
-in <acronym>HTML</acronym> format.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><ulink url="http://localhost:631/sam.pdf">
-http://localhost:631/sam.pdf</ulink></term>
-<listitem>
-<para>Direct access to the &CUPS; Software Administrator Manual in
-<acronym>PDF</acronym> format.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><ulink url="http://www.cups.org/documentation.html">
-http://www.cups.org/documentation.html</ulink></term>
-<listitem>
-<para>The latest on line documentation from the &CUPS; web
-site.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-<para>The following links give you access to the same files (probably
-icons and graphics will be missing) even if your CUPS daemon is not up
-and running. You need, however, CUPS installed on your system. (Some
-distributions might place the files somewhere else -- you're on your
-own then to find out where...) To access all the original CUPS
-documentation, go to:</para>
-
-<para>This documentation is available even when the &CUPS; daemon is
-not installed, although you may find images and icons are missing when
-you view the <acronym>HTML</acronym> files.</para>
-
-<para>As noted above, the hierarchy below should be intact, but your
-&OS; may have installed &CUPS; to a different location.</para>
-
-<variablelist>
-<varlistentry>
-<term><filename>/usr/share/doc/cups/documentation.html</filename></term>
-<listitem>
-<para>A page with all the links to the other documents.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><filename>/usr/share/doc/cups/sam.html</filename></term>
-<listitem>
-<para>Direct access to the &CUPS; Software Administrator Manual in
-<acronym>HTML</acronym> format.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><filename>/usr/share/doc/cups/sam.pdf</filename></term>
-<listitem>
-<para>Direct access to the &CUPS; Software Administrator Manual in
-<acronym>PDF</acronym> format.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-<para>There are a few WebSites and Newsgroups discussing &CUPS; (and
-&Linux; Printing in General) and giving help to newbies at:</para>
-
-<variablelist>
-<varlistentry>
-<term><ulink url="http://www.cups.org/newsgroups.php">
-http://www.cups.org/newsgroups.php</ulink></term>
-<listitem>
-<para>The &CUPS; website.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><ulink url="http://www.linuxprinting.org/newsportal/">
-http://www.linuxprinting.org/newsportal/</ulink></term>
-<listitem>
-<para>LinuxPrinting.org, the home of the Linuxprinting HOWTO and the
-&Linux; Printer Database</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-<para>And finally, there will be a WebSite for &tdeprint; and related
-documentation, at <ulink url="http://tdeprint.sourceforge.net/">
-http://tdeprint.sourceforge.net/</ulink></para>
-
-<para>In the next section I will step you through most of the
-configuration options of &tdeprint; with &CUPS;.</para>
-
-</sect1>
-<sect1 id="explaining-different-gui-elements">
-<title>Explaining different elements of the &GUI;</title>
-
-<sect2>
-<title>Upper Window: View on Printers, both Real and Virtual</title>
-
-<para>This section is not yet complete</para>
-
-<itemizedlist>
-<listitem>
-<para>Tree view, icon view and list view</para>
-</listitem>
-<listitem>
-<para>The icons of the task bar</para>
-</listitem>
-<listitem>
-<para>Different fonts for different printers</para>
-</listitem>
-<listitem>
-<para>Different printer icons mean different things</para>
-</listitem>
-</itemizedlist>
-
-</sect2>
-
-<sect2>
-<title>Lower Window: Tabbed View of Details</title>
-
-<para>This section is not yet complete.</para>
-
-<itemizedlist>
-<listitem>
-<para>The icons of the task bar</para>
-</listitem>
-<listitem>
-<para>The Tabs</para>
-</listitem>
-<listitem>
-<para>Changing printer settings</para>
-</listitem>
-</itemizedlist>
-
-</sect2>
-
-</sect1>
-
-
-<sect1 id="welcome-to-cups-server-configuration">
-<title>Welcome to the &CUPS; Server Configuration</title>
-
-<para>This is the Welcome Screen for your server configuration
-dialogs. Clicking onto one of the items of the tree view on left
-side of the screen opens the appropriate part of the configuration
-settings.</para>
-
-<para>Every setting has a default value. The defaults let &CUPS;
-normally work as a fully functional client. The clients listen on
-TCP/IP Port 631 for infos broadcast by &CUPS; servers on the
-<acronym>LAN</acronym>. This information let the clients print
-immediately after receiving them, without installing any driver or
-configuring any printer on the clients.</para>
-
-<para>To configure a &CUPS; server (which is broadcasting its service
-to the <acronym>LAN</acronym>) you need to change settings from the
-defaults.</para>
-
-<para>The dialog to configure the &CUPS; server: welcome screen. </para>
-<screenshot>
-<screeninfo>CUPS server configuration dialog: welcome screen</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration1_welcome.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>The dialog to configure the &CUPS; server: welcome
-screen</phrase></textobject>
-<caption><para>The dialog to configure the &CUPS; server: welcome
-screen</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>To select the default setting of any item just enable the
-checkbox on the right side of the screen. To set an item to a
-different value, disable the checkbox and then go on to do the setting
-you want on the left side of the screen.</para>
-
-<para>The complete server configuration includes:</para>
-
-<itemizedlist>
-<listitem>
-<para><link linkend="server-general-configuration"><guilabel>Server</guilabel>
-General Configuration</link></para>
-</listitem>
-<listitem>
-<para><link linkend="server-logging-configuration">Server
-<guilabel>Log</guilabel>ging Configuration</link></para>
-</listitem>
-<listitem>
-<para><link
-linkend="server-directories-configuration">Server
-<guilabel>Folders</guilabel> and Path Definitions</link></para>
-</listitem>
-<listitem>
-<para><link linkend="server-configuration">Server
-<guilabel>HTTP</guilabel> Configuration</link></para>
-</listitem>
-<listitem>
-<para><link linkend="server-encryption-support-configuration">Server
-<guilabel>Encryption</guilabel> and Certificate Support
-Configuration</link></para>
-</listitem>
-<listitem>
-<para><link linkend="server-miscellaneous-configuration">Server
-<guilabel>Misc</guilabel>ellaneous Configuration</link></para>
-</listitem>
-<listitem>
-<para><guilabel>Network</guilabel> General Configuration</para>
-</listitem>
-<listitem>
-<para><link linkend="network-clients-configuration">Network
-<guilabel>Clients</guilabel> Configuration</link></para>
-</listitem>
-<listitem>
-<para><link
-linkend="browsing-general-configuration"><guilabel>Browsing</guilabel>
-General Configuration</link></para>
-</listitem>
-<listitem>
-<para><link linkend="browsing-connection-configuration">Browsing
-<guilabel>Connection</guilabel> Configuration</link></para>
-</listitem>
-<listitem>
-<para><link
-linkend="browsing-masks-configuration">Browsing
-<guilabel>Masks</guilabel> Configuration</link></para>
-</listitem>
-<listitem>
-<para><link linkend="browsing-timeouts-configuration">Browsing
-<guilabel>Timeouts</guilabel> Configuration</link></para>
-</listitem>
-<listitem>
-<para><link linkend="browsing-relay-configuration">Browsing
-<guilabel>Relay</guilabel> Configuration</link></para>
-</listitem>
-<listitem>
-<para><link
-linkend="security-configuration"><guilabel>Security</guilabel>
-Configuration</link></para>
-</listitem>
-</itemizedlist>
-
-<para>Each of these configuration items will be described in the
-following sections of the manual.</para>
-
-</sect1>
-
-<sect1 id="server-general-configuration">
-<title>Server General Configuration</title>
-
-<para>The server general configuration is done on this screen. It
-includes:</para>
-
-<itemizedlist>
-<listitem><para><guilabel>Server name</guilabel></para></listitem>
-<listitem><para><guilabel>Administrators email</guilabel></para></listitem>
-<listitem><para><guilabel>Server user</guilabel></para></listitem>
-<listitem><para><guilabel>Server group</guilabel></para></listitem>
-<listitem><para><guilabel>Remote user name</guilabel></para></listitem>
-</itemizedlist>
-
-<para>The tab window to configure the &CUPS; server general settings
-lets you the change the default values. Click on the little question
-mark and then on one of the fields to get a <quote>Quick Help</quote>
-about the meaning of the setting.</para>
-
-<para>If you are unsure, leave alone and turn to the original &CUPS;
-documentation first.  If your &CUPS; daemon is already running, it is
-readable from the &konqueror; by pointing it to &URL; <ulink
-url="http://localhost:631/documentation.html">
-http://localhost:631/documentation.html</ulink>.</para>
-
-<para>There, first <quote>make friends</quote> with the Software
-Administrator Manual. Otherwise, for example, if the &CUPS; daemon is
-not running, try looking in your local file system, by default at
-<filename class="directory">/usr/share/doc/cups/</filename> or
-<filename>/usr/share/doc/cups/documentation.html</filename>.</para>
-
-<screenshot>
-<screeninfo>&CUPS; server general configuration dialog: ServerName, AdminMail,
-ServerUser, ServerGroup, RemoteUserName</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration2_general.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>The dialog to configure the &CUPS; server general settings:
-ServerName, AdminMail, ServerUser, ServerGroup, RemoteUserName
-</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Server Name</guilabel></term>
-<listitem>
-<para>The hostname of your server, as advertised to the world. By
-default, &CUPS; will use the hostname of the system.  To set the
-default server usd by clients, see the
-<filename>client.conf</filename> file.</para>
-
-<informalexample>
-<para>For example, enter <userinput>myhost.domain.com</userinput></para>
-</informalexample>
-
-<para>This is the hostname that is reported to clients. Should you
-ever encounter strange problems in accessing the server, put here its
-<acronym>IP</acronym> address for troubleshooting. This way you
-eliminate any potential name resolution problems; and you can more
-easily nail the real problem down.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Administrators email</guilabel></term>
-<listitem>
-<para>This is the email address to send all complaints or problems
-to.  By default &CUPS; will use <quote>root@hostname</quote>.</para>
-
-<informalexample>
-<para>For example, enter
-<userinput>root@myhost.com</userinput>.</para>
-</informalexample>
-
-<note>
-<para>Contrary to what the quickhelp suggests, it is also legal to
-send an email full of praise and enthusiasm about &CUPS; and
-&tdeprint; to the server administrator.</para>
-</note>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Server User</guilabel></term>
-<listitem>
-<para>The user the server runs under.  Normally this must be
-<systemitem class="username">lp</systemitem>, however you can
-configure things for another user if needed.</para>
-
-<note>
-<para>The server must be initially run as root to support the default
-<acronym>IPP</acronym> port of 631.  It changes users whenever an
-external program is run.</para>
-</note>
-
-<informalexample>
-<para>Enter for example <userinput>lp</userinput>.</para>
-</informalexample>
-
-<para>This is the &UNIX; user account for filters and
-<acronym>CGI</acronym> programs to run under. <acronym>CGI</acronym>
-programs are responsible for showing you the nice web administration
-interface accessible via <ulink
-url="http://localhost:631/">http://localhost:631/</ulink>).</para>
-
-<warning>
-<para>There is no need to set the <guilabel>User</guilabel> directive
-to <systemitem class="username">root</systemitem>, so never do this,
-as it only involves dangers. Should anyone discover security
-vulnerabilities in one of the used file filters, printer drivers or
-<acronym>CGI</acronym> programs, he could remotely execute arbitrary
-commands on your system with root user privileges. Always use an
-unprivileged account for the server directive
-<guilabel>User</guilabel>.</para>
-</warning>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Server group</guilabel></term>
-<listitem>
-<para>The group the server runs under.  Normally this must be
-<systemitem class="groupname">lpadmin</systemitem>, however you can
-configure things for another group as needed.</para>
-
-<informalexample>
-<para>Enter for example <userinput>lpadmin</userinput>.</para>
-</informalexample>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Remote user name</guilabel></term>
-<listitem>
-<para>The name of the user assigned to unauthenticated accesses from
-remote systems.  By default <userinput>remroot</userinput>.</para>
-
-<para>This name will appear in log files and in queries about the job
-owner &etc;, for all resources and locations of the &CUPS; server that
-are configured to allow access <emphasis>without</emphasis>
-authentication.  Authenticated entries will carry the authenticated
-names.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-</sect1>
-
-<sect1 id="server-logging-configuration">
-<title>Server Logging Configuration</title>
-
-<para>The server logging configuration is done on this screen. It
-includes:</para>
-
-<itemizedlist>
-<listitem><para><guilabel>Access log file</guilabel> setting</para></listitem>
-<listitem><para><guilabel>Error log file</guilabel> setting</para></listitem>
-<listitem><para><guilabel>Page log</guilabel> file setting</para></listitem>
-<listitem><para><guilabel>Log level</guilabel> setting</para></listitem>
-<listitem><para><guilabel>Max log file size</guilabel>
-setting</para></listitem>
-</itemizedlist>
-
-<para>This is an important screen for you. Should you ever encounter
-problems: here is the place to set the Log level to
-<quote>debug</quote>, restart the &CUPS; daemon and then look at the
-Error log file defined here for entries that might give you an insight
-to the trouble.</para>
-
-<screenshot>
-<screeninfo>&CUPS; server configuration dialog: <guilabel>Server
-logging</guilabel>  </screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration3_logging.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>The dialog to configure the &CUPS; server: <guilabel>Server
-logging</guilabel></phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Access log file</guilabel></term>
-<listitem>
-<para>This is where accesses to the server are logged.  If this does
-not start with a leading <literal>/</literal>, then it is assumed to
-be relative to the server root.</para>
-
-<para>You can also use the special name <userinput>syslog</userinput>
-to send the output to the syslog file or daemon.</para>
-
-<informalexample>
-<para>Enter a path, for example
-<userinput><filename>/var/log/cups/acces_log</filename></userinput>.</para>
-</informalexample>
-
-<para>The format of this file is stored in the so-called <quote>Common
-Log Format</quote>. This way you can use programs such as
-<application>Webalyzer</application> or any other Web access reporting
-tool to generate reports on the &CUPS; server activities.</para>
-
-<para>To include the server name in the file name use a
-<token>%s</token> in the name. Example:
-<userinput><filename>/var/log/cups/access_log-%s</filename></userinput>.</para>
-
-<screen><prompt>kurt@transmeta:~ ></prompt><userinput><command>tail</command> <parameter>/var/log/cups/access_log</parameter></userinput>
-<computeroutput>
-127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST /printers/ HTTP/1.1" 200 109
-127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST /admin/ HTTP/1.1" 401 0
-127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST / HTTP/1.1" 200 210
-127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "GET /ppd/DANKA_P450.ppd HTTP/1.1" 200 51021
-127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST /jobs/ HTTP/1.1" 200 246
-10.160.16.45 - - [04/Aug/2001:20:11:39 +0100] "GET /printers/DANKA_P450 HTTP/1.0" 200 0
-127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST / HTTP/1.1" 200 80
-127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST / HTTP/1.1" 200 139
-10.160.16.45 - - [04/Aug/2001:20:11:40 +0100] "GET /cups.css HTTP/1.0" 200 198
-127.0.0.1    - - [04/Aug/2001:20:11:40 +0100] "POST / HTTP/1.1" 200 139
-10.160.16.45 - - [04/Aug/2001:20:11:39 +0100] "GET /printers/DANKA_P450 HTTP/1.0" 200 7319
-10.160.16.45 - - [04/Aug/2001:20:11:40 +0100] "GET /images/title-logo.gif HTTP/1.0" 200 5729
-</computeroutput></screen>
-
-<para>You see a separate line for each single access, showing the
-<acronym>IP</acronym> address of the accessing client, date and time
-of access, method of access (<command>POST</command> or
-<command>GET</command>), the requested ressource, the &HTTP; version
-used by the client, status code and the number of transferred
-bytes. Status code <errorcode>200</errorcode> means
-<errorname>successful-OK</errorname> the <errorcode>401</errorcode> in
-the above example was an <errorname>unauthorized access</errorname>
-which was denied. For a detailed explanation of the log format go to
-<ulink url="http://localhost:631/sam.html#7_6_1">the &CUPS; Software
-Administrator Manual</ulink>.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Error log file</guilabel></term>
-<listitem>
-<para>If this does not start with a leading <literal>/</literal>, then
-it is assumed to be relative to the server root.  The default setting
-is <filename>/var/log/cups/error_log</filename>.</para>
-
-<para>You can also use the special name <userinput>syslog</userinput>
-to send the output to the syslog file or daemon.</para>
-
-<informalexample>
-<para>Enter the path, for example
-<userinput><filename>/var/log/cups/error_log</filename></userinput>.</para>
-</informalexample>
-
-<para>The error log excerpt below shows you the part logged for printing the test page
-with the default setting of <guilabel>Log level</guilabel> to
-<quote>info</quote>.  For an explanation of the <guilabel>Log
-Level</guilabel> setting see further below.</para>
-
-<screen><prompt>kurt@transmeta:~ ></prompt><userinput><command> tail </command> <parameter>/var/log/cups/error_log</parameter></userinput>
-<computeroutput>
-I [04/Aug/2001:23:15:10 +0100] Job 213 queued on 'DANKA_P450' by 'root'
-I [04/Aug/2001:23:15:10 +0100] Started filter /usr/lib/cups/filter/pstops (PID 18891) for job 213.
-I [04/Aug/2001:23:15:10 +0100] Started backend /usr/lib/cups/backend/lpd (PID 18892) for job 213.
-</computeroutput></screen>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Page log file</guilabel></term>
-<listitem>
-<para>If this does not start with a leading <literal>/</literal> then
-it is assumed to be relative to the server root.  The default is
-<filename>/var/log/cups/page_log</filename></para>
-
-<para>You can also use the special name <userinput>syslog</userinput>
-to send the output to the syslog file or daemon.</para>
-
-<informalexample>
-<para>Enter the path, for example
-<userinput><filename>/var/log/cups/page_log</filename></userinput>.</para>
-</informalexample>
-<para>The page log file has a line for every single page of every job
-printed.</para>
-
-<para> Here is what some entries look like:</para>
-
-<screen><prompt>kurt@transmeta:~ ></prompt><userinput><command> tail </command> <parameter>/var/log/cups/page_log</parameter></userinput>
-<computeroutput>
-GIMP_print_stp_HP kdetest 201 [03/Aug/2001:03:18:03 +0100] 4 1
-GIMP_print_stp_HP kdetest 201 [03/Aug/2001:03:18:03 +0100] 5 1
-GIMP_print_stp_HP kdetest 202 [03/Aug/2001:11:46:49 +0100] 1 1
-GIMP_print_stp_HP kdetest 203 [03/Aug/2001:11:46:54 +0100] 1 1
-DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 1 33
-DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 2 33
-DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 3 33
-DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 4 33
-DANKA_infotec_P450 root 205 [04/Aug/2001:19:12:34 +0100] 1 14
-DANKA_infotec_P450 root 206 [04/Aug/2001:19:15:20 +0100] 1 1
-</computeroutput></screen>
-
-<para>In this excerpt of the file you find information on the name of
-the printers (<systemitem
-class="resource">GIMP_print_stp_HP</systemitem> and <systemitem
-class="resource">DANKA_infotec_P450</systemitem>) used through this
-server, the user names (<systemitem
-class="username">kdetest</systemitem>, <systemitem
-class="username">kurt</systemitem> and <systemitem
-class="username">root</systemitem>), the job-IDs (<quote>201</quote>
-to <quote>205</quote>), time of printing, page number inside the job
-and the number of copies for the pages.  For example, job-ID 204 had 4
-pages and 33 copies printed, job-ID 205 had 14 copies of just 1 page)
-.</para>
-
-<note>
-<para>&CUPS; is dependent (for its calculation of the number of pages
-in a job) on passing the &PostScript; through the
-<quote>pstops</quote> filter.  See the <link
-linkend="architecture-diagram">&kivio; Flowchart</link> on the &CUPS;
-filter architecture for an idea about were this filter fits into the
-whole printing process).  More, <command>pstops</command> depends for
-the counting on a <acronym>DSC</acronym> conforming
-(<acronym>DSC</acronym> is Document Structuring Conventions, a
-standard defined by Adobe) to be sent by the client.  In most cases
-this is working.</para>
-
-<para>However, this page accounting does not work for any
-<quote>raw</quote> printer queues (as those, by definition, don't use
-any filtering on the &CUPS; host and are by-passing
-<command>pstops</command>.) Every job going through a
-<quote>raw</quote> queue is counted as a 1-page-job (with possibly
-multiple copies). This is especially true for all Jobs send from
-&Microsoft; &Windows; clients via <application>Samba</application> to
-the &CUPS; server, as those jobs are already arriving in the correct
-format for the printer, because the clients use the original printer
-driver.</para>
-</note>
-
-<note>
-<para>I am still looking for someone who will write a nice &CUPS; page
-log analysing tool. It should generate a report with a graphical
-output similar to the <application>Webalizer</application>'s access
-log reports. This way you could have nice statistics to be used for
-accounting about usage of printers, load dependent on daytime or
-weekday, users &etc; Anyone?</para>
-</note>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Log level</guilabel></term>
-<listitem>
-<para>This setting controls the number of messages logged to the error
-log file.  It can be one of the following:</para>
-
-<variablelist>
-<varlistentry>
-<term>debug2</term>
-<listitem>
-<para>Log everything.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>debug</term>
-<listitem>
-<para>Log almost everything.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>info</term>
-<listitem>
-<para>Log all requests and state changes.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>warn</term>
-<listitem>
-<para>Log errors and warnings.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>error</term>
-<listitem>
-<para>Log only errors.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>none</term>
-<listitem>
-<para>Log nothing.</para>
-</listitem>
-</varlistentry>
-
-</variablelist>
-
-<para>If you need to troubleshoot (or if you want to study the inner
-workings of &CUPS;), set the log level to debug or debug2. Then the
-error_log will have a lot more entries (not just errors, but also
-informational entries).</para> 
-
-<para>You can use this to watch <quote>live</quote> what &CUPS; is
-doing when you send a print job. In a &konsole; type:</para>
-
-<screen><prompt>kurt@transmeta:~ ></prompt><userinput><command>tail</command> <option>-f</option> <option>-n</option><parameter>100</parameter> <parameter>/var/log/cups/error_log</parameter></userinput></screen>
-
-<para>This will give you the last 100 lines (<option>-n</option>
-<parameter>100</parameter>) of the file onto the screen and a
-<quote>realtime</quote> update (<option>-f</option>)of what is
-happening. The following listing shows the printing of a test page
-(some pieces have been cut off for space reasons... Try it yourself if
-you need more info):</para>
-
-<screen><computeroutput> 
-I [04/Aug/2001:23:15:12 +0100] Job 214 queued on 'DANKA_P450' by 'root'
-D [04/Aug/2001:23:15:12 +0100] StartJob(214, 08426fe0) 
-D [04/Aug/2001:23:15:12 +0100] StartJob() id = 214, file = 0/1 
-D [04/Aug/2001:23:15:12 +0100] job-sheets=none,none 
-D [04/Aug/2001:23:15:12 +0100] banner_page = 0 
-D [04/Aug/2001:23:15:12 +0100] StartJob: argv = "DANKA_P450","214","root","KDE Print Test",
-[....]  
-D [04/Aug/2001:23:15:12 +0100] StartJob: envp = "PATH=/usr/lib/cups/filter:/bin:/usr/bin", [....]  
-D [04/Aug/2001:23:15:12 +0100] StartJob: statusfds = 5, 6 
-D [04/Aug/2001:23:15:12 +0100] StartJob: filterfds[1] = 7, -1 
-D [04/Aug/2001:23:15:12 +0100] StartJob: filter = "/usr/lib/cups/filter/pstops" 
-D [04/Aug/2001:23:15:12 +0100] StartJob: filterfds[0] = 8, 9 
-D [04/Aug/2001:23:15:12 +0100] start_process("/usr/lib/cups/filter/pstops", [....]  
-I [04/Aug/2001:23:15:12 +0100] Started filter /usr/lib/cups/filter/pstops (PID 18991) for job 214.  
-D [04/Aug/2001:23:15:12 +0100] StartJob: backend = "/usr/lib/cups/backend/lpd" 
-D [04/Aug/2001:23:15:12 +0100] StartJob: filterfds[1] = -1, 7 
-D [04/Aug/2001:23:15:12 +0100] start_process("/usr/lib/cups/backend/lpd", [....]  
-I [04/Aug/2001:23:15:12 +0100] Started backend /usr/lib/cups/backend/lpd (PID 18992) for job 214.
-D [04/Aug/2001:23:15:12 +0100] Page = 595x842; 15,16 to 580,833 [....]  </computeroutput></screen> 
-
-<para>The lines tagged <quote>D</quote> at the beginning are debug
-level entries, the ones tagged <quote>I</quote> are there in
-<quote>info</quote> level.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Max log file size</guilabel></term>
-<listitem>
-
-<para>Controls the maximum size of each log file before they are
-rotated.  Defaults to 1048576 (1 Mb).  Set this to 0 to disable log
-rotation.</para>
-
-<informalexample>
-<para>Enter an size in bytes, for example <userinput>1048576</userinput></para>
-</informalexample>
-
-</listitem>
-</varlistentry>
-</variablelist>
-</sect1>
-
-<sect1 id="server-directories-configuration">
-<title>Server Folders Configuration</title>
-
-<para>The dialog to configure the &CUPS; server.  Different
-folders are to be set here. Normally you don't need to change
-anything in this section. In case you play around with fancy
-(TrueType, &PostScript; or other) fonts on your system, this qis the
-place to do the settings for using those fonts when printing.  Server
-folder settings include:</para>
-
-<itemizedlist>
-<listitem>
-<para><guilabel>Executables</guilabel>: where to find the server
-executables</para>
-</listitem>
-<listitem>
-<para><guilabel>Configuration</guilabel>: where to find the server
-configuration files</para>
-</listitem>
-<listitem>
-<para><guilabel>Data</guilabel>: where to find the server data
-files</para>
-</listitem>
-<listitem>
-<para><guilabel>Temporary files</guilabel>: where to put the server
-temporary print files </para>
-</listitem>
-<listitem>
-<para><guilabel>Temporary Requests</guilabel>: where to find the
-server </para>
-</listitem>
-<listitem>
-<para><guilabel>Font Path</guilabel>: where to find the
-server fonts</para>
-</listitem>
-</itemizedlist>
-<screenshot>
-<screeninfo>&CUPS; server configuration dialog: &HTTP; configuration</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration4_directories.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>The dialog to configure the &CUPS; server: &HTTP; configuration</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Executables</guilabel></term>
-<listitem>
-<para>The root folder for the scheduler executables.  By default
-this is <filename class="directory">/usr/lib/cups</filename> (or
-<filename class="directory">/usr/lib32/cups</filename> on IRIX
-6.5)</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Configuration</guilabel></term>
-<listitem>
-<para>The root folder for the scheduler.  By default, <filename
-class="directory">/etc/cups</filename>.</para>
-<para>On the authors SuSE system, this is <filename
-class="directory">/usr/share/doc/cups</filename>.  It contains all the
-<acronym>HTML</acronym> or <acronym>PDF</acronym> documentation for
-&CUPS; which is available through the Web interface at <ulink
-url="http://localhost:631/documentation.html">
-http://localhost:631/documentation.html</ulink></para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Data</guilabel></term>
-<listitem>
-<para>The root folder for the &CUPS; data files.  By default this
-is <filename class="directory">/usr/share/cups</filename></para>
-<para>It contains such things as banners, charsets, data, drivers,
-fonts, and <command>pstoraster</command> templates.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Temporary files</guilabel></term>
-<listitem>
-<para>The folder to put temporary files in.  This folder must be
-writable by the user defined on the previous screen.  This defaults to
-either <filename class="directory">/var/spool/cups/tmp</filename> or
-the value of the <envar>TMPDIR</envar> environment variable.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Temporary Requests</guilabel></term>
-<listitem>
-<para>The folder where request files are stored.  By default this
-is <filename class="directory">/var/spool/cups</filename></para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Font path</guilabel></term>
-<listitem>
-<para>The place to configure the &CUPS; server for handling your fancy
-fonts (TrueType or &PostScript;).  &CUPS; will look here for fonts to
-embed in printfiles.  This currently only affects the
-<command>pstoraster</command> filter, and the default is <filename
-class="directory">/usr/share/cups/fonts</filename>.</para>
-
-<para>To specify more than one folder, list them with double colons as
-separator. Do it like this:</para>
-
-<informalexample>
-<para><userinput>/path/to/first/fontdir/:/path/to/second/fontdir/:/path/to/last/fontdir/</userinput></para>
-</informalexample>
-
-<para>For the Font path directive to work as intended, the application
-that wants to print needs to:</para>
-
-<itemizedlist>
-<listitem>
-<para>Either correctly reference its desired fonts in the header of the
-generated &PostScript;</para>
-</listitem>
-<listitem>
-<para>Or embed the font into the &PostScript; file.</para>
-</listitem>
-</itemizedlist>
-
-<para><emphasis>Referencing</emphasis> the font by name leaves it up
-to the <acronym>RIP</acronym> and print device to respect and actually
-use it. <acronym>RIP</acronym> or printer <emphasis>can</emphasis>
-only use the desired font, if it is available on the system.</para>
-
-<para> In the case of a &PostScript; printer, this needs to be a
-printer-resident font. If the printers doesn't have this font, it will
-try and replace it by an adequately similar font.</para>
-
-<para>In the case of a non &PostScript; printer, this is done by
-&CUPS; and its <acronym>RIP</acronym>-ing filtering system. &CUPS;
-will use the font path directive to grab the correct font when
-<acronym>RIP</acronym>-ing the &PostScript; in the
-<command>pstoraster</command> filter. </para>
-
-<para>In the case of a &PostScript; output device, &CUPS; is just
-spooling the file (actually, it is passing it through the
-<command>pstops</command> filter for accounting or n-up purposes), not
-<quote>working</quote> on it. Therefore, if you print to a
-&PostScript; printer it is solely the printer's responsibility to use
-the font asked for. It can't, if the font is neither loaded into the
-printer nor embedded in the &PostScript;.
-</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect1>
-<sect1 id="server-configuration">
-<title>Server <acronym>HTTP</acronym>
-Configuration</title>
-
-<para>The dialog to configure the &CUPS; server &HTTP; settings
-is shown here. </para>
-<para>&CUPS; server &HTTP; settings are the following ones: </para>
-<itemizedlist>
-<listitem><para>the <guilabel>Document folder</guilabel></para></listitem>
-<listitem><para>the <guilabel>Default Language</guilabel></para></listitem>
-<listitem><para>the <guilabel>Default Charset</guilabel></para></listitem>
-</itemizedlist>
-
-<screenshot>
-<screeninfo>Dialog to configure the &CUPS; server &HTTP; settings
-</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration5_HTTP.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to configure the &CUPS; server &HTTP; settings
-</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Document folder</guilabel></term>
-<listitem>
-<para>The root folder for &HTTP; documents that are served.  By
-default the compiled in folder, <filename
-class="directory">/usr/share/cups/doc-root</filename></para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Default Language</guilabel></term>
-<listitem>
-<para>The default language, if not specified by the browser.  If not
-specified, the current locale is used.</para>
-<informalexample>
-<para>Use the two letter locale codes, for example
-<userinput>en</userinput> or <userinput>de</userinput>.</para>
-</informalexample>
-<!-- available languages? -->
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Default charset</guilabel></term>
-<listitem>
-<para>The default character set to use. If not specified, this
-defaults to UTF-8.  This can also be overridden directly in the
-<acronym>HTML</acronym> documents.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-</sect1>
-
-<sect1 id="server-encryption-support-configuration">
-<title><guilabel>Server encryption support configuration</guilabel></title>
-
-<para>This is the dialog to configure the &CUPS; server security
-settings. The server encryption support settings are these: </para>
-
-<itemizedlist>
-<listitem><para><guilabel>Server certificate</guilabel>: the file to
-read containing the server's certificate</para></listitem> 
-<listitem><para>Server key: the file to read containing the server's
-key</para></listitem>
-</itemizedlist>
-<screenshot>
-<screeninfo>&CUPS; server configuration dialog: security overview</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration6_encryption.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>The dialog to configure the &CUPS; server: security settings</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Server certificate</guilabel></term>
-<listitem>
-<para>The file to read containing the server's certificate.  Defaults
-to <filename>/etc/cups/ssl/server.crt</filename>.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Server key</guilabel></term>
-<listitem>
-<para>The file to read containing the server's key.  Defaults to
-<filename>/etc/cups/ssl/server.key</filename></para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect1>
-
-<sect1 id="server-miscellaneous-configuration">
-<title>Server Miscellaneous Configuration</title>
-
-<para>The dialog to configure the &CUPS; server miscellaneous settings
-is shown here. The following server settings are done through this
-screen:</para>
-
-<itemizedlist>
-<listitem><para><guilabel>Preserve job history</guilabel>: whether to
-preserve a job history for later re-view</para></listitem>
-<listitem><para><guilabel>Preserve job files</guilabel>: whether to
-preserve fully <acronym>RIP</acronym>-ed job files for later
-re-print</para></listitem>  
-<listitem><para><guilabel>Printcap file</guilabel>: setting the name
-of and the path to a printcap file</para></listitem>
-<listitem><para><guilabel>RIP Cache</guilabel>: setting the size of
-the <acronym>RIP</acronym> cache in memory</para></listitem>
-<listitem><para><guilabel>Filter Limit</guilabel>: defining a filter
-limit</para></listitem>
-</itemizedlist>
-
-<screenshot>
-<screeninfo>Dialog to configure the &CUPS; server miscellaneous settings</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration7_miscellanious.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to configure the &CUPS; server miscellaneous
-settings</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Preserve job history (after completion)</guilabel></term>
-<listitem>
-<para>Whether or not to preserve the job history after a job is
-completed, canceled, or stopped.  The default is yes</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Preserve job file (after completion)</guilabel></term>
-<listitem>
-<para>Whether or not to preserve the job files after a job is
-completed, canceled, or stopped. The default is no.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Printcap file</guilabel></term>
-<listitem>
-<para>The name of the printcap file.  The default is no filename.
-Leave this blank, to disable printcap file generation.</para>
-<para>The printcap setting is only needed to satisfy older
-applications in need of such a file.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>RIP cache</guilabel></term>
-<listitem>
-<para>The amount of memory that each <acronym>RIP</acronym> should use
-to cache bitmaps.  The value can be any real number, followed by
-<quote>k</quote> for kilobytes, <quote>m</quote> for megabytes,
-<quote>g</quote>for gigabytes, or <quote>t</quote> for tiles, where
-one tile is 256 x 256 pixels.  The default value is 8m.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Filter limit</guilabel></term>
-<listitem>
-<para>Sets the maximum cost of all job filters that can be run at the
-same time.  A limit of 0 means no limit.  A typical job may need a
-filter limit of at least 200.  Limits less than the minimum required
-by a job force a single job to be printed at any time.  The default
-limit is 0 (unlimited).</para>
-</listitem>
-</varlistentry>
-</variablelist>
-</sect1>
-
-<sect1 id="network-general-configuration">
-<title>Network General Configuration</title>
-
-<para>The dialog to configure the &CUPS; server network settings is
-shown here. It includes:</para>
-
-<itemizedlist>
-<listitem><para><guilabel>Look for hostname on IP
-addresses</guilabel></para></listitem>
-<listitem><para><guilabel>Port</guilabel></para></listitem>
-<listitem><para><guilabel>Max request size</guilabel></para></listitem>
-<listitem><para><guilabel>Timeout</guilabel></para></listitem>
-</itemizedlist>
-
-<screenshot>
-<screeninfo>Dialog to configure the &CUPS; server network settings</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration8_networkgeneral.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to configure the &CUPS; server network
-settings</phrase></textobject>
-</mediaobject>
-</screenshot>
-<variablelist>
-<varlistentry>
-<term><guilabel>Look for hostname on IP addresses</guilabel></term>
-<listitem>
-<para>Whether or not to do lookups on <acronym>IP</acronym> addresses
-to get a fully-qualified hostname.  This defaults to off, for
-performance reasons.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Port</guilabel></term>
-<listitem>
-<para>Enter here Ports and addresses that the server will listen to.
-The default port 631 is reserved for the Internet Printing Protocol,
-and is what we use here.</para>
-<para>You can have multiple entries, to listen to more than one port
-or address, or to restrict access.</para>
-<note>
-<para>Unfortunately, most web browsers don't support
-<acronym>TLS</acronym> or &HTTP; upgrades for encryption.  If you want
-to support web-based encryption, you'll probably need to listen on
-port 443, the <acronym>HTTPS</acronym> port.</para>
-</note>
-<para>Use the <guibutton>Add</guibutton> and
-<guibutton>Remove</guibutton> buttons to add and remove entries from
-the list.</para>
-<informalexample>
-<para>You can enter ports on their own, &eg;
-<userinput>631</userinput>, or hostnames with ports, &eg;
-<userinput>myhost:80</userinput> or <userinput>1.2.3.4:631</userinput>.</para>
-</informalexample>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Max request size</guilabel></term>
-<listitem>
-<para>Controls the maximum size of &HTTP; requests and print files.
-The default setting is 0, which disables this feature.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Timeout</guilabel></term>
-<listitem>
-<para>The timeout (in seconds) before requests time out.  The default
-is 300 seconds.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect1>
-
-<sect1 id="network-clients-configuration">
-<title>Network Clients Configuration</title>
-
-<para>The dialog to configure the &CUPS; network client settings is
-shown here. It includes:</para>
-
-<itemizedlist>
-<listitem><para><guilabel>Accept "Keep Alive"
-requests</guilabel></para></listitem>
-<listitem><para>KeepAliveTimeout:</para> </listitem>
-<listitem><para>MaxClients: </para></listitem>
-</itemizedlist>
-<screenshot>
-<screeninfo>dialog to configure the &CUPS; network client settings</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration9_networkclients.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to configure the &CUPS; network client settings</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Accept "Keep Alive" requests</guilabel></term>
-<listitem>
-<para>Whether or not to support the Keep-Alive connection option. The
-default is on.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Keep alive timeout</guilabel></term>
-<listitem>
-<para>The timeout (in seconds) before Keep-Alive connections are
-automatically closed.  The default is 60 seconds.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Max number of clients</guilabel></term>
-<listitem>
-<para>Controls the maximum number of simultaneous clients that will be
-handled.  Defaults to 100.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect1>
-
-<sect1 id="browsing-general-configuration">
-<title>Browsing General Configuration</title>
-
-<para>The dialog to configure the &CUPS; browsing general settings
-is shown here. It includes: </para>
-
-<itemizedlist>
-<listitem><para><guilabel>Enable browsing</guilabel></para></listitem>
-<listitem><para><guilabel>Use short names when
-possible</guilabel></para></listitem>
-<listitem><para><guilabel>Use implicit
-classes</guilabel></para></listitem>
-</itemizedlist>
-
-
-<screenshot>
-<screeninfo>Dialog to configure the &CUPS; browsing general
-settings</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration10_browsinggeneral.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to configure the &CUPS; browsing general
-settings</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Enable browsing</guilabel></term>
-<listitem>
-<para>Whether or not to broadcast printer information to other &CUPS;
-servers.  Enabled by default.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Use short names when possible</guilabel></term>
-<listitem>
-<para>Whether or not to use <quote>short</quote> names for remote
-printers when possible (&eg; <systemitem
-class="resource">printer</systemitem> instead of <systemitem
-class="resource">printer@host</systemitem>).  Enabled by
-default.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Use implicit classes</guilabel></term>
-<listitem>
-<para>Whether or not to use implicit classes.</para>
-<para>Printer classes can be specified explicitly, in the
-<filename>classes.conf</filename> file, implicitly based upon the
-printers available on the <acronym>LAN</acronym>, or both.</para>
-<para>When Implicit classes are enabled, printers on the
-<acronym>LAN</acronym> with the same name (&eg; <systemitem
-class="resource">Acme-LaserPrint-1000</systemitem>) will be put into
-a class with the same name.  This allows you to setup multiple
-redundant queues on a <acronym>LAN</acronym> without a lot of
-administrative difficulties.  If a user sends a job to <systemitem
-class="resource">Acme-LaserPrint-1000</systemitem>, the job will go to
-the first available queue.</para>
-<para>This option is enabled by default.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect1>
-<sect1 id="browsing-connection-configuration">
-<title>Browsing Connection Configuration</title>
-
-<para>The dialog to configure the &CUPS; server browsing connection is
-shown here. Browsing connection settings include:</para>
-
-<itemizedlist>
-<listitem><para><guilabel>Broadcast addresses</guilabel>: The
-(<acronym>UDP</acronym>) broadcast address to transmit printer
-information to</para></listitem>
-<listitem><para><guilabel>Broadcast Port</guilabel>: The port number
-to use for broadcasting</para></listitem> 
-<listitem><para><guilabel>Poll addresses</guilabel>: The address(es)
-to poll for information about printers on servers that might not
-broadcast (or whose broadcasts might not reach your
-<acronym>LAN</acronym> due to routers in between).</para></listitem>
-</itemizedlist>
-
-<screenshot>
-<screeninfo>Dialog to configure the &CUPS; server browsing
-connection</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration11_browsingconnections.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to configure the &CUPS; server browsing
-connection</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Broadcast addresses</guilabel></term>
-<listitem>
-<para>After pressing the <guibutton>Add</guibutton> button, you will
-see the following dialog to enter a new value for outgoing
-broadcasting browse packets. It is the same kind of dialog as for
-adding other &CUPS; server addresses to be polled for printer
-information.</para>
-
-<screenshot>
-<screeninfo>Dialog to enter a new value for broadcasting browse
-packets to</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfig_browsingmasks_add_button.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to enter a new value for broadcasting browse packets
-to</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>This option specifies a broadcast address to be used.  By
-default, browsing information is broadcast to all active
-interfaces.</para>
-
-<note>
-<para>&HP-UX; 10.20 and earlier do not properly handle broadcast
-unless you have a Class A, B, C or D netmask (&ie;, there is no
-<acronym>CIDR</acronym> support).</para>
-</note>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Broadcast port</guilabel></term>
-<listitem>
-<para>The port used for <acronym>UDP</acronym> broadcasts.  By default
-this is the <acronym>IPP</acronym> port; if you change this, you need
-to do it on all servers.  Only one BrowsePort is recognized.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Poll addresses</guilabel></term>
-<listitem>
-<para>Poll the named server(s) for printers.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect1>
-<sect1 id="browsing-masks-configuration">
-<title>Browsing Masks Configuration</title>
-
-<para>The dialog to configure the &CUPS; server allowed and/or denied browse
-packets from other servers is shown here. </para>
-
-<itemizedlist>
-<listitem><para><guilabel>Browse allow</guilabel>: </para></listitem>
-<listitem><para><guilabel>Browse deny</guilabel>: </para></listitem>
-<listitem><para><guilabel>Browse order</guilabel>: </para></listitem>
-</itemizedlist>
-
-<screenshot>
-<screeninfo>Dialog to configure the &CUPS; server allowed and/or
-denied browse packets from other servers</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration11_browsingmasks.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to configure the &CUPS; server allowed and/or denied
-browse packets from other servers</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Add Browse Address</guilabel> dialog</term>
-<listitem>
-<para>The dialog to enter a new value for the address of another
-&CUPS; server to accept browse packets from is shown here. It is opened
-by clicking on the <guibutton>Add...</guibutton> button beside the
-field named <guilabel>Browse Allow:</guilabel>. It is the same dialog
-as for adding <quote>denied</quote> broadcast sending
-addresses.</para>
-
-<para>The dialog to enter a new value for the address of another
-&CUPS; server to accept browse packets from is shown here.</para>
-
-<screenshot>
-<screeninfo>Dialog to enter a new value for the address of another
-&CUPS; server to accept browse packets from</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfig_browsingmasks_add_button.png"
-format="PNG" /></imageobject>
-<textobject>
-<phrase>Dialog to enter a new value for the address of another &CUPS;
-server to accept browse packets from</phrase></textobject>
-</mediaobject>
-</screenshot>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Browse allow</guilabel> and <guilabel>Browse
-deny</guilabel></term>
-<listitem>
-<para><guilabel>Browse allow</guilabel> specifies an address mask to
-allow for incoming browser packets.  The default is to allow packets
-from all addresses.</para>
-<para><guilabel>Browse deny</guilabel> specifies an address mask to
-deny for incoming browser packets.  The default is to deny packets
-from no addresses.</para>
-<para>Both <guilabel>Browse allow</guilabel> and <guilabel>Browse
-deny</guilabel> accept the following notations for addresses:</para>
-
-<informalexample>
-<itemizedlist>
-<listitem>
-<para><userinput>All</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>None</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>*.domain.com</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>.domain.com</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>host.domain.com</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.*</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.*</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.*</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.nnn</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.nnn/mmm</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm</userinput></para>
-</listitem>
-</itemizedlist>
-</informalexample>
-
-<para>The hostname/domain name restrictions will only work if you have
-turned hostname lookups on!</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Browse order</guilabel></term>
-<listitem>
-<para>Specifies the order of the allow/deny comparisons.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect1>
-
-<sect1 id="browsing-timeouts-configuration">
-<title>Browsing Timeouts Configuration</title>
-
-<para>The dialog to configure the &CUPS; server browse timeout settings
-is shown here. Browse timeout settings include:</para>
-<itemizedlist>
-<listitem><para><guilabel>Browse Interval</guilabel></para></listitem>
-<listitem><para><guilabel>Browse Timeout</guilabel></para></listitem>
-</itemizedlist>
-<screenshot>
-<screeninfo>Dialog to configure the &CUPS; server browse timeout
-settings</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration12_browsingtimeouts.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>dialog to configure the &CUPS; server browse timeout
-settings</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Browse interval</guilabel></term>
-<listitem>
-<para>The time between browsing updates in seconds.  The default is 30
-seconds.</para>
-<para>Note that browsing information is sent whenever a printer's
-state changes as well, so this represents the maximum time between
-updates.</para>
-<para>Set this to 0 to disable outgoing broadcasts so your local
-printers are not advertised, but you can still see printers on other
-hosts.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>Browse timeouts</term>
-<listitem>
-<para>The timeout (in seconds) for network printers - if we don't get
-an update within this time, the printer will be removed from the
-printer list.</para>
-<para>This number definitely should not be less than the browse
-interval period, for obvious reasons.  Defaults to 300 seconds.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect1>
-<sect1 id="browsing-relay-configuration">
-<title>Browsing Relay Configuration</title>
-
-<para>The dialog to configure the &CUPS; server as a browsing relay is
-shown here. Browsing relay settings include:</para>
-
-<itemizedlist>
-<listitem><para><guilabel>Browser packets relay</guilabel></para></listitem>
-</itemizedlist>
-
-<screenshot>
-<screeninfo>Dialog to configure the &CUPS; server as a browsing
-relay</screeninfo> 
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration14_browsingrelay.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to configure the &CUPS; server as a browsing
-relay</phrase></textobject> 
-</mediaobject>
-</screenshot>
-
-<variablelist>
-<varlistentry>
-<term>Add Browse Relay dialog</term>
-<listitem>
-<para>The dialog to enter a new value for an address pair to define
-browsing relaying between a &CUPS; server and a network is shown
-here.</para>
-
-<screenshot>
-<screeninfo>The dialog to enter a new value for an address pair to
-define browsing relaying between a &CUPS; server and a
-network</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfig_browse_relay_add_button.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>The dialog to enter a new value for an address pair to define
-browsing relaying between a &CUPS; server and a
-network</phrase></textobject>
-</mediaobject>
-</screenshot>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Browser packets relay</guilabel></term>
-<listitem>
-<para>Relay browser packets from one address or network to
-another.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect1>
-
-<sect1 id="security-configuration">
-<title>Security Configuration</title>
-
-<para>The dialog to configure the &CUPS; server security settings for
-any of the defined server locations is shown here. It contains the
-following settings, which may be defined separately for any valid
-resource (or location) of the &CUPS; server:</para>
-
-<itemizedlist>
-<listitem><para>System Group:</para></listitem>
-<listitem><para>Access Permissions: </para></listitem>
-<listitem><para>Auth Type:</para></listitem>
-<listitem><para>Auth Class:</para></listitem>
-<listitem><para>Auth Group Name:</para></listitem>
-<listitem><para>Encryption:</para></listitem>
-<listitem><para>Allow:</para></listitem>
-<listitem><para>Deny:</para></listitem>
-<listitem><para>Order:</para></listitem>
-</itemizedlist>
-
-<para>Valid resources (or locations) of the &CUPS; server are:</para>
-
-<itemizedlist>
-<listitem><para>Server Root Location: <systemitem
-class="resource">/</systemitem> </para></listitem> 
-<listitem><para>Server Administration Location: <systemitem
-class="resource">/admin</systemitem></para></listitem>
-<listitem><para>All printers on the server: <systemitem
-class="resource">/printers</systemitem></para></listitem>
-<listitem><para>Any individual printer on the server:
-&eg; <systemitem
-class="resource">/printers/infotec_P320</systemitem></para></listitem> 
-<listitem><para>All printer classes on the server: <systemitem
-class="resource">/classes</systemitem>:</para></listitem> 
-<listitem><para>Any individual printer class on the server:
-&eg; <systemitem
-class="resource">/classes/all_infotecs_P320_or_P450</systemitem></para></listitem> 
-</itemizedlist>
-
-<screenshot>
-<screeninfo>Dialog to configure the &CUPS; server security settings
-for any of the defined server locations</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration_securityoverview.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>dialog to configure the &CUPS; server security settings for
-any of the defined server locations</phrase></textobject>
-
-</mediaobject>
-</screenshot>
-
-<note>
-<para>For all locations that are not defined separately the setting of
-the location <quote>above</quote> it is valid.</para>
-
-<para>For example, you have a printer named <systemitem
-class="resource">infotec_P450</systemitem> with no set security
-options. Then the security of the location <systemitem
-class="resource">/printers</systemitem> will take the responsibility
-for this printer as it is a sub-location of<systemitem
-class="resource">/printers</systemitem>. If, in turn there is no
-security set for <systemitem class="resource">/printers</systemitem>,
-then the security for <systemitem class="resource">/</systemitem> (the
-general security) of the server takes responsibility. Either you have
-set this for your purpose or the compiled-in default value takes
-over.</para>
-</note>
-
-<variablelist>
-<varlistentry>
-<term>SystemGroup</term>
-<listitem>
-<para>The group name for <systemitem
-class="groupname">System</systemitem> or printer administration
-access.  The default varies depending on the operating system, but
-will be <systemitem class="groupname">lpadmin</systemitem>, <systemitem
-class="groupname">system</systemitem> or <systemitem
-class="groupname">root</systemitem> (checked for in that order).</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>Access Permissions</term>
-<listitem>
-<para>Access permissions for each folder served by the scheduler.
-Locations are relative to the document root.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>Authorization Type</term>
-<listitem>
-<para>The authorization to use:</para>
-
-<variablelist>
-<varlistentry>
-<term>None</term>
-<listitem>
-<para>Perform no authentication.</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>Basic</term>
-<listitem>
-<para>Perform authentication using the &HTTP; Basic method.</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>Digest</term>
-<listitem>
-<para>Perform authentication using the &HTTP; Digest method.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-<note>
-<para>Local certificate authentication can be substituted by the
-client for Basic or Digest, when connecting to the localhost
-interface.</para>
-</note>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>Authorization Class</term>
-<listitem>
-<para>The authorization class.  Currently only
-<quote>Anonymous</quote>, <quote>User</quote>, <quote>System</quote>
-(valid user belonging to the group set as system group), and
-<quote>group</quote> (valid user belonging to the specified group) are
-supported.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>Authorization Group Name</term>
-<listitem>
-<para>The group name for <quote>Group</quote> authorization</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>Encryption</term>
-<listitem>
-<para>Whether or not to use encryption.  This depends on having the
-<application>OpenSSL</application> linked into the &CUPS; library and
-scheduler.</para>
-<para>Possible values are:</para>
-<variablelist>
-<varlistentry>
-<term>Always</term>
-<listitem>
-<para>Always use encryption (<acronym>SSL</acronym>)</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>Never</term>
-<listitem>
-<para>Never use encryption.</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>Required</term>
-<listitem>
-<para>Use <acronym>TLS</acronym> encryption upgrade.</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>IfRequested</term>
-<listitem>
-<para>Use encryption if the server requests it.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Allow</guilabel></term>
-<listitem>
-<para>Allows access from the specified hostname, domain,
-<acronym>IP</acronym> address or network.  Possible values are:</para>
-
-<informalexample>
-<itemizedlist>
-<listitem>
-<para><userinput>All</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>None</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>*.domain.com</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>.domain.com</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>host.domain.com</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.*</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.*</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.*</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.nnn</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.nnn/mmm</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm</userinput></para>
-</listitem>
-</itemizedlist>
-</informalexample>
-
-<para>The host and domain address require that you enable hostname
-lookups, as described earlier.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Deny</guilabel></term>
-<listitem>
-<para>Denies access from the specified hostname, domain,
-<acronym>IP</acronym> address or network.  Possible values are:</para>
-<informalexample>
-<itemizedlist>
-<listitem>
-<para><userinput>All</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>None</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>*.domain.com</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>.domain.com</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>host.domain.com</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.*</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.*</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.*</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.nnn</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.nnn/mmm</userinput></para>
-</listitem>
-<listitem>
-<para><userinput>nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm</userinput></para>
-</listitem>
-</itemizedlist>
-</informalexample>
-<para>The host and domain address require that you enable hostname
-lookups, as described earlier.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term>Order</term>
-<listitem>
-<para>The order of the allow and deny processing.</para>
-</listitem>
-</varlistentry>
-</variablelist>
-</sect1>
-
-<sect1 id="example-how-define-security-for-all-printers">
-<title>Example: How To Define The Security For All Printers</title>
-
-<para>The dialog to configure the &CUPS; server security settings is
-discussed here. We use the example to add security definitions other
-than the default ones for the resource named <systemitem
-class="resource">all printers</systemitem>. For the &CUPS; web server,
-this is the location you access through <ulink
-url="http://localhost:631/printers/">
-http://localhost:631/printers/</ulink> or (remotely) through <ulink
-url="http://cups.server.name:631/printers/">
-http://cups.server.name:631/printers/</ulink></para>
-
-<para>The first screenshot shows the general location for this
-setting. <guilabel>Select</guilabel> <guibutton>Add</guibutton> or
-<guibutton>Modify</guibutton> a resource for which you want to decide
-about its security settings.</para>
-
-<screenshot>
-<screeninfo>Dialog to configure the &CUPS; server security
-settings</screeninfo><mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration15a_resourceallprinters_defineaccess.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to configure the &CUPS; server security
-settings</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>This dialog is to add a new resource.  It looks similar if you
-want to modify an already existing resource. Here are the general
-options:</para>
-
-<screenshot>
-<screeninfo>Dialog to add a new resource.</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration15b_resourceallprinters_defineaccess.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to add a new resource.</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<para>.This is the second part or the dialog is to add a new
-ressource.  It looks similar if you want to modify an already existing
-resource. Here you define the actual access masks for the resource in
-question. </para>
-
-<screenshot>
-<screeninfo>Dialog to add a new resource.</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration15c_resourceallprinters_defineaccess.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Dialog to add a new resource.</phrase></textobject>
-</mediaobject>
-</screenshot>
-<screenshot>
-<screeninfo>Resource dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration_resourceadminaccessmasks.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Resource dialog</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<screenshot>
-<screeninfo>Resource dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration_resourceadminaddprinters.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Resource dialog</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<screenshot>
-<screeninfo>Resource dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration_resourceadminaddprinters_defineaccess.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Resource dialog</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<screenshot>
-<screeninfo>Resource dialog</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsserverconfiguration_resourceadminauthorization.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Resource dialog</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-</sect1>
-
-</chapter>
diff --git a/doc/kdeprint/cups-filterarchitecture-kivio-70Percent-scaled.png b/doc/kdeprint/cups-filterarchitecture-kivio-70Percent-scaled.png
deleted file mode 100644
index 9f5a73d39..000000000
Binary files a/doc/kdeprint/cups-filterarchitecture-kivio-70Percent-scaled.png and /dev/null differ
diff --git a/doc/kdeprint/cupsaddprinterwizard1.png b/doc/kdeprint/cupsaddprinterwizard1.png
deleted file mode 100644
index cf20e087c..000000000
Binary files a/doc/kdeprint/cupsaddprinterwizard1.png and /dev/null differ
diff --git a/doc/kdeprint/cupsaddprinterwizard2_backendselection.png b/doc/kdeprint/cupsaddprinterwizard2_backendselection.png
deleted file mode 100644
index 3e4b2f126..000000000
Binary files a/doc/kdeprint/cupsaddprinterwizard2_backendselection.png and /dev/null differ
diff --git a/doc/kdeprint/cupsaddprinterwizard3_networkscan.png b/doc/kdeprint/cupsaddprinterwizard3_networkscan.png
deleted file mode 100644
index 160834ee9..000000000
Binary files a/doc/kdeprint/cupsaddprinterwizard3_networkscan.png and /dev/null differ
diff --git a/doc/kdeprint/cupsaddprinterwizard3_networkscan_results.png b/doc/kdeprint/cupsaddprinterwizard3_networkscan_results.png
deleted file mode 100644
index aa6cd87f1..000000000
Binary files a/doc/kdeprint/cupsaddprinterwizard3_networkscan_results.png and /dev/null differ
diff --git a/doc/kdeprint/cupsaddprinterwizard4_networkscan_config.png b/doc/kdeprint/cupsaddprinterwizard4_networkscan_config.png
deleted file mode 100644
index 7fff7de52..000000000
Binary files a/doc/kdeprint/cupsaddprinterwizard4_networkscan_config.png and /dev/null differ
diff --git a/doc/kdeprint/cupsoptions.docbook b/doc/kdeprint/cupsoptions.docbook
deleted file mode 100644
index bd0ba95a3..000000000
--- a/doc/kdeprint/cupsoptions.docbook
+++ /dev/null
@@ -1,602 +0,0 @@
-<chapter id="cupsoptions-presently-outside-kcontrol">
-<title>&CUPS; options presently not available through &kcontrol;</title>
-
-<para>This chapter gives you some hints about further configuration
-possibilities which may not be available through the &tdeprint; &GUI;
-interface to &CUPS;.</para>
-
-<sect1>
-<title>Overview of provided features</title>
-
-<para>All of the most often used features and functions &CUPS; provides
-are supported in &tdeprint;.</para>
-
-<itemizedlist>
-<listitem>
-<para>Printer management is supported: add, remove, modify, configure,
-test, disable, enable ...</para>
-</listitem>
-<listitem>
-<para>Job management is supported: cancel, hold, release, move to
-different printer</para>
-</listitem>
-<listitem>
-<para>Print options: for full control as provided by &CUPS;.</para>
-</listitem>
-</itemizedlist>
-
-</sect1>
-
-<sect1 id="where-to-find-further-chupshelp">
-<title>Where to find help when using &CUPS;</title>
-
-<para>A lot of information about the inner workings of &CUPS; is
-available through the web interface, which &CUPS; will always
-support. It works with any browser (yes, even text-based ones). Just go
-to <ulink url="http://localhost:631/">http://localhost:631/</ulink> for
-a start. There you find a link to locally available &CUPS; documentation
-in <acronym>HTML</acronym> and <acronym>PDF</acronym> if you are new to
-&CUPS;.</para>
-
-<para>&CUPS; is accessible through other means than &tdeprint;:
-commandline and browser are two native &CUPS; interfaces. The many
-commandline utilities add up to the most complete control you have on
-&CUPS;. The web interface is only a subset of all available
-configuration or control options. </para>
-
-<para>This is also true for &tdeprint;. Generally, as &CUPS; develops,
-most new features will first be implemented through the commandline. Be
-sure to check the latest versions of the man pages for &CUPS; to stay
-up-to-date with new features after you install a new version.</para>
-
-<tip>
-<para>Depending on your update method for &CUPS;, your active
-configuration file might not have been re-placed by a new one; thus your
-new, more capable &CUPS;-daemon might not have been told by the old
-configuration file about the new features to use.</para>
-</tip>
-
-<para>A complete list of available files and man pages should always be
-in the &CUPS; Software Administrator Manual (<ulink
-url="http://localhost:631/sam.html#FILES">http://localhost:631/sam.html#FILES</ulink>.
-In the &konqueror; &URL;/location field, type
-<userinput>man:/lpadmin</userinput> and
-<userinput>man:/cupsd.conf</userinput> to find out about the most
-important command and configuration file. You knew already about
-&konqueror;'s nice abilities to show you the traditional &UNIX; man
-pages, didn't you? Read this.  From there you find more interesting
-hints and links to other man pages and documentation.</para>
-
-<sect2>
-<title>How to find &CUPS; related man pages</title>
-
-<para>Here is a way to find out which &CUPS; related man pages there
-are on your system: </para>
-
-<screen><prompt>kurt@transmeta:~ ></prompt> <userinput><command>apropos</command> <parameter>cups</parameter></userinput>
-<computeroutput>
-cups-calibrate (8)- ESP Printer Calibration Tool
-lpstat (1)        - print cups status information
-cups-lpd (8)      - receive print jobs + report printer status to lpd clients
-classes.conf (5)  - class configuration file for cups
-backend (1)       - cups backend transmission interfaces
-filter (1)        - cups file conversion filter interfaces
-cups-polld (8)    - cups printer polling daemon
-mime.types (5)    - mime type description file for cups
-cupsd (8)         - common unix printing system daemon
-lpadmin (8)       - configure cups printers and classes
-cupsd.conf (5)    - server configuration file for cups
-mime.convs (5)    - mime type conversion file for cups
-printers.conf (5) - printer configuration file for cups
-mime.convs (5)    - mime type conversion file for cups
-cups-polld (8)    - cups printer polling daemon
-lpstat (1)        - print cups status information
-backend (1)       - cups backend transmission interfaces
-mime.types (5)    - mime type description file for cups
-cupsd (8)         - common unix printing system daemon
-lpadmin (8)       - configure cups printers and classes
-printers.conf (5) - printer configuration file for cups
-cupsd.conf (5)    - server configuration file for cups
-filter (1)        - cups file conversion filter interfaces
-</computeroutput></screen>
-</sect2>
-</sect1>
-
-<sect1 id="tips-and-tricks-for-cups">
-<title>Outside &tdeprint;: Hints &amp; Tips Tricks with &CUPS; on the
-Commandline</title>
-
-<para>Here are a few examples of options that are presently only
-available if you use the commandline. </para>
-
-<sect2>
-<title>Allowing or denying printer access for certain users</title>
-
-<para>When installing (or modifying) a printer through the command line,
-you can either deny or allow the usage of that printer to certain
-users:</para>
-
-<screen><userinput><command>lpadmin</command> <option>-p</option><parameter>HeidelbergDigimaster9110</parameter> <option>-v</option> <parameter>lpd:/10.160.16.99/mqueue</parameter> <option>-u</option> <parameter>allow:kurt,sylvi,hansjoerg</parameter> <option>-E</option> <option>-P</option> <parameter>/home/kurt/PPDs/DVHV.ppd</parameter></userinput></screen>
-
-<para>will allow the usage of this (believe me: very nice and also very
-professional) printer to only the three mentioned users and at the same
-time deny it to all others. If another user wants to print on the
-DigiMaster via this &CUPS; server, he will receive an error message
-along the lines <errortype>client-error-not-possible</errortype>.</para>
-
-<screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>HeidelbergDigimaster9110</parameter> <option>-v</option> <parameter>lpd:/10.160.16.99/mqueue</parameter> <option>-u</option> <parameter>deny:tackat,boss,waba</parameter> <option>-E</option> <option>-P</option> <parameter>/home/kurt/PPDs/DVHV.ppd</parameter></userinput></screen>
-
-<para>will deny the usage of this same printer to the three mentioned
-users and at the same time allow it to all others. If
-<quote>denied</quote> user wants to print on the DigiMaster via this
-&CUPS; server, he will receive an error message along the lines
-<errortype>client-error-not-possible</errortype>.</para>
-
-<note>
-<para>Only one of the two options may be used at one time; at present
-there is no support to have a similar option in a per-group based
-way. This will be implemented in the future.</para>
-</note>
-
-</sect2>
-<sect2>
-<title>Imposing Quotas for certain printers</title>
-
-<para>Sometimes you want to impose quotas for certain printers.  With
-quotas you can set upper limits for the number of pages or the amount of
-data to be printed over a certain period to a certain printer.</para>
-
-<para>Quotas can be set with the <option>-o</option> option when
-installing a printer with the <command>lpadmin</command> command, or
-afterwards for an already existing printer. Following are some
-guidelines (which are missing at the time of writing in the, official
-&CUPS; documentation):</para>
-
-<itemizedlist>
-<listitem>
-<para>With &CUPS; you may have pagecount- and filesize-based quotas for
-individual printers.</para>
-</listitem>
-
-<listitem>
-<para>Quotas are calculated for each user individually (so a single set
-of limits applies to all users for the printer concerned).</para>
-</listitem>
-
-<listitem>
-<para>Quotas include banner pages (if those are used).</para>
-</listitem>
-
-<listitem>
-<para>This means: you can limit every user to 20 pages per day on an
-expensive printer, but you cannot limit every user except <systemitem
-class="username">Kurt</systemitem> or <systemitem
-class="username">root</systemitem>.</para>
-</listitem>
-
-<listitem>
-<para>There are <option>job-k-limit</option>,
-<option>job-page-limit</option>, and <option>job-quota-period</option>
-options to give when setting up a printer.</para>
-</listitem>
-
-<listitem>
-<para><option>job-quota-period</option> sets a time interval for quota
-computing (intervals are determined in seconds; so a day is
-60x60x24=86.400, a week is 60x60x24x7=604,800, and a month is
-60x60x24x30=2.592.000 seconds.)</para>
-</listitem>
-
-<listitem>
-<para>For quotas to be enforced, the time-period
-<emphasis>plus</emphasis> at least one job-limit must be set to
-non-zero.</para>
-</listitem>
-
-<listitem>
-<para>The default value of 0 for <option>job-k-limit</option> specifies
-that there is no limit.</para>
-</listitem>
-
-<listitem>
-<para>The default value of 0 for <option>job-page-limit</option>
-specifies that there is no limit.</para>
-</listitem>
-
-<listitem>
-<para>The default value of 0 for <option>job-quota-period</option>
-specifies that the limits apply to all jobs that have been printed by a
-user that are still known to the system.</para>
-</listitem>
-</itemizedlist>
-
-<sect3>
-<title>Working Examples:</title>
-
-<para>Working, as both, time-period <emphasis>plus</emphasis> one or
-both job-limits are defined</para>
-
-<screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_4850</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter> <option>-o</option> <parameter>job-k-limit=1024</parameter></userinput></screen>
-
-<para>This sets a limit of a file size of 1 MB (in total) for each user
-of existing printer <systemitem
-class="resource">danka_infotec_4850</systemitem> during one week.</para>
-
-<screen><userinput><command>lpadmin</command> <option>p</option> <parameter>danka_infotec_4105</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter> <option>-o</option> <parameter>job-page-limit=100</parameter></userinput></screen>
-
-<para>This sets a limit of 100 pages (in total) for each user of
-existing printer <systemitem
-class="resource">danka_infotec_4105</systemitem> during one week.</para>
-
-<screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_P450</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter> <option>-o</option> <parameter>job-k-limit=1024</parameter> <option>-o</option> <parameter>job-page-limit=100</parameter></userinput></screen>
-
-<para>This sets a combined limit of 1 MB (in total) and 100 pages (in
-total) for each user of existing printer <systemitem
-class="resource">danka_infotec_P450</systemitem> during one
-week. Whichever limit is reached first will take effect.</para>
-
-</sect3>
-
-<sect3>
-<title>Not working examples</title>
-
-<para><emphasis>NOT</emphasis> working, as only
-<emphasis>one</emphasis>, time-period <emphasis>or</emphasis> job-limit
-is defined)</para>
-
-<screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_P320</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter></userinput>
-
-<userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_FullColor</parameter> <option>-o</option> <parameter>job-page-limit=100</parameter></userinput>
-
-<userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_HiSpeed</parameter> <option>-o</option> <parameter>job-k-limit=1024</parameter></userinput></screen>
-
-</sect3>
-
-<sect3>
-<title>Related Error Messages</title>
-
-<para>Once a user reaches his quota limit, he'll get a
-<errortype>client-error-not-possible</errortype> message, if he wants to
-print.</para>
-
-</sect3>
-
-</sect2>
-
-<sect2>
-<title>Installing a <quote>raw</quote> printer</title>
-
-<para>There are different ways to define a <quote>raw</quote>
-printer. One comfortable one is to use the <command>lpadmin</command>
-command.  Just don't define a &PPD; file to be used for that printer and
-it will be a raw one:</para>
-
-<screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>Raw_Danka_infotec</parameter> <option>-E</option> <option>-v</option> <parameter>lpd://10.160.16.137/PORT1</parameter></userinput></screen>
-
-<para>Raw printer queues are those which don't touch the print file to
-transform it to a different file format. You need this for example when
-printing from &Windows; clients via Samba through a &CUPS; server to a
-<acronym>PCL</acronym> printer: in this case the &Windows; side printer
-driver would generate the finished print file format for the target
-printer and filtering it through &CUPS; filters would only harm the
-purpose. Under certain circumstances (if you want to make sure that the
-file goes to the printer <quote>unfiltered</quote> by &CUPS;) the
-<quote><command>lpadmin</command> without a &PPD;</quote> comes in
-handy.</para>
-
-</sect2>
-
-</sect1>
-<sect1 id="troubleshooting-cups">
-<title>Troubleshooting &CUPS; in &tdeprint;</title>
-
-<para>This section of the &tdeprint; Handbook will live from the
-readers' feedback. Here is just a small beginning.</para>
-
-<sect2>
-<title>Error Messages</title>
-
-<qandaset>
-<qandaentry>
-<question>
-<para>What does the error
-<errortype>client-error-bad-request</errortype> mean?</para>
-</question>
-<answer>
-<para>The user sent a file to the &CUPS; which the server could not
-process. You get this also upon sending an <quote>empty</quote>
-file.</para>
-</answer>
-</qandaentry>
-
-<qandaentry>
-<question>
-<para>And <errortype>client-error-not-possible</errortype>?</para>
-</question>
-<answer>
-<para>User is either not allowed to print to a certain printer or has
-achieved his quota (based on file size and/or page number)</para>
-</answer>
-</qandaentry>
-
-<qandaentry>
-<question>
-<para>How about <errortype>client-error-not-found</errortype>?</para>
-</question>
-<answer>
-<para>The user tried to access a nonexistent resource on the &CUPS;
-server, such as trying to print a nonexistent file, or one that you are
-denied permission to read.</para>
-</answer>
-
-</qandaentry>
-</qandaset>
-
-</sect2>
-
-<sect2>
-<title>Questions and Answers</title>
-
-<qandaset>
-<qandaentry>
-<question>
-<para>Why can't I re-start my jobs?</para>
-</question>
-<answer>
-<para>To be able to re-start your <quote>completed</quote> jobs from the
-web interface, you need a setting in the
-<filename>/etc/cups/cupsd.conf</filename> file: set
-<userinput>PreserveJobFiles True</userinput>.</para>
-</answer>
-</qandaentry>
-
-<qandaentry>
-<question>
-<para>How do I get rid of the long list of completed jobs in the web
-interface?</para>
-</question>
-<answer>
-<para>TODO</para>
-</answer>
-</qandaentry>
-
-<qandaentry>
-<question>
-<para>How does page accounting work?</para>
-</question>
-<answer>
-<para>&CUPS; does the <quote>print accounting</quote> by passing nearly
-every job through the <quote>pstops</quote> filter.  This one does,
-amongst other things, the page counting. Output of this filter there may
-be piped into other filters (like pstoraster --> rastertopcl) or sent to
-the printer directly (if it is a &PostScript; printer).</para>
-
-<para>In any case, this works for network, parallel, serial or
-<acronym>USB</acronym> printers the same. For pstops to work, it needs
-<acronym>DSC</acronym>, Document Structuring Convention compliant
-&PostScript; (or near-equivalent) as input. So it calculates the pages
-during filtering on the print server and writes info about every single
-page (what time, which user, which job-ID and -name, which printer, how
-many copies of which pages of the document, how many kilo-bytes?) into
-<filename>/var/log/cups/page_log</filename>.</para>
-
-<para>By the way: on my personal <quote>wishlist</quote> is a hack of
-<quote>webalizer</quote> to read and analyze the page_log and give a
-similar output.  Anyone?</para>
-
-<para>However, it is <emphasis>not</emphasis> giving correct results in
-the following cases:</para>
-
-<itemizedlist>
-<listitem>
-<para>The printer jams and maybe therefor throw away the job (real live
-experience; or maybe throwing away the job because of problems with the
-data format)</para>
-</listitem>
-<listitem>
-<para>Jobs printed as <quote>raw</quote> are always counted as size of 1
-page (and maybe multiple copies).</para>
-</listitem>
-</itemizedlist>
-
-<para>Therefore the page accounting of &CUPS; is <quote>only</quote>
-an approximation (in many cases an excellent or at least good one, in
-others a quite poor one). The only reliable print count is the one
-done by the internal printer counter. (Because this is the one you pay
-for, if you are on a <quote>click price</quote> or similar.)  Some, by
-far not most, printers can be queried remotely for that information
-via <acronym>SNMP</acronym> (Simple Network Management Protocol). That
-means, in a bigger network with many different printers there
-<emphasis>is</emphasis> just no completely reliable and accurate page
-accounting tool!</para>
-</answer>
-</qandaentry>
-
-<qandaentry>
-<question>
-<para>Why doesn't page-accounting work with &Windows; clients?</para>
-</question>
-<answer>
-<para>From &Windows; clients jobs nearly always need to be sent as
-<quote>raw</quote>. Why? If &CUPS; works as a print server for &Windows;
-clients using the original native &Windows; driver for the target print
-device, this guarantees the correct formatting of the job on the clients
-already; therefor the server should not touch it and print
-<quote>raw</quote>; therefor no filtering is started (and this is not
-even possible as the input from the clients is not &PostScript; as
-pstops expects; hence no page-count other than the default
-<quote>1</quote>.</para>
-</answer>
-</qandaentry>
-
-<qandaentry>
-<question>
-<para>How do I get a list of available options for a given printer or a
-&PPD; file?</para>
-</question>
-<answer>
-<para>See the man page for the <command>lpoptions</command> command. You
-may investigate a &CUPS;-enabled box about any option of its available
-printers. There is no need to have the printer installed locally. As
-long as the printer is available locally (through the &CUPS;
-<quote>printer browsing</quote> feature), it will also work
-remote.</para>
-
-<para>To query for a printers' option typing
-<userinput><command>lpoptions</command> <option>-p</option>
-<parameter>HitachiDDP70MicroPress</parameter>
-<option>-l</option></userinput> will give a long listing of all
-available options as read from the &PPD; file for the given
-Hitachi-Printer (in my case installed on remote server
-transmeta). Remote server <systemitem
-class="systemname">Transmeta</systemitem> and its &CUPS; daemon as well
-as the localhost's &CUPS; daemon need to be up and running for this to
-succeed.</para>
-</answer>
-</qandaentry>
-
-<qandaentry>
-<question>
-<para>How do I read the listing retrieved by the
-<command>lpoptions</command> command?</para>
-</question>
-
-<answer>
-<para>You know that for &PostScript; printer manufacturers it is
-<quote>legal</quote> to define their own internal names and procedures
-even for standard &PostScript; options. As long as the driver is able to
-retrieve the option from the &PPD; and show it to the user in a way that
-he understands it everything is OK. But what do <emphasis>you</emphasis>
-do, if you want to use some obscure printer options on the command line?
-How do you find out its exact syntax?</para>
-
-<para>Let's take an example. Looking at Hitachi's DDP70 printer and how
-it implements duplex printing is revealing somehow. How do you tell how
-to print double sided? duplex or Duplex? Or another name altogether?.</para>
-
-<screen><userinput><command>lpoptions</command> <option>-h</option> <parameter>transmeta</parameter> <option>-p</option> <parameter>Hitachi_DDP70_ClusterPrintingSystem</parameter> <option>-l</option> | <command>grep</command> <parameter>uplex</parameter></userinput></screen>
-
-<para>This leads to the output</para>
-
-<screen><computeroutput>TR-Duplex/Duplex: False *True</computeroutput></screen>
-
-<para>This is to be interpreted like follows:</para>
-
-<itemizedlist>
-<listitem>
-<para>The name of the investigated option is
-<option>TR-Duplex</option>;</para>
-</listitem>
-<listitem>
-<para>Behind the slash you see the translation of the option, as it
-should be shown in a &GUI; or Web interface
-(<quote>Duplex</quote>);</para>
-</listitem>
-<listitem>
-<para>The option may take one of the two values
-<parameter>False</parameter> or <parameter>True</parameter>;</para>
-</listitem>
-<listitem>
-<para>The present setting is <parameter>True</parameter> to be
-recognized by the marking with a star <literal>*</literal>.</para>
-</listitem>
-</itemizedlist>
-
-<para>To override the present default setting (duplex) and print a job
-in simplex, you need to use the following command: </para>
-
-<screen><userinput><command>lpr</command> <option>-P</option> <parameter>Hitachi_DDP70_ClusterPrintingSystem</parameter> <option>-o</option> <parameter>TR-Duplex=False</parameter> <parameter>/path/to/your/printjob</parameter></userinput></screen>
-</answer>
-</qandaentry>
-
-<qandaentry>
-<question>
-<para>How do I get a nicely formatted listing of available options for a
-given printer or &PPD;?</para>
-</question>
-<answer>
-<para>Use the <command>lphelp</command> command which may be installed
-on your system locally. There is not yet a man page for
-<command>lphelp</command>.</para>
-
-<screen><userinput><command>lphelp</command> <parameter>infotecP450</parameter></userinput></screen>
-
-<para>This lists the available options for the named printer. It is
-nicely formatted and does explain every available option and how to use
-it. You can query different printers' options at once:</para>
-
-<screen><userinput><command>lphelp</command> <parameter>infotec7410color</parameter> <parameter>DANKA_fullcolor_D2000</parameter> <parameter>HP_ColorLaserJet8550</parameter></userinput></screen>
-
-<para>It also works for &PPD; files. Just specify the path to the
-&PPD;:</para>
-
-<screen><userinput><command>lphelp</command> <filename>/home/kurt/PPDs/HP-ColorLaserJet8550.ppd</filename></userinput></screen>
-</answer>
-</qandaentry>
-</qandaset>
-
-</sect2>
-<sect2>
-<title>Solving Problems</title>
-
-<para>No system is perfect. Here are some commonly seen traps people
-have fallen into.</para>
-
-<qandaset>
-<qandaentry>
-<question>
-<para>My printer named <quote>3-lp-duplex</quote> shows erratic
-behavior.  What's wrong?</para>
-</question>
-<answer>
-<para>The printer names used in &CUPS; shall start with a letter and may
-contain up to 128 letters, numbers or underscores. Using dashes may lead
-to problems. Speaking about naming: printer names in &CUPS; are not case
-sensitive. So a printer named <systemitem
-class="resource">Best_of_Danka</systemitem> will be the same as
-<systemitem class="resource">best_of_danka</systemitem> or <systemitem
-class="resource">BEST_OF_DANKA</systemitem>. (This is a requirement of
-&IPP;, which &CUPS; is fully compliant with).</para>
-</answer>
-</qandaentry>
-
-<qandaentry>
-<question>
-<para>Why do I get <errortype>Unable to connect to SAMBA host:
-Success</errortype> with my printer shares from &Windows; accessed via
-Samba?</para>
-</question>
-<answer>
-<para>Are the rights on the remote &Windows; box set correctly for you?
-Are you actually allowed to print on the &Windows; shared
-printer?</para>
-</answer>
-</qandaentry>
-
-<qandaentry>
-<question>
-<para>My files for printer <systemitem class="resource">lp</systemitem>
-sometimes mysteriously disappear and two days later I am told they got
-printed on a printer three floors below my office. What is going on?</para>
-</question>
-<answer>
-<para>Believe me, it is very unlikely that your printer is the only one
-with the name <systemitem class="resource">lp</systemitem>.  Maybe
-&CUPS; is playing a trick on you. As you might have the setting
-<quote>ImplicitClasses On</quote> activated, &CUPS; tries to stuff all
-printers it sees on the network into a <quote>Class</quote> name lp. All
-jobs destined to lp are sent to this class and the first available
-member prints it. So if you had this nice fellow (who listened closely
-when you raved about &CUPS; and &tdeprint;) install &CUPS; and poke
-around the system...get the idea?</para>
-
-<para>Take my advice: choose a unique name for any network printer!
-(Mind you, the one on your parallel port also turns out to be a network
-printer for the rest of the world if you don't take care of your
-settings).</para>
-</answer>
-</qandaentry>
-</qandaset>
-</sect2>
-</sect1>
-</chapter>
diff --git a/doc/kdeprint/cupsserverconfig_browse_relay_add_button.png b/doc/kdeprint/cupsserverconfig_browse_relay_add_button.png
deleted file mode 100644
index 391cf06ee..000000000
Binary files a/doc/kdeprint/cupsserverconfig_browse_relay_add_button.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfig_browsingmasks_add_button.png b/doc/kdeprint/cupsserverconfig_browsingmasks_add_button.png
deleted file mode 100644
index f5767faad..000000000
Binary files a/doc/kdeprint/cupsserverconfig_browsingmasks_add_button.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration10_browsinggeneral.png b/doc/kdeprint/cupsserverconfiguration10_browsinggeneral.png
deleted file mode 100644
index 3775f4d2a..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration10_browsinggeneral.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration11_browsingconnections.png b/doc/kdeprint/cupsserverconfiguration11_browsingconnections.png
deleted file mode 100644
index d3ca6971f..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration11_browsingconnections.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration11_browsingmasks.png b/doc/kdeprint/cupsserverconfiguration11_browsingmasks.png
deleted file mode 100644
index a662dd117..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration11_browsingmasks.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration12_browsingtimeouts.png b/doc/kdeprint/cupsserverconfiguration12_browsingtimeouts.png
deleted file mode 100644
index d9e9528d6..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration12_browsingtimeouts.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration14_browsingrelay.png b/doc/kdeprint/cupsserverconfiguration14_browsingrelay.png
deleted file mode 100644
index 0030b4d7c..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration14_browsingrelay.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration15a_resourceallprinters_defineaccess.png b/doc/kdeprint/cupsserverconfiguration15a_resourceallprinters_defineaccess.png
deleted file mode 100644
index fab7bc65b..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration15a_resourceallprinters_defineaccess.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration15b_resourceallprinters_defineaccess.png b/doc/kdeprint/cupsserverconfiguration15b_resourceallprinters_defineaccess.png
deleted file mode 100644
index 2cc4bf8ae..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration15b_resourceallprinters_defineaccess.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration15c_resourceallprinters_defineaccess.png b/doc/kdeprint/cupsserverconfiguration15c_resourceallprinters_defineaccess.png
deleted file mode 100644
index cfd09e543..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration15c_resourceallprinters_defineaccess.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration1_welcome.png b/doc/kdeprint/cupsserverconfiguration1_welcome.png
deleted file mode 100644
index 50bd9ba3a..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration1_welcome.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration2_general.png b/doc/kdeprint/cupsserverconfiguration2_general.png
deleted file mode 100644
index c8e8b01c0..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration2_general.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration3_logging.png b/doc/kdeprint/cupsserverconfiguration3_logging.png
deleted file mode 100644
index 300c31943..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration3_logging.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration4_directories.png b/doc/kdeprint/cupsserverconfiguration4_directories.png
deleted file mode 100644
index e55ab35fc..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration4_directories.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration5_HTTP.png b/doc/kdeprint/cupsserverconfiguration5_HTTP.png
deleted file mode 100644
index 3e46eb17b..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration5_HTTP.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration6_encryption.png b/doc/kdeprint/cupsserverconfiguration6_encryption.png
deleted file mode 100644
index aca75adf0..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration6_encryption.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration7_miscellanious.png b/doc/kdeprint/cupsserverconfiguration7_miscellanious.png
deleted file mode 100644
index 6a30d103e..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration7_miscellanious.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration8_networkgeneral.png b/doc/kdeprint/cupsserverconfiguration8_networkgeneral.png
deleted file mode 100644
index a0a40da20..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration8_networkgeneral.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration9_networkclients.png b/doc/kdeprint/cupsserverconfiguration9_networkclients.png
deleted file mode 100644
index 89b30dfe9..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration9_networkclients.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration_resourceadminaccessmasks.png b/doc/kdeprint/cupsserverconfiguration_resourceadminaccessmasks.png
deleted file mode 100644
index 147830184..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration_resourceadminaccessmasks.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration_resourceadminaddprinters.png b/doc/kdeprint/cupsserverconfiguration_resourceadminaddprinters.png
deleted file mode 100644
index 295a0970a..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration_resourceadminaddprinters.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration_resourceadminaddprinters_defineaccess.png b/doc/kdeprint/cupsserverconfiguration_resourceadminaddprinters_defineaccess.png
deleted file mode 100644
index 3b3b4eb04..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration_resourceadminaddprinters_defineaccess.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration_resourceadminauthorization.png b/doc/kdeprint/cupsserverconfiguration_resourceadminauthorization.png
deleted file mode 100644
index 1b388a6cb..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration_resourceadminauthorization.png and /dev/null differ
diff --git a/doc/kdeprint/cupsserverconfiguration_securityoverview.png b/doc/kdeprint/cupsserverconfiguration_securityoverview.png
deleted file mode 100644
index bed1d3df6..000000000
Binary files a/doc/kdeprint/cupsserverconfiguration_securityoverview.png and /dev/null differ
diff --git a/doc/kdeprint/extensions.docbook b/doc/kdeprint/extensions.docbook
deleted file mode 100644
index c14691d51..000000000
--- a/doc/kdeprint/extensions.docbook
+++ /dev/null
@@ -1,57 +0,0 @@
-<chapter id="extensions-to-all-printsubsystems">
-<title>&tdeprint; Extensions To All Print Subsystems</title>
-
-<sect1>
-<title><quote>Virtual</quote> Printers</title>
-
-<sect2>
-<title>The <quote>Fax</quote> Printer</title>
-
-<para>To be written</para>
-
-</sect2>
-
-<sect2>
-<title>The <quote>File</quote> Printer</title>
-
-<para>To be written</para>
-
-</sect2>
-
-<sect2>
-<title>The <quote><acronym>PDF</acronym></quote> Printer</title>
-
-<para>To be written</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="external-filters">
-<title><quote>External</quote> Filters</title>
-
-<sect2>
-<title>The <command>enscript</command> Filter for Text Files</title>
-
-<para>To be written</para>
-
-</sect2>
-
-<sect2>
-<title>The <quote>n-up</quote> Filter for Any File</title>
-
-<para>To be written</para>
-
-</sect2>
-
-<sect2>
-<title>Three different <quote>Make Pamphlet</quote> Filters for
-&PostScript; Files</title>
-
-<para>To be written</para>
-
-</sect2>
-
-</sect1>
-
-</chapter>
diff --git a/doc/kdeprint/external-command.docbook b/doc/kdeprint/external-command.docbook
deleted file mode 100644
index 1a1135d7c..000000000
--- a/doc/kdeprint/external-command.docbook
+++ /dev/null
@@ -1,25 +0,0 @@
-<chapter id="external-printcommand-module">
-<title>Module For External Print Command (&Netscape;-like) </title>
-
-<para>This module allows the print command to be specified completely
-(&Netscape;-like). An edit line is added in the print dialog for that
-purpose. Can be used in many cases, for example with a self-made print
-program. </para>
-
-<sect1>
-<title>Overview of provided features</title>
-
-<itemizedlist>
-<listitem>
-<para>Printer management: not supported</para>
-</listitem>
-<listitem>
-<para>Job management: not supported.</para>
-</listitem>
-<listitem>
-<para>Print options: basic control, depending on your knowledge of the
-print command</para>
-</listitem>
-</itemizedlist>
-</sect1>
-</chapter>
diff --git a/doc/kdeprint/final-word.docbook b/doc/kdeprint/final-word.docbook
deleted file mode 100644
index 175afb2f1..000000000
--- a/doc/kdeprint/final-word.docbook
+++ /dev/null
@@ -1,117 +0,0 @@
-<chapter id="final-word-from-author">
-<title>Final word from the Author</title>
-
-<sect1 id="who-am-i">
-<title>Who am I, what is my business? </title>
-
-<para>
-My employer is Danka Deutschland GmbH, a leading and
-manufacturer-independent provider of professional and hi-speed digital
-printing systems, black-and-white as well as color. Danka provides
-hardware, software, service, maintenance, consumables and customized
-solutions for the products in its portfolio.  I work there as a
-System Engineer.  Amongst the brands Danka offers are Heidelberg
-(formerly Kodak), Canon, &Hewlett-Packard;, Hitachi, Infotec and
-EfI.</para>
-
-<para>
-My acquaintance with &Linux; and the Free Software community is not
-too old. When I started to play around with &Linux; at the beginning
-of 1999, my deepest disappointment was the poor support for
-printing. True, I made all our machines spit out simplex prints -- but
-what about duplex? What about punching the output? How to make sorting
-work? Or stapling, cover sheets and all the other beautiful finishing
-options our engines offer to customers? No way -- at least for me as a
-non-geek!</para>
-
-<para>
-I began a search on the Internet for a solution. Fortunately not
-much later, in May 1999, Mike Sweet, principal developer of &CUPS;,
-announced the first Beta release of this superb piece of printing
-software.  After trying it briefly, I knew this was it!</para>
-
-<para>
-Next thing I attempted: to make &Linux; distributions interested in
-this new stuff. Believe me -- it was more than tenacious! They seemed
-to think they already had the best thing they could get in
-printing. One reason probably was that they (and many &Linux;
-developers) never had to think about how to best support a printer
-duplexer -- because one had never come near their own
-desks...</para>
-
-<para>
-Finally, my attempts to make some &Linux; print publications
-interested in &CUPS; <quote>backfired</quote> on me - one editor
-squeezed me into writing a series on the subject myself.  And this is
-how some people started to give me the nickname <quote>CUPS
-Evangelist</quote>. I will not get rid of this nick anytime soon, now
-that even the &kde; people wedged me into their timeframe of
-releases. Oh, boy...</para>
-
-<para>Anyway, &CUPS; is now making its way around the world and it
-might well become a triumphal one: I am a little bit proud to have
-supported and contributed to this from near the beginning.</para>
-
-<para>It should encourage you: even if some more experienced &Linux;
-users than you are skeptical about it, and even if your programming
-skills are next to zero (like mine) - there are a lot of tasks and
-jobs and ideas, and talent that you can contribute to the Free Software
-community. Not least within the &kde; project... ;-)
-</para>
-
-</sect1>
-
-<sect1 id="credits">
-<title>Credits</title>
-
-<para>I'd like to thank...</para>
-<itemizedlist>
-<listitem>
-<para>Mike Sweet for developing &CUPS; in the first place</para>
-</listitem>
-<listitem>
-<para>Jean-Eric Cuendet for starting <application>kups</application>
-and <application>qtcups</application>, the predecessors of
-&tdeprint;</para>
-</listitem>
-<listitem>
-<para>Michael Goffioul for doing all the hard work recently</para>
-</listitem>
-<listitem>
-<para>Martin Konold for thinking twice</para>
-</listitem>
-<listitem>
-<para>Sven Guckes for teaching me a few things about the art of <quote>survival
-on the terminal</quote> (just in case &kde; is not there ;-) )</para>
-</listitem>
-<listitem>
-<para>...too numerous others to mention who also let me snatch bits
-and bytes of knowledge
-off them</para>
-</listitem>
-<listitem>
-<para> and last, but not least: Tom Schwaller for encouraging me
-to get into <quote>documentation
-writing</quote></para>
-</listitem>
-</itemizedlist>
-
-</sect1>
-
-<sect1 id="caveats">
-<title>Caveats</title>
-
-<para>&tdeprint; has been developed on a system using &CUPS; 1.1.6.
-&tdeprint; has been tested on other versions of &CUPS; and so
-far no incompatibilities are known. By the time of writing
-this Handbook, &CUPS; 1.1.9 is out with a few new features
-not yet supported by &tdeprint;. Of course you are able to
-access these features, but you will need to bypass &tdeprint;
-and use the &CUPS; command-line tools or edit configuration
-files manually. &tdeprint;'s development will go on and this
-Handbook strives to always be the best available user documentation
-resource for it.</para>
-
-</sect1>
-
-</chapter>
diff --git a/doc/kdeprint/getting-started.docbook b/doc/kdeprint/getting-started.docbook
deleted file mode 100644
index 9ef1500b7..000000000
--- a/doc/kdeprint/getting-started.docbook
+++ /dev/null
@@ -1,143 +0,0 @@
-<chapter id="getting-started">
-<title>Getting Started</title>
-
-<para>This chapter of the &tdeprint; Handbook will walk you through most
-of the configuration or selection options of &tdeprint;.  It will mainly
-deal with &CUPS; in this version, as the author is most familiar with
-it, and also because &tdeprint; started off with supporting &CUPS;
-best.  Later versions of the &tdeprint; software and editions of this
-handbook will support and explore other printing
-systems more closely.</para>
-
-<sect1 id="selecting-your-print-subsystem">
-<title>Selecting Your Print Subsystem</title>
-
-<para>You need to define your print subsystem, before you are able to
-install any printer with the &tdeprint; framework.  There are two areas
-where you can define this: either in &kcontrol; (The <guilabel>Printing
-Manager</guilabel> section), or directly and <quote>on the fly</quote>
-from the print dialog.</para>
-
-<para>Navigate to <menuchoice><guimenu>K Menu</guimenu>
-<guisubmenu>Preferences</guisubmenu> <guisubmenu>System</guisubmenu>
-<guimenuitem>Printing Manager</guimenuitem></menuchoice>.  At the bottom
-you can see a button that lets you select which printing subsystem you
-want to use.  In &kde; 2.2 you can choose from the following
-alternatives:</para>
-
-<itemizedlist>
-<listitem>
-<para>&CUPS; (Common &UNIX; Printing System)</para>
-</listitem>
-<listitem>
-<para>Print through an external program (generic)</para>
-</listitem>
-<listitem>
-<para><acronym>LPR</acronym> (Standard <acronym>BSD</acronym> Print
-System)</para>
-</listitem>
-<listitem>
-<para>Generic &UNIX; <acronym>LPD</acronym> print system (the
-default)</para>
-</listitem>
-<listitem>
-<para><acronym>RLPR</acronym> environment (print to remote
-<acronym>LPD</acronym> servers from the command line)</para>
-</listitem>
-</itemizedlist>
-
-<para>Of course, the chosen system must be installed, and up and running on
-your box prior to your selection, or before it takes effect.  <!-- The -->
-<!-- authors personal recommendation is &CUPS; -->
-</para>
-
-<para>On it's first startup, &tdeprint; will try an autodetection.  This
-only works for:</para>
-
-<itemizedlist>
-<listitem>
-<para>&CUPS;, as it is checking first for a running &CUPS; daemon</para>
-</listitem>
-<listitem>
-<para><acronym>LPD</acronym>, as it is checking for a running
-<acronym>LPD</acronym> daemon, plus a <filename>printcap</filename>
-file.</para>
-</listitem>
-</itemizedlist>
-
-<!-- <para>
-Go to System->XY->ABC. Now you can choose from the following
-alternatives: 
-</para>-->
-
-<para>The system you choose must be installed on your system prior to
-your selection.  The author's personal recommendation is
-&CUPS;.</para>
-
-<para>Once autodetected, chosen, or changed, the active print
-subsystem will take effect for all &kde; applications.  Different
-users may have different print subsystems in use, if those do exist on
-the computer and are compliant with each other.  Their settings are
-stored in the <filename>tdeprintrc</filename>.  This file is unique to
-every user, and is normally installed in
-<filename>$<envar>HOME</envar>/.kde/share/config/tdeprintrc</filename>.</para>
-
-<warning>
-<para>This file is not intended to be directly editable, and all
-available options can be set from the &tdeprint; &GUI;.</para>
-</warning>
-
-<para>You may even select a different printer subsystem, on the fly, from
-the &kprinter; dialog box.</para>
-
-</sect1>
-
-<sect1 id="working-with-printing-manger">
-<title>Working with the Printing Manager</title>
-
-<para>Once you have chosen your preferred and installed print subsystem,
-you are ready to investigate, configure administer and work with this
-system through the &tdeprint; framework.</para>
-
-<para>Navigate to <menuchoice><guimenu>K Menu</guimenu>
-<guisubmenu>Preferences</guisubmenu> <guisubmenu>System</guisubmenu>
-<guimenuitem>Printing Manager</guimenuitem></menuchoice>.  In the right
-part of the window you will see at least 4 printers predefined.  These
-are the virtual or special purpose printers, explained in section <!-- <xref 
-linkend="FIXME"/> -->.  You will probably see a toolbar with 13 icons at the
-top of the window, and at least 4 tabs in the lower half of the window,
-labeled <guilabel>Information</guilabel>, <guilabel>Jobs</guilabel>,
-<guilabel>Properties</guilabel> and
-<guilabel>Instances</guilabel>.</para>
-
-<!-- Not needed: the default view is as described, this can be mentioned -->
-<!-- elsewhere <para>If you start the <guilabel>Printing -->
-<!-- Manager</guilabel> module for the first time, you may be missing -->
-<!-- Icons or tabs. <mousebutton>Right</mousebutton>-clicking the mouse -->
-<!-- on the white background of the right part of the window opens a -->
-<!-- Menu to select your viewing preferences. To get the same view as in -->
-<!-- most screenshots, select: <guimenuitem>View Toolbar</guimenuitem> -->
-<!-- and <guimenuitem>View Printer Information</guimenuitem> and -->
-<!-- <guimenuitem>View Icons</guimenuitem> and <guimenuitem>Orientation -->
-<!-- Vertical</guimenuitem>. Moving the mouse over one Button and -->
-<!-- waiting a second gives you a tooltip hint about its functions. -->
-
-<!-- 
-
-3.3 Selection: &CUPS; or other?
-
-If your selection of the print system is &CUPS;, you will have more 
-choices at your fingertips than with any other printing 
-system. &CUPS; is new to most Linux users (even the senior
-hackers amongst us), and it is quite easy to use. But it
-is at the same time very different from other printing systems.
-Therfor the &CUPS; part in the &tdeprint; Handbook is naturally
-the most detailed.
-
-Future editions of the &tdeprint; handbook will describe in
-more detail the other systems.
--->       
-
-</sect1>
-
-</chapter>
diff --git a/doc/kdeprint/highlights.docbook b/doc/kdeprint/highlights.docbook
deleted file mode 100644
index 72982c10c..000000000
--- a/doc/kdeprint/highlights.docbook
+++ /dev/null
@@ -1,518 +0,0 @@
-<chapter id="tdeprint-highlights">
-<title>&tdeprint;'s Highlights</title>
-
-<para>The new &tdeprint; system includes more than one highlight.
-Having worked in an environment in the past that is not exactly
-sophisticated, as far as printing is concerned, take a look at some of
-the benefits that come with &tdeprint;</para>
-
-<sect1 id="add-printer-wizard">
-<title>The <quote>Add Printer</quote> Wizard</title>
-
-<para>&tdeprint; has an <quote>Add Printer Wizard</quote>.  The Add
-Printer Wizard helps you with adding and configuring a new printer.  Of
-course, you may do this manually as well.</para>
-
-<para>&tdeprint; helps you <quote>discover</quote> printers. It is able
-to scan the environment for available devices and queues. This works for
-network connections using <acronym>TCP</acronym> (AppSocket,
-<acronym>aka</acronym> &HP; <trademark
-class="registered">JetDirect</trademark>, or <acronym>IPP</acronym>) or
-<acronym>SMB</acronym>/Samba (<quote>shared</quote> &Windows;) printers
-and partially for directly attached printers over parallel, serial, or
-<acronym>USB</acronym> connections.</para>
-
-<screenshot>
-<screeninfo>A screenshot of the new <quote>Add Printer
-Wizard</quote></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cupsaddprinterwizard1.png" format="PNG"/>
-</imageobject>
-<textobject>
-<phrase>Here's a screenshot of the <quote>Add Printer Wizard</quote>
-(this one is not very exciting yet; but...)</phrase>
-</textobject>
-</mediaobject>
-</screenshot>
-
-<para>The wizard makes the installation and handling of the drivers
-<quote>a snap</quote>. Selecting, configuring and testing should be easy
-as never before on any &Linux;-like system.</para>
-
-<!-- LW: needs some info where to find it, or a pointer to where in this -->
-<!-- doc that is covered -->
-
-</sect1>
-
-<sect1 id="print-job-control">
-<title>Full Print Job Control</title>
-
-<para>The Print Job Viewer is automatically started by &kprinter;.  It
-may be docked into the &kde; panel (in the system tray).  The Print Job
-Viewer allows full job management, if supported by the print
-subsystem.</para>
-
-<para>You can:</para>
-
-<itemizedlist>
-<listitem>
-<para>Hold and release jobs,</para>
-</listitem>
-<listitem>
-<para>Move pending jobs to another printer,</para>
-</listitem>
-<listitem>
-<para>Cancel pending or processing jobs.</para>
-</listitem>
-</itemizedlist>
-
-<para>A screenshot of the &tdeprint; PrintJob Viewer shows the information
-you get: Job-ID, target printer, job name, job owner, job status and job
-size. In the next &tdeprint; release you will also see information about the
-number of pages (as &CUPS; calculates it; see chapter on page accounting
-for more information about its merits and limitations).</para>
-
-<screenshot>
-<screeninfo>A screenshot of the &tdeprint; PrintJob Viewer</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="tdeprint-jobviewer.png" format="PNG"/>
-</imageobject>
-<textobject>
-<phrase>Here's a screenshot of the &tdeprint; PrintJob Viewer.</phrase>
-</textobject>
-<caption><para>A screenshot of the &tdeprint; PrintJob
-Viewer.</para></caption>
-</mediaobject>
-</screenshot>
-
-<para>An alternative way to looking at the same information (and having the
-same amount of control is through the <inlinemediaobject><imageobject>
-<imagedata fileref="kcontrol-icon.png" format="PNG"/></imageobject>
-</inlinemediaobject> &kcontrolcenter; selecting
-<menuchoice><guilabel>System</guilabel><guilabel>Printing
-Manager</guilabel></menuchoice>. If you don't see the
-<guilabel>Printer Information</guilabel>,
-<mousebutton>right</mousebutton> click on the window
-background and select <guilabel>View Printer
-Information</guilabel>. Then go to the <guilabel>Jobs</guilabel> tab
-to see this:</para>
-
-<screenshot>
-<screeninfo></screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="kcontrolcenter-printmanager-jobcontrol-2.png" format="PNG"/>
-</imageobject>
-<textobject>
-<phrase>Here's a screenshot of the &tdeprint; PrintJob Viewer.</phrase>
-</textobject>
-</mediaobject>
-</screenshot>
-
-</sect1>
-
-<sect1 id="modules-for-different-subsystems">
-<title>Modules for different print subsystems</title>
-
-<para>&tdeprint; uses different modules to realize the interface to the
-possible print subsystems.  Not all the modules are yet developed fully,
-but you will have basic printing functionality with:</para>
-
-<itemizedlist>
-<listitem>
-<para><acronym>LPD</acronym> (<acronym>BSD</acronym> style)</para>
-</listitem>
-<listitem>
-<para><acronym>LPRng</acronym> (&RedHat;, if you just use it's
-<acronym>BSD</acronym> style subset),</para>
-</listitem>
-<listitem>
-<para><acronym>RLPR</acronym> (a command-line <acronym>LPR</acronym>
-utility, which doesn't need a <filename>printcap</filename> file.</para>
-</listitem>
-<listitem>
-<para><quote>external</quote> print commands (&Netscape; like).</para>
-</listitem>
-</itemizedlist>
-
-<para>Most importantly, full support for &CUPS; is already there.
-Modules for other print subsystems, such as <acronym>PLP</acronym>,
-<acronym>PPR</acronym> and <acronym>PDQ</acronym> may be available
-later.</para>
-
-<para>&tdeprint; makes &kde; much more flexible.  It gives freedom of
-choice to &kde; 2.2 users.  To use different available print subsystems,
-these must, of course, be installed independently from &kde;.  In
-former versions, users were stuck with the old <acronym>LPD</acronym>
-style print subsystems.  Now they can even use &CUPS;. In the future,
-there will be easy integration of new subsystems, as they
-appear on the scene.</para>
-
-</sect1>
-
-<sect1 id="tdeprint-goodies">
-<title>More &tdeprint; <quote>Goodies</quote></title>
-<subtitle>Benefitting all Print SubSystems.</subtitle>
-
-<para>Some specific features of &tdeprint; depend on the chosen print
-subsystem.  This dependency might exist because those features are only
-implemented there; remember, &tdeprint; is an intermediate layer between
-&kde; applications, and the print subsystem, but it's no replacement for
-any print subsystem by itself.  Such dependency may exist for another
-reason: that &tdeprint; has not yet implemented an interface to all the
-features of all the subsystems.</para>
-
-<para>Other features include benefits from &tdeprint; that are
-independent of the chosen print subsystem, and are available with all of
-them.  At present there are <quote>special</quote> or
-<quote>virtual</quote> printers, and some generic
-<quote>pre-filters</quote>.</para>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Print Preview</guilabel></term>
-<listitem>
-<para>From the Print Dialog, you can select to look at a preview.  For
-this, the print file is passed through filters which make it suitable for
-displaying on screen using &kghostview;.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Special Printers</guilabel></term>
-<listitem>
-<para>Amongst these additional &tdeprint; features are a few
-<quote>special</quote> or <quote>virtual</quote> printers:</para>
-
-<para>These special printers may:</para>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Print to PDF</guilabel></term>
-<listitem>
-<para>Convert your document into a <acronym>PDF</acronym> file with the
-help of an external program.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Print to email</guilabel></term>
-<listitem>
-<para>Send your document as an email attached <acronym>PDF</acronym>
-file.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Print to PS file</guilabel></term>
-<listitem>
-<para>Save your document as a &PostScript; file.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Print to Fax</guilabel></term>
-<listitem>
-<para>Send it through an available backend, such as
-<application>Hylafax</application> as a fax.</para>
-</listitem>
-</varlistentry>
-
-</variablelist>
-
-<para>These <quote>special</quote> printers appear in the user print
-dialog just like <quote>normal</quote> printers.  They are entirely
-configurable on a per-user basis.</para>
-
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Generic Pre-Filtering</guilabel></term>
-<listitem>
-<para>&tdeprint; provides you with a framework to define and configure
-your own <quote>pre-filters</quote>.  These pre-filters may take effect
-<emphasis>before</emphasis> they are passed to your print subsystem for
-further processing, but <emphasis>after</emphasis> the (&PostScript;,
-plain text or other) print files have been generated by your
-application.</para>
-
-<para>There are a few useful filters already predefined. These
-are:</para>
-
-<itemizedlist>
-<listitem>
-<para>The <quote>multiple pages per sheet</quote> filter,</para>
-</listitem>
-
-<listitem>
-<para>the <quote>enscript</quote> text filter,</para>
-</listitem>
-
-<listitem>
-<para>and three filters to help print pamphlets.</para>
-</listitem>
-</itemizedlist>
-
-<para>You may create your own filters based on any third party program
-that is able to process &PostScript;, plain text or image files, and output
-any one of those formats.</para>
-
-<para>These filters are configured through <acronym>XML</acronym> files.
-This makes an extension of the concept very easy for experienced developers,
-but end-user configuration is also done through an intuitive graphical
-user interface.  So, fear not, you don't need to learn
-<acronym>XML</acronym> because of &tdeprint;!</para>
-
-<variablelist>
-<varlistentry>
-<term><guilabel>Multiple Pages Per Sheet Filter</guilabel></term>
-<listitem>
-<para>This is a predefined filter that installs with &tdeprint;.  It
-allows you to create a modified &PostScript; output, from &PostScript;
-input, that prints 1, 2, or 4 logical pages on a single sheet of
-paper.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Enscript Text Filter</guilabel></term>
-<listitem>
-<para>This is a predefined filter that installs with &tdeprint;.  It
-allows you to create &PostScript; output from any text file input, that
-includes syntax highlighting for program listings, pretty-printing, and
-nice configurable page frames and headers.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><guilabel>Pamphlet Printing Filters</guilabel></term>
-<listitem>
-<para>If your printer is able to produce duplex output, using either
-one-pass or two-pass technology, you may be able to use one, or a
-combination, of the <quote>pamphlet</quote> filters.</para>
-
-<para>For duplexing printers, make sure you use the duplex option that
-<quote>turns</quote> the output along the short paper edge.  Folding the
-printed paper along the middle turns your document into a nice pamphlet.</para>
-
-<para>If you are stuck with using a simplex-only device, you can do the
-same, using two different filters and a few additional steps.</para>
-
-<para>Depending on your model, first use the filter for printing the
-<quote>odd</quote> pages, then insert the paper in the correct order
-back into the paper tray to get the even pages printed on the reverse
-side.  These can then be folded to make a pamphlet.</para>
-</listitem>
-</varlistentry>
-
-</variablelist>
-
-</listitem>
-</varlistentry>
-</variablelist>
-</sect1>
-<sect1 id="cups-plugin">
-<title>&CUPS; Support: the Most Important Module in &tdeprint;</title>
-
-<para>&tdeprint; contains a module for &CUPS;.  &CUPS;, the
-<quote>Common &UNIX; Printing System</quote> (<ulink
-url="http://www.cups.org">http://www.cups.org/</ulink>), is the most
-advanced, powerful and flexible of all print subsystems on &UNIX; and
-other &UNIX;-like operating systems.  It is still quite new on the
-horizon, but is based on <acronym>IPP</acronym>, the Internet Printing
-Protocol, the newly emerging standard for the future of network
-printing. &CUPS; is clearly the print system of choice for Michael
-Goffioul, the principal &tdeprint; developer.</para>
-
-<para>Experienced &kde; users may already be familiar with Michael's
-utilities <application>qtcups</application> and
-<application>kups</application> (co-developed with Jean-Eric Cuendet).
-These were, up until now, the graphical
-&GUI; front ends for &CUPS; with a strong relation to &kde;.</para>
-
-<sect2>
-<title><application>qtcups</application> and
-<application>kups</application> &mdash; The Predecessors</title>
-
-<para>Both utilities are probably still widely used. For those
-not familiar with them,
-here are brief explanations.</para>
-
-<para><application>qtcups</application> was a graphical front end for
-the <command>lp</command> or <command>lpr</command> print commands as
-installed by &CUPS;. Using <application>qtcups</application> opened a
-dialog.  This dialog let you comfortably select your printer and the
-print job options. <application>qtcups</application>
-worked from the command line, or from
-within applications, when the application in question had a configurable
-print command.</para>
-
-<para><application>kups</application> was a graphical wrapper to do the
-administration tasks for your &CUPS; server, and the &CUPS; daemon at
-the heart of it.  You could add, delete, modify, configure, start, and
-stop printers.  You could cancel, delete, move, stop and restart print
-jobs, and you could change the settings of the daemon, start, stop, and
-restart it.</para>
-
-</sect2>
-
-<sect2>
-<title>&tdeprint; &mdash; The Heir</title>
-
-<para>The &CUPS; Module in &tdeprint; now contains all (and more)
-functions that were provided by <application>qtcups</application> and
-<application>kups</application> in former &kde; versions.</para>
-
-<para>Instead of <command>qtcups</command> you can now use the
-<command>kprinter</command> command.  And in place of
-<command>kups</command> you will probably use
-<command>kcmshell printers</command> from now on.
-</para>
-
-<para>The &tdeprint; module for &CUPS; also lets you fully administer
-the print subsystem, just like <application>kups</application> did
-before. It can start, stop and configure your &CUPS; daemon. It can also
-start, stop, add and delete <quote>printers</quote> (&ie; printer
-queues) and printer <quote>instances</quote>.  Printer instances are
-printer queues that point to the same physical output device but with a
-different default setting of print options.</para>
-
-</sect2>
-
-<sect2>
-<title>&kprinter; &mdash; Graphical Print Command</title>
-
-<para>&tdeprint;'s &CUPS; module gives you access to a <quote>graphical
-print command</quote>, like <application>qtcups</application> did
-before.</para>
-
-<para>Use &kprinter; in any application, even a non-&kde;
-application, that lets you configure your print command.  Examples of
-these are &Netscape; and <application>StarOffice</application>, but
-<emphasis>not</emphasis> most pre-&kde; 2.2 programs.</para>
-
-<para>A screenshot how to use the new <command>kprinter</command>
-print command instead of the old-fashioned <command>lpr</command>...
-Of course you need to have <command>kprinter</command> in your
-$<envar>PATH</envar>, or give the full path in the dialog; &eg;
-<userinput><filename>/opt/kde/bin/kprinter</filename></userinput>.
-&Netscape; will remember this and with further print jobs you will get
-the <command>kprinter</command> dialog to configure your printouts.</para>
-
-<screenshot>
-<screeninfo>A screenshot of the <command>kprinter</command> print
-command in action.</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="kprinter-as-netscape-printcommand.png" format="PNG"/>
-</imageobject>
-<textobject>
-<phrase>Here's a screenshot showing how to use the new
-<command>kprinter</command> print command
-instead of the old-fashioned <command>lp</command> or
-<command>lpr</command> in &Netscape;.</phrase>
-</textobject>
-</mediaobject>
-</screenshot>
-
-<para>You can also use <command>&kprinter;</command> from the
-command line and see the resulting dialog box pop up:</para>
-
-<screenshot>
-<screeninfo>Screenshot of the <command>kprinter</command> command</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="kprinter.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Screenshot showing use of the <command>kprinter</command> command
-from the command line.</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-<note><para>Just make sure you give at least the file to be printed
-from the command line as well: <userinput><command>kprinter</command>
-<option>/usr/share/doc/packages/cups/sam.pdf</option></userinput>.
-This will hand over the &CUPS; Software Administrator Manual to the
-<command>kprinter</command> dialog, which will then pop up with the
-default printer pre-selected.</para>
-
-<para>To pre-select a specific printer from the command line, use the
-<option>-d</option> option, &eg;:
-<userinput><command>kprinter</command> <option>-d
-DANKAcolorC2000</option>
-<option>/home/kurt/linuxtag2001-paper.ps</option></userinput>.  You
-can still de-select the printer <option>DANKAcolorC2000</option> and
-choose a different one.</para>
-
-<para> You <emphasis>cannot</emphasis> however call
-<userinput><command>kprinter</command></userinput> 
-without a print file and hope to open a file selection
-dialog box from the &kprinter; window. This is a feature that will be
-implemented only in the next version.</para>
-</note>
-
-<para>Using <command>kprinter</command> you are able to <quote>ring
-all the bells and blow all the whistles</quote> of your printer.  You
-will need a device-specific so-called &PPD; (&PostScript; Printer
-Description) to enable &CUPS; to make this nice tandem team do this
-for you.  Read more about this in <xref linkend="ppd-files"/>.</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="future-plans">
-<title>Plans for Future Development</title>
-
-<para>What you have now is the first, already very feature-rich
-version of &tdeprint;. This version is, of course, fully usable for
-printing. You might even think that <quote>it was never so
-easy</quote> (not even back in the days when you had to use
-&Microsoft; &Windows;).</para>
-
-<para> In the future, &tdeprint; will become even better. It will do a
-better job of <quote>detecting</quote> your installed print subsystem
-itself. Already &tdeprint; is doing quite well in automatically
-sensing if you have &CUPS; on your system. But in many cases you will
-have to tell &tdeprint; what you are using, if you want to keep a
-legacy print system.</para>
-
-<para>The most important improvement in the near future will be a
-completion of the <application>LPRng</application> plugin.  This at
-present is still very basic.  It is restricted to the pure classical
-<acronym>LPD</acronym> part of
-<application>LPRng</application>.</para>
-
-<para>Also, you may be able to add printers directly from the print
-dialog to your system <quote>just in time</quote>, without going to
-&kcontrol; first.</para>
-
-<para>Some smaller improvements already planned are:</para>
-
-<itemizedlist>
-<listitem><para>add a file selection dialog from the &kprinter; window
-to allow combining of additional files to the present
-printjob</para></listitem> <listitem><para>add a
-<quote>history</quote> button to the
-<application>KJobViewer</application> window and also a column to show
-the number of pages &CUPS; calculates for the job.</para></listitem>
-</itemizedlist>
-
-<para>Finally, there will be an <quote>IO slave</quote> that will give
-you access to your print subsystem, via &konqueror; for example.  With
-this you will soon be able to browse your print subsystem from
-&konqueror; through a &URL; like shortcut such as
-<userinput>print://printers/printername</userinput>.  A KPart will add
-a virtual folder to the services section of the &konqueror; navigation
-panel, giving a nice integrated way to browse and manage your print
-system via the &URL; <userinput>print:/manager</userinput>.</para>
-
-<para>Please contact Michael Goffioul at <email>tdeprint@swing.be</email>
-with any further user or developer suggestions.</para>
-
-</sect1>
-</chapter>
diff --git a/doc/kdeprint/index.docbook b/doc/kdeprint/index.docbook
deleted file mode 100644
index 977d9a6f4..000000000
--- a/doc/kdeprint/index.docbook
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" 
-"dtd/kdex.dtd" [
-  <!ENTITY CUPS "<acronym>CUPS</acronym>">
-  <!ENTITY PPD "<acronym>PPD</acronym>">
-  <!ENTITY IPP "<acronym>IPP</acronym>">
-  <!ENTITY ghostscript "<application>ghostscript</application>">
-  <!ENTITY tech-overview-doc SYSTEM "tech-overview.docbook">
-  <!ENTITY highlights-doc SYSTEM "highlights.docbook">
-  <!ENTITY getting-started-doc SYSTEM "getting-started.docbook">
-  <!ENTITY theory-doc SYSTEM "theory.docbook">
-  <!ENTITY cups-configuration-doc SYSTEM "cups-config.docbook">
-  <!ENTITY add-printer-wizard-2-doc SYSTEM "add-printer-wiz.docbook">
-  <!ENTITY cupsoptions-presently-outside-kcontrol-doc SYSTEM 
-"cupsoptions.docbook">
-  <!ENTITY rlpr-doc SYSTEM "rlpr.docbook">
-  <!ENTITY lpd-doc SYSTEM "lpd.docbook">
-  <!ENTITY lpr-bsd-doc SYSTEM "lpr-bsd.docbook">
-  <!ENTITY lprng-doc SYSTEM "lprng.docbook">
-  <!ENTITY external-command-doc SYSTEM "external-command.docbook">
-  <!ENTITY extensions-doc SYSTEM "extensions.docbook">
-  <!ENTITY final-word-doc SYSTEM "final-word.docbook">
-  <!ENTITY kappname "&tdeprint;"><!-- replace kapp here -->
-  <!ENTITY % addindex "IGNORE">
-  <!ENTITY % English "INCLUDE"><!-- change language only here -->
-]>
-	
-<book lang="&language;">
-  
-<bookinfo>
-<title>The &tdeprint; Handbook</title>
-
-<authorgroup>
-<author>
-<firstname>Kurt</firstname>
-<surname>Pfeifle</surname>
-<affiliation>
-<address><email>kpfeifle@danka.de</email></address>
-</affiliation>
-</author>
-        
-<othercredit role="developer">
-<firstname>Michael</firstname>
-<surname>Goffioul</surname>
-<affiliation>
-<address><email>tdeprint@swing.be</email></address>
-</affiliation>
-<contrib>Developer</contrib>
-</othercredit>
-
-<othercredit role="reviewer">
-<firstname>Lauri</firstname>
-<surname>Watts</surname>
-<affiliation>
-<address><email>lauri@kde.org</email></address>
-</affiliation>
-<contrib>Reviewer</contrib>
-</othercredit>
-
-<!-- TRANS:ROLES_OF_TRANSLATORS -->
-
-</authorgroup>
-
-<copyright>
-<year>2001</year>
-<holder>Kurt Pfeifle</holder>
-</copyright>
-
-<legalnotice>&FDLNotice;</legalnotice>
-
-<date>2001-08-09</date>
-<releaseinfo>1.00.04</releaseinfo>
-
-<abstract>
-<para>This handbook describes &tdeprint;. &tdeprint; is not a standalone
-program. It is the new printing framework for &kde; 2.2. &tdeprint;
-is an intermediate layer between &kde; (or other) applications and the selected
-(and installed) print subsystem of your OS (&OS;).</para>
-</abstract>
-
-<keywordset>
-<keyword>KDE</keyword>
-<keyword>kdebase</keyword>
-<keyword>tdeprint</keyword>
-<keyword>print</keyword>
-<keyword>printing</keyword>
-<keyword>CUPS</keyword>
-<keyword>LPR</keyword>
-</keywordset>
-
-</bookinfo>
-
-<chapter id="introduction">
-<title>Introduction</title>
-
-<para>This handbook describes &tdeprint;. &tdeprint; is not a standalone
-program. It is the new printing framework for &kde; 2.2. &tdeprint;
-is an intermediate layer between &kde; (or other) applications and the selected
-(and installed) print subsystem of your OS (&OS;).</para>
-
-<para>It should be noted that both the developer of this application,
-and the author of this document are most familiar with &CUPS; as a
-printing system.  At the time of writing, &CUPS; is the best supported
-printing subsystem, and it is the best documented.</para>
-
-<para>This handbook is a work in progress, and later versions of the
-&tdeprint; software and editions of this handbook will support and
-explore more closely other printing systems.</para>
-
-<para>In the meantime, even if your printing subsystem is not yet well
-covered, you are encouraged to explore the <guilabel>Printing
-Manager</guilabel> module in &kcontrol;, and you will find its
-operation to hopefully be fairly self evident, no matter what printing
-subsystem you use.</para>
-
-<para>Lauri Watts, &kde; documentation team</para>
-
-<!-- Insert here screenshot : <steinbruch_scaled.png> -->
-
-<sect1>
-<title>To configure your printing subsystem from &kcontrol;</title>
-
-<para>To configure your printing subsystem from &kcontrol;, go to
-<menuchoice><guilabel>System</guilabel><guilabel>Printing
-Manager</guilabel></menuchoice> and select your subsystem. Or you can
-let &tdeprint; try to determine it... </para>
-
-<screenshot>
-<screeninfo>&CUPS; Printing Manager dialog: overview via &kcontrol;</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="steinbruch_scaled.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>The dialog to configure the &CUPS; server: security 
-settings</phrase></textobject>
-<caption><para>Configuration of printing subsystem from 
-&kcontrol;</para></caption>
-</mediaobject>
-</screenshot>
-</sect1>
-
-</chapter>
-
-&tech-overview-doc;
-
-&highlights-doc;
-
-&theory-doc;
-
-&getting-started-doc;
-
-&cups-configuration-doc;
-
-&add-printer-wizard-2-doc;
-
-&cupsoptions-presently-outside-kcontrol-doc;
-
-&rlpr-doc;
-
-&lpd-doc;
-
-&lpr-bsd-doc;
-
-&lprng-doc;
-
-&external-command-doc;
-
-&extensions-doc;
-
-&final-word-doc;
-
-<chapter id="credits-and-license">
-<title>Credits And Licenses</title>
-
-<para>&tdeprint; copyright 2001, Michael Goffioul
-<email>tdeprint@swing.be</email></para>
-&underGPL;
-
-<para>Documentation copyright 2001, Kurt Pfeifle,
-<email>kpfeifle@danka.de</email></para>
-&underFDL;
-
-<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
-
-</chapter>
-
-</book>
-
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
-
-// vim:ts=2:sw=2:tw=78:noet
--->
diff --git a/doc/kdeprint/kcontrol-icon.png b/doc/kdeprint/kcontrol-icon.png
deleted file mode 100644
index 8fbaacd79..000000000
Binary files a/doc/kdeprint/kcontrol-icon.png and /dev/null differ
diff --git a/doc/kdeprint/kcontrolcenter-printmanager-jobcontrol-2.png b/doc/kdeprint/kcontrolcenter-printmanager-jobcontrol-2.png
deleted file mode 100644
index d7132b1cd..000000000
Binary files a/doc/kdeprint/kcontrolcenter-printmanager-jobcontrol-2.png and /dev/null differ
diff --git a/doc/kdeprint/kcron_to_be_printed.png b/doc/kdeprint/kcron_to_be_printed.png
deleted file mode 100644
index 114b26b3c..000000000
Binary files a/doc/kdeprint/kcron_to_be_printed.png and /dev/null differ
diff --git a/doc/kdeprint/kdeprint-jobviewer.png b/doc/kdeprint/kdeprint-jobviewer.png
deleted file mode 100644
index 8182e4317..000000000
Binary files a/doc/kdeprint/kdeprint-jobviewer.png and /dev/null differ
diff --git a/doc/kdeprint/kprinter-as-netscape-printcommand.png b/doc/kdeprint/kprinter-as-netscape-printcommand.png
deleted file mode 100644
index 0780e2a80..000000000
Binary files a/doc/kdeprint/kprinter-as-netscape-printcommand.png and /dev/null differ
diff --git a/doc/kdeprint/kprinter-kivio.png b/doc/kdeprint/kprinter-kivio.png
deleted file mode 100644
index b36b49b89..000000000
Binary files a/doc/kdeprint/kprinter-kivio.png and /dev/null differ
diff --git a/doc/kdeprint/kprinter.png b/doc/kdeprint/kprinter.png
deleted file mode 100644
index f83cfcd4b..000000000
Binary files a/doc/kdeprint/kprinter.png and /dev/null differ
diff --git a/doc/kdeprint/kprinter_called_from_run_command.png b/doc/kdeprint/kprinter_called_from_run_command.png
deleted file mode 100644
index b02070c1d..000000000
Binary files a/doc/kdeprint/kprinter_called_from_run_command.png and /dev/null differ
diff --git a/doc/kdeprint/kprinter_with_kcron_developer_special.png b/doc/kdeprint/kprinter_with_kcron_developer_special.png
deleted file mode 100644
index dc9b785cf..000000000
Binary files a/doc/kdeprint/kprinter_with_kcron_developer_special.png and /dev/null differ
diff --git a/doc/kdeprint/lpd.docbook b/doc/kdeprint/lpd.docbook
deleted file mode 100644
index cc555e399..000000000
--- a/doc/kdeprint/lpd.docbook
+++ /dev/null
@@ -1,18 +0,0 @@
-<chapter id="lpd-module">
-<title>Generic <acronym>LPD</acronym> Module (&UNIX;)</title>
-
-
-<sect1>
-<title>Overview of Provided Features</title>
-
-<para>Module used by default (on first start for example).</para>
-
-<para>Generic module that only allows sending of print jobs. No printer or
-job management supported. It is made to work on a wide variety of &UNIX;
-flavors: &Linux;/<acronym>LPR</acronym>, &HP-UX;, Solaris, &IRIX;.
-It also supports some <application>LPRng</application> extensions (like
-the absence of continuation character <literal>\</literal> in
-<filename>printcap</filename> files).</para>
-
-</sect1>
-</chapter>
diff --git a/doc/kdeprint/lpr-bsd.docbook b/doc/kdeprint/lpr-bsd.docbook
deleted file mode 100644
index 007fbc6e5..000000000
--- a/doc/kdeprint/lpr-bsd.docbook
+++ /dev/null
@@ -1,25 +0,0 @@
-<chapter id="lpr-bsd-style-module">
-<title><acronym>LPR</acronym> (<acronym>BSD</acronym>)</title>
-
-<para>Plain (old?) <acronym>LPR</acronym> support. An
-<acronym>LPRng</acronym> module is in development, and hopefully
-available for 2.3 release.</para>
-
-<sect1>
-<title>Overview of Provided Features</title>
-
-<itemizedlist>
-<listitem>
-<para>Printer management: basic support to add/remove/configure a
-printer, compatible with &RedHat;-6.x systems
-(<command>printtool</command> + rhs-printfilers packages).</para>
-</listitem>
-<listitem>
-<para>Job management: not supported</para>
-</listitem>
-<listitem>
-<para>Print options: basic control</para>
-</listitem>
-</itemizedlist>
-</sect1>
-</chapter>
diff --git a/doc/kdeprint/lprng.docbook b/doc/kdeprint/lprng.docbook
deleted file mode 100644
index 78db2615b..000000000
--- a/doc/kdeprint/lprng.docbook
+++ /dev/null
@@ -1,7 +0,0 @@
-<chapter id="lprng-module">
-<title><application>LPRng</application></title>
-
-<para>An <application>LPRng</application> module for &tdeprint; is in
-development, and hopefully available for the &kde; 2.3 release.</para>
-
-</chapter>
diff --git a/doc/kdeprint/ps-boxes.png b/doc/kdeprint/ps-boxes.png
deleted file mode 100644
index a24f845a7..000000000
Binary files a/doc/kdeprint/ps-boxes.png and /dev/null differ
diff --git a/doc/kdeprint/rlpr.docbook b/doc/kdeprint/rlpr.docbook
deleted file mode 100644
index fab48d7bb..000000000
--- a/doc/kdeprint/rlpr.docbook
+++ /dev/null
@@ -1,18 +0,0 @@
-<chapter id="rlpr-module">
-<title>Module Built Around <application>rlpr</application>
-Utility</title>
-
-<sect1>
-<title>Overview of provided features</title>
-
-<para>Printer management: basic operations are supported
-(add/remove/modify).</para>
-
-<para>Each user can predefine the printers he wants to use by specifying
-the host and related printer queues. Printers are stored on a <quote>per
-user basis</quote>. This module is built around the
-<application>rlpr</application> utility <ulink
-url="http://truffula.com/rlpr/">rlpr</ulink></para>
-
-</sect1>
-</chapter>
diff --git a/doc/kdeprint/steinbruch_scaled.png b/doc/kdeprint/steinbruch_scaled.png
deleted file mode 100644
index 57e6fde76..000000000
Binary files a/doc/kdeprint/steinbruch_scaled.png and /dev/null differ
diff --git a/doc/kdeprint/tech-overview.docbook b/doc/kdeprint/tech-overview.docbook
deleted file mode 100644
index 7a81a48a2..000000000
--- a/doc/kdeprint/tech-overview.docbook
+++ /dev/null
@@ -1,280 +0,0 @@
-<chapter id="technical-overview">
-<title>Technical Overview</title>
-
-<para>This chapter aims to give a technical overview of &tdeprint; which
-non-programmers can comprehend.</para>
-
-<para>&tdeprint; is a new and revolutionary tool to give easy access to
-printing services for both &kde; users and &kde; developers.</para>
-
-<sect1 id="brief-description">
-<title>A Brief Description of &tdeprint;</title>
-
-<para>You can access the functions of &tdeprint; in different ways:
-through the Printing Manger in the &kcontrol;, through the
-<command>kprinter</command> command or through the dialog that pops up
-if you want to print.</para>
-
-<sect2 id="what-tdeprint-is-not">
-<title>What it is <emphasis>not</emphasis></title>
-
-<para>&tdeprint; is <emphasis>not</emphasis> a replacement for the
-printing subsystem itself.  &tdeprint; does <emphasis>not</emphasis>
-therefore give provision for spooling, and it does
-<emphasis>not</emphasis> do the basic processing of &PostScript; or
-other print data.</para>
-
-</sect2>
-
-<sect2 id="what-kde-print-is">
-<title>What it <emphasis>is</emphasis></title>
-<para>&tdeprint; is an intermediate layer between the spooling and the
-data processing print subsystem (as installed), and the application that
-seeks to print.  &tdeprint; provides a common interface for &kde;
-developers and &kde; users, to various supported print subsystems.  At
-the same time, it is customizable, and highly configurable.</para>
-
-<para>&tdeprint; is easy to use for both &kde; developers and end-users.
-Developers can port their applications, with minimal changes, to use
-&tdeprint; instead of the old &Qt; print <quote>system</quote>. Users
-can easily choose and configure their print subsystem.</para>
-
-<para>For a reference to new &kde; users: &Qt; is the basic library and
-graphical toolkit, which is used by all &kde; applications; &Qt; is
-developed by TrollTech, a Norwegian software company.</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="different-users">
-<title>&tdeprint; -- Different Usage for Different People</title>
-
-<para>&tdeprint; has different faces for different people.</para>
-
-<sect2 id="what-users-can-do">
-<title>What users and administrators can do with &tdeprint;</title>
-
-<para>&tdeprint; allows users and/or administrators, depending on their
-rights, access to printing subsystems (&CUPS;, <acronym>LPD</acronym>,
-<acronym>RLPR</acronym>, <application>LPRng</application>,
-<application>PDQ</application> &etc;) through a &kde; graphical user
-interface (&GUI;).  Using &tdeprint;, they can print, administer jobs,
-printers and the printing daemon, all in a comfortable manner.</para>
-
-<para>Experienced users will like the capability to plug any working
-filter for the print data between the output of their application and
-the input, into the chosen print subsystem. Some examples for this
-already ship with <quote>plain vanilla</quote> &tdeprint;. Read
-on.</para>
-
-</sect2>
-
-
-<sect2 id="what-developers-can-do">
-<title>What &kde; developers can do with it...</title>
-
-<para>If a &kde; developer needs printing access for his application, he
-does not code the printing functions from scratch. Before &kde; 2.2 this
-service was provided by the <classname>QPrinter</classname> class, a
-library function of the &Qt; Toolkit. The
-<classname>QPrinter</classname> class relied on the out-moded
-<quote>Line Printer Daemon</quote> (<acronym>LPD</acronym>). The
-&tdeprint; library bases itself firmly on the more modern Common &UNIX;
-Printing System (&CUPS;), while at the same time keeping backward
-compatibility with <acronym>LPD</acronym> and other legacy, or less
-elaborate, print systems. It also <quote>leaves the door open</quote>
-for any new development that might occur.</para>
-
-<para>For &kde; developers to use the new &tdeprint; class in their
-applications, they require only minimal changes to their code: for every
-call of <classname>QPrinter</classname>, they just need to change this to
-<classname>KPrinter</classname>.  Replacing one (!) letter in a few
-spots, and automatically they are done; their application can then use
-all of the features of the new &tdeprint; library.</para>
-
-<para>More ambitious developers, or ones with special requirements, can
-do more: despite &tdeprint;'s feature-rich framework, they are still able
-to customize the print dialog of their application
-by creating an additional <quote>Tab</quote>, where their
-extensions to the standard &tdeprint; will feel right at home.</para>
-
-
-<para>This last mentioned feature has not been used widely inside
-&kde; so far, as developers are not yet fully aware of &tdeprint;'s
-power. Expect more of this in the near future. One example I
-discovered is the &kcron; application. It lets you edit the crontab
-through a &GUI;. The developers have implemented a printing feature
-that lets you (or <systemitem class="username">root</systemitem>)
-choose if you want to print the whole of crontab (for all users) or
-just the part that is marked. You can see the effects on &tdeprint;
-in the following screenshots.</para>
-
-<para>This shot shows a sample from the &kcron; utility.
-<screenshot>
-<screeninfo>&kcron; utility: a small sample of a system's cronjobs as
-shown through the &kde; <acronym>GUI</acronym>&GUI;.</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="kcron_to_be_printed.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>The &kcron; developers let you choose to print the whole of the
-cron table or just the marked part of it.</phrase></textobject>
-</mediaobject>
-</screenshot>
-</para>
-
-<para>The dialog to configure &kcron;'s printing options: the
-additional tab titled <guilabel>Cron Options</guilabel> is from inside
-&kcron;, not &tdeprint;; it is a special extension added by the
-&kcron; developers for printing purposes, not originating from, but
-executed by &tdeprint;. Developers of other applications are free
-to implement their own goodies, if they feel need for it.</para>
-
-
-<screenshot>
-<screeninfo>&kcron;'s addition to the &tdeprint; dialog.</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="kprinter_with_kcron_developer_special.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>&kcron;'s addition to the &tdeprint; dialog.</phrase></textobject>
-<caption>
-<para>&kcron;'s addition to the &tdeprint; dialog.</para>
-</caption>
-</mediaobject>
-</screenshot>
-
-</sect2>
-
-<sect2>
-<title>What &tdeprint; offers to everybody...</title>
-
-<para>&tdeprint;'s easy-to-use interface for all supported print subsystems
-of course does not eliminate basic traditional weaknesses of some of
-those systems. But it smooths some rough edges.  Different users may use
-different printing systems on the same box. A user is free to even
-switch <quote>on the fly</quote>, from the print dialog, the print
-subsystem to be used for the next job. (This is possible if different
-systems are installed in a way that they don't <quote>get in each
-other's way</quote>.)</para>
-
-<para>Most &UNIX; users are used to
-<acronym>LPD</acronym> printing. <acronym>LPD</acronym> provides only
-basic printing functions, is very inflexible and does not utilize the
-many options of more modern print systems like &CUPS;. While also
-working remotely over any distance (like every TCP/IP based protocol),
-<acronym>LPD</acronym> lacks bi-directional communication,
-authentication, access control and encryption support.</para>
-
-<para>&tdeprint; can use &CUPS; to support:</para>
-
-<itemizedlist>
-<listitem>
-<para>Querying the <acronym>LAN</acronym> for available printers,</para>
-</listitem>
-<listitem>
-<para>Basic, Digest, and Certificate Authentication,</para>
-</listitem>
-<listitem>
-<para>Access Control based on <acronym>IP</acronym> addresses, net
-addresses, netmasks, host- and domain names,</para>
-</listitem>
-<listitem>
-<para>and 128-Bit TLS or SSL3 encryption of print data, to prevent
-eavesdropping, or at least make it much more difficult.</para>
-</listitem>
-</itemizedlist>
-
-<para>This makes &tdeprint; a much more robust and reliable solution
-than using the venerable <acronym>LPD</acronym>.</para>
-
-</sect2>
-<sect2>
-<title>How to access &tdeprint; </title>
-
-<para>You get access to &tdeprint;, or parts of it, in four different
-ways:</para>
-
-<itemizedlist>
-<listitem><para>through your applications: if you call the printing
-dialog (either <menuchoice><guilabel>File</guilabel>
-<guilabel>Print...</guilabel></menuchoice>) or the button with the
-little printer icon on it; this opens the printing
-dialog.</para></listitem>
-
-<listitem><para>through the typed command <command>kprinter</command>
-in a <application>terminal</application> or a &konsole; window or from
-the <guilabel>Run Command...</guilabel> mini-<acronym>CLI</acronym>
-window: this also opens the printing dialog.</para></listitem>
-
-<listitem><para>from the <inlinemediaobject><imageobject> <imagedata
-fileref="kcontrol-icon.png" format="PNG"/></imageobject>
-</inlinemediaobject> button, starting &kcontrol;, and then go to
-<menuchoice><guilabel>System</guilabel><guilabel>Printing
-Manager</guilabel></menuchoice>. This opens the &tdeprint;
-administration which is part of the &kcontrolcenter; and also lets
-you switch to other parts of the &kcontrol;</para></listitem>
-
-<listitem><para>from a command line (&konsole; or
-mini-<acronym>CLI</acronym>) type <userinput>
-<command>kcmshell</command> <option>printers</option></userinput>.
-This opens just the &tdeprint; part of &kcontrol; to change your settings
-</para></listitem>
-</itemizedlist>
-<screenshot>
-<screeninfo>&kprinter; dialog to be started from <guilabel>Run Command...</guilabel> window</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="kprinter_called_from_run_command.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>Starting the &kprinter; dialog from
-a <guilabel>Run Command...</guilabel> window.</phrase></textobject>
-<caption><para>Starting the &kprinter; dialog from a <guilabel>Run
-Command...</guilabel> window.</para></caption>
-</mediaobject>
-</screenshot>
-
-<!-- TODO: This one ought to be a screenshot LW. --> <para>Here is a
-&kivio; drawing of the &kprinter; dialog as it pops up after being
-started... You can always add a new printer by clicking on the small
-<guiicon>Wizard</guiicon> button (marked red/yellow in this
-drawing).</para>
-  
-<screenshot>
-<screeninfo>&kprinter; dialog started (&kivio; draft drawing)
-</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="kprinter-kivio.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>&kprinter; dialog started (&kivio; draft drawing)</phrase></textobject>
-<caption><para>&kprinter; dialog started (&kivio; draft
-drawing)</para></caption>
-</mediaobject>
-</screenshot>
-
-</sect2>
-
-</sect1>
-
-</chapter>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-namecase-general:t
-sgml-general-insert-case:lower
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:0
-sgml-indent-data:true
-sgml-parent-document:"index.docbook" "book"
-End:
--->
diff --git a/doc/kdeprint/theory.docbook b/doc/kdeprint/theory.docbook
deleted file mode 100644
index 7b137f1c3..000000000
--- a/doc/kdeprint/theory.docbook
+++ /dev/null
@@ -1,690 +0,0 @@
-<chapter id="theory">
-<title>Some Theoretical Background: &CUPS;, <acronym>IPP</acronym>,
-&PostScript; and <application>Ghostscript</application></title>
-
-<para>This chapter aims to give a bit of theoretical background to
-printing in general, and to &CUPS; especially.  If you are not in need
-of this, you might like to skip ahead to the <link
-linkend="getting-started">next chapter</link>. Chances are you will
-come back to this chapter at some point anyway, because sometimes one
-needs extra theory to solve a practical problem.</para>
-
-<sect1 id="basics-of-printing">
-<title>Basics About Printing</title>
-
-<para>Printing is one of the more complicated chapters in
-<acronym>IT</acronym> technology.</para>
-
-
-<para>Earlier on in history, every developer of a program that was
-capable of producing printable output had to write his own printer
-drivers too.  That was quite complicated, because different programs
-have different file formats.  Even programs with the same purpose, for
-example: word processors, often do not understand each other's formats.
-There was therefore no common interface to all printers, hence the
-programmers often supported only a few selected models.</para>
-
-<para>A new device appearing on the market required the program authors
-to write a new driver if they wanted their program to support it.  Also
-for manufacturers, it was impossible to make sure their device was
-supported by any program known to the world (although there were far
-fewer than today).</para>
-
-<para>Having to support ten application programs and a dozen printers,
-meant a system administrator had to deal with 120 drivers.  So the
-development of unified interfaces between programs and printers became
-an urgent need.</para>
-
-<para>The appearance of <quote>Page Description Languages</quote>,
-describing the graphical representation of ink and toner on sheets of
-paper (or other output devices, like monitors, photo typesetters, &etc;)
-in a common way, was a move that filled a big gap. <!-- FIXME --></para>
-
-<para>One such development was &PostScript; by Adobe.  It meant that an
-application programmer could concentrate on making his program generate
-a &PostScript; language description of his printable page, while
-printing device developers could focus on making their devices
-&PostScript; literate.</para>
-
-<para>Of course, over time, there came the development of other description
-methods.  The most important competitors to &PostScript; were
-<acronym>PCL</acronym> (<quote>Print Control Language</quote>, from
-&Hewlett-Packard;), <quote>ESC/P</quote> (from Epson) and
-<acronym>GDI</acronym> (<quote>Graphical Device Interface</quote> from
-&Microsoft;).</para>
-
-<para>The appearance of these page description languages made life easier,
-and facilitated further development for everybody.  Yet the fact that there
-still remained different, incompatible, and competing page description
-languages keeps life for users, administrators, developers and
-manufacturers difficult enough.</para>
-
-<sect2>
-<title>&PostScript; in memory - Bitmaps on Paper</title>
-
-<para>&PostScript; is most heavily used in professional printing
-environments such as PrePress and printing service industries.  In the
-&UNIX; and &Linux; domains, &PostScript; is the predominant standard
-as a <acronym>PDL</acronym>. Here, nearly every program generates a
-&PostScript; representation of its pages once you push the
-<quote>Print</quote> button.  Let us look at a simple example of
-(hand-made) &PostScript; code.  The following listing describes two
-simple drawings:</para>
-
-<example id="coded-postscript">
-<title>&PostScript; Code</title>
-<screen>%!PS
-100 100 moveto
-0 50 rlineto
-50 0 rlineto
-0 -50 rlineto
-closepath
-.7 setgray fill
-% first box over; next
-160 100 moveto
-0 60 rlineto
-45 10 rlineto
-0 -40 rlineto
-closepath
-.2 setgray fill</screen>
-</example>
-
-<para>This tells the imaginary &PostScript; <quote>pen</quote> to draw
-a path of a certain shape, and then fill it with different shades of
-gray.  The first part translates into more comprehensive English as
-<quote>Go to coordinate (100,100), draw a line with length 50 upward;
-then one from there to the right, then down again, and finally close
-this part.  Now fill the drawn shape with 70% darkness gray.</quote></para>
-
-<example id="rendered-postscript">
-<title>Rendered &PostScript;</title>
-<mediaobject>
-<imageobject>
-<imagedata fileref="ps-boxes.png" format="PNG"/>
-</imageobject>
-<textobject>
-<phrase><xref linkend="coded-postscript"/> example rendered as an
-image.</phrase>
-</textobject>
-</mediaobject>
-</example>
-
-<para>Of course, &PostScript; can be much more complicated than this
-simplistic example. It is a fully fledged programming language with
-many different operators and functions. You may even write
-&PostScript; programs to compute the value of Pi, format a hard disk or
-write to a file. The main value and strength of &PostScript; however
-lies in the field to describe the layout of graphical objects on a
-page: it also can scale, mirror, translate, transform, rotate and
-distort everything you can imagine on a piece of paper -- such as
-letters in different font representations, figures, shapes, shades,
-colors, lines, dots, raster...</para>
-
-<para>A &PostScript; file is a representation of one or more pages
-to be printed, in a relatively abstract way. Ideally, it is meant
-to describe the pages in a device-independent way. &PostScript; is
-not directly <quote>visible</quote>; it only lives on hard disks
-and in <acronym>RAM</acronym> as a coded representation of
-future printouts.</para>
-
-</sect2>
-
-<sect2>
-<title>Raster Images on Paper Sheets</title>
-
-<para>What you see on a piece of paper is nearly always a
-<quote>raster image</quote>. Even if your brain suggests to you that
-your eyes see a line: take a good magnifying glass and you will
-discover lots of small dots...  (One example to the contrary are
-lines that have been drawn by <quote>pen plotters</quote>).  And that
-is the only thing that the <quote>marking engines</quote> of today's
-printers can put on paper: simple dots of different colors, size and
-resolution, to make up a complete <quote>page image</quote> composed of
-different bitmap patterns.</para>
-
-<para>Different printers need the raster image prepared in different
-ways. Thinking about an inkjet device: depending on its resolution,
-the number of inks used (the very good ones need 7 different inks, while
-cheaper ones might only use 3), the number of available jets (some print
-heads have more than 100!) dispensing ink simultaneously, the
-<quote>dithering algorithm</quote> used, and many other things, the
-final raster format and transfer order to the marking engine is heavily
-dependent on the exact model used.</para>
-
-<para>Back in the early life of the <quote>Line Printer Daemon</quote>,
-printers were machines that hammered rows of <acronym>ASCII</acronym>
-text mechanically on to long media, folded as a zig-zag paper
-<acronym>snake</acronym>, drawn from a cardboard box beneath the
-table... What a difference from today!</para>
-
-</sect2>
-
-
-<sect2>
-<title><acronym>RIP</acronym>: From &PostScript; to Raster</title>
-
-<para>Before the final raster images are put on paper cut-sheets, they
-have to be calculated somehow out of their abstract &PostScript;
-representation. This is a very computing-intensive process. It is called
-the <quote>Raster Imaging Process</quote>, more commonly
-<quote><acronym>RIP</acronym></quote>).</para>
-
-<para>With &PostScript; printers the <acronym>RIP</acronym>-ping is
-taken care of by the device itself. You just send the &PostScript;
-file to it. The <quote>Raster Imaging Processor</quote> (also called the
-<acronym>RIP</acronym>) inside the printer is responsible (and
-specialized) to fulfill quite well this task of interpreting the
-&PostScript;-page descriptions and put the raster image on paper.</para>
-
-<para>Smaller &PostScript; devices have a
-hardware-<acronym>RIP</acronym> built in; it is etched in silicon, on a
-special chip. Big professional printers often have their
-<acronym>RIP</acronym> implemented as a software-<acronym>RIP</acronym>
-inside a dedicated fast &UNIX; run computer, often a Sun SPARC Solaris
-or a &SGI; &IRIX; machine.</para>
-
-</sect2>
-
-<sect2>
-<title><application>Ghostscript</application> as a Software
-<acronym>RIP</acronym></title>
-
-<para>But what happens, if you are not lucky enough to have a
-&PostScript; printer available?</para>
-
-<para>You need to do the <acronym>RIP</acronym>-ing before you send
-the print data to the marking engine. You need to digest the &PostScript;
-generated by your application on the host machine (the print client)
-itself. You need to know how the exact raster format of the target
-printer's marking engine must be composed.</para>
-
-<para>In other words, as you can't rely on the printer to understand
-and interpret the &PostScript; itself, the issue becomes quite a bit
-more complicated.  You need software that tries to solve for you the
-issues involved.</para>
-
-<para>This is exactly what the omnipresent &ghostscript; package is
-doing for many &Linux;, *BSD and other &UNIX; boxes that need to print
-to non-&PostScript; printers: &ghostscript; is a &PostScript;
-interpreter, a software <acronym>RIP</acronym> capable of running many
-different devices.</para>
-
-</sect2>
-
-<sect2>
-<title><quote>Drivers</quote> and <quote>Filters</quote> in General</title>
-
-<para>To produce rasterized bitmaps from &PostScript; input, the
-concept of <quote>filters</quote> is used by &ghostscript;.  There are
-many different filters in &ghostscript;, some of them specialized for
-a certain model of printer.  &ghostscript; filterspecializedin devices
-have often been developed without the consent or support of the
-manufacturer concerned.  Without access to the specifications and
-documentation, it was a very painstaking process to reverse engineer
-protocols and data formats.</para>
-
-<para>Not all &ghostscript; filters work equally well for their
-printers.  Yet, some of the newer ones, like the
-<application>stp</application> Filter of the
-<application>Gimp</application> Print project, produce excellent
-results leading to photographic quality on a par or even superior to
-their &Microsoft; &Windows; driver counterparts.</para>
-
-<para>&PostScript; is what most application programs produce for
-printing in &UNIX; and &Linux;.  Filters are the true workhorses of
-any printing system there.  Essentially they produce the right bitmaps
-from any &PostScript; input for non-&PostScript; target
-engines.</para>
-
-</sect2>
-
-<sect2>
-<title>Drivers and Filters and Backends in CUPS</title>
-
-<para>&CUPS; uses its own filters, though the filtering system is
-based on Ghostscript. Namely the pstoraster and the imagetoraster
-filters are directly derived from Ghostscript code. &CUPS; has
-reorganized and streamlined the whole mechanics of this legacy code
-and organized it into a few clear and distinct modules.</para>
-
-<para>This next drawing (done with the help of &kivio;) gives an
-overview of the filters and backends inside &CUPS; and how they fit
-together. The <quote>flow</quote> is from top to bottom. Backends
-are special filters: they don't convert date to a different format,
-but they send the ready files to the printer. There are different
-backends for different transfer protocols.</para>
-
-<screenshot id="architecture-diagram">
-<screeninfo>&kprinter; dialog started (&kivio; draft drawing)
-</screeninfo>
-<mediaobject>
-<imageobject>
-<imagedata fileref="cups-filterarchitecture-kivio-70Percent-scaled.png"
-format="PNG"/></imageobject>
-<textobject>
-<phrase>&kprinter; dialog started (&kivio; draft
-drawing)</phrase></textobject>
-</mediaobject>
-</screenshot>
-
-</sect2>
-<sect2>
-<title>Spoolers and Printing Daemons</title>
-
-<para>Besides the heavy part of the filtering task to generate a
-print-ready bitmap, any printing software needs to use a SPOOLing
-mechanism: this is to line up different jobs from different users for
-different printers and different filters and send them accordingly to
-the destinations. The printing daemon takes care of all this.</para>
-
-<para>This daemon is keeping the house in order: it is also
-responsible for the job control: users should be allowed to cancel,
-stop, restart, &etc; their jobs (but not other peoples's jobs) and so
-on.</para>
-
-</sect2>
-
-</sect1>
-
-
-
-<sect1 id="cups-and-ppd">
-<title>Excursion: How <quote>CUPS</quote> uses the power of
-&PPD;s</title>
-
-<para>Now that you know how a &PostScript; language file (which
-describes the page layout in a largely device independent way) is
-transformed into a Raster Image, you might ask:
-<quote>Well, there are different kinds of raster output devices: first
-they differ in their resolution; then there are the different paper
-sizes; it goes on with many finishing options (duplex prints,
-pamphlets, punched and stapled output with different sheets of colored
-paper being drawn from different trays, &etc;). How does this fit into
-our model of device-independent &PostScript;?</quote></para>
-
-<para>The answer comes with so called &PostScript; Printer Description
-(&PPD; files. A &PPD; describes all the device dependent features
-which can be utilized by a certain printer model.  It also contains
-the coded commands that must be used to call certain features of the
-device.  But &PPD;s are not a closed book, they are simple
-<acronym>ASCII</acronym> text files.</para>
-
-<para>&PPD;s were <quote>invented</quote> by Adobe to make it easy for
-manufacturers to implement their own features into &PostScript;
-printers, and at the same time retain a standard way of doing so.
-&PPD;s are well documented and described by Adobe.  Their
-specification is a de-facto open standard.</para>
-
-<sect2 id="ppd-files">
-<title>Device Dependent Print Options</title>
-
-<para>Remember, advanced &PostScript; printing was originally only
-developed for use on &Microsoft; &Windows; and Apple &Mac; systems.
-For a long time, all of the feature rich printing on modern devices
-was simply unavailable for &Linux; and &UNIX;. &CUPS; changes this
-decisively. &CUPS; is closely tied with &PPD;s, and therefore existing
-&PPD;s can be utilized to the full by all systems powered by
-&CUPS;.</para>
-
-<para>Using &PPD;s, printer manufacturers were able to insert
-device-specific hardware features into their products, for features such
-as duplexing, stapling, punching, finishing, &etc;. The printer drivers
-load this &PPD; just like an additional configuration file. Thus the
-printer driver learns about the available device options and how to
-call them; the driver also presents them in a &GUI; to the user. Through
-this mechanism you are still able to print
-<quote>device-independent</quote> &PostScript; page description
-language files and specify device-dependent finishing options on top,
-which are added to the application-generated &PostScript;.</para>
-
-</sect2>
-
-<sect2>
-<title>Where to get the &PPD;s for &PostScript; Printers</title>
-
-<para>&PPD;s originally were not used routinely in &UNIX; and &Linux;
-systems.  The vendors providing those &PPD;s never intended them for
-anything other than the originally supported &OS;s: &Microsoft; &Windows; and
-&MacOS;.  Through its brilliant move to fully support and utilize
-the existing &PPD; specification, &CUPS; now gives the power to use
-all features of modern printers to users of &Linux; and &Linux;-like
-systems.  &tdeprint; makes its usage even more comfortable than the
-&CUPS; developers ever dreamed of.</para>
-
-<para>&CUPS; can use original &Windows; &PPD;s, distributed by the
-vendors in the case of &PostScript; printers.  Those normally don't
-cost any money, and they can be grabbed from any &Windows; computer
-with an installed &PostScript; driver for the model concerned, or from
-the disks provided with the printer.  There are also several places on
-the web to download them.</para>
-
-</sect2>
-
-<sect2>
-<title>How Special &PPD;s are Now Useful Even For Non-&PostScript;
-Printers.</title>
-
-<para>Now you know how &PostScript;-Printers can use &PPD;s. But what
-about non-&PostScript; printers? &CUPS; has done a very good trick: by
-using the same format and data structure as the &PostScript; Printer
-Descriptions (&PPD;s) in the &PostScript; world, it can describe the
-available print job options for non-&PostScript; printers just the
-same. For its own special purposes &CUPS; just added a few special
-options (namely the line which defines the filter to be used for
-further processing of the &PostScript; file).</para>
-
-<para>So, the developers could use the same software engine to parse
-the Printer Description Files for available options for all sorts of
-printers.  Of course the &CUPS; developers could not rely on the
-non-&PostScript; hardware manufacturers to suddenly develop &PPD;s.
-They had to do the difficult start themselves and write them from
-scratch.  More than 1000 of these are available through the commercial
-version of &CUPS;, called <application>ESP
-PrintPro</application>.</para>
-
-<para>Meanwhile there are a lot of &CUPS;-specific &PPD;s available.
-Even now those are in most cases not originating from the printer
-manufacturers, but from Free software developers.  The &CUPS; folks
-proofed it, and others followed suit: where &Linux; and &UNIX;
-printing one or two years ago still was a kludge, it is now able to
-support a big range of printers, including 7-color inkjets capable of
-pushing them to Photo Quality output.</para>
-
-</sect2>
-
-<sect2>
-<title>Different Ways to get &PPD;s for non-&PostScript;
-Printers</title>
-
-<para>You can get &PPD;s to be used with &CUPS; and non-&PostScript;
-printers from different areas in the Web:</para>
-
-<itemizedlist>
-<listitem>
-<para> first, there is the repository at <ulink
-url="http://www.linuxprinting.org">www.linuxprinting.org</ulink>,
-which lets you generate a <quote>CUPS-O-Matic</quote>-&PPD; online for
-any printer that had been supported by traditional &ghostscript;
-printing already. This helps you to switch over to &CUPS; with little
-effort, if you wish so. If your printer was doing well with the
-traditional way of &ghostscript; printing, take CUPS-O-Matic to plug
-your driver into th e &CUPS; system and you'll have the best of both
-worlds.</para>
-</listitem>
-
-<listitem>
-<para>second, there are &CUPS;-&PPD;s for the more than 120 printer
-models, which are driven by the new universal
-<application>stp</application> driver. <application>stp</application>
-(stood originally for Stylus Photo) is now developed by the gimp-print
-project; it was started by Mike Sweet, the leading &CUPS; developer
-and is now available through <ulink
-url="http://gimp-print.sourceforge.net">gimp-print.sourceforge.net</ulink>.
-This driver prints real Photo quality on many modern inkjets and can
-be configured to make 120 &CUPS;-&PPD;s along its own
-compilation. &HP; Laser- and DeskJet, <trademark
-class="registered">Epson</trademark> Stylus and Photo Color models as
-well as some <trademark class="registered">Canon</trademark> and
-<trademark class="registered">Lexmark</trademark> are covered.</para>
-</listitem>
-
-<listitem>
-<para>third, there is the commercial extension to &CUPS; from the
-&CUPS; developers themselves: it is called <application>ESP
-PrintPro</application> and comes with more than 2.300 printer
-drivers. There are even improved imagetoraster and pstoraster filters
-included.</para>
-</listitem>
-</itemizedlist>
-
-<para>&CUPS; makes it really easy for manufacturers to start
-supporting &Linux; and &UNIX; printing for their models at reasonably
-low cost. The modular framework of &CUPS; facilitates to plug in any
-filter (=driver) with minimal effort and to access and utilize the
-whole printing framework that &CUPS; is creating.</para>
-
-<para>Read more about the exciting &CUPS; features in the available
-&CUPS; documentation at <ulink
-url="http://www.cups.org/documentation.html">http://www.cups.org/documentation.html</ulink>
-and <ulink
-url="http://wwww.danka.de/printpro/faq.html">http://www.danka.de/printpro/faq.html</ulink>.
-Also at <ulink
-url="http://www.linuxprinting.org">http://www.linuxprinting.org/</ulink>
-is a universal repository for all issues related to &Linux; and &UNIX;
-printing.</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="cups-ipp-support">
-<title>How &IPP; Support Makes &CUPS; the Best Choice Around</title>
-
-<sect2>
-<title><quote><acronym>LPD</acronym> Must Die!</quote></title>
-
-<para>For a long time many developers were deeply dissatisfied with good
-old <acronym>LPD</acronym>. Quite a few new projects were started to
-improve printing: <application>LPRng</application> is the best known
-example. Others are <acronym>PDQ</acronym>, <acronym>PPR</acronym>,
-<acronym>PLP</acronym>, <acronym>GNUlpr</acronym> and
-<acronym>RLPR</acronym>. But none of the new programs were seen as a
-<quote>big shot</quote>; most of them are just implementing the same old
-<acronym>LPD</acronym> specification with a few (or many) new
-extensions, which again make them incompatible with each other.</para>
-
-<para>Having seen the development of not just one, but different
-viable alternatives to venerable <acronym>BSD</acronym>-style
-<acronym>LPD</acronym>, Grant Taylor, author of the <citetitle>Linux
-Printing HOWTO</citetitle>, finally rallied the call <citetitle>LPD
-Must Die!</citetitle> in his <quote>Campaign To Abolish The Line
-Printer Daemon</quote>.</para>
-
-<!-- FIXME: look up URLs for the above -->
-
-</sect2>
-
-<sect2>
-<title>How the &IPP; Came to Be</title>
-
-<para>Along with the above, on the industry side of things, there were
-efforts to overcome the well-known weaknesses of
-<acronym>LPD</acronym>.  It started with proprietary extensions to
-plain old <acronym>LPD</acronym>, and stretched as far as
-&Hewlett-Packard;'s attempt to establish &HP; JetDirect as a new
-standard for a network printing protocol.  The result were even more
-incompatibilities.</para>
-
-<para>In the end, an initiative to define a new common industry and
-<acronym>IETF</acronym> standard took shape. The <quote>Printer
-Working Group</quote> or <acronym>PWG</acronym>, a loose aggregation
-of vendors in hardware, software, and operating systems, drafted the
-new <quote>Internet Printing Protocol</quote>, &IPP;.  &IPP; v1.1 has
-now been approved by the <acronym>IETF</acronym> (Internet Engineering
-Task Force) as a proposed standard, and now enjoys the unanimous
-support throughout the industry in Europe, USA and Japan.  Most
-current network printer models have now built in &IPP; support on top
-of traditional <acronym>LPR</acronym>/<acronym>LPD</acronym> or
-JetDirect Printing.</para>
-
-</sect2>
-
-<sect2>
-<title>Why &IPP; is Solving Many Problems</title>
-
-<para>&IPP; promises to solve a lot of problems network administrators
-face. This trade normally deals with heterogeneous network
-environments and spends more than half of its working hours dealing
-with printing problems.</para>
-
-<para>By creating a unified set of query functions for &IPP; enabled
-printers and servers, for transferring files and setting job-control
-attributes &etc;, &IPP; is destined to work across all &OS; platforms.
-It's rollout however, will not happen overnight, as many legacy print
-devices will still be in use for many years to come.  Therefore, in
-&IPP; there is a provision made for backwards compatibility of all
-&IPP; implementations.  &CUPS; is proving the viability of &IPP;
-printing in all environments.</para>
-
-<para>The most striking advantage will be it's integration into the
-existing set of other robust <acronym>IP</acronym> protocols.  Being
-an extension of the proven and robust <acronym>HTTP</acronym> 1.1
-protocol, for the special task of handling print file and related
-data, it is also very easy to plug in other standards as they are
-being developed and deployed:</para>
-
-<itemizedlist>
-<listitem>
-<para>Basic, Digest, and Certificate Authentication for users seeking
-access to print services.</para>
-</listitem>
-<listitem>
-<para>SSL3 and <acronym>TLS</acronym> encryption for transferring
-data.</para>
-</listitem>
-<listitem>
-<para>Bi directional communication of clients with print devices, using
-the <acronym>HTTP</acronym>/&IPP; <command>GET</command> and
-<command>POST</command> mechanism.</para>
-</listitem>
-<listitem>
-<para>LDAP directory service integration to keep a consistent database
-of available printers, their capabilities and page-costs, &etc;, as well
-as user passwords, <acronym>ACL</acronym>s &etc;.</para>
-</listitem>
-<listitem>
-<para><quote>Pull</quote> (as opposed to the usual <quote>Push</quote>
-model) printing, where a server or printer just needs to be told the
-&URL; of a document, whereupon it is retrieved from the resource on the
-internet and printed.</para>
-</listitem>
-</itemizedlist>
-
-</sect2>
-
-<!--
-<sect2>
-<title>&CUPS;, &IPP; and &kde;</title>
-
-<para>&CUPS; is the most advanced implementation of &IPP; on all &OS;
-platforms.  That makes &CUPS; a crucial ally to help "conquer the
-desktop" for projects like &kde;. &tdeprint; is the best utility to
-make &CUPS; core functionality available to &kde; Desktop
-users.</para>
-
-</sect2> -->
-
-<sect2>
-<title>Printer <quote>Plug'n'Play</quote> for Clients</title>
-
-<para>Have you ever seen a demonstration about &CUPS; capabilities in
-the network?  You must have been quite impressed if you didn't know in
-advance what to expect.</para>
-
-<para>Imagine you as the administrator of a <quote>LAN</quote>.  For
-testing purposes you fully installed one &kde;/&CUPS; box on your net,
-complete with a dozen printers configured and functional:
-&PostScript;, LaserJets, InkJets and BubbleJets, and so on.  Your
-&kde; users on that box are very happy, they can print like never
-before, <quote>ringing all the bells and whistles</quote> of every
-printer.  It took you 2 hours to make everything run perfectly... and
-now all the other 100 users on the network want the same.  Two hours
-again for every box?  No way you could do that before next year, you
-think?</para>
-
-<para>Wrong.  Just change one setting in the original &CUPS; box to
-make it a <quote>server</quote>.  Install &CUPS; on five other boxes,
-as <quote>clients</quote>.  By the time you turn back to your first
-client, you find the users happily playing with the settings for the
-dozen printers you had defined earlier on the <quote>server</quote>.
-Somehow magically the printers had appeared on all the
-<quote>Print</quote> dialogs of the five new &CUPS; client
-boxes.</para>
-
-<para>Your users print, but not a single driver had been installed on
-the clients, nor a printer queue defined.</para>
-
-<para>So, how does this magic work?</para>
-
-</sect2>
-
-<sect2>
-<title><quote>Seeing</quote> Printers Not Installed Locally?</title>
-
-<para>The answer is not complicated at all.</para>
-
-<para>If a &CUPS; server is on the <acronym>LAN</acronym>, it
-broadcasts the names of all available printers to the
-<acronym>LAN</acronym>, using the <acronym>UDP</acronym> protocol and
-port 631.  Port 631 is reserved as a <quote>well-known port</quote> by
-<acronym>IANA</acronym> (the <quote>Internet Assigning Numbers
-Authority</quote>) for &IPP; purposes.  All &CUPS; clients listen to
-&CUPS; server info sent to their port 631.  That's how they know about
-available printers, and that's how they learn about the
-<quote>path</quote> to the printers as well.</para>
-
-<para>Using &IPP;, which is really a clever extension to
-<acronym>HTTP</acronym> v1.1, &CUPS; is able to address all objects
-related to the printing system via <quote>Universal Resource
-Locators</quote> or <acronym>URL</acronym>s.  Print jobs to be deleted
-or restarted, printers to be queried or modified, admin tasks to be
-performed on the server, with &IPP; and &CUPS;, everything is
-addressable by a certain <acronym>URL</acronym>.  Many important
-things can be done through the web interface to &CUPS;, accessible for
-example with &konqueror;.</para>
-
-</sect2>
-
-<sect2>
-<title>Printing Without Installing a Driver</title>
-
-<para>And more, the clients basically can <quote>administer</quote>
-and <quote>use</quote> any printer they see, just as if it was a
-locally installed one.  Of course, you can set restrictions on it with
-access control lists &etc;, so that not <emphasis>any</emphasis>
-clients may use <emphasis>any</emphasis> printer as it likes.</para>
-
-<para>The clients even are able to print without the appropriate filter
-(or driver) installed locally.</para>
-
-<para>So how does this work? If a client wants to know about and
-select printer-specific options, it sends a request (called
-<command>CUPS-get-ppd</command>) to the server.  The server tells the
-client all about all printer-specific options, as read from the server
-side &PPD;.  The user on the client side can see the options and
-select the required ones.  He then sends the print file, usually
-unfiltered <quote>raw</quote> &PostScript;, spiced up with the
-printer-options to the printer server, using &IPP; as the transport
-protocol.  All further processing, especially the filtering to
-generate the final format for the target printer, is then done by the
-server.  The server has the necessary programs (<quote>drivers</quote>
-or <quote>filters</quote>) to do this.</para>
-
-<para>This way a client prints without needing to install a driver
-locally.</para>
-
-<para>Any change on the server, such as adding or modifying a printer,
-is instantly <quote>known</quote> to the clients with no further
-configuration.</para>
-
-</sect2>
-
-<sect2>
-<title><quote>Zero Administration</quote>, Load Balancing, and
-<quote>Failover Switching</quote></title>
-
-<para>Some other advanced features built into &CUPS; are the capacity to
-do <quote>load balancing</quote>.</para>
-
-<para>If you define the same printer queues on two or more different
-servers, the clients will send their jobs to the first responding or
-available server. This implies an automatic load balancing amongst
-servers. If you have to take one server off the network for
-maintenance, the others will just take over its tasks without the users
-even noticing the difference.</para>
-
-</sect2>
-
-</sect1>
-
-</chapter>
diff --git a/doc/kdesu/CMakeLists.txt b/doc/kdesu/CMakeLists.txt
deleted file mode 100644
index 9c562330f..000000000
--- a/doc/kdesu/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-tde_create_handbook( DESTINATION tdesu )
diff --git a/doc/kdesu/Makefile.am b/doc/kdesu/Makefile.am
deleted file mode 100644
index bafa3f6c3..000000000
--- a/doc/kdesu/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-
-KDE_LANG = en
-KDE_DOCS = AUTO
-KDE_MANS = AUTO
-
diff --git a/doc/kdesu/index.docbook b/doc/kdesu/index.docbook
deleted file mode 100644
index 81c71cf17..000000000
--- a/doc/kdesu/index.docbook
+++ /dev/null
@@ -1,320 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
-"dtd/kdex.dtd" [
-  <!ENTITY kappname "&tdesu;">
-  <!ENTITY package "kdebase">
-  <!ENTITY % addindex "IGNORE">
-  <!ENTITY % English "INCLUDE" > <!-- change language only here -->
-]>
-
-<book lang="&language;">
-<bookinfo>
-
-<title>The &tdesu; handbook</title>
-
-<authorgroup>
-<author>&Geert.Jansen; &Geert.Jansen.mail;</author>
-<!-- TRANS:ROLES_OF_TRANSLATORS -->
-</authorgroup>
-
-<copyright>
-<year>2000</year>
-<holder>&Geert.Jansen;</holder>
-</copyright>
-
-<legalnotice>&FDLNotice;</legalnotice>
-
-<date>2005-06-07</date>
-<releaseinfo>1.00.00</releaseinfo>
-
-
-<abstract><para>&tdesu; is a graphical front end for the &UNIX;
-<command>su</command> command.</para></abstract>
-
-<keywordset>
-<keyword>KDE</keyword>
-<keyword>su</keyword>
-<keyword>password</keyword>
-<keyword>root</keyword>
-</keywordset>
-
-</bookinfo>
-
-<chapter id="introduction">
-<title>Introduction</title>
-
-<para>Welcome to &tdesu;! &tdesu; is a graphical front end for the
-&UNIX; <command>su</command> command for the K Desktop Environment.
-It allows you to run a program as different user by supplying the
-password for that user. &tdesu; is an unprivileged program; it uses
-the system's <command>su</command>.</para>
-
-<para>&tdesu; has one additional feature: it can remember passwords
-for you. If you are using this feature, you only need to enter the
-password once for each command. See <xref
-linkend="sec-password-keeping"/> for more information on this and a
-security analysis.</para>
-
-<para>This program is meant to be started from the command line or
-from <filename>.desktop</filename> files. Although it asks for the
-<systemitem class="username">root</systemitem> password using a &GUI;
-dialog, I consider it to be more of a command line &lt;-&gt; &GUI;
-glue instead of a pure &GUI; program.</para>
-
-</chapter>
-
-<chapter id="using-tdesu">
-<title>Using &tdesu;</title>
-
-<para>Usage of &tdesu; is easy. The syntax is like this:</para>
-
-<cmdsynopsis>
-<command>tdesu</command>
-
-<group choice="opt"><option>-c</option></group>
-<group choice="opt"><option>-d</option></group>
-<group choice="opt"><option>-f</option> <replaceable> file</replaceable></group>
-<group choice="opt"><option>-i</option> <replaceable> icon name</replaceable></group>
-<group choice="opt"><option>-n</option></group>
-<group choice="opt"><option>-p</option> <replaceable> priority</replaceable></group>
-<group choice="opt"><option>-r</option></group>
-<group choice="opt"><option>-s</option></group>
-<group choice="opt"><option>-t</option></group>
-<group choice="opt"><option>-u</option> <replaceable>
-user</replaceable></group>
-<group choice="opt"><option>--nonewdcop</option></group>
-
-<group><arg choice="req"><replaceable>command</replaceable> <arg><replaceable>arg1</replaceable></arg>
-	  <arg><replaceable>arg2</replaceable></arg>
-          <arg rep="repeat"><replaceable></replaceable></arg></arg></group>
-</cmdsynopsis>
-<cmdsynopsis>
-<command>tdesu</command>
-<arg choice="opt">&kde; Generic Options</arg>
-<arg choice="opt">Qt Generic Options</arg>
-</cmdsynopsis>
-
-<para>The command line options are explained below.</para>
-
-<variablelist>
-<varlistentry>
-<term><option>-c <replaceable>program</replaceable></option></term>
-<listitem><para>This specifies the program to run as root. It has to be passed
-in one argument. So if, for example, you want to start a new file manager, you
-would enter at the prompt: <userinput><command>tdesu <option>-c <replaceable>kfm
--sw</replaceable></option></command></userinput></para></listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-d</option></term>
-<listitem><para>Show debug information.</para></listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-f <replaceable>file</replaceable></option></term>
-<listitem><para>This option allow efficient use of &tdesu; in
-<filename>.desktop</filename> files. It tells &tdesu; to examine the
-file specified by <parameter>file</parameter>. If this file is
-writable by the current user, &tdesu; will execute the command as the
-current user. If it is not writable, the command is executed as user
-<parameter>user</parameter> (defaults to root).</para>
-<para><parameter>file</parameter> is evaluated like this: if
-<parameter>FILE</parameter> starts with a <literal>/</literal>, it is
-taken as an absolute filename. Otherwise, it is taken as the name of a
-global &kde; configuration file. For example: to configure the K display
-manager, <application>kdm</application>, you could issue
-<command>tdesu <option>-c kdmconfig -f
-kdmrc</option></command></para></listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-i</option> <replaceable>icon name</replaceable></term>
-<listitem><para>Specify icon to use in the password dialog.  You may specify
-just the name, without any extension.</para>
-<para>For instance to run <command>kfmclient</command> and show the
-&konqueror; icon in the password dialog:</para>
-<screen><userinput><command>tdesu</command>  <option>-i konqueror</option> <command>kfmclient</command></userinput></screen>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><option>-n</option></term>
-<listitem><para>Do not keep the password. This disables the <guilabel>keep
-password</guilabel> checkbox in the password dialog.</para></listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-p</option> <replaceable>priority</replaceable></term>
-<listitem>
-<para>Set priority value.  The priority is an arbitrary number between 0 and
-100, where 100 means highest priority, and 0 means lowest.  The default is
-50.</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-r</option></term>
-<listitem><para>Use realtime scheduling.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><option>-s</option></term>
-<listitem><para>Stop the tdesu daemon. See <xref
-linkend="sec-password-keeping"/>.</para></listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-t</option></term>
-<listitem><para>Enable terminal output. This disables password keeping. This is
-largely for debugging purposes; if you want to run a console mode app, use the
-standard <command>su</command> instead.</para> </listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-u</option> <replaceable> user</replaceable></term>
-<listitem><para>While the most common use for &tdesu; is to run a command as
-the superuser, you can supply any user name and the appropriate
-password.</para>
-</listitem>
-</varlistentry>
-
-</variablelist>
-
-</chapter>
-
-<chapter id="Internals">
-<title>Internals</title>
-
-<sect1 id="x-authentication">
-<title>X authentication</title>
-
-<para>The program you execute will run under the root user id and will
-generally have no authority to access your X display. &tdesu; gets
-around this by adding an authentication cookie for your display to a
-temporary <filename>.Xauthority</filename> file. After the command
-exits, this file is removed. </para>
-
-<para>If you don't use X cookies, you are on your own. &tdesu; will
-detect this and will not add a cookie but you will have to make sure
-that root is allowed to access to your display.</para>
-
-</sect1>
-
-<sect1 id="interface-to-su">
-<title>Interface to <command>su</command></title>
-
-<para>&tdesu; uses the sytem's <command>su</command> for acquiring
-priviliges. In this section, I explain the details of how &tdesu; does
-this. </para>
-
-<para>Because some <command>su</command> implementations (&ie; the one
-from &RedHat;) don't want to read the password from
-<literal>stdin</literal>, &tdesu; creates a pty/tty pair and executes
-<command>su</command> with it's standard filedescriptors connected to
-the tty.</para>
-
-<para>To execute the command the user selected, rather than an
-interactive shell, &tdesu; uses the <option>-c</option> argument with
-<command>su</command>. This argument is understood by every shell that
-I know of so it should work portably. <command>su</command> passes
-this <option>-c</option> argument to the target user's shell, and the
-shell executes the program. Example command: <command>su <option>root
--c <replaceable>the_program</replaceable></option></command>.</para>
-
-<para>Instead of executing the user command directly with
-<command>su</command>, &tdesu; executes a little stub program called
-<application>tdesu_stub</application>. This stub (running as the
-target user), requests some information from &tdesu; over the pty/tty
-channel (the stub's stdin and stdout) and then executes the user's
-program. The information passed over is: the X display, an X
-authentication cookie (if available), the <envar>PATH</envar> and the
-command to run. The reason why a stub program is used is that the X
-cookie is private information and therefore cannot be passed on the
-command line.</para>
-
-</sect1>
-
-<sect1 id="password-checking">
-<title>Password Checking</title>
-
-<para>&tdesu; will check the password you entered and gives an error
-message if it is not correct. The checking is done by executing a test
-program: <filename>/bin/true</filename>. If this succeeds, the
-password is assumed to be correct.</para>
-
-</sect1>
-
-<sect1 id="sec-password-keeping">
-<title>Password Keeping</title>
-
-<para>For your comfort, &tdesu; implements a <quote>keep
-password</quote> feature. If you are interested in security, you
-should read this paragraph.</para>
-
-<para>Allowing &tdesu; to remember passwords opens up a (small)
-security hole in your system. Obviously, &tdesu; does not allow
-anybody but your user id to use the passwords, but, if done without
-caution, this would lowers <systemitem
-class="username">root</systemitem>'s security level to that of a
-normal user (you). A hacker who breaks into your account, would get
-<systemitem class="username">root</systemitem> access. &tdesu; tries
-to prevent this. The security scheme it uses is, in my opinion at
-least, reasonably safe and is explained here.</para>
-
-<para>&tdesu; uses a daemon, called
-<application>tdesud</application>. The daemon listens to a &UNIX;
-socket in <filename>/tmp</filename> for commands. The mode of the
-socket is 0600 so that only your user id can connect to it. If
-password keeping is enabled, &tdesu; executes commands through this
-daemon. It writes the command and <systemitem
-class="username">root</systemitem>'s password to the socket and the
-daemon executes the command using <command>su</command>, as describe
-before. After this, the command and the password are not thrown
-away. Instead, they are kept for a specified amount of time. This is
-the timeout value from in the control module.  If another request for
-the same command is coming within this time period, the client does
-not have to supply the password. To keep hackers who broke into your
-account from stealing passwords from the daemon (for example, by
-attaching a debugger), the daemon is installed set-group-id
-nogroup. This should prevent all normal users (including you) from
-getting passwords from the <application>tdesud</application>
-process. Also, the daemon sets the <envar>DISPLAY</envar> environment
-variable to the value it had when it was started. The only thing a
-hacker can do is execute an application on your display.</para>
-
-<para>One weak spot in this scheme is that the programs you execute
-are probably not written with security in mind (like setuid
-<systemitem class="username">root</systemitem> programs). This means
-that they might have buffer overruns or other problems and a hacker
-could exploit those.</para>
-
-<para>The use of the password keeping feature is a tradeoff between
-security and comfort. I encourage you to think it over and decide for
-yourself if you want to use it or not.</para>
-
-</sect1>
-</chapter>
-
-<chapter id="Author">
-<title>Author</title>
-
-<para>&tdesu;</para>
-
-<para>Copyright 2000 &Geert.Jansen;</para>
-
-<para>&tdesu; is written by &Geert.Jansen;. It is somewhat based on
-Pietro Iglio's &tdesu;, version 0.3. Pietro and I agreed that I will
-maintain this program in the future.</para>
-
-<para>The author can be reached through email at &Geert.Jansen.mail;.
-Please report any bugs you find to me so that I can fix them. If you
-have a suggestion, feel free to contact me.</para>
-
-&underFDL;
-&underArtisticLicense;
-
-</chapter>
-
-</book>
-<!--
-Local Variables:
-mode: sgml
-sgml-omittag: nil
-sgml-shorttag: t
-End:
--->
-
diff --git a/doc/kdesu/man-kdesu.1.docbook b/doc/kdesu/man-kdesu.1.docbook
deleted file mode 100644
index fd99812fd..000000000
--- a/doc/kdesu/man-kdesu.1.docbook
+++ /dev/null
@@ -1,179 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
-<!ENTITY % English "INCLUDE">
-]>
-
-<refentry lang="&language;">
-<refentryinfo>
-<title>KDE User's Manual</title>
-<author>&Lauri.Watts; &Lauri.Watts.mail;</author>
-<date>Jun 7, 2005</date>
-<productname>K Desktop Environment</productname>
-</refentryinfo>
-
-<refmeta>
-<refentrytitle><command>tdesu</command></refentrytitle>
-<manvolnum>1</manvolnum>
-</refmeta>
-
-<refnamediv>
-<refname><command>tdesu</command></refname>
-<refpurpose>Runs a program with elevated privileges</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv>
-<cmdsynopsis>
-<command>tdesu</command>
-
-<group choice="opt"><option>-c</option></group>
-<group choice="opt"><option>-d</option></group>
-<group choice="opt"><option>-f</option> <replaceable> file</replaceable></group>
-<group choice="opt"><option>-i</option> <replaceable> icon name</replaceable></group>
-<group choice="opt"><option>-n</option></group>
-<group choice="opt"><option>-p</option> <replaceable> priority</replaceable></group>
-<group choice="opt"><option>-r</option></group>
-<group choice="opt"><option>-s</option></group>
-<group choice="opt"><option>-t</option></group>
-<group choice="opt"><option>-u</option> <replaceable>
-user</replaceable></group>
-<group choice="opt"><option>--nonewdcop</option></group>
-
-<group><arg choice="req"><replaceable>command</replaceable> <arg><replaceable>arg1</replaceable></arg>
-	  <arg><replaceable>arg2</replaceable></arg>
-          <arg rep="repeat"><replaceable></replaceable></arg></arg></group>
-</cmdsynopsis>
-<cmdsynopsis>
-<command>tdesu</command>
-<arg choice="opt">KDE Generic Options</arg>
-<arg choice="opt">Qt Generic Options</arg>
-</cmdsynopsis>
-</refsynopsisdiv>
-
-<refsect1>
-<title>Description</title>
-<para>&tdesu; is a graphical front end for the
-&UNIX; <command>su</command> command for the K Desktop Environment.
-It allows you to run a program as different user by supplying the
-password for that user. &tdesu; is an unprivileged program; it uses
-the system's <command>su</command>.</para>
-
-<para>&tdesu; has one additional feature: it can optionally remember passwords
-for you. If you are using this feature, you only need to enter the
-password once for each command.</para>
-
-<para>This program is meant to be started from the command line or
-from <filename>.desktop</filename> files.</para>
-</refsect1>
-
-<refsect1>
-<title>Options</title>
-
-<variablelist>
-<varlistentry>
-<term><option>-c <replaceable>program</replaceable></option></term>
-<listitem><para>This specifies the program to run as root. It has to be passed
-in one argument. So if, for example, you want to start a new file manager, you
-would enter at the prompt: <userinput><command>tdesu <option>-c <replaceable>kfm
--sw</replaceable></option></command></userinput></para></listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-d</option></term>
-<listitem><para>Show debug information.</para></listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-f <replaceable>file</replaceable></option></term>
-<listitem><para>This option allow efficient use of &tdesu; in
-<filename>.desktop</filename> files. It tells &tdesu; to examine the
-file specified by <parameter>file</parameter>. If this file is
-writable by the current user, &tdesu; will execute the command as the
-current user. If it is not writable, the command is executed as user
-<parameter>user</parameter> (defaults to root).</para>
-<para><parameter>file</parameter> is evaluated like this: if
-<parameter>file</parameter> starts with a <literal>/</literal>, it is
-taken as an absolute filename. Otherwise, it is taken as the name of a
-global &kde; configuration file. For example: to configure the K display
-manager, <application>kdm</application>, you could issue
-<command>tdesu <option>-c kdmconfig -f
-kdmrc</option></command></para></listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-i</option> <replaceable>icon name</replaceable></term>
-<listitem><para>Specify icon to use in the password dialog.  You may specify
-just the name, without any extension.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><option>-n</option></term>
-<listitem><para>Do not keep the password. This disables the <guilabel>keep
-password</guilabel> checkbox in the password dialog.</para></listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-p</option> <replaceable>priority</replaceable></term>
-<listitem>
-<para>Set priority value.  The priority is an arbitrary number between 0 and
-100, where 100 means highest priority, and 0 means lowest.  The default is
-50.</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-r</option></term>
-<listitem><para>Use realtime scheduling.</para>
-</listitem>
-</varlistentry>
-
-<varlistentry>
-<term><option>-s</option></term>
-<listitem><para>Stop the tdesu daemon. This is the daemon that caches
-successful passwords in the background.  This feature may also be disabled with
-<option>-n</option> when &tdesu; is initially run.</para></listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-t</option></term>
-<listitem><para>Enable terminal output. This disables password keeping. This is
-largely for debugging purposes; if you want to run a console mode app, use the
-standard <command>su</command> instead.</para> </listitem>
-</varlistentry>
-<varlistentry>
-<term><option>-u</option> <replaceable> user</replaceable></term>
-<listitem><para>While the most common use for &tdesu; is to run a command as
-the superuser, you can supply any user name and the appropriate
-password.</para>
-</listitem>
-</varlistentry>
-
-</variablelist>
-
-</refsect1>
-
-<refsect1>
-<title>See Also</title>
-<para>su(1)</para>
-
-<para>More detailed user documentation is available from <ulink
-url="help:/tdesu">help:/tdesu</ulink>
-(either enter this <acronym>URL</acronym> into &konqueror;, or run
-<userinput><command>khelpcenter</command>
-<parameter>help:/tdesu</parameter></userinput>).</para>
-
-</refsect1>
-
-<refsect1>
-<title>Examples</title>
-<para>Run <command>kfmclient</command> as user <systemitem
-class="username">jim</systemitem>, and show the &konqueror; icon in the
-password dialog:</para>
-<screen><userinput><command>tdesu</command> <option>-u jim</option> <option>-i konqueror</option> <command>kfmclient</command></userinput></screen>
-
-</refsect1>
-
-<refsect1>
-<title>Authors</title>
-<para>&tdesu; was written by
-<personname><firstname>Geert</firstname><surname>Jansen</surname></personname> <email>jansen@kde.org</email>
-and <personname><firstname>Pietro</firstname><surname>Iglio</surname></personname>
-<email>iglio@fub.it</email>. 
-</para>
-</refsect1>
-
-</refentry>
diff --git a/doc/tdeprint/CMakeLists.txt b/doc/tdeprint/CMakeLists.txt
new file mode 100644
index 000000000..3a1f95d9e
--- /dev/null
+++ b/doc/tdeprint/CMakeLists.txt
@@ -0,0 +1,12 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+tde_create_handbook( DESTINATION tdeprint )
diff --git a/doc/tdeprint/Makefile.am b/doc/tdeprint/Makefile.am
new file mode 100644
index 000000000..e786da562
--- /dev/null
+++ b/doc/tdeprint/Makefile.am
@@ -0,0 +1,3 @@
+
+KDE_LANG = en
+KDE_DOCS = AUTO
diff --git a/doc/tdeprint/add-printer-wiz.docbook b/doc/tdeprint/add-printer-wiz.docbook
new file mode 100644
index 000000000..28d5791d2
--- /dev/null
+++ b/doc/tdeprint/add-printer-wiz.docbook
@@ -0,0 +1,290 @@
+<chapter id="add-printer-wizard-2">
+<title>The <quote>Add Printer Wizard</quote> for &CUPS;</title>
+
+<para>Clicking on the leftmost icon on the toolbar
+<inlinemediaobject><imageobject> <imagedata
+fileref="cr32-action-wizard.png" format="PNG"/></imageobject>
+</inlinemediaobject> in the upper part of the window starts the
+<quote>Add Printer Wizard</quote>.</para>
+
+<para>This wizard steps you through various screens to install a new
+printer. At present this Wizard works for &CUPS; and the
+<acronym>RLPR</acronym> environment module. The number of steps depend
+on the actual print-subsystem which is active and available to you on
+your box.</para>
+
+<sect1>
+<title>Starting</title>
+
+<para>The welcome screen informs you that you can go back any time to
+change a setting. </para>
+
+<screenshot>
+<screeninfo>The &tdeprint; wizard introduction screen</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsaddprinterwizard1.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>The introduction screen of the printer wizard</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+</sect1>
+<sect1 id="backend-selection">
+<title>Backend Selection</title>
+
+<para>Choose the <quote>backend</quote> protocol that &CUPS; is supposed to
+use with your new printer. There are:</para>
+
+<itemizedlist>
+<listitem>
+<para>local printer (serial, parallel, <acronym>USB</acronym>)</para>
+</listitem>
+<listitem>
+<para>remote <acronym>LPD</acronym> queue</para>
+</listitem>
+<listitem>
+<para><acronym>SMB</acronym> shared printer (&Windows;)</para>
+</listitem>
+<listitem>
+<para>Network Printer (<acronym>TCP</acronym>, &HP; JetDirect,
+AppSocket)</para>
+</listitem>
+<listitem>
+<para>Network printer with &IPP; (&IPP;/<acronym>HTTP</acronym>)</para>
+</listitem>
+<listitem>
+<para>File printer</para>
+</listitem>
+<listitem>
+<para>serial fax /modem printer</para>
+</listitem>
+<listitem>
+<para>Class of Printers</para>
+</listitem>
+</itemizedlist>
+
+<para>If some choices are grayed out, they are not available.  For
+example, you may have no FAX backend software or no modem installed to
+use it.</para>
+
+<screenshot>
+<screeninfo>Choosing your Printer system</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsaddprinterwizard2_backendselection.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Choosing your Printer System</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+</sect1>
+
+<sect1 id="direct-network-settings">
+<title>Direct Network Setting</title>
+
+<para>The contents of your next screen is dependent on your choice in
+the previous screen. If you know the details, just type them in to
+configure your network settings directly.</para>
+
+<para>In other cases the wizard can scan the network for you, to help you
+decide which setting could be useful. </para>
+
+<screenshot>
+<screeninfo>&tdeprint; wizard network scan</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsaddprinterwizard3_networkscan.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>In the &tdeprint; wizard, you can enter network details
+directly, or you can scan the network
+automatically.</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+</sect1>
+<sect1 id="information-retrieval-by-network-scanning">
+<title>Information Retrieval by Scanning the Network</title>
+
+<para>If you use one of the network connections (remote
+<acronym>LPD</acronym>, <acronym>SMB</acronym>, remote &CUPS;, network
+printer with &IPP;), you have an option for scanning the network. Be careful
+when applying this; in some environments network scanning is considered
+to be hostile and harmful!</para>
+
+<para>In the case of <acronym>SMB</acronym>, &tdeprint; will use the
+Samba utilities <command>nmblookup</command> and
+<command>smbclient</command> (which need to be installed for this to
+work) to retrieve the information it presents in a tree
+structure.</para>
+
+<para>In the case of &IPP; (Port 631) and <acronym>TCP</acronym>
+Network/AppSocket (Port 9100) &tdeprint; will try to open the port and,
+if successful, send an <command>ipp-get-printer-attribute</command>
+request to the printer. For newer &HP; printers the latter usually
+works, because they support both AppSocket and &IPP;.</para>
+
+<para>Some printers or manufacturers use other port numbers for direct
+TCP/IP printing. You may need to look up which one to use. The
+<guilabel>Settings</guilabel> button in the dialog lets you configure
+your scan, including <acronym>IP</acronym> addresses, ports and
+timeout to use.</para>
+
+<para>Once again: be careful not to be mistaken for an intruder on
+your network, if you use the scanning technique.</para>
+
+<screenshot>
+<screeninfo>&tdeprint; wizard network configuration dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsaddprinterwizard4_networkscan_config.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>In the &tdeprint; wizard, you can enter parameters to have the
+wizard scan parts of your network.</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+</sect1>
+<sect1 id="printer-model-selection">
+<title>Printer Model Selection</title>
+
+<para>The hardest part is probably the <quote>Printer Model
+Selection</quote>. In former years the situation was difficult, because
+there were hardly any drivers to find. The difficulty now is there are too
+many; though some of them are very good, many are quite broken. </para>
+
+<para>If you have a current <quote>database</quote> of available drivers
+on your system, select the manufacturer in the left part of the window
+first, then the device model in the right part. This split window shows
+all &PPD;s found by &CUPS; in its standard repository of installable
+&PPD;s.  This repository normally is <filename
+class="directory">/usr/share/cups/model/</filename>. If you want your
+driver to be found automatically by &CUPS; and &tdeprint;, place it in
+there.</para>
+
+<!-- Insert Screenshot here:  -->
+
+</sect1>
+
+<sect1 id="driver-selection">
+<title>Driver Selection</title>
+
+<para>On the next screen you will see a description of the driver
+selected previously. This description is extracted from the actual &PPD;
+used.</para>
+
+<warning>
+<para>For a real &PostScript; printer <emphasis>never</emphasis> try to
+install a <quote>Foomatic</quote> or <quote>Gimp-Print</quote> &PPD;,
+even if it is offered. You won't be happy with it. Instead find the
+original &PPD; from the manufacturer, preferably the one written for
+&Windows; NT and use it. </para>
+</warning>
+
+<para>Some &Linux; distributions have supplied for &CUPS; every
+possible combination of <application>Ghostscript</application> filters
+and <quote>foomatic</quote> &PPD; files they could find on the net.
+Many of these are quite useless; they were generated a year ago, when
+the people at <ulink
+url="http://www.linuxprinting.org">www.linuxprinting.org</ulink> began
+their first experiments with supplying third party &PPD;s for
+&CUPS;. Although dubbed <quote>Alpha</quote> at the time, these
+started to take on a life of their own and can now be found at various
+places on the net, doing &CUPS; no favors.</para>
+
+<para>If you are not sure which ones to use go to:</para>
+
+<itemizedlist>
+<listitem>
+<para><ulink
+url="http://www.linuxprinting.org">http://www.linuxprinting.org</ulink>
+</para>
+</listitem>
+
+<listitem>
+<para>
+<ulink url="http://www.cups.org">http://www.cups.org</ulink>
+</para>
+</listitem>
+</itemizedlist>
+
+<para>And ask for help. At a later stage, a document detailing the
+differences between the different driver and &PPD; models will appear at
+<ulink
+url="http://tdeprint.sourceforge.net">http://tdeprint.sourceforge.net/</ulink>
+Watch out for this!</para>
+
+<para>Via the <guibutton>Other...</guibutton> button you are able to
+retrieve any &PPD; located somewhere on your available file
+system.</para>
+
+<!-- Insert Screenshot here:  -->
+
+</sect1>
+<sect1 id="printer-test-and-finding-settings">
+<title>Printer Test and Finding the Right Settings</title>
+
+<para>Specify your first driver settings now. The most important one is the
+default paper size. In many cases this is set to
+<quote>Letter</quote>. If you live in an <quote>A4</quote>
+country and don't want your first test page to jam: now is the time to
+prevent this. </para>
+
+<para>You are ready to start a test print. Hit the
+<guibutton>Test</guibutton> button.</para>
+
+<!-- Insert Screenshot here: -->
+
+</sect1>
+
+<sect1 id="banner-selection">
+<title>Banner Selection</title>
+
+<para>The last but one screen lets you select whether you want banners, and
+which ones you want to use, to mark the beginning and/or end of every printjob
+on that printer. You can also select and deselect banners before printing
+in the job options dialogs.</para>
+
+<para>If you need to use custom banners, copy them into <filename
+class="directory">/usr/share/cups/banners/</filename> to make them
+available for selection. They must be &PostScript; files,
+however.</para>
+
+<!-- Insert Screenshot here: -->
+
+</sect1>
+
+<sect1 id="baptizing-your-printer">
+<title>Finally: Baptizing Your New Printer</title>
+
+<para>The last screen lets you insert a name for your new
+printer.</para>
+
+<para>The name must start with a letter and may contain numbers and
+underscores with a maximum size of 128 characters. Conform to this if you
+want to avoid erratic behavior of your &CUPS; daemon. The printer
+names in &CUPS; are <emphasis>not</emphasis> case sensitive! This is a
+requirement of &IPP;. So the names <systemitem
+class="resource">DANKA_infotec</systemitem>, <systemitem
+class="resource">Danka_Infotec</systemitem> and <systemitem
+class="resource">danka_infotec</systemitem> all represent the same
+printer.</para>
+
+<!-- Insert Screenshot here: -->
+
+</sect1>
+
+<sect1 id="final-confirmation-screen">
+<title>The Final Confirmation Screen</title>
+
+<para> 
+<!-- Insert Screenshot here: -->
+</para>
+
+</sect1>
+
+</chapter>
diff --git a/doc/tdeprint/cr32-action-wizard.png b/doc/tdeprint/cr32-action-wizard.png
new file mode 100644
index 000000000..b00db2499
Binary files /dev/null and b/doc/tdeprint/cr32-action-wizard.png differ
diff --git a/doc/tdeprint/cups-config.docbook b/doc/tdeprint/cups-config.docbook
new file mode 100644
index 000000000..304fe9514
--- /dev/null
+++ b/doc/tdeprint/cups-config.docbook
@@ -0,0 +1,2072 @@
+<chapter id="cups-configuration">
+<title>Print Server Configuration: CUPS</title>
+
+<para>Start the print server configuration (now that you have chosen
+&CUPS;, this is equivalent to the configuration of the &CUPS; daemon) by
+clicking on the appropriate button. You can find it by moving the mouse
+slowly over the buttons and reading the tooltips. It should be the 11th
+from the left , or third from the right; its icon is a
+<guiicon>wrench</guiicon>.</para>
+
+<para>The &CUPS; Server Configuration window pops up. It gives you a
+structured view of all the settings that apply to the &CUPS; daemon. The
+configuration file for that daemon is normally located in
+<filename>/etc/cups/cupsd.conf</filename>. This is a plain
+<acronym>ASCII</acronym> file with a syntax similar to the configuration
+file of the <application>Apache</application> web server. It is a good
+idea to create a backup copy, just in case something goes wrong with the
+configuration through &tdeprint;/&CUPS; Server Configuration
+dialogs:</para>
+
+<screen><userinput><command>cp</command> <filename>/etc/cups/cupsd.conf</filename> <filename>/etc/cups/cupsd.conf.bak</filename></userinput></screen>
+
+<para>As this graphical user interface to edit the configuration file is
+such a new feature, you should have the second chance of resorting to
+the original file. So back it up, please.</para>
+
+<sect1 id="quick-help">
+<title>Quick Help</title>
+
+<para>One very nice feature is the <quote>Quick Help</quote>
+available. If you click on the little question mark (<guiicon>What's
+this?</guiicon>) on your window title bar, you'll see the cursor
+changing its form.  Now click on a <command>cupsd</command>
+configuration setting field to find out what it means and what your
+options are. In most cases you should understand the meaning
+immediately, otherwise turn to the excellent &CUPS; documentation. (If
+your &CUPS; Daemon is running, you have it online on your own host at
+<ulink
+url="http://localhost:631/documentation.html">http://localhost:631/documentation.html</ulink>.</para>
+<para>If &CUPS; is not running, but installed on your system you could
+find it in your own host's file system.  The exact location depends on
+your &OS;, but on &Linux; the default is <filename
+class="directory">/usr/share/doc/cups/</filename> or
+<filename class="directory">
+/usr/share/doc/cups/documentation.html</filename>.</para>
+
+</sect1>
+<sect1 id="longer-help">
+<title>Longer Help</title>
+
+<para>For the best, most detailed and most recent information you should
+always refer to the original &CUPS; documentation.  &CUPS; is, much like
+&kde; in a rapid development process.  There are constantly new features
+being added. New features might for times be only configurable by
+directly editing the configuration files. The &tdeprint; &GUI; might not
+have caught up with &CUPS; development.</para>
+
+<para>Just in case you want to look at the original configuration files
+of your &CUPS; system -- they are here:</para>
+
+<note>
+<para>These paths are based on the default installation.  Your &OS;
+may have installed them to a different prefix, for example, <filename
+class="directory">/usr/local/</filename>, but the hierarchy should
+still match that shown below.</para>
+</note>
+
+<variablelist>
+<varlistentry>
+<term><filename class="directory">/etc/cups/</filename></term>
+<listitem>
+<para>The folder with the configuration files</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><filename>/etc/cups/cupsd.conf</filename></term>
+<listitem>
+<para>The configuration file for the &CUPS; daemon</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><filename>/etc/cups/printers.conf</filename></term>
+<listitem>
+<para>The configuration file that contains the information about your
+locally installed printers.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><filename class="directory">/etc/cups/ppd/</filename></term>
+<listitem>
+<para>The folder with &PPD; files of your installed
+printers.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+<para>The following links only work if your &CUPS; daemon is up and
+running.  To access all the original &CUPS; documentation, go
+to:</para>
+
+<variablelist>
+<varlistentry>
+<term><ulink url="http://localhost:631/documentation.html">
+http://localhost:631/documentation.html</ulink></term>
+<listitem>
+<para>A page with all the links to the other documents.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><ulink url="http://localhost:631/sam.html">
+http://localhost:631/sam.html</ulink></term>
+<listitem>
+<para>Direct access to the &CUPS; Software Administrator Manual
+in <acronym>HTML</acronym> format.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><ulink url="http://localhost:631/sam.pdf">
+http://localhost:631/sam.pdf</ulink></term>
+<listitem>
+<para>Direct access to the &CUPS; Software Administrator Manual in
+<acronym>PDF</acronym> format.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><ulink url="http://www.cups.org/documentation.html">
+http://www.cups.org/documentation.html</ulink></term>
+<listitem>
+<para>The latest on line documentation from the &CUPS; web
+site.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>The following links give you access to the same files (probably
+icons and graphics will be missing) even if your CUPS daemon is not up
+and running. You need, however, CUPS installed on your system. (Some
+distributions might place the files somewhere else -- you're on your
+own then to find out where...) To access all the original CUPS
+documentation, go to:</para>
+
+<para>This documentation is available even when the &CUPS; daemon is
+not installed, although you may find images and icons are missing when
+you view the <acronym>HTML</acronym> files.</para>
+
+<para>As noted above, the hierarchy below should be intact, but your
+&OS; may have installed &CUPS; to a different location.</para>
+
+<variablelist>
+<varlistentry>
+<term><filename>/usr/share/doc/cups/documentation.html</filename></term>
+<listitem>
+<para>A page with all the links to the other documents.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><filename>/usr/share/doc/cups/sam.html</filename></term>
+<listitem>
+<para>Direct access to the &CUPS; Software Administrator Manual in
+<acronym>HTML</acronym> format.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><filename>/usr/share/doc/cups/sam.pdf</filename></term>
+<listitem>
+<para>Direct access to the &CUPS; Software Administrator Manual in
+<acronym>PDF</acronym> format.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+<para>There are a few WebSites and Newsgroups discussing &CUPS; (and
+&Linux; Printing in General) and giving help to newbies at:</para>
+
+<variablelist>
+<varlistentry>
+<term><ulink url="http://www.cups.org/newsgroups.php">
+http://www.cups.org/newsgroups.php</ulink></term>
+<listitem>
+<para>The &CUPS; website.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><ulink url="http://www.linuxprinting.org/newsportal/">
+http://www.linuxprinting.org/newsportal/</ulink></term>
+<listitem>
+<para>LinuxPrinting.org, the home of the Linuxprinting HOWTO and the
+&Linux; Printer Database</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+<para>And finally, there will be a WebSite for &tdeprint; and related
+documentation, at <ulink url="http://tdeprint.sourceforge.net/">
+http://tdeprint.sourceforge.net/</ulink></para>
+
+<para>In the next section I will step you through most of the
+configuration options of &tdeprint; with &CUPS;.</para>
+
+</sect1>
+<sect1 id="explaining-different-gui-elements">
+<title>Explaining different elements of the &GUI;</title>
+
+<sect2>
+<title>Upper Window: View on Printers, both Real and Virtual</title>
+
+<para>This section is not yet complete</para>
+
+<itemizedlist>
+<listitem>
+<para>Tree view, icon view and list view</para>
+</listitem>
+<listitem>
+<para>The icons of the task bar</para>
+</listitem>
+<listitem>
+<para>Different fonts for different printers</para>
+</listitem>
+<listitem>
+<para>Different printer icons mean different things</para>
+</listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2>
+<title>Lower Window: Tabbed View of Details</title>
+
+<para>This section is not yet complete.</para>
+
+<itemizedlist>
+<listitem>
+<para>The icons of the task bar</para>
+</listitem>
+<listitem>
+<para>The Tabs</para>
+</listitem>
+<listitem>
+<para>Changing printer settings</para>
+</listitem>
+</itemizedlist>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="welcome-to-cups-server-configuration">
+<title>Welcome to the &CUPS; Server Configuration</title>
+
+<para>This is the Welcome Screen for your server configuration
+dialogs. Clicking onto one of the items of the tree view on left
+side of the screen opens the appropriate part of the configuration
+settings.</para>
+
+<para>Every setting has a default value. The defaults let &CUPS;
+normally work as a fully functional client. The clients listen on
+TCP/IP Port 631 for infos broadcast by &CUPS; servers on the
+<acronym>LAN</acronym>. This information let the clients print
+immediately after receiving them, without installing any driver or
+configuring any printer on the clients.</para>
+
+<para>To configure a &CUPS; server (which is broadcasting its service
+to the <acronym>LAN</acronym>) you need to change settings from the
+defaults.</para>
+
+<para>The dialog to configure the &CUPS; server: welcome screen. </para>
+<screenshot>
+<screeninfo>CUPS server configuration dialog: welcome screen</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration1_welcome.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>The dialog to configure the &CUPS; server: welcome
+screen</phrase></textobject>
+<caption><para>The dialog to configure the &CUPS; server: welcome
+screen</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>To select the default setting of any item just enable the
+checkbox on the right side of the screen. To set an item to a
+different value, disable the checkbox and then go on to do the setting
+you want on the left side of the screen.</para>
+
+<para>The complete server configuration includes:</para>
+
+<itemizedlist>
+<listitem>
+<para><link linkend="server-general-configuration"><guilabel>Server</guilabel>
+General Configuration</link></para>
+</listitem>
+<listitem>
+<para><link linkend="server-logging-configuration">Server
+<guilabel>Log</guilabel>ging Configuration</link></para>
+</listitem>
+<listitem>
+<para><link
+linkend="server-directories-configuration">Server
+<guilabel>Folders</guilabel> and Path Definitions</link></para>
+</listitem>
+<listitem>
+<para><link linkend="server-configuration">Server
+<guilabel>HTTP</guilabel> Configuration</link></para>
+</listitem>
+<listitem>
+<para><link linkend="server-encryption-support-configuration">Server
+<guilabel>Encryption</guilabel> and Certificate Support
+Configuration</link></para>
+</listitem>
+<listitem>
+<para><link linkend="server-miscellaneous-configuration">Server
+<guilabel>Misc</guilabel>ellaneous Configuration</link></para>
+</listitem>
+<listitem>
+<para><guilabel>Network</guilabel> General Configuration</para>
+</listitem>
+<listitem>
+<para><link linkend="network-clients-configuration">Network
+<guilabel>Clients</guilabel> Configuration</link></para>
+</listitem>
+<listitem>
+<para><link
+linkend="browsing-general-configuration"><guilabel>Browsing</guilabel>
+General Configuration</link></para>
+</listitem>
+<listitem>
+<para><link linkend="browsing-connection-configuration">Browsing
+<guilabel>Connection</guilabel> Configuration</link></para>
+</listitem>
+<listitem>
+<para><link
+linkend="browsing-masks-configuration">Browsing
+<guilabel>Masks</guilabel> Configuration</link></para>
+</listitem>
+<listitem>
+<para><link linkend="browsing-timeouts-configuration">Browsing
+<guilabel>Timeouts</guilabel> Configuration</link></para>
+</listitem>
+<listitem>
+<para><link linkend="browsing-relay-configuration">Browsing
+<guilabel>Relay</guilabel> Configuration</link></para>
+</listitem>
+<listitem>
+<para><link
+linkend="security-configuration"><guilabel>Security</guilabel>
+Configuration</link></para>
+</listitem>
+</itemizedlist>
+
+<para>Each of these configuration items will be described in the
+following sections of the manual.</para>
+
+</sect1>
+
+<sect1 id="server-general-configuration">
+<title>Server General Configuration</title>
+
+<para>The server general configuration is done on this screen. It
+includes:</para>
+
+<itemizedlist>
+<listitem><para><guilabel>Server name</guilabel></para></listitem>
+<listitem><para><guilabel>Administrators email</guilabel></para></listitem>
+<listitem><para><guilabel>Server user</guilabel></para></listitem>
+<listitem><para><guilabel>Server group</guilabel></para></listitem>
+<listitem><para><guilabel>Remote user name</guilabel></para></listitem>
+</itemizedlist>
+
+<para>The tab window to configure the &CUPS; server general settings
+lets you the change the default values. Click on the little question
+mark and then on one of the fields to get a <quote>Quick Help</quote>
+about the meaning of the setting.</para>
+
+<para>If you are unsure, leave alone and turn to the original &CUPS;
+documentation first.  If your &CUPS; daemon is already running, it is
+readable from the &konqueror; by pointing it to &URL; <ulink
+url="http://localhost:631/documentation.html">
+http://localhost:631/documentation.html</ulink>.</para>
+
+<para>There, first <quote>make friends</quote> with the Software
+Administrator Manual. Otherwise, for example, if the &CUPS; daemon is
+not running, try looking in your local file system, by default at
+<filename class="directory">/usr/share/doc/cups/</filename> or
+<filename>/usr/share/doc/cups/documentation.html</filename>.</para>
+
+<screenshot>
+<screeninfo>&CUPS; server general configuration dialog: ServerName, AdminMail,
+ServerUser, ServerGroup, RemoteUserName</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration2_general.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>The dialog to configure the &CUPS; server general settings:
+ServerName, AdminMail, ServerUser, ServerGroup, RemoteUserName
+</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Server Name</guilabel></term>
+<listitem>
+<para>The hostname of your server, as advertised to the world. By
+default, &CUPS; will use the hostname of the system.  To set the
+default server usd by clients, see the
+<filename>client.conf</filename> file.</para>
+
+<informalexample>
+<para>For example, enter <userinput>myhost.domain.com</userinput></para>
+</informalexample>
+
+<para>This is the hostname that is reported to clients. Should you
+ever encounter strange problems in accessing the server, put here its
+<acronym>IP</acronym> address for troubleshooting. This way you
+eliminate any potential name resolution problems; and you can more
+easily nail the real problem down.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Administrators email</guilabel></term>
+<listitem>
+<para>This is the email address to send all complaints or problems
+to.  By default &CUPS; will use <quote>root@hostname</quote>.</para>
+
+<informalexample>
+<para>For example, enter
+<userinput>root@myhost.com</userinput>.</para>
+</informalexample>
+
+<note>
+<para>Contrary to what the quickhelp suggests, it is also legal to
+send an email full of praise and enthusiasm about &CUPS; and
+&tdeprint; to the server administrator.</para>
+</note>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Server User</guilabel></term>
+<listitem>
+<para>The user the server runs under.  Normally this must be
+<systemitem class="username">lp</systemitem>, however you can
+configure things for another user if needed.</para>
+
+<note>
+<para>The server must be initially run as root to support the default
+<acronym>IPP</acronym> port of 631.  It changes users whenever an
+external program is run.</para>
+</note>
+
+<informalexample>
+<para>Enter for example <userinput>lp</userinput>.</para>
+</informalexample>
+
+<para>This is the &UNIX; user account for filters and
+<acronym>CGI</acronym> programs to run under. <acronym>CGI</acronym>
+programs are responsible for showing you the nice web administration
+interface accessible via <ulink
+url="http://localhost:631/">http://localhost:631/</ulink>).</para>
+
+<warning>
+<para>There is no need to set the <guilabel>User</guilabel> directive
+to <systemitem class="username">root</systemitem>, so never do this,
+as it only involves dangers. Should anyone discover security
+vulnerabilities in one of the used file filters, printer drivers or
+<acronym>CGI</acronym> programs, he could remotely execute arbitrary
+commands on your system with root user privileges. Always use an
+unprivileged account for the server directive
+<guilabel>User</guilabel>.</para>
+</warning>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Server group</guilabel></term>
+<listitem>
+<para>The group the server runs under.  Normally this must be
+<systemitem class="groupname">lpadmin</systemitem>, however you can
+configure things for another group as needed.</para>
+
+<informalexample>
+<para>Enter for example <userinput>lpadmin</userinput>.</para>
+</informalexample>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Remote user name</guilabel></term>
+<listitem>
+<para>The name of the user assigned to unauthenticated accesses from
+remote systems.  By default <userinput>remroot</userinput>.</para>
+
+<para>This name will appear in log files and in queries about the job
+owner &etc;, for all resources and locations of the &CUPS; server that
+are configured to allow access <emphasis>without</emphasis>
+authentication.  Authenticated entries will carry the authenticated
+names.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="server-logging-configuration">
+<title>Server Logging Configuration</title>
+
+<para>The server logging configuration is done on this screen. It
+includes:</para>
+
+<itemizedlist>
+<listitem><para><guilabel>Access log file</guilabel> setting</para></listitem>
+<listitem><para><guilabel>Error log file</guilabel> setting</para></listitem>
+<listitem><para><guilabel>Page log</guilabel> file setting</para></listitem>
+<listitem><para><guilabel>Log level</guilabel> setting</para></listitem>
+<listitem><para><guilabel>Max log file size</guilabel>
+setting</para></listitem>
+</itemizedlist>
+
+<para>This is an important screen for you. Should you ever encounter
+problems: here is the place to set the Log level to
+<quote>debug</quote>, restart the &CUPS; daemon and then look at the
+Error log file defined here for entries that might give you an insight
+to the trouble.</para>
+
+<screenshot>
+<screeninfo>&CUPS; server configuration dialog: <guilabel>Server
+logging</guilabel>  </screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration3_logging.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>The dialog to configure the &CUPS; server: <guilabel>Server
+logging</guilabel></phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Access log file</guilabel></term>
+<listitem>
+<para>This is where accesses to the server are logged.  If this does
+not start with a leading <literal>/</literal>, then it is assumed to
+be relative to the server root.</para>
+
+<para>You can also use the special name <userinput>syslog</userinput>
+to send the output to the syslog file or daemon.</para>
+
+<informalexample>
+<para>Enter a path, for example
+<userinput><filename>/var/log/cups/acces_log</filename></userinput>.</para>
+</informalexample>
+
+<para>The format of this file is stored in the so-called <quote>Common
+Log Format</quote>. This way you can use programs such as
+<application>Webalyzer</application> or any other Web access reporting
+tool to generate reports on the &CUPS; server activities.</para>
+
+<para>To include the server name in the file name use a
+<token>%s</token> in the name. Example:
+<userinput><filename>/var/log/cups/access_log-%s</filename></userinput>.</para>
+
+<screen><prompt>kurt@transmeta:~ ></prompt><userinput><command>tail</command> <parameter>/var/log/cups/access_log</parameter></userinput>
+<computeroutput>
+127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST /printers/ HTTP/1.1" 200 109
+127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST /admin/ HTTP/1.1" 401 0
+127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST / HTTP/1.1" 200 210
+127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "GET /ppd/DANKA_P450.ppd HTTP/1.1" 200 51021
+127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST /jobs/ HTTP/1.1" 200 246
+10.160.16.45 - - [04/Aug/2001:20:11:39 +0100] "GET /printers/DANKA_P450 HTTP/1.0" 200 0
+127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST / HTTP/1.1" 200 80
+127.0.0.1    - - [04/Aug/2001:20:11:39 +0100] "POST / HTTP/1.1" 200 139
+10.160.16.45 - - [04/Aug/2001:20:11:40 +0100] "GET /cups.css HTTP/1.0" 200 198
+127.0.0.1    - - [04/Aug/2001:20:11:40 +0100] "POST / HTTP/1.1" 200 139
+10.160.16.45 - - [04/Aug/2001:20:11:39 +0100] "GET /printers/DANKA_P450 HTTP/1.0" 200 7319
+10.160.16.45 - - [04/Aug/2001:20:11:40 +0100] "GET /images/title-logo.gif HTTP/1.0" 200 5729
+</computeroutput></screen>
+
+<para>You see a separate line for each single access, showing the
+<acronym>IP</acronym> address of the accessing client, date and time
+of access, method of access (<command>POST</command> or
+<command>GET</command>), the requested ressource, the &HTTP; version
+used by the client, status code and the number of transferred
+bytes. Status code <errorcode>200</errorcode> means
+<errorname>successful-OK</errorname> the <errorcode>401</errorcode> in
+the above example was an <errorname>unauthorized access</errorname>
+which was denied. For a detailed explanation of the log format go to
+<ulink url="http://localhost:631/sam.html#7_6_1">the &CUPS; Software
+Administrator Manual</ulink>.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Error log file</guilabel></term>
+<listitem>
+<para>If this does not start with a leading <literal>/</literal>, then
+it is assumed to be relative to the server root.  The default setting
+is <filename>/var/log/cups/error_log</filename>.</para>
+
+<para>You can also use the special name <userinput>syslog</userinput>
+to send the output to the syslog file or daemon.</para>
+
+<informalexample>
+<para>Enter the path, for example
+<userinput><filename>/var/log/cups/error_log</filename></userinput>.</para>
+</informalexample>
+
+<para>The error log excerpt below shows you the part logged for printing the test page
+with the default setting of <guilabel>Log level</guilabel> to
+<quote>info</quote>.  For an explanation of the <guilabel>Log
+Level</guilabel> setting see further below.</para>
+
+<screen><prompt>kurt@transmeta:~ ></prompt><userinput><command> tail </command> <parameter>/var/log/cups/error_log</parameter></userinput>
+<computeroutput>
+I [04/Aug/2001:23:15:10 +0100] Job 213 queued on 'DANKA_P450' by 'root'
+I [04/Aug/2001:23:15:10 +0100] Started filter /usr/lib/cups/filter/pstops (PID 18891) for job 213.
+I [04/Aug/2001:23:15:10 +0100] Started backend /usr/lib/cups/backend/lpd (PID 18892) for job 213.
+</computeroutput></screen>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Page log file</guilabel></term>
+<listitem>
+<para>If this does not start with a leading <literal>/</literal> then
+it is assumed to be relative to the server root.  The default is
+<filename>/var/log/cups/page_log</filename></para>
+
+<para>You can also use the special name <userinput>syslog</userinput>
+to send the output to the syslog file or daemon.</para>
+
+<informalexample>
+<para>Enter the path, for example
+<userinput><filename>/var/log/cups/page_log</filename></userinput>.</para>
+</informalexample>
+<para>The page log file has a line for every single page of every job
+printed.</para>
+
+<para> Here is what some entries look like:</para>
+
+<screen><prompt>kurt@transmeta:~ ></prompt><userinput><command> tail </command> <parameter>/var/log/cups/page_log</parameter></userinput>
+<computeroutput>
+GIMP_print_stp_HP kdetest 201 [03/Aug/2001:03:18:03 +0100] 4 1
+GIMP_print_stp_HP kdetest 201 [03/Aug/2001:03:18:03 +0100] 5 1
+GIMP_print_stp_HP kdetest 202 [03/Aug/2001:11:46:49 +0100] 1 1
+GIMP_print_stp_HP kdetest 203 [03/Aug/2001:11:46:54 +0100] 1 1
+DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 1 33
+DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 2 33
+DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 3 33
+DANKA_infotec_P450 kurt 204 [04/Aug/2001:03:29:00 +0100] 4 33
+DANKA_infotec_P450 root 205 [04/Aug/2001:19:12:34 +0100] 1 14
+DANKA_infotec_P450 root 206 [04/Aug/2001:19:15:20 +0100] 1 1
+</computeroutput></screen>
+
+<para>In this excerpt of the file you find information on the name of
+the printers (<systemitem
+class="resource">GIMP_print_stp_HP</systemitem> and <systemitem
+class="resource">DANKA_infotec_P450</systemitem>) used through this
+server, the user names (<systemitem
+class="username">kdetest</systemitem>, <systemitem
+class="username">kurt</systemitem> and <systemitem
+class="username">root</systemitem>), the job-IDs (<quote>201</quote>
+to <quote>205</quote>), time of printing, page number inside the job
+and the number of copies for the pages.  For example, job-ID 204 had 4
+pages and 33 copies printed, job-ID 205 had 14 copies of just 1 page)
+.</para>
+
+<note>
+<para>&CUPS; is dependent (for its calculation of the number of pages
+in a job) on passing the &PostScript; through the
+<quote>pstops</quote> filter.  See the <link
+linkend="architecture-diagram">&kivio; Flowchart</link> on the &CUPS;
+filter architecture for an idea about were this filter fits into the
+whole printing process).  More, <command>pstops</command> depends for
+the counting on a <acronym>DSC</acronym> conforming
+(<acronym>DSC</acronym> is Document Structuring Conventions, a
+standard defined by Adobe) to be sent by the client.  In most cases
+this is working.</para>
+
+<para>However, this page accounting does not work for any
+<quote>raw</quote> printer queues (as those, by definition, don't use
+any filtering on the &CUPS; host and are by-passing
+<command>pstops</command>.) Every job going through a
+<quote>raw</quote> queue is counted as a 1-page-job (with possibly
+multiple copies). This is especially true for all Jobs send from
+&Microsoft; &Windows; clients via <application>Samba</application> to
+the &CUPS; server, as those jobs are already arriving in the correct
+format for the printer, because the clients use the original printer
+driver.</para>
+</note>
+
+<note>
+<para>I am still looking for someone who will write a nice &CUPS; page
+log analysing tool. It should generate a report with a graphical
+output similar to the <application>Webalizer</application>'s access
+log reports. This way you could have nice statistics to be used for
+accounting about usage of printers, load dependent on daytime or
+weekday, users &etc; Anyone?</para>
+</note>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Log level</guilabel></term>
+<listitem>
+<para>This setting controls the number of messages logged to the error
+log file.  It can be one of the following:</para>
+
+<variablelist>
+<varlistentry>
+<term>debug2</term>
+<listitem>
+<para>Log everything.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>debug</term>
+<listitem>
+<para>Log almost everything.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>info</term>
+<listitem>
+<para>Log all requests and state changes.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>warn</term>
+<listitem>
+<para>Log errors and warnings.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>error</term>
+<listitem>
+<para>Log only errors.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>none</term>
+<listitem>
+<para>Log nothing.</para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+
+<para>If you need to troubleshoot (or if you want to study the inner
+workings of &CUPS;), set the log level to debug or debug2. Then the
+error_log will have a lot more entries (not just errors, but also
+informational entries).</para> 
+
+<para>You can use this to watch <quote>live</quote> what &CUPS; is
+doing when you send a print job. In a &konsole; type:</para>
+
+<screen><prompt>kurt@transmeta:~ ></prompt><userinput><command>tail</command> <option>-f</option> <option>-n</option><parameter>100</parameter> <parameter>/var/log/cups/error_log</parameter></userinput></screen>
+
+<para>This will give you the last 100 lines (<option>-n</option>
+<parameter>100</parameter>) of the file onto the screen and a
+<quote>realtime</quote> update (<option>-f</option>)of what is
+happening. The following listing shows the printing of a test page
+(some pieces have been cut off for space reasons... Try it yourself if
+you need more info):</para>
+
+<screen><computeroutput> 
+I [04/Aug/2001:23:15:12 +0100] Job 214 queued on 'DANKA_P450' by 'root'
+D [04/Aug/2001:23:15:12 +0100] StartJob(214, 08426fe0) 
+D [04/Aug/2001:23:15:12 +0100] StartJob() id = 214, file = 0/1 
+D [04/Aug/2001:23:15:12 +0100] job-sheets=none,none 
+D [04/Aug/2001:23:15:12 +0100] banner_page = 0 
+D [04/Aug/2001:23:15:12 +0100] StartJob: argv = "DANKA_P450","214","root","KDE Print Test",
+[....]  
+D [04/Aug/2001:23:15:12 +0100] StartJob: envp = "PATH=/usr/lib/cups/filter:/bin:/usr/bin", [....]  
+D [04/Aug/2001:23:15:12 +0100] StartJob: statusfds = 5, 6 
+D [04/Aug/2001:23:15:12 +0100] StartJob: filterfds[1] = 7, -1 
+D [04/Aug/2001:23:15:12 +0100] StartJob: filter = "/usr/lib/cups/filter/pstops" 
+D [04/Aug/2001:23:15:12 +0100] StartJob: filterfds[0] = 8, 9 
+D [04/Aug/2001:23:15:12 +0100] start_process("/usr/lib/cups/filter/pstops", [....]  
+I [04/Aug/2001:23:15:12 +0100] Started filter /usr/lib/cups/filter/pstops (PID 18991) for job 214.  
+D [04/Aug/2001:23:15:12 +0100] StartJob: backend = "/usr/lib/cups/backend/lpd" 
+D [04/Aug/2001:23:15:12 +0100] StartJob: filterfds[1] = -1, 7 
+D [04/Aug/2001:23:15:12 +0100] start_process("/usr/lib/cups/backend/lpd", [....]  
+I [04/Aug/2001:23:15:12 +0100] Started backend /usr/lib/cups/backend/lpd (PID 18992) for job 214.
+D [04/Aug/2001:23:15:12 +0100] Page = 595x842; 15,16 to 580,833 [....]  </computeroutput></screen> 
+
+<para>The lines tagged <quote>D</quote> at the beginning are debug
+level entries, the ones tagged <quote>I</quote> are there in
+<quote>info</quote> level.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Max log file size</guilabel></term>
+<listitem>
+
+<para>Controls the maximum size of each log file before they are
+rotated.  Defaults to 1048576 (1 Mb).  Set this to 0 to disable log
+rotation.</para>
+
+<informalexample>
+<para>Enter an size in bytes, for example <userinput>1048576</userinput></para>
+</informalexample>
+
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="server-directories-configuration">
+<title>Server Folders Configuration</title>
+
+<para>The dialog to configure the &CUPS; server.  Different
+folders are to be set here. Normally you don't need to change
+anything in this section. In case you play around with fancy
+(TrueType, &PostScript; or other) fonts on your system, this qis the
+place to do the settings for using those fonts when printing.  Server
+folder settings include:</para>
+
+<itemizedlist>
+<listitem>
+<para><guilabel>Executables</guilabel>: where to find the server
+executables</para>
+</listitem>
+<listitem>
+<para><guilabel>Configuration</guilabel>: where to find the server
+configuration files</para>
+</listitem>
+<listitem>
+<para><guilabel>Data</guilabel>: where to find the server data
+files</para>
+</listitem>
+<listitem>
+<para><guilabel>Temporary files</guilabel>: where to put the server
+temporary print files </para>
+</listitem>
+<listitem>
+<para><guilabel>Temporary Requests</guilabel>: where to find the
+server </para>
+</listitem>
+<listitem>
+<para><guilabel>Font Path</guilabel>: where to find the
+server fonts</para>
+</listitem>
+</itemizedlist>
+<screenshot>
+<screeninfo>&CUPS; server configuration dialog: &HTTP; configuration</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration4_directories.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>The dialog to configure the &CUPS; server: &HTTP; configuration</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Executables</guilabel></term>
+<listitem>
+<para>The root folder for the scheduler executables.  By default
+this is <filename class="directory">/usr/lib/cups</filename> (or
+<filename class="directory">/usr/lib32/cups</filename> on IRIX
+6.5)</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Configuration</guilabel></term>
+<listitem>
+<para>The root folder for the scheduler.  By default, <filename
+class="directory">/etc/cups</filename>.</para>
+<para>On the authors SuSE system, this is <filename
+class="directory">/usr/share/doc/cups</filename>.  It contains all the
+<acronym>HTML</acronym> or <acronym>PDF</acronym> documentation for
+&CUPS; which is available through the Web interface at <ulink
+url="http://localhost:631/documentation.html">
+http://localhost:631/documentation.html</ulink></para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Data</guilabel></term>
+<listitem>
+<para>The root folder for the &CUPS; data files.  By default this
+is <filename class="directory">/usr/share/cups</filename></para>
+<para>It contains such things as banners, charsets, data, drivers,
+fonts, and <command>pstoraster</command> templates.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Temporary files</guilabel></term>
+<listitem>
+<para>The folder to put temporary files in.  This folder must be
+writable by the user defined on the previous screen.  This defaults to
+either <filename class="directory">/var/spool/cups/tmp</filename> or
+the value of the <envar>TMPDIR</envar> environment variable.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Temporary Requests</guilabel></term>
+<listitem>
+<para>The folder where request files are stored.  By default this
+is <filename class="directory">/var/spool/cups</filename></para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Font path</guilabel></term>
+<listitem>
+<para>The place to configure the &CUPS; server for handling your fancy
+fonts (TrueType or &PostScript;).  &CUPS; will look here for fonts to
+embed in printfiles.  This currently only affects the
+<command>pstoraster</command> filter, and the default is <filename
+class="directory">/usr/share/cups/fonts</filename>.</para>
+
+<para>To specify more than one folder, list them with double colons as
+separator. Do it like this:</para>
+
+<informalexample>
+<para><userinput>/path/to/first/fontdir/:/path/to/second/fontdir/:/path/to/last/fontdir/</userinput></para>
+</informalexample>
+
+<para>For the Font path directive to work as intended, the application
+that wants to print needs to:</para>
+
+<itemizedlist>
+<listitem>
+<para>Either correctly reference its desired fonts in the header of the
+generated &PostScript;</para>
+</listitem>
+<listitem>
+<para>Or embed the font into the &PostScript; file.</para>
+</listitem>
+</itemizedlist>
+
+<para><emphasis>Referencing</emphasis> the font by name leaves it up
+to the <acronym>RIP</acronym> and print device to respect and actually
+use it. <acronym>RIP</acronym> or printer <emphasis>can</emphasis>
+only use the desired font, if it is available on the system.</para>
+
+<para> In the case of a &PostScript; printer, this needs to be a
+printer-resident font. If the printers doesn't have this font, it will
+try and replace it by an adequately similar font.</para>
+
+<para>In the case of a non &PostScript; printer, this is done by
+&CUPS; and its <acronym>RIP</acronym>-ing filtering system. &CUPS;
+will use the font path directive to grab the correct font when
+<acronym>RIP</acronym>-ing the &PostScript; in the
+<command>pstoraster</command> filter. </para>
+
+<para>In the case of a &PostScript; output device, &CUPS; is just
+spooling the file (actually, it is passing it through the
+<command>pstops</command> filter for accounting or n-up purposes), not
+<quote>working</quote> on it. Therefore, if you print to a
+&PostScript; printer it is solely the printer's responsibility to use
+the font asked for. It can't, if the font is neither loaded into the
+printer nor embedded in the &PostScript;.
+</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</sect1>
+<sect1 id="server-configuration">
+<title>Server <acronym>HTTP</acronym>
+Configuration</title>
+
+<para>The dialog to configure the &CUPS; server &HTTP; settings
+is shown here. </para>
+<para>&CUPS; server &HTTP; settings are the following ones: </para>
+<itemizedlist>
+<listitem><para>the <guilabel>Document folder</guilabel></para></listitem>
+<listitem><para>the <guilabel>Default Language</guilabel></para></listitem>
+<listitem><para>the <guilabel>Default Charset</guilabel></para></listitem>
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Dialog to configure the &CUPS; server &HTTP; settings
+</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration5_HTTP.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to configure the &CUPS; server &HTTP; settings
+</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Document folder</guilabel></term>
+<listitem>
+<para>The root folder for &HTTP; documents that are served.  By
+default the compiled in folder, <filename
+class="directory">/usr/share/cups/doc-root</filename></para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Default Language</guilabel></term>
+<listitem>
+<para>The default language, if not specified by the browser.  If not
+specified, the current locale is used.</para>
+<informalexample>
+<para>Use the two letter locale codes, for example
+<userinput>en</userinput> or <userinput>de</userinput>.</para>
+</informalexample>
+<!-- available languages? -->
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Default charset</guilabel></term>
+<listitem>
+<para>The default character set to use. If not specified, this
+defaults to UTF-8.  This can also be overridden directly in the
+<acronym>HTML</acronym> documents.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="server-encryption-support-configuration">
+<title><guilabel>Server encryption support configuration</guilabel></title>
+
+<para>This is the dialog to configure the &CUPS; server security
+settings. The server encryption support settings are these: </para>
+
+<itemizedlist>
+<listitem><para><guilabel>Server certificate</guilabel>: the file to
+read containing the server's certificate</para></listitem> 
+<listitem><para>Server key: the file to read containing the server's
+key</para></listitem>
+</itemizedlist>
+<screenshot>
+<screeninfo>&CUPS; server configuration dialog: security overview</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration6_encryption.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>The dialog to configure the &CUPS; server: security settings</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Server certificate</guilabel></term>
+<listitem>
+<para>The file to read containing the server's certificate.  Defaults
+to <filename>/etc/cups/ssl/server.crt</filename>.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Server key</guilabel></term>
+<listitem>
+<para>The file to read containing the server's key.  Defaults to
+<filename>/etc/cups/ssl/server.key</filename></para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</sect1>
+
+<sect1 id="server-miscellaneous-configuration">
+<title>Server Miscellaneous Configuration</title>
+
+<para>The dialog to configure the &CUPS; server miscellaneous settings
+is shown here. The following server settings are done through this
+screen:</para>
+
+<itemizedlist>
+<listitem><para><guilabel>Preserve job history</guilabel>: whether to
+preserve a job history for later re-view</para></listitem>
+<listitem><para><guilabel>Preserve job files</guilabel>: whether to
+preserve fully <acronym>RIP</acronym>-ed job files for later
+re-print</para></listitem>  
+<listitem><para><guilabel>Printcap file</guilabel>: setting the name
+of and the path to a printcap file</para></listitem>
+<listitem><para><guilabel>RIP Cache</guilabel>: setting the size of
+the <acronym>RIP</acronym> cache in memory</para></listitem>
+<listitem><para><guilabel>Filter Limit</guilabel>: defining a filter
+limit</para></listitem>
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Dialog to configure the &CUPS; server miscellaneous settings</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration7_miscellanious.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to configure the &CUPS; server miscellaneous
+settings</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Preserve job history (after completion)</guilabel></term>
+<listitem>
+<para>Whether or not to preserve the job history after a job is
+completed, canceled, or stopped.  The default is yes</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Preserve job file (after completion)</guilabel></term>
+<listitem>
+<para>Whether or not to preserve the job files after a job is
+completed, canceled, or stopped. The default is no.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Printcap file</guilabel></term>
+<listitem>
+<para>The name of the printcap file.  The default is no filename.
+Leave this blank, to disable printcap file generation.</para>
+<para>The printcap setting is only needed to satisfy older
+applications in need of such a file.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>RIP cache</guilabel></term>
+<listitem>
+<para>The amount of memory that each <acronym>RIP</acronym> should use
+to cache bitmaps.  The value can be any real number, followed by
+<quote>k</quote> for kilobytes, <quote>m</quote> for megabytes,
+<quote>g</quote>for gigabytes, or <quote>t</quote> for tiles, where
+one tile is 256 x 256 pixels.  The default value is 8m.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Filter limit</guilabel></term>
+<listitem>
+<para>Sets the maximum cost of all job filters that can be run at the
+same time.  A limit of 0 means no limit.  A typical job may need a
+filter limit of at least 200.  Limits less than the minimum required
+by a job force a single job to be printed at any time.  The default
+limit is 0 (unlimited).</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="network-general-configuration">
+<title>Network General Configuration</title>
+
+<para>The dialog to configure the &CUPS; server network settings is
+shown here. It includes:</para>
+
+<itemizedlist>
+<listitem><para><guilabel>Look for hostname on IP
+addresses</guilabel></para></listitem>
+<listitem><para><guilabel>Port</guilabel></para></listitem>
+<listitem><para><guilabel>Max request size</guilabel></para></listitem>
+<listitem><para><guilabel>Timeout</guilabel></para></listitem>
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Dialog to configure the &CUPS; server network settings</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration8_networkgeneral.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to configure the &CUPS; server network
+settings</phrase></textobject>
+</mediaobject>
+</screenshot>
+<variablelist>
+<varlistentry>
+<term><guilabel>Look for hostname on IP addresses</guilabel></term>
+<listitem>
+<para>Whether or not to do lookups on <acronym>IP</acronym> addresses
+to get a fully-qualified hostname.  This defaults to off, for
+performance reasons.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Port</guilabel></term>
+<listitem>
+<para>Enter here Ports and addresses that the server will listen to.
+The default port 631 is reserved for the Internet Printing Protocol,
+and is what we use here.</para>
+<para>You can have multiple entries, to listen to more than one port
+or address, or to restrict access.</para>
+<note>
+<para>Unfortunately, most web browsers don't support
+<acronym>TLS</acronym> or &HTTP; upgrades for encryption.  If you want
+to support web-based encryption, you'll probably need to listen on
+port 443, the <acronym>HTTPS</acronym> port.</para>
+</note>
+<para>Use the <guibutton>Add</guibutton> and
+<guibutton>Remove</guibutton> buttons to add and remove entries from
+the list.</para>
+<informalexample>
+<para>You can enter ports on their own, &eg;
+<userinput>631</userinput>, or hostnames with ports, &eg;
+<userinput>myhost:80</userinput> or <userinput>1.2.3.4:631</userinput>.</para>
+</informalexample>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Max request size</guilabel></term>
+<listitem>
+<para>Controls the maximum size of &HTTP; requests and print files.
+The default setting is 0, which disables this feature.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Timeout</guilabel></term>
+<listitem>
+<para>The timeout (in seconds) before requests time out.  The default
+is 300 seconds.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</sect1>
+
+<sect1 id="network-clients-configuration">
+<title>Network Clients Configuration</title>
+
+<para>The dialog to configure the &CUPS; network client settings is
+shown here. It includes:</para>
+
+<itemizedlist>
+<listitem><para><guilabel>Accept "Keep Alive"
+requests</guilabel></para></listitem>
+<listitem><para>KeepAliveTimeout:</para> </listitem>
+<listitem><para>MaxClients: </para></listitem>
+</itemizedlist>
+<screenshot>
+<screeninfo>dialog to configure the &CUPS; network client settings</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration9_networkclients.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to configure the &CUPS; network client settings</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Accept "Keep Alive" requests</guilabel></term>
+<listitem>
+<para>Whether or not to support the Keep-Alive connection option. The
+default is on.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Keep alive timeout</guilabel></term>
+<listitem>
+<para>The timeout (in seconds) before Keep-Alive connections are
+automatically closed.  The default is 60 seconds.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Max number of clients</guilabel></term>
+<listitem>
+<para>Controls the maximum number of simultaneous clients that will be
+handled.  Defaults to 100.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</sect1>
+
+<sect1 id="browsing-general-configuration">
+<title>Browsing General Configuration</title>
+
+<para>The dialog to configure the &CUPS; browsing general settings
+is shown here. It includes: </para>
+
+<itemizedlist>
+<listitem><para><guilabel>Enable browsing</guilabel></para></listitem>
+<listitem><para><guilabel>Use short names when
+possible</guilabel></para></listitem>
+<listitem><para><guilabel>Use implicit
+classes</guilabel></para></listitem>
+</itemizedlist>
+
+
+<screenshot>
+<screeninfo>Dialog to configure the &CUPS; browsing general
+settings</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration10_browsinggeneral.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to configure the &CUPS; browsing general
+settings</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Enable browsing</guilabel></term>
+<listitem>
+<para>Whether or not to broadcast printer information to other &CUPS;
+servers.  Enabled by default.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Use short names when possible</guilabel></term>
+<listitem>
+<para>Whether or not to use <quote>short</quote> names for remote
+printers when possible (&eg; <systemitem
+class="resource">printer</systemitem> instead of <systemitem
+class="resource">printer@host</systemitem>).  Enabled by
+default.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Use implicit classes</guilabel></term>
+<listitem>
+<para>Whether or not to use implicit classes.</para>
+<para>Printer classes can be specified explicitly, in the
+<filename>classes.conf</filename> file, implicitly based upon the
+printers available on the <acronym>LAN</acronym>, or both.</para>
+<para>When Implicit classes are enabled, printers on the
+<acronym>LAN</acronym> with the same name (&eg; <systemitem
+class="resource">Acme-LaserPrint-1000</systemitem>) will be put into
+a class with the same name.  This allows you to setup multiple
+redundant queues on a <acronym>LAN</acronym> without a lot of
+administrative difficulties.  If a user sends a job to <systemitem
+class="resource">Acme-LaserPrint-1000</systemitem>, the job will go to
+the first available queue.</para>
+<para>This option is enabled by default.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</sect1>
+<sect1 id="browsing-connection-configuration">
+<title>Browsing Connection Configuration</title>
+
+<para>The dialog to configure the &CUPS; server browsing connection is
+shown here. Browsing connection settings include:</para>
+
+<itemizedlist>
+<listitem><para><guilabel>Broadcast addresses</guilabel>: The
+(<acronym>UDP</acronym>) broadcast address to transmit printer
+information to</para></listitem>
+<listitem><para><guilabel>Broadcast Port</guilabel>: The port number
+to use for broadcasting</para></listitem> 
+<listitem><para><guilabel>Poll addresses</guilabel>: The address(es)
+to poll for information about printers on servers that might not
+broadcast (or whose broadcasts might not reach your
+<acronym>LAN</acronym> due to routers in between).</para></listitem>
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Dialog to configure the &CUPS; server browsing
+connection</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration11_browsingconnections.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to configure the &CUPS; server browsing
+connection</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Broadcast addresses</guilabel></term>
+<listitem>
+<para>After pressing the <guibutton>Add</guibutton> button, you will
+see the following dialog to enter a new value for outgoing
+broadcasting browse packets. It is the same kind of dialog as for
+adding other &CUPS; server addresses to be polled for printer
+information.</para>
+
+<screenshot>
+<screeninfo>Dialog to enter a new value for broadcasting browse
+packets to</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfig_browsingmasks_add_button.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to enter a new value for broadcasting browse packets
+to</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>This option specifies a broadcast address to be used.  By
+default, browsing information is broadcast to all active
+interfaces.</para>
+
+<note>
+<para>&HP-UX; 10.20 and earlier do not properly handle broadcast
+unless you have a Class A, B, C or D netmask (&ie;, there is no
+<acronym>CIDR</acronym> support).</para>
+</note>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Broadcast port</guilabel></term>
+<listitem>
+<para>The port used for <acronym>UDP</acronym> broadcasts.  By default
+this is the <acronym>IPP</acronym> port; if you change this, you need
+to do it on all servers.  Only one BrowsePort is recognized.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Poll addresses</guilabel></term>
+<listitem>
+<para>Poll the named server(s) for printers.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</sect1>
+<sect1 id="browsing-masks-configuration">
+<title>Browsing Masks Configuration</title>
+
+<para>The dialog to configure the &CUPS; server allowed and/or denied browse
+packets from other servers is shown here. </para>
+
+<itemizedlist>
+<listitem><para><guilabel>Browse allow</guilabel>: </para></listitem>
+<listitem><para><guilabel>Browse deny</guilabel>: </para></listitem>
+<listitem><para><guilabel>Browse order</guilabel>: </para></listitem>
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Dialog to configure the &CUPS; server allowed and/or
+denied browse packets from other servers</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration11_browsingmasks.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to configure the &CUPS; server allowed and/or denied
+browse packets from other servers</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Add Browse Address</guilabel> dialog</term>
+<listitem>
+<para>The dialog to enter a new value for the address of another
+&CUPS; server to accept browse packets from is shown here. It is opened
+by clicking on the <guibutton>Add...</guibutton> button beside the
+field named <guilabel>Browse Allow:</guilabel>. It is the same dialog
+as for adding <quote>denied</quote> broadcast sending
+addresses.</para>
+
+<para>The dialog to enter a new value for the address of another
+&CUPS; server to accept browse packets from is shown here.</para>
+
+<screenshot>
+<screeninfo>Dialog to enter a new value for the address of another
+&CUPS; server to accept browse packets from</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfig_browsingmasks_add_button.png"
+format="PNG" /></imageobject>
+<textobject>
+<phrase>Dialog to enter a new value for the address of another &CUPS;
+server to accept browse packets from</phrase></textobject>
+</mediaobject>
+</screenshot>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Browse allow</guilabel> and <guilabel>Browse
+deny</guilabel></term>
+<listitem>
+<para><guilabel>Browse allow</guilabel> specifies an address mask to
+allow for incoming browser packets.  The default is to allow packets
+from all addresses.</para>
+<para><guilabel>Browse deny</guilabel> specifies an address mask to
+deny for incoming browser packets.  The default is to deny packets
+from no addresses.</para>
+<para>Both <guilabel>Browse allow</guilabel> and <guilabel>Browse
+deny</guilabel> accept the following notations for addresses:</para>
+
+<informalexample>
+<itemizedlist>
+<listitem>
+<para><userinput>All</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>None</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>*.domain.com</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>.domain.com</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>host.domain.com</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.*</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.*</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.*</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.nnn</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.nnn/mmm</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm</userinput></para>
+</listitem>
+</itemizedlist>
+</informalexample>
+
+<para>The hostname/domain name restrictions will only work if you have
+turned hostname lookups on!</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Browse order</guilabel></term>
+<listitem>
+<para>Specifies the order of the allow/deny comparisons.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</sect1>
+
+<sect1 id="browsing-timeouts-configuration">
+<title>Browsing Timeouts Configuration</title>
+
+<para>The dialog to configure the &CUPS; server browse timeout settings
+is shown here. Browse timeout settings include:</para>
+<itemizedlist>
+<listitem><para><guilabel>Browse Interval</guilabel></para></listitem>
+<listitem><para><guilabel>Browse Timeout</guilabel></para></listitem>
+</itemizedlist>
+<screenshot>
+<screeninfo>Dialog to configure the &CUPS; server browse timeout
+settings</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration12_browsingtimeouts.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>dialog to configure the &CUPS; server browse timeout
+settings</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Browse interval</guilabel></term>
+<listitem>
+<para>The time between browsing updates in seconds.  The default is 30
+seconds.</para>
+<para>Note that browsing information is sent whenever a printer's
+state changes as well, so this represents the maximum time between
+updates.</para>
+<para>Set this to 0 to disable outgoing broadcasts so your local
+printers are not advertised, but you can still see printers on other
+hosts.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>Browse timeouts</term>
+<listitem>
+<para>The timeout (in seconds) for network printers - if we don't get
+an update within this time, the printer will be removed from the
+printer list.</para>
+<para>This number definitely should not be less than the browse
+interval period, for obvious reasons.  Defaults to 300 seconds.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</sect1>
+<sect1 id="browsing-relay-configuration">
+<title>Browsing Relay Configuration</title>
+
+<para>The dialog to configure the &CUPS; server as a browsing relay is
+shown here. Browsing relay settings include:</para>
+
+<itemizedlist>
+<listitem><para><guilabel>Browser packets relay</guilabel></para></listitem>
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Dialog to configure the &CUPS; server as a browsing
+relay</screeninfo> 
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration14_browsingrelay.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to configure the &CUPS; server as a browsing
+relay</phrase></textobject> 
+</mediaobject>
+</screenshot>
+
+<variablelist>
+<varlistentry>
+<term>Add Browse Relay dialog</term>
+<listitem>
+<para>The dialog to enter a new value for an address pair to define
+browsing relaying between a &CUPS; server and a network is shown
+here.</para>
+
+<screenshot>
+<screeninfo>The dialog to enter a new value for an address pair to
+define browsing relaying between a &CUPS; server and a
+network</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfig_browse_relay_add_button.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>The dialog to enter a new value for an address pair to define
+browsing relaying between a &CUPS; server and a
+network</phrase></textobject>
+</mediaobject>
+</screenshot>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Browser packets relay</guilabel></term>
+<listitem>
+<para>Relay browser packets from one address or network to
+another.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</sect1>
+
+<sect1 id="security-configuration">
+<title>Security Configuration</title>
+
+<para>The dialog to configure the &CUPS; server security settings for
+any of the defined server locations is shown here. It contains the
+following settings, which may be defined separately for any valid
+resource (or location) of the &CUPS; server:</para>
+
+<itemizedlist>
+<listitem><para>System Group:</para></listitem>
+<listitem><para>Access Permissions: </para></listitem>
+<listitem><para>Auth Type:</para></listitem>
+<listitem><para>Auth Class:</para></listitem>
+<listitem><para>Auth Group Name:</para></listitem>
+<listitem><para>Encryption:</para></listitem>
+<listitem><para>Allow:</para></listitem>
+<listitem><para>Deny:</para></listitem>
+<listitem><para>Order:</para></listitem>
+</itemizedlist>
+
+<para>Valid resources (or locations) of the &CUPS; server are:</para>
+
+<itemizedlist>
+<listitem><para>Server Root Location: <systemitem
+class="resource">/</systemitem> </para></listitem> 
+<listitem><para>Server Administration Location: <systemitem
+class="resource">/admin</systemitem></para></listitem>
+<listitem><para>All printers on the server: <systemitem
+class="resource">/printers</systemitem></para></listitem>
+<listitem><para>Any individual printer on the server:
+&eg; <systemitem
+class="resource">/printers/infotec_P320</systemitem></para></listitem> 
+<listitem><para>All printer classes on the server: <systemitem
+class="resource">/classes</systemitem>:</para></listitem> 
+<listitem><para>Any individual printer class on the server:
+&eg; <systemitem
+class="resource">/classes/all_infotecs_P320_or_P450</systemitem></para></listitem> 
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Dialog to configure the &CUPS; server security settings
+for any of the defined server locations</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration_securityoverview.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>dialog to configure the &CUPS; server security settings for
+any of the defined server locations</phrase></textobject>
+
+</mediaobject>
+</screenshot>
+
+<note>
+<para>For all locations that are not defined separately the setting of
+the location <quote>above</quote> it is valid.</para>
+
+<para>For example, you have a printer named <systemitem
+class="resource">infotec_P450</systemitem> with no set security
+options. Then the security of the location <systemitem
+class="resource">/printers</systemitem> will take the responsibility
+for this printer as it is a sub-location of<systemitem
+class="resource">/printers</systemitem>. If, in turn there is no
+security set for <systemitem class="resource">/printers</systemitem>,
+then the security for <systemitem class="resource">/</systemitem> (the
+general security) of the server takes responsibility. Either you have
+set this for your purpose or the compiled-in default value takes
+over.</para>
+</note>
+
+<variablelist>
+<varlistentry>
+<term>SystemGroup</term>
+<listitem>
+<para>The group name for <systemitem
+class="groupname">System</systemitem> or printer administration
+access.  The default varies depending on the operating system, but
+will be <systemitem class="groupname">lpadmin</systemitem>, <systemitem
+class="groupname">system</systemitem> or <systemitem
+class="groupname">root</systemitem> (checked for in that order).</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>Access Permissions</term>
+<listitem>
+<para>Access permissions for each folder served by the scheduler.
+Locations are relative to the document root.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>Authorization Type</term>
+<listitem>
+<para>The authorization to use:</para>
+
+<variablelist>
+<varlistentry>
+<term>None</term>
+<listitem>
+<para>Perform no authentication.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Basic</term>
+<listitem>
+<para>Perform authentication using the &HTTP; Basic method.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Digest</term>
+<listitem>
+<para>Perform authentication using the &HTTP; Digest method.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+<note>
+<para>Local certificate authentication can be substituted by the
+client for Basic or Digest, when connecting to the localhost
+interface.</para>
+</note>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>Authorization Class</term>
+<listitem>
+<para>The authorization class.  Currently only
+<quote>Anonymous</quote>, <quote>User</quote>, <quote>System</quote>
+(valid user belonging to the group set as system group), and
+<quote>group</quote> (valid user belonging to the specified group) are
+supported.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>Authorization Group Name</term>
+<listitem>
+<para>The group name for <quote>Group</quote> authorization</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>Encryption</term>
+<listitem>
+<para>Whether or not to use encryption.  This depends on having the
+<application>OpenSSL</application> linked into the &CUPS; library and
+scheduler.</para>
+<para>Possible values are:</para>
+<variablelist>
+<varlistentry>
+<term>Always</term>
+<listitem>
+<para>Always use encryption (<acronym>SSL</acronym>)</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Never</term>
+<listitem>
+<para>Never use encryption.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Required</term>
+<listitem>
+<para>Use <acronym>TLS</acronym> encryption upgrade.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>IfRequested</term>
+<listitem>
+<para>Use encryption if the server requests it.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Allow</guilabel></term>
+<listitem>
+<para>Allows access from the specified hostname, domain,
+<acronym>IP</acronym> address or network.  Possible values are:</para>
+
+<informalexample>
+<itemizedlist>
+<listitem>
+<para><userinput>All</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>None</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>*.domain.com</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>.domain.com</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>host.domain.com</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.*</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.*</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.*</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.nnn</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.nnn/mmm</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm</userinput></para>
+</listitem>
+</itemizedlist>
+</informalexample>
+
+<para>The host and domain address require that you enable hostname
+lookups, as described earlier.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Deny</guilabel></term>
+<listitem>
+<para>Denies access from the specified hostname, domain,
+<acronym>IP</acronym> address or network.  Possible values are:</para>
+<informalexample>
+<itemizedlist>
+<listitem>
+<para><userinput>All</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>None</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>*.domain.com</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>.domain.com</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>host.domain.com</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.*</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.*</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.*</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.nnn</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.nnn/mmm</userinput></para>
+</listitem>
+<listitem>
+<para><userinput>nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm</userinput></para>
+</listitem>
+</itemizedlist>
+</informalexample>
+<para>The host and domain address require that you enable hostname
+lookups, as described earlier.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>Order</term>
+<listitem>
+<para>The order of the allow and deny processing.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+
+<sect1 id="example-how-define-security-for-all-printers">
+<title>Example: How To Define The Security For All Printers</title>
+
+<para>The dialog to configure the &CUPS; server security settings is
+discussed here. We use the example to add security definitions other
+than the default ones for the resource named <systemitem
+class="resource">all printers</systemitem>. For the &CUPS; web server,
+this is the location you access through <ulink
+url="http://localhost:631/printers/">
+http://localhost:631/printers/</ulink> or (remotely) through <ulink
+url="http://cups.server.name:631/printers/">
+http://cups.server.name:631/printers/</ulink></para>
+
+<para>The first screenshot shows the general location for this
+setting. <guilabel>Select</guilabel> <guibutton>Add</guibutton> or
+<guibutton>Modify</guibutton> a resource for which you want to decide
+about its security settings.</para>
+
+<screenshot>
+<screeninfo>Dialog to configure the &CUPS; server security
+settings</screeninfo><mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration15a_resourceallprinters_defineaccess.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to configure the &CUPS; server security
+settings</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>This dialog is to add a new resource.  It looks similar if you
+want to modify an already existing resource. Here are the general
+options:</para>
+
+<screenshot>
+<screeninfo>Dialog to add a new resource.</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration15b_resourceallprinters_defineaccess.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to add a new resource.</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>.This is the second part or the dialog is to add a new
+ressource.  It looks similar if you want to modify an already existing
+resource. Here you define the actual access masks for the resource in
+question. </para>
+
+<screenshot>
+<screeninfo>Dialog to add a new resource.</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration15c_resourceallprinters_defineaccess.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Dialog to add a new resource.</phrase></textobject>
+</mediaobject>
+</screenshot>
+<screenshot>
+<screeninfo>Resource dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration_resourceadminaccessmasks.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Resource dialog</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<screenshot>
+<screeninfo>Resource dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration_resourceadminaddprinters.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Resource dialog</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<screenshot>
+<screeninfo>Resource dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration_resourceadminaddprinters_defineaccess.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Resource dialog</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<screenshot>
+<screeninfo>Resource dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsserverconfiguration_resourceadminauthorization.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Resource dialog</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+</sect1>
+
+</chapter>
diff --git a/doc/tdeprint/cups-filterarchitecture-kivio-70Percent-scaled.png b/doc/tdeprint/cups-filterarchitecture-kivio-70Percent-scaled.png
new file mode 100644
index 000000000..9f5a73d39
Binary files /dev/null and b/doc/tdeprint/cups-filterarchitecture-kivio-70Percent-scaled.png differ
diff --git a/doc/tdeprint/cupsaddprinterwizard1.png b/doc/tdeprint/cupsaddprinterwizard1.png
new file mode 100644
index 000000000..cf20e087c
Binary files /dev/null and b/doc/tdeprint/cupsaddprinterwizard1.png differ
diff --git a/doc/tdeprint/cupsaddprinterwizard2_backendselection.png b/doc/tdeprint/cupsaddprinterwizard2_backendselection.png
new file mode 100644
index 000000000..3e4b2f126
Binary files /dev/null and b/doc/tdeprint/cupsaddprinterwizard2_backendselection.png differ
diff --git a/doc/tdeprint/cupsaddprinterwizard3_networkscan.png b/doc/tdeprint/cupsaddprinterwizard3_networkscan.png
new file mode 100644
index 000000000..160834ee9
Binary files /dev/null and b/doc/tdeprint/cupsaddprinterwizard3_networkscan.png differ
diff --git a/doc/tdeprint/cupsaddprinterwizard3_networkscan_results.png b/doc/tdeprint/cupsaddprinterwizard3_networkscan_results.png
new file mode 100644
index 000000000..aa6cd87f1
Binary files /dev/null and b/doc/tdeprint/cupsaddprinterwizard3_networkscan_results.png differ
diff --git a/doc/tdeprint/cupsaddprinterwizard4_networkscan_config.png b/doc/tdeprint/cupsaddprinterwizard4_networkscan_config.png
new file mode 100644
index 000000000..7fff7de52
Binary files /dev/null and b/doc/tdeprint/cupsaddprinterwizard4_networkscan_config.png differ
diff --git a/doc/tdeprint/cupsoptions.docbook b/doc/tdeprint/cupsoptions.docbook
new file mode 100644
index 000000000..bd0ba95a3
--- /dev/null
+++ b/doc/tdeprint/cupsoptions.docbook
@@ -0,0 +1,602 @@
+<chapter id="cupsoptions-presently-outside-kcontrol">
+<title>&CUPS; options presently not available through &kcontrol;</title>
+
+<para>This chapter gives you some hints about further configuration
+possibilities which may not be available through the &tdeprint; &GUI;
+interface to &CUPS;.</para>
+
+<sect1>
+<title>Overview of provided features</title>
+
+<para>All of the most often used features and functions &CUPS; provides
+are supported in &tdeprint;.</para>
+
+<itemizedlist>
+<listitem>
+<para>Printer management is supported: add, remove, modify, configure,
+test, disable, enable ...</para>
+</listitem>
+<listitem>
+<para>Job management is supported: cancel, hold, release, move to
+different printer</para>
+</listitem>
+<listitem>
+<para>Print options: for full control as provided by &CUPS;.</para>
+</listitem>
+</itemizedlist>
+
+</sect1>
+
+<sect1 id="where-to-find-further-chupshelp">
+<title>Where to find help when using &CUPS;</title>
+
+<para>A lot of information about the inner workings of &CUPS; is
+available through the web interface, which &CUPS; will always
+support. It works with any browser (yes, even text-based ones). Just go
+to <ulink url="http://localhost:631/">http://localhost:631/</ulink> for
+a start. There you find a link to locally available &CUPS; documentation
+in <acronym>HTML</acronym> and <acronym>PDF</acronym> if you are new to
+&CUPS;.</para>
+
+<para>&CUPS; is accessible through other means than &tdeprint;:
+commandline and browser are two native &CUPS; interfaces. The many
+commandline utilities add up to the most complete control you have on
+&CUPS;. The web interface is only a subset of all available
+configuration or control options. </para>
+
+<para>This is also true for &tdeprint;. Generally, as &CUPS; develops,
+most new features will first be implemented through the commandline. Be
+sure to check the latest versions of the man pages for &CUPS; to stay
+up-to-date with new features after you install a new version.</para>
+
+<tip>
+<para>Depending on your update method for &CUPS;, your active
+configuration file might not have been re-placed by a new one; thus your
+new, more capable &CUPS;-daemon might not have been told by the old
+configuration file about the new features to use.</para>
+</tip>
+
+<para>A complete list of available files and man pages should always be
+in the &CUPS; Software Administrator Manual (<ulink
+url="http://localhost:631/sam.html#FILES">http://localhost:631/sam.html#FILES</ulink>.
+In the &konqueror; &URL;/location field, type
+<userinput>man:/lpadmin</userinput> and
+<userinput>man:/cupsd.conf</userinput> to find out about the most
+important command and configuration file. You knew already about
+&konqueror;'s nice abilities to show you the traditional &UNIX; man
+pages, didn't you? Read this.  From there you find more interesting
+hints and links to other man pages and documentation.</para>
+
+<sect2>
+<title>How to find &CUPS; related man pages</title>
+
+<para>Here is a way to find out which &CUPS; related man pages there
+are on your system: </para>
+
+<screen><prompt>kurt@transmeta:~ ></prompt> <userinput><command>apropos</command> <parameter>cups</parameter></userinput>
+<computeroutput>
+cups-calibrate (8)- ESP Printer Calibration Tool
+lpstat (1)        - print cups status information
+cups-lpd (8)      - receive print jobs + report printer status to lpd clients
+classes.conf (5)  - class configuration file for cups
+backend (1)       - cups backend transmission interfaces
+filter (1)        - cups file conversion filter interfaces
+cups-polld (8)    - cups printer polling daemon
+mime.types (5)    - mime type description file for cups
+cupsd (8)         - common unix printing system daemon
+lpadmin (8)       - configure cups printers and classes
+cupsd.conf (5)    - server configuration file for cups
+mime.convs (5)    - mime type conversion file for cups
+printers.conf (5) - printer configuration file for cups
+mime.convs (5)    - mime type conversion file for cups
+cups-polld (8)    - cups printer polling daemon
+lpstat (1)        - print cups status information
+backend (1)       - cups backend transmission interfaces
+mime.types (5)    - mime type description file for cups
+cupsd (8)         - common unix printing system daemon
+lpadmin (8)       - configure cups printers and classes
+printers.conf (5) - printer configuration file for cups
+cupsd.conf (5)    - server configuration file for cups
+filter (1)        - cups file conversion filter interfaces
+</computeroutput></screen>
+</sect2>
+</sect1>
+
+<sect1 id="tips-and-tricks-for-cups">
+<title>Outside &tdeprint;: Hints &amp; Tips Tricks with &CUPS; on the
+Commandline</title>
+
+<para>Here are a few examples of options that are presently only
+available if you use the commandline. </para>
+
+<sect2>
+<title>Allowing or denying printer access for certain users</title>
+
+<para>When installing (or modifying) a printer through the command line,
+you can either deny or allow the usage of that printer to certain
+users:</para>
+
+<screen><userinput><command>lpadmin</command> <option>-p</option><parameter>HeidelbergDigimaster9110</parameter> <option>-v</option> <parameter>lpd:/10.160.16.99/mqueue</parameter> <option>-u</option> <parameter>allow:kurt,sylvi,hansjoerg</parameter> <option>-E</option> <option>-P</option> <parameter>/home/kurt/PPDs/DVHV.ppd</parameter></userinput></screen>
+
+<para>will allow the usage of this (believe me: very nice and also very
+professional) printer to only the three mentioned users and at the same
+time deny it to all others. If another user wants to print on the
+DigiMaster via this &CUPS; server, he will receive an error message
+along the lines <errortype>client-error-not-possible</errortype>.</para>
+
+<screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>HeidelbergDigimaster9110</parameter> <option>-v</option> <parameter>lpd:/10.160.16.99/mqueue</parameter> <option>-u</option> <parameter>deny:tackat,boss,waba</parameter> <option>-E</option> <option>-P</option> <parameter>/home/kurt/PPDs/DVHV.ppd</parameter></userinput></screen>
+
+<para>will deny the usage of this same printer to the three mentioned
+users and at the same time allow it to all others. If
+<quote>denied</quote> user wants to print on the DigiMaster via this
+&CUPS; server, he will receive an error message along the lines
+<errortype>client-error-not-possible</errortype>.</para>
+
+<note>
+<para>Only one of the two options may be used at one time; at present
+there is no support to have a similar option in a per-group based
+way. This will be implemented in the future.</para>
+</note>
+
+</sect2>
+<sect2>
+<title>Imposing Quotas for certain printers</title>
+
+<para>Sometimes you want to impose quotas for certain printers.  With
+quotas you can set upper limits for the number of pages or the amount of
+data to be printed over a certain period to a certain printer.</para>
+
+<para>Quotas can be set with the <option>-o</option> option when
+installing a printer with the <command>lpadmin</command> command, or
+afterwards for an already existing printer. Following are some
+guidelines (which are missing at the time of writing in the, official
+&CUPS; documentation):</para>
+
+<itemizedlist>
+<listitem>
+<para>With &CUPS; you may have pagecount- and filesize-based quotas for
+individual printers.</para>
+</listitem>
+
+<listitem>
+<para>Quotas are calculated for each user individually (so a single set
+of limits applies to all users for the printer concerned).</para>
+</listitem>
+
+<listitem>
+<para>Quotas include banner pages (if those are used).</para>
+</listitem>
+
+<listitem>
+<para>This means: you can limit every user to 20 pages per day on an
+expensive printer, but you cannot limit every user except <systemitem
+class="username">Kurt</systemitem> or <systemitem
+class="username">root</systemitem>.</para>
+</listitem>
+
+<listitem>
+<para>There are <option>job-k-limit</option>,
+<option>job-page-limit</option>, and <option>job-quota-period</option>
+options to give when setting up a printer.</para>
+</listitem>
+
+<listitem>
+<para><option>job-quota-period</option> sets a time interval for quota
+computing (intervals are determined in seconds; so a day is
+60x60x24=86.400, a week is 60x60x24x7=604,800, and a month is
+60x60x24x30=2.592.000 seconds.)</para>
+</listitem>
+
+<listitem>
+<para>For quotas to be enforced, the time-period
+<emphasis>plus</emphasis> at least one job-limit must be set to
+non-zero.</para>
+</listitem>
+
+<listitem>
+<para>The default value of 0 for <option>job-k-limit</option> specifies
+that there is no limit.</para>
+</listitem>
+
+<listitem>
+<para>The default value of 0 for <option>job-page-limit</option>
+specifies that there is no limit.</para>
+</listitem>
+
+<listitem>
+<para>The default value of 0 for <option>job-quota-period</option>
+specifies that the limits apply to all jobs that have been printed by a
+user that are still known to the system.</para>
+</listitem>
+</itemizedlist>
+
+<sect3>
+<title>Working Examples:</title>
+
+<para>Working, as both, time-period <emphasis>plus</emphasis> one or
+both job-limits are defined</para>
+
+<screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_4850</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter> <option>-o</option> <parameter>job-k-limit=1024</parameter></userinput></screen>
+
+<para>This sets a limit of a file size of 1 MB (in total) for each user
+of existing printer <systemitem
+class="resource">danka_infotec_4850</systemitem> during one week.</para>
+
+<screen><userinput><command>lpadmin</command> <option>p</option> <parameter>danka_infotec_4105</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter> <option>-o</option> <parameter>job-page-limit=100</parameter></userinput></screen>
+
+<para>This sets a limit of 100 pages (in total) for each user of
+existing printer <systemitem
+class="resource">danka_infotec_4105</systemitem> during one week.</para>
+
+<screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_P450</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter> <option>-o</option> <parameter>job-k-limit=1024</parameter> <option>-o</option> <parameter>job-page-limit=100</parameter></userinput></screen>
+
+<para>This sets a combined limit of 1 MB (in total) and 100 pages (in
+total) for each user of existing printer <systemitem
+class="resource">danka_infotec_P450</systemitem> during one
+week. Whichever limit is reached first will take effect.</para>
+
+</sect3>
+
+<sect3>
+<title>Not working examples</title>
+
+<para><emphasis>NOT</emphasis> working, as only
+<emphasis>one</emphasis>, time-period <emphasis>or</emphasis> job-limit
+is defined)</para>
+
+<screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_P320</parameter> <option>-o</option> <parameter>job-quota-period=604800</parameter></userinput>
+
+<userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_FullColor</parameter> <option>-o</option> <parameter>job-page-limit=100</parameter></userinput>
+
+<userinput><command>lpadmin</command> <option>-p</option> <parameter>danka_infotec_HiSpeed</parameter> <option>-o</option> <parameter>job-k-limit=1024</parameter></userinput></screen>
+
+</sect3>
+
+<sect3>
+<title>Related Error Messages</title>
+
+<para>Once a user reaches his quota limit, he'll get a
+<errortype>client-error-not-possible</errortype> message, if he wants to
+print.</para>
+
+</sect3>
+
+</sect2>
+
+<sect2>
+<title>Installing a <quote>raw</quote> printer</title>
+
+<para>There are different ways to define a <quote>raw</quote>
+printer. One comfortable one is to use the <command>lpadmin</command>
+command.  Just don't define a &PPD; file to be used for that printer and
+it will be a raw one:</para>
+
+<screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>Raw_Danka_infotec</parameter> <option>-E</option> <option>-v</option> <parameter>lpd://10.160.16.137/PORT1</parameter></userinput></screen>
+
+<para>Raw printer queues are those which don't touch the print file to
+transform it to a different file format. You need this for example when
+printing from &Windows; clients via Samba through a &CUPS; server to a
+<acronym>PCL</acronym> printer: in this case the &Windows; side printer
+driver would generate the finished print file format for the target
+printer and filtering it through &CUPS; filters would only harm the
+purpose. Under certain circumstances (if you want to make sure that the
+file goes to the printer <quote>unfiltered</quote> by &CUPS;) the
+<quote><command>lpadmin</command> without a &PPD;</quote> comes in
+handy.</para>
+
+</sect2>
+
+</sect1>
+<sect1 id="troubleshooting-cups">
+<title>Troubleshooting &CUPS; in &tdeprint;</title>
+
+<para>This section of the &tdeprint; Handbook will live from the
+readers' feedback. Here is just a small beginning.</para>
+
+<sect2>
+<title>Error Messages</title>
+
+<qandaset>
+<qandaentry>
+<question>
+<para>What does the error
+<errortype>client-error-bad-request</errortype> mean?</para>
+</question>
+<answer>
+<para>The user sent a file to the &CUPS; which the server could not
+process. You get this also upon sending an <quote>empty</quote>
+file.</para>
+</answer>
+</qandaentry>
+
+<qandaentry>
+<question>
+<para>And <errortype>client-error-not-possible</errortype>?</para>
+</question>
+<answer>
+<para>User is either not allowed to print to a certain printer or has
+achieved his quota (based on file size and/or page number)</para>
+</answer>
+</qandaentry>
+
+<qandaentry>
+<question>
+<para>How about <errortype>client-error-not-found</errortype>?</para>
+</question>
+<answer>
+<para>The user tried to access a nonexistent resource on the &CUPS;
+server, such as trying to print a nonexistent file, or one that you are
+denied permission to read.</para>
+</answer>
+
+</qandaentry>
+</qandaset>
+
+</sect2>
+
+<sect2>
+<title>Questions and Answers</title>
+
+<qandaset>
+<qandaentry>
+<question>
+<para>Why can't I re-start my jobs?</para>
+</question>
+<answer>
+<para>To be able to re-start your <quote>completed</quote> jobs from the
+web interface, you need a setting in the
+<filename>/etc/cups/cupsd.conf</filename> file: set
+<userinput>PreserveJobFiles True</userinput>.</para>
+</answer>
+</qandaentry>
+
+<qandaentry>
+<question>
+<para>How do I get rid of the long list of completed jobs in the web
+interface?</para>
+</question>
+<answer>
+<para>TODO</para>
+</answer>
+</qandaentry>
+
+<qandaentry>
+<question>
+<para>How does page accounting work?</para>
+</question>
+<answer>
+<para>&CUPS; does the <quote>print accounting</quote> by passing nearly
+every job through the <quote>pstops</quote> filter.  This one does,
+amongst other things, the page counting. Output of this filter there may
+be piped into other filters (like pstoraster --> rastertopcl) or sent to
+the printer directly (if it is a &PostScript; printer).</para>
+
+<para>In any case, this works for network, parallel, serial or
+<acronym>USB</acronym> printers the same. For pstops to work, it needs
+<acronym>DSC</acronym>, Document Structuring Convention compliant
+&PostScript; (or near-equivalent) as input. So it calculates the pages
+during filtering on the print server and writes info about every single
+page (what time, which user, which job-ID and -name, which printer, how
+many copies of which pages of the document, how many kilo-bytes?) into
+<filename>/var/log/cups/page_log</filename>.</para>
+
+<para>By the way: on my personal <quote>wishlist</quote> is a hack of
+<quote>webalizer</quote> to read and analyze the page_log and give a
+similar output.  Anyone?</para>
+
+<para>However, it is <emphasis>not</emphasis> giving correct results in
+the following cases:</para>
+
+<itemizedlist>
+<listitem>
+<para>The printer jams and maybe therefor throw away the job (real live
+experience; or maybe throwing away the job because of problems with the
+data format)</para>
+</listitem>
+<listitem>
+<para>Jobs printed as <quote>raw</quote> are always counted as size of 1
+page (and maybe multiple copies).</para>
+</listitem>
+</itemizedlist>
+
+<para>Therefore the page accounting of &CUPS; is <quote>only</quote>
+an approximation (in many cases an excellent or at least good one, in
+others a quite poor one). The only reliable print count is the one
+done by the internal printer counter. (Because this is the one you pay
+for, if you are on a <quote>click price</quote> or similar.)  Some, by
+far not most, printers can be queried remotely for that information
+via <acronym>SNMP</acronym> (Simple Network Management Protocol). That
+means, in a bigger network with many different printers there
+<emphasis>is</emphasis> just no completely reliable and accurate page
+accounting tool!</para>
+</answer>
+</qandaentry>
+
+<qandaentry>
+<question>
+<para>Why doesn't page-accounting work with &Windows; clients?</para>
+</question>
+<answer>
+<para>From &Windows; clients jobs nearly always need to be sent as
+<quote>raw</quote>. Why? If &CUPS; works as a print server for &Windows;
+clients using the original native &Windows; driver for the target print
+device, this guarantees the correct formatting of the job on the clients
+already; therefor the server should not touch it and print
+<quote>raw</quote>; therefor no filtering is started (and this is not
+even possible as the input from the clients is not &PostScript; as
+pstops expects; hence no page-count other than the default
+<quote>1</quote>.</para>
+</answer>
+</qandaentry>
+
+<qandaentry>
+<question>
+<para>How do I get a list of available options for a given printer or a
+&PPD; file?</para>
+</question>
+<answer>
+<para>See the man page for the <command>lpoptions</command> command. You
+may investigate a &CUPS;-enabled box about any option of its available
+printers. There is no need to have the printer installed locally. As
+long as the printer is available locally (through the &CUPS;
+<quote>printer browsing</quote> feature), it will also work
+remote.</para>
+
+<para>To query for a printers' option typing
+<userinput><command>lpoptions</command> <option>-p</option>
+<parameter>HitachiDDP70MicroPress</parameter>
+<option>-l</option></userinput> will give a long listing of all
+available options as read from the &PPD; file for the given
+Hitachi-Printer (in my case installed on remote server
+transmeta). Remote server <systemitem
+class="systemname">Transmeta</systemitem> and its &CUPS; daemon as well
+as the localhost's &CUPS; daemon need to be up and running for this to
+succeed.</para>
+</answer>
+</qandaentry>
+
+<qandaentry>
+<question>
+<para>How do I read the listing retrieved by the
+<command>lpoptions</command> command?</para>
+</question>
+
+<answer>
+<para>You know that for &PostScript; printer manufacturers it is
+<quote>legal</quote> to define their own internal names and procedures
+even for standard &PostScript; options. As long as the driver is able to
+retrieve the option from the &PPD; and show it to the user in a way that
+he understands it everything is OK. But what do <emphasis>you</emphasis>
+do, if you want to use some obscure printer options on the command line?
+How do you find out its exact syntax?</para>
+
+<para>Let's take an example. Looking at Hitachi's DDP70 printer and how
+it implements duplex printing is revealing somehow. How do you tell how
+to print double sided? duplex or Duplex? Or another name altogether?.</para>
+
+<screen><userinput><command>lpoptions</command> <option>-h</option> <parameter>transmeta</parameter> <option>-p</option> <parameter>Hitachi_DDP70_ClusterPrintingSystem</parameter> <option>-l</option> | <command>grep</command> <parameter>uplex</parameter></userinput></screen>
+
+<para>This leads to the output</para>
+
+<screen><computeroutput>TR-Duplex/Duplex: False *True</computeroutput></screen>
+
+<para>This is to be interpreted like follows:</para>
+
+<itemizedlist>
+<listitem>
+<para>The name of the investigated option is
+<option>TR-Duplex</option>;</para>
+</listitem>
+<listitem>
+<para>Behind the slash you see the translation of the option, as it
+should be shown in a &GUI; or Web interface
+(<quote>Duplex</quote>);</para>
+</listitem>
+<listitem>
+<para>The option may take one of the two values
+<parameter>False</parameter> or <parameter>True</parameter>;</para>
+</listitem>
+<listitem>
+<para>The present setting is <parameter>True</parameter> to be
+recognized by the marking with a star <literal>*</literal>.</para>
+</listitem>
+</itemizedlist>
+
+<para>To override the present default setting (duplex) and print a job
+in simplex, you need to use the following command: </para>
+
+<screen><userinput><command>lpr</command> <option>-P</option> <parameter>Hitachi_DDP70_ClusterPrintingSystem</parameter> <option>-o</option> <parameter>TR-Duplex=False</parameter> <parameter>/path/to/your/printjob</parameter></userinput></screen>
+</answer>
+</qandaentry>
+
+<qandaentry>
+<question>
+<para>How do I get a nicely formatted listing of available options for a
+given printer or &PPD;?</para>
+</question>
+<answer>
+<para>Use the <command>lphelp</command> command which may be installed
+on your system locally. There is not yet a man page for
+<command>lphelp</command>.</para>
+
+<screen><userinput><command>lphelp</command> <parameter>infotecP450</parameter></userinput></screen>
+
+<para>This lists the available options for the named printer. It is
+nicely formatted and does explain every available option and how to use
+it. You can query different printers' options at once:</para>
+
+<screen><userinput><command>lphelp</command> <parameter>infotec7410color</parameter> <parameter>DANKA_fullcolor_D2000</parameter> <parameter>HP_ColorLaserJet8550</parameter></userinput></screen>
+
+<para>It also works for &PPD; files. Just specify the path to the
+&PPD;:</para>
+
+<screen><userinput><command>lphelp</command> <filename>/home/kurt/PPDs/HP-ColorLaserJet8550.ppd</filename></userinput></screen>
+</answer>
+</qandaentry>
+</qandaset>
+
+</sect2>
+<sect2>
+<title>Solving Problems</title>
+
+<para>No system is perfect. Here are some commonly seen traps people
+have fallen into.</para>
+
+<qandaset>
+<qandaentry>
+<question>
+<para>My printer named <quote>3-lp-duplex</quote> shows erratic
+behavior.  What's wrong?</para>
+</question>
+<answer>
+<para>The printer names used in &CUPS; shall start with a letter and may
+contain up to 128 letters, numbers or underscores. Using dashes may lead
+to problems. Speaking about naming: printer names in &CUPS; are not case
+sensitive. So a printer named <systemitem
+class="resource">Best_of_Danka</systemitem> will be the same as
+<systemitem class="resource">best_of_danka</systemitem> or <systemitem
+class="resource">BEST_OF_DANKA</systemitem>. (This is a requirement of
+&IPP;, which &CUPS; is fully compliant with).</para>
+</answer>
+</qandaentry>
+
+<qandaentry>
+<question>
+<para>Why do I get <errortype>Unable to connect to SAMBA host:
+Success</errortype> with my printer shares from &Windows; accessed via
+Samba?</para>
+</question>
+<answer>
+<para>Are the rights on the remote &Windows; box set correctly for you?
+Are you actually allowed to print on the &Windows; shared
+printer?</para>
+</answer>
+</qandaentry>
+
+<qandaentry>
+<question>
+<para>My files for printer <systemitem class="resource">lp</systemitem>
+sometimes mysteriously disappear and two days later I am told they got
+printed on a printer three floors below my office. What is going on?</para>
+</question>
+<answer>
+<para>Believe me, it is very unlikely that your printer is the only one
+with the name <systemitem class="resource">lp</systemitem>.  Maybe
+&CUPS; is playing a trick on you. As you might have the setting
+<quote>ImplicitClasses On</quote> activated, &CUPS; tries to stuff all
+printers it sees on the network into a <quote>Class</quote> name lp. All
+jobs destined to lp are sent to this class and the first available
+member prints it. So if you had this nice fellow (who listened closely
+when you raved about &CUPS; and &tdeprint;) install &CUPS; and poke
+around the system...get the idea?</para>
+
+<para>Take my advice: choose a unique name for any network printer!
+(Mind you, the one on your parallel port also turns out to be a network
+printer for the rest of the world if you don't take care of your
+settings).</para>
+</answer>
+</qandaentry>
+</qandaset>
+</sect2>
+</sect1>
+</chapter>
diff --git a/doc/tdeprint/cupsserverconfig_browse_relay_add_button.png b/doc/tdeprint/cupsserverconfig_browse_relay_add_button.png
new file mode 100644
index 000000000..391cf06ee
Binary files /dev/null and b/doc/tdeprint/cupsserverconfig_browse_relay_add_button.png differ
diff --git a/doc/tdeprint/cupsserverconfig_browsingmasks_add_button.png b/doc/tdeprint/cupsserverconfig_browsingmasks_add_button.png
new file mode 100644
index 000000000..f5767faad
Binary files /dev/null and b/doc/tdeprint/cupsserverconfig_browsingmasks_add_button.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration10_browsinggeneral.png b/doc/tdeprint/cupsserverconfiguration10_browsinggeneral.png
new file mode 100644
index 000000000..3775f4d2a
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration10_browsinggeneral.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration11_browsingconnections.png b/doc/tdeprint/cupsserverconfiguration11_browsingconnections.png
new file mode 100644
index 000000000..d3ca6971f
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration11_browsingconnections.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration11_browsingmasks.png b/doc/tdeprint/cupsserverconfiguration11_browsingmasks.png
new file mode 100644
index 000000000..a662dd117
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration11_browsingmasks.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration12_browsingtimeouts.png b/doc/tdeprint/cupsserverconfiguration12_browsingtimeouts.png
new file mode 100644
index 000000000..d9e9528d6
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration12_browsingtimeouts.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration14_browsingrelay.png b/doc/tdeprint/cupsserverconfiguration14_browsingrelay.png
new file mode 100644
index 000000000..0030b4d7c
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration14_browsingrelay.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration15a_resourceallprinters_defineaccess.png b/doc/tdeprint/cupsserverconfiguration15a_resourceallprinters_defineaccess.png
new file mode 100644
index 000000000..fab7bc65b
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration15a_resourceallprinters_defineaccess.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration15b_resourceallprinters_defineaccess.png b/doc/tdeprint/cupsserverconfiguration15b_resourceallprinters_defineaccess.png
new file mode 100644
index 000000000..2cc4bf8ae
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration15b_resourceallprinters_defineaccess.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration15c_resourceallprinters_defineaccess.png b/doc/tdeprint/cupsserverconfiguration15c_resourceallprinters_defineaccess.png
new file mode 100644
index 000000000..cfd09e543
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration15c_resourceallprinters_defineaccess.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration1_welcome.png b/doc/tdeprint/cupsserverconfiguration1_welcome.png
new file mode 100644
index 000000000..50bd9ba3a
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration1_welcome.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration2_general.png b/doc/tdeprint/cupsserverconfiguration2_general.png
new file mode 100644
index 000000000..c8e8b01c0
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration2_general.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration3_logging.png b/doc/tdeprint/cupsserverconfiguration3_logging.png
new file mode 100644
index 000000000..300c31943
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration3_logging.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration4_directories.png b/doc/tdeprint/cupsserverconfiguration4_directories.png
new file mode 100644
index 000000000..e55ab35fc
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration4_directories.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration5_HTTP.png b/doc/tdeprint/cupsserverconfiguration5_HTTP.png
new file mode 100644
index 000000000..3e46eb17b
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration5_HTTP.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration6_encryption.png b/doc/tdeprint/cupsserverconfiguration6_encryption.png
new file mode 100644
index 000000000..aca75adf0
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration6_encryption.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration7_miscellanious.png b/doc/tdeprint/cupsserverconfiguration7_miscellanious.png
new file mode 100644
index 000000000..6a30d103e
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration7_miscellanious.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration8_networkgeneral.png b/doc/tdeprint/cupsserverconfiguration8_networkgeneral.png
new file mode 100644
index 000000000..a0a40da20
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration8_networkgeneral.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration9_networkclients.png b/doc/tdeprint/cupsserverconfiguration9_networkclients.png
new file mode 100644
index 000000000..89b30dfe9
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration9_networkclients.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration_resourceadminaccessmasks.png b/doc/tdeprint/cupsserverconfiguration_resourceadminaccessmasks.png
new file mode 100644
index 000000000..147830184
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration_resourceadminaccessmasks.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration_resourceadminaddprinters.png b/doc/tdeprint/cupsserverconfiguration_resourceadminaddprinters.png
new file mode 100644
index 000000000..295a0970a
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration_resourceadminaddprinters.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration_resourceadminaddprinters_defineaccess.png b/doc/tdeprint/cupsserverconfiguration_resourceadminaddprinters_defineaccess.png
new file mode 100644
index 000000000..3b3b4eb04
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration_resourceadminaddprinters_defineaccess.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration_resourceadminauthorization.png b/doc/tdeprint/cupsserverconfiguration_resourceadminauthorization.png
new file mode 100644
index 000000000..1b388a6cb
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration_resourceadminauthorization.png differ
diff --git a/doc/tdeprint/cupsserverconfiguration_securityoverview.png b/doc/tdeprint/cupsserverconfiguration_securityoverview.png
new file mode 100644
index 000000000..bed1d3df6
Binary files /dev/null and b/doc/tdeprint/cupsserverconfiguration_securityoverview.png differ
diff --git a/doc/tdeprint/extensions.docbook b/doc/tdeprint/extensions.docbook
new file mode 100644
index 000000000..c14691d51
--- /dev/null
+++ b/doc/tdeprint/extensions.docbook
@@ -0,0 +1,57 @@
+<chapter id="extensions-to-all-printsubsystems">
+<title>&tdeprint; Extensions To All Print Subsystems</title>
+
+<sect1>
+<title><quote>Virtual</quote> Printers</title>
+
+<sect2>
+<title>The <quote>Fax</quote> Printer</title>
+
+<para>To be written</para>
+
+</sect2>
+
+<sect2>
+<title>The <quote>File</quote> Printer</title>
+
+<para>To be written</para>
+
+</sect2>
+
+<sect2>
+<title>The <quote><acronym>PDF</acronym></quote> Printer</title>
+
+<para>To be written</para>
+
+</sect2>
+
+</sect1>
+
+<sect1 id="external-filters">
+<title><quote>External</quote> Filters</title>
+
+<sect2>
+<title>The <command>enscript</command> Filter for Text Files</title>
+
+<para>To be written</para>
+
+</sect2>
+
+<sect2>
+<title>The <quote>n-up</quote> Filter for Any File</title>
+
+<para>To be written</para>
+
+</sect2>
+
+<sect2>
+<title>Three different <quote>Make Pamphlet</quote> Filters for
+&PostScript; Files</title>
+
+<para>To be written</para>
+
+</sect2>
+
+</sect1>
+
+</chapter>
diff --git a/doc/tdeprint/external-command.docbook b/doc/tdeprint/external-command.docbook
new file mode 100644
index 000000000..1a1135d7c
--- /dev/null
+++ b/doc/tdeprint/external-command.docbook
@@ -0,0 +1,25 @@
+<chapter id="external-printcommand-module">
+<title>Module For External Print Command (&Netscape;-like) </title>
+
+<para>This module allows the print command to be specified completely
+(&Netscape;-like). An edit line is added in the print dialog for that
+purpose. Can be used in many cases, for example with a self-made print
+program. </para>
+
+<sect1>
+<title>Overview of provided features</title>
+
+<itemizedlist>
+<listitem>
+<para>Printer management: not supported</para>
+</listitem>
+<listitem>
+<para>Job management: not supported.</para>
+</listitem>
+<listitem>
+<para>Print options: basic control, depending on your knowledge of the
+print command</para>
+</listitem>
+</itemizedlist>
+</sect1>
+</chapter>
diff --git a/doc/tdeprint/final-word.docbook b/doc/tdeprint/final-word.docbook
new file mode 100644
index 000000000..175afb2f1
--- /dev/null
+++ b/doc/tdeprint/final-word.docbook
@@ -0,0 +1,117 @@
+<chapter id="final-word-from-author">
+<title>Final word from the Author</title>
+
+<sect1 id="who-am-i">
+<title>Who am I, what is my business? </title>
+
+<para>
+My employer is Danka Deutschland GmbH, a leading and
+manufacturer-independent provider of professional and hi-speed digital
+printing systems, black-and-white as well as color. Danka provides
+hardware, software, service, maintenance, consumables and customized
+solutions for the products in its portfolio.  I work there as a
+System Engineer.  Amongst the brands Danka offers are Heidelberg
+(formerly Kodak), Canon, &Hewlett-Packard;, Hitachi, Infotec and
+EfI.</para>
+
+<para>
+My acquaintance with &Linux; and the Free Software community is not
+too old. When I started to play around with &Linux; at the beginning
+of 1999, my deepest disappointment was the poor support for
+printing. True, I made all our machines spit out simplex prints -- but
+what about duplex? What about punching the output? How to make sorting
+work? Or stapling, cover sheets and all the other beautiful finishing
+options our engines offer to customers? No way -- at least for me as a
+non-geek!</para>
+
+<para>
+I began a search on the Internet for a solution. Fortunately not
+much later, in May 1999, Mike Sweet, principal developer of &CUPS;,
+announced the first Beta release of this superb piece of printing
+software.  After trying it briefly, I knew this was it!</para>
+
+<para>
+Next thing I attempted: to make &Linux; distributions interested in
+this new stuff. Believe me -- it was more than tenacious! They seemed
+to think they already had the best thing they could get in
+printing. One reason probably was that they (and many &Linux;
+developers) never had to think about how to best support a printer
+duplexer -- because one had never come near their own
+desks...</para>
+
+<para>
+Finally, my attempts to make some &Linux; print publications
+interested in &CUPS; <quote>backfired</quote> on me - one editor
+squeezed me into writing a series on the subject myself.  And this is
+how some people started to give me the nickname <quote>CUPS
+Evangelist</quote>. I will not get rid of this nick anytime soon, now
+that even the &kde; people wedged me into their timeframe of
+releases. Oh, boy...</para>
+
+<para>Anyway, &CUPS; is now making its way around the world and it
+might well become a triumphal one: I am a little bit proud to have
+supported and contributed to this from near the beginning.</para>
+
+<para>It should encourage you: even if some more experienced &Linux;
+users than you are skeptical about it, and even if your programming
+skills are next to zero (like mine) - there are a lot of tasks and
+jobs and ideas, and talent that you can contribute to the Free Software
+community. Not least within the &kde; project... ;-)
+</para>
+
+</sect1>
+
+<sect1 id="credits">
+<title>Credits</title>
+
+<para>I'd like to thank...</para>
+<itemizedlist>
+<listitem>
+<para>Mike Sweet for developing &CUPS; in the first place</para>
+</listitem>
+<listitem>
+<para>Jean-Eric Cuendet for starting <application>kups</application>
+and <application>qtcups</application>, the predecessors of
+&tdeprint;</para>
+</listitem>
+<listitem>
+<para>Michael Goffioul for doing all the hard work recently</para>
+</listitem>
+<listitem>
+<para>Martin Konold for thinking twice</para>
+</listitem>
+<listitem>
+<para>Sven Guckes for teaching me a few things about the art of <quote>survival
+on the terminal</quote> (just in case &kde; is not there ;-) )</para>
+</listitem>
+<listitem>
+<para>...too numerous others to mention who also let me snatch bits
+and bytes of knowledge
+off them</para>
+</listitem>
+<listitem>
+<para> and last, but not least: Tom Schwaller for encouraging me
+to get into <quote>documentation
+writing</quote></para>
+</listitem>
+</itemizedlist>
+
+</sect1>
+
+<sect1 id="caveats">
+<title>Caveats</title>
+
+<para>&tdeprint; has been developed on a system using &CUPS; 1.1.6.
+&tdeprint; has been tested on other versions of &CUPS; and so
+far no incompatibilities are known. By the time of writing
+this Handbook, &CUPS; 1.1.9 is out with a few new features
+not yet supported by &tdeprint;. Of course you are able to
+access these features, but you will need to bypass &tdeprint;
+and use the &CUPS; command-line tools or edit configuration
+files manually. &tdeprint;'s development will go on and this
+Handbook strives to always be the best available user documentation
+resource for it.</para>
+
+</sect1>
+
+</chapter>
diff --git a/doc/tdeprint/getting-started.docbook b/doc/tdeprint/getting-started.docbook
new file mode 100644
index 000000000..9ef1500b7
--- /dev/null
+++ b/doc/tdeprint/getting-started.docbook
@@ -0,0 +1,143 @@
+<chapter id="getting-started">
+<title>Getting Started</title>
+
+<para>This chapter of the &tdeprint; Handbook will walk you through most
+of the configuration or selection options of &tdeprint;.  It will mainly
+deal with &CUPS; in this version, as the author is most familiar with
+it, and also because &tdeprint; started off with supporting &CUPS;
+best.  Later versions of the &tdeprint; software and editions of this
+handbook will support and explore other printing
+systems more closely.</para>
+
+<sect1 id="selecting-your-print-subsystem">
+<title>Selecting Your Print Subsystem</title>
+
+<para>You need to define your print subsystem, before you are able to
+install any printer with the &tdeprint; framework.  There are two areas
+where you can define this: either in &kcontrol; (The <guilabel>Printing
+Manager</guilabel> section), or directly and <quote>on the fly</quote>
+from the print dialog.</para>
+
+<para>Navigate to <menuchoice><guimenu>K Menu</guimenu>
+<guisubmenu>Preferences</guisubmenu> <guisubmenu>System</guisubmenu>
+<guimenuitem>Printing Manager</guimenuitem></menuchoice>.  At the bottom
+you can see a button that lets you select which printing subsystem you
+want to use.  In &kde; 2.2 you can choose from the following
+alternatives:</para>
+
+<itemizedlist>
+<listitem>
+<para>&CUPS; (Common &UNIX; Printing System)</para>
+</listitem>
+<listitem>
+<para>Print through an external program (generic)</para>
+</listitem>
+<listitem>
+<para><acronym>LPR</acronym> (Standard <acronym>BSD</acronym> Print
+System)</para>
+</listitem>
+<listitem>
+<para>Generic &UNIX; <acronym>LPD</acronym> print system (the
+default)</para>
+</listitem>
+<listitem>
+<para><acronym>RLPR</acronym> environment (print to remote
+<acronym>LPD</acronym> servers from the command line)</para>
+</listitem>
+</itemizedlist>
+
+<para>Of course, the chosen system must be installed, and up and running on
+your box prior to your selection, or before it takes effect.  <!-- The -->
+<!-- authors personal recommendation is &CUPS; -->
+</para>
+
+<para>On it's first startup, &tdeprint; will try an autodetection.  This
+only works for:</para>
+
+<itemizedlist>
+<listitem>
+<para>&CUPS;, as it is checking first for a running &CUPS; daemon</para>
+</listitem>
+<listitem>
+<para><acronym>LPD</acronym>, as it is checking for a running
+<acronym>LPD</acronym> daemon, plus a <filename>printcap</filename>
+file.</para>
+</listitem>
+</itemizedlist>
+
+<!-- <para>
+Go to System->XY->ABC. Now you can choose from the following
+alternatives: 
+</para>-->
+
+<para>The system you choose must be installed on your system prior to
+your selection.  The author's personal recommendation is
+&CUPS;.</para>
+
+<para>Once autodetected, chosen, or changed, the active print
+subsystem will take effect for all &kde; applications.  Different
+users may have different print subsystems in use, if those do exist on
+the computer and are compliant with each other.  Their settings are
+stored in the <filename>tdeprintrc</filename>.  This file is unique to
+every user, and is normally installed in
+<filename>$<envar>HOME</envar>/.kde/share/config/tdeprintrc</filename>.</para>
+
+<warning>
+<para>This file is not intended to be directly editable, and all
+available options can be set from the &tdeprint; &GUI;.</para>
+</warning>
+
+<para>You may even select a different printer subsystem, on the fly, from
+the &kprinter; dialog box.</para>
+
+</sect1>
+
+<sect1 id="working-with-printing-manger">
+<title>Working with the Printing Manager</title>
+
+<para>Once you have chosen your preferred and installed print subsystem,
+you are ready to investigate, configure administer and work with this
+system through the &tdeprint; framework.</para>
+
+<para>Navigate to <menuchoice><guimenu>K Menu</guimenu>
+<guisubmenu>Preferences</guisubmenu> <guisubmenu>System</guisubmenu>
+<guimenuitem>Printing Manager</guimenuitem></menuchoice>.  In the right
+part of the window you will see at least 4 printers predefined.  These
+are the virtual or special purpose printers, explained in section <!-- <xref 
+linkend="FIXME"/> -->.  You will probably see a toolbar with 13 icons at the
+top of the window, and at least 4 tabs in the lower half of the window,
+labeled <guilabel>Information</guilabel>, <guilabel>Jobs</guilabel>,
+<guilabel>Properties</guilabel> and
+<guilabel>Instances</guilabel>.</para>
+
+<!-- Not needed: the default view is as described, this can be mentioned -->
+<!-- elsewhere <para>If you start the <guilabel>Printing -->
+<!-- Manager</guilabel> module for the first time, you may be missing -->
+<!-- Icons or tabs. <mousebutton>Right</mousebutton>-clicking the mouse -->
+<!-- on the white background of the right part of the window opens a -->
+<!-- Menu to select your viewing preferences. To get the same view as in -->
+<!-- most screenshots, select: <guimenuitem>View Toolbar</guimenuitem> -->
+<!-- and <guimenuitem>View Printer Information</guimenuitem> and -->
+<!-- <guimenuitem>View Icons</guimenuitem> and <guimenuitem>Orientation -->
+<!-- Vertical</guimenuitem>. Moving the mouse over one Button and -->
+<!-- waiting a second gives you a tooltip hint about its functions. -->
+
+<!-- 
+
+3.3 Selection: &CUPS; or other?
+
+If your selection of the print system is &CUPS;, you will have more 
+choices at your fingertips than with any other printing 
+system. &CUPS; is new to most Linux users (even the senior
+hackers amongst us), and it is quite easy to use. But it
+is at the same time very different from other printing systems.
+Therfor the &CUPS; part in the &tdeprint; Handbook is naturally
+the most detailed.
+
+Future editions of the &tdeprint; handbook will describe in
+more detail the other systems.
+-->       
+
+</sect1>
+
+</chapter>
diff --git a/doc/tdeprint/highlights.docbook b/doc/tdeprint/highlights.docbook
new file mode 100644
index 000000000..72982c10c
--- /dev/null
+++ b/doc/tdeprint/highlights.docbook
@@ -0,0 +1,518 @@
+<chapter id="tdeprint-highlights">
+<title>&tdeprint;'s Highlights</title>
+
+<para>The new &tdeprint; system includes more than one highlight.
+Having worked in an environment in the past that is not exactly
+sophisticated, as far as printing is concerned, take a look at some of
+the benefits that come with &tdeprint;</para>
+
+<sect1 id="add-printer-wizard">
+<title>The <quote>Add Printer</quote> Wizard</title>
+
+<para>&tdeprint; has an <quote>Add Printer Wizard</quote>.  The Add
+Printer Wizard helps you with adding and configuring a new printer.  Of
+course, you may do this manually as well.</para>
+
+<para>&tdeprint; helps you <quote>discover</quote> printers. It is able
+to scan the environment for available devices and queues. This works for
+network connections using <acronym>TCP</acronym> (AppSocket,
+<acronym>aka</acronym> &HP; <trademark
+class="registered">JetDirect</trademark>, or <acronym>IPP</acronym>) or
+<acronym>SMB</acronym>/Samba (<quote>shared</quote> &Windows;) printers
+and partially for directly attached printers over parallel, serial, or
+<acronym>USB</acronym> connections.</para>
+
+<screenshot>
+<screeninfo>A screenshot of the new <quote>Add Printer
+Wizard</quote></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cupsaddprinterwizard1.png" format="PNG"/>
+</imageobject>
+<textobject>
+<phrase>Here's a screenshot of the <quote>Add Printer Wizard</quote>
+(this one is not very exciting yet; but...)</phrase>
+</textobject>
+</mediaobject>
+</screenshot>
+
+<para>The wizard makes the installation and handling of the drivers
+<quote>a snap</quote>. Selecting, configuring and testing should be easy
+as never before on any &Linux;-like system.</para>
+
+<!-- LW: needs some info where to find it, or a pointer to where in this -->
+<!-- doc that is covered -->
+
+</sect1>
+
+<sect1 id="print-job-control">
+<title>Full Print Job Control</title>
+
+<para>The Print Job Viewer is automatically started by &kprinter;.  It
+may be docked into the &kde; panel (in the system tray).  The Print Job
+Viewer allows full job management, if supported by the print
+subsystem.</para>
+
+<para>You can:</para>
+
+<itemizedlist>
+<listitem>
+<para>Hold and release jobs,</para>
+</listitem>
+<listitem>
+<para>Move pending jobs to another printer,</para>
+</listitem>
+<listitem>
+<para>Cancel pending or processing jobs.</para>
+</listitem>
+</itemizedlist>
+
+<para>A screenshot of the &tdeprint; PrintJob Viewer shows the information
+you get: Job-ID, target printer, job name, job owner, job status and job
+size. In the next &tdeprint; release you will also see information about the
+number of pages (as &CUPS; calculates it; see chapter on page accounting
+for more information about its merits and limitations).</para>
+
+<screenshot>
+<screeninfo>A screenshot of the &tdeprint; PrintJob Viewer</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tdeprint-jobviewer.png" format="PNG"/>
+</imageobject>
+<textobject>
+<phrase>Here's a screenshot of the &tdeprint; PrintJob Viewer.</phrase>
+</textobject>
+<caption><para>A screenshot of the &tdeprint; PrintJob
+Viewer.</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>An alternative way to looking at the same information (and having the
+same amount of control is through the <inlinemediaobject><imageobject>
+<imagedata fileref="kcontrol-icon.png" format="PNG"/></imageobject>
+</inlinemediaobject> &kcontrolcenter; selecting
+<menuchoice><guilabel>System</guilabel><guilabel>Printing
+Manager</guilabel></menuchoice>. If you don't see the
+<guilabel>Printer Information</guilabel>,
+<mousebutton>right</mousebutton> click on the window
+background and select <guilabel>View Printer
+Information</guilabel>. Then go to the <guilabel>Jobs</guilabel> tab
+to see this:</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="kcontrolcenter-printmanager-jobcontrol-2.png" format="PNG"/>
+</imageobject>
+<textobject>
+<phrase>Here's a screenshot of the &tdeprint; PrintJob Viewer.</phrase>
+</textobject>
+</mediaobject>
+</screenshot>
+
+</sect1>
+
+<sect1 id="modules-for-different-subsystems">
+<title>Modules for different print subsystems</title>
+
+<para>&tdeprint; uses different modules to realize the interface to the
+possible print subsystems.  Not all the modules are yet developed fully,
+but you will have basic printing functionality with:</para>
+
+<itemizedlist>
+<listitem>
+<para><acronym>LPD</acronym> (<acronym>BSD</acronym> style)</para>
+</listitem>
+<listitem>
+<para><acronym>LPRng</acronym> (&RedHat;, if you just use it's
+<acronym>BSD</acronym> style subset),</para>
+</listitem>
+<listitem>
+<para><acronym>RLPR</acronym> (a command-line <acronym>LPR</acronym>
+utility, which doesn't need a <filename>printcap</filename> file.</para>
+</listitem>
+<listitem>
+<para><quote>external</quote> print commands (&Netscape; like).</para>
+</listitem>
+</itemizedlist>
+
+<para>Most importantly, full support for &CUPS; is already there.
+Modules for other print subsystems, such as <acronym>PLP</acronym>,
+<acronym>PPR</acronym> and <acronym>PDQ</acronym> may be available
+later.</para>
+
+<para>&tdeprint; makes &kde; much more flexible.  It gives freedom of
+choice to &kde; 2.2 users.  To use different available print subsystems,
+these must, of course, be installed independently from &kde;.  In
+former versions, users were stuck with the old <acronym>LPD</acronym>
+style print subsystems.  Now they can even use &CUPS;. In the future,
+there will be easy integration of new subsystems, as they
+appear on the scene.</para>
+
+</sect1>
+
+<sect1 id="tdeprint-goodies">
+<title>More &tdeprint; <quote>Goodies</quote></title>
+<subtitle>Benefitting all Print SubSystems.</subtitle>
+
+<para>Some specific features of &tdeprint; depend on the chosen print
+subsystem.  This dependency might exist because those features are only
+implemented there; remember, &tdeprint; is an intermediate layer between
+&kde; applications, and the print subsystem, but it's no replacement for
+any print subsystem by itself.  Such dependency may exist for another
+reason: that &tdeprint; has not yet implemented an interface to all the
+features of all the subsystems.</para>
+
+<para>Other features include benefits from &tdeprint; that are
+independent of the chosen print subsystem, and are available with all of
+them.  At present there are <quote>special</quote> or
+<quote>virtual</quote> printers, and some generic
+<quote>pre-filters</quote>.</para>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Print Preview</guilabel></term>
+<listitem>
+<para>From the Print Dialog, you can select to look at a preview.  For
+this, the print file is passed through filters which make it suitable for
+displaying on screen using &kghostview;.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Special Printers</guilabel></term>
+<listitem>
+<para>Amongst these additional &tdeprint; features are a few
+<quote>special</quote> or <quote>virtual</quote> printers:</para>
+
+<para>These special printers may:</para>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Print to PDF</guilabel></term>
+<listitem>
+<para>Convert your document into a <acronym>PDF</acronym> file with the
+help of an external program.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Print to email</guilabel></term>
+<listitem>
+<para>Send your document as an email attached <acronym>PDF</acronym>
+file.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Print to PS file</guilabel></term>
+<listitem>
+<para>Save your document as a &PostScript; file.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Print to Fax</guilabel></term>
+<listitem>
+<para>Send it through an available backend, such as
+<application>Hylafax</application> as a fax.</para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+
+<para>These <quote>special</quote> printers appear in the user print
+dialog just like <quote>normal</quote> printers.  They are entirely
+configurable on a per-user basis.</para>
+
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Generic Pre-Filtering</guilabel></term>
+<listitem>
+<para>&tdeprint; provides you with a framework to define and configure
+your own <quote>pre-filters</quote>.  These pre-filters may take effect
+<emphasis>before</emphasis> they are passed to your print subsystem for
+further processing, but <emphasis>after</emphasis> the (&PostScript;,
+plain text or other) print files have been generated by your
+application.</para>
+
+<para>There are a few useful filters already predefined. These
+are:</para>
+
+<itemizedlist>
+<listitem>
+<para>The <quote>multiple pages per sheet</quote> filter,</para>
+</listitem>
+
+<listitem>
+<para>the <quote>enscript</quote> text filter,</para>
+</listitem>
+
+<listitem>
+<para>and three filters to help print pamphlets.</para>
+</listitem>
+</itemizedlist>
+
+<para>You may create your own filters based on any third party program
+that is able to process &PostScript;, plain text or image files, and output
+any one of those formats.</para>
+
+<para>These filters are configured through <acronym>XML</acronym> files.
+This makes an extension of the concept very easy for experienced developers,
+but end-user configuration is also done through an intuitive graphical
+user interface.  So, fear not, you don't need to learn
+<acronym>XML</acronym> because of &tdeprint;!</para>
+
+<variablelist>
+<varlistentry>
+<term><guilabel>Multiple Pages Per Sheet Filter</guilabel></term>
+<listitem>
+<para>This is a predefined filter that installs with &tdeprint;.  It
+allows you to create a modified &PostScript; output, from &PostScript;
+input, that prints 1, 2, or 4 logical pages on a single sheet of
+paper.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Enscript Text Filter</guilabel></term>
+<listitem>
+<para>This is a predefined filter that installs with &tdeprint;.  It
+allows you to create &PostScript; output from any text file input, that
+includes syntax highlighting for program listings, pretty-printing, and
+nice configurable page frames and headers.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Pamphlet Printing Filters</guilabel></term>
+<listitem>
+<para>If your printer is able to produce duplex output, using either
+one-pass or two-pass technology, you may be able to use one, or a
+combination, of the <quote>pamphlet</quote> filters.</para>
+
+<para>For duplexing printers, make sure you use the duplex option that
+<quote>turns</quote> the output along the short paper edge.  Folding the
+printed paper along the middle turns your document into a nice pamphlet.</para>
+
+<para>If you are stuck with using a simplex-only device, you can do the
+same, using two different filters and a few additional steps.</para>
+
+<para>Depending on your model, first use the filter for printing the
+<quote>odd</quote> pages, then insert the paper in the correct order
+back into the paper tray to get the even pages printed on the reverse
+side.  These can then be folded to make a pamphlet.</para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+<sect1 id="cups-plugin">
+<title>&CUPS; Support: the Most Important Module in &tdeprint;</title>
+
+<para>&tdeprint; contains a module for &CUPS;.  &CUPS;, the
+<quote>Common &UNIX; Printing System</quote> (<ulink
+url="http://www.cups.org">http://www.cups.org/</ulink>), is the most
+advanced, powerful and flexible of all print subsystems on &UNIX; and
+other &UNIX;-like operating systems.  It is still quite new on the
+horizon, but is based on <acronym>IPP</acronym>, the Internet Printing
+Protocol, the newly emerging standard for the future of network
+printing. &CUPS; is clearly the print system of choice for Michael
+Goffioul, the principal &tdeprint; developer.</para>
+
+<para>Experienced &kde; users may already be familiar with Michael's
+utilities <application>qtcups</application> and
+<application>kups</application> (co-developed with Jean-Eric Cuendet).
+These were, up until now, the graphical
+&GUI; front ends for &CUPS; with a strong relation to &kde;.</para>
+
+<sect2>
+<title><application>qtcups</application> and
+<application>kups</application> &mdash; The Predecessors</title>
+
+<para>Both utilities are probably still widely used. For those
+not familiar with them,
+here are brief explanations.</para>
+
+<para><application>qtcups</application> was a graphical front end for
+the <command>lp</command> or <command>lpr</command> print commands as
+installed by &CUPS;. Using <application>qtcups</application> opened a
+dialog.  This dialog let you comfortably select your printer and the
+print job options. <application>qtcups</application>
+worked from the command line, or from
+within applications, when the application in question had a configurable
+print command.</para>
+
+<para><application>kups</application> was a graphical wrapper to do the
+administration tasks for your &CUPS; server, and the &CUPS; daemon at
+the heart of it.  You could add, delete, modify, configure, start, and
+stop printers.  You could cancel, delete, move, stop and restart print
+jobs, and you could change the settings of the daemon, start, stop, and
+restart it.</para>
+
+</sect2>
+
+<sect2>
+<title>&tdeprint; &mdash; The Heir</title>
+
+<para>The &CUPS; Module in &tdeprint; now contains all (and more)
+functions that were provided by <application>qtcups</application> and
+<application>kups</application> in former &kde; versions.</para>
+
+<para>Instead of <command>qtcups</command> you can now use the
+<command>kprinter</command> command.  And in place of
+<command>kups</command> you will probably use
+<command>kcmshell printers</command> from now on.
+</para>
+
+<para>The &tdeprint; module for &CUPS; also lets you fully administer
+the print subsystem, just like <application>kups</application> did
+before. It can start, stop and configure your &CUPS; daemon. It can also
+start, stop, add and delete <quote>printers</quote> (&ie; printer
+queues) and printer <quote>instances</quote>.  Printer instances are
+printer queues that point to the same physical output device but with a
+different default setting of print options.</para>
+
+</sect2>
+
+<sect2>
+<title>&kprinter; &mdash; Graphical Print Command</title>
+
+<para>&tdeprint;'s &CUPS; module gives you access to a <quote>graphical
+print command</quote>, like <application>qtcups</application> did
+before.</para>
+
+<para>Use &kprinter; in any application, even a non-&kde;
+application, that lets you configure your print command.  Examples of
+these are &Netscape; and <application>StarOffice</application>, but
+<emphasis>not</emphasis> most pre-&kde; 2.2 programs.</para>
+
+<para>A screenshot how to use the new <command>kprinter</command>
+print command instead of the old-fashioned <command>lpr</command>...
+Of course you need to have <command>kprinter</command> in your
+$<envar>PATH</envar>, or give the full path in the dialog; &eg;
+<userinput><filename>/opt/kde/bin/kprinter</filename></userinput>.
+&Netscape; will remember this and with further print jobs you will get
+the <command>kprinter</command> dialog to configure your printouts.</para>
+
+<screenshot>
+<screeninfo>A screenshot of the <command>kprinter</command> print
+command in action.</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="kprinter-as-netscape-printcommand.png" format="PNG"/>
+</imageobject>
+<textobject>
+<phrase>Here's a screenshot showing how to use the new
+<command>kprinter</command> print command
+instead of the old-fashioned <command>lp</command> or
+<command>lpr</command> in &Netscape;.</phrase>
+</textobject>
+</mediaobject>
+</screenshot>
+
+<para>You can also use <command>&kprinter;</command> from the
+command line and see the resulting dialog box pop up:</para>
+
+<screenshot>
+<screeninfo>Screenshot of the <command>kprinter</command> command</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="kprinter.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Screenshot showing use of the <command>kprinter</command> command
+from the command line.</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<note><para>Just make sure you give at least the file to be printed
+from the command line as well: <userinput><command>kprinter</command>
+<option>/usr/share/doc/packages/cups/sam.pdf</option></userinput>.
+This will hand over the &CUPS; Software Administrator Manual to the
+<command>kprinter</command> dialog, which will then pop up with the
+default printer pre-selected.</para>
+
+<para>To pre-select a specific printer from the command line, use the
+<option>-d</option> option, &eg;:
+<userinput><command>kprinter</command> <option>-d
+DANKAcolorC2000</option>
+<option>/home/kurt/linuxtag2001-paper.ps</option></userinput>.  You
+can still de-select the printer <option>DANKAcolorC2000</option> and
+choose a different one.</para>
+
+<para> You <emphasis>cannot</emphasis> however call
+<userinput><command>kprinter</command></userinput> 
+without a print file and hope to open a file selection
+dialog box from the &kprinter; window. This is a feature that will be
+implemented only in the next version.</para>
+</note>
+
+<para>Using <command>kprinter</command> you are able to <quote>ring
+all the bells and blow all the whistles</quote> of your printer.  You
+will need a device-specific so-called &PPD; (&PostScript; Printer
+Description) to enable &CUPS; to make this nice tandem team do this
+for you.  Read more about this in <xref linkend="ppd-files"/>.</para>
+
+</sect2>
+
+</sect1>
+
+<sect1 id="future-plans">
+<title>Plans for Future Development</title>
+
+<para>What you have now is the first, already very feature-rich
+version of &tdeprint;. This version is, of course, fully usable for
+printing. You might even think that <quote>it was never so
+easy</quote> (not even back in the days when you had to use
+&Microsoft; &Windows;).</para>
+
+<para> In the future, &tdeprint; will become even better. It will do a
+better job of <quote>detecting</quote> your installed print subsystem
+itself. Already &tdeprint; is doing quite well in automatically
+sensing if you have &CUPS; on your system. But in many cases you will
+have to tell &tdeprint; what you are using, if you want to keep a
+legacy print system.</para>
+
+<para>The most important improvement in the near future will be a
+completion of the <application>LPRng</application> plugin.  This at
+present is still very basic.  It is restricted to the pure classical
+<acronym>LPD</acronym> part of
+<application>LPRng</application>.</para>
+
+<para>Also, you may be able to add printers directly from the print
+dialog to your system <quote>just in time</quote>, without going to
+&kcontrol; first.</para>
+
+<para>Some smaller improvements already planned are:</para>
+
+<itemizedlist>
+<listitem><para>add a file selection dialog from the &kprinter; window
+to allow combining of additional files to the present
+printjob</para></listitem> <listitem><para>add a
+<quote>history</quote> button to the
+<application>KJobViewer</application> window and also a column to show
+the number of pages &CUPS; calculates for the job.</para></listitem>
+</itemizedlist>
+
+<para>Finally, there will be an <quote>IO slave</quote> that will give
+you access to your print subsystem, via &konqueror; for example.  With
+this you will soon be able to browse your print subsystem from
+&konqueror; through a &URL; like shortcut such as
+<userinput>print://printers/printername</userinput>.  A KPart will add
+a virtual folder to the services section of the &konqueror; navigation
+panel, giving a nice integrated way to browse and manage your print
+system via the &URL; <userinput>print:/manager</userinput>.</para>
+
+<para>Please contact Michael Goffioul at <email>tdeprint@swing.be</email>
+with any further user or developer suggestions.</para>
+
+</sect1>
+</chapter>
diff --git a/doc/tdeprint/index.docbook b/doc/tdeprint/index.docbook
new file mode 100644
index 000000000..977d9a6f4
--- /dev/null
+++ b/doc/tdeprint/index.docbook
@@ -0,0 +1,200 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" 
+"dtd/kdex.dtd" [
+  <!ENTITY CUPS "<acronym>CUPS</acronym>">
+  <!ENTITY PPD "<acronym>PPD</acronym>">
+  <!ENTITY IPP "<acronym>IPP</acronym>">
+  <!ENTITY ghostscript "<application>ghostscript</application>">
+  <!ENTITY tech-overview-doc SYSTEM "tech-overview.docbook">
+  <!ENTITY highlights-doc SYSTEM "highlights.docbook">
+  <!ENTITY getting-started-doc SYSTEM "getting-started.docbook">
+  <!ENTITY theory-doc SYSTEM "theory.docbook">
+  <!ENTITY cups-configuration-doc SYSTEM "cups-config.docbook">
+  <!ENTITY add-printer-wizard-2-doc SYSTEM "add-printer-wiz.docbook">
+  <!ENTITY cupsoptions-presently-outside-kcontrol-doc SYSTEM 
+"cupsoptions.docbook">
+  <!ENTITY rlpr-doc SYSTEM "rlpr.docbook">
+  <!ENTITY lpd-doc SYSTEM "lpd.docbook">
+  <!ENTITY lpr-bsd-doc SYSTEM "lpr-bsd.docbook">
+  <!ENTITY lprng-doc SYSTEM "lprng.docbook">
+  <!ENTITY external-command-doc SYSTEM "external-command.docbook">
+  <!ENTITY extensions-doc SYSTEM "extensions.docbook">
+  <!ENTITY final-word-doc SYSTEM "final-word.docbook">
+  <!ENTITY kappname "&tdeprint;"><!-- replace kapp here -->
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % English "INCLUDE"><!-- change language only here -->
+]>
+	
+<book lang="&language;">
+  
+<bookinfo>
+<title>The &tdeprint; Handbook</title>
+
+<authorgroup>
+<author>
+<firstname>Kurt</firstname>
+<surname>Pfeifle</surname>
+<affiliation>
+<address><email>kpfeifle@danka.de</email></address>
+</affiliation>
+</author>
+        
+<othercredit role="developer">
+<firstname>Michael</firstname>
+<surname>Goffioul</surname>
+<affiliation>
+<address><email>tdeprint@swing.be</email></address>
+</affiliation>
+<contrib>Developer</contrib>
+</othercredit>
+
+<othercredit role="reviewer">
+<firstname>Lauri</firstname>
+<surname>Watts</surname>
+<affiliation>
+<address><email>lauri@kde.org</email></address>
+</affiliation>
+<contrib>Reviewer</contrib>
+</othercredit>
+
+<!-- TRANS:ROLES_OF_TRANSLATORS -->
+
+</authorgroup>
+
+<copyright>
+<year>2001</year>
+<holder>Kurt Pfeifle</holder>
+</copyright>
+
+<legalnotice>&FDLNotice;</legalnotice>
+
+<date>2001-08-09</date>
+<releaseinfo>1.00.04</releaseinfo>
+
+<abstract>
+<para>This handbook describes &tdeprint;. &tdeprint; is not a standalone
+program. It is the new printing framework for &kde; 2.2. &tdeprint;
+is an intermediate layer between &kde; (or other) applications and the selected
+(and installed) print subsystem of your OS (&OS;).</para>
+</abstract>
+
+<keywordset>
+<keyword>KDE</keyword>
+<keyword>kdebase</keyword>
+<keyword>tdeprint</keyword>
+<keyword>print</keyword>
+<keyword>printing</keyword>
+<keyword>CUPS</keyword>
+<keyword>LPR</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction">
+<title>Introduction</title>
+
+<para>This handbook describes &tdeprint;. &tdeprint; is not a standalone
+program. It is the new printing framework for &kde; 2.2. &tdeprint;
+is an intermediate layer between &kde; (or other) applications and the selected
+(and installed) print subsystem of your OS (&OS;).</para>
+
+<para>It should be noted that both the developer of this application,
+and the author of this document are most familiar with &CUPS; as a
+printing system.  At the time of writing, &CUPS; is the best supported
+printing subsystem, and it is the best documented.</para>
+
+<para>This handbook is a work in progress, and later versions of the
+&tdeprint; software and editions of this handbook will support and
+explore more closely other printing systems.</para>
+
+<para>In the meantime, even if your printing subsystem is not yet well
+covered, you are encouraged to explore the <guilabel>Printing
+Manager</guilabel> module in &kcontrol;, and you will find its
+operation to hopefully be fairly self evident, no matter what printing
+subsystem you use.</para>
+
+<para>Lauri Watts, &kde; documentation team</para>
+
+<!-- Insert here screenshot : <steinbruch_scaled.png> -->
+
+<sect1>
+<title>To configure your printing subsystem from &kcontrol;</title>
+
+<para>To configure your printing subsystem from &kcontrol;, go to
+<menuchoice><guilabel>System</guilabel><guilabel>Printing
+Manager</guilabel></menuchoice> and select your subsystem. Or you can
+let &tdeprint; try to determine it... </para>
+
+<screenshot>
+<screeninfo>&CUPS; Printing Manager dialog: overview via &kcontrol;</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="steinbruch_scaled.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>The dialog to configure the &CUPS; server: security 
+settings</phrase></textobject>
+<caption><para>Configuration of printing subsystem from 
+&kcontrol;</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+</chapter>
+
+&tech-overview-doc;
+
+&highlights-doc;
+
+&theory-doc;
+
+&getting-started-doc;
+
+&cups-configuration-doc;
+
+&add-printer-wizard-2-doc;
+
+&cupsoptions-presently-outside-kcontrol-doc;
+
+&rlpr-doc;
+
+&lpd-doc;
+
+&lpr-bsd-doc;
+
+&lprng-doc;
+
+&external-command-doc;
+
+&extensions-doc;
+
+&final-word-doc;
+
+<chapter id="credits-and-license">
+<title>Credits And Licenses</title>
+
+<para>&tdeprint; copyright 2001, Michael Goffioul
+<email>tdeprint@swing.be</email></para>
+&underGPL;
+
+<para>Documentation copyright 2001, Kurt Pfeifle,
+<email>kpfeifle@danka.de</email></para>
+&underFDL;
+
+<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
+
+</chapter>
+
+</book>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+// vim:ts=2:sw=2:tw=78:noet
+-->
diff --git a/doc/tdeprint/kcontrol-icon.png b/doc/tdeprint/kcontrol-icon.png
new file mode 100644
index 000000000..8fbaacd79
Binary files /dev/null and b/doc/tdeprint/kcontrol-icon.png differ
diff --git a/doc/tdeprint/kcontrolcenter-printmanager-jobcontrol-2.png b/doc/tdeprint/kcontrolcenter-printmanager-jobcontrol-2.png
new file mode 100644
index 000000000..d7132b1cd
Binary files /dev/null and b/doc/tdeprint/kcontrolcenter-printmanager-jobcontrol-2.png differ
diff --git a/doc/tdeprint/kcron_to_be_printed.png b/doc/tdeprint/kcron_to_be_printed.png
new file mode 100644
index 000000000..114b26b3c
Binary files /dev/null and b/doc/tdeprint/kcron_to_be_printed.png differ
diff --git a/doc/tdeprint/kprinter-as-netscape-printcommand.png b/doc/tdeprint/kprinter-as-netscape-printcommand.png
new file mode 100644
index 000000000..0780e2a80
Binary files /dev/null and b/doc/tdeprint/kprinter-as-netscape-printcommand.png differ
diff --git a/doc/tdeprint/kprinter-kivio.png b/doc/tdeprint/kprinter-kivio.png
new file mode 100644
index 000000000..b36b49b89
Binary files /dev/null and b/doc/tdeprint/kprinter-kivio.png differ
diff --git a/doc/tdeprint/kprinter.png b/doc/tdeprint/kprinter.png
new file mode 100644
index 000000000..f83cfcd4b
Binary files /dev/null and b/doc/tdeprint/kprinter.png differ
diff --git a/doc/tdeprint/kprinter_called_from_run_command.png b/doc/tdeprint/kprinter_called_from_run_command.png
new file mode 100644
index 000000000..b02070c1d
Binary files /dev/null and b/doc/tdeprint/kprinter_called_from_run_command.png differ
diff --git a/doc/tdeprint/kprinter_with_kcron_developer_special.png b/doc/tdeprint/kprinter_with_kcron_developer_special.png
new file mode 100644
index 000000000..dc9b785cf
Binary files /dev/null and b/doc/tdeprint/kprinter_with_kcron_developer_special.png differ
diff --git a/doc/tdeprint/lpd.docbook b/doc/tdeprint/lpd.docbook
new file mode 100644
index 000000000..cc555e399
--- /dev/null
+++ b/doc/tdeprint/lpd.docbook
@@ -0,0 +1,18 @@
+<chapter id="lpd-module">
+<title>Generic <acronym>LPD</acronym> Module (&UNIX;)</title>
+
+
+<sect1>
+<title>Overview of Provided Features</title>
+
+<para>Module used by default (on first start for example).</para>
+
+<para>Generic module that only allows sending of print jobs. No printer or
+job management supported. It is made to work on a wide variety of &UNIX;
+flavors: &Linux;/<acronym>LPR</acronym>, &HP-UX;, Solaris, &IRIX;.
+It also supports some <application>LPRng</application> extensions (like
+the absence of continuation character <literal>\</literal> in
+<filename>printcap</filename> files).</para>
+
+</sect1>
+</chapter>
diff --git a/doc/tdeprint/lpr-bsd.docbook b/doc/tdeprint/lpr-bsd.docbook
new file mode 100644
index 000000000..007fbc6e5
--- /dev/null
+++ b/doc/tdeprint/lpr-bsd.docbook
@@ -0,0 +1,25 @@
+<chapter id="lpr-bsd-style-module">
+<title><acronym>LPR</acronym> (<acronym>BSD</acronym>)</title>
+
+<para>Plain (old?) <acronym>LPR</acronym> support. An
+<acronym>LPRng</acronym> module is in development, and hopefully
+available for 2.3 release.</para>
+
+<sect1>
+<title>Overview of Provided Features</title>
+
+<itemizedlist>
+<listitem>
+<para>Printer management: basic support to add/remove/configure a
+printer, compatible with &RedHat;-6.x systems
+(<command>printtool</command> + rhs-printfilers packages).</para>
+</listitem>
+<listitem>
+<para>Job management: not supported</para>
+</listitem>
+<listitem>
+<para>Print options: basic control</para>
+</listitem>
+</itemizedlist>
+</sect1>
+</chapter>
diff --git a/doc/tdeprint/lprng.docbook b/doc/tdeprint/lprng.docbook
new file mode 100644
index 000000000..78db2615b
--- /dev/null
+++ b/doc/tdeprint/lprng.docbook
@@ -0,0 +1,7 @@
+<chapter id="lprng-module">
+<title><application>LPRng</application></title>
+
+<para>An <application>LPRng</application> module for &tdeprint; is in
+development, and hopefully available for the &kde; 2.3 release.</para>
+
+</chapter>
diff --git a/doc/tdeprint/ps-boxes.png b/doc/tdeprint/ps-boxes.png
new file mode 100644
index 000000000..a24f845a7
Binary files /dev/null and b/doc/tdeprint/ps-boxes.png differ
diff --git a/doc/tdeprint/rlpr.docbook b/doc/tdeprint/rlpr.docbook
new file mode 100644
index 000000000..fab48d7bb
--- /dev/null
+++ b/doc/tdeprint/rlpr.docbook
@@ -0,0 +1,18 @@
+<chapter id="rlpr-module">
+<title>Module Built Around <application>rlpr</application>
+Utility</title>
+
+<sect1>
+<title>Overview of provided features</title>
+
+<para>Printer management: basic operations are supported
+(add/remove/modify).</para>
+
+<para>Each user can predefine the printers he wants to use by specifying
+the host and related printer queues. Printers are stored on a <quote>per
+user basis</quote>. This module is built around the
+<application>rlpr</application> utility <ulink
+url="http://truffula.com/rlpr/">rlpr</ulink></para>
+
+</sect1>
+</chapter>
diff --git a/doc/tdeprint/steinbruch_scaled.png b/doc/tdeprint/steinbruch_scaled.png
new file mode 100644
index 000000000..57e6fde76
Binary files /dev/null and b/doc/tdeprint/steinbruch_scaled.png differ
diff --git a/doc/tdeprint/tdeprint-jobviewer.png b/doc/tdeprint/tdeprint-jobviewer.png
new file mode 100644
index 000000000..8182e4317
Binary files /dev/null and b/doc/tdeprint/tdeprint-jobviewer.png differ
diff --git a/doc/tdeprint/tech-overview.docbook b/doc/tdeprint/tech-overview.docbook
new file mode 100644
index 000000000..7a81a48a2
--- /dev/null
+++ b/doc/tdeprint/tech-overview.docbook
@@ -0,0 +1,280 @@
+<chapter id="technical-overview">
+<title>Technical Overview</title>
+
+<para>This chapter aims to give a technical overview of &tdeprint; which
+non-programmers can comprehend.</para>
+
+<para>&tdeprint; is a new and revolutionary tool to give easy access to
+printing services for both &kde; users and &kde; developers.</para>
+
+<sect1 id="brief-description">
+<title>A Brief Description of &tdeprint;</title>
+
+<para>You can access the functions of &tdeprint; in different ways:
+through the Printing Manger in the &kcontrol;, through the
+<command>kprinter</command> command or through the dialog that pops up
+if you want to print.</para>
+
+<sect2 id="what-tdeprint-is-not">
+<title>What it is <emphasis>not</emphasis></title>
+
+<para>&tdeprint; is <emphasis>not</emphasis> a replacement for the
+printing subsystem itself.  &tdeprint; does <emphasis>not</emphasis>
+therefore give provision for spooling, and it does
+<emphasis>not</emphasis> do the basic processing of &PostScript; or
+other print data.</para>
+
+</sect2>
+
+<sect2 id="what-kde-print-is">
+<title>What it <emphasis>is</emphasis></title>
+<para>&tdeprint; is an intermediate layer between the spooling and the
+data processing print subsystem (as installed), and the application that
+seeks to print.  &tdeprint; provides a common interface for &kde;
+developers and &kde; users, to various supported print subsystems.  At
+the same time, it is customizable, and highly configurable.</para>
+
+<para>&tdeprint; is easy to use for both &kde; developers and end-users.
+Developers can port their applications, with minimal changes, to use
+&tdeprint; instead of the old &Qt; print <quote>system</quote>. Users
+can easily choose and configure their print subsystem.</para>
+
+<para>For a reference to new &kde; users: &Qt; is the basic library and
+graphical toolkit, which is used by all &kde; applications; &Qt; is
+developed by TrollTech, a Norwegian software company.</para>
+
+</sect2>
+
+</sect1>
+
+<sect1 id="different-users">
+<title>&tdeprint; -- Different Usage for Different People</title>
+
+<para>&tdeprint; has different faces for different people.</para>
+
+<sect2 id="what-users-can-do">
+<title>What users and administrators can do with &tdeprint;</title>
+
+<para>&tdeprint; allows users and/or administrators, depending on their
+rights, access to printing subsystems (&CUPS;, <acronym>LPD</acronym>,
+<acronym>RLPR</acronym>, <application>LPRng</application>,
+<application>PDQ</application> &etc;) through a &kde; graphical user
+interface (&GUI;).  Using &tdeprint;, they can print, administer jobs,
+printers and the printing daemon, all in a comfortable manner.</para>
+
+<para>Experienced users will like the capability to plug any working
+filter for the print data between the output of their application and
+the input, into the chosen print subsystem. Some examples for this
+already ship with <quote>plain vanilla</quote> &tdeprint;. Read
+on.</para>
+
+</sect2>
+
+
+<sect2 id="what-developers-can-do">
+<title>What &kde; developers can do with it...</title>
+
+<para>If a &kde; developer needs printing access for his application, he
+does not code the printing functions from scratch. Before &kde; 2.2 this
+service was provided by the <classname>QPrinter</classname> class, a
+library function of the &Qt; Toolkit. The
+<classname>QPrinter</classname> class relied on the out-moded
+<quote>Line Printer Daemon</quote> (<acronym>LPD</acronym>). The
+&tdeprint; library bases itself firmly on the more modern Common &UNIX;
+Printing System (&CUPS;), while at the same time keeping backward
+compatibility with <acronym>LPD</acronym> and other legacy, or less
+elaborate, print systems. It also <quote>leaves the door open</quote>
+for any new development that might occur.</para>
+
+<para>For &kde; developers to use the new &tdeprint; class in their
+applications, they require only minimal changes to their code: for every
+call of <classname>QPrinter</classname>, they just need to change this to
+<classname>KPrinter</classname>.  Replacing one (!) letter in a few
+spots, and automatically they are done; their application can then use
+all of the features of the new &tdeprint; library.</para>
+
+<para>More ambitious developers, or ones with special requirements, can
+do more: despite &tdeprint;'s feature-rich framework, they are still able
+to customize the print dialog of their application
+by creating an additional <quote>Tab</quote>, where their
+extensions to the standard &tdeprint; will feel right at home.</para>
+
+
+<para>This last mentioned feature has not been used widely inside
+&kde; so far, as developers are not yet fully aware of &tdeprint;'s
+power. Expect more of this in the near future. One example I
+discovered is the &kcron; application. It lets you edit the crontab
+through a &GUI;. The developers have implemented a printing feature
+that lets you (or <systemitem class="username">root</systemitem>)
+choose if you want to print the whole of crontab (for all users) or
+just the part that is marked. You can see the effects on &tdeprint;
+in the following screenshots.</para>
+
+<para>This shot shows a sample from the &kcron; utility.
+<screenshot>
+<screeninfo>&kcron; utility: a small sample of a system's cronjobs as
+shown through the &kde; <acronym>GUI</acronym>&GUI;.</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="kcron_to_be_printed.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>The &kcron; developers let you choose to print the whole of the
+cron table or just the marked part of it.</phrase></textobject>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>The dialog to configure &kcron;'s printing options: the
+additional tab titled <guilabel>Cron Options</guilabel> is from inside
+&kcron;, not &tdeprint;; it is a special extension added by the
+&kcron; developers for printing purposes, not originating from, but
+executed by &tdeprint;. Developers of other applications are free
+to implement their own goodies, if they feel need for it.</para>
+
+
+<screenshot>
+<screeninfo>&kcron;'s addition to the &tdeprint; dialog.</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="kprinter_with_kcron_developer_special.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>&kcron;'s addition to the &tdeprint; dialog.</phrase></textobject>
+<caption>
+<para>&kcron;'s addition to the &tdeprint; dialog.</para>
+</caption>
+</mediaobject>
+</screenshot>
+
+</sect2>
+
+<sect2>
+<title>What &tdeprint; offers to everybody...</title>
+
+<para>&tdeprint;'s easy-to-use interface for all supported print subsystems
+of course does not eliminate basic traditional weaknesses of some of
+those systems. But it smooths some rough edges.  Different users may use
+different printing systems on the same box. A user is free to even
+switch <quote>on the fly</quote>, from the print dialog, the print
+subsystem to be used for the next job. (This is possible if different
+systems are installed in a way that they don't <quote>get in each
+other's way</quote>.)</para>
+
+<para>Most &UNIX; users are used to
+<acronym>LPD</acronym> printing. <acronym>LPD</acronym> provides only
+basic printing functions, is very inflexible and does not utilize the
+many options of more modern print systems like &CUPS;. While also
+working remotely over any distance (like every TCP/IP based protocol),
+<acronym>LPD</acronym> lacks bi-directional communication,
+authentication, access control and encryption support.</para>
+
+<para>&tdeprint; can use &CUPS; to support:</para>
+
+<itemizedlist>
+<listitem>
+<para>Querying the <acronym>LAN</acronym> for available printers,</para>
+</listitem>
+<listitem>
+<para>Basic, Digest, and Certificate Authentication,</para>
+</listitem>
+<listitem>
+<para>Access Control based on <acronym>IP</acronym> addresses, net
+addresses, netmasks, host- and domain names,</para>
+</listitem>
+<listitem>
+<para>and 128-Bit TLS or SSL3 encryption of print data, to prevent
+eavesdropping, or at least make it much more difficult.</para>
+</listitem>
+</itemizedlist>
+
+<para>This makes &tdeprint; a much more robust and reliable solution
+than using the venerable <acronym>LPD</acronym>.</para>
+
+</sect2>
+<sect2>
+<title>How to access &tdeprint; </title>
+
+<para>You get access to &tdeprint;, or parts of it, in four different
+ways:</para>
+
+<itemizedlist>
+<listitem><para>through your applications: if you call the printing
+dialog (either <menuchoice><guilabel>File</guilabel>
+<guilabel>Print...</guilabel></menuchoice>) or the button with the
+little printer icon on it; this opens the printing
+dialog.</para></listitem>
+
+<listitem><para>through the typed command <command>kprinter</command>
+in a <application>terminal</application> or a &konsole; window or from
+the <guilabel>Run Command...</guilabel> mini-<acronym>CLI</acronym>
+window: this also opens the printing dialog.</para></listitem>
+
+<listitem><para>from the <inlinemediaobject><imageobject> <imagedata
+fileref="kcontrol-icon.png" format="PNG"/></imageobject>
+</inlinemediaobject> button, starting &kcontrol;, and then go to
+<menuchoice><guilabel>System</guilabel><guilabel>Printing
+Manager</guilabel></menuchoice>. This opens the &tdeprint;
+administration which is part of the &kcontrolcenter; and also lets
+you switch to other parts of the &kcontrol;</para></listitem>
+
+<listitem><para>from a command line (&konsole; or
+mini-<acronym>CLI</acronym>) type <userinput>
+<command>kcmshell</command> <option>printers</option></userinput>.
+This opens just the &tdeprint; part of &kcontrol; to change your settings
+</para></listitem>
+</itemizedlist>
+<screenshot>
+<screeninfo>&kprinter; dialog to be started from <guilabel>Run Command...</guilabel> window</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="kprinter_called_from_run_command.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>Starting the &kprinter; dialog from
+a <guilabel>Run Command...</guilabel> window.</phrase></textobject>
+<caption><para>Starting the &kprinter; dialog from a <guilabel>Run
+Command...</guilabel> window.</para></caption>
+</mediaobject>
+</screenshot>
+
+<!-- TODO: This one ought to be a screenshot LW. --> <para>Here is a
+&kivio; drawing of the &kprinter; dialog as it pops up after being
+started... You can always add a new printer by clicking on the small
+<guiicon>Wizard</guiicon> button (marked red/yellow in this
+drawing).</para>
+  
+<screenshot>
+<screeninfo>&kprinter; dialog started (&kivio; draft drawing)
+</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="kprinter-kivio.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>&kprinter; dialog started (&kivio; draft drawing)</phrase></textobject>
+<caption><para>&kprinter; dialog started (&kivio; draft
+drawing)</para></caption>
+</mediaobject>
+</screenshot>
+
+</sect2>
+
+</sect1>
+
+</chapter>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-namecase-general:t
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:0
+sgml-indent-data:true
+sgml-parent-document:"index.docbook" "book"
+End:
+-->
diff --git a/doc/tdeprint/theory.docbook b/doc/tdeprint/theory.docbook
new file mode 100644
index 000000000..7b137f1c3
--- /dev/null
+++ b/doc/tdeprint/theory.docbook
@@ -0,0 +1,690 @@
+<chapter id="theory">
+<title>Some Theoretical Background: &CUPS;, <acronym>IPP</acronym>,
+&PostScript; and <application>Ghostscript</application></title>
+
+<para>This chapter aims to give a bit of theoretical background to
+printing in general, and to &CUPS; especially.  If you are not in need
+of this, you might like to skip ahead to the <link
+linkend="getting-started">next chapter</link>. Chances are you will
+come back to this chapter at some point anyway, because sometimes one
+needs extra theory to solve a practical problem.</para>
+
+<sect1 id="basics-of-printing">
+<title>Basics About Printing</title>
+
+<para>Printing is one of the more complicated chapters in
+<acronym>IT</acronym> technology.</para>
+
+
+<para>Earlier on in history, every developer of a program that was
+capable of producing printable output had to write his own printer
+drivers too.  That was quite complicated, because different programs
+have different file formats.  Even programs with the same purpose, for
+example: word processors, often do not understand each other's formats.
+There was therefore no common interface to all printers, hence the
+programmers often supported only a few selected models.</para>
+
+<para>A new device appearing on the market required the program authors
+to write a new driver if they wanted their program to support it.  Also
+for manufacturers, it was impossible to make sure their device was
+supported by any program known to the world (although there were far
+fewer than today).</para>
+
+<para>Having to support ten application programs and a dozen printers,
+meant a system administrator had to deal with 120 drivers.  So the
+development of unified interfaces between programs and printers became
+an urgent need.</para>
+
+<para>The appearance of <quote>Page Description Languages</quote>,
+describing the graphical representation of ink and toner on sheets of
+paper (or other output devices, like monitors, photo typesetters, &etc;)
+in a common way, was a move that filled a big gap. <!-- FIXME --></para>
+
+<para>One such development was &PostScript; by Adobe.  It meant that an
+application programmer could concentrate on making his program generate
+a &PostScript; language description of his printable page, while
+printing device developers could focus on making their devices
+&PostScript; literate.</para>
+
+<para>Of course, over time, there came the development of other description
+methods.  The most important competitors to &PostScript; were
+<acronym>PCL</acronym> (<quote>Print Control Language</quote>, from
+&Hewlett-Packard;), <quote>ESC/P</quote> (from Epson) and
+<acronym>GDI</acronym> (<quote>Graphical Device Interface</quote> from
+&Microsoft;).</para>
+
+<para>The appearance of these page description languages made life easier,
+and facilitated further development for everybody.  Yet the fact that there
+still remained different, incompatible, and competing page description
+languages keeps life for users, administrators, developers and
+manufacturers difficult enough.</para>
+
+<sect2>
+<title>&PostScript; in memory - Bitmaps on Paper</title>
+
+<para>&PostScript; is most heavily used in professional printing
+environments such as PrePress and printing service industries.  In the
+&UNIX; and &Linux; domains, &PostScript; is the predominant standard
+as a <acronym>PDL</acronym>. Here, nearly every program generates a
+&PostScript; representation of its pages once you push the
+<quote>Print</quote> button.  Let us look at a simple example of
+(hand-made) &PostScript; code.  The following listing describes two
+simple drawings:</para>
+
+<example id="coded-postscript">
+<title>&PostScript; Code</title>
+<screen>%!PS
+100 100 moveto
+0 50 rlineto
+50 0 rlineto
+0 -50 rlineto
+closepath
+.7 setgray fill
+% first box over; next
+160 100 moveto
+0 60 rlineto
+45 10 rlineto
+0 -40 rlineto
+closepath
+.2 setgray fill</screen>
+</example>
+
+<para>This tells the imaginary &PostScript; <quote>pen</quote> to draw
+a path of a certain shape, and then fill it with different shades of
+gray.  The first part translates into more comprehensive English as
+<quote>Go to coordinate (100,100), draw a line with length 50 upward;
+then one from there to the right, then down again, and finally close
+this part.  Now fill the drawn shape with 70% darkness gray.</quote></para>
+
+<example id="rendered-postscript">
+<title>Rendered &PostScript;</title>
+<mediaobject>
+<imageobject>
+<imagedata fileref="ps-boxes.png" format="PNG"/>
+</imageobject>
+<textobject>
+<phrase><xref linkend="coded-postscript"/> example rendered as an
+image.</phrase>
+</textobject>
+</mediaobject>
+</example>
+
+<para>Of course, &PostScript; can be much more complicated than this
+simplistic example. It is a fully fledged programming language with
+many different operators and functions. You may even write
+&PostScript; programs to compute the value of Pi, format a hard disk or
+write to a file. The main value and strength of &PostScript; however
+lies in the field to describe the layout of graphical objects on a
+page: it also can scale, mirror, translate, transform, rotate and
+distort everything you can imagine on a piece of paper -- such as
+letters in different font representations, figures, shapes, shades,
+colors, lines, dots, raster...</para>
+
+<para>A &PostScript; file is a representation of one or more pages
+to be printed, in a relatively abstract way. Ideally, it is meant
+to describe the pages in a device-independent way. &PostScript; is
+not directly <quote>visible</quote>; it only lives on hard disks
+and in <acronym>RAM</acronym> as a coded representation of
+future printouts.</para>
+
+</sect2>
+
+<sect2>
+<title>Raster Images on Paper Sheets</title>
+
+<para>What you see on a piece of paper is nearly always a
+<quote>raster image</quote>. Even if your brain suggests to you that
+your eyes see a line: take a good magnifying glass and you will
+discover lots of small dots...  (One example to the contrary are
+lines that have been drawn by <quote>pen plotters</quote>).  And that
+is the only thing that the <quote>marking engines</quote> of today's
+printers can put on paper: simple dots of different colors, size and
+resolution, to make up a complete <quote>page image</quote> composed of
+different bitmap patterns.</para>
+
+<para>Different printers need the raster image prepared in different
+ways. Thinking about an inkjet device: depending on its resolution,
+the number of inks used (the very good ones need 7 different inks, while
+cheaper ones might only use 3), the number of available jets (some print
+heads have more than 100!) dispensing ink simultaneously, the
+<quote>dithering algorithm</quote> used, and many other things, the
+final raster format and transfer order to the marking engine is heavily
+dependent on the exact model used.</para>
+
+<para>Back in the early life of the <quote>Line Printer Daemon</quote>,
+printers were machines that hammered rows of <acronym>ASCII</acronym>
+text mechanically on to long media, folded as a zig-zag paper
+<acronym>snake</acronym>, drawn from a cardboard box beneath the
+table... What a difference from today!</para>
+
+</sect2>
+
+
+<sect2>
+<title><acronym>RIP</acronym>: From &PostScript; to Raster</title>
+
+<para>Before the final raster images are put on paper cut-sheets, they
+have to be calculated somehow out of their abstract &PostScript;
+representation. This is a very computing-intensive process. It is called
+the <quote>Raster Imaging Process</quote>, more commonly
+<quote><acronym>RIP</acronym></quote>).</para>
+
+<para>With &PostScript; printers the <acronym>RIP</acronym>-ping is
+taken care of by the device itself. You just send the &PostScript;
+file to it. The <quote>Raster Imaging Processor</quote> (also called the
+<acronym>RIP</acronym>) inside the printer is responsible (and
+specialized) to fulfill quite well this task of interpreting the
+&PostScript;-page descriptions and put the raster image on paper.</para>
+
+<para>Smaller &PostScript; devices have a
+hardware-<acronym>RIP</acronym> built in; it is etched in silicon, on a
+special chip. Big professional printers often have their
+<acronym>RIP</acronym> implemented as a software-<acronym>RIP</acronym>
+inside a dedicated fast &UNIX; run computer, often a Sun SPARC Solaris
+or a &SGI; &IRIX; machine.</para>
+
+</sect2>
+
+<sect2>
+<title><application>Ghostscript</application> as a Software
+<acronym>RIP</acronym></title>
+
+<para>But what happens, if you are not lucky enough to have a
+&PostScript; printer available?</para>
+
+<para>You need to do the <acronym>RIP</acronym>-ing before you send
+the print data to the marking engine. You need to digest the &PostScript;
+generated by your application on the host machine (the print client)
+itself. You need to know how the exact raster format of the target
+printer's marking engine must be composed.</para>
+
+<para>In other words, as you can't rely on the printer to understand
+and interpret the &PostScript; itself, the issue becomes quite a bit
+more complicated.  You need software that tries to solve for you the
+issues involved.</para>
+
+<para>This is exactly what the omnipresent &ghostscript; package is
+doing for many &Linux;, *BSD and other &UNIX; boxes that need to print
+to non-&PostScript; printers: &ghostscript; is a &PostScript;
+interpreter, a software <acronym>RIP</acronym> capable of running many
+different devices.</para>
+
+</sect2>
+
+<sect2>
+<title><quote>Drivers</quote> and <quote>Filters</quote> in General</title>
+
+<para>To produce rasterized bitmaps from &PostScript; input, the
+concept of <quote>filters</quote> is used by &ghostscript;.  There are
+many different filters in &ghostscript;, some of them specialized for
+a certain model of printer.  &ghostscript; filterspecializedin devices
+have often been developed without the consent or support of the
+manufacturer concerned.  Without access to the specifications and
+documentation, it was a very painstaking process to reverse engineer
+protocols and data formats.</para>
+
+<para>Not all &ghostscript; filters work equally well for their
+printers.  Yet, some of the newer ones, like the
+<application>stp</application> Filter of the
+<application>Gimp</application> Print project, produce excellent
+results leading to photographic quality on a par or even superior to
+their &Microsoft; &Windows; driver counterparts.</para>
+
+<para>&PostScript; is what most application programs produce for
+printing in &UNIX; and &Linux;.  Filters are the true workhorses of
+any printing system there.  Essentially they produce the right bitmaps
+from any &PostScript; input for non-&PostScript; target
+engines.</para>
+
+</sect2>
+
+<sect2>
+<title>Drivers and Filters and Backends in CUPS</title>
+
+<para>&CUPS; uses its own filters, though the filtering system is
+based on Ghostscript. Namely the pstoraster and the imagetoraster
+filters are directly derived from Ghostscript code. &CUPS; has
+reorganized and streamlined the whole mechanics of this legacy code
+and organized it into a few clear and distinct modules.</para>
+
+<para>This next drawing (done with the help of &kivio;) gives an
+overview of the filters and backends inside &CUPS; and how they fit
+together. The <quote>flow</quote> is from top to bottom. Backends
+are special filters: they don't convert date to a different format,
+but they send the ready files to the printer. There are different
+backends for different transfer protocols.</para>
+
+<screenshot id="architecture-diagram">
+<screeninfo>&kprinter; dialog started (&kivio; draft drawing)
+</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="cups-filterarchitecture-kivio-70Percent-scaled.png"
+format="PNG"/></imageobject>
+<textobject>
+<phrase>&kprinter; dialog started (&kivio; draft
+drawing)</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+</sect2>
+<sect2>
+<title>Spoolers and Printing Daemons</title>
+
+<para>Besides the heavy part of the filtering task to generate a
+print-ready bitmap, any printing software needs to use a SPOOLing
+mechanism: this is to line up different jobs from different users for
+different printers and different filters and send them accordingly to
+the destinations. The printing daemon takes care of all this.</para>
+
+<para>This daemon is keeping the house in order: it is also
+responsible for the job control: users should be allowed to cancel,
+stop, restart, &etc; their jobs (but not other peoples's jobs) and so
+on.</para>
+
+</sect2>
+
+</sect1>
+
+
+
+<sect1 id="cups-and-ppd">
+<title>Excursion: How <quote>CUPS</quote> uses the power of
+&PPD;s</title>
+
+<para>Now that you know how a &PostScript; language file (which
+describes the page layout in a largely device independent way) is
+transformed into a Raster Image, you might ask:
+<quote>Well, there are different kinds of raster output devices: first
+they differ in their resolution; then there are the different paper
+sizes; it goes on with many finishing options (duplex prints,
+pamphlets, punched and stapled output with different sheets of colored
+paper being drawn from different trays, &etc;). How does this fit into
+our model of device-independent &PostScript;?</quote></para>
+
+<para>The answer comes with so called &PostScript; Printer Description
+(&PPD; files. A &PPD; describes all the device dependent features
+which can be utilized by a certain printer model.  It also contains
+the coded commands that must be used to call certain features of the
+device.  But &PPD;s are not a closed book, they are simple
+<acronym>ASCII</acronym> text files.</para>
+
+<para>&PPD;s were <quote>invented</quote> by Adobe to make it easy for
+manufacturers to implement their own features into &PostScript;
+printers, and at the same time retain a standard way of doing so.
+&PPD;s are well documented and described by Adobe.  Their
+specification is a de-facto open standard.</para>
+
+<sect2 id="ppd-files">
+<title>Device Dependent Print Options</title>
+
+<para>Remember, advanced &PostScript; printing was originally only
+developed for use on &Microsoft; &Windows; and Apple &Mac; systems.
+For a long time, all of the feature rich printing on modern devices
+was simply unavailable for &Linux; and &UNIX;. &CUPS; changes this
+decisively. &CUPS; is closely tied with &PPD;s, and therefore existing
+&PPD;s can be utilized to the full by all systems powered by
+&CUPS;.</para>
+
+<para>Using &PPD;s, printer manufacturers were able to insert
+device-specific hardware features into their products, for features such
+as duplexing, stapling, punching, finishing, &etc;. The printer drivers
+load this &PPD; just like an additional configuration file. Thus the
+printer driver learns about the available device options and how to
+call them; the driver also presents them in a &GUI; to the user. Through
+this mechanism you are still able to print
+<quote>device-independent</quote> &PostScript; page description
+language files and specify device-dependent finishing options on top,
+which are added to the application-generated &PostScript;.</para>
+
+</sect2>
+
+<sect2>
+<title>Where to get the &PPD;s for &PostScript; Printers</title>
+
+<para>&PPD;s originally were not used routinely in &UNIX; and &Linux;
+systems.  The vendors providing those &PPD;s never intended them for
+anything other than the originally supported &OS;s: &Microsoft; &Windows; and
+&MacOS;.  Through its brilliant move to fully support and utilize
+the existing &PPD; specification, &CUPS; now gives the power to use
+all features of modern printers to users of &Linux; and &Linux;-like
+systems.  &tdeprint; makes its usage even more comfortable than the
+&CUPS; developers ever dreamed of.</para>
+
+<para>&CUPS; can use original &Windows; &PPD;s, distributed by the
+vendors in the case of &PostScript; printers.  Those normally don't
+cost any money, and they can be grabbed from any &Windows; computer
+with an installed &PostScript; driver for the model concerned, or from
+the disks provided with the printer.  There are also several places on
+the web to download them.</para>
+
+</sect2>
+
+<sect2>
+<title>How Special &PPD;s are Now Useful Even For Non-&PostScript;
+Printers.</title>
+
+<para>Now you know how &PostScript;-Printers can use &PPD;s. But what
+about non-&PostScript; printers? &CUPS; has done a very good trick: by
+using the same format and data structure as the &PostScript; Printer
+Descriptions (&PPD;s) in the &PostScript; world, it can describe the
+available print job options for non-&PostScript; printers just the
+same. For its own special purposes &CUPS; just added a few special
+options (namely the line which defines the filter to be used for
+further processing of the &PostScript; file).</para>
+
+<para>So, the developers could use the same software engine to parse
+the Printer Description Files for available options for all sorts of
+printers.  Of course the &CUPS; developers could not rely on the
+non-&PostScript; hardware manufacturers to suddenly develop &PPD;s.
+They had to do the difficult start themselves and write them from
+scratch.  More than 1000 of these are available through the commercial
+version of &CUPS;, called <application>ESP
+PrintPro</application>.</para>
+
+<para>Meanwhile there are a lot of &CUPS;-specific &PPD;s available.
+Even now those are in most cases not originating from the printer
+manufacturers, but from Free software developers.  The &CUPS; folks
+proofed it, and others followed suit: where &Linux; and &UNIX;
+printing one or two years ago still was a kludge, it is now able to
+support a big range of printers, including 7-color inkjets capable of
+pushing them to Photo Quality output.</para>
+
+</sect2>
+
+<sect2>
+<title>Different Ways to get &PPD;s for non-&PostScript;
+Printers</title>
+
+<para>You can get &PPD;s to be used with &CUPS; and non-&PostScript;
+printers from different areas in the Web:</para>
+
+<itemizedlist>
+<listitem>
+<para> first, there is the repository at <ulink
+url="http://www.linuxprinting.org">www.linuxprinting.org</ulink>,
+which lets you generate a <quote>CUPS-O-Matic</quote>-&PPD; online for
+any printer that had been supported by traditional &ghostscript;
+printing already. This helps you to switch over to &CUPS; with little
+effort, if you wish so. If your printer was doing well with the
+traditional way of &ghostscript; printing, take CUPS-O-Matic to plug
+your driver into th e &CUPS; system and you'll have the best of both
+worlds.</para>
+</listitem>
+
+<listitem>
+<para>second, there are &CUPS;-&PPD;s for the more than 120 printer
+models, which are driven by the new universal
+<application>stp</application> driver. <application>stp</application>
+(stood originally for Stylus Photo) is now developed by the gimp-print
+project; it was started by Mike Sweet, the leading &CUPS; developer
+and is now available through <ulink
+url="http://gimp-print.sourceforge.net">gimp-print.sourceforge.net</ulink>.
+This driver prints real Photo quality on many modern inkjets and can
+be configured to make 120 &CUPS;-&PPD;s along its own
+compilation. &HP; Laser- and DeskJet, <trademark
+class="registered">Epson</trademark> Stylus and Photo Color models as
+well as some <trademark class="registered">Canon</trademark> and
+<trademark class="registered">Lexmark</trademark> are covered.</para>
+</listitem>
+
+<listitem>
+<para>third, there is the commercial extension to &CUPS; from the
+&CUPS; developers themselves: it is called <application>ESP
+PrintPro</application> and comes with more than 2.300 printer
+drivers. There are even improved imagetoraster and pstoraster filters
+included.</para>
+</listitem>
+</itemizedlist>
+
+<para>&CUPS; makes it really easy for manufacturers to start
+supporting &Linux; and &UNIX; printing for their models at reasonably
+low cost. The modular framework of &CUPS; facilitates to plug in any
+filter (=driver) with minimal effort and to access and utilize the
+whole printing framework that &CUPS; is creating.</para>
+
+<para>Read more about the exciting &CUPS; features in the available
+&CUPS; documentation at <ulink
+url="http://www.cups.org/documentation.html">http://www.cups.org/documentation.html</ulink>
+and <ulink
+url="http://wwww.danka.de/printpro/faq.html">http://www.danka.de/printpro/faq.html</ulink>.
+Also at <ulink
+url="http://www.linuxprinting.org">http://www.linuxprinting.org/</ulink>
+is a universal repository for all issues related to &Linux; and &UNIX;
+printing.</para>
+
+</sect2>
+
+</sect1>
+
+<sect1 id="cups-ipp-support">
+<title>How &IPP; Support Makes &CUPS; the Best Choice Around</title>
+
+<sect2>
+<title><quote><acronym>LPD</acronym> Must Die!</quote></title>
+
+<para>For a long time many developers were deeply dissatisfied with good
+old <acronym>LPD</acronym>. Quite a few new projects were started to
+improve printing: <application>LPRng</application> is the best known
+example. Others are <acronym>PDQ</acronym>, <acronym>PPR</acronym>,
+<acronym>PLP</acronym>, <acronym>GNUlpr</acronym> and
+<acronym>RLPR</acronym>. But none of the new programs were seen as a
+<quote>big shot</quote>; most of them are just implementing the same old
+<acronym>LPD</acronym> specification with a few (or many) new
+extensions, which again make them incompatible with each other.</para>
+
+<para>Having seen the development of not just one, but different
+viable alternatives to venerable <acronym>BSD</acronym>-style
+<acronym>LPD</acronym>, Grant Taylor, author of the <citetitle>Linux
+Printing HOWTO</citetitle>, finally rallied the call <citetitle>LPD
+Must Die!</citetitle> in his <quote>Campaign To Abolish The Line
+Printer Daemon</quote>.</para>
+
+<!-- FIXME: look up URLs for the above -->
+
+</sect2>
+
+<sect2>
+<title>How the &IPP; Came to Be</title>
+
+<para>Along with the above, on the industry side of things, there were
+efforts to overcome the well-known weaknesses of
+<acronym>LPD</acronym>.  It started with proprietary extensions to
+plain old <acronym>LPD</acronym>, and stretched as far as
+&Hewlett-Packard;'s attempt to establish &HP; JetDirect as a new
+standard for a network printing protocol.  The result were even more
+incompatibilities.</para>
+
+<para>In the end, an initiative to define a new common industry and
+<acronym>IETF</acronym> standard took shape. The <quote>Printer
+Working Group</quote> or <acronym>PWG</acronym>, a loose aggregation
+of vendors in hardware, software, and operating systems, drafted the
+new <quote>Internet Printing Protocol</quote>, &IPP;.  &IPP; v1.1 has
+now been approved by the <acronym>IETF</acronym> (Internet Engineering
+Task Force) as a proposed standard, and now enjoys the unanimous
+support throughout the industry in Europe, USA and Japan.  Most
+current network printer models have now built in &IPP; support on top
+of traditional <acronym>LPR</acronym>/<acronym>LPD</acronym> or
+JetDirect Printing.</para>
+
+</sect2>
+
+<sect2>
+<title>Why &IPP; is Solving Many Problems</title>
+
+<para>&IPP; promises to solve a lot of problems network administrators
+face. This trade normally deals with heterogeneous network
+environments and spends more than half of its working hours dealing
+with printing problems.</para>
+
+<para>By creating a unified set of query functions for &IPP; enabled
+printers and servers, for transferring files and setting job-control
+attributes &etc;, &IPP; is destined to work across all &OS; platforms.
+It's rollout however, will not happen overnight, as many legacy print
+devices will still be in use for many years to come.  Therefore, in
+&IPP; there is a provision made for backwards compatibility of all
+&IPP; implementations.  &CUPS; is proving the viability of &IPP;
+printing in all environments.</para>
+
+<para>The most striking advantage will be it's integration into the
+existing set of other robust <acronym>IP</acronym> protocols.  Being
+an extension of the proven and robust <acronym>HTTP</acronym> 1.1
+protocol, for the special task of handling print file and related
+data, it is also very easy to plug in other standards as they are
+being developed and deployed:</para>
+
+<itemizedlist>
+<listitem>
+<para>Basic, Digest, and Certificate Authentication for users seeking
+access to print services.</para>
+</listitem>
+<listitem>
+<para>SSL3 and <acronym>TLS</acronym> encryption for transferring
+data.</para>
+</listitem>
+<listitem>
+<para>Bi directional communication of clients with print devices, using
+the <acronym>HTTP</acronym>/&IPP; <command>GET</command> and
+<command>POST</command> mechanism.</para>
+</listitem>
+<listitem>
+<para>LDAP directory service integration to keep a consistent database
+of available printers, their capabilities and page-costs, &etc;, as well
+as user passwords, <acronym>ACL</acronym>s &etc;.</para>
+</listitem>
+<listitem>
+<para><quote>Pull</quote> (as opposed to the usual <quote>Push</quote>
+model) printing, where a server or printer just needs to be told the
+&URL; of a document, whereupon it is retrieved from the resource on the
+internet and printed.</para>
+</listitem>
+</itemizedlist>
+
+</sect2>
+
+<!--
+<sect2>
+<title>&CUPS;, &IPP; and &kde;</title>
+
+<para>&CUPS; is the most advanced implementation of &IPP; on all &OS;
+platforms.  That makes &CUPS; a crucial ally to help "conquer the
+desktop" for projects like &kde;. &tdeprint; is the best utility to
+make &CUPS; core functionality available to &kde; Desktop
+users.</para>
+
+</sect2> -->
+
+<sect2>
+<title>Printer <quote>Plug'n'Play</quote> for Clients</title>
+
+<para>Have you ever seen a demonstration about &CUPS; capabilities in
+the network?  You must have been quite impressed if you didn't know in
+advance what to expect.</para>
+
+<para>Imagine you as the administrator of a <quote>LAN</quote>.  For
+testing purposes you fully installed one &kde;/&CUPS; box on your net,
+complete with a dozen printers configured and functional:
+&PostScript;, LaserJets, InkJets and BubbleJets, and so on.  Your
+&kde; users on that box are very happy, they can print like never
+before, <quote>ringing all the bells and whistles</quote> of every
+printer.  It took you 2 hours to make everything run perfectly... and
+now all the other 100 users on the network want the same.  Two hours
+again for every box?  No way you could do that before next year, you
+think?</para>
+
+<para>Wrong.  Just change one setting in the original &CUPS; box to
+make it a <quote>server</quote>.  Install &CUPS; on five other boxes,
+as <quote>clients</quote>.  By the time you turn back to your first
+client, you find the users happily playing with the settings for the
+dozen printers you had defined earlier on the <quote>server</quote>.
+Somehow magically the printers had appeared on all the
+<quote>Print</quote> dialogs of the five new &CUPS; client
+boxes.</para>
+
+<para>Your users print, but not a single driver had been installed on
+the clients, nor a printer queue defined.</para>
+
+<para>So, how does this magic work?</para>
+
+</sect2>
+
+<sect2>
+<title><quote>Seeing</quote> Printers Not Installed Locally?</title>
+
+<para>The answer is not complicated at all.</para>
+
+<para>If a &CUPS; server is on the <acronym>LAN</acronym>, it
+broadcasts the names of all available printers to the
+<acronym>LAN</acronym>, using the <acronym>UDP</acronym> protocol and
+port 631.  Port 631 is reserved as a <quote>well-known port</quote> by
+<acronym>IANA</acronym> (the <quote>Internet Assigning Numbers
+Authority</quote>) for &IPP; purposes.  All &CUPS; clients listen to
+&CUPS; server info sent to their port 631.  That's how they know about
+available printers, and that's how they learn about the
+<quote>path</quote> to the printers as well.</para>
+
+<para>Using &IPP;, which is really a clever extension to
+<acronym>HTTP</acronym> v1.1, &CUPS; is able to address all objects
+related to the printing system via <quote>Universal Resource
+Locators</quote> or <acronym>URL</acronym>s.  Print jobs to be deleted
+or restarted, printers to be queried or modified, admin tasks to be
+performed on the server, with &IPP; and &CUPS;, everything is
+addressable by a certain <acronym>URL</acronym>.  Many important
+things can be done through the web interface to &CUPS;, accessible for
+example with &konqueror;.</para>
+
+</sect2>
+
+<sect2>
+<title>Printing Without Installing a Driver</title>
+
+<para>And more, the clients basically can <quote>administer</quote>
+and <quote>use</quote> any printer they see, just as if it was a
+locally installed one.  Of course, you can set restrictions on it with
+access control lists &etc;, so that not <emphasis>any</emphasis>
+clients may use <emphasis>any</emphasis> printer as it likes.</para>
+
+<para>The clients even are able to print without the appropriate filter
+(or driver) installed locally.</para>
+
+<para>So how does this work? If a client wants to know about and
+select printer-specific options, it sends a request (called
+<command>CUPS-get-ppd</command>) to the server.  The server tells the
+client all about all printer-specific options, as read from the server
+side &PPD;.  The user on the client side can see the options and
+select the required ones.  He then sends the print file, usually
+unfiltered <quote>raw</quote> &PostScript;, spiced up with the
+printer-options to the printer server, using &IPP; as the transport
+protocol.  All further processing, especially the filtering to
+generate the final format for the target printer, is then done by the
+server.  The server has the necessary programs (<quote>drivers</quote>
+or <quote>filters</quote>) to do this.</para>
+
+<para>This way a client prints without needing to install a driver
+locally.</para>
+
+<para>Any change on the server, such as adding or modifying a printer,
+is instantly <quote>known</quote> to the clients with no further
+configuration.</para>
+
+</sect2>
+
+<sect2>
+<title><quote>Zero Administration</quote>, Load Balancing, and
+<quote>Failover Switching</quote></title>
+
+<para>Some other advanced features built into &CUPS; are the capacity to
+do <quote>load balancing</quote>.</para>
+
+<para>If you define the same printer queues on two or more different
+servers, the clients will send their jobs to the first responding or
+available server. This implies an automatic load balancing amongst
+servers. If you have to take one server off the network for
+maintenance, the others will just take over its tasks without the users
+even noticing the difference.</para>
+
+</sect2>
+
+</sect1>
+
+</chapter>
diff --git a/doc/tdesu/CMakeLists.txt b/doc/tdesu/CMakeLists.txt
new file mode 100644
index 000000000..9c562330f
--- /dev/null
+++ b/doc/tdesu/CMakeLists.txt
@@ -0,0 +1,12 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+tde_create_handbook( DESTINATION tdesu )
diff --git a/doc/tdesu/Makefile.am b/doc/tdesu/Makefile.am
new file mode 100644
index 000000000..bafa3f6c3
--- /dev/null
+++ b/doc/tdesu/Makefile.am
@@ -0,0 +1,5 @@
+
+KDE_LANG = en
+KDE_DOCS = AUTO
+KDE_MANS = AUTO
+
diff --git a/doc/tdesu/index.docbook b/doc/tdesu/index.docbook
new file mode 100644
index 000000000..81c71cf17
--- /dev/null
+++ b/doc/tdesu/index.docbook
@@ -0,0 +1,320 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
+"dtd/kdex.dtd" [
+  <!ENTITY kappname "&tdesu;">
+  <!ENTITY package "kdebase">
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % English "INCLUDE" > <!-- change language only here -->
+]>
+
+<book lang="&language;">
+<bookinfo>
+
+<title>The &tdesu; handbook</title>
+
+<authorgroup>
+<author>&Geert.Jansen; &Geert.Jansen.mail;</author>
+<!-- TRANS:ROLES_OF_TRANSLATORS -->
+</authorgroup>
+
+<copyright>
+<year>2000</year>
+<holder>&Geert.Jansen;</holder>
+</copyright>
+
+<legalnotice>&FDLNotice;</legalnotice>
+
+<date>2005-06-07</date>
+<releaseinfo>1.00.00</releaseinfo>
+
+
+<abstract><para>&tdesu; is a graphical front end for the &UNIX;
+<command>su</command> command.</para></abstract>
+
+<keywordset>
+<keyword>KDE</keyword>
+<keyword>su</keyword>
+<keyword>password</keyword>
+<keyword>root</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="introduction">
+<title>Introduction</title>
+
+<para>Welcome to &tdesu;! &tdesu; is a graphical front end for the
+&UNIX; <command>su</command> command for the K Desktop Environment.
+It allows you to run a program as different user by supplying the
+password for that user. &tdesu; is an unprivileged program; it uses
+the system's <command>su</command>.</para>
+
+<para>&tdesu; has one additional feature: it can remember passwords
+for you. If you are using this feature, you only need to enter the
+password once for each command. See <xref
+linkend="sec-password-keeping"/> for more information on this and a
+security analysis.</para>
+
+<para>This program is meant to be started from the command line or
+from <filename>.desktop</filename> files. Although it asks for the
+<systemitem class="username">root</systemitem> password using a &GUI;
+dialog, I consider it to be more of a command line &lt;-&gt; &GUI;
+glue instead of a pure &GUI; program.</para>
+
+</chapter>
+
+<chapter id="using-tdesu">
+<title>Using &tdesu;</title>
+
+<para>Usage of &tdesu; is easy. The syntax is like this:</para>
+
+<cmdsynopsis>
+<command>tdesu</command>
+
+<group choice="opt"><option>-c</option></group>
+<group choice="opt"><option>-d</option></group>
+<group choice="opt"><option>-f</option> <replaceable> file</replaceable></group>
+<group choice="opt"><option>-i</option> <replaceable> icon name</replaceable></group>
+<group choice="opt"><option>-n</option></group>
+<group choice="opt"><option>-p</option> <replaceable> priority</replaceable></group>
+<group choice="opt"><option>-r</option></group>
+<group choice="opt"><option>-s</option></group>
+<group choice="opt"><option>-t</option></group>
+<group choice="opt"><option>-u</option> <replaceable>
+user</replaceable></group>
+<group choice="opt"><option>--nonewdcop</option></group>
+
+<group><arg choice="req"><replaceable>command</replaceable> <arg><replaceable>arg1</replaceable></arg>
+	  <arg><replaceable>arg2</replaceable></arg>
+          <arg rep="repeat"><replaceable></replaceable></arg></arg></group>
+</cmdsynopsis>
+<cmdsynopsis>
+<command>tdesu</command>
+<arg choice="opt">&kde; Generic Options</arg>
+<arg choice="opt">Qt Generic Options</arg>
+</cmdsynopsis>
+
+<para>The command line options are explained below.</para>
+
+<variablelist>
+<varlistentry>
+<term><option>-c <replaceable>program</replaceable></option></term>
+<listitem><para>This specifies the program to run as root. It has to be passed
+in one argument. So if, for example, you want to start a new file manager, you
+would enter at the prompt: <userinput><command>tdesu <option>-c <replaceable>kfm
+-sw</replaceable></option></command></userinput></para></listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-d</option></term>
+<listitem><para>Show debug information.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-f <replaceable>file</replaceable></option></term>
+<listitem><para>This option allow efficient use of &tdesu; in
+<filename>.desktop</filename> files. It tells &tdesu; to examine the
+file specified by <parameter>file</parameter>. If this file is
+writable by the current user, &tdesu; will execute the command as the
+current user. If it is not writable, the command is executed as user
+<parameter>user</parameter> (defaults to root).</para>
+<para><parameter>file</parameter> is evaluated like this: if
+<parameter>FILE</parameter> starts with a <literal>/</literal>, it is
+taken as an absolute filename. Otherwise, it is taken as the name of a
+global &kde; configuration file. For example: to configure the K display
+manager, <application>kdm</application>, you could issue
+<command>tdesu <option>-c kdmconfig -f
+kdmrc</option></command></para></listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-i</option> <replaceable>icon name</replaceable></term>
+<listitem><para>Specify icon to use in the password dialog.  You may specify
+just the name, without any extension.</para>
+<para>For instance to run <command>kfmclient</command> and show the
+&konqueror; icon in the password dialog:</para>
+<screen><userinput><command>tdesu</command>  <option>-i konqueror</option> <command>kfmclient</command></userinput></screen>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-n</option></term>
+<listitem><para>Do not keep the password. This disables the <guilabel>keep
+password</guilabel> checkbox in the password dialog.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-p</option> <replaceable>priority</replaceable></term>
+<listitem>
+<para>Set priority value.  The priority is an arbitrary number between 0 and
+100, where 100 means highest priority, and 0 means lowest.  The default is
+50.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-r</option></term>
+<listitem><para>Use realtime scheduling.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-s</option></term>
+<listitem><para>Stop the tdesu daemon. See <xref
+linkend="sec-password-keeping"/>.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-t</option></term>
+<listitem><para>Enable terminal output. This disables password keeping. This is
+largely for debugging purposes; if you want to run a console mode app, use the
+standard <command>su</command> instead.</para> </listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-u</option> <replaceable> user</replaceable></term>
+<listitem><para>While the most common use for &tdesu; is to run a command as
+the superuser, you can supply any user name and the appropriate
+password.</para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+
+</chapter>
+
+<chapter id="Internals">
+<title>Internals</title>
+
+<sect1 id="x-authentication">
+<title>X authentication</title>
+
+<para>The program you execute will run under the root user id and will
+generally have no authority to access your X display. &tdesu; gets
+around this by adding an authentication cookie for your display to a
+temporary <filename>.Xauthority</filename> file. After the command
+exits, this file is removed. </para>
+
+<para>If you don't use X cookies, you are on your own. &tdesu; will
+detect this and will not add a cookie but you will have to make sure
+that root is allowed to access to your display.</para>
+
+</sect1>
+
+<sect1 id="interface-to-su">
+<title>Interface to <command>su</command></title>
+
+<para>&tdesu; uses the sytem's <command>su</command> for acquiring
+priviliges. In this section, I explain the details of how &tdesu; does
+this. </para>
+
+<para>Because some <command>su</command> implementations (&ie; the one
+from &RedHat;) don't want to read the password from
+<literal>stdin</literal>, &tdesu; creates a pty/tty pair and executes
+<command>su</command> with it's standard filedescriptors connected to
+the tty.</para>
+
+<para>To execute the command the user selected, rather than an
+interactive shell, &tdesu; uses the <option>-c</option> argument with
+<command>su</command>. This argument is understood by every shell that
+I know of so it should work portably. <command>su</command> passes
+this <option>-c</option> argument to the target user's shell, and the
+shell executes the program. Example command: <command>su <option>root
+-c <replaceable>the_program</replaceable></option></command>.</para>
+
+<para>Instead of executing the user command directly with
+<command>su</command>, &tdesu; executes a little stub program called
+<application>tdesu_stub</application>. This stub (running as the
+target user), requests some information from &tdesu; over the pty/tty
+channel (the stub's stdin and stdout) and then executes the user's
+program. The information passed over is: the X display, an X
+authentication cookie (if available), the <envar>PATH</envar> and the
+command to run. The reason why a stub program is used is that the X
+cookie is private information and therefore cannot be passed on the
+command line.</para>
+
+</sect1>
+
+<sect1 id="password-checking">
+<title>Password Checking</title>
+
+<para>&tdesu; will check the password you entered and gives an error
+message if it is not correct. The checking is done by executing a test
+program: <filename>/bin/true</filename>. If this succeeds, the
+password is assumed to be correct.</para>
+
+</sect1>
+
+<sect1 id="sec-password-keeping">
+<title>Password Keeping</title>
+
+<para>For your comfort, &tdesu; implements a <quote>keep
+password</quote> feature. If you are interested in security, you
+should read this paragraph.</para>
+
+<para>Allowing &tdesu; to remember passwords opens up a (small)
+security hole in your system. Obviously, &tdesu; does not allow
+anybody but your user id to use the passwords, but, if done without
+caution, this would lowers <systemitem
+class="username">root</systemitem>'s security level to that of a
+normal user (you). A hacker who breaks into your account, would get
+<systemitem class="username">root</systemitem> access. &tdesu; tries
+to prevent this. The security scheme it uses is, in my opinion at
+least, reasonably safe and is explained here.</para>
+
+<para>&tdesu; uses a daemon, called
+<application>tdesud</application>. The daemon listens to a &UNIX;
+socket in <filename>/tmp</filename> for commands. The mode of the
+socket is 0600 so that only your user id can connect to it. If
+password keeping is enabled, &tdesu; executes commands through this
+daemon. It writes the command and <systemitem
+class="username">root</systemitem>'s password to the socket and the
+daemon executes the command using <command>su</command>, as describe
+before. After this, the command and the password are not thrown
+away. Instead, they are kept for a specified amount of time. This is
+the timeout value from in the control module.  If another request for
+the same command is coming within this time period, the client does
+not have to supply the password. To keep hackers who broke into your
+account from stealing passwords from the daemon (for example, by
+attaching a debugger), the daemon is installed set-group-id
+nogroup. This should prevent all normal users (including you) from
+getting passwords from the <application>tdesud</application>
+process. Also, the daemon sets the <envar>DISPLAY</envar> environment
+variable to the value it had when it was started. The only thing a
+hacker can do is execute an application on your display.</para>
+
+<para>One weak spot in this scheme is that the programs you execute
+are probably not written with security in mind (like setuid
+<systemitem class="username">root</systemitem> programs). This means
+that they might have buffer overruns or other problems and a hacker
+could exploit those.</para>
+
+<para>The use of the password keeping feature is a tradeoff between
+security and comfort. I encourage you to think it over and decide for
+yourself if you want to use it or not.</para>
+
+</sect1>
+</chapter>
+
+<chapter id="Author">
+<title>Author</title>
+
+<para>&tdesu;</para>
+
+<para>Copyright 2000 &Geert.Jansen;</para>
+
+<para>&tdesu; is written by &Geert.Jansen;. It is somewhat based on
+Pietro Iglio's &tdesu;, version 0.3. Pietro and I agreed that I will
+maintain this program in the future.</para>
+
+<para>The author can be reached through email at &Geert.Jansen.mail;.
+Please report any bugs you find to me so that I can fix them. If you
+have a suggestion, feel free to contact me.</para>
+
+&underFDL;
+&underArtisticLicense;
+
+</chapter>
+
+</book>
+<!--
+Local Variables:
+mode: sgml
+sgml-omittag: nil
+sgml-shorttag: t
+End:
+-->
+
diff --git a/doc/tdesu/man-tdesu.1.docbook b/doc/tdesu/man-tdesu.1.docbook
new file mode 100644
index 000000000..fd99812fd
--- /dev/null
+++ b/doc/tdesu/man-tdesu.1.docbook
@@ -0,0 +1,179 @@
+<?xml version="1.0" ?>
+<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+<!ENTITY % English "INCLUDE">
+]>
+
+<refentry lang="&language;">
+<refentryinfo>
+<title>KDE User's Manual</title>
+<author>&Lauri.Watts; &Lauri.Watts.mail;</author>
+<date>Jun 7, 2005</date>
+<productname>K Desktop Environment</productname>
+</refentryinfo>
+
+<refmeta>
+<refentrytitle><command>tdesu</command></refentrytitle>
+<manvolnum>1</manvolnum>
+</refmeta>
+
+<refnamediv>
+<refname><command>tdesu</command></refname>
+<refpurpose>Runs a program with elevated privileges</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<cmdsynopsis>
+<command>tdesu</command>
+
+<group choice="opt"><option>-c</option></group>
+<group choice="opt"><option>-d</option></group>
+<group choice="opt"><option>-f</option> <replaceable> file</replaceable></group>
+<group choice="opt"><option>-i</option> <replaceable> icon name</replaceable></group>
+<group choice="opt"><option>-n</option></group>
+<group choice="opt"><option>-p</option> <replaceable> priority</replaceable></group>
+<group choice="opt"><option>-r</option></group>
+<group choice="opt"><option>-s</option></group>
+<group choice="opt"><option>-t</option></group>
+<group choice="opt"><option>-u</option> <replaceable>
+user</replaceable></group>
+<group choice="opt"><option>--nonewdcop</option></group>
+
+<group><arg choice="req"><replaceable>command</replaceable> <arg><replaceable>arg1</replaceable></arg>
+	  <arg><replaceable>arg2</replaceable></arg>
+          <arg rep="repeat"><replaceable></replaceable></arg></arg></group>
+</cmdsynopsis>
+<cmdsynopsis>
+<command>tdesu</command>
+<arg choice="opt">KDE Generic Options</arg>
+<arg choice="opt">Qt Generic Options</arg>
+</cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1>
+<title>Description</title>
+<para>&tdesu; is a graphical front end for the
+&UNIX; <command>su</command> command for the K Desktop Environment.
+It allows you to run a program as different user by supplying the
+password for that user. &tdesu; is an unprivileged program; it uses
+the system's <command>su</command>.</para>
+
+<para>&tdesu; has one additional feature: it can optionally remember passwords
+for you. If you are using this feature, you only need to enter the
+password once for each command.</para>
+
+<para>This program is meant to be started from the command line or
+from <filename>.desktop</filename> files.</para>
+</refsect1>
+
+<refsect1>
+<title>Options</title>
+
+<variablelist>
+<varlistentry>
+<term><option>-c <replaceable>program</replaceable></option></term>
+<listitem><para>This specifies the program to run as root. It has to be passed
+in one argument. So if, for example, you want to start a new file manager, you
+would enter at the prompt: <userinput><command>tdesu <option>-c <replaceable>kfm
+-sw</replaceable></option></command></userinput></para></listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-d</option></term>
+<listitem><para>Show debug information.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-f <replaceable>file</replaceable></option></term>
+<listitem><para>This option allow efficient use of &tdesu; in
+<filename>.desktop</filename> files. It tells &tdesu; to examine the
+file specified by <parameter>file</parameter>. If this file is
+writable by the current user, &tdesu; will execute the command as the
+current user. If it is not writable, the command is executed as user
+<parameter>user</parameter> (defaults to root).</para>
+<para><parameter>file</parameter> is evaluated like this: if
+<parameter>file</parameter> starts with a <literal>/</literal>, it is
+taken as an absolute filename. Otherwise, it is taken as the name of a
+global &kde; configuration file. For example: to configure the K display
+manager, <application>kdm</application>, you could issue
+<command>tdesu <option>-c kdmconfig -f
+kdmrc</option></command></para></listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-i</option> <replaceable>icon name</replaceable></term>
+<listitem><para>Specify icon to use in the password dialog.  You may specify
+just the name, without any extension.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-n</option></term>
+<listitem><para>Do not keep the password. This disables the <guilabel>keep
+password</guilabel> checkbox in the password dialog.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-p</option> <replaceable>priority</replaceable></term>
+<listitem>
+<para>Set priority value.  The priority is an arbitrary number between 0 and
+100, where 100 means highest priority, and 0 means lowest.  The default is
+50.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-r</option></term>
+<listitem><para>Use realtime scheduling.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><option>-s</option></term>
+<listitem><para>Stop the tdesu daemon. This is the daemon that caches
+successful passwords in the background.  This feature may also be disabled with
+<option>-n</option> when &tdesu; is initially run.</para></listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-t</option></term>
+<listitem><para>Enable terminal output. This disables password keeping. This is
+largely for debugging purposes; if you want to run a console mode app, use the
+standard <command>su</command> instead.</para> </listitem>
+</varlistentry>
+<varlistentry>
+<term><option>-u</option> <replaceable> user</replaceable></term>
+<listitem><para>While the most common use for &tdesu; is to run a command as
+the superuser, you can supply any user name and the appropriate
+password.</para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+
+</refsect1>
+
+<refsect1>
+<title>See Also</title>
+<para>su(1)</para>
+
+<para>More detailed user documentation is available from <ulink
+url="help:/tdesu">help:/tdesu</ulink>
+(either enter this <acronym>URL</acronym> into &konqueror;, or run
+<userinput><command>khelpcenter</command>
+<parameter>help:/tdesu</parameter></userinput>).</para>
+
+</refsect1>
+
+<refsect1>
+<title>Examples</title>
+<para>Run <command>kfmclient</command> as user <systemitem
+class="username">jim</systemitem>, and show the &konqueror; icon in the
+password dialog:</para>
+<screen><userinput><command>tdesu</command> <option>-u jim</option> <option>-i konqueror</option> <command>kfmclient</command></userinput></screen>
+
+</refsect1>
+
+<refsect1>
+<title>Authors</title>
+<para>&tdesu; was written by
+<personname><firstname>Geert</firstname><surname>Jansen</surname></personname> <email>jansen@kde.org</email>
+and <personname><firstname>Pietro</firstname><surname>Iglio</surname></personname>
+<email>iglio@fub.it</email>. 
+</para>
+</refsect1>
+
+</refentry>
diff --git a/kdeprint/CMakeLists.txt b/kdeprint/CMakeLists.txt
deleted file mode 100644
index 1065c69af..000000000
--- a/kdeprint/CMakeLists.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-add_subdirectory( printmgr )
-add_subdirectory( kjobviewer )
-add_subdirectory( kprinter )
-add_subdirectory( tdeprintfax )
-add_subdirectory( slave )
-add_subdirectory( tdeprint_part )
diff --git a/kdeprint/Makefile.am b/kdeprint/Makefile.am
deleted file mode 100644
index 1bbc21ff7..000000000
--- a/kdeprint/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-SUBDIRS = printmgr kjobviewer kprinter tdeprintfax slave tdeprint_part
diff --git a/kdeprint/configure.in.in b/kdeprint/configure.in.in
deleted file mode 100644
index 255d82a9b..000000000
--- a/kdeprint/configure.in.in
+++ /dev/null
@@ -1 +0,0 @@
-dnl nothing special
diff --git a/kdeprint/descriptions/Makefile.am b/kdeprint/descriptions/Makefile.am
deleted file mode 100644
index 66b8205e6..000000000
--- a/kdeprint/descriptions/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-KDE_OPTIONS = qtonly
-# Note: sortthem does not sort! (It is just a sort of uniq(1)
-
-INCLUDES = $(all_includes)
-
-EXTRA_PROGRAMS = sortthem
-
-sortthem_SOURCES = sortthem.cpp
-sortthem_LDFLAGS = $(all_libraries) $(LIB_QT)
-
-printers.cpp: sortthem
-	: > printers.cpp
-	for i in `find /usr/share/cups/model -type f ! -name '*.gz'`; do perl $(srcdir)/readppd < $$i >> printers.cpp; done
-	for i in `find /usr/share/cups/model -type f -name '*.gz'`; do \
-		gzip -cd $$i | perl $(srcdir)/readppd >> printers.cpp; done
-	iconv -flatin1 -tutf-8 printers.cpp | grep  -v '"[-0-9][0-9]*")' > printers.new
-	mv printers.new printers.cpp
-	./sortthem < printers.cpp | perl -n -e "print \"// xgettext: no-c-format\n\".\$$_;" > printers.new && mv printers.new $(srcdir)/printers.cpp
-
-messages:
-	$(XGETTEXT) printers.cpp -o $(podir)/ppdtranslations.pot
-
-.PHONY: printers.cpp
-
diff --git a/kdeprint/descriptions/printers.cpp b/kdeprint/descriptions/printers.cpp
deleted file mode 100644
index 274c5084b..000000000
--- a/kdeprint/descriptions/printers.cpp
+++ /dev/null
@@ -1,7084 +0,0 @@
-// xgettext: no-c-format
-i18n("Executive");
-// xgettext: no-c-format
-i18n("Envelope B5");
-// xgettext: no-c-format
-i18n("Envelope #10");
-// xgettext: no-c-format
-i18n("Envelope DL");
-// xgettext: no-c-format
-i18n("PageRegion");
-// xgettext: no-c-format
-i18n("Media Source");
-// xgettext: no-c-format
-i18n("Default");
-// xgettext: no-c-format
-i18n("Manual Feed");
-// xgettext: no-c-format
-i18n("Output Resolution");
-// xgettext: no-c-format
-i18n("150 DPI");
-// xgettext: no-c-format
-i18n("300 DPI");
-// xgettext: no-c-format
-i18n("600 DPI");
-// xgettext: no-c-format
-i18n("1200 DPI");
-// xgettext: no-c-format
-i18n("2400 DPI");
-// xgettext: no-c-format
-i18n("Double-Sided Printing");
-// xgettext: no-c-format
-i18n("Off");
-// xgettext: no-c-format
-i18n("Long Edge (Standard)");
-// xgettext: no-c-format
-i18n("Short Edge (Flip)");
-// xgettext: no-c-format
-i18n("US Letter");
-// xgettext: no-c-format
-i18n("US Legal");
-// xgettext: no-c-format
-i18n("US Executive");
-// xgettext: no-c-format
-i18n("US Tabloid");
-// xgettext: no-c-format
-i18n("A3");
-// xgettext: no-c-format
-i18n("Media Type");
-// xgettext: no-c-format
-i18n("Plain Paper");
-// xgettext: no-c-format
-i18n("Bond Paper");
-// xgettext: no-c-format
-i18n("Special Paper");
-// xgettext: no-c-format
-i18n("Transparency");
-// xgettext: no-c-format
-i18n("Glossy Paper");
-// xgettext: no-c-format
-i18n("Tray");
-// xgettext: no-c-format
-i18n("Envelope Feed");
-// xgettext: no-c-format
-i18n("Output Mode");
-// xgettext: no-c-format
-i18n("CMYK Color");
-// xgettext: no-c-format
-i18n("CMY Color");
-// xgettext: no-c-format
-i18n("Grayscale");
-// xgettext: no-c-format
-i18n("600x300 DPI");
-// xgettext: no-c-format
-i18n("CRET Color");
-// xgettext: no-c-format
-i18n("Duplexer");
-// xgettext: no-c-format
-i18n("Address - 1 1/8 x 3 1/2\"");
-// xgettext: no-c-format
-i18n("Large Address - 1 4/10 x 3 1/2\"");
-// xgettext: no-c-format
-i18n("Return Address - 3/4 x 2\"");
-// xgettext: no-c-format
-i18n("Shipping Address - 2 5/16 x 4\"");
-// xgettext: no-c-format
-i18n("Internet Postage 2-Part - 2 1/4 x 7 1/2\"");
-// xgettext: no-c-format
-i18n("Internet Postage 3-Part - 2 1/4 x 7\"");
-// xgettext: no-c-format
-i18n("File Folder - 9/16 x 3 7/16\"");
-// xgettext: no-c-format
-i18n("Hanging Folder - 9/16 x 2\"");
-// xgettext: no-c-format
-i18n("3.5\" Disk - 2 1/8 x 2 3/4\"");
-// xgettext: no-c-format
-i18n("136 DPI");
-// xgettext: no-c-format
-i18n("203 DPI");
-// xgettext: no-c-format
-i18n("Output Darkness");
-// xgettext: no-c-format
-i18n("Normal");
-// xgettext: no-c-format
-i18n("FanFoldUS");
-// xgettext: no-c-format
-i18n("60 DPI");
-// xgettext: no-c-format
-i18n("120x60 DPI");
-// xgettext: no-c-format
-i18n("180 DPI");
-// xgettext: no-c-format
-i18n("360x180 DPI");
-// xgettext: no-c-format
-i18n("360 DPI");
-// xgettext: no-c-format
-i18n("60x72 DPI");
-// xgettext: no-c-format
-i18n("120x72 DPI");
-// xgettext: no-c-format
-i18n("240x72 DPI");
-// xgettext: no-c-format
-i18n("Tray 4");
-// xgettext: no-c-format
-i18n("720 DPI");
-// xgettext: no-c-format
-i18n("Page Size and Printing Quality");
-// xgettext: no-c-format
-i18n("A4, 600x600 DPI");
-// xgettext: no-c-format
-i18n("Letter, 600x600 DPI");
-// xgettext: no-c-format
-i18n("A4, 1200x600 DPI");
-// xgettext: no-c-format
-i18n("B5, 600x600 DPI");
-// xgettext: no-c-format
-i18n("B5, 1200x600 DPI");
-// xgettext: no-c-format
-i18n("Legal, 600x600 DPI");
-// xgettext: no-c-format
-i18n("Legal, 1200x600 DPI");
-// xgettext: no-c-format
-i18n("Letter, 1200x600 DPI");
-// xgettext: no-c-format
-i18n("High Grade Paper");
-// xgettext: no-c-format
-i18n("Back Print Media");
-// xgettext: no-c-format
-i18n("Iron-On Transfer Sheet");
-// xgettext: no-c-format
-i18n("Hot OHP Media");
-// xgettext: no-c-format
-i18n("Post Card");
-// xgettext: no-c-format
-i18n("Thick Paper");
-// xgettext: no-c-format
-i18n("Printing Mode");
-// xgettext: no-c-format
-i18n("BlackOnly");
-// xgettext: no-c-format
-i18n("Colour");
-// xgettext: no-c-format
-i18n("HalfTone");
-// xgettext: no-c-format
-i18n("NoHalfTone");
-// xgettext: no-c-format
-i18n("Dithering");
-// xgettext: no-c-format
-i18n("FloydSteinberg");
-// xgettext: no-c-format
-i18n("NoFloydSteinberg");
-// xgettext: no-c-format
-i18n("Banding");
-// xgettext: no-c-format
-i18n("NoBanding");
-// xgettext: no-c-format
-i18n("Colour Mode");
-// xgettext: no-c-format
-i18n("CMY");
-// xgettext: no-c-format
-i18n("Colour Correction Mode");
-// xgettext: no-c-format
-i18n("FullBlack");
-// xgettext: no-c-format
-i18n("Colour correction");
-// xgettext: no-c-format
-i18n("NoColourCorrection");
-// xgettext: no-c-format
-i18n("ColourCorrection");
-// xgettext: no-c-format
-i18n("How often every dot is printed");
-// xgettext: no-c-format
-i18n("PrintTwice");
-// xgettext: no-c-format
-i18n("PrintOnce");
-// xgettext: no-c-format
-i18n("Black Printing Mode");
-// xgettext: no-c-format
-i18n("SolidBlack");
-// xgettext: no-c-format
-i18n("MixedBlack");
-// xgettext: no-c-format
-i18n("Square Dithering");
-// xgettext: no-c-format
-i18n("SquareDithering");
-// xgettext: no-c-format
-i18n("NoSquareDithering");
-// xgettext: no-c-format
-i18n("Do Curl Correction");
-// xgettext: no-c-format
-i18n("CurlCorrectionAlways");
-// xgettext: no-c-format
-i18n("CurlCorrectionAfterFinal");
-// xgettext: no-c-format
-i18n("Curl Correction on current pass");
-// xgettext: no-c-format
-i18n("NoCurlCorrectionOnCurrent");
-// xgettext: no-c-format
-i18n("CurlCorrectionOnCurrent");
-// xgettext: no-c-format
-i18n("Colour Intensity");
-// xgettext: no-c-format
-i18n("Line Feed Adjustment");
-// xgettext: no-c-format
-i18n("Gamma");
-// xgettext: no-c-format
-i18n("0.00");
-// xgettext: no-c-format
-i18n("0.05");
-// xgettext: no-c-format
-i18n("0.10");
-// xgettext: no-c-format
-i18n("0.15");
-// xgettext: no-c-format
-i18n("0.20");
-// xgettext: no-c-format
-i18n("0.25");
-// xgettext: no-c-format
-i18n("0.30");
-// xgettext: no-c-format
-i18n("0.35");
-// xgettext: no-c-format
-i18n("0.40");
-// xgettext: no-c-format
-i18n("0.45");
-// xgettext: no-c-format
-i18n("0.50");
-// xgettext: no-c-format
-i18n("0.55");
-// xgettext: no-c-format
-i18n("0.60");
-// xgettext: no-c-format
-i18n("0.65");
-// xgettext: no-c-format
-i18n("0.70");
-// xgettext: no-c-format
-i18n("0.75");
-// xgettext: no-c-format
-i18n("0.80");
-// xgettext: no-c-format
-i18n("0.85");
-// xgettext: no-c-format
-i18n("0.90");
-// xgettext: no-c-format
-i18n("0.95");
-// xgettext: no-c-format
-i18n("1.00");
-// xgettext: no-c-format
-i18n("1.05");
-// xgettext: no-c-format
-i18n("1.10");
-// xgettext: no-c-format
-i18n("1.15");
-// xgettext: no-c-format
-i18n("1.20");
-// xgettext: no-c-format
-i18n("1.25");
-// xgettext: no-c-format
-i18n("1.30");
-// xgettext: no-c-format
-i18n("1.35");
-// xgettext: no-c-format
-i18n("1.40");
-// xgettext: no-c-format
-i18n("1.45");
-// xgettext: no-c-format
-i18n("1.50");
-// xgettext: no-c-format
-i18n("1.55");
-// xgettext: no-c-format
-i18n("1.60");
-// xgettext: no-c-format
-i18n("1.65");
-// xgettext: no-c-format
-i18n("1.70");
-// xgettext: no-c-format
-i18n("1.75");
-// xgettext: no-c-format
-i18n("1.80");
-// xgettext: no-c-format
-i18n("1.85");
-// xgettext: no-c-format
-i18n("1.90");
-// xgettext: no-c-format
-i18n("1.95");
-// xgettext: no-c-format
-i18n("2.00");
-// xgettext: no-c-format
-i18n("2.05");
-// xgettext: no-c-format
-i18n("2.10");
-// xgettext: no-c-format
-i18n("2.15");
-// xgettext: no-c-format
-i18n("2.20");
-// xgettext: no-c-format
-i18n("2.25");
-// xgettext: no-c-format
-i18n("2.30");
-// xgettext: no-c-format
-i18n("2.35");
-// xgettext: no-c-format
-i18n("2.40");
-// xgettext: no-c-format
-i18n("2.45");
-// xgettext: no-c-format
-i18n("2.50");
-// xgettext: no-c-format
-i18n("2.55");
-// xgettext: no-c-format
-i18n("2.60");
-// xgettext: no-c-format
-i18n("2.65");
-// xgettext: no-c-format
-i18n("2.70");
-// xgettext: no-c-format
-i18n("2.75");
-// xgettext: no-c-format
-i18n("2.80");
-// xgettext: no-c-format
-i18n("2.85");
-// xgettext: no-c-format
-i18n("2.90");
-// xgettext: no-c-format
-i18n("2.95");
-// xgettext: no-c-format
-i18n("3.00");
-// xgettext: no-c-format
-i18n("3.05");
-// xgettext: no-c-format
-i18n("3.10");
-// xgettext: no-c-format
-i18n("3.15");
-// xgettext: no-c-format
-i18n("3.20");
-// xgettext: no-c-format
-i18n("3.25");
-// xgettext: no-c-format
-i18n("3.30");
-// xgettext: no-c-format
-i18n("3.35");
-// xgettext: no-c-format
-i18n("3.40");
-// xgettext: no-c-format
-i18n("3.45");
-// xgettext: no-c-format
-i18n("3.50");
-// xgettext: no-c-format
-i18n("3.55");
-// xgettext: no-c-format
-i18n("3.60");
-// xgettext: no-c-format
-i18n("3.65");
-// xgettext: no-c-format
-i18n("3.70");
-// xgettext: no-c-format
-i18n("3.75");
-// xgettext: no-c-format
-i18n("3.80");
-// xgettext: no-c-format
-i18n("3.85");
-// xgettext: no-c-format
-i18n("3.90");
-// xgettext: no-c-format
-i18n("3.95");
-// xgettext: no-c-format
-i18n("4.00");
-// xgettext: no-c-format
-i18n("Horizontal (X-)Shift (in dots)");
-// xgettext: no-c-format
-i18n("Vertical (Y-)Shift (in dots)");
-// xgettext: no-c-format
-i18n("Next Job");
-// xgettext: no-c-format
-i18n("NextJobOnSameSheet");
-// xgettext: no-c-format
-i18n("NextJobOnNewSheet");
-// xgettext: no-c-format
-i18n("Next Job is spot colour page");
-// xgettext: no-c-format
-i18n("NextSpotColourPage");
-// xgettext: no-c-format
-i18n("NextNotSpotColourPage");
-// xgettext: no-c-format
-i18n("This Job is spot colour page");
-// xgettext: no-c-format
-i18n("ThisSpotColourPage");
-// xgettext: no-c-format
-i18n("ThisNotSpotColourPage");
-// xgettext: no-c-format
-i18n("Page Size");
-// xgettext: no-c-format
-i18n("B5");
-// xgettext: no-c-format
-i18n("Manual");
-// xgettext: no-c-format
-i18n("Automatic");
-// xgettext: no-c-format
-i18n("Cardboard");
-// xgettext: no-c-format
-i18n("Coated Film");
-// xgettext: no-c-format
-i18n("Fine Paper");
-// xgettext: no-c-format
-i18n("Iron Seal");
-// xgettext: no-c-format
-i18n("OHP");
-// xgettext: no-c-format
-i18n("OHP (MD 2000)");
-// xgettext: no-c-format
-i18n("Rebeca Free");
-// xgettext: no-c-format
-i18n("Resolution");
-// xgettext: no-c-format
-i18n("1200x600 DPI");
-// xgettext: no-c-format
-i18n("Color Mode");
-// xgettext: no-c-format
-i18n("Colour Depth");
-// xgettext: no-c-format
-i18n("Floyd Steinb. High Qual. (32 bpp)");
-// xgettext: no-c-format
-i18n("Floyd Steinberg Simple (8 bpp)");
-// xgettext: no-c-format
-i18n("Monochrome (1 bpp)");
-// xgettext: no-c-format
-i18n("Simple Colour (4 bpp)");
-// xgettext: no-c-format
-i18n("On");
-// xgettext: no-c-format
-i18n("Duplex");
-// xgettext: no-c-format
-i18n("DoubleSided");
-// xgettext: no-c-format
-i18n("SingleSided");
-// xgettext: no-c-format
-i18n("Black color saving");
-// xgettext: no-c-format
-i18n("EcoBlack");
-// xgettext: no-c-format
-i18n("NormalBlack");
-// xgettext: no-c-format
-i18n("Black Level");
-// xgettext: no-c-format
-i18n("Cyan Level");
-// xgettext: no-c-format
-i18n("Magenta Level");
-// xgettext: no-c-format
-i18n("Yellow Level");
-// xgettext: no-c-format
-i18n("B4 (JIS)");
-// xgettext: no-c-format
-i18n("B6 (JIS)");
-// xgettext: no-c-format
-i18n("Envelope You 4");
-// xgettext: no-c-format
-i18n("Hagaki");
-// xgettext: no-c-format
-i18n("Ledger");
-// xgettext: no-c-format
-i18n("Oufuku");
-// xgettext: no-c-format
-i18n("600x600 DPI");
-// xgettext: no-c-format
-i18n("300x300 DPI");
-// xgettext: no-c-format
-i18n("3x5");
-// xgettext: no-c-format
-i18n("4x6");
-// xgettext: no-c-format
-i18n("5x7");
-// xgettext: no-c-format
-i18n("5x8");
-// xgettext: no-c-format
-i18n("6x8");
-// xgettext: no-c-format
-i18n("8x10");
-// xgettext: no-c-format
-i18n("8x12");
-// xgettext: no-c-format
-i18n("11x14");
-// xgettext: no-c-format
-i18n("13x19");
-// xgettext: no-c-format
-i18n("16x20");
-// xgettext: no-c-format
-i18n("16x24");
-// xgettext: no-c-format
-i18n("60x60 dpi");
-// xgettext: no-c-format
-i18n("60x72 dpi");
-// xgettext: no-c-format
-i18n("60x180 dpi");
-// xgettext: no-c-format
-i18n("60x216 dpi");
-// xgettext: no-c-format
-i18n("120x60 dpi");
-// xgettext: no-c-format
-i18n("120x72 dpi");
-// xgettext: no-c-format
-i18n("120x180 dpi");
-// xgettext: no-c-format
-i18n("120x216 dpi");
-// xgettext: no-c-format
-i18n("180x60 dpi");
-// xgettext: no-c-format
-i18n("180x72 dpi");
-// xgettext: no-c-format
-i18n("180x180 dpi");
-// xgettext: no-c-format
-i18n("180x216 dpi");
-// xgettext: no-c-format
-i18n("240x60 dpi");
-// xgettext: no-c-format
-i18n("240x72 dpi");
-// xgettext: no-c-format
-i18n("240x180 dpi");
-// xgettext: no-c-format
-i18n("240x216 dpi");
-// xgettext: no-c-format
-i18n("360x60 dpi");
-// xgettext: no-c-format
-i18n("360x72 dpi");
-// xgettext: no-c-format
-i18n("360x180 dpi");
-// xgettext: no-c-format
-i18n("360x216 dpi");
-// xgettext: no-c-format
-i18n("11x17");
-// xgettext: no-c-format
-i18n("Photo Paper");
-// xgettext: no-c-format
-i18n("HP Premium Paper");
-// xgettext: no-c-format
-i18n("Transparency Paper");
-// xgettext: no-c-format
-i18n("Print Quality");
-// xgettext: no-c-format
-i18n("Draft Quality");
-// xgettext: no-c-format
-i18n("Normal Quality");
-// xgettext: no-c-format
-i18n("Presentation Quality");
-// xgettext: no-c-format
-i18n("Monochrome");
-// xgettext: no-c-format
-i18n("Dithering Pixels Per Inch");
-// xgettext: no-c-format
-i18n("Generic DeskJet");
-// xgettext: no-c-format
-i18n("Standard Tray");
-// xgettext: no-c-format
-i18n("Banner Printing");
-// xgettext: no-c-format
-i18n("Envelope Feeder");
-// xgettext: no-c-format
-i18n("Manual Feeder");
-// xgettext: no-c-format
-i18n("Quick-Dry Glossy");
-// xgettext: no-c-format
-i18n("Quick-Dry Transparency");
-// xgettext: no-c-format
-i18n("Quality");
-// xgettext: no-c-format
-i18n("Default Setting");
-// xgettext: no-c-format
-i18n("Draft");
-// xgettext: no-c-format
-i18n("Presentation");
-// xgettext: no-c-format
-i18n("Ink Drying Time (sec)");
-// xgettext: no-c-format
-i18n("Memory Limit (Bytes)");
-// xgettext: no-c-format
-i18n("Black Levels");
-// xgettext: no-c-format
-i18n("2 Levels");
-// xgettext: no-c-format
-i18n("3 Levels");
-// xgettext: no-c-format
-i18n("4 Levels");
-// xgettext: no-c-format
-i18n("No Black");
-// xgettext: no-c-format
-i18n("CMY Levels");
-// xgettext: no-c-format
-i18n("No CMY");
-// xgettext: no-c-format
-i18n("Printout Mode");
-// xgettext: no-c-format
-i18n("Draft (Color cartridge)");
-// xgettext: no-c-format
-i18n("Draft Grayscale (Black + color cartridge)");
-// xgettext: no-c-format
-i18n("Normal (Color cartridge)");
-// xgettext: no-c-format
-i18n("Normal Grayscale (Black + color cartridge)");
-// xgettext: no-c-format
-i18n("High Quality Grayscale (Black + color cartridge)");
-// xgettext: no-c-format
-i18n("Photo (Photo + color cartridge, photo paper)");
-// xgettext: no-c-format
-i18n("Photo/4x6 inch index card");
-// xgettext: no-c-format
-i18n("Photo with tear-off tab");
-// xgettext: no-c-format
-i18n("3x5 inch index card");
-// xgettext: no-c-format
-i18n("5x8 inch index card");
-// xgettext: no-c-format
-i18n("A6");
-// xgettext: no-c-format
-i18n("A6 with tear-off tab");
-// xgettext: no-c-format
-i18n("Envelope C6");
-// xgettext: no-c-format
-i18n("American Foolscap");
-// xgettext: no-c-format
-i18n("Oufuku-Hagaki");
-// xgettext: no-c-format
-i18n("16K");
-// xgettext: no-c-format
-i18n("Executive (JIS)");
-// xgettext: no-c-format
-i18n("Resolution, Quality, Ink Type, Media Type");
-// xgettext: no-c-format
-i18n("Controlled by 'Printout Mode'");
-// xgettext: no-c-format
-i18n("300 dpi, Color, Color Cartr.");
-// xgettext: no-c-format
-i18n("300 dpi, Color, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("300 dpi, Draft, Color, Color Cartr.");
-// xgettext: no-c-format
-i18n("300 dpi, Draft, Color, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("300 dpi, Draft, Grayscale, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("300 dpi, Grayscale, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("300 dpi, Photo, Photo + Color Cartr., Premium Paper");
-// xgettext: no-c-format
-i18n("600x300 dpi, Best, Grayscale, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("Normal Color");
-// xgettext: no-c-format
-i18n("Best Quality Color");
-// xgettext: no-c-format
-i18n("Black and White");
-// xgettext: no-c-format
-i18n("Floyd-Steinberg Color");
-// xgettext: no-c-format
-i18n("Floyd-Steinberg Color (Low Memory)");
-// xgettext: no-c-format
-i18n("Floyd-Steinberg Gray");
-// xgettext: no-c-format
-i18n("Black correction (Cyan reduction)");
-// xgettext: no-c-format
-i18n("Ink Reduction");
-// xgettext: no-c-format
-i18n("25 %");
-// xgettext: no-c-format
-i18n("50 %");
-// xgettext: no-c-format
-i18n("No");
-// xgettext: no-c-format
-i18n("Draft (Economy)");
-// xgettext: no-c-format
-i18n("Draft Grayscale (Economy)");
-// xgettext: no-c-format
-i18n("Normal Grayscale");
-// xgettext: no-c-format
-i18n("High Quality");
-// xgettext: no-c-format
-i18n("High Quality Grayscale");
-// xgettext: no-c-format
-i18n("Photo");
-// xgettext: no-c-format
-i18n("Photo Grayscale");
-// xgettext: no-c-format
-i18n("C5");
-// xgettext: no-c-format
-i18n("Commercial 10");
-// xgettext: no-c-format
-i18n("DL");
-// xgettext: no-c-format
-i18n("B5 ISO");
-// xgettext: no-c-format
-i18n("B6 ISO");
-// xgettext: no-c-format
-i18n("B7 ISO");
-// xgettext: no-c-format
-i18n("B8 ISO");
-// xgettext: no-c-format
-i18n("B9 ISO");
-// xgettext: no-c-format
-i18n("B10 ISO");
-// xgettext: no-c-format
-i18n("Monarch Envelope");
-// xgettext: no-c-format
-i18n("Postcard");
-// xgettext: no-c-format
-i18n("C7-6");
-// xgettext: no-c-format
-i18n("Japanese long envelope #4");
-// xgettext: no-c-format
-i18n("Hagaki Card");
-// xgettext: no-c-format
-i18n("Small paperback");
-// xgettext: no-c-format
-i18n("Penguin small paperback");
-// xgettext: no-c-format
-i18n("A2 Invitation");
-// xgettext: no-c-format
-i18n("Epson 4x6 Photo Paper");
-// xgettext: no-c-format
-i18n("Japanese long envelope #3");
-// xgettext: no-c-format
-i18n("B6-C4");
-// xgettext: no-c-format
-i18n("Penguin large paperback");
-// xgettext: no-c-format
-i18n("Crown Quarto");
-// xgettext: no-c-format
-i18n("Large Crown Quarto");
-// xgettext: no-c-format
-i18n("RA4");
-// xgettext: no-c-format
-i18n("American foolscap");
-// xgettext: no-c-format
-i18n("Bond");
-// xgettext: no-c-format
-i18n("Glossy Photo");
-// xgettext: no-c-format
-i18n("Transparencies");
-// xgettext: no-c-format
-i18n("Ink Type");
-// xgettext: no-c-format
-i18n("Color + Photo Cartridges");
-// xgettext: no-c-format
-i18n("Four Color Standard");
-// xgettext: no-c-format
-i18n("stpGamma");
-// xgettext: no-c-format
-i18n("Density");
-// xgettext: no-c-format
-i18n("0.12");
-// xgettext: no-c-format
-i18n("0.14");
-// xgettext: no-c-format
-i18n("0.16");
-// xgettext: no-c-format
-i18n("0.18");
-// xgettext: no-c-format
-i18n("0.22");
-// xgettext: no-c-format
-i18n("0.24");
-// xgettext: no-c-format
-i18n("0.26");
-// xgettext: no-c-format
-i18n("0.28");
-// xgettext: no-c-format
-i18n("0.32");
-// xgettext: no-c-format
-i18n("0.34");
-// xgettext: no-c-format
-i18n("0.36");
-// xgettext: no-c-format
-i18n("0.38");
-// xgettext: no-c-format
-i18n("0.42");
-// xgettext: no-c-format
-i18n("0.44");
-// xgettext: no-c-format
-i18n("0.46");
-// xgettext: no-c-format
-i18n("0.48");
-// xgettext: no-c-format
-i18n("0.52");
-// xgettext: no-c-format
-i18n("0.54");
-// xgettext: no-c-format
-i18n("0.56");
-// xgettext: no-c-format
-i18n("0.58");
-// xgettext: no-c-format
-i18n("0.62");
-// xgettext: no-c-format
-i18n("0.64");
-// xgettext: no-c-format
-i18n("0.66");
-// xgettext: no-c-format
-i18n("0.68");
-// xgettext: no-c-format
-i18n("0.72");
-// xgettext: no-c-format
-i18n("0.74");
-// xgettext: no-c-format
-i18n("0.76");
-// xgettext: no-c-format
-i18n("0.78");
-// xgettext: no-c-format
-i18n("0.82");
-// xgettext: no-c-format
-i18n("0.84");
-// xgettext: no-c-format
-i18n("0.86");
-// xgettext: no-c-format
-i18n("0.88");
-// xgettext: no-c-format
-i18n("0.92");
-// xgettext: no-c-format
-i18n("0.94");
-// xgettext: no-c-format
-i18n("0.96");
-// xgettext: no-c-format
-i18n("0.98");
-// xgettext: no-c-format
-i18n("1.02");
-// xgettext: no-c-format
-i18n("1.04");
-// xgettext: no-c-format
-i18n("1.06");
-// xgettext: no-c-format
-i18n("1.08");
-// xgettext: no-c-format
-i18n("1.12");
-// xgettext: no-c-format
-i18n("1.14");
-// xgettext: no-c-format
-i18n("1.16");
-// xgettext: no-c-format
-i18n("1.18");
-// xgettext: no-c-format
-i18n("1.22");
-// xgettext: no-c-format
-i18n("1.24");
-// xgettext: no-c-format
-i18n("1.26");
-// xgettext: no-c-format
-i18n("1.28");
-// xgettext: no-c-format
-i18n("1.32");
-// xgettext: no-c-format
-i18n("1.34");
-// xgettext: no-c-format
-i18n("1.36");
-// xgettext: no-c-format
-i18n("1.38");
-// xgettext: no-c-format
-i18n("1.42");
-// xgettext: no-c-format
-i18n("1.44");
-// xgettext: no-c-format
-i18n("1.46");
-// xgettext: no-c-format
-i18n("1.48");
-// xgettext: no-c-format
-i18n("1.52");
-// xgettext: no-c-format
-i18n("1.54");
-// xgettext: no-c-format
-i18n("1.56");
-// xgettext: no-c-format
-i18n("1.58");
-// xgettext: no-c-format
-i18n("1.62");
-// xgettext: no-c-format
-i18n("1.64");
-// xgettext: no-c-format
-i18n("1.66");
-// xgettext: no-c-format
-i18n("1.68");
-// xgettext: no-c-format
-i18n("1.72");
-// xgettext: no-c-format
-i18n("1.74");
-// xgettext: no-c-format
-i18n("1.76");
-// xgettext: no-c-format
-i18n("1.78");
-// xgettext: no-c-format
-i18n("1.82");
-// xgettext: no-c-format
-i18n("1.84");
-// xgettext: no-c-format
-i18n("1.86");
-// xgettext: no-c-format
-i18n("1.88");
-// xgettext: no-c-format
-i18n("1.92");
-// xgettext: no-c-format
-i18n("1.94");
-// xgettext: no-c-format
-i18n("1.96");
-// xgettext: no-c-format
-i18n("1.98");
-// xgettext: no-c-format
-i18n("stpBrightness");
-// xgettext: no-c-format
-i18n("0.02");
-// xgettext: no-c-format
-i18n("0.04");
-// xgettext: no-c-format
-i18n("0.06");
-// xgettext: no-c-format
-i18n("0.08");
-// xgettext: no-c-format
-i18n("stpSaturation");
-// xgettext: no-c-format
-i18n("0.0");
-// xgettext: no-c-format
-i18n("0.1");
-// xgettext: no-c-format
-i18n("0.2");
-// xgettext: no-c-format
-i18n("0.3");
-// xgettext: no-c-format
-i18n("0.4");
-// xgettext: no-c-format
-i18n("0.5");
-// xgettext: no-c-format
-i18n("0.6");
-// xgettext: no-c-format
-i18n("0.7");
-// xgettext: no-c-format
-i18n("0.8");
-// xgettext: no-c-format
-i18n("0.9");
-// xgettext: no-c-format
-i18n("1.0");
-// xgettext: no-c-format
-i18n("1.1");
-// xgettext: no-c-format
-i18n("1.2");
-// xgettext: no-c-format
-i18n("1.3");
-// xgettext: no-c-format
-i18n("1.4");
-// xgettext: no-c-format
-i18n("1.5");
-// xgettext: no-c-format
-i18n("1.6");
-// xgettext: no-c-format
-i18n("1.7");
-// xgettext: no-c-format
-i18n("1.8");
-// xgettext: no-c-format
-i18n("1.9");
-// xgettext: no-c-format
-i18n("2.0");
-// xgettext: no-c-format
-i18n("2.1");
-// xgettext: no-c-format
-i18n("2.2");
-// xgettext: no-c-format
-i18n("2.3");
-// xgettext: no-c-format
-i18n("2.4");
-// xgettext: no-c-format
-i18n("2.5");
-// xgettext: no-c-format
-i18n("2.6");
-// xgettext: no-c-format
-i18n("2.7");
-// xgettext: no-c-format
-i18n("2.8");
-// xgettext: no-c-format
-i18n("2.9");
-// xgettext: no-c-format
-i18n("3.0");
-// xgettext: no-c-format
-i18n("3.1");
-// xgettext: no-c-format
-i18n("3.2");
-// xgettext: no-c-format
-i18n("3.3");
-// xgettext: no-c-format
-i18n("3.4");
-// xgettext: no-c-format
-i18n("3.5");
-// xgettext: no-c-format
-i18n("3.6");
-// xgettext: no-c-format
-i18n("3.7");
-// xgettext: no-c-format
-i18n("3.8");
-// xgettext: no-c-format
-i18n("3.9");
-// xgettext: no-c-format
-i18n("4.0");
-// xgettext: no-c-format
-i18n("4.1");
-// xgettext: no-c-format
-i18n("4.2");
-// xgettext: no-c-format
-i18n("4.3");
-// xgettext: no-c-format
-i18n("4.4");
-// xgettext: no-c-format
-i18n("4.5");
-// xgettext: no-c-format
-i18n("4.6");
-// xgettext: no-c-format
-i18n("4.7");
-// xgettext: no-c-format
-i18n("4.8");
-// xgettext: no-c-format
-i18n("4.9");
-// xgettext: no-c-format
-i18n("5.0");
-// xgettext: no-c-format
-i18n("5.1");
-// xgettext: no-c-format
-i18n("5.2");
-// xgettext: no-c-format
-i18n("5.3");
-// xgettext: no-c-format
-i18n("5.4");
-// xgettext: no-c-format
-i18n("5.5");
-// xgettext: no-c-format
-i18n("5.6");
-// xgettext: no-c-format
-i18n("5.7");
-// xgettext: no-c-format
-i18n("5.8");
-// xgettext: no-c-format
-i18n("5.9");
-// xgettext: no-c-format
-i18n("6.0");
-// xgettext: no-c-format
-i18n("6.1");
-// xgettext: no-c-format
-i18n("6.2");
-// xgettext: no-c-format
-i18n("6.3");
-// xgettext: no-c-format
-i18n("6.4");
-// xgettext: no-c-format
-i18n("6.5");
-// xgettext: no-c-format
-i18n("6.6");
-// xgettext: no-c-format
-i18n("6.7");
-// xgettext: no-c-format
-i18n("6.8");
-// xgettext: no-c-format
-i18n("6.9");
-// xgettext: no-c-format
-i18n("7.0");
-// xgettext: no-c-format
-i18n("7.1");
-// xgettext: no-c-format
-i18n("7.2");
-// xgettext: no-c-format
-i18n("7.3");
-// xgettext: no-c-format
-i18n("7.4");
-// xgettext: no-c-format
-i18n("7.5");
-// xgettext: no-c-format
-i18n("7.6");
-// xgettext: no-c-format
-i18n("7.7");
-// xgettext: no-c-format
-i18n("7.8");
-// xgettext: no-c-format
-i18n("7.9");
-// xgettext: no-c-format
-i18n("8.0");
-// xgettext: no-c-format
-i18n("8.1");
-// xgettext: no-c-format
-i18n("8.2");
-// xgettext: no-c-format
-i18n("8.3");
-// xgettext: no-c-format
-i18n("8.4");
-// xgettext: no-c-format
-i18n("8.5");
-// xgettext: no-c-format
-i18n("8.6");
-// xgettext: no-c-format
-i18n("8.7");
-// xgettext: no-c-format
-i18n("8.8");
-// xgettext: no-c-format
-i18n("8.9");
-// xgettext: no-c-format
-i18n("9.0");
-// xgettext: no-c-format
-i18n("Contrast Level");
-// xgettext: no-c-format
-i18n("150 x 150 DPI");
-// xgettext: no-c-format
-i18n("300 x 300 DPI");
-// xgettext: no-c-format
-i18n("600 x 300 DPI");
-// xgettext: no-c-format
-i18n("600 x 600 DPI");
-// xgettext: no-c-format
-i18n("Output Type");
-// xgettext: no-c-format
-i18n("Gray Scale");
-// xgettext: no-c-format
-i18n("Continuous-tone photographs");
-// xgettext: no-c-format
-i18n("Line art");
-// xgettext: no-c-format
-i18n("Primarily solid colors or smooth gradients");
-// xgettext: no-c-format
-i18n("Dither Algorithm");
-// xgettext: no-c-format
-i18n("EvenTone");
-// xgettext: no-c-format
-i18n("Fast");
-// xgettext: no-c-format
-i18n("Raw CMYK");
-// xgettext: no-c-format
-i18n("Not capable");
-// xgettext: no-c-format
-i18n("Printer Default");
-// xgettext: no-c-format
-i18n("GhostScript pre-filtering");
-// xgettext: no-c-format
-i18n("Embed GhostScript fonts only");
-// xgettext: no-c-format
-i18n("Convert to PS level 1");
-// xgettext: no-c-format
-i18n("Convert to PS level 2");
-// xgettext: no-c-format
-i18n("No pre-filtering");
-// xgettext: no-c-format
-i18n("160x72 dpi");
-// xgettext: no-c-format
-i18n("160x144 dpi");
-// xgettext: no-c-format
-i18n("320x216 dpi");
-// xgettext: no-c-format
-i18n("Input Slot");
-// xgettext: no-c-format
-i18n("Standard");
-// xgettext: no-c-format
-i18n("Printer default");
-// xgettext: no-c-format
-i18n("PageSize");
-// xgettext: no-c-format
-i18n("Tabloid");
-// xgettext: no-c-format
-i18n("SRA4");
-// xgettext: no-c-format
-i18n("C4");
-// xgettext: no-c-format
-i18n("ArchA");
-// xgettext: no-c-format
-i18n("European foolscap");
-// xgettext: no-c-format
-i18n("Large Crown Octavo");
-// xgettext: no-c-format
-i18n("Japanese Kaku envelope #4");
-// xgettext: no-c-format
-i18n("ColorModel");
-// xgettext: no-c-format
-i18n("Black & White");
-// xgettext: no-c-format
-i18n("Back Print Film");
-// xgettext: no-c-format
-i18n("Fabric Sheets");
-// xgettext: no-c-format
-i18n("Envelope");
-// xgettext: no-c-format
-i18n("High Resolution Paper");
-// xgettext: no-c-format
-i18n("T-Shirt Transfers");
-// xgettext: no-c-format
-i18n("High Gloss Film");
-// xgettext: no-c-format
-i18n("Glossy Photo Paper");
-// xgettext: no-c-format
-i18n("Glossy Photo Cards");
-// xgettext: no-c-format
-i18n("Photo Paper Pro");
-// xgettext: no-c-format
-i18n("Other");
-// xgettext: no-c-format
-i18n("Auto Sheet Feeder");
-// xgettext: no-c-format
-i18n("Manual with Pause");
-// xgettext: no-c-format
-i18n("Manual without Pause");
-// xgettext: no-c-format
-i18n("90x90 DPI");
-// xgettext: no-c-format
-i18n("180x180 DPI");
-// xgettext: no-c-format
-i18n("360x360 DPI");
-// xgettext: no-c-format
-i18n("360x360 DPI DMT");
-// xgettext: no-c-format
-i18n("720x360 DPI");
-// xgettext: no-c-format
-i18n("Line Art");
-// xgettext: no-c-format
-i18n("Solid Colors");
-// xgettext: no-c-format
-i18n("Photograph");
-// xgettext: no-c-format
-i18n("Black");
-// xgettext: no-c-format
-i18n("Brightness");
-// xgettext: no-c-format
-i18n("0.000");
-// xgettext: no-c-format
-i18n("0.050");
-// xgettext: no-c-format
-i18n("0.100");
-// xgettext: no-c-format
-i18n("0.150");
-// xgettext: no-c-format
-i18n("0.200");
-// xgettext: no-c-format
-i18n("0.250");
-// xgettext: no-c-format
-i18n("0.300");
-// xgettext: no-c-format
-i18n("0.350");
-// xgettext: no-c-format
-i18n("0.400");
-// xgettext: no-c-format
-i18n("0.450");
-// xgettext: no-c-format
-i18n("0.500");
-// xgettext: no-c-format
-i18n("0.550");
-// xgettext: no-c-format
-i18n("0.600");
-// xgettext: no-c-format
-i18n("0.650");
-// xgettext: no-c-format
-i18n("0.700");
-// xgettext: no-c-format
-i18n("0.750");
-// xgettext: no-c-format
-i18n("0.800");
-// xgettext: no-c-format
-i18n("0.850");
-// xgettext: no-c-format
-i18n("0.900");
-// xgettext: no-c-format
-i18n("0.950");
-// xgettext: no-c-format
-i18n("1.000");
-// xgettext: no-c-format
-i18n("1.050");
-// xgettext: no-c-format
-i18n("1.100");
-// xgettext: no-c-format
-i18n("1.150");
-// xgettext: no-c-format
-i18n("1.200");
-// xgettext: no-c-format
-i18n("1.250");
-// xgettext: no-c-format
-i18n("1.300");
-// xgettext: no-c-format
-i18n("1.350");
-// xgettext: no-c-format
-i18n("1.400");
-// xgettext: no-c-format
-i18n("1.450");
-// xgettext: no-c-format
-i18n("1.500");
-// xgettext: no-c-format
-i18n("1.550");
-// xgettext: no-c-format
-i18n("1.600");
-// xgettext: no-c-format
-i18n("1.650");
-// xgettext: no-c-format
-i18n("1.700");
-// xgettext: no-c-format
-i18n("1.750");
-// xgettext: no-c-format
-i18n("1.800");
-// xgettext: no-c-format
-i18n("1.850");
-// xgettext: no-c-format
-i18n("1.900");
-// xgettext: no-c-format
-i18n("1.950");
-// xgettext: no-c-format
-i18n("2.000");
-// xgettext: no-c-format
-i18n("Contrast");
-// xgettext: no-c-format
-i18n("2.050");
-// xgettext: no-c-format
-i18n("2.100");
-// xgettext: no-c-format
-i18n("2.150");
-// xgettext: no-c-format
-i18n("2.200");
-// xgettext: no-c-format
-i18n("2.250");
-// xgettext: no-c-format
-i18n("2.300");
-// xgettext: no-c-format
-i18n("2.350");
-// xgettext: no-c-format
-i18n("2.400");
-// xgettext: no-c-format
-i18n("2.450");
-// xgettext: no-c-format
-i18n("2.500");
-// xgettext: no-c-format
-i18n("2.550");
-// xgettext: no-c-format
-i18n("2.600");
-// xgettext: no-c-format
-i18n("2.650");
-// xgettext: no-c-format
-i18n("2.700");
-// xgettext: no-c-format
-i18n("2.750");
-// xgettext: no-c-format
-i18n("2.800");
-// xgettext: no-c-format
-i18n("2.850");
-// xgettext: no-c-format
-i18n("2.900");
-// xgettext: no-c-format
-i18n("2.950");
-// xgettext: no-c-format
-i18n("3.000");
-// xgettext: no-c-format
-i18n("3.050");
-// xgettext: no-c-format
-i18n("3.100");
-// xgettext: no-c-format
-i18n("3.150");
-// xgettext: no-c-format
-i18n("3.200");
-// xgettext: no-c-format
-i18n("3.250");
-// xgettext: no-c-format
-i18n("3.300");
-// xgettext: no-c-format
-i18n("3.350");
-// xgettext: no-c-format
-i18n("3.400");
-// xgettext: no-c-format
-i18n("3.450");
-// xgettext: no-c-format
-i18n("3.500");
-// xgettext: no-c-format
-i18n("3.550");
-// xgettext: no-c-format
-i18n("3.600");
-// xgettext: no-c-format
-i18n("3.650");
-// xgettext: no-c-format
-i18n("3.700");
-// xgettext: no-c-format
-i18n("3.750");
-// xgettext: no-c-format
-i18n("3.800");
-// xgettext: no-c-format
-i18n("3.850");
-// xgettext: no-c-format
-i18n("3.900");
-// xgettext: no-c-format
-i18n("3.950");
-// xgettext: no-c-format
-i18n("4.000");
-// xgettext: no-c-format
-i18n("Cyan");
-// xgettext: no-c-format
-i18n("Magenta");
-// xgettext: no-c-format
-i18n("Yellow");
-// xgettext: no-c-format
-i18n("Saturation");
-// xgettext: no-c-format
-i18n("4.050");
-// xgettext: no-c-format
-i18n("4.100");
-// xgettext: no-c-format
-i18n("4.150");
-// xgettext: no-c-format
-i18n("4.200");
-// xgettext: no-c-format
-i18n("4.250");
-// xgettext: no-c-format
-i18n("4.300");
-// xgettext: no-c-format
-i18n("4.350");
-// xgettext: no-c-format
-i18n("4.400");
-// xgettext: no-c-format
-i18n("4.450");
-// xgettext: no-c-format
-i18n("4.500");
-// xgettext: no-c-format
-i18n("4.550");
-// xgettext: no-c-format
-i18n("4.600");
-// xgettext: no-c-format
-i18n("4.650");
-// xgettext: no-c-format
-i18n("4.700");
-// xgettext: no-c-format
-i18n("4.750");
-// xgettext: no-c-format
-i18n("4.800");
-// xgettext: no-c-format
-i18n("4.850");
-// xgettext: no-c-format
-i18n("4.900");
-// xgettext: no-c-format
-i18n("4.950");
-// xgettext: no-c-format
-i18n("5.000");
-// xgettext: no-c-format
-i18n("5.050");
-// xgettext: no-c-format
-i18n("5.100");
-// xgettext: no-c-format
-i18n("5.150");
-// xgettext: no-c-format
-i18n("5.200");
-// xgettext: no-c-format
-i18n("5.250");
-// xgettext: no-c-format
-i18n("5.300");
-// xgettext: no-c-format
-i18n("5.350");
-// xgettext: no-c-format
-i18n("5.400");
-// xgettext: no-c-format
-i18n("5.450");
-// xgettext: no-c-format
-i18n("5.500");
-// xgettext: no-c-format
-i18n("5.550");
-// xgettext: no-c-format
-i18n("5.600");
-// xgettext: no-c-format
-i18n("5.650");
-// xgettext: no-c-format
-i18n("5.700");
-// xgettext: no-c-format
-i18n("5.750");
-// xgettext: no-c-format
-i18n("5.800");
-// xgettext: no-c-format
-i18n("5.850");
-// xgettext: no-c-format
-i18n("5.900");
-// xgettext: no-c-format
-i18n("5.950");
-// xgettext: no-c-format
-i18n("6.000");
-// xgettext: no-c-format
-i18n("6.050");
-// xgettext: no-c-format
-i18n("6.100");
-// xgettext: no-c-format
-i18n("6.150");
-// xgettext: no-c-format
-i18n("6.200");
-// xgettext: no-c-format
-i18n("6.250");
-// xgettext: no-c-format
-i18n("6.300");
-// xgettext: no-c-format
-i18n("6.350");
-// xgettext: no-c-format
-i18n("6.400");
-// xgettext: no-c-format
-i18n("6.450");
-// xgettext: no-c-format
-i18n("6.500");
-// xgettext: no-c-format
-i18n("6.550");
-// xgettext: no-c-format
-i18n("6.600");
-// xgettext: no-c-format
-i18n("6.650");
-// xgettext: no-c-format
-i18n("6.700");
-// xgettext: no-c-format
-i18n("6.750");
-// xgettext: no-c-format
-i18n("6.800");
-// xgettext: no-c-format
-i18n("6.850");
-// xgettext: no-c-format
-i18n("6.900");
-// xgettext: no-c-format
-i18n("6.950");
-// xgettext: no-c-format
-i18n("7.000");
-// xgettext: no-c-format
-i18n("7.050");
-// xgettext: no-c-format
-i18n("7.100");
-// xgettext: no-c-format
-i18n("7.150");
-// xgettext: no-c-format
-i18n("7.200");
-// xgettext: no-c-format
-i18n("7.250");
-// xgettext: no-c-format
-i18n("7.300");
-// xgettext: no-c-format
-i18n("7.350");
-// xgettext: no-c-format
-i18n("7.400");
-// xgettext: no-c-format
-i18n("7.450");
-// xgettext: no-c-format
-i18n("7.500");
-// xgettext: no-c-format
-i18n("7.550");
-// xgettext: no-c-format
-i18n("7.600");
-// xgettext: no-c-format
-i18n("7.650");
-// xgettext: no-c-format
-i18n("7.700");
-// xgettext: no-c-format
-i18n("7.750");
-// xgettext: no-c-format
-i18n("7.800");
-// xgettext: no-c-format
-i18n("7.850");
-// xgettext: no-c-format
-i18n("7.900");
-// xgettext: no-c-format
-i18n("7.950");
-// xgettext: no-c-format
-i18n("8.000");
-// xgettext: no-c-format
-i18n("8.050");
-// xgettext: no-c-format
-i18n("8.100");
-// xgettext: no-c-format
-i18n("8.150");
-// xgettext: no-c-format
-i18n("8.200");
-// xgettext: no-c-format
-i18n("8.250");
-// xgettext: no-c-format
-i18n("8.300");
-// xgettext: no-c-format
-i18n("8.350");
-// xgettext: no-c-format
-i18n("8.400");
-// xgettext: no-c-format
-i18n("8.450");
-// xgettext: no-c-format
-i18n("8.500");
-// xgettext: no-c-format
-i18n("8.550");
-// xgettext: no-c-format
-i18n("8.600");
-// xgettext: no-c-format
-i18n("8.650");
-// xgettext: no-c-format
-i18n("8.700");
-// xgettext: no-c-format
-i18n("8.750");
-// xgettext: no-c-format
-i18n("8.800");
-// xgettext: no-c-format
-i18n("8.850");
-// xgettext: no-c-format
-i18n("8.900");
-// xgettext: no-c-format
-i18n("8.950");
-// xgettext: no-c-format
-i18n("9.000");
-// xgettext: no-c-format
-i18n("720x720 DPI");
-// xgettext: no-c-format
-i18n("1440x720 DPI");
-// xgettext: no-c-format
-i18n("Photo CcMmY Color");
-// xgettext: no-c-format
-i18n("Photo CcMmYK Color");
-// xgettext: no-c-format
-i18n("1200x1200 DPI");
-// xgettext: no-c-format
-i18n("12x18");
-// xgettext: no-c-format
-i18n("Super B 13x19");
-// xgettext: no-c-format
-i18n("20x24");
-// xgettext: no-c-format
-i18n("20x30");
-// xgettext: no-c-format
-i18n("22x30");
-// xgettext: no-c-format
-i18n("24x30");
-// xgettext: no-c-format
-i18n("24x36");
-// xgettext: no-c-format
-i18n("30x40");
-// xgettext: no-c-format
-i18n("A0");
-// xgettext: no-c-format
-i18n("A1");
-// xgettext: no-c-format
-i18n("A2");
-// xgettext: no-c-format
-i18n("RA0");
-// xgettext: no-c-format
-i18n("RA1");
-// xgettext: no-c-format
-i18n("RA2");
-// xgettext: no-c-format
-i18n("RA3");
-// xgettext: no-c-format
-i18n("SRA0");
-// xgettext: no-c-format
-i18n("SRA1");
-// xgettext: no-c-format
-i18n("SRA2");
-// xgettext: no-c-format
-i18n("B0 ISO");
-// xgettext: no-c-format
-i18n("B1 ISO");
-// xgettext: no-c-format
-i18n("B2 ISO");
-// xgettext: no-c-format
-i18n("B3 ISO");
-// xgettext: no-c-format
-i18n("B0 JIS");
-// xgettext: no-c-format
-i18n("B1 JIS");
-// xgettext: no-c-format
-i18n("B2 JIS");
-// xgettext: no-c-format
-i18n("B3 JIS");
-// xgettext: no-c-format
-i18n("C0");
-// xgettext: no-c-format
-i18n("C1");
-// xgettext: no-c-format
-i18n("C2");
-// xgettext: no-c-format
-i18n("C3");
-// xgettext: no-c-format
-i18n("ArchA Transverse");
-// xgettext: no-c-format
-i18n("ArchB");
-// xgettext: no-c-format
-i18n("ArchB Transverse");
-// xgettext: no-c-format
-i18n("ArchC");
-// xgettext: no-c-format
-i18n("ArchC Transverse");
-// xgettext: no-c-format
-i18n("ArchD");
-// xgettext: no-c-format
-i18n("ArchD Transverse");
-// xgettext: no-c-format
-i18n("ArchE");
-// xgettext: no-c-format
-i18n("Plain Paper Fast Load");
-// xgettext: no-c-format
-i18n("Glossy Film");
-// xgettext: no-c-format
-i18n("Envelopes");
-// xgettext: no-c-format
-i18n("Back Light Film");
-// xgettext: no-c-format
-i18n("Matte Paper");
-// xgettext: no-c-format
-i18n("Inkjet Paper");
-// xgettext: no-c-format
-i18n("Photo Quality Inkjet Paper");
-// xgettext: no-c-format
-i18n("Premium Glossy Photo Paper");
-// xgettext: no-c-format
-i18n("Premium Luster Photo Paper");
-// xgettext: no-c-format
-i18n("Photo Quality Glossy Paper");
-// xgettext: no-c-format
-i18n("Ilford Heavy Paper");
-// xgettext: no-c-format
-i18n("ColorLife Paper");
-// xgettext: no-c-format
-i18n("Roll Feed");
-// xgettext: no-c-format
-i18n("360 x 90 DPI Fast Economy Draft");
-// xgettext: no-c-format
-i18n("360 x 120 DPI Economy Draft");
-// xgettext: no-c-format
-i18n("180 DPI Economy Draft");
-// xgettext: no-c-format
-i18n("360 x 240 DPI Draft");
-// xgettext: no-c-format
-i18n("360 x 180 DPI Draft");
-// xgettext: no-c-format
-i18n("360 DPI Microweave");
-// xgettext: no-c-format
-i18n("360 DPI Microweave Unidirectional");
-// xgettext: no-c-format
-i18n("360 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("360 DPI Full Overlap");
-// xgettext: no-c-format
-i18n("360 DPI Full Overlap Unidirectional");
-// xgettext: no-c-format
-i18n("360 DPI FOL2");
-// xgettext: no-c-format
-i18n("360 DPI FOL2 Unidirectional");
-// xgettext: no-c-format
-i18n("360 DPI MW2");
-// xgettext: no-c-format
-i18n("360 DPI MW2 Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI");
-// xgettext: no-c-format
-i18n("720 x 360 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI Microweave");
-// xgettext: no-c-format
-i18n("720 x 360 DPI Microweave Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI FOL");
-// xgettext: no-c-format
-i18n("720 x 360 DPI FOL Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI FOL2");
-// xgettext: no-c-format
-i18n("720 x 360 DPI FOL2 Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI MW2");
-// xgettext: no-c-format
-i18n("720 x 360 DPI MW2 Unidirectional");
-// xgettext: no-c-format
-i18n("720 DPI Microweave");
-// xgettext: no-c-format
-i18n("720 DPI Microweave Unidirectional");
-// xgettext: no-c-format
-i18n("720 DPI Full Overlap");
-// xgettext: no-c-format
-i18n("720 DPI Full Overlap Unidirectional");
-// xgettext: no-c-format
-i18n("720 DPI Four Pass");
-// xgettext: no-c-format
-i18n("720 DPI Four Pass Unidirectional");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Microweave");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Microweave Unidirectional");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI FOL");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI FOL Unidirectional");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Four Pass");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Four Pass Unidirectional");
-// xgettext: no-c-format
-i18n("Six Color Photo");
-// xgettext: no-c-format
-i18n("Five Color Photo Composite");
-// xgettext: no-c-format
-i18n("Three Color Composite");
-// xgettext: no-c-format
-i18n("Quadtone");
-// xgettext: no-c-format
-i18n("720 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("720 DPI High Quality");
-// xgettext: no-c-format
-i18n("720 DPI High Quality Unidirectional");
-// xgettext: no-c-format
-i18n("720 DPI Highest Quality");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Highest Quality");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("Roll Feed (cut each page)");
-// xgettext: no-c-format
-i18n("Roll Feed (do not cut)");
-// xgettext: no-c-format
-i18n("1440 x 1440 DPI");
-// xgettext: no-c-format
-i18n("1440 x 1440 DPI Highest Quality");
-// xgettext: no-c-format
-i18n("2880 x 1440 DPI");
-// xgettext: no-c-format
-i18n("Seven Color Photo");
-// xgettext: no-c-format
-i18n("Two Level Grayscale");
-// xgettext: no-c-format
-i18n("Cut Sheet Bin 1");
-// xgettext: no-c-format
-i18n("Cut Sheet Bin 2");
-// xgettext: no-c-format
-i18n("Cut Sheet Autoselect");
-// xgettext: no-c-format
-i18n("Manual Selection");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI Microweave");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI Microweave Unidirectional");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI FOL");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI FOL Unidirectional");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI Four Pass");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI Four Pass Unidirectional");
-// xgettext: no-c-format
-i18n("1440 x 1440 DPI Microweave");
-// xgettext: no-c-format
-i18n("1440 x 1440 DPI Microweave Unidirectional");
-// xgettext: no-c-format
-i18n("1440 x 1440 DPI FOL");
-// xgettext: no-c-format
-i18n("1440 x 1440 DPI FOL Unidirectional");
-// xgettext: no-c-format
-i18n("1440 x 1440 DPI Four Pass");
-// xgettext: no-c-format
-i18n("1440 x 1440 DPI Four Pass Unidirectional");
-// xgettext: no-c-format
-i18n("2880 x 1440 DPI Microweave");
-// xgettext: no-c-format
-i18n("2880 x 1440 DPI Microweave Unidirectional");
-// xgettext: no-c-format
-i18n("2880 x 1440 DPI FOL");
-// xgettext: no-c-format
-i18n("2880 x 1440 DPI FOL Unidirectional");
-// xgettext: no-c-format
-i18n("2880 x 1440 DPI Four Pass");
-// xgettext: no-c-format
-i18n("2880 x 1440 DPI Four Pass Unidirectional");
-// xgettext: no-c-format
-i18n("Seven Color Enhanced");
-// xgettext: no-c-format
-i18n("Six Color Enhanced Composite");
-// xgettext: no-c-format
-i18n("Plain");
-// xgettext: no-c-format
-i18n("300 DPI x 600 DPI");
-// xgettext: no-c-format
-i18n("600 DPI high quality");
-// xgettext: no-c-format
-i18n("600 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("1200 DPI high quality");
-// xgettext: no-c-format
-i18n("1200 DPI highest quality");
-// xgettext: no-c-format
-i18n("1200 DPI  Unidirectional");
-// xgettext: no-c-format
-i18n("2400 DPI x 1200 DPI");
-// xgettext: no-c-format
-i18n("2400 DPI x 1200 DPI high quality");
-// xgettext: no-c-format
-i18n("2400 DPI x 1200 DPI highest quality");
-// xgettext: no-c-format
-i18n("600x600 DPI monochrome");
-// xgettext: no-c-format
-i18n("Quick-dry Photo");
-// xgettext: no-c-format
-i18n("Quick-dry Transparency");
-// xgettext: no-c-format
-i18n("Portable Sheet Feeder");
-// xgettext: no-c-format
-i18n("Desktop Sheet Feeder");
-// xgettext: no-c-format
-i18n("Color + Black Cartridges");
-// xgettext: no-c-format
-i18n("Upper Tray");
-// xgettext: no-c-format
-i18n("Lower Tray");
-// xgettext: no-c-format
-i18n("Dual");
-// xgettext: no-c-format
-i18n("Thicker Paper");
-// xgettext: no-c-format
-i18n("Thin Paper");
-// xgettext: no-c-format
-i18n("Toner Saving");
-// xgettext: no-c-format
-i18n("High (50%)");
-// xgettext: no-c-format
-i18n("Low (25%)");
-// xgettext: no-c-format
-i18n("Standard printing");
-// xgettext: no-c-format
-i18n("Floyd-Steinberg dithered printing");
-// xgettext: no-c-format
-i18n("Tray 5");
-// xgettext: no-c-format
-i18n("2400x600 DPI");
-// xgettext: no-c-format
-i18n("Draft Grayscale");
-// xgettext: no-c-format
-i18n("Printer Model");
-// xgettext: no-c-format
-i18n("HP LaserJet II series");
-// xgettext: no-c-format
-i18n("HP LaserJet III series");
-// xgettext: no-c-format
-i18n("8K");
-// xgettext: no-c-format
-i18n("Large Capacity Tray");
-// xgettext: no-c-format
-i18n("Multi Purpose Tray");
-// xgettext: no-c-format
-i18n("300 dpi, Draft, Grayscale, Black Cartr.");
-// xgettext: no-c-format
-i18n("300 dpi, Grayscale, Black Cartr.");
-// xgettext: no-c-format
-i18n("600 dpi, Grayscale, Black Cartr.");
-// xgettext: no-c-format
-i18n("180x360 dpi");
-// xgettext: no-c-format
-i18n("360x360 dpi");
-// xgettext: no-c-format
-i18n("180 x 180 DPI");
-// xgettext: no-c-format
-i18n("360 x 360 DPI");
-// xgettext: no-c-format
-i18n("Plain paper");
-// xgettext: no-c-format
-i18n("Bond paper");
-// xgettext: no-c-format
-i18n("Media Weight");
-// xgettext: no-c-format
-i18n("Normal paper");
-// xgettext: no-c-format
-i18n("Thick paper");
-// xgettext: no-c-format
-i18n("90 DPI");
-// xgettext: no-c-format
-i18n("Ghostscript Bits Per Pixel");
-// xgettext: no-c-format
-i18n("Monochrome (1bpp)");
-// xgettext: no-c-format
-i18n("CMYK with Ghostscript dithering (8bpp)");
-// xgettext: no-c-format
-i18n("CMYK with Ghostscript FS dithering (16bpp)");
-// xgettext: no-c-format
-i18n("CMYK with FS dithering (24 bpp)");
-// xgettext: no-c-format
-i18n("CMYK with FS dithering (32 bpp)");
-// xgettext: no-c-format
-i18n("Color Model");
-// xgettext: no-c-format
-i18n("Four-color CMYK");
-// xgettext: no-c-format
-i18n("Greyscale");
-// xgettext: no-c-format
-i18n("Three-color RGB");
-// xgettext: no-c-format
-i18n("Colours to be used");
-// xgettext: no-c-format
-i18n("Cyan only");
-// xgettext: no-c-format
-i18n("Cyan, Black");
-// xgettext: no-c-format
-i18n("Cyan, Magenta");
-// xgettext: no-c-format
-i18n("Cyan, Magenta, Black");
-// xgettext: no-c-format
-i18n("Cyan, Magenta, Yellow");
-// xgettext: no-c-format
-i18n("Cyan, Magenta, Yellow, Black");
-// xgettext: no-c-format
-i18n("Cyan, Yellow");
-// xgettext: no-c-format
-i18n("Cyan, Yellow, Black");
-// xgettext: no-c-format
-i18n("Black only");
-// xgettext: no-c-format
-i18n("Black for any colour");
-// xgettext: no-c-format
-i18n("Magenta only");
-// xgettext: no-c-format
-i18n("Magenta, Black");
-// xgettext: no-c-format
-i18n("Magenta, Yellow");
-// xgettext: no-c-format
-i18n("Magenta, Yellow, Black");
-// xgettext: no-c-format
-i18n("Yellow only");
-// xgettext: no-c-format
-i18n("Yellow, Black");
-// xgettext: no-c-format
-i18n("90 x 90 DPI");
-// xgettext: no-c-format
-i18n("Resolution, Media Type");
-// xgettext: no-c-format
-i18n("360x360dpi, back print film");
-// xgettext: no-c-format
-i18n("360x360dpi, coated paper");
-// xgettext: no-c-format
-i18n("360x360dpi, fabric sheet");
-// xgettext: no-c-format
-i18n("360x360dpi, glossy paper");
-// xgettext: no-c-format
-i18n("360x360dpi, high gloss film");
-// xgettext: no-c-format
-i18n("360x360dpi, high resolution paper");
-// xgettext: no-c-format
-i18n("360x360dpi, plain paper");
-// xgettext: no-c-format
-i18n("360x360dpi, plain paper, high speed");
-// xgettext: no-c-format
-i18n("360x360dpi, transparency film");
-// xgettext: no-c-format
-i18n("Very High Quality");
-// xgettext: no-c-format
-i18n("Very High Quality Grayscale");
-// xgettext: no-c-format
-i18n("720 x 720 DPI");
-// xgettext: no-c-format
-i18n("360 dpi");
-// xgettext: no-c-format
-i18n("720 dpi");
-// xgettext: no-c-format
-i18n("Low Quality");
-// xgettext: no-c-format
-i18n("720x720dpi, back print film");
-// xgettext: no-c-format
-i18n("720x720dpi, coated paper");
-// xgettext: no-c-format
-i18n("720x720dpi, glossy paper");
-// xgettext: no-c-format
-i18n("720x720dpi, high-gloss paper");
-// xgettext: no-c-format
-i18n("720x720dpi, high resolution paper");
-// xgettext: no-c-format
-i18n("720x720dpi, plain paper");
-// xgettext: no-c-format
-i18n("720x720dpi, transparency film");
-// xgettext: no-c-format
-i18n("1200 x 600 DPI");
-// xgettext: no-c-format
-i18n("Resolution, Quality, Media Type");
-// xgettext: no-c-format
-i18n("600x600dpi, iron-on transfer sheets, normal quality");
-// xgettext: no-c-format
-i18n("600x600dpi, plain paper, normal quality");
-// xgettext: no-c-format
-i18n("600x600dpi, transparencies, normal quality");
-// xgettext: no-c-format
-i18n("1200x1200dpi, glossy photo cards, high quality");
-// xgettext: no-c-format
-i18n("1200x1200dpi, high gloss photo paper, high quality");
-// xgettext: no-c-format
-i18n("1200x1200dpi, professional photo paper, highest quality");
-// xgettext: no-c-format
-i18n("1200 x 1200 DPI");
-// xgettext: no-c-format
-i18n("Number of Copies");
-// xgettext: no-c-format
-i18n("REt Setting");
-// xgettext: no-c-format
-i18n("Halftoning");
-// xgettext: no-c-format
-i18n("HP LaserJet 4L");
-// xgettext: no-c-format
-i18n("Shift output horizontally (in 1/300 inch)");
-// xgettext: no-c-format
-i18n("Shift output vertically (in 1/300 inch)");
-// xgettext: no-c-format
-i18n("Full Paint");
-// xgettext: no-c-format
-i18n("FullPaint");
-// xgettext: no-c-format
-i18n("PartialPaint");
-// xgettext: no-c-format
-i18n("Printer's paper size");
-// xgettext: no-c-format
-i18n("IgnoreSize");
-// xgettext: no-c-format
-i18n("RequireSize");
-// xgettext: no-c-format
-i18n("240x240 DPI");
-// xgettext: no-c-format
-i18n("300x300 dpi");
-// xgettext: no-c-format
-i18n("300x600 dpi");
-// xgettext: no-c-format
-i18n("600x600 dpi");
-// xgettext: no-c-format
-i18n("600x1200 dpi");
-// xgettext: no-c-format
-i18n("1200x1200 dpi");
-// xgettext: no-c-format
-i18n("Head Separation");
-// xgettext: no-c-format
-i18n("300x600 DPI");
-// xgettext: no-c-format
-i18n("300x1200 DPI");
-// xgettext: no-c-format
-i18n("600x1200 DPI");
-// xgettext: no-c-format
-i18n("1200x300 DPI");
-// xgettext: no-c-format
-i18n("Photo Quality Colour (6-ink)");
-// xgettext: no-c-format
-i18n("Normal Quality Colour (4-ink)");
-// xgettext: no-c-format
-i18n("Bidirectional printing");
-// xgettext: no-c-format
-i18n("off");
-// xgettext: no-c-format
-i18n("on");
-// xgettext: no-c-format
-i18n("Horz. align. betw. cartr.");
-// xgettext: no-c-format
-i18n("Vert. align. betw. cartr.");
-// xgettext: no-c-format
-i18n("Distance even/odd nozzles left cartr.");
-// xgettext: no-c-format
-i18n("Distance even/odd nozzles right cartr.");
-// xgettext: no-c-format
-i18n("Number of passes per line");
-// xgettext: no-c-format
-i18n("Paper Source");
-// xgettext: no-c-format
-i18n("Tray 8");
-// xgettext: no-c-format
-i18n("Tray 9");
-// xgettext: no-c-format
-i18n("Tray 10");
-// xgettext: no-c-format
-i18n("Tray 11");
-// xgettext: no-c-format
-i18n("Tray 12");
-// xgettext: no-c-format
-i18n("Tray 13");
-// xgettext: no-c-format
-i18n("Tray 14");
-// xgettext: no-c-format
-i18n("Tray 15");
-// xgettext: no-c-format
-i18n("Page Output");
-// xgettext: no-c-format
-i18n("FaceUp");
-// xgettext: no-c-format
-i18n("FaceDown");
-// xgettext: no-c-format
-i18n("Thick Paper/Card Board");
-// xgettext: no-c-format
-i18n("Toner Density");
-// xgettext: no-c-format
-i18n("TonerSaving");
-// xgettext: no-c-format
-i18n("Output Order");
-// xgettext: no-c-format
-i18n("Collate");
-// xgettext: no-c-format
-i18n("Orientation");
-// xgettext: no-c-format
-i18n("Landscape");
-// xgettext: no-c-format
-i18n("Portrait");
-// xgettext: no-c-format
-i18n("RIT Control");
-// xgettext: no-c-format
-i18n("RITOff");
-// xgettext: no-c-format
-i18n("RITOn");
-// xgettext: no-c-format
-i18n("Monochrome, fast");
-// xgettext: no-c-format
-i18n("Monochrome, Floyd-Steinberg");
-// xgettext: no-c-format
-i18n("Head motion");
-// xgettext: no-c-format
-i18n("Unidirectional");
-// xgettext: no-c-format
-i18n("Bidirectional");
-// xgettext: no-c-format
-i18n("Weaving");
-// xgettext: no-c-format
-i18n("Microweave (Printer internal)");
-// xgettext: no-c-format
-i18n("Softweave (Driver internal)");
-// xgettext: no-c-format
-i18n("ESC/P2 Encoding");
-// xgettext: no-c-format
-i18n("Delta Row");
-// xgettext: no-c-format
-i18n("Run Length");
-// xgettext: no-c-format
-i18n("Uncompressed");
-// xgettext: no-c-format
-i18n("Preconfiguration file");
-// xgettext: no-c-format
-i18n("stcolor");
-// xgettext: no-c-format
-i18n("none");
-// xgettext: no-c-format
-i18n("Initialization values for dithering");
-// xgettext: no-c-format
-i18n("Uniform");
-// xgettext: no-c-format
-i18n("Random");
-// xgettext: no-c-format
-i18n("360 x 120 DPI");
-// xgettext: no-c-format
-i18n("360 x 240 DPI");
-// xgettext: no-c-format
-i18n("360 x 180 DPI");
-// xgettext: no-c-format
-i18n("360 x 90 DPI");
-// xgettext: no-c-format
-i18n("360x360dpi, 4-bit, PostScript halftoning, weaved");
-// xgettext: no-c-format
-i18n("360x360dpi, 32-bit CMYK");
-// xgettext: no-c-format
-i18n("720x720dpi, 32-bit CMYK, weaved");
-// xgettext: no-c-format
-i18n("Colour, Floyd-Steinberg, CMYK, better");
-// xgettext: no-c-format
-i18n("Colour, fast, CMYK");
-// xgettext: no-c-format
-i18n("Colour, modif. Floyd-Steinberg, CMYK, faster");
-// xgettext: no-c-format
-i18n("Colour, fast, RGB");
-// xgettext: no-c-format
-i18n("Colour, Floyd-Steinberg, RGB");
-// xgettext: no-c-format
-i18n("Colour, Floyd-Steinberg, CMYK, simpler");
-// xgettext: no-c-format
-i18n("Colour, Stefan-Singer algorithm, RGB");
-// xgettext: no-c-format
-i18n("360 dpi, plain paper");
-// xgettext: no-c-format
-i18n("720 dpi, plain paper");
-// xgettext: no-c-format
-i18n("1440x720dpi, inkjet paper");
-// xgettext: no-c-format
-i18n("Resolution, Color Mode, Media Type");
-// xgettext: no-c-format
-i18n("360x360dpi, plain paper, grayscale");
-// xgettext: no-c-format
-i18n("720x720dpi, inkjet paper");
-// xgettext: no-c-format
-i18n("720x720dpi, plain paper, grayscale");
-// xgettext: no-c-format
-i18n("1440x720dpi, inkjet paper, grayscale");
-// xgettext: no-c-format
-i18n("360x360dpi, plain paper low quality");
-// xgettext: no-c-format
-i18n("360x360dpi");
-// xgettext: no-c-format
-i18n("720x720dpi");
-// xgettext: no-c-format
-i18n("F4");
-// xgettext: no-c-format
-i18n("Government Legal");
-// xgettext: no-c-format
-i18n("Government Letter");
-// xgettext: no-c-format
-i18n("Half Letter");
-// xgettext: no-c-format
-i18n("TonerSave");
-// xgettext: no-c-format
-i18n("Dpi");
-// xgettext: no-c-format
-i18n("600x300 dpi (Class600)");
-// xgettext: no-c-format
-i18n("1200x600 dpi (Class1200)");
-// xgettext: no-c-format
-i18n("Ritech");
-// xgettext: no-c-format
-i18n("Resolution, Color Mode");
-// xgettext: no-c-format
-i18n("180x180dpi, Grayscale, plain paper");
-// xgettext: no-c-format
-i18n("360x360dpi, Color, plain paper");
-// xgettext: no-c-format
-i18n("360x360dpi, Grayscale, plain paper");
-// xgettext: no-c-format
-i18n("360x720 DPI");
-// xgettext: no-c-format
-i18n("400x400 DPI");
-// xgettext: no-c-format
-i18n("300 dpi, Best, Color, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("600 dpi, Best, Color, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("600 dpi, Grayscale, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("Super B");
-// xgettext: no-c-format
-i18n("Manual Feeding");
-// xgettext: no-c-format
-i18n("Paper type");
-// xgettext: no-c-format
-i18n("Glossy film");
-// xgettext: no-c-format
-i18n("Special paper");
-// xgettext: no-c-format
-i18n("Transparency film");
-// xgettext: no-c-format
-i18n("Printing Quality");
-// xgettext: no-c-format
-i18n("RET (Resolution Enhancement)");
-// xgettext: no-c-format
-i18n("Draft (auto-detect paper type)");
-// xgettext: no-c-format
-i18n("Photo (on photo paper)");
-// xgettext: no-c-format
-i18n("300 dpi, Photo, Black + Color Cartr., Photo Paper");
-// xgettext: no-c-format
-i18n("600 dpi, Color, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("600 dpi, Photo, Black + Color Cartr., Photo Paper");
-// xgettext: no-c-format
-i18n("Draft Grayscale (auto-detect paper type)");
-// xgettext: no-c-format
-i18n("Normal (auto-detect paper type)");
-// xgettext: no-c-format
-i18n("Normal Grayscale (auto-detect paper type)");
-// xgettext: no-c-format
-i18n("High Quality (auto-detect paper type)");
-// xgettext: no-c-format
-i18n("High Quality Grayscale (auto-detect paper type)");
-// xgettext: no-c-format
-i18n("1200 dpi, Photo, Black + Color Cartr., Photo Paper");
-// xgettext: no-c-format
-i18n("Binding for Double-Sided Pr.");
-// xgettext: no-c-format
-i18n("Long Edge");
-// xgettext: no-c-format
-i18n("Short Edge");
-// xgettext: no-c-format
-i18n("Auto");
-// xgettext: no-c-format
-i18n("Contone (4096 colors)");
-// xgettext: no-c-format
-i18n("2A");
-// xgettext: no-c-format
-i18n("4A");
-// xgettext: no-c-format
-i18n("Arch A");
-// xgettext: no-c-format
-i18n("Arch B");
-// xgettext: no-c-format
-i18n("Arch C");
-// xgettext: no-c-format
-i18n("Arch D");
-// xgettext: no-c-format
-i18n("Arch E");
-// xgettext: no-c-format
-i18n("B0 (ISO)");
-// xgettext: no-c-format
-i18n("B1 (ISO)");
-// xgettext: no-c-format
-i18n("B2 (ISO)");
-// xgettext: no-c-format
-i18n("B3 (ISO)");
-// xgettext: no-c-format
-i18n("B4 (ISO)");
-// xgettext: no-c-format
-i18n("B5 (ISO)");
-// xgettext: no-c-format
-i18n("B0 (JIS)");
-// xgettext: no-c-format
-i18n("B1 (JIS)");
-// xgettext: no-c-format
-i18n("B2 (JIS)");
-// xgettext: no-c-format
-i18n("B3 (JIS)");
-// xgettext: no-c-format
-i18n("Super A");
-// xgettext: no-c-format
-i18n("Tabloid Extra");
-// xgettext: no-c-format
-i18n("EconoFast Mode");
-// xgettext: no-c-format
-i18n("Color (Color Cartridge, for photos)");
-// xgettext: no-c-format
-i18n("Color (both cartridges, for text with images)");
-// xgettext: no-c-format
-i18n("Grayscale (black cartridge)");
-// xgettext: no-c-format
-i18n("Dithering Algorithm");
-// xgettext: no-c-format
-i18n("Floyd Steinberg (higher quality)");
-// xgettext: no-c-format
-i18n("Ordered (faster)");
-// xgettext: no-c-format
-i18n("Off (better quality)");
-// xgettext: no-c-format
-i18n("On (faster)");
-// xgettext: no-c-format
-i18n("Black ink density adjustment.");
-// xgettext: no-c-format
-i18n("Bottom Margin");
-// xgettext: no-c-format
-i18n("Left Margin");
-// xgettext: no-c-format
-i18n("Right Margin");
-// xgettext: no-c-format
-i18n("Top Margin");
-// xgettext: no-c-format
-i18n("X Offset");
-// xgettext: no-c-format
-i18n("Y Offset");
-// xgettext: no-c-format
-i18n("Gamma Correction File");
-// xgettext: no-c-format
-i18n("Default (/etc/pnm2ppa.gamma)");
-// xgettext: no-c-format
-i18n("Normal Quality (/etc/pnm2ppa.gamma_normal)");
-// xgettext: no-c-format
-i18n("Best Quality (/etc/pnm2ppa.gamma_best)");
-// xgettext: no-c-format
-i18n("None");
-// xgettext: no-c-format
-i18n("GhostScript Rendering Format");
-// xgettext: no-c-format
-i18n("Gamma Correction");
-// xgettext: no-c-format
-i18n("Gamma Black");
-// xgettext: no-c-format
-i18n("Gamma Cyan");
-// xgettext: no-c-format
-i18n("Gamma Magenta");
-// xgettext: no-c-format
-i18n("Gamma Yellow");
-// xgettext: no-c-format
-i18n("Draft Grayscale (Black cartridge)");
-// xgettext: no-c-format
-i18n("Normal Grayscale (Black cartridge)");
-// xgettext: no-c-format
-i18n("High Quality Grayscale (Black cartridge)");
-// xgettext: no-c-format
-i18n("600x300 dpi, Best, Grayscale, Black Cartr.");
-// xgettext: no-c-format
-i18n("300 dpi, Color, Full Bleed, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("600 dpi, Color, Full Bleed, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("1200 dpi, Photo, Full Bleed, Black + Color Cartr., Photo Paper");
-// xgettext: no-c-format
-i18n("Photo (Color cartridge, on photo paper)");
-// xgettext: no-c-format
-i18n("300 dpi, Photo, Color Cartr., Photo Paper");
-// xgettext: no-c-format
-i18n("600 dpi, Photo, Color Cartr., Photo Paper");
-// xgettext: no-c-format
-i18n("Glossy");
-// xgettext: no-c-format
-i18n("Paper");
-// xgettext: no-c-format
-i18n("Behaviour when Toner Low");
-// xgettext: no-c-format
-i18n("Output Bin");
-// xgettext: no-c-format
-i18n("Upper");
-// xgettext: no-c-format
-i18n("Lower");
-// xgettext: no-c-format
-i18n("MP Tray");
-// xgettext: no-c-format
-i18n("300 dpi, Color, Full Bleed, Color Cartr.");
-// xgettext: no-c-format
-i18n("600 dpi, Color, Color Cartr.");
-// xgettext: no-c-format
-i18n("600 dpi, Color, Full Bleed, Color Cartr.");
-// xgettext: no-c-format
-i18n("1200 dpi, Photo, Color Cartr., Photo Paper");
-// xgettext: no-c-format
-i18n("1200 dpi, Photo, Full Bleed, Color Cartr., Photo Paper");
-// xgettext: no-c-format
-i18n("150 dpi, Best, Color, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("150 dpi, Color, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("150 dpi, Draft, Color, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("150 dpi, Draft, Grayscale, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("150 dpi, Grayscale, Black + Color Cartr.");
-// xgettext: no-c-format
-i18n("2400x1200 DPI");
-// xgettext: no-c-format
-i18n("High Quality (Color cartridge)");
-// xgettext: no-c-format
-i18n("Cover for HP DeskJet 3425");
-// xgettext: no-c-format
-i18n("75x75 dpi");
-// xgettext: no-c-format
-i18n("150x150 dpi");
-// xgettext: no-c-format
-i18n("Black cartridge");
-// xgettext: no-c-format
-i18n("Color cartridge");
-// xgettext: no-c-format
-i18n("Folio");
-// xgettext: no-c-format
-i18n("Normal Paper");
-// xgettext: no-c-format
-i18n("Card Stock");
-// xgettext: no-c-format
-i18n("Adhesive Labels");
-// xgettext: no-c-format
-i18n("Pre-printed paper");
-// xgettext: no-c-format
-i18n("Allow use of 'Reprint' button");
-// xgettext: no-c-format
-i18n("Yes");
-// xgettext: no-c-format
-i18n("Altitude Correction");
-// xgettext: no-c-format
-i18n("High Altitude (Low Air Pressure)");
-// xgettext: no-c-format
-i18n("Low Altitude (High Air Pressure)");
-// xgettext: no-c-format
-i18n("Reprint Page after Paper Jam");
-// xgettext: no-c-format
-i18n("Page Timeout");
-// xgettext: no-c-format
-i18n("15 sec");
-// xgettext: no-c-format
-i18n("30 sec");
-// xgettext: no-c-format
-i18n("45 sec");
-// xgettext: no-c-format
-i18n("Idle time to start power save mode (min)");
-// xgettext: no-c-format
-i18n("5 min");
-// xgettext: no-c-format
-i18n("10 min");
-// xgettext: no-c-format
-i18n("15 min");
-// xgettext: no-c-format
-i18n("30 min");
-// xgettext: no-c-format
-i18n("45 min");
-// xgettext: no-c-format
-i18n("60 min");
-// xgettext: no-c-format
-i18n("Use Power Saving Mode");
-// xgettext: no-c-format
-i18n("Dithering PPI");
-// xgettext: no-c-format
-i18n("300 x 600 DPI");
-// xgettext: no-c-format
-i18n("2400 x 1200 DPI");
-// xgettext: no-c-format
-i18n("2-passes x-weaving");
-// xgettext: no-c-format
-i18n("3-passes x-weaving");
-// xgettext: no-c-format
-i18n("320x320 DPI");
-// xgettext: no-c-format
-i18n("160x160 DPI");
-// xgettext: no-c-format
-i18n("Darkness");
-// xgettext: no-c-format
-i18n("Darkest");
-// xgettext: no-c-format
-i18n("Lightest");
-// xgettext: no-c-format
-i18n("Black toner saving");
-// xgettext: no-c-format
-i18n("DeskJet");
-// xgettext: no-c-format
-i18n("DeskJet 310");
-// xgettext: no-c-format
-i18n("DeskJet 320");
-// xgettext: no-c-format
-i18n("DeskJet 340");
-// xgettext: no-c-format
-i18n("DeskJet 400");
-// xgettext: no-c-format
-i18n("DeskJet 600");
-// xgettext: no-c-format
-i18n("DeskJet 660C");
-// xgettext: no-c-format
-i18n("DeskJet 670C");
-// xgettext: no-c-format
-i18n("DeskJet 680C");
-// xgettext: no-c-format
-i18n("DeskJet 690C");
-// xgettext: no-c-format
-i18n("DeskJet 870C");
-// xgettext: no-c-format
-i18n("DeskJet 890C");
-// xgettext: no-c-format
-i18n("DeskJet 970C with Duplexer");
-// xgettext: no-c-format
-i18n("DeskJet 1120C");
-// xgettext: no-c-format
-i18n("DeskJet Plus");
-// xgettext: no-c-format
-i18n("DeskJet Portable");
-// xgettext: no-c-format
-i18n("Olivetti (Black sent after CMY)");
-// xgettext: no-c-format
-i18n("Unspecified Model");
-// xgettext: no-c-format
-i18n("Unspecified Old Model");
-// xgettext: no-c-format
-i18n("Configure Every Page");
-// xgettext: no-c-format
-i18n("Media Size");
-// xgettext: no-c-format
-i18n("Letter");
-// xgettext: no-c-format
-i18n("Legal");
-// xgettext: no-c-format
-i18n("A4");
-// xgettext: no-c-format
-i18n("PageRegion");
-// xgettext: no-c-format
-i18n("Output Resolution");
-// xgettext: no-c-format
-i18n("204x196 DPI");
-// xgettext: no-c-format
-i18n("204x98 DPI");
-// xgettext: no-c-format
-i18n("your fax for replies");
-// xgettext: no-c-format
-i18n("ID");
-// xgettext: no-c-format
-i18n("your fax header");
-// xgettext: no-c-format
-i18n("Default");
-// xgettext: no-c-format
-i18n("Resolution");
-// xgettext: no-c-format
-i18n("72dpi");
-// xgettext: no-c-format
-i18n("144dpi");
-// xgettext: no-c-format
-i18n("300dpi");
-// xgettext: no-c-format
-i18n("360dpi");
-// xgettext: no-c-format
-i18n("600dpi");
-// xgettext: no-c-format
-i18n("720dpi");
-// xgettext: no-c-format
-i18n("1200dpi");
-// xgettext: no-c-format
-i18n("1440dpi");
-// xgettext: no-c-format
-i18n("2400dpi");
-// xgettext: no-c-format
-i18n("PageSize");
-// xgettext: no-c-format
-i18n("A0");
-// xgettext: no-c-format
-i18n("A1");
-// xgettext: no-c-format
-i18n("A2");
-// xgettext: no-c-format
-i18n("A3");
-// xgettext: no-c-format
-i18n("A5");
-// xgettext: no-c-format
-i18n("A6");
-// xgettext: no-c-format
-i18n("B4");
-// xgettext: no-c-format
-i18n("B5");
-// xgettext: no-c-format
-i18n("B6");
-// xgettext: no-c-format
-i18n("US Legal");
-// xgettext: no-c-format
-i18n("US Letter");
-// xgettext: no-c-format
-i18n("Executive");
-// xgettext: no-c-format
-i18n("Statement");
-// xgettext: no-c-format
-i18n("US Tabloid");
-// xgettext: no-c-format
-i18n("Ledger Landscape");
-// xgettext: no-c-format
-i18n("US C");
-// xgettext: no-c-format
-i18n("US D");
-// xgettext: no-c-format
-i18n("US E");
-// xgettext: no-c-format
-i18n("ARCH A");
-// xgettext: no-c-format
-i18n("ARCH B");
-// xgettext: no-c-format
-i18n("ARCH C");
-// xgettext: no-c-format
-i18n("ARCH D");
-// xgettext: no-c-format
-i18n("ARCH E");
-// xgettext: no-c-format
-i18n("Monarch Envelope");
-// xgettext: no-c-format
-i18n("DL Envelope");
-// xgettext: no-c-format
-i18n("C4 Envelope");
-// xgettext: no-c-format
-i18n("C5 Envelope");
-// xgettext: no-c-format
-i18n("C6 Envelope");
-// xgettext: no-c-format
-i18n("C10 Envelope");
-// xgettext: no-c-format
-i18n("C65 Envelope");
-// xgettext: no-c-format
-i18n("Folio");
-// xgettext: no-c-format
-i18n("InputSlot");
-// xgettext: no-c-format
-i18n("Autotray");
-// xgettext: no-c-format
-i18n("Tray 2 Paper Tray");
-// xgettext: no-c-format
-i18n("Installed Memory");
-// xgettext: no-c-format
-i18n("Standard 16MB");
-// xgettext: no-c-format
-i18n("80 MB");
-// xgettext: no-c-format
-i18n("B5 (JIS)");
-// xgettext: no-c-format
-i18n("Envelope 10");
-// xgettext: no-c-format
-i18n("Envelope DL");
-// xgettext: no-c-format
-i18n("Envelope C5");
-// xgettext: no-c-format
-i18n("Envelope C6");
-// xgettext: no-c-format
-i18n("Envelope Monarch");
-// xgettext: no-c-format
-i18n("Envelope A2");
-// xgettext: no-c-format
-i18n("4x6");
-// xgettext: no-c-format
-i18n("5x8");
-// xgettext: no-c-format
-i18n("A6 Card");
-// xgettext: no-c-format
-i18n("Print Color as Gray");
-// xgettext: no-c-format
-i18n("On");
-// xgettext: no-c-format
-i18n("Off");
-// xgettext: no-c-format
-i18n("Media Type");
-// xgettext: no-c-format
-i18n("Plain Paper");
-// xgettext: no-c-format
-i18n("HP Premium Inkjet Paper");
-// xgettext: no-c-format
-i18n("HP Premium Inkjet Heavyweight Paper");
-// xgettext: no-c-format
-i18n("HP Premium Transparency");
-// xgettext: no-c-format
-i18n("HP Premium Photo Paper");
-// xgettext: no-c-format
-i18n("HP Photo Paper");
-// xgettext: no-c-format
-i18n("HP Professional Brochure Paper, Glossy");
-// xgettext: no-c-format
-i18n("HP Professional Brochure Paper, Matte");
-// xgettext: no-c-format
-i18n(" Paper Source");
-// xgettext: no-c-format
-i18n("Tray 1");
-// xgettext: no-c-format
-i18n("Tray 2");
-// xgettext: no-c-format
-i18n("Manual Feed");
-// xgettext: no-c-format
-i18n("HP ColorSmart");
-// xgettext: no-c-format
-i18n("Automatic");
-// xgettext: no-c-format
-i18n("Manual");
-// xgettext: no-c-format
-i18n("Text");
-// xgettext: no-c-format
-i18n("ScreenMatch(sRGB)");
-// xgettext: no-c-format
-i18n("Vivid");
-// xgettext: no-c-format
-i18n("Graphics");
-// xgettext: no-c-format
-i18n("Image");
-// xgettext: no-c-format
-i18n(" Print Quality");
-// xgettext: no-c-format
-i18n("Best");
-// xgettext: no-c-format
-i18n("Normal");
-// xgettext: no-c-format
-i18n("Fast");
-// xgettext: no-c-format
-i18n("CMYK Inks");
-// xgettext: no-c-format
-i18n("FAST");
-// xgettext: no-c-format
-i18n("SWOP Emulation");
-// xgettext: no-c-format
-i18n("Eurostandard");
-// xgettext: no-c-format
-i18n("TOYO");
-// xgettext: no-c-format
-i18n("Pages per Sheet");
-// xgettext: no-c-format
-i18n("1 (Portrait)");
-// xgettext: no-c-format
-i18n("1 (Landscape)");
-// xgettext: no-c-format
-i18n("2 (Portrait)");
-// xgettext: no-c-format
-i18n("2 (Landscape)");
-// xgettext: no-c-format
-i18n("4 (Portrait)");
-// xgettext: no-c-format
-i18n("4 (Landscape)");
-// xgettext: no-c-format
-i18n("6 (Portrait)");
-// xgettext: no-c-format
-i18n("6 (Landscape)");
-// xgettext: no-c-format
-i18n("9 (Portrait)");
-// xgettext: no-c-format
-i18n("9 (Landscape)");
-// xgettext: no-c-format
-i18n("16 (Portrait)");
-// xgettext: no-c-format
-i18n("16 (Landscape)");
-// xgettext: no-c-format
-i18n("Watermark");
-// xgettext: no-c-format
-i18n("None");
-// xgettext: no-c-format
-i18n("Company Confidential");
-// xgettext: no-c-format
-i18n("Company Proprietary");
-// xgettext: no-c-format
-i18n("Company Private");
-// xgettext: no-c-format
-i18n("Confidential");
-// xgettext: no-c-format
-i18n("Copy");
-// xgettext: no-c-format
-i18n("Copyright");
-// xgettext: no-c-format
-i18n("Draft");
-// xgettext: no-c-format
-i18n("File Copy");
-// xgettext: no-c-format
-i18n("Final");
-// xgettext: no-c-format
-i18n("For Internal Use Only");
-// xgettext: no-c-format
-i18n("Preliminary");
-// xgettext: no-c-format
-i18n("Proof");
-// xgettext: no-c-format
-i18n("Review Copy");
-// xgettext: no-c-format
-i18n("Sample");
-// xgettext: no-c-format
-i18n("Top Secret");
-// xgettext: no-c-format
-i18n("Urgent");
-// xgettext: no-c-format
-i18n("Watermark Font");
-// xgettext: no-c-format
-i18n("Courier Bold");
-// xgettext: no-c-format
-i18n("Times Bold");
-// xgettext: no-c-format
-i18n("Helvetica Bold");
-// xgettext: no-c-format
-i18n("Watermark Size");
-// xgettext: no-c-format
-i18n("24 Points");
-// xgettext: no-c-format
-i18n("30 Points");
-// xgettext: no-c-format
-i18n("36 Points");
-// xgettext: no-c-format
-i18n("42 Points");
-// xgettext: no-c-format
-i18n("48 Points");
-// xgettext: no-c-format
-i18n("54 Points");
-// xgettext: no-c-format
-i18n("60 Points");
-// xgettext: no-c-format
-i18n("66 Points");
-// xgettext: no-c-format
-i18n("72 Points");
-// xgettext: no-c-format
-i18n("78 Points");
-// xgettext: no-c-format
-i18n("84 Points");
-// xgettext: no-c-format
-i18n("90 Points");
-// xgettext: no-c-format
-i18n("Watermark Angle");
-// xgettext: no-c-format
-i18n("90 Degrees");
-// xgettext: no-c-format
-i18n("75 Degrees");
-// xgettext: no-c-format
-i18n("60 Degrees");
-// xgettext: no-c-format
-i18n("45 Degrees");
-// xgettext: no-c-format
-i18n("30 Degrees");
-// xgettext: no-c-format
-i18n("15 Degrees");
-// xgettext: no-c-format
-i18n("0 Degrees");
-// xgettext: no-c-format
-i18n("-15 Degrees");
-// xgettext: no-c-format
-i18n("-30 Degrees");
-// xgettext: no-c-format
-i18n("-45 Degrees");
-// xgettext: no-c-format
-i18n("-60 Degrees");
-// xgettext: no-c-format
-i18n("-75 Degrees");
-// xgettext: no-c-format
-i18n("-90 Degrees");
-// xgettext: no-c-format
-i18n("Watermark Style");
-// xgettext: no-c-format
-i18n("Narrow Outline");
-// xgettext: no-c-format
-i18n("Medium Outline");
-// xgettext: no-c-format
-i18n("Wide Outline");
-// xgettext: no-c-format
-i18n("Wide Halo Outline");
-// xgettext: no-c-format
-i18n("Print Watermark");
-// xgettext: no-c-format
-i18n("All Pages");
-// xgettext: no-c-format
-i18n("First Page Only");
-// xgettext: no-c-format
-i18n("32 MB");
-// xgettext: no-c-format
-i18n("48 MB");
-// xgettext: no-c-format
-i18n("64 MB");
-// xgettext: no-c-format
-i18n("72 MB");
-// xgettext: no-c-format
-i18n("Tabloid");
-// xgettext: no-c-format
-i18n("4x6 Index Card");
-// xgettext: no-c-format
-i18n("5x8 Index Card");
-// xgettext: no-c-format
-i18n("Super B");
-// xgettext: no-c-format
-i18n("Super A3");
-// xgettext: no-c-format
-i18n("Input Slot");
-// xgettext: no-c-format
-i18n("Tray 3");
-// xgettext: no-c-format
-i18n("Rear Manual Feed");
-// xgettext: no-c-format
-i18n("True");
-// xgettext: no-c-format
-i18n("False");
-// xgettext: no-c-format
-i18n("HP Rapid-Dry Transparency");
-// xgettext: no-c-format
-i18n("HP Transparency");
-// xgettext: no-c-format
-i18n("HP Iron-on T-shirt Transfers");
-// xgettext: no-c-format
-i18n("Fit to Page");
-// xgettext: no-c-format
-i18n("Prompt User");
-// xgettext: no-c-format
-i18n("Nearest Size and Scale");
-// xgettext: no-c-format
-i18n("Nearest Size and Crop");
-// xgettext: no-c-format
-i18n("Print Quality");
-// xgettext: no-c-format
-i18n("EconoFast");
-// xgettext: no-c-format
-i18n("Color Control");
-// xgettext: no-c-format
-i18n("Enhanced Native");
-// xgettext: no-c-format
-i18n("ColorSmart Business Graphics");
-// xgettext: no-c-format
-i18n("No Color Adjustment");
-// xgettext: no-c-format
-i18n("Pantone");
-// xgettext: no-c-format
-i18n("Rendering Intent");
-// xgettext: no-c-format
-i18n("Contrast");
-// xgettext: no-c-format
-i18n("Colorimetric");
-// xgettext: no-c-format
-i18n("Saturation");
-// xgettext: no-c-format
-i18n(" -25% Lighter");
-// xgettext: no-c-format
-i18n(" -20%");
-// xgettext: no-c-format
-i18n(" -15%");
-// xgettext: no-c-format
-i18n(" -10%");
-// xgettext: no-c-format
-i18n(" -5%");
-// xgettext: no-c-format
-i18n(" 0% No Change");
-// xgettext: no-c-format
-i18n(" +5%");
-// xgettext: no-c-format
-i18n(" +10%");
-// xgettext: no-c-format
-i18n(" +15%");
-// xgettext: no-c-format
-i18n(" +20%");
-// xgettext: no-c-format
-i18n(" +25% Darker");
-// xgettext: no-c-format
-i18n("Application Halftoning");
-// xgettext: no-c-format
-i18n("Yes");
-// xgettext: no-c-format
-i18n("No");
-// xgettext: no-c-format
-i18n("Scale to");
-// xgettext: no-c-format
-i18n("No Change");
-// xgettext: no-c-format
-i18n("PPD Version");
-// xgettext: no-c-format
-i18n("2.0");
-// xgettext: no-c-format
-i18n("Rear Feed Unit");
-// xgettext: no-c-format
-i18n("Installed");
-// xgettext: no-c-format
-i18n("Not Installed");
-// xgettext: no-c-format
-i18n("Memory Configuration");
-// xgettext: no-c-format
-i18n("36 - 43 MB RAM");
-// xgettext: no-c-format
-i18n("44 - 51 MB RAM");
-// xgettext: no-c-format
-i18n("52 - 59 MB RAM");
-// xgettext: no-c-format
-i18n("60 - 67 MB RAM");
-// xgettext: no-c-format
-i18n(">= 68 MB RAM");
-// xgettext: no-c-format
-i18n("Print as Grayscale");
-// xgettext: no-c-format
-i18n("ColorSmart");
-// xgettext: no-c-format
-i18n("Auto");
-// xgettext: no-c-format
-i18n("Pantone<AE>");
-// xgettext: no-c-format
-i18n("ColorSmart Text");
-// xgettext: no-c-format
-i18n("Vivid Color");
-// xgettext: no-c-format
-i18n("Match Color Across Printers");
-// xgettext: no-c-format
-i18n("No Adjustment");
-// xgettext: no-c-format
-i18n("ColorSmart Graphics");
-// xgettext: no-c-format
-i18n("ColorSmart Photos");
-// xgettext: no-c-format
-i18n("Text Halftone");
-// xgettext: no-c-format
-i18n("Detail");
-// xgettext: no-c-format
-i18n("Smooth");
-// xgettext: no-c-format
-i18n("Basic");
-// xgettext: no-c-format
-i18n("Graphics Halftone");
-// xgettext: no-c-format
-i18n("Image Halftone");
-// xgettext: no-c-format
-i18n("Transparency/HP Special Paper");
-// xgettext: no-c-format
-i18n("Media Source");
-// xgettext: no-c-format
-i18n("Auto Select");
-// xgettext: no-c-format
-i18n("Front Tray");
-// xgettext: no-c-format
-i18n("Rear Tray");
-// xgettext: no-c-format
-i18n("Output Bin");
-// xgettext: no-c-format
-i18n("Upper");
-// xgettext: no-c-format
-i18n("Lower");
-// xgettext: no-c-format
-i18n(" 8 - 15 MB Total RAM");
-// xgettext: no-c-format
-i18n(" 16 - 23 MB Total RAM");
-// xgettext: no-c-format
-i18n(" 24 - 31 MB Total RAM");
-// xgettext: no-c-format
-i18n(" 32 - 39 MB Total RAM");
-// xgettext: no-c-format
-i18n(" 40 - 56 MB Total RAM");
-// xgettext: no-c-format
-i18n("Letter 8 1/2 x 11 in");
-// xgettext: no-c-format
-i18n("Legal 8 1/2 x 14 in");
-// xgettext: no-c-format
-i18n("Tabloid 11 x 17 in");
-// xgettext: no-c-format
-i18n("Executive 7 1/4 x 10 1/2 in");
-// xgettext: no-c-format
-i18n("A4 210 x 297 mm");
-// xgettext: no-c-format
-i18n("A3 297 x 420 mm");
-// xgettext: no-c-format
-i18n("Halftone");
-// xgettext: no-c-format
-i18n("Cluster (Standard)");
-// xgettext: no-c-format
-i18n("Scatter (Enhanced)");
-// xgettext: no-c-format
-i18n("Printer's Current Setting");
-// xgettext: no-c-format
-i18n("Full Color");
-// xgettext: no-c-format
-i18n("Paper");
-// xgettext: no-c-format
-i18n("Transparency");
-// xgettext: no-c-format
-i18n("Resolution Enhancement (REt)");
-// xgettext: no-c-format
-i18n("Light");
-// xgettext: no-c-format
-i18n("Medium");
-// xgettext: no-c-format
-i18n("Dark");
-// xgettext: no-c-format
-i18n("Printer Default");
-// xgettext: no-c-format
-i18n("Tray3");
-// xgettext: no-c-format
-i18n("32 - 39 MB RAM");
-// xgettext: no-c-format
-i18n("40 - 63 MB RAM");
-// xgettext: no-c-format
-i18n("64 - 95 MB RAM");
-// xgettext: no-c-format
-i18n("96 - 127 MB RAM");
-// xgettext: no-c-format
-i18n("128 - 159 MB RAM");
-// xgettext: no-c-format
-i18n("160 - 191 MB RAM");
-// xgettext: no-c-format
-i18n("  192 MB RAM");
-// xgettext: no-c-format
-i18n("Duplex Unit (for 2-Sided Printing)");
-// xgettext: no-c-format
-i18n("Envelope B5");
-// xgettext: no-c-format
-i18n("Envelope #10");
-// xgettext: no-c-format
-i18n("Plain");
-// xgettext: no-c-format
-i18n("Preprinted");
-// xgettext: no-c-format
-i18n("Letterhead");
-// xgettext: no-c-format
-i18n("Glossy");
-// xgettext: no-c-format
-i18n("Prepunched");
-// xgettext: no-c-format
-i18n("Labels");
-// xgettext: no-c-format
-i18n("Bond");
-// xgettext: no-c-format
-i18n("Recycled");
-// xgettext: no-c-format
-i18n("Color");
-// xgettext: no-c-format
-i18n("Heavy");
-// xgettext: no-c-format
-i18n("Card Stock");
-// xgettext: no-c-format
-i18n("Print Finish");
-// xgettext: no-c-format
-i18n("Matte");
-// xgettext: no-c-format
-i18n("Paper Source");
-// xgettext: no-c-format
-i18n("Tray2");
-// xgettext: no-c-format
-i18n("Tray1");
-// xgettext: no-c-format
-i18n("2-Sided Printing");
-// xgettext: no-c-format
-i18n("Long-Edge Binding");
-// xgettext: no-c-format
-i18n("Short-Edge Binding");
-// xgettext: no-c-format
-i18n("SWOP");
-// xgettext: no-c-format
-i18n("ColorSmart II");
-// xgettext: no-c-format
-i18n("ScreenMatch(sRGB)-Detail");
-// xgettext: no-c-format
-i18n("ScreenMatch(sRGB)-Smooth");
-// xgettext: no-c-format
-i18n("Vivid-Detail");
-// xgettext: no-c-format
-i18n("Vivid-Smooth");
-// xgettext: no-c-format
-i18n("500-Sheet Paper Feeder");
-// xgettext: no-c-format
-i18n("Printer Disk");
-// xgettext: no-c-format
-i18n("RAM Disk");
-// xgettext: no-c-format
-i18n("Hard Disk");
-// xgettext: no-c-format
-i18n("32 - 63 MB RAM");
-// xgettext: no-c-format
-i18n("192 - 223 MB RAM");
-// xgettext: no-c-format
-i18n("224 - 256 MB RAM");
-// xgettext: no-c-format
-i18n("Duplex Printing Accessory");
-// xgettext: no-c-format
-i18n("Paper Matching");
-// xgettext: no-c-format
-i18n("Prompt User for correct size");
-// xgettext: no-c-format
-i18n("Nearest Size & Scale");
-// xgettext: no-c-format
-i18n("Nearest Size & Crop");
-// xgettext: no-c-format
-i18n("Job Retention");
-// xgettext: no-c-format
-i18n("Quick Copy");
-// xgettext: no-c-format
-i18n("Proof and Hold");
-// xgettext: no-c-format
-i18n("Stored Job");
-// xgettext: no-c-format
-i18n("Private Job");
-// xgettext: no-c-format
-i18n("PIN (for Private Job)");
-// xgettext: no-c-format
-i18n("User Specified PIN");
-// xgettext: no-c-format
-i18n("User Name");
-// xgettext: no-c-format
-i18n("Use file sharing name");
-// xgettext: no-c-format
-i18n("Forms");
-// xgettext: no-c-format
-i18n("Custom user name");
-// xgettext: no-c-format
-i18n("Job Name");
-// xgettext: no-c-format
-i18n("Use Document Name");
-// xgettext: no-c-format
-i18n("User Specified Job Name");
-// xgettext: no-c-format
-i18n("US Letter (Small)");
-// xgettext: no-c-format
-i18n("US Legal (Small)");
-// xgettext: no-c-format
-i18n("A4 (Small)");
-// xgettext: no-c-format
-i18n("JB5");
-// xgettext: no-c-format
-i18n("Env ISO B5");
-// xgettext: no-c-format
-i18n("Env Comm10");
-// xgettext: no-c-format
-i18n("Env C5");
-// xgettext: no-c-format
-i18n("Env DL");
-// xgettext: no-c-format
-i18n("Env Monarch");
-// xgettext: no-c-format
-i18n("Tray 3 (Optional)");
-// xgettext: no-c-format
-i18n("Glossy Finish");
-// xgettext: no-c-format
-i18n("Automatic PANTONE¨ Color Calibration");
-// xgettext: no-c-format
-i18n("EuroScale");
-// xgettext: no-c-format
-i18n("DIC");
-// xgettext: no-c-format
-i18n("Manual Text");
-// xgettext: no-c-format
-i18n("Calibrated-Detail");
-// xgettext: no-c-format
-i18n("Calibrated-Smooth");
-// xgettext: no-c-format
-i18n("Manual Graphics");
-// xgettext: no-c-format
-i18n("Manual Image");
-// xgettext: no-c-format
-i18n("Watermark/Overlay");
-// xgettext: no-c-format
-i18n("Overlay");
-// xgettext: no-c-format
-i18n("Watermark Pages");
-// xgettext: no-c-format
-i18n("All");
-// xgettext: no-c-format
-i18n("First Only");
-// xgettext: no-c-format
-i18n("Watermark Text");
-// xgettext: no-c-format
-i18n("Custom");
-// xgettext: no-c-format
-i18n("Watermark Size (points)");
-// xgettext: no-c-format
-i18n("90<A1>");
-// xgettext: no-c-format
-i18n("75<A1>");
-// xgettext: no-c-format
-i18n("60<A1>");
-// xgettext: no-c-format
-i18n("45<A1>");
-// xgettext: no-c-format
-i18n("30<A1>");
-// xgettext: no-c-format
-i18n("15<A1>");
-// xgettext: no-c-format
-i18n("0<A1>");
-// xgettext: no-c-format
-i18n("Ð15<A1>");
-// xgettext: no-c-format
-i18n("Ð30<A1>");
-// xgettext: no-c-format
-i18n("Ð45<A1>");
-// xgettext: no-c-format
-i18n("Ð60<A1>");
-// xgettext: no-c-format
-i18n("Ð75<A1>");
-// xgettext: no-c-format
-i18n("Ð90<A1>");
-// xgettext: no-c-format
-i18n("Thin Outline");
-// xgettext: no-c-format
-i18n("Thick Outline");
-// xgettext: no-c-format
-i18n("Thick Outline with Halo");
-// xgettext: no-c-format
-i18n("Filled");
-// xgettext: no-c-format
-i18n("Watermark Color");
-// xgettext: no-c-format
-i18n("Gray");
-// xgettext: no-c-format
-i18n("Red");
-// xgettext: no-c-format
-i18n("Orange");
-// xgettext: no-c-format
-i18n("Yellow");
-// xgettext: no-c-format
-i18n("Green");
-// xgettext: no-c-format
-i18n("Blue");
-// xgettext: no-c-format
-i18n("Violet");
-// xgettext: no-c-format
-i18n("Watermark Intensity");
-// xgettext: no-c-format
-i18n("Darkest");
-// xgettext: no-c-format
-i18n("Darker");
-// xgettext: no-c-format
-i18n("Medium Dark");
-// xgettext: no-c-format
-i18n("Medium Light");
-// xgettext: no-c-format
-i18n("Lighter");
-// xgettext: no-c-format
-i18n("Lightest");
-// xgettext: no-c-format
-i18n("Collate");
-// xgettext: no-c-format
-i18n("On (turn off in application)");
-// xgettext: no-c-format
-i18n("2000 sheet input Tray 4");
-// xgettext: no-c-format
-i18n("Multi-Bin Mailbox");
-// xgettext: no-c-format
-i18n("Printer hard disk");
-// xgettext: no-c-format
-i18n("Printer Memory");
-// xgettext: no-c-format
-i18n("Multi-Bin Mailbox Mode");
-// xgettext: no-c-format
-i18n("Mailbox");
-// xgettext: no-c-format
-i18n("Stacking");
-// xgettext: no-c-format
-i18n("Job Separation");
-// xgettext: no-c-format
-i18n("Color Mode");
-// xgettext: no-c-format
-i18n("CMYK");
-// xgettext: no-c-format
-i18n("Grayscale");
-// xgettext: no-c-format
-i18n("Duplex");
-// xgettext: no-c-format
-i18n("Duplex Tumble");
-// xgettext: no-c-format
-i18n("Duplex (Two-Sided)");
-// xgettext: no-c-format
-i18n("One Sided");
-// xgettext: no-c-format
-i18n("ColorSmartCRD Text");
-// xgettext: no-c-format
-i18n("Screen Match");
-// xgettext: no-c-format
-i18n("OHT");
-// xgettext: no-c-format
-i18n("ColorSmartCRD Graphics");
-// xgettext: no-c-format
-i18n("ColorSmartCRD Images");
-// xgettext: no-c-format
-i18n("HalftoneText");
-// xgettext: no-c-format
-i18n("Halftone Graphics");
-// xgettext: no-c-format
-i18n("Halftone Images");
-// xgettext: no-c-format
-i18n("Cardstock");
-// xgettext: no-c-format
-i18n("Heavy Media >= 28lbs");
-// xgettext: no-c-format
-i18n("Envelope");
-// xgettext: no-c-format
-i18n("28 Lb Type1");
-// xgettext: no-c-format
-i18n("28 Lb Type2");
-// xgettext: no-c-format
-i18n("Media Type First");
-// xgettext: no-c-format
-i18n("Media Type Rest");
-// xgettext: no-c-format
-i18n("Staple");
-// xgettext: no-c-format
-i18n("Manual Feed (Tray 1)");
-// xgettext: no-c-format
-i18n("Tray 4");
-// xgettext: no-c-format
-i18n("Paper Source First");
-// xgettext: no-c-format
-i18n("Paper Source Rest");
-// xgettext: no-c-format
-i18n("Output Destination");
-// xgettext: no-c-format
-i18n("Top Output Bin (Face-Down)");
-// xgettext: no-c-format
-i18n("Left Output Bin (Face-Up)");
-// xgettext: no-c-format
-i18n("Stacker");
-// xgettext: no-c-format
-i18n("Job Separator");
-// xgettext: no-c-format
-i18n("Mailbox 1");
-// xgettext: no-c-format
-i18n("Mailbox 2");
-// xgettext: no-c-format
-i18n("Mailbox 3");
-// xgettext: no-c-format
-i18n("Mailbox 4");
-// xgettext: no-c-format
-i18n("Mailbox 5");
-// xgettext: no-c-format
-i18n("Mailbox 6");
-// xgettext: no-c-format
-i18n("Mailbox 7");
-// xgettext: no-c-format
-i18n("Mailbox 8");
-// xgettext: no-c-format
-i18n("Page Size");
-// xgettext: no-c-format
-i18n("Exec");
-// xgettext: no-c-format
-i18n("11x17");
-// xgettext: no-c-format
-i18n("Com-10");
-// xgettext: no-c-format
-i18n("DL");
-// xgettext: no-c-format
-i18n("Monarch");
-// xgettext: no-c-format
-i18n("C5");
-// xgettext: no-c-format
-i18n("JIS B5");
-// xgettext: no-c-format
-i18n("JPostD");
-// xgettext: no-c-format
-i18n("12x18");
-// xgettext: no-c-format
-i18n("9x12");
-// xgettext: no-c-format
-i18n("C4");
-// xgettext: no-c-format
-i18n("N-UP AND WATERMARK SETTINGS");
-// xgettext: no-c-format
-i18n("");
-// xgettext: no-c-format
-i18n("(None)");
-// xgettext: no-c-format
-i18n("Optional Tray 2");
-// xgettext: no-c-format
-i18n("Optional Tray 4");
-// xgettext: no-c-format
-i18n("1000 sheet input Tray 4");
-// xgettext: no-c-format
-i18n("Accessory Output Bins");
-// xgettext: no-c-format
-i18n("8 Bin Mailbox (Mailbox mode)");
-// xgettext: no-c-format
-i18n("8 Bin Mailbox (Stacker-Separator-Collator)");
-// xgettext: no-c-format
-i18n("HP 3000-Sheet Stapler-Stacker");
-// xgettext: no-c-format
-i18n("HP 3000-Sheet Stacker");
-// xgettext: no-c-format
-i18n("Enabled");
-// xgettext: no-c-format
-i18n("Disabled");
-// xgettext: no-c-format
-i18n("Color Treatment");
-// xgettext: no-c-format
-i18n("High Print Quality");
-// xgettext: no-c-format
-i18n("SWOP-Coated");
-// xgettext: no-c-format
-i18n("Euroscale");
-// xgettext: no-c-format
-i18n("Manually Print on 2nd Side");
-// xgettext: no-c-format
-i18n("Manual Images");
-// xgettext: no-c-format
-i18n("Private Stored Job");
-// xgettext: no-c-format
-i18n("PrinterÕs Current Setting");
-// xgettext: no-c-format
-i18n("Stacker-Separator-Collator");
-// xgettext: no-c-format
-i18n("Stapler");
-// xgettext: no-c-format
-i18n("Bin 1");
-// xgettext: no-c-format
-i18n("Bin 2");
-// xgettext: no-c-format
-i18n("Bin 3");
-// xgettext: no-c-format
-i18n("Bin 4");
-// xgettext: no-c-format
-i18n("Bin 5");
-// xgettext: no-c-format
-i18n("Bin 6");
-// xgettext: no-c-format
-i18n("Bin 7");
-// xgettext: no-c-format
-i18n("Bin 8");
-// xgettext: no-c-format
-i18n("Stapler Option");
-// xgettext: no-c-format
-i18n("1 Staple, diagonal");
-// xgettext: no-c-format
-i18n("1 Staple, parallel");
-// xgettext: no-c-format
-i18n("2 Staples, parallel");
-// xgettext: no-c-format
-i18n("3 Staples, parallel");
-// xgettext: no-c-format
-i18n("6 Staples, parallel");
-// xgettext: no-c-format
-i18n("JIS B4");
-// xgettext: no-c-format
-i18n("A3 (Oversize 12x18.11)");
-// xgettext: no-c-format
-i18n("Executive (JIS)");
-// xgettext: no-c-format
-i18n("16K");
-// xgettext: no-c-format
-i18n("8K");
-// xgettext: no-c-format
-i18n("Double Postcard (JIS)");
-// xgettext: no-c-format
-i18n("EconoMode");
-// xgettext: no-c-format
-i18n("Total Memory");
-// xgettext: no-c-format
-i18n("6 - 7 MB");
-// xgettext: no-c-format
-i18n("8 - 11 MB");
-// xgettext: no-c-format
-i18n("12 - 19 MB");
-// xgettext: no-c-format
-i18n("20 - 27 MB");
-// xgettext: no-c-format
-i18n("28 - 35 MB");
-// xgettext: no-c-format
-i18n("36 MB or more");
-// xgettext: no-c-format
-i18n("8.5 x 13");
-// xgettext: no-c-format
-i18n("Postcard (JIS)");
-// xgettext: no-c-format
-i18n("B5 (ISO)");
-// xgettext: no-c-format
-i18n("Tray 1 (Manual)");
-// xgettext: no-c-format
-i18n("Manual Duplex");
-// xgettext: no-c-format
-i18n("Odd Pages");
-// xgettext: no-c-format
-i18n("Even Pages");
-// xgettext: no-c-format
-i18n("Levels of Gray");
-// xgettext: no-c-format
-i18n("Enhanced");
-// xgettext: no-c-format
-i18n("Standard");
-// xgettext: no-c-format
-i18n("Resolution Enhancement");
-// xgettext: no-c-format
-i18n("Optional Lower Tray");
-// xgettext: no-c-format
-i18n("Optional Envelope Feeder");
-// xgettext: no-c-format
-i18n("JCLOpenUI *JCLResolution");
-// xgettext: no-c-format
-i18n("Legal Frame Size");
-// xgettext: no-c-format
-i18n("Com-10 Env");
-// xgettext: no-c-format
-i18n("Monarch Env");
-// xgettext: no-c-format
-i18n("DL Env");
-// xgettext: no-c-format
-i18n("C5 Env");
-// xgettext: no-c-format
-i18n("B5 Env");
-// xgettext: no-c-format
-i18n("Multipurpose Tray");
-// xgettext: no-c-format
-i18n("Paper Cassette");
-// xgettext: no-c-format
-i18n("Lower Cassette");
-// xgettext: no-c-format
-i18n("Envelope Feeder");
-// xgettext: no-c-format
-i18n("Rough");
-// xgettext: no-c-format
-i18n("Duplex Unit");
-// xgettext: no-c-format
-i18n("Printer Hard Disk");
-// xgettext: no-c-format
-i18n("Total Printer Memory");
-// xgettext: no-c-format
-i18n("4 - 7 MB");
-// xgettext: no-c-format
-i18n(" Tray 1");
-// xgettext: no-c-format
-i18n(" Tray 1 (Manual)");
-// xgettext: no-c-format
-i18n(" Tray 2");
-// xgettext: no-c-format
-i18n(" Tray 3");
-// xgettext: no-c-format
-i18n(" Tray 4");
-// xgettext: no-c-format
-i18n(" Envelope Feeder");
-// xgettext: no-c-format
-i18n("Scale Patterns");
-// xgettext: no-c-format
-i18n("Off (1-Sided)");
-// xgettext: no-c-format
-i18n("Flip on Long Edge (Standard)");
-// xgettext: no-c-format
-i18n("Flip on Short Edge");
-// xgettext: no-c-format
-i18n("User");
-// xgettext: no-c-format
-i18n("FastRes 1200");
-// xgettext: no-c-format
-i18n("Number of Input Trays");
-// xgettext: no-c-format
-i18n(" 2");
-// xgettext: no-c-format
-i18n(" 3");
-// xgettext: no-c-format
-i18n(" 4");
-// xgettext: no-c-format
-i18n(" 5");
-// xgettext: no-c-format
-i18n(" 6");
-// xgettext: no-c-format
-i18n(" 7");
-// xgettext: no-c-format
-i18n(" 8");
-// xgettext: no-c-format
-i18n(" 9");
-// xgettext: no-c-format
-i18n("12 - 15 MB");
-// xgettext: no-c-format
-i18n("16 - 19 MB");
-// xgettext: no-c-format
-i18n(" Tray 5");
-// xgettext: no-c-format
-i18n(" Tray 6");
-// xgettext: no-c-format
-i18n(" Tray 7");
-// xgettext: no-c-format
-i18n(" Tray 8");
-// xgettext: no-c-format
-i18n(" Tray 9");
-// xgettext: no-c-format
-i18n(" Tray 10");
-// xgettext: no-c-format
-i18n("ManualFeed");
-// xgettext: no-c-format
-i18n("Page Protection");
-// xgettext: no-c-format
-i18n(" 2 -  3 MB Total RAM");
-// xgettext: no-c-format
-i18n(" 4 -  5 MB Total RAM");
-// xgettext: no-c-format
-i18n(" 6 -  9 MB Total RAM");
-// xgettext: no-c-format
-i18n("10 - 14 MB Total RAM");
-// xgettext: no-c-format
-i18n("15 - 26 MB Total RAM");
-// xgettext: no-c-format
-i18n("Upper Tray");
-// xgettext: no-c-format
-i18n("Lower Tray");
-// xgettext: no-c-format
-i18n("Long Edge Binding");
-// xgettext: no-c-format
-i18n("Short Edge Binding");
-// xgettext: no-c-format
-i18n("Upper - Face Down");
-// xgettext: no-c-format
-i18n("Lower - Face Up");
-// xgettext: no-c-format
-i18n("12 - 27 MB Total RAM");
-// xgettext: no-c-format
-i18n("28 - 35 MB Total RAM");
-// xgettext: no-c-format
-i18n("36 - 52 MB Total RAM");
-// xgettext: no-c-format
-i18n("11x17 (Oversize)");
-// xgettext: no-c-format
-i18n("ISO B5 Env");
-// xgettext: no-c-format
-i18n("MP Tray");
-// xgettext: no-c-format
-i18n("Printer<27>s Current Setting");
-// xgettext: no-c-format
-i18n("Optional Lower Cassette");
-// xgettext: no-c-format
-i18n("Optional Duplex Unit");
-// xgettext: no-c-format
-i18n("Long-edge Binding");
-// xgettext: no-c-format
-i18n("Short-edge Binding");
-// xgettext: no-c-format
-i18n("500-Sheet Tray 3");
-// xgettext: no-c-format
-i18n("12 MB or more");
-// xgettext: no-c-format
-i18n("Vellum");
-// xgettext: no-c-format
-i18n("11x17 (Oversize 12x18.5)");
-// xgettext: no-c-format
-i18n("A3 (Oversize 312x440)");
-// xgettext: no-c-format
-i18n("B4 (JIS)");
-// xgettext: no-c-format
-i18n("B6 (JIS)");
-// xgettext: no-c-format
-i18n("Tray 1 (MultiPurpose Tray)");
-// xgettext: no-c-format
-i18n("Tray 2 (Paper Cassette)");
-// xgettext: no-c-format
-i18n("Letter  (8 1/2 x 11 in)");
-// xgettext: no-c-format
-i18n("Legal  (8 1/2 x 14 in)");
-// xgettext: no-c-format
-i18n("A4  (210 x 297 mm)");
-// xgettext: no-c-format
-i18n("Executive  (7 1/4 x 10 1/2 in)");
-// xgettext: no-c-format
-i18n("A5  (148 x 210 mm)");
-// xgettext: no-c-format
-i18n("Com-10 Env  (4 1/8 x 9 1/2 in)");
-// xgettext: no-c-format
-i18n("Monarch Env  (3 7/8 x 7 1/2 in)");
-// xgettext: no-c-format
-i18n("DL Env  (110 x 220 mm)");
-// xgettext: no-c-format
-i18n("C5 Env  (162 x 229 mm)");
-// xgettext: no-c-format
-i18n("B5 Env  (176 x 250 mm)");
-// xgettext: no-c-format
-i18n("2000-Sheet Input Tray (Tray 4)");
-// xgettext: no-c-format
-i18n("28 - 43 MB Total RAM");
-// xgettext: no-c-format
-i18n("44 - 59 MB Total RAM");
-// xgettext: no-c-format
-i18n("60 - 75 MB Total RAM");
-// xgettext: no-c-format
-i18n("76 -100 MB Total RAM");
-// xgettext: no-c-format
-i18n("Double Postcard");
-// xgettext: no-c-format
-i18n("Page Region");
-// xgettext: no-c-format
-i18n("Top Output Bin (Face Down)");
-// xgettext: no-c-format
-i18n("Left Output Bin (Face Up)");
-// xgettext: no-c-format
-i18n("Stacker (Face Down)");
-// xgettext: no-c-format
-i18n("Job Seperator (Face Down)");
-// xgettext: no-c-format
-i18n("Mailbox 1 (Face Down)");
-// xgettext: no-c-format
-i18n("Mailbox 2 (Face Down)");
-// xgettext: no-c-format
-i18n("Mailbox 3 (Face Down)");
-// xgettext: no-c-format
-i18n("Mailbox 4 (Face Down)");
-// xgettext: no-c-format
-i18n("Mailbox 5 (Face Down)");
-// xgettext: no-c-format
-i18n("Mailbox 6 (Face Down)");
-// xgettext: no-c-format
-i18n("Mailbox 7 (Face Down)");
-// xgettext: no-c-format
-i18n("Mailbox 8 (Face Down)");
-// xgettext: no-c-format
-i18n("Printer Resolution");
-// xgettext: no-c-format
-i18n("600 dpi");
-// xgettext: no-c-format
-i18n("300 dpi");
-// xgettext: no-c-format
-i18n("Mailbox with Stapler");
-// xgettext: no-c-format
-i18n("Mailbox with Stapler Mode");
-// xgettext: no-c-format
-i18n("Job Separator (Face Down)");
-// xgettext: no-c-format
-i18n("Stapler (Face Down)");
-// xgettext: no-c-format
-i18n("3 MB");
-// xgettext: no-c-format
-i18n("4 - 5 MB");
-// xgettext: no-c-format
-i18n("6 MB or more");
-// xgettext: no-c-format
-i18n("Top Bin");
-// xgettext: no-c-format
-i18n("Left Bin (Face Up)");
-// xgettext: no-c-format
-i18n("Stapler (max 50 Sheets)");
-// xgettext: no-c-format
-i18n("Stapler Opposing (max 50)");
-// xgettext: no-c-format
-i18n("Stapler (max 20 Letter or A4)");
-// xgettext: no-c-format
-i18n("Collator");
-// xgettext: no-c-format
-i18n("Stapling Options");
-// xgettext: no-c-format
-i18n("One Staple Angled");
-// xgettext: no-c-format
-i18n("One Staple");
-// xgettext: no-c-format
-i18n("Two Staples");
-// xgettext: no-c-format
-i18n("Three Staples");
-// xgettext: no-c-format
-i18n("Six Staples");
-// xgettext: no-c-format
-i18n("Administrator Defined");
-// xgettext: no-c-format
-i18n("Tray 5");
-// xgettext: no-c-format
-i18n("5 Bin Mailbox with Stapler");
-// xgettext: no-c-format
-i18n("7 Bin Mailbox");
-// xgettext: no-c-format
-i18n("8 Bin Mailbox");
-// xgettext: no-c-format
-i18n("HP 3000-Sheet Stapler/Stacker");
-// xgettext: no-c-format
-i18n("Standard Mailbox");
-// xgettext: no-c-format
-i18n("20 - 23 MB");
-// xgettext: no-c-format
-i18n("24 - 27 MB");
-// xgettext: no-c-format
-i18n("11x17 (Oversize 11.7x17.7)");
-// xgettext: no-c-format
-i18n("System Name (if available)");
-// xgettext: no-c-format
-i18n(" 1");
-// xgettext: no-c-format
-i18n("PIN digit 1 (for Private Job)");
-// xgettext: no-c-format
-i18n("PIN digit 2 (for Private Job)");
-// xgettext: no-c-format
-i18n("PIN digit 3 (for Private Job)");
-// xgettext: no-c-format
-i18n("PIN digit 4 (for Private Job)");
-// xgettext: no-c-format
-i18n("Edge-to-Edge Printing");
-// xgettext: no-c-format
-i18n("32 - 39 MB");
-// xgettext: no-c-format
-i18n("40 - 47 MB");
-// xgettext: no-c-format
-i18n("48 - 55 MB");
-// xgettext: no-c-format
-i18n("56 - 63 MB");
-// xgettext: no-c-format
-i18n("64 - 71 MB");
-// xgettext: no-c-format
-i18n("72 MB or more");
-// xgettext: no-c-format
-i18n("Banner Printing");
-// xgettext: no-c-format
-i18n("Manual Feeder");
-// xgettext: no-c-format
-i18n("Standard Tray");
-// xgettext: no-c-format
-i18n("Sheet Feeder");
-// xgettext: no-c-format
-i18n("Bond Paper");
-// xgettext: no-c-format
-i18n("Glossy Paper");
-// xgettext: no-c-format
-i18n("HP Premium Paper");
-// xgettext: no-c-format
-i18n("Quick-Dry Glossy");
-// xgettext: no-c-format
-i18n("Quick-Dry Transparency");
-// xgettext: no-c-format
-i18n("Transparency Film");
-// xgettext: no-c-format
-i18n("75 DPI");
-// xgettext: no-c-format
-i18n("150 DPI");
-// xgettext: no-c-format
-i18n("300 DPI");
-// xgettext: no-c-format
-i18n("600 DPI");
-// xgettext: no-c-format
-i18n("600x300 DPI");
-// xgettext: no-c-format
-i18n("Quality");
-// xgettext: no-c-format
-i18n("Default Setting");
-// xgettext: no-c-format
-i18n("Presentation");
-// xgettext: no-c-format
-i18n("CMY");
-// xgettext: no-c-format
-i18n("CMY+K");
-// xgettext: no-c-format
-i18n("Model");
-// xgettext: no-c-format
-i18n("DeskJet");
-// xgettext: no-c-format
-i18n("DeskJet 310");
-// xgettext: no-c-format
-i18n("DeskJet 320");
-// xgettext: no-c-format
-i18n("DeskJet 340");
-// xgettext: no-c-format
-i18n("DeskJet 400");
-// xgettext: no-c-format
-i18n("DeskJet 500");
-// xgettext: no-c-format
-i18n("DeskJet 500C");
-// xgettext: no-c-format
-i18n("DeskJet 510");
-// xgettext: no-c-format
-i18n("DeskJet 520");
-// xgettext: no-c-format
-i18n("DeskJet 540");
-// xgettext: no-c-format
-i18n("DeskJet 550C");
-// xgettext: no-c-format
-i18n("DeskJet 560C");
-// xgettext: no-c-format
-i18n("DeskJet 600");
-// xgettext: no-c-format
-i18n("DeskJet 660C");
-// xgettext: no-c-format
-i18n("DeskJet 670C");
-// xgettext: no-c-format
-i18n("DeskJet 680C");
-// xgettext: no-c-format
-i18n("DeskJet 690C");
-// xgettext: no-c-format
-i18n("DeskJet 850C");
-// xgettext: no-c-format
-i18n("DeskJet 855C");
-// xgettext: no-c-format
-i18n("DeskJet 870C");
-// xgettext: no-c-format
-i18n("DeskJet 890C");
-// xgettext: no-c-format
-i18n("DeskJet 970C with Duplexer");
-// xgettext: no-c-format
-i18n("DeskJet 1120C");
-// xgettext: no-c-format
-i18n("DeskJet Plus");
-// xgettext: no-c-format
-i18n("DeskJet Portable");
-// xgettext: no-c-format
-i18n("Olivetti (Black sent after CMY)");
-// xgettext: no-c-format
-i18n("Unspecified Model");
-// xgettext: no-c-format
-i18n("Unspecified Old Model");
-// xgettext: no-c-format
-i18n("Black Levels");
-// xgettext: no-c-format
-i18n("2 Levels");
-// xgettext: no-c-format
-i18n("3 Levels");
-// xgettext: no-c-format
-i18n("4 Levels");
-// xgettext: no-c-format
-i18n("No Black");
-// xgettext: no-c-format
-i18n("CMY Levels");
-// xgettext: no-c-format
-i18n("No CMY");
-// xgettext: no-c-format
-i18n("Compression Method");
-// xgettext: no-c-format
-i18n("Compressed Replacement Delta Row Encoding");
-// xgettext: no-c-format
-i18n("Delta Row Compression");
-// xgettext: no-c-format
-i18n("Runlength Encoding");
-// xgettext: no-c-format
-i18n("Tagged Image File Format");
-// xgettext: no-c-format
-i18n("Unencoded");
-// xgettext: no-c-format
-i18n("Intensity Rendering");
-// xgettext: no-c-format
-i18n("Floyd-Steinberg Dithering");
-// xgettext: no-c-format
-i18n("Half Tones");
-// xgettext: no-c-format
-i18n("Printer-internal");
-// xgettext: no-c-format
-i18n("Leading Edge");
-// xgettext: no-c-format
-i18n("Long edge; left side of canonical page");
-// xgettext: no-c-format
-i18n("Long edge; right side of canonical page");
-// xgettext: no-c-format
-i18n("Short edge; bottom of canonical page");
-// xgettext: no-c-format
-i18n("Short edge; top of canonical page");
-// xgettext: no-c-format
-i18n("Generate only PCL with 'Configure Raster Data'");
-// xgettext: no-c-format
-i18n("OnlyCRD");
-// xgettext: no-c-format
-i18n("GeneralPCL");
-// xgettext: no-c-format
-i18n("Print Head Passes per Line");
-// xgettext: no-c-format
-i18n("1 Pass (Fastest)");
-// xgettext: no-c-format
-i18n("2 Passes (50% of the dots/pass)");
-// xgettext: no-c-format
-i18n("4 Passes (25% of the dots/pass)");
-// xgettext: no-c-format
-i18n("PCL3GUI Language Mode");
-// xgettext: no-c-format
-i18n("PCL3GUI");
-// xgettext: no-c-format
-i18n("NoPCL3GUI");
-// xgettext: no-c-format
-i18n("3x5");
-// xgettext: no-c-format
-i18n("5x7");
-// xgettext: no-c-format
-i18n("6x8");
-// xgettext: no-c-format
-i18n("8x10");
-// xgettext: no-c-format
-i18n("8x12");
-// xgettext: no-c-format
-i18n("US A2 Invitation");
-// xgettext: no-c-format
-i18n("A7");
-// xgettext: no-c-format
-i18n("A8");
-// xgettext: no-c-format
-i18n("A9");
-// xgettext: no-c-format
-i18n("A10");
-// xgettext: no-c-format
-i18n("B5 ISO");
-// xgettext: no-c-format
-i18n("B5 JIS");
-// xgettext: no-c-format
-i18n("B6 aka C4");
-// xgettext: no-c-format
-i18n("B6 ISO");
-// xgettext: no-c-format
-i18n("B6 JIS");
-// xgettext: no-c-format
-i18n("B7 ISO");
-// xgettext: no-c-format
-i18n("B7 JIS");
-// xgettext: no-c-format
-i18n("B8 ISO");
-// xgettext: no-c-format
-i18n("B8 JIS");
-// xgettext: no-c-format
-i18n("B9 ISO");
-// xgettext: no-c-format
-i18n("B9 JIS");
-// xgettext: no-c-format
-i18n("B10 ISO");
-// xgettext: no-c-format
-i18n("B10 JIS");
-// xgettext: no-c-format
-i18n("C6");
-// xgettext: no-c-format
-i18n("C7");
-// xgettext: no-c-format
-i18n("C7 by C6");
-// xgettext: no-c-format
-i18n("C8");
-// xgettext: no-c-format
-i18n("C9");
-// xgettext: no-c-format
-i18n("C10");
-// xgettext: no-c-format
-i18n("US Commercial 10 Envelope");
-// xgettext: no-c-format
-i18n("Crown Octavo");
-// xgettext: no-c-format
-i18n("Crown Quarto");
-// xgettext: no-c-format
-i18n("Demy Octavo");
-// xgettext: no-c-format
-i18n("Epson 4x6 Photo Paper");
-// xgettext: no-c-format
-i18n("American Foolscap");
-// xgettext: no-c-format
-i18n("Hagaki Card");
-// xgettext: no-c-format
-i18n("Half Letter");
-// xgettext: no-c-format
-i18n("Large Crown Octavo");
-// xgettext: no-c-format
-i18n("Large Crown Quarto");
-// xgettext: no-c-format
-i18n("Japanese Long Envelope Number 3");
-// xgettext: no-c-format
-i18n("Japanese Long Envelope Number 4");
-// xgettext: no-c-format
-i18n("Oufuku Card");
-// xgettext: no-c-format
-i18n("Penguin Small Paperback");
-// xgettext: no-c-format
-i18n("Postcard");
-// xgettext: no-c-format
-i18n("RA4");
-// xgettext: no-c-format
-i18n("Royal Octavo");
-// xgettext: no-c-format
-i18n("Small Paperback");
-// xgettext: no-c-format
-i18n("Tray");
-// xgettext: no-c-format
-i18n("Glossy/Photo");
-// xgettext: no-c-format
-i18n("Premium");
-// xgettext: no-c-format
-i18n("Quick-dry Photo");
-// xgettext: no-c-format
-i18n("Quick-dry Transparency");
-// xgettext: no-c-format
-i18n("Ghostscript Resolution");
-// xgettext: no-c-format
-i18n("1200 DPI");
-// xgettext: no-c-format
-i18n("150x150 DPI");
-// xgettext: no-c-format
-i18n("300x300 DPI");
-// xgettext: no-c-format
-i18n("600x600 DPI");
-// xgettext: no-c-format
-i18n("Grayscale only");
-// xgettext: no-c-format
-i18n("Image Type");
-// xgettext: no-c-format
-i18n("Pure bw or prescreened (currently black-only)");
-// xgettext: no-c-format
-i18n("Line art (color or gray scale)");
-// xgettext: no-c-format
-i18n("Continuous-tone photographs (color or gray scale)");
-// xgettext: no-c-format
-i18n("Primarily solid colors ro smooth gradients (color or gray scale)");
-// xgettext: no-c-format
-i18n("Dithering Algorithm");
-// xgettext: no-c-format
-i18n("Adaptive Hybrid");
-// xgettext: no-c-format
-i18n("Adaptive Random");
-// xgettext: no-c-format
-i18n("Hybrid Floyd-Steinberg");
-// xgettext: no-c-format
-i18n("Ordered");
-// xgettext: no-c-format
-i18n("Random Floyd-Steinberg");
-// xgettext: no-c-format
-i18n("Very Fast");
-// xgettext: no-c-format
-i18n("11x14");
-// xgettext: no-c-format
-i18n("13x19");
-// xgettext: no-c-format
-i18n("Arch A");
-// xgettext: no-c-format
-i18n("Arch B");
-// xgettext: no-c-format
-i18n("B4 ISO");
-// xgettext: no-c-format
-i18n("B4 JIS");
-// xgettext: no-c-format
-i18n("C3");
-// xgettext: no-c-format
-i18n("Demy Quarto");
-// xgettext: no-c-format
-i18n("European Foolscap");
-// xgettext: no-c-format
-i18n("Japanese Kaku Envelope Number 4");
-// xgettext: no-c-format
-i18n("RA3");
-// xgettext: no-c-format
-i18n("Royal Quarto");
-// xgettext: no-c-format
-i18n("SRA3");
-// xgettext: no-c-format
-i18n("SRA4");
-// xgettext: no-c-format
-i18n("Autoselect");
-// xgettext: no-c-format
-i18n("Optional Source");
-// xgettext: no-c-format
-i18n("Paper type");
-// xgettext: no-c-format
-i18n("Bond paper");
-// xgettext: no-c-format
-i18n("Glossy film");
-// xgettext: no-c-format
-i18n("Plain paper");
-// xgettext: no-c-format
-i18n("Special paper");
-// xgettext: no-c-format
-i18n("Transparency film");
-// xgettext: no-c-format
-i18n("Printing Quality");
-// xgettext: no-c-format
-i18n("RET (Resolution Enhancement)");
-// xgettext: no-c-format
-i18n("Manual Feeding");
-// xgettext: no-c-format
-i18n("Double-Sided Printing");
-// xgettext: no-c-format
-i18n("Long Edge (Standard)");
-// xgettext: no-c-format
-i18n("Short Edge (Flip)");
-// xgettext: no-c-format
-i18n("1200x600 DPI");
-// xgettext: no-c-format
-i18n("GhostScript pre-filtering");
-// xgettext: no-c-format
-i18n("Convert to PS level 1");
-// xgettext: no-c-format
-i18n("Convert to PS level 2");
-// xgettext: no-c-format
-i18n("No pre-filtering");
-// xgettext: no-c-format
-i18n("Printer default");
-// xgettext: no-c-format
-i18n("Tray 6");
-// xgettext: no-c-format
-i18n("Tray 7");
-// xgettext: no-c-format
-i18n("Printing Mode");
-// xgettext: no-c-format
-i18n("Manual Feed of Paper");
-// xgettext: no-c-format
-i18n("Binding for Double-Sided Pr.");
-// xgettext: no-c-format
-i18n("Long Edge");
-// xgettext: no-c-format
-i18n("Short Edge");
-// xgettext: no-c-format
-i18n("REt Setting");
-// xgettext: no-c-format
-i18n("Density");
-// xgettext: no-c-format
-i18n("Economy mode");
-// xgettext: no-c-format
-i18n("Economy Mode");
-// xgettext: no-c-format
-i18n("Standard Mode");
-// xgettext: no-c-format
-i18n("Fast Res.");
-// xgettext: no-c-format
-i18n("Memory Booster Technology");
-// xgettext: no-c-format
-i18n("Monochrome");
-// xgettext: no-c-format
-i18n("Floyd-Steinberg dithered printing");
-// xgettext: no-c-format
-i18n("Standard printing");
-// xgettext: no-c-format
-i18n("Color mode");
-// xgettext: no-c-format
-i18n("Contone (4096 colors)");
-// xgettext: no-c-format
-i18n("Normal (8 colors)");
-// xgettext: no-c-format
-i18n("16x20");
-// xgettext: no-c-format
-i18n("16x24");
-// xgettext: no-c-format
-i18n("Black and White");
-// xgettext: no-c-format
-i18n("Floyd-Steinberg Color");
-// xgettext: no-c-format
-i18n("Floyd-Steinberg Color (Low Memory)");
-// xgettext: no-c-format
-i18n("Floyd-Steinberg Gray");
-// xgettext: no-c-format
-i18n("Normal Color");
-// xgettext: no-c-format
-i18n("Raster Graphics Quality");
-// xgettext: no-c-format
-i18n("High");
-// xgettext: no-c-format
-i18n("Black, draft quality, ink economy mode");
-// xgettext: no-c-format
-i18n("Black, normal quality");
-// xgettext: no-c-format
-i18n("Color, best quality, optional color correction");
-// xgettext: no-c-format
-i18n("Color, best quality, black ink disabled, optional color correction");
-// xgettext: no-c-format
-i18n("Color, draft quality, ink economy, fast dither, no color correction");
-// xgettext: no-c-format
-i18n("Color, normal quality, optional color correction");
-// xgettext: no-c-format
-i18n("Color, normal quality, black ink disabled, optional color correction");
-// xgettext: no-c-format
-i18n("Do not use Color Correction");
-// xgettext: no-c-format
-i18n("DisableColorCorrection");
-// xgettext: no-c-format
-i18n("EnableColorCorrection");
-// xgettext: no-c-format
-i18n("Choice of Ghostscript Driver");
-// xgettext: no-c-format
-i18n("Attempts to choose best PNM format for document; not always reliable.");
-// xgettext: no-c-format
-i18n("Attempts to choose best monochrome PNM format for document; not always reliable.");
-// xgettext: no-c-format
-i18n("A fast monochrome format; best for B&W text and line images.");
-// xgettext: no-c-format
-i18n("256-shade greyscale format");
-// xgettext: no-c-format
-i18n("Format for color images (includes monochrome).");
-// xgettext: no-c-format
-i18n("Force left-to-right print sweeps only (reduce striping)");
-// xgettext: no-c-format
-i18n("Unidirectional");
-// xgettext: no-c-format
-i18n("Bidirectional");
-// xgettext: no-c-format
-i18n("Ink Reduction");
-// xgettext: no-c-format
-i18n("25 %");
-// xgettext: no-c-format
-i18n("25 % with Gamma Correction");
-// xgettext: no-c-format
-i18n("50 %");
-// xgettext: no-c-format
-i18n("50 % with Gamma Correction");
-// xgettext: no-c-format
-i18n("600x600 DPI monochrome");
-// xgettext: no-c-format
-i18n("A6 (Post card)");
-// xgettext: no-c-format
-i18n("Photo (4 x 6 in., 10 x 15 cm)");
-// xgettext: no-c-format
-i18n("300 DPI Grayscale");
-// xgettext: no-c-format
-i18n("300 DPI Normal");
-// xgettext: no-c-format
-i18n("300 DPI Photo");
-// xgettext: no-c-format
-i18n("600 DPI Photo");
-// xgettext: no-c-format
-i18n("Use Postcards");
-// xgettext: no-c-format
-i18n("Postcards");
-// xgettext: no-c-format
-i18n("Sheets");
-// xgettext: no-c-format
-i18n("Rendering type");
-// xgettext: no-c-format
-i18n("Snap black to white, others to black");
-// xgettext: no-c-format
-i18n("Cluster ordered dither");
-// xgettext: no-c-format
-i18n("Monochrome cluster ordered dither");
-// xgettext: no-c-format
-i18n("Driver does dithering");
-// xgettext: no-c-format
-i18n("Error diffusion");
-// xgettext: no-c-format
-i18n("Monochrome error diffusion");
-// xgettext: no-c-format
-i18n("Ordered dithering");
-// xgettext: no-c-format
-i18n("Monochrome ordered dithering");
-// xgettext: no-c-format
-i18n("Snap to primaries");
-// xgettext: no-c-format
-i18n("Best Quality Color");
-// xgettext: no-c-format
-i18n("Desktop CSF");
-// xgettext: no-c-format
-i18n("Desktop Sheet Feeder");
-// xgettext: no-c-format
-i18n("Portable Sheet Feeder");
-// xgettext: no-c-format
-i18n("Ink Type");
-// xgettext: no-c-format
-i18n("Color + Black Cartridges");
-// xgettext: no-c-format
-i18n("Color + Photo Cartridges");
-// xgettext: no-c-format
-i18n("300 DPI Color");
-// xgettext: no-c-format
-i18n("300 DPI Draft");
-// xgettext: no-c-format
-i18n("On (Flip on Long Edge)");
-// xgettext: no-c-format
-i18n("On (Flip on Short Edge)");
-// xgettext: no-c-format
-i18n("600 DPI Normal");
-// xgettext: no-c-format
-i18n("Special");
-// xgettext: no-c-format
-i18n("Transparent");
-// xgettext: no-c-format
-i18n("Quality Type");
-// xgettext: no-c-format
-i18n("Double-sided printing");
-// xgettext: no-c-format
-i18n("Behavior when Toner Low");
-// xgettext: no-c-format
-i18n("Continue Printing");
-// xgettext: no-c-format
-i18n("Stop Printing");
-// xgettext: no-c-format
-i18n("Job Offset");
-// xgettext: no-c-format
-i18n("Cassette");
-// xgettext: no-c-format
-i18n("First");
-// xgettext: no-c-format
-i18n("90 DPI");
-// xgettext: no-c-format
-i18n("180 DPI");
-// xgettext: no-c-format
-i18n("16MB RAM");
-// xgettext: no-c-format
-i18n("32MB RAM");
-// xgettext: no-c-format
-i18n("48MB RAM");
-// xgettext: no-c-format
-i18n("64MB RAM");
-// xgettext: no-c-format
-i18n("80MB RAM");
-// xgettext: no-c-format
-i18n("96MB RAM");
-// xgettext: no-c-format
-i18n("128MB RAM");
-// xgettext: no-c-format
-i18n("144MB RAM");
-// xgettext: no-c-format
-i18n("160MB RAM");
-// xgettext: no-c-format
-i18n("192MB - 224MB RAM");
-// xgettext: no-c-format
-i18n("256MB - 512MB RAM");
-// xgettext: no-c-format
-i18n("Drawer Base");
-// xgettext: no-c-format
-i18n("DB-208 (3 Trays)");
-// xgettext: no-c-format
-i18n("DB-608 (2 Trays)");
-// xgettext: no-c-format
-i18n("DB-208A (1 Tray)");
-// xgettext: no-c-format
-i18n("Finisher Installed");
-// xgettext: no-c-format
-i18n("FS-105");
-// xgettext: no-c-format
-i18n("400dpi");
-// xgettext: no-c-format
-i18n("Edge Smoothing");
-// xgettext: no-c-format
-i18n("Text Only");
-// xgettext: no-c-format
-i18n("All Objects");
-// xgettext: no-c-format
-i18n("Print Density");
-// xgettext: no-c-format
-i18n("Toner Save");
-// xgettext: no-c-format
-i18n("OHP Transparency");
-// xgettext: no-c-format
-i18n("Thin Paper");
-// xgettext: no-c-format
-i18n("Thick Paper");
-// xgettext: no-c-format
-i18n("Duplex Mode");
-// xgettext: no-c-format
-i18n("Sort");
-// xgettext: no-c-format
-i18n("Group");
-// xgettext: no-c-format
-i18n("Special Modes");
-// xgettext: no-c-format
-i18n("2-in-1");
-// xgettext: no-c-format
-i18n("Booklet");
-// xgettext: no-c-format
-i18n("Stapling");
-// xgettext: no-c-format
-i18n("Single (Portrait)");
-// xgettext: no-c-format
-i18n("Single (Landscape)");
-// xgettext: no-c-format
-i18n("Double Side (Portrait)");
-// xgettext: no-c-format
-i18n("Double Side (Landscape)");
-// xgettext: no-c-format
-i18n("Double Top (Portrait)");
-// xgettext: no-c-format
-i18n("Double Top (Landscape)");
-// xgettext: no-c-format
-i18n("Wait Mode");
-// xgettext: no-c-format
-i18n("Front Cover");
-// xgettext: no-c-format
-i18n("Printed");
-// xgettext: no-c-format
-i18n("Blank");
-// xgettext: no-c-format
-i18n("Front Cover Tray");
-// xgettext: no-c-format
-i18n("Back Cover");
-// xgettext: no-c-format
-i18n("Cover Tray");
-// xgettext: no-c-format
-i18n("Manual Feed (Thick)");
-// xgettext: no-c-format
-i18n("Middle");
-// xgettext: no-c-format
-i18n("Output Order");
-// xgettext: no-c-format
-i18n("Half-letter (5 1/2 x 8 1/2 in)");
-// xgettext: no-c-format
-i18n("Letter (8 1/2 x 11 in)");
-// xgettext: no-c-format
-i18n("Legal (8 1/2 x 14 in)");
-// xgettext: no-c-format
-i18n("Tabloid (11 x 17 in)");
-// xgettext: no-c-format
-i18n("F4");
-// xgettext: no-c-format
-i18n("Half-letter");
-// xgettext: no-c-format
-i18n("No Finisher");
-// xgettext: no-c-format
-i18n("FS-106");
-// xgettext: no-c-format
-i18n("FS-108B (BookletMaker)");
-// xgettext: no-c-format
-i18n("PI-108");
-// xgettext: no-c-format
-i18n("Large Capacity Tray");
-// xgettext: no-c-format
-i18n("Tandem Configuration");
-// xgettext: no-c-format
-i18n("Fold & Stitch");
-// xgettext: no-c-format
-i18n("Fold only");
-// xgettext: no-c-format
-i18n("Fold & Saddle Stitch");
-// xgettext: no-c-format
-i18n("Wait");
-// xgettext: no-c-format
-i18n("Wait with Proof");
-// xgettext: no-c-format
-i18n("Back Cover Tray");
-// xgettext: no-c-format
-i18n("Tandem Printing");
-// xgettext: no-c-format
-i18n("Normal Mode (Auto Select)");
-// xgettext: no-c-format
-i18n("Split Mode (Auto Split)");
-// xgettext: no-c-format
-i18n("Split Mode (Equal Split)");
-// xgettext: no-c-format
-i18n("Print Engine Select (Printer 1)");
-// xgettext: no-c-format
-i18n("Print Engine Select (Printer 2)");
-// xgettext: no-c-format
-i18n("EcoPrint");
-// xgettext: no-c-format
-i18n("PF-8 Paper Feeder");
-// xgettext: no-c-format
-i18n("Memory");
-// xgettext: no-c-format
-i18n("1MB Upgrade");
-// xgettext: no-c-format
-i18n("2MB Upgrade");
-// xgettext: no-c-format
-i18n("4MB Upgrade");
-// xgettext: no-c-format
-i18n("300 Dots per Inch (dpi)");
-// xgettext: no-c-format
-i18n("KIR");
-// xgettext: no-c-format
-i18n("Envelope #6");
-// xgettext: no-c-format
-i18n("Envelope #9");
-// xgettext: no-c-format
-i18n("Cassette 1 (Internal)");
-// xgettext: no-c-format
-i18n("Cassette 2");
-// xgettext: no-c-format
-i18n("Auto Tray Switch");
-// xgettext: no-c-format
-i18n("1.6.0 [08-13-99]");
-// xgettext: no-c-format
-i18n("PF-16 Paper Feeder");
-// xgettext: no-c-format
-i18n("8MB Upgrade");
-// xgettext: no-c-format
-i18n("16MB Upgrade");
-// xgettext: no-c-format
-i18n("32MB Upgrade");
-// xgettext: no-c-format
-i18n("600 Dots per Inch (dpi)");
-// xgettext: no-c-format
-i18n("1.6.1 [02-28-2000]");
-// xgettext: no-c-format
-i18n("PF-4 Paper Feeder");
-// xgettext: no-c-format
-i18n("3MB Upgrade");
-// xgettext: no-c-format
-i18n("PF-17 Paper Feeder");
-// xgettext: no-c-format
-i18n("Optional Disk");
-// xgettext: no-c-format
-i18n("PostCard");
-// xgettext: no-c-format
-i18n("DoublePostCard");
-// xgettext: no-c-format
-i18n("Multi-Purpose Feeder");
-// xgettext: no-c-format
-i18n("Job Spooling");
-// xgettext: no-c-format
-i18n("Optional Feeder");
-// xgettext: no-c-format
-i18n("PF-21 Paper Feeders");
-// xgettext: no-c-format
-i18n("One");
-// xgettext: no-c-format
-i18n("Two");
-// xgettext: no-c-format
-i18n("Output Device");
-// xgettext: no-c-format
-i18n("SO-6 Bulk Sorter");
-// xgettext: no-c-format
-i18n("ST-20 Bulk Stacker");
-// xgettext: no-c-format
-i18n("12MB Upgrade");
-// xgettext: no-c-format
-i18n("20MB Upgrade");
-// xgettext: no-c-format
-i18n("24MB Upgrade");
-// xgettext: no-c-format
-i18n("36MB Upgrade");
-// xgettext: no-c-format
-i18n("40MB Upgrade");
-// xgettext: no-c-format
-i18n("48MB Upgrade");
-// xgettext: no-c-format
-i18n("64MB Upgrade");
-// xgettext: no-c-format
-i18n("Cassette 3");
-// xgettext: no-c-format
-i18n("Custom 1");
-// xgettext: no-c-format
-i18n("Custom 2");
-// xgettext: no-c-format
-i18n("Custom 3");
-// xgettext: no-c-format
-i18n("Custom 4");
-// xgettext: no-c-format
-i18n("Custom 5");
-// xgettext: no-c-format
-i18n("Custom 6");
-// xgettext: no-c-format
-i18n("Custom 7");
-// xgettext: no-c-format
-i18n("Custom 8");
-// xgettext: no-c-format
-i18n("Top Tray (Face-Down)");
-// xgettext: no-c-format
-i18n("Rear Tray (Face-Up)");
-// xgettext: no-c-format
-i18n("Stacker Mode (Face-Down)");
-// xgettext: no-c-format
-i18n("Sorter Mode (Face-Down)");
-// xgettext: no-c-format
-i18n("Collator Mode (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 1 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 2 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 3 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 4 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 5 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 6 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 7 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 8 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 9 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 10 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 11 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 12 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 13 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 14 (Face-Down)");
-// xgettext: no-c-format
-i18n("Mailbox 15 (Face-Down)");
-// xgettext: no-c-format
-i18n("Duplexing");
-// xgettext: no-c-format
-i18n("Temporary");
-// xgettext: no-c-format
-i18n("EF-1 Envelope Feeder");
-// xgettext: no-c-format
-i18n("UF-1 Universal Feeder");
-// xgettext: no-c-format
-i18n("PF-7 Bulk Feeder");
-// xgettext: no-c-format
-i18n("PF-5 Paper Feeders");
-// xgettext: no-c-format
-i18n("HS-3 Bulk Stacker");
-// xgettext: no-c-format
-i18n("Bulk Feeder");
-// xgettext: no-c-format
-i18n("Universal Feeder");
-// xgettext: no-c-format
-i18n("Stacker Mode (Face-Up)");
-// xgettext: no-c-format
-i18n("5MB Upgrade");
-// xgettext: no-c-format
-i18n("6MB Upgrade");
-// xgettext: no-c-format
-i18n("9MB Upgrade");
-// xgettext: no-c-format
-i18n("10MB Upgrade");
-// xgettext: no-c-format
-i18n("17MB Upgrade");
-// xgettext: no-c-format
-i18n("18MB Upgrade");
-// xgettext: no-c-format
-i18n("33MB Upgrade");
-// xgettext: no-c-format
-i18n("34MB Upgrade");
-// xgettext: no-c-format
-i18n("PF-7E Bulk Feeder");
-// xgettext: no-c-format
-i18n("PF-20 Paper Feeders");
-// xgettext: no-c-format
-i18n("HS-3E Bulk Stacker");
-// xgettext: no-c-format
-i18n("60MB Upgrade");
-// xgettext: no-c-format
-i18n("1200 Dots per Inch (dpi)");
-// xgettext: no-c-format
-i18n("PF-1 Paper Feeder");
-// xgettext: no-c-format
-i18n("Cassette 1");
-// xgettext: no-c-format
-i18n("7MB Upgrade");
-// xgettext: no-c-format
-i18n("13MB Upgrade");
-// xgettext: no-c-format
-i18n("PF-2 Paper Feeder");
-// xgettext: no-c-format
-i18n("11x17 (Ledger)");
-// xgettext: no-c-format
-i18n("Side Tray (Face-Up)");
-// xgettext: no-c-format
-i18n("PF-80 Paper Feeder");
-// xgettext: no-c-format
-i18n("Process Color (CMYK)");
-// xgettext: no-c-format
-i18n("Quick Color (CMY)");
-// xgettext: no-c-format
-i18n("Color Matching");
-// xgettext: no-c-format
-i18n("Simulate Display");
-// xgettext: no-c-format
-i18n("Side Tray (Face-Down)");
-// xgettext: no-c-format
-i18n("Permanent");
-// xgettext: no-c-format
-i18n("Barcode");
-// xgettext: no-c-format
-i18n("First Page");
-// xgettext: no-c-format
-i18n("Barcode ID");
-// xgettext: no-c-format
-i18n("Barcode Position");
-// xgettext: no-c-format
-i18n("Upper Left");
-// xgettext: no-c-format
-i18n("Upper Right");
-// xgettext: no-c-format
-i18n("Lower Left");
-// xgettext: no-c-format
-i18n("Lower Right");
-// xgettext: no-c-format
-i18n("Upper Left Vertical");
-// xgettext: no-c-format
-i18n("Upper Right Vertical");
-// xgettext: no-c-format
-i18n("Lower Left Vertical");
-// xgettext: no-c-format
-i18n("Lower Right Vertical");
-// xgettext: no-c-format
-i18n("PF-81 Paper Feeder");
-// xgettext: no-c-format
-i18n("Color Correction");
-// xgettext: no-c-format
-i18n("Application Corrected");
-// xgettext: no-c-format
-i18n("Printer Corrected");
-// xgettext: no-c-format
-i18n("Ink Simulation (CMYK)");
-// xgettext: no-c-format
-i18n("Euroscale Press");
-// xgettext: no-c-format
-i18n("SWOP Press");
-// xgettext: no-c-format
-i18n("Monitor Simulation (RGB)");
-// xgettext: no-c-format
-i18n("SMPTE240M");
-// xgettext: no-c-format
-i18n("sRGB (HDTV)");
-// xgettext: no-c-format
-i18n("Trinitron");
-// xgettext: no-c-format
-i18n("Apple RGB");
-// xgettext: no-c-format
-i18n("NTSC");
-// xgettext: no-c-format
-i18n("Duplex Paper");
-// xgettext: no-c-format
-i18n("Coated Paper");
-// xgettext: no-c-format
-i18n("Temporary (RAM Disk)");
-// xgettext: no-c-format
-i18n("Temporary (Hard Disk)");
-// xgettext: no-c-format
-i18n("Permanent (Hard Disk)");
-// xgettext: no-c-format
-i18n("Virtual Mailbox (Administrator)");
-// xgettext: no-c-format
-i18n("Virtual Mailbox (User 1)");
-// xgettext: no-c-format
-i18n("Virtual Mailbox (User 2)");
-// xgettext: no-c-format
-i18n("Virtual Mailbox (User 3)");
-// xgettext: no-c-format
-i18n("Virtual Mailbox (User 4)");
-// xgettext: no-c-format
-i18n("Virtual Mailbox (User 5)");
-// xgettext: no-c-format
-i18n("Virtual Mailbox (User 6)");
-// xgettext: no-c-format
-i18n("Virtual Mailbox (User 7)");
-// xgettext: no-c-format
-i18n("Virtual Mailbox (User 8)");
-// xgettext: no-c-format
-i18n("Virtual Mailbox (User 9)");
-// xgettext: no-c-format
-i18n("Virtual Mailbox (User 10)");
-// xgettext: no-c-format
-i18n("PF-26 Paper Feeders");
-// xgettext: no-c-format
-i18n("PF-9 Paper Feeders");
-// xgettext: no-c-format
-i18n("11MB Upgrade");
-// xgettext: no-c-format
-i18n("15MB Upgrade");
-// xgettext: no-c-format
-i18n("19MB Upgrade");
-// xgettext: no-c-format
-i18n("23MB Upgrade");
-// xgettext: no-c-format
-i18n("31MB Upgrade");
-// xgettext: no-c-format
-i18n("35MB Upgrade");
-// xgettext: no-c-format
-i18n("39MB Upgrade");
-// xgettext: no-c-format
-i18n("47MB Upgrade");
-// xgettext: no-c-format
-i18n("63MB Upgrade");
-// xgettext: no-c-format
-i18n("PF-25 Paper Feeders");
-// xgettext: no-c-format
-i18n("38MB Upgrade");
-// xgettext: no-c-format
-i18n("PF-30 Paper Feeders");
-// xgettext: no-c-format
-i18n("One (2 Cassettes)");
-// xgettext: no-c-format
-i18n("Two (4 Cassettes)");
-// xgettext: no-c-format
-i18n("Three (6 Cassettes)");
-// xgettext: no-c-format
-i18n("SO-30 Bulk Sorter");
-// xgettext: no-c-format
-i18n("ST-30 Bulk Stacker");
-// xgettext: no-c-format
-i18n("DF-30 Document Finisher");
-// xgettext: no-c-format
-i18n("Cassette 4");
-// xgettext: no-c-format
-i18n("Cassette 5");
-// xgettext: no-c-format
-i18n("Cassette 6");
-// xgettext: no-c-format
-i18n("Staple Method");
-// xgettext: no-c-format
-i18n("Staple Job up to 20 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 20 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 19 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 18 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 17 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 16 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 15 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 14 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 13 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 12 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 11 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 10 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 9 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 8 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 7 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 6 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 5 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 4 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 3 Sheets");
-// xgettext: no-c-format
-i18n("Staple Every 2 Sheets");
-// xgettext: no-c-format
-i18n("DF-31 Document Finisher");
-// xgettext: no-c-format
-i18n("44MB Upgrade");
-// xgettext: no-c-format
-i18n("Lower Tray - Option");
-// xgettext: no-c-format
-i18n("Envelope Feeder - Option");
-// xgettext: no-c-format
-i18n("Printer Memory - Option");
-// xgettext: no-c-format
-i18n("1.5 Mb Printer Memory");
-// xgettext: no-c-format
-i18n("2.5 Mb Printer Memory");
-// xgettext: no-c-format
-i18n("4 Mb Printer Memory");
-// xgettext: no-c-format
-i18n("C9 Envelope");
-// xgettext: no-c-format
-i18n("B5 Envelope");
-// xgettext: no-c-format
-i18n("Manual Envelope");
-// xgettext: no-c-format
-i18n("Manual Paper");
-// xgettext: no-c-format
-i18n("Tray Linking");
-// xgettext: no-c-format
-i18n("2 Mb Printer Memory");
-// xgettext: no-c-format
-i18n("3 Mb Printer Memory");
-// xgettext: no-c-format
-i18n("5+ Mb Printer Memory");
-// xgettext: no-c-format
-i18n("Smoothing");
-// xgettext: no-c-format
-i18n("Other Envelope");
-// xgettext: no-c-format
-i18n("Duplex - Option");
-// xgettext: no-c-format
-i18n("Simplex");
-// xgettext: no-c-format
-i18n("Duplex - Long Edge");
-// xgettext: no-c-format
-i18n("Duplex - Short Edge");
-// xgettext: no-c-format
-i18n("Flash Memory Card - Option");
-// xgettext: no-c-format
-i18n("Printer Hard Disk - Option");
-// xgettext: no-c-format
-i18n("2 MB Printer Memory");
-// xgettext: no-c-format
-i18n("4 MB Printer Memory");
-// xgettext: no-c-format
-i18n("6 MB Printer Memory");
-// xgettext: no-c-format
-i18n("8 MB Printer Memory");
-// xgettext: no-c-format
-i18n("10 MB Printer Memory");
-// xgettext: no-c-format
-i18n("12 MB Printer Memory");
-// xgettext: no-c-format
-i18n("16 MB Printer Memory");
-// xgettext: no-c-format
-i18n("8 Mb Printer Memory");
-// xgettext: no-c-format
-i18n("12 Mb Printer Memory");
-// xgettext: no-c-format
-i18n("16 Mb Printer Memory");
-// xgettext: no-c-format
-i18n("Printer Software Version");
-// xgettext: no-c-format
-i18n("250.0x");
-// xgettext: no-c-format
-i18n("250.2x");
-// xgettext: no-c-format
-i18n("360 dpi");
-// xgettext: no-c-format
-i18n("High Quality");
-// xgettext: no-c-format
-i18n("Bold Black");
-// xgettext: no-c-format
-i18n("Screening");
-// xgettext: no-c-format
-i18n("Color Balance");
-// xgettext: no-c-format
-i18n("Blue Adjust");
-// xgettext: no-c-format
-i18n("Line Art && Text");
-// xgettext: no-c-format
-i18n("Images");
-// xgettext: no-c-format
-i18n("Color Model");
-// xgettext: no-c-format
-i18n("RGB");
-// xgettext: no-c-format
-i18n("Image Brightness");
-// xgettext: no-c-format
-i18n("+5");
-// xgettext: no-c-format
-i18n("+10");
-// xgettext: no-c-format
-i18n("+15");
-// xgettext: no-c-format
-i18n("+20");
-// xgettext: no-c-format
-i18n("+25");
-// xgettext: no-c-format
-i18n("+30");
-// xgettext: no-c-format
-i18n("+35");
-// xgettext: no-c-format
-i18n("+40");
-// xgettext: no-c-format
-i18n("+45");
-// xgettext: no-c-format
-i18n("+50");
-// xgettext: no-c-format
-i18n("Image Contrast");
-// xgettext: no-c-format
-i18n("20 MB Printer Memory");
-// xgettext: no-c-format
-i18n("32 or more MB Printer Memory");
-// xgettext: no-c-format
-i18n("Pause Mode");
-// xgettext: no-c-format
-i18n("ColorGrade");
-// xgettext: no-c-format
-i18n("Image Diffusion");
-// xgettext: no-c-format
-i18n("Oversize 11.7 x 22 in");
-// xgettext: no-c-format
-i18n("Duplexer - Option");
-// xgettext: no-c-format
-i18n("Tray 3 - Option");
-// xgettext: no-c-format
-i18n("Feeder 2 - Option");
-// xgettext: no-c-format
-i18n("1 MB Flash Memory");
-// xgettext: no-c-format
-i18n("2 MB Flash Memory");
-// xgettext: no-c-format
-i18n("4 MB Flash Memory");
-// xgettext: no-c-format
-i18n("18 MB Printer Memory");
-// xgettext: no-c-format
-i18n("24 MB Printer Memory");
-// xgettext: no-c-format
-i18n("Print Darkness");
-// xgettext: no-c-format
-i18n("1200 dpi");
-// xgettext: no-c-format
-i18n("Feeder");
-// xgettext: no-c-format
-i18n("Feeder 2");
-// xgettext: no-c-format
-i18n("Tray 2 - Option");
-// xgettext: no-c-format
-i18n("32 MB Printer Memory");
-// xgettext: no-c-format
-i18n("64 MB Printer Memory");
-// xgettext: no-c-format
-i18n("96 MB Printer Memory");
-// xgettext: no-c-format
-i18n("128 MB Printer Memory");
-// xgettext: no-c-format
-i18n("Toner Saver");
-// xgettext: no-c-format
-i18n("Image Smoothing");
-// xgettext: no-c-format
-i18n("Colored Paper");
-// xgettext: no-c-format
-i18n("Custom Type 1");
-// xgettext: no-c-format
-i18n("Custom Type 2");
-// xgettext: no-c-format
-i18n("Custom Type 3");
-// xgettext: no-c-format
-i18n("Custom Type 4");
-// xgettext: no-c-format
-i18n("Port Rotation");
-// xgettext: no-c-format
-i18n("Collate Copies");
-// xgettext: no-c-format
-i18n("Top");
-// xgettext: no-c-format
-i18n("Rear");
-// xgettext: no-c-format
-i18n("Black & White");
-// xgettext: no-c-format
-i18n("Display");
-// xgettext: no-c-format
-i18n("1200 Image Quality");
-// xgettext: no-c-format
-i18n("B5 182 x 257 mm");
-// xgettext: no-c-format
-i18n("A5 148 x 210 mm");
-// xgettext: no-c-format
-i18n("B4 257 x 364 mm");
-// xgettext: no-c-format
-i18n("A3 297 x 419 mm");
-// xgettext: no-c-format
-i18n("Universal 11.7 x 17 in");
-// xgettext: no-c-format
-i18n("7 3/4 Envelope 3 7/8 x 7 1/2 in");
-// xgettext: no-c-format
-i18n("9 Envelope 3 7/8 x 8 7/8 in");
-// xgettext: no-c-format
-i18n("10 Envelope 4 1/8 x 9 1/2 in");
-// xgettext: no-c-format
-i18n("DL Envelope 110 x 220 mm");
-// xgettext: no-c-format
-i18n("C5 Envelope 162 x 229 mm");
-// xgettext: no-c-format
-i18n("B5 Envelope 176 x 250 mm");
-// xgettext: no-c-format
-i18n("Other Envelope 8 1/2 x 14 in");
-// xgettext: no-c-format
-i18n("Universal");
-// xgettext: no-c-format
-i18n("Comm10");
-// xgettext: no-c-format
-i18n("ISOB5");
-// xgettext: no-c-format
-i18n("Other");
-// xgettext: no-c-format
-i18n("MP Feeder");
-// xgettext: no-c-format
-i18n("36 MB Printer Memory");
-// xgettext: no-c-format
-i18n("68 or more MB Printer Memory");
-// xgettext: no-c-format
-i18n("Left Cartridge");
-// xgettext: no-c-format
-i18n("Unknown Cartridge");
-// xgettext: no-c-format
-i18n("Standard Black Cartridge");
-// xgettext: no-c-format
-i18n("High Capacity Black Cartridge");
-// xgettext: no-c-format
-i18n("Photo Cartridge");
-// xgettext: no-c-format
-i18n("Right Cartridge");
-// xgettext: no-c-format
-i18n("Standard Color Cartridge");
-// xgettext: no-c-format
-i18n("High Capacity Color Cartridge");
-// xgettext: no-c-format
-i18n("Greeting Card");
-// xgettext: no-c-format
-i18n("Iron On");
-// xgettext: no-c-format
-i18n("Photo Paper");
-// xgettext: no-c-format
-i18n("QuickPrint");
-// xgettext: no-c-format
-i18n("Universal 8 1/2 x 14 in");
-// xgettext: no-c-format
-i18n("40 MB Printer Memory");
-// xgettext: no-c-format
-i18n("72 or more MB Printer Memory");
-// xgettext: no-c-format
-i18n("SA3 320 x 450 mm");
-// xgettext: no-c-format
-i18n("Universal 12.6 x 22 in");
-// xgettext: no-c-format
-i18n("SA3");
-// xgettext: no-c-format
-i18n("Duplex Option - Option");
-// xgettext: no-c-format
-i18n("Fax Card");
-// xgettext: no-c-format
-i18n("Printer Setting");
-// xgettext: no-c-format
-i18n("Black && White");
-// xgettext: no-c-format
-i18n("2 Color Draft");
-// xgettext: no-c-format
-i18n("Image Enhancement");
-// xgettext: no-c-format
-i18n("PictureGrade");
-// xgettext: no-c-format
-i18n("Custom Type 5");
-// xgettext: no-c-format
-i18n("Custom Type 6");
-// xgettext: no-c-format
-i18n("14 MB Printer Memory");
-// xgettext: no-c-format
-i18n("28 MB Printer Memory");
-// xgettext: no-c-format
-i18n("Toner Darkness");
-// xgettext: no-c-format
-i18n("Printer's default");
-// xgettext: no-c-format
-i18n("Tray 4 - Option");
-// xgettext: no-c-format
-i18n("Tray 5 - Option");
-// xgettext: no-c-format
-i18n("MP Feeder - Option");
-// xgettext: no-c-format
-i18n("Number of Output Bins - Option");
-// xgettext: no-c-format
-i18n("Standard Bin Only");
-// xgettext: no-c-format
-i18n("1 Extra Bin");
-// xgettext: no-c-format
-i18n("2 Extra Bins");
-// xgettext: no-c-format
-i18n("3 Extra Bins");
-// xgettext: no-c-format
-i18n("4 Extra Bins");
-// xgettext: no-c-format
-i18n("5 Extra Bins");
-// xgettext: no-c-format
-i18n("6 Extra Bins");
-// xgettext: no-c-format
-i18n("7 Extra Bins");
-// xgettext: no-c-format
-i18n("8 Extra Bins");
-// xgettext: no-c-format
-i18n("9 Extra Bins");
-// xgettext: no-c-format
-i18n("10 Extra Bins");
-// xgettext: no-c-format
-i18n("11 Extra Bins");
-// xgettext: no-c-format
-i18n("12 Extra Bins");
-// xgettext: no-c-format
-i18n("13 Extra Bins");
-// xgettext: no-c-format
-i18n("14 Extra Bins");
-// xgettext: no-c-format
-i18n("15 Extra Bins");
-// xgettext: no-c-format
-i18n("22 MB Printer Memory");
-// xgettext: no-c-format
-i18n("Standard Bin");
-// xgettext: no-c-format
-i18n("Bin 9");
-// xgettext: no-c-format
-i18n("Bin 10");
-// xgettext: no-c-format
-i18n("Bin 11");
-// xgettext: no-c-format
-i18n("Bin 12");
-// xgettext: no-c-format
-i18n("Bin 13");
-// xgettext: no-c-format
-i18n("Bin 14");
-// xgettext: no-c-format
-i18n("Bin 15");
-// xgettext: no-c-format
-i18n("250-Sheet Drawer");
-// xgettext: no-c-format
-i18n("500-Sheet Drawer");
-// xgettext: no-c-format
-i18n("2000-Sheet Drawer");
-// xgettext: no-c-format
-i18n("1 - Output Expander");
-// xgettext: no-c-format
-i18n("1 - Hi-Capacity Output Expander");
-// xgettext: no-c-format
-i18n("2 - 2 Output Expanders");
-// xgettext: no-c-format
-i18n("2 - 1 Hi-Capacity + 1 Output Expander");
-// xgettext: no-c-format
-i18n("3 - 3 Output Expanders");
-// xgettext: no-c-format
-i18n("5 - 5-Bin Mailbox");
-// xgettext: no-c-format
-i18n("6 - 1 Output Expander + 1 5-Bin Mailbox");
-// xgettext: no-c-format
-i18n("6 - 1 5-Bin Mailbox + 1 Output Expander");
-// xgettext: no-c-format
-i18n("10 - 2 5-Bin Mailboxes");
-// xgettext: no-c-format
-i18n("Other Envelope 9.02 x 14 in");
-// xgettext: no-c-format
-i18n("Color Registration");
-// xgettext: no-c-format
-i18n("High Speed");
-// xgettext: no-c-format
-i18n("Finish Quality");
-// xgettext: no-c-format
-i18n("Medium Gloss");
-// xgettext: no-c-format
-i18n("High Gloss");
-// xgettext: no-c-format
-i18n("Low Gloss");
-// xgettext: no-c-format
-i18n("Contone");
-// xgettext: no-c-format
-i18n("Stochastic");
-// xgettext: no-c-format
-i18n("Multipurpose Feeder");
-// xgettext: no-c-format
-i18n("3 MB Printer Memory");
-// xgettext: no-c-format
-i18n("Manual Feed Paper Type");
-// xgettext: no-c-format
-i18n("Tray 1 Paper Type");
-// xgettext: no-c-format
-i18n("Tray 2 Paper Type");
-// xgettext: no-c-format
-i18n("1200 Quality");
-// xgettext: no-c-format
-i18n("Paper Input Drawer - Option");
-// xgettext: no-c-format
-i18n("Finisher - Option");
-// xgettext: no-c-format
-i18n("Custom 11.7 x 17.7 in");
-// xgettext: no-c-format
-i18n("Upper (Tray 1)");
-// xgettext: no-c-format
-i18n("Lower (Tray 2)");
-// xgettext: no-c-format
-i18n("Input Drawer (Tray 3)");
-// xgettext: no-c-format
-i18n("No Tray Linking");
-// xgettext: no-c-format
-i18n("Link Tray 1+2");
-// xgettext: no-c-format
-i18n("Link Tray 1+2+3");
-// xgettext: no-c-format
-i18n("Link Tray 2+3");
-// xgettext: no-c-format
-i18n("Bin 0 (Top)");
-// xgettext: no-c-format
-i18n("Bin 1 (Side)");
-// xgettext: no-c-format
-i18n("Staple 1");
-// xgettext: no-c-format
-i18n("Staple 2");
-// xgettext: no-c-format
-i18n("Do Not Care");
-// xgettext: no-c-format
-i18n("26 MB Printer Memory");
-// xgettext: no-c-format
-i18n("Images Only");
-// xgettext: no-c-format
-i18n("Entire Page");
-// xgettext: no-c-format
-i18n("2500-Sheet Drawer");
-// xgettext: no-c-format
-i18n("Mailbox - Option");
-// xgettext: no-c-format
-i18n("Hole Punch");
-// xgettext: no-c-format
-i18n("Offset Pages");
-// xgettext: no-c-format
-i18n("Between Copies");
-// xgettext: no-c-format
-i18n("Universal 11.69 x 17 in");
-// xgettext: no-c-format
-i18n("300x1200 DPI");
-// xgettext: no-c-format
-i18n("300x600 DPI");
-// xgettext: no-c-format
-i18n("600x1200 DPI");
-// xgettext: no-c-format
-i18n("1200x1200 DPI");
-// xgettext: no-c-format
-i18n("1200x300 DPI");
-// xgettext: no-c-format
-i18n("Normal Quality Color (4-ink)");
-// xgettext: no-c-format
-i18n("Photo Quality Color (6-ink)");
-// xgettext: no-c-format
-i18n("Bidirectional printing");
-// xgettext: no-c-format
-i18n("off");
-// xgettext: no-c-format
-i18n("on");
-// xgettext: no-c-format
-i18n("300 dpi x 600 dpi");
-// xgettext: no-c-format
-i18n("600 dpi x 600 dpi");
-// xgettext: no-c-format
-i18n("1200 dpi x 600 dpi");
-// xgettext: no-c-format
-i18n("Color");
-// xgettext: no-c-format
-i18n("Page Drying Time");
-// xgettext: no-c-format
-i18n("0 sec");
-// xgettext: no-c-format
-i18n("10 sec.");
-// xgettext: no-c-format
-i18n("20 sec.");
-// xgettext: no-c-format
-i18n("30 sec.");
-// xgettext: no-c-format
-i18n("40 sec.");
-// xgettext: no-c-format
-i18n("50 sec");
-// xgettext: no-c-format
-i18n("60 sec");
-// xgettext: no-c-format
-i18n("300x300 dpi");
-// xgettext: no-c-format
-i18n("300x600 dpi");
-// xgettext: no-c-format
-i18n("600x1200 dpi");
-// xgettext: no-c-format
-i18n("600x600 dpi");
-// xgettext: no-c-format
-i18n("1200x1200 dpi");
-// xgettext: no-c-format
-i18n("Optional Multi-Feeder");
-// xgettext: no-c-format
-i18n("6 MB");
-// xgettext: no-c-format
-i18n("7 MB");
-// xgettext: no-c-format
-i18n("8 MB");
-// xgettext: no-c-format
-i18n("10 MB");
-// xgettext: no-c-format
-i18n("11 MB");
-// xgettext: no-c-format
-i18n("12 MB");
-// xgettext: no-c-format
-i18n("14 MB");
-// xgettext: no-c-format
-i18n("18 MB");
-// xgettext: no-c-format
-i18n("19 MB");
-// xgettext: no-c-format
-i18n("20 MB");
-// xgettext: no-c-format
-i18n("22 MB");
-// xgettext: no-c-format
-i18n("26 MB");
-// xgettext: no-c-format
-i18n("34 MB");
-// xgettext: no-c-format
-i18n("Legal14");
-// xgettext: no-c-format
-i18n("Legal13");
-// xgettext: no-c-format
-i18n("Com10");
-// xgettext: no-c-format
-i18n("Com9");
-// xgettext: no-c-format
-i18n("Multi Feeder");
-// xgettext: no-c-format
-i18n("TraySwitch");
-// xgettext: no-c-format
-i18n("4 MB");
-// xgettext: no-c-format
-i18n("5 MB");
-// xgettext: no-c-format
-i18n("600x1200dpi");
-// xgettext: no-c-format
-i18n("Multi-Feeder");
-// xgettext: no-c-format
-i18n("2 MB");
-// xgettext: no-c-format
-i18n("4MB");
-// xgettext: no-c-format
-i18n("5MB");
-// xgettext: no-c-format
-i18n("6MB");
-// xgettext: no-c-format
-i18n("7MB");
-// xgettext: no-c-format
-i18n("8MB");
-// xgettext: no-c-format
-i18n("10MB");
-// xgettext: no-c-format
-i18n("11MB");
-// xgettext: no-c-format
-i18n("12MB");
-// xgettext: no-c-format
-i18n("14MB");
-// xgettext: no-c-format
-i18n("18MB");
-// xgettext: no-c-format
-i18n("19MB");
-// xgettext: no-c-format
-i18n("20MB");
-// xgettext: no-c-format
-i18n("22MB");
-// xgettext: no-c-format
-i18n("26MB");
-// xgettext: no-c-format
-i18n("34MB");
-// xgettext: no-c-format
-i18n("35MB");
-// xgettext: no-c-format
-i18n("36MB");
-// xgettext: no-c-format
-i18n("38MB");
-// xgettext: no-c-format
-i18n("42MB");
-// xgettext: no-c-format
-i18n("50MB");
-// xgettext: no-c-format
-i18n("66MB");
-// xgettext: no-c-format
-i18n("Env10");
-// xgettext: no-c-format
-i18n("Env9");
-// xgettext: no-c-format
-i18n("EnvDL");
-// xgettext: no-c-format
-i18n("EnvC4");
-// xgettext: no-c-format
-i18n("EnvC5");
-// xgettext: no-c-format
-i18n("EnvMonarch");
-// xgettext: no-c-format
-i18n("OKHalftoneMode");
-// xgettext: no-c-format
-i18n("Regular");
-// xgettext: no-c-format
-i18n("Photo");
-// xgettext: no-c-format
-i18n("2.5 MB");
-// xgettext: no-c-format
-i18n("3.5 MB");
-// xgettext: no-c-format
-i18n("4.5 MB");
-// xgettext: no-c-format
-i18n("6.5 MB");
-// xgettext: no-c-format
-i18n("10.5 MB");
-// xgettext: no-c-format
-i18n("18.5 MB");
-// xgettext: no-c-format
-i18n("Post Card");
-// xgettext: no-c-format
-i18n("Cardboard");
-// xgettext: no-c-format
-i18n("Coated Film");
-// xgettext: no-c-format
-i18n("Fine Paper");
-// xgettext: no-c-format
-i18n("Iron Seal");
-// xgettext: no-c-format
-i18n("OHP");
-// xgettext: no-c-format
-i18n("OHP (MD 2000)");
-// xgettext: no-c-format
-i18n("Rebeca Free");
-// xgettext: no-c-format
-i18n("Color Depth");
-// xgettext: no-c-format
-i18n("Floyd Steinb. High Qual. (32 bpp)");
-// xgettext: no-c-format
-i18n("Floyd Steinberg Simple (8 bpp)");
-// xgettext: no-c-format
-i18n("Monochrome (1 bpp)");
-// xgettext: no-c-format
-i18n("Simple Color (4 bpp)");
-// xgettext: no-c-format
-i18n("Dithering");
-// xgettext: no-c-format
-i18n("DoubleSided");
-// xgettext: no-c-format
-i18n("SingleSided");
-// xgettext: no-c-format
-i18n("Black toner saving");
-// xgettext: no-c-format
-i18n("EcoBlack");
-// xgettext: no-c-format
-i18n("NormalBlack");
-// xgettext: no-c-format
-i18n("60x144 dpi");
-// xgettext: no-c-format
-i18n("60x72 dpi");
-// xgettext: no-c-format
-i18n("120x144 dpi");
-// xgettext: no-c-format
-i18n("120x72 dpi");
-// xgettext: no-c-format
-i18n("240x144 dpi");
-// xgettext: no-c-format
-i18n("240x72 dpi");
-// xgettext: no-c-format
-i18n("60x180 dpi");
-// xgettext: no-c-format
-i18n("60x216 dpi");
-// xgettext: no-c-format
-i18n("60x60 dpi");
-// xgettext: no-c-format
-i18n("120x180 dpi");
-// xgettext: no-c-format
-i18n("120x216 dpi");
-// xgettext: no-c-format
-i18n("120x60 dpi");
-// xgettext: no-c-format
-i18n("180x180 dpi");
-// xgettext: no-c-format
-i18n("180x216 dpi");
-// xgettext: no-c-format
-i18n("180x60 dpi");
-// xgettext: no-c-format
-i18n("180x72 dpi");
-// xgettext: no-c-format
-i18n("240x180 dpi");
-// xgettext: no-c-format
-i18n("240x216 dpi");
-// xgettext: no-c-format
-i18n("240x60 dpi");
-// xgettext: no-c-format
-i18n("360x180 dpi");
-// xgettext: no-c-format
-i18n("360x216 dpi");
-// xgettext: no-c-format
-i18n("360x60 dpi");
-// xgettext: no-c-format
-i18n("360x72 dpi");
-// xgettext: no-c-format
-i18n("72x72 dpi");
-// xgettext: no-c-format
-i18n("144x144 dpi");
-// xgettext: no-c-format
-i18n("Paper Size");
-// xgettext: no-c-format
-i18n("Paper Tray");
-// xgettext: no-c-format
-i18n("Paper Weight");
-// xgettext: no-c-format
-i18n("Heavier paper (28lb)");
-// xgettext: no-c-format
-i18n("Heaviest paper (32lb)");
-// xgettext: no-c-format
-i18n("Heavy paper (24lb)");
-// xgettext: no-c-format
-i18n("Light Paper (20lb)");
-// xgettext: no-c-format
-i18n("Lightest Paper (16lb)");
-// xgettext: no-c-format
-i18n("Darkness");
-// xgettext: no-c-format
-i18n("Rendering Mode");
-// xgettext: no-c-format
-i18n("Graphics Mode");
-// xgettext: no-c-format
-i18n("Text Mode");
-// xgettext: no-c-format
-i18n("US Executive");
-// xgettext: no-c-format
-i18n("Special Paper");
-// xgettext: no-c-format
-i18n("Envelope Feed");
-// xgettext: no-c-format
-i18n("Output Mode");
-// xgettext: no-c-format
-i18n("CMYK Color");
-// xgettext: no-c-format
-i18n("CMY Color");
-// xgettext: no-c-format
-i18n("CRET Color");
-// xgettext: no-c-format
-i18n("Duplexer");
-// xgettext: no-c-format
-i18n("Address - 1 1/8 x 3 1/2\"");
-// xgettext: no-c-format
-i18n("Large Address - 1 4/10 x 3 1/2\"");
-// xgettext: no-c-format
-i18n("Return Address - 3/4 x 2\"");
-// xgettext: no-c-format
-i18n("Shipping Address - 2 5/16 x 4\"");
-// xgettext: no-c-format
-i18n("Internet Postage 2-Part - 2 1/4 x 7 1/2\"");
-// xgettext: no-c-format
-i18n("Internet Postage 3-Part - 2 1/4 x 7\"");
-// xgettext: no-c-format
-i18n("File Folder - 9/16 x 3 7/16\"");
-// xgettext: no-c-format
-i18n("Hanging Folder - 9/16 x 2\"");
-// xgettext: no-c-format
-i18n("3.5\" Disk - 2 1/8 x 2 3/4\"");
-// xgettext: no-c-format
-i18n("136 DPI");
-// xgettext: no-c-format
-i18n("203 DPI");
-// xgettext: no-c-format
-i18n("Output Darkness");
-// xgettext: no-c-format
-i18n("FanFoldUS");
-// xgettext: no-c-format
-i18n("60 DPI");
-// xgettext: no-c-format
-i18n("120x60 DPI");
-// xgettext: no-c-format
-i18n("360x180 DPI");
-// xgettext: no-c-format
-i18n("360 DPI");
-// xgettext: no-c-format
-i18n("60x72 DPI");
-// xgettext: no-c-format
-i18n("120x72 DPI");
-// xgettext: no-c-format
-i18n("240x72 DPI");
-// xgettext: no-c-format
-i18n("720 DPI");
-// xgettext: no-c-format
-i18n("Page Size and Printing Quality");
-// xgettext: no-c-format
-i18n("A4, 600x600 DPI");
-// xgettext: no-c-format
-i18n("A4, 1200x600 DPI");
-// xgettext: no-c-format
-i18n("B5, 600x600 DPI");
-// xgettext: no-c-format
-i18n("B5, 1200x600 DPI");
-// xgettext: no-c-format
-i18n("Legal, 600x600 DPI");
-// xgettext: no-c-format
-i18n("Legal, 1200x600 DPI");
-// xgettext: no-c-format
-i18n("Letter, 600x600 DPI");
-// xgettext: no-c-format
-i18n("Letter, 1200x600 DPI");
-// xgettext: no-c-format
-i18n("Back Print Media");
-// xgettext: no-c-format
-i18n("High Grade Paper");
-// xgettext: no-c-format
-i18n("Iron-On Transfer Sheet");
-// xgettext: no-c-format
-i18n("Hot OHP Media");
-// xgettext: no-c-format
-i18n("BlackOnly");
-// xgettext: no-c-format
-i18n("HalfTone");
-// xgettext: no-c-format
-i18n("NoHalfTone");
-// xgettext: no-c-format
-i18n("FloydSteinberg");
-// xgettext: no-c-format
-i18n("NoFloydSteinberg");
-// xgettext: no-c-format
-i18n("Banding");
-// xgettext: no-c-format
-i18n("NoBanding");
-// xgettext: no-c-format
-i18n("Color Mode");
-// xgettext: no-c-format
-i18n("Do Curl Correction");
-// xgettext: no-c-format
-i18n("CurlCorrectionAlways");
-// xgettext: no-c-format
-i18n("CurlCorrectionAfterFinal");
-// xgettext: no-c-format
-i18n("Color Correction Mode");
-// xgettext: no-c-format
-i18n("FullBlack");
-// xgettext: no-c-format
-i18n("Next Job");
-// xgettext: no-c-format
-i18n("NextJobOnSameSheet");
-// xgettext: no-c-format
-i18n("NextJobOnNewSheet");
-// xgettext: no-c-format
-i18n("Next Job is spot color page");
-// xgettext: no-c-format
-i18n("NextSpotColorPage");
-// xgettext: no-c-format
-i18n("NextNotSpotColorPage");
-// xgettext: no-c-format
-i18n("Color correction");
-// xgettext: no-c-format
-i18n("NoColorCorrection");
-// xgettext: no-c-format
-i18n("ColorCorrection");
-// xgettext: no-c-format
-i18n("Curl Correction on current pass");
-// xgettext: no-c-format
-i18n("NoCurlCorrectionOnCurrent");
-// xgettext: no-c-format
-i18n("CurlCorrectionOnCurrent");
-// xgettext: no-c-format
-i18n("How often every dot is printed");
-// xgettext: no-c-format
-i18n("PrintTwice");
-// xgettext: no-c-format
-i18n("PrintOnce");
-// xgettext: no-c-format
-i18n("Black Printing Mode");
-// xgettext: no-c-format
-i18n("SolidBlack");
-// xgettext: no-c-format
-i18n("MixedBlack");
-// xgettext: no-c-format
-i18n("Square Dithering");
-// xgettext: no-c-format
-i18n("SquareDithering");
-// xgettext: no-c-format
-i18n("NoSquareDithering");
-// xgettext: no-c-format
-i18n("This Job is spot color page");
-// xgettext: no-c-format
-i18n("ThisSpotColorPage");
-// xgettext: no-c-format
-i18n("ThisNotSpotColorPage");
-// xgettext: no-c-format
-i18n("300 DPI Normal, color and black cartr.");
-// xgettext: no-c-format
-i18n("300 DPI Normal, color cartr. only");
-// xgettext: no-c-format
-i18n("A4, Color");
-// xgettext: no-c-format
-i18n("A4, Grayscale");
-// xgettext: no-c-format
-i18n("Letter, Color");
-// xgettext: no-c-format
-i18n("Letter, Grayscale");
-// xgettext: no-c-format
-i18n("Device");
-// xgettext: no-c-format
-i18n("Link stylewriter in dev directory (set it to the appropriate device)");
-// xgettext: no-c-format
-i18n("Serial Port #1 (Linux)");
-// xgettext: no-c-format
-i18n("Serial Port #2 (Linux)");
-// xgettext: no-c-format
-i18n("Serial Port #1 (NetBSD)");
-// xgettext: no-c-format
-i18n("Serial Port #2 (NetBSD)");
-// xgettext: no-c-format
-i18n("Pass output to device set by the spooler");
-// xgettext: no-c-format
-i18n("Label Size");
-// xgettext: no-c-format
-i18n("2.25x7.5in, 59x190mm (Lever archive - large)");
-// xgettext: no-c-format
-i18n("1.4x7.5in, 38x190mm (Lever archive - small)");
-// xgettext: no-c-format
-i18n("2.125x4.0in, 54x101mm (Shipping badge)");
-// xgettext: no-c-format
-i18n("2.125x2.75in, 54x70mm (Diskette)");
-// xgettext: no-c-format
-i18n("1.4x3.5in, 36x89mm (Large address)");
-// xgettext: no-c-format
-i18n("1.125x3.5in, 28x89mm (Standard address)");
-// xgettext: no-c-format
-i18n("0.5x2in, 12x50mm (Suspension file)");
-// xgettext: no-c-format
-i18n("0.75x5.875in, 19x147mm (Video tape spine)");
-// xgettext: no-c-format
-i18n("1.8x3.1in, 46x78mm (Video tape top)");
-// xgettext: no-c-format
-i18n("Dual");
-// xgettext: no-c-format
-i18n("Thicker Paper");
-// xgettext: no-c-format
-i18n("Toner Saving");
-// xgettext: no-c-format
-i18n("High (50%)");
-// xgettext: no-c-format
-i18n("Low (25%)");
-// xgettext: no-c-format
-i18n("2400x600 DPI");
-// xgettext: no-c-format
-i18n("180x360 dpi");
-// xgettext: no-c-format
-i18n("360x360 dpi");
-// xgettext: no-c-format
-i18n("Media Weight");
-// xgettext: no-c-format
-i18n("Normal paper");
-// xgettext: no-c-format
-i18n("Thick paper");
-// xgettext: no-c-format
-i18n("Draft Quality");
-// xgettext: no-c-format
-i18n("Normal Quality");
-// xgettext: no-c-format
-i18n("Ghostscript Bits Per Pixel");
-// xgettext: no-c-format
-i18n("Monochrome (1bpp)");
-// xgettext: no-c-format
-i18n("CMYK with Ghostscript dithering (8bpp)");
-// xgettext: no-c-format
-i18n("CMYK with Ghostscript FS dithering (16bpp)");
-// xgettext: no-c-format
-i18n("CMYK with FS dithering (24 bpp)");
-// xgettext: no-c-format
-i18n("CMYK with FS dithering (32 bpp)");
-// xgettext: no-c-format
-i18n("Mode");
-// xgettext: no-c-format
-i18n("Four-color CMYK");
-// xgettext: no-c-format
-i18n("Greyscale");
-// xgettext: no-c-format
-i18n("Three-color RGB");
-// xgettext: no-c-format
-i18n("Colors to be used");
-// xgettext: no-c-format
-i18n("Cyan only");
-// xgettext: no-c-format
-i18n("Cyan, Black");
-// xgettext: no-c-format
-i18n("Cyan, Magenta");
-// xgettext: no-c-format
-i18n("Cyan, Magenta, Black");
-// xgettext: no-c-format
-i18n("Cyan, Magenta, Yellow");
-// xgettext: no-c-format
-i18n("Cyan, Magenta, Yellow, Black");
-// xgettext: no-c-format
-i18n("Cyan, Yellow");
-// xgettext: no-c-format
-i18n("Cyan, Yellow, Black");
-// xgettext: no-c-format
-i18n("Black only");
-// xgettext: no-c-format
-i18n("Black for any color");
-// xgettext: no-c-format
-i18n("Magenta only");
-// xgettext: no-c-format
-i18n("Magenta, Black");
-// xgettext: no-c-format
-i18n("Magenta, Yellow");
-// xgettext: no-c-format
-i18n("Magenta, Yellow, Black");
-// xgettext: no-c-format
-i18n("Yellow only");
-// xgettext: no-c-format
-i18n("Yellow, Black");
-// xgettext: no-c-format
-i18n("Auto Sheet Feeder");
-// xgettext: no-c-format
-i18n("Manual without Pause");
-// xgettext: no-c-format
-i18n("Manual with Pause");
-// xgettext: no-c-format
-i18n("Back Print Film");
-// xgettext: no-c-format
-i18n("Fabric Sheets");
-// xgettext: no-c-format
-i18n("Glossy Photo Cards");
-// xgettext: no-c-format
-i18n("Glossy Photo Paper");
-// xgettext: no-c-format
-i18n("High Gloss Film");
-// xgettext: no-c-format
-i18n("High Resolution Paper");
-// xgettext: no-c-format
-i18n("Photo Paper Pro");
-// xgettext: no-c-format
-i18n("T-Shirt Transfers");
-// xgettext: no-c-format
-i18n("Black");
-// xgettext: no-c-format
-i18n("1440 DPI");
-// xgettext: no-c-format
-i18n("1440x720 DPI");
-// xgettext: no-c-format
-i18n("180x180 DPI");
-// xgettext: no-c-format
-i18n("360x360 DPI");
-// xgettext: no-c-format
-i18n("720x360 DPI");
-// xgettext: no-c-format
-i18n("360×360dpi, back print film");
-// xgettext: no-c-format
-i18n("360×360dpi, coated paper");
-// xgettext: no-c-format
-i18n("360×360dpi, fabric sheet");
-// xgettext: no-c-format
-i18n("360×360dpi, glossy paper");
-// xgettext: no-c-format
-i18n("360×360dpi, high gloss film");
-// xgettext: no-c-format
-i18n("360×360dpi, high resolution paper");
-// xgettext: no-c-format
-i18n("360×360dpi, plain paper");
-// xgettext: no-c-format
-i18n("360×360dpi, plain paper, high speed");
-// xgettext: no-c-format
-i18n("360×360dpi, transparency film");
-// xgettext: no-c-format
-i18n("720 dpi");
-// xgettext: no-c-format
-i18n("Black and Color");
-// xgettext: no-c-format
-i18n("Photo and Color");
-// xgettext: no-c-format
-i18n("360x360 DPI DMT");
-// xgettext: no-c-format
-i18n("720x720 DPI");
-// xgettext: no-c-format
-i18n("Low Quality");
-// xgettext: no-c-format
-i18n("720×720dpi, back print film");
-// xgettext: no-c-format
-i18n("720×720dpi, coated paper");
-// xgettext: no-c-format
-i18n("720×720dpi, glossy paper");
-// xgettext: no-c-format
-i18n("720×720dpi, high-gloss paper");
-// xgettext: no-c-format
-i18n("720×720dpi, high resolution paper");
-// xgettext: no-c-format
-i18n("720×720dpi, plain paper");
-// xgettext: no-c-format
-i18n("720×720dpi, transparency film");
-// xgettext: no-c-format
-i18n("Black and Photo catridges");
-// xgettext: no-c-format
-i18n("600×600dpi, iron-on transfer sheets, normal quality");
-// xgettext: no-c-format
-i18n("600×600dpi, plain paper, normal quality");
-// xgettext: no-c-format
-i18n("600×600dpi, transparencies, normal quality");
-// xgettext: no-c-format
-i18n("1200×1200dpi, glossy photo cards, high quality");
-// xgettext: no-c-format
-i18n("1200×1200dpi, high gloss photo paper, high quality");
-// xgettext: no-c-format
-i18n("1200×1200dpi, professional photo paper, highest quality");
-// xgettext: no-c-format
-i18n("300x300 DPI DMT");
-// xgettext: no-c-format
-i18n("600x600 DPI DMT");
-// xgettext: no-c-format
-i18n("Monochrome, fast");
-// xgettext: no-c-format
-i18n("Monochrome, Floyd-Steinberg");
-// xgettext: no-c-format
-i18n("ESC/P2 Encoding");
-// xgettext: no-c-format
-i18n("Delta Row");
-// xgettext: no-c-format
-i18n("Run Length");
-// xgettext: no-c-format
-i18n("Uncompressed");
-// xgettext: no-c-format
-i18n("Preconfiguration file");
-// xgettext: no-c-format
-i18n("stcolor");
-// xgettext: no-c-format
-i18n("none");
-// xgettext: no-c-format
-i18n("Head motion");
-// xgettext: no-c-format
-i18n("Initialization values for dithering");
-// xgettext: no-c-format
-i18n("Uniform");
-// xgettext: no-c-format
-i18n("Random");
-// xgettext: no-c-format
-i18n("Weaving");
-// xgettext: no-c-format
-i18n("Microweave (Printer internal)");
-// xgettext: no-c-format
-i18n("Softweave (Driver internal)");
-// xgettext: no-c-format
-i18n("360×360dpi, 32-bit CMYK");
-// xgettext: no-c-format
-i18n("3360×360dpi, 4-bit, PostScript halftoning, weaved");
-// xgettext: no-c-format
-i18n("720×720dpi, 32-bit CMYK, weaved");
-// xgettext: no-c-format
-i18n("Color, Floyd-Steinberg, CMYK, better");
-// xgettext: no-c-format
-i18n("Color, fast, CMYK");
-// xgettext: no-c-format
-i18n("Color, modif. Floyd-Steinberg, CMYK, faster");
-// xgettext: no-c-format
-i18n("Color, fast, RGB");
-// xgettext: no-c-format
-i18n("Color, Floyd-Steinberg, RGB");
-// xgettext: no-c-format
-i18n("Color, Floyd-Steinberg, CMYK, simpler");
-// xgettext: no-c-format
-i18n("Color, Stefan-Singer algorithm, RGB");
-// xgettext: no-c-format
-i18n("Back Light Film");
-// xgettext: no-c-format
-i18n("Glossy Film");
-// xgettext: no-c-format
-i18n("Inkjet Paper");
-// xgettext: no-c-format
-i18n("Matte Paper");
-// xgettext: no-c-format
-i18n("Photo Quality Glossy Paper");
-// xgettext: no-c-format
-i18n("Photo Quality Inkjet Paper");
-// xgettext: no-c-format
-i18n("Plain Paper Fast Load");
-// xgettext: no-c-format
-i18n("Premium Glossy Photo Paper");
-// xgettext: no-c-format
-i18n("720 DPI Microweave");
-// xgettext: no-c-format
-i18n("360 DPI High Quality");
-// xgettext: no-c-format
-i18n("360 DPI Softweave");
-// xgettext: no-c-format
-i18n("720 DPI Highest Quality");
-// xgettext: no-c-format
-i18n("720 DPI High Quality");
-// xgettext: no-c-format
-i18n("720 DPI Softweave");
-// xgettext: no-c-format
-i18n("1440 x 1440 DPI Emulated");
-// xgettext: no-c-format
-i18n("1440 x 2880 DPI Emulated");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Highest Quality");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Softweave");
-// xgettext: no-c-format
-i18n("B3 ISO");
-// xgettext: no-c-format
-i18n("B3 JIS");
-// xgettext: no-c-format
-i18n("RA2");
-// xgettext: no-c-format
-i18n("360 dpi, plain paper");
-// xgettext: no-c-format
-i18n("720 dpi, plain paper");
-// xgettext: no-c-format
-i18n("1440×720dpi, inkjet paper");
-// xgettext: no-c-format
-i18n("360×360dpi, plain paper, grayscale");
-// xgettext: no-c-format
-i18n("720×720dpi, inkjet paper");
-// xgettext: no-c-format
-i18n("720×720dpi, plain paper, grayscale");
-// xgettext: no-c-format
-i18n("1440×720dpi, inkjet paper, grayscale");
-// xgettext: no-c-format
-i18n("720x720dpi, plain paper");
-// xgettext: no-c-format
-i18n("360×360dpi");
-// xgettext: no-c-format
-i18n("720×720dpi");
-// xgettext: no-c-format
-i18n("Four color CMYK printing");
-// xgettext: no-c-format
-i18n("Six color CMYKcm printing");
-// xgettext: no-c-format
-i18n("75x75 dpi");
-// xgettext: no-c-format
-i18n("150x150 dpi");
-// xgettext: no-c-format
-i18n("2-passes x-weaving");
-// xgettext: no-c-format
-i18n("3-passes x-weaving");
-// xgettext: no-c-format
-i18n("2400 DPI");
-// xgettext: no-c-format
-i18n("Reset printer before printing");
-// xgettext: no-c-format
-i18n("NoReset");
-// xgettext: no-c-format
-i18n("Reset");
-// xgettext: no-c-format
-i18n("Power saving mode after printing");
-// xgettext: no-c-format
-i18n("PowerSaving");
-// xgettext: no-c-format
-i18n("NoPowerSaving");
-// xgettext: no-c-format
-i18n("Bits per R/G/B component");
-// xgettext: no-c-format
-i18n("HalfLetter");
-// xgettext: no-c-format
-i18n("B6-C4");
-// xgettext: no-c-format
-i18n("C7-6");
-// xgettext: no-c-format
-i18n("ArchA");
-// xgettext: no-c-format
-i18n("flsa");
-// xgettext: no-c-format
-i18n("flse");
-// xgettext: no-c-format
-i18n("Small paperback");
-// xgettext: no-c-format
-i18n("Penguin small paperback");
-// xgettext: no-c-format
-i18n("Penguin large paperback");
-// xgettext: no-c-format
-i18n("Long 3");
-// xgettext: no-c-format
-i18n("Long 4");
-// xgettext: no-c-format
-i18n("Kaku");
-// xgettext: no-c-format
-i18n("Commercial 10");
-// xgettext: no-c-format
-i18n("A2 Invitation");
-// xgettext: no-c-format
-i18n("ColorModel");
-// xgettext: no-c-format
-i18n("Line Art");
-// xgettext: no-c-format
-i18n("Solid Tone");
-// xgettext: no-c-format
-i18n("Photograph");
-// xgettext: no-c-format
-i18n("MediaType");
-// xgettext: no-c-format
-i18n("Transparencies");
-// xgettext: no-c-format
-i18n("Dither");
-// xgettext: no-c-format
-i18n("300 DPI x 600 DPI");
-// xgettext: no-c-format
-i18n("600 DPI high quality");
-// xgettext: no-c-format
-i18n("600 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("1200 DPI high quality");
-// xgettext: no-c-format
-i18n("1200 DPI highest quality");
-// xgettext: no-c-format
-i18n("1200 DPI  Unidirectional");
-// xgettext: no-c-format
-i18n("2400 DPI x 1200 DPI");
-// xgettext: no-c-format
-i18n("2400 DPI x 1200 DPI high quality");
-// xgettext: no-c-format
-i18n("2400 DPI x 1200 DPI highest quality");
-// xgettext: no-c-format
-i18n("ArchB");
-// xgettext: no-c-format
-i18n("Envelopes");
-// xgettext: no-c-format
-i18n("Premium Luster Photo Paper");
-// xgettext: no-c-format
-i18n("180 x 120 DPI");
-// xgettext: no-c-format
-i18n("180 x 120 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("360 x 120 DPI");
-// xgettext: no-c-format
-i18n("360 x 120 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("360 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("360 DPI Microweave");
-// xgettext: no-c-format
-i18n("360 DPI Microweave Unidirectional");
-// xgettext: no-c-format
-i18n("360 DPI High Quality Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI Softweave");
-// xgettext: no-c-format
-i18n("720 x 360 DPI Softweave Unidirectional");
-// xgettext: no-c-format
-i18n("720 DPI Microweave Unidirectional");
-// xgettext: no-c-format
-i18n("720 DPI Softweave Unidirectional");
-// xgettext: no-c-format
-i18n("720 DPI High Quality Unidirectional");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Softweave Unidirectional");
-// xgettext: no-c-format
-i18n("Roll Feed");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI Softweave");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI Softweave Unidirectional");
-// xgettext: no-c-format
-i18n("180 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("360 DPI Full Overlap");
-// xgettext: no-c-format
-i18n("360 DPI Full Overlap Unidirectional");
-// xgettext: no-c-format
-i18n("360 DPI FOL2");
-// xgettext: no-c-format
-i18n("360 DPI FOL2 Unidirectional");
-// xgettext: no-c-format
-i18n("360 DPI MW2");
-// xgettext: no-c-format
-i18n("360 DPI MW2 Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI Default");
-// xgettext: no-c-format
-i18n("720 x 360 DPI Default Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI Microweave");
-// xgettext: no-c-format
-i18n("720 x 360 DPI Microweave Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI FOL");
-// xgettext: no-c-format
-i18n("720 x 360 DPI FOL Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI FOL2");
-// xgettext: no-c-format
-i18n("720 x 360 DPI FOL2 Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI MW2");
-// xgettext: no-c-format
-i18n("720 x 360 DPI MW2 Unidirectional");
-// xgettext: no-c-format
-i18n("720 DPI Full Overlap");
-// xgettext: no-c-format
-i18n("720 DPI Full Overlap Unidirectional");
-// xgettext: no-c-format
-i18n("720 DPI Four Pass");
-// xgettext: no-c-format
-i18n("720 DPI Four Pass Unidirectional");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Microweave");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Microweave Unidirectional");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI FOL");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI FOL Unidirectional");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Four Pass");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Four Pass Unidirectional");
-// xgettext: no-c-format
-i18n("20x24");
-// xgettext: no-c-format
-i18n("20x30");
-// xgettext: no-c-format
-i18n("24x30");
-// xgettext: no-c-format
-i18n("24x36");
-// xgettext: no-c-format
-i18n("SRA2");
-// xgettext: no-c-format
-i18n("B2 ISO");
-// xgettext: no-c-format
-i18n("B2 JIS");
-// xgettext: no-c-format
-i18n("C2");
-// xgettext: no-c-format
-i18n("ArchC");
-// xgettext: no-c-format
-i18n("ArchD");
-// xgettext: no-c-format
-i18n("30x40");
-// xgettext: no-c-format
-i18n("RA0");
-// xgettext: no-c-format
-i18n("RA1");
-// xgettext: no-c-format
-i18n("SRA0");
-// xgettext: no-c-format
-i18n("SRA1");
-// xgettext: no-c-format
-i18n("B0 ISO");
-// xgettext: no-c-format
-i18n("B1 ISO");
-// xgettext: no-c-format
-i18n("B0 JIS");
-// xgettext: no-c-format
-i18n("B1 JIS");
-// xgettext: no-c-format
-i18n("C0");
-// xgettext: no-c-format
-i18n("C1");
-// xgettext: no-c-format
-i18n("ArchE");
-// xgettext: no-c-format
-i18n("1200 x 1200 DPI");
-// xgettext: no-c-format
-i18n("1200 x 600 DPI");
-// xgettext: no-c-format
-i18n("13 Inch Roll Paper");
-// xgettext: no-c-format
-i18n("1440 x 1440 DPI");
-// xgettext: no-c-format
-i18n("1440 x 1440 DPI Highest Quality");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI");
-// xgettext: no-c-format
-i18n("1440 x 720 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("150 x 150 DPI");
-// xgettext: no-c-format
-i18n("180 DPI Economy Draft");
-// xgettext: no-c-format
-i18n("180 x 180 DPI");
-// xgettext: no-c-format
-i18n("210 mm Roll Paper");
-// xgettext: no-c-format
-i18n("22 Inch Roll Paper");
-// xgettext: no-c-format
-i18n("2400 x 1200 DPI");
-// xgettext: no-c-format
-i18n("240x240 DPI");
-// xgettext: no-c-format
-i18n("24 Inch Roll Paper");
-// xgettext: no-c-format
-i18n("2880 x 1440 DPI");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI");
-// xgettext: no-c-format
-i18n("2880 x 720 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("300 dpi, Color, Black & Color Cartr., Plain Paper");
-// xgettext: no-c-format
-i18n("300 dpi, Color, Color Cartr., Plain Paper");
-// xgettext: no-c-format
-i18n("300 dpi, Grayscale, Black Cartr., Plain Paper");
-// xgettext: no-c-format
-i18n("300 dpi, Grayscale, Black & Color Cartr., Plain Paper");
-// xgettext: no-c-format
-i18n("300 dpi, Photo, Black & Color Cartr., Photo Paper");
-// xgettext: no-c-format
-i18n("300 dpi, Photo, Photo & Color Cartr., Premium Paper");
-// xgettext: no-c-format
-i18n("300 x 300 DPI");
-// xgettext: no-c-format
-i18n("300 x 600 DPI");
-// xgettext: no-c-format
-i18n("360×360dpi, 4-bit, PostScript halftoning, weaved");
-// xgettext: no-c-format
-i18n("360 x 120 DPI Economy Draft");
-// xgettext: no-c-format
-i18n("360 x 180 DPI");
-// xgettext: no-c-format
-i18n("360 x 180 DPI Draft");
-// xgettext: no-c-format
-i18n("360 x 240 DPI");
-// xgettext: no-c-format
-i18n("360 x 240 DPI Draft");
-// xgettext: no-c-format
-i18n("360 x 360 DPI");
-// xgettext: no-c-format
-i18n("360x720 DPI");
-// xgettext: no-c-format
-i18n("360 x 90 DPI");
-// xgettext: no-c-format
-i18n("360 x 90 DPI Fast Economy Draft");
-// xgettext: no-c-format
-i18n("36 Inch Roll Paper");
-// xgettext: no-c-format
-i18n("3-ink color (Color ink cartridge)");
-// xgettext: no-c-format
-i18n("400x400 DPI");
-// xgettext: no-c-format
-i18n("44 Inch Roll Paper");
-// xgettext: no-c-format
-i18n("4 Inch Roll Paper");
-// xgettext: no-c-format
-i18n("4-ink color (Both ink cartridges)");
-// xgettext: no-c-format
-i18n("5 Inch Roll Paper");
-// xgettext: no-c-format
-i18n("600 dpi, Color, Black & Color Cartr., Plain Paper");
-// xgettext: no-c-format
-i18n("600 dpi, Color, Color Cartr., Plain Paper");
-// xgettext: no-c-format
-i18n("600 dpi, Grayscale, Black & Color Cartr., Plain Paper");
-// xgettext: no-c-format
-i18n("600 dpi, Photo, Black & Color Cartr., Photo Paper");
-// xgettext: no-c-format
-i18n("600 x 300 DPI");
-// xgettext: no-c-format
-i18n("600 x 600 DPI");
-// xgettext: no-c-format
-i18n("720 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 360 DPI");
-// xgettext: no-c-format
-i18n("720 x 360 DPI Unidirectional");
-// xgettext: no-c-format
-i18n("720 x 720 DPI");
-// xgettext: no-c-format
-i18n("89 mm Roll Paper");
-// xgettext: no-c-format
-i18n("90 x 90 DPI");
-// xgettext: no-c-format
-i18n("90x90 DPI");
-// xgettext: no-c-format
-i18n("A4, Colour");
-// xgettext: no-c-format
-i18n("Always");
-// xgettext: no-c-format
-i18n("B6 (ISO)");
-// xgettext: no-c-format
-i18n("Behaviour when Toner Low");
-// xgettext: no-c-format
-i18n("Bidirectional Printing");
-// xgettext: no-c-format
-i18n("Black and Blue (Cyan, Magenta, Black)");
-// xgettext: no-c-format
-i18n("Black and Cyan");
-// xgettext: no-c-format
-i18n("Black and Green (Cyan, Yellow, Black)");
-// xgettext: no-c-format
-i18n("Black and Magenta");
-// xgettext: no-c-format
-i18n("Black and Red (Magenta, Yellow, Black)");
-// xgettext: no-c-format
-i18n("Black and Yellow");
-// xgettext: no-c-format
-i18n("Black cartridge");
-// xgettext: no-c-format
-i18n("Black Cartridge");
-// xgettext: no-c-format
-i18n("Black correction (Cyan reduction)");
-// xgettext: no-c-format
-i18n("Black for any colour");
-// xgettext: no-c-format
-i18n("Black ink density adjustment.");
-// xgettext: no-c-format
-i18n("Black Level");
-// xgettext: no-c-format
-i18n("Black Level (Black cartr. only)");
-// xgettext: no-c-format
-i18n("Blue (Cyan and Magenta)");
-// xgettext: no-c-format
-i18n("Bottom Margin");
-// xgettext: no-c-format
-i18n("Brightness");
-// xgettext: no-c-format
-i18n("Color cartridge");
-// xgettext: no-c-format
-i18n("Color (Draft Quality)");
-// xgettext: no-c-format
-i18n("Color (High Quality)");
-// xgettext: no-c-format
-i18n("Color, normal quality, optional colour correction");
-// xgettext: no-c-format
-i18n("Colour");
-// xgettext: no-c-format
-i18n("Colour Cartridge");
-// xgettext: no-c-format
-i18n("Colour correction");
-// xgettext: no-c-format
-i18n("Colour Correction");
-// xgettext: no-c-format
-i18n("ColourCorrection");
-// xgettext: no-c-format
-i18n("Colour Correction Mode");
-// xgettext: no-c-format
-i18n("Colour Depth");
-// xgettext: no-c-format
-i18n("Colour, fast, CMYK");
-// xgettext: no-c-format
-i18n("Colour, fast, RGB");
-// xgettext: no-c-format
-i18n("Colour, Floyd-Steinberg, CMYK, better");
-// xgettext: no-c-format
-i18n("Colour, Floyd-Steinberg, CMYK, simpler");
-// xgettext: no-c-format
-i18n("Colour, Floyd-Steinberg, RGB");
-// xgettext: no-c-format
-i18n("Colour Intensity");
-// xgettext: no-c-format
-i18n("Colour mode");
-// xgettext: no-c-format
-i18n("Colour Mode");
-// xgettext: no-c-format
-i18n("Colour, modif. Floyd-Steinberg, CMYK, faster");
-// xgettext: no-c-format
-i18n("Colours one page at a time");
-// xgettext: no-c-format
-i18n("Colour, Stefan-Singer algorithm, RGB");
-// xgettext: no-c-format
-i18n("Colours to be printed");
-// xgettext: no-c-format
-i18n("Colours to be used");
-// xgettext: no-c-format
-i18n("Composed Black");
-// xgettext: no-c-format
-i18n("Compressed Data Transfer");
-// xgettext: no-c-format
-i18n("Continuous-tone photographs");
-// xgettext: no-c-format
-i18n("Contrast Level");
-// xgettext: no-c-format
-i18n("CorrectBlack");
-// xgettext: no-c-format
-i18n("Curl Correction");
-// xgettext: no-c-format
-i18n("Cyan");
-// xgettext: no-c-format
-i18n("Cyan Level");
-// xgettext: no-c-format
-i18n("Cyan Level (Colour cartr. only)");
-// xgettext: no-c-format
-i18n("Default behaviour");
-// xgettext: no-c-format
-i18n("Distance even/odd nozzles left cartr.");
-// xgettext: no-c-format
-i18n("Distance even/odd nozzles right cartr.");
-// xgettext: no-c-format
-i18n("Dither Algorithm");
-// xgettext: no-c-format
-i18n("Dithering Pixels Per Inch");
-// xgettext: no-c-format
-i18n("Dithering PPI");
-// xgettext: no-c-format
-i18n("Do not care about cartridges, colours one page at a time");
-// xgettext: no-c-format
-i18n("Do not care about cartridges, each line in all colours");
-// xgettext: no-c-format
-i18n("DoNotOverlay");
-// xgettext: no-c-format
-i18n("Driver Default");
-// xgettext: no-c-format
-i18n("Each line in all colours");
-// xgettext: no-c-format
-i18n("Executive, 1200x600 DPI");
-// xgettext: no-c-format
-i18n("Executive, 600x600 DPI");
-// xgettext: no-c-format
-i18n("FaceDown");
-// xgettext: no-c-format
-i18n("FaceUp");
-// xgettext: no-c-format
-i18n("First pass of an overlayed printout");
-// xgettext: no-c-format
-i18n("Five Color Photo Composite");
-// xgettext: no-c-format
-i18n("Floyd-Steinberg (not recommended for MicroDry)");
-// xgettext: no-c-format
-i18n("Foolscap A");
-// xgettext: no-c-format
-i18n("Foolscap E");
-// xgettext: no-c-format
-i18n("Four Color Standard");
-// xgettext: no-c-format
-i18n("FullPaint");
-// xgettext: no-c-format
-i18n("Gamma");
-// xgettext: no-c-format
-i18n("Gamma Black");
-// xgettext: no-c-format
-i18n("Gamma (Blue Component)");
-// xgettext: no-c-format
-i18n("Gamma Correction");
-// xgettext: no-c-format
-i18n("Gamma correction on saturation HSV component");
-// xgettext: no-c-format
-i18n("Gamma Cyan");
-// xgettext: no-c-format
-i18n("Gamma (Green Component)");
-// xgettext: no-c-format
-i18n("Gamma Magenta");
-// xgettext: no-c-format
-i18n("Gamma (Red Component)");
-// xgettext: no-c-format
-i18n("Gamma Yellow");
-// xgettext: no-c-format
-i18n("Generic DeskJet");
-// xgettext: no-c-format
-i18n("Glossy finishing");
-// xgettext: no-c-format
-i18n("Glossy Photo");
-// xgettext: no-c-format
-i18n("Gray Scale");
-// xgettext: no-c-format
-i18n("Grayscale (Black ink cartridge)");
-// xgettext: no-c-format
-i18n("Green (Cyan and Yellow)");
-// xgettext: no-c-format
-i18n("Hagaki");
-// xgettext: no-c-format
-i18n("Halftone (recommended for general use)");
-// xgettext: no-c-format
-i18n("Head Separation");
-// xgettext: no-c-format
-i18n("Horiz. Alignm. betw. Cartr.");
-// xgettext: no-c-format
-i18n("Horizontal (X-)Shift (in dots)");
-// xgettext: no-c-format
-i18n("Horz. align. betw. cartr.");
-// xgettext: no-c-format
-i18n("HP LaserJet 4L");
-// xgettext: no-c-format
-i18n("HP LaserJet III series");
-// xgettext: no-c-format
-i18n("HP LaserJet II series");
-// xgettext: no-c-format
-i18n("IgnoreSize");
-// xgettext: no-c-format
-i18n("Ilford Heavy Paper");
-// xgettext: no-c-format
-i18n("Ink Drying Time (sec)");
-// xgettext: no-c-format
-i18n("Inverse Printing");
-// xgettext: no-c-format
-i18n("Japanese Kaku envelope #4");
-// xgettext: no-c-format
-i18n("Japanese long envelope #3");
-// xgettext: no-c-format
-i18n("Japanese long envelope #4");
-// xgettext: no-c-format
-i18n("Job Type");
-// xgettext: no-c-format
-i18n("KeepBlack");
-// xgettext: no-c-format
-i18n("Keep pure black");
-// xgettext: no-c-format
-i18n("Landscape");
-// xgettext: no-c-format
-i18n("Last pass of an overlayed printout");
-// xgettext: no-c-format
-i18n("Left Margin");
-// xgettext: no-c-format
-i18n("Left Skip (in pixels)");
-// xgettext: no-c-format
-i18n("Letter, Colour");
-// xgettext: no-c-format
-i18n("Limit Error from Paper Colour Correction");
-// xgettext: no-c-format
-i18n("Line Feed Adjustment");
-// xgettext: no-c-format
-i18n("Magenta");
-// xgettext: no-c-format
-i18n("Magenta Level");
-// xgettext: no-c-format
-i18n("Magenta Level (Colour cartr. only)");
-// xgettext: no-c-format
-i18n("Memory Limit (Bytes)");
-// xgettext: no-c-format
-i18n("Middle pass of an overlayed printout");
-// xgettext: no-c-format
-i18n("Monochrome printing, re-usable economy black cartridge");
-// xgettext: no-c-format
-i18n("Monochrome printing, standard black cartridge");
-// xgettext: no-c-format
-i18n("More than 4 colours, colours one page at a time");
-// xgettext: no-c-format
-i18n("Never");
-// xgettext: no-c-format
-i18n("Next Job is spot colour page");
-// xgettext: no-c-format
-i18n("NextNotSpotColourPage");
-// xgettext: no-c-format
-i18n("NextSpotColourPage");
-// xgettext: no-c-format
-i18n("NoColourCorrection");
-// xgettext: no-c-format
-i18n("No dithering");
-// xgettext: no-c-format
-i18n("noGlossy");
-// xgettext: no-c-format
-i18n("Non-Bleed");
-// xgettext: no-c-format
-i18n("None (RGB --> CMY)");
-// xgettext: no-c-format
-i18n("Normal Quality Colour (4-ink)");
-// xgettext: no-c-format
-i18n("Number of Copies");
-// xgettext: no-c-format
-i18n("Number of passes per line");
-// xgettext: no-c-format
-i18n("Orientation");
-// xgettext: no-c-format
-i18n("Oufuku-Hagaki");
-// xgettext: no-c-format
-i18n("Output Type");
-// xgettext: no-c-format
-i18n("Page Output");
-// xgettext: no-c-format
-i18n("Paper Colour (Blue Component)");
-// xgettext: no-c-format
-i18n("Paper Colour (Green Component)");
-// xgettext: no-c-format
-i18n("Paper Colour (Red Component)");
-// xgettext: no-c-format
-i18n("PartialPaint");
-// xgettext: no-c-format
-i18n("Photo CcMmY Color");
-// xgettext: no-c-format
-i18n("Photo CcMmYK Color");
-// xgettext: no-c-format
-i18n("Photo (CMYK, gamma correction, ...)");
-// xgettext: no-c-format
-i18n("Photo Full Bleed");
-// xgettext: no-c-format
-i18n("Photo Quality Colour (6-ink)");
-// xgettext: no-c-format
-i18n("Plain (RGB --> CMYK)");
-// xgettext: no-c-format
-i18n("Portrait");
-// xgettext: no-c-format
-i18n("Presentation Quality");
-// xgettext: no-c-format
-i18n("Primarily solid colors or smooth gradients");
-// xgettext: no-c-format
-i18n("Printer Model");
-// xgettext: no-c-format
-i18n("Printer's paper size");
-// xgettext: no-c-format
-i18n("Print next job over the current one");
-// xgettext: no-c-format
-i18n("Printout Quality");
-// xgettext: no-c-format
-i18n("Quality, Ink Type, Media Type");
-// xgettext: no-c-format
-i18n("Randomization of Floyd-Steinberg");
-// xgettext: no-c-format
-i18n("Raw CMYK");
-// xgettext: no-c-format
-i18n("Red (Magenta and Yellow)");
-// xgettext: no-c-format
-i18n("RequireSize");
-// xgettext: no-c-format
-i18n("Reset after job");
-// xgettext: no-c-format
-i18n("Right Margin");
-// xgettext: no-c-format
-i18n("RIT Control");
-// xgettext: no-c-format
-i18n("RITOff");
-// xgettext: no-c-format
-i18n("RITOn");
-// xgettext: no-c-format
-i18n("Roll Paper");
-// xgettext: no-c-format
-i18n("Shift output horizontally (in 1/300 inch)");
-// xgettext: no-c-format
-i18n("Shift output vertically (in 1/300 inch)");
-// xgettext: no-c-format
-i18n("Simple Colour (4 bpp)");
-// xgettext: no-c-format
-i18n("Single Pass Job");
-// xgettext: no-c-format
-i18n("Six Color Photo");
-// xgettext: no-c-format
-i18n("Smooth Printing (BC-02 cartridge)");
-// xgettext: no-c-format
-i18n("Solid Colors");
-// xgettext: no-c-format
-i18n("Square (experimental, not recommended)");
-// xgettext: no-c-format
-i18n("StpBrightness");
-// xgettext: no-c-format
-i18n("StpGamma");
-// xgettext: no-c-format
-i18n("StpSaturation");
-// xgettext: no-c-format
-i18n("Super B 13x19");
-// xgettext: no-c-format
-i18n("Thick Paper/Card Board");
-// xgettext: no-c-format
-i18n("This Job is spot colour page");
-// xgettext: no-c-format
-i18n("ThisNotSpotColourPage");
-// xgettext: no-c-format
-i18n("ThisSpotColourPage");
-// xgettext: no-c-format
-i18n("Three Color Composite");
-// xgettext: no-c-format
-i18n("Toner Density");
-// xgettext: no-c-format
-i18n("TonerSaving");
-// xgettext: no-c-format
-i18n("Top Margin");
-// xgettext: no-c-format
-i18n("Top Skip (in pixels)");
-// xgettext: no-c-format
-i18n("Transparency Paper");
-// xgettext: no-c-format
-i18n("Tray 10");
-// xgettext: no-c-format
-i18n("Tray 11");
-// xgettext: no-c-format
-i18n("Tray 12");
-// xgettext: no-c-format
-i18n("Tray 13");
-// xgettext: no-c-format
-i18n("Tray 14");
-// xgettext: no-c-format
-i18n("Tray 15");
-// xgettext: no-c-format
-i18n("Tray 8");
-// xgettext: no-c-format
-i18n("Tray 9");
-// xgettext: no-c-format
-i18n("Use multi-colour ribbon");
-// xgettext: no-c-format
-i18n("UseMultiColourRibbon");
-// xgettext: no-c-format
-i18n("UseStandardRibbons");
-// xgettext: no-c-format
-i18n("Vert. align. betw. cartr.");
-// xgettext: no-c-format
-i18n("Vert. Alignm. betw. Cartr.");
-// xgettext: no-c-format
-i18n("Vertical (Y-)Shift (in dots)");
-// xgettext: no-c-format
-i18n("X Offset");
-// xgettext: no-c-format
-i18n("Yellow Level");
-// xgettext: no-c-format
-i18n("Yellow Level (Colour cartr. only)");
-// xgettext: no-c-format
-i18n("Y Offset");
diff --git a/kdeprint/descriptions/readppd b/kdeprint/descriptions/readppd
deleted file mode 100755
index 2c7621a36..000000000
--- a/kdeprint/descriptions/readppd
+++ /dev/null
@@ -1,83 +0,0 @@
-#! /usr/bin/perl
-
-$inui = 0;
-$tag = "";
-$linenr = 0;
-
-$incomdata = 0;
-$aftername = 0;
-$aftercomment = 0;
-$commentvalue = "";
-
-while ( <STDIN> )
-{
-  $linenr = $linenr + 1;
-
-     # *LanguageVersion: Check for English
-     if (/^\*LanguageVersion:\s+([\w\-]+)\s*$/) {
-          last if ($1 ne "English");
-     }
-
-     # *OpenUI *InputSlot/Media Source: PickOne
-     if ($_ =~ "^*OpenUI") {
-	  $inui = 1;
-	  $_ =~ s/^\*OpenUI\s*//;
-	  $tag = $_;
-	  $tag =~ s%:.*$%%;
-	  $tag =~ s%/.*%%;
-	  chomp($tag);
-	  $_ =~ s%\s*:.*$%%;
-	  $_ =~ s%\s*\*%%;
-	  $_ =~ s%^[^/]*/%%;
-	  $_ =~ s%\"%\\\"%g;
-	  chomp($_);
-	  print "i18n(\"", $_, "\");\n";
-	  next;
-     }
-
-     if ($_ =~ "^*CloseUI") {
-	  $inui = 0;
-	  $tag = "";
-     }
-
-     if ($inui) {
-       if (substr($_, 0, length($tag)) eq $tag) {
-	 $_ =~ s%\s*:.*$%%;
-	 $_ =~ s%\*\S*\s*%%;
-	 $_ =~ s%^[^/]*/%%;
-	 $_ =~ s%\"%\\\"%g;
-	 chomp($_);
-	 print "i18n(\"", $_, "\");\n";
-       }
-     }
-
-     # *% COMDATA #$VAR1 = {: Start looking for 'name','comment','type'
-     if (/^\*\% COMDATA \#\$VAR1/) {
-       $incomdata = 1;
-     }
-
-     # *% COMDATA #      'name': Continue looking for 'comment'
-     if ($incomdata && /^\*\% COMDATA \#\s*\'name\'/) {
-       $aftername    = 1;
-       $aftercomment = 0;
-     }
-
-     # *% COMDATA #      'comment' => '*': Continue looking for 'type'
-     if ($aftername && /^\*\% COMDATA \#\s*\'comment\'\s*\=\>\s*\'(.*)\'/) {
-       $aftername    = 0;
-       $aftercomment = 1;
-       $commentvalue = $1;
-     }
-
-     # *% COMDATA #      'type' => '*':
-     # Output comment if type is 'int', 'float' or 'string'
-     if ($aftercomment && /^\*\% COMDATA \#\s*\'type\'\s*\=\>\s*\'(.*)\'/) {
-       $aftername    = 0;
-       $aftercomment = 0;
-       if ($1 eq "int" || $1 eq "float" || $1 eq "string") {
-         print "i18n(\"$commentvalue\");\n";
-       }
-     }
-	
-   
-}
diff --git a/kdeprint/descriptions/sortthem.cpp b/kdeprint/descriptions/sortthem.cpp
deleted file mode 100644
index 9adc284b1..000000000
--- a/kdeprint/descriptions/sortthem.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-#include <tqstring.h>
-#include <tqstringlist.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-
-
-int main(int argc, char **argv) {
-TQStringList have;
-char buf[1024];
-
-
-   while (!feof(stdin)) {
-      char *cline = fgets(buf, 1000, stdin);
-      if (!cline) break;
-      if (!have.contains(cline)) {
-         have << cline;
-         fprintf(stdout, "%s", cline);
-      }
-   }
-
-
-return 0;
-}
-
-
diff --git a/kdeprint/kdeprint_part/CMakeLists.txt b/kdeprint/kdeprint_part/CMakeLists.txt
deleted file mode 100644
index 6de7ddb91..000000000
--- a/kdeprint/kdeprint_part/CMakeLists.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-add_definitions( -D_KDEPRINT_COMPILE )
-
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}
-  ${TDE_INCLUDE_DIR}
-  ${TQT_INCLUDE_DIRS}
-)
-
-link_directories(
-  ${TQT_LIBRARY_DIRS}
-)
-
-
-##### other data ################################
-
-install( FILES tdeprint_part.rc DESTINATION ${DATA_INSTALL_DIR}/tdeprint_part )
-install( FILES tdeprint_part.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
-
-
-##### libtdeprint_part (module) #################
-
-tde_add_kpart( libtdeprint_part AUTOMOC
-  SOURCES printpart.cpp
-  LINK tdeprint_management-shared kparts-shared
-  DESTINATION ${PLUGIN_INSTALL_DIR}
-)
diff --git a/kdeprint/kdeprint_part/Makefile.am b/kdeprint/kdeprint_part/Makefile.am
deleted file mode 100644
index e27404a0f..000000000
--- a/kdeprint/kdeprint_part/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-AM_CPPFLAGS = -D_KDEPRINT_COMPILE
-
-kde_module_LTLIBRARIES = libtdeprint_part.la
-
-libtdeprint_part_la_SOURCES = printpart.cpp
-libtdeprint_part_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined
-libtdeprint_part_la_LIBADD = -ltdeprint_management $(LIB_KPARTS)
-
-noinst_HEADERS = printpart.h
-
-METASOURCES = AUTO
-INCLUDES = $(all_includes)
-
-# service
-myservice_DATA = tdeprint_part.desktop
-myservicedir = $(kde_servicesdir)
-
-# UI file
-myrcfile_DATA = tdeprint_part.rc
-myrcfiledir = $(kde_datadir)/tdeprint_part
-
-messages: rc.cpp
-	$(EXTRACTRC) tdeprint_part.rc >> rc.cpp
-	$(XGETTEXT) *.cpp -o $(podir)/tdeprint_part.pot
diff --git a/kdeprint/kdeprint_part/kdeprint_part.desktop b/kdeprint/kdeprint_part/kdeprint_part.desktop
deleted file mode 100644
index 001f8ae39..000000000
--- a/kdeprint/kdeprint_part/kdeprint_part.desktop
+++ /dev/null
@@ -1,85 +0,0 @@
-[Desktop Entry]
-Type=Service
-Name=Print Management Tool
-Name[af]=Drukker Bestuur Program
-Name[ar]=أداة ادارة الطباعة
-Name[az]=Çap Edici İdarə Vasitəsi
-Name[be]=Кіраўнік друку
-Name[bg]=Управление на печата
-Name[bn]=মুদ্রণ ম্যানেজমেন্ট টুল
-Name[br]=Ostilh mererezh moulañ
-Name[bs]=Alat za upravljanje štampom
-Name[ca]=Eina per a gestionar la impressió
-Name[cs]=Správce tiskáren
-Name[csb]=Sprôwianié wëdrëkama
-Name[cy]=Erfyn Rheoli Argraffu
-Name[da]=Udskriftshåndteringsværktøj
-Name[de]=Druckerverwaltung
-Name[el]=Εργαλείο διαχείρισης εκτυπώσεων
-Name[eo]=Printadministrilo
-Name[es]=Herramienta de gestión de la  impresión
-Name[et]=Trükkimise seadistused
-Name[eu]=Inprimaketa kudeatzeko tresna
-Name[fa]=ابزار مدیریت چاپ
-Name[fi]=Tulostuksenhallinta
-Name[fr]=Gestionnaire d'impression
-Name[fy]=Helpprogramma foar printbehear
-Name[ga]=Uirlis Bhainisteoireacht Priontála
-Name[gl]=Ferramenta de Xestión da Impresión
-Name[he]=כלי ניהול הדפסה
-Name[hi]=प्रिंटर प्रबंधन औज़ार
-Name[hr]=Alat za upravljanje ispisom
-Name[hu]=Nyomtatáskezelő eszköz
-Name[is]=Prentunartól
-Name[it]=Strumento di gestione della stampa
-Name[ja]=印刷マネージメントツール
-Name[ka]=ბეჭდვის მართვა
-Name[kk]=Басып шығаруды басқару
-Name[km]=ឧបករណ៍​គ្រប់គ្រង​ការ​បោះពុម្ព
-Name[ko]=휴대폰 관리 도구
-Name[lo]=ເຄື່ອງມືຈັດການພິມ
-Name[lt]=Spausdinimo valdymo įrankis
-Name[lv]=Drukas Menedžmenta Rīks
-Name[mk]=Алатка за менаџмент на печатење
-Name[mn]=Хэвлэгч удирдах хэлбэр
-Name[ms]=Cetak Alat Pengurusan
-Name[mt]=Għodda għall-immaniġġjar tal-printing
-Name[nb]=Verktøy for utskriftsbehandling
-Name[nds]=Druckers un Opgaven plegen
-Name[ne]=मुद्रण व्यवस्थापन उपकरण
-Name[nl]=Hulpprogramma voor printerbeheer
-Name[nn]=Utskriftshandsaming
-Name[nso]=Sebereka sa Taolo ya Kgatiso
-Name[pa]=ਛਾਪਣ (ਪਰਿੰਟ) ਪਰਬੰਧਨ ਸੰਦ
-Name[pl]=Zarządzanie wydrukiem
-Name[pt]=Ferramenta de Gestão de Impressões
-Name[pt_BR]=Ferramenta para Gerenciamento de Impressão
-Name[ro]=Administrare tipărire
-Name[ru]=Управление печатью
-Name[rw]=Gucapa Igikoresho cy'Ubuyobozi
-Name[se]=Čálihangieđahalli
-Name[sk]=Nástroj na správu tlače
-Name[sl]=Orodje za upravljanje tiskanja
-Name[sr]=Алат за управљање штампом
-Name[sr@Latn]=Alat za upravljanje štampom
-Name[sv]=Verktyg för utskriftshantering
-Name[ta]=அச்சு மேலாண்மைக் கருவி
-Name[tg]=Тафсири мудирияти чоп
-Name[th]=เครื่องมือจัดการงานพิมพ์
-Name[tr]=Yazdırma Yönetim Aracı
-Name[tt]=Bastıru İdäneñ Qoralı
-Name[uk]=Засіб керування друком
-Name[uz]=Bosib chiqarishni boshqarish vositasi
-Name[uz@cyrillic]=Босиб чиқаришни бошқариш воситаси
-Name[ven]=Tshishumiswa tsha vhulanguli ha phirinthara
-Name[vi]=Công cụ Quản lý In ấn
-Name[wa]=Usteye po manaedjî l' imprimaedje
-Name[xh]=Isixhobo Sophatho soshicilelo
-Name[zh_CN]=打印管理工具
-Name[zh_TW]=列印管理工具
-Name[zu]=Ithuluzi Lokuphathwa Koshicilelo
-MimeType=print/manager
-ServiceTypes=Browser/View,KParts/ReadOnlyPart
-X-KDE-Library=libtdeprint_part
-Icon=printmgr
-InitialPreference=12
diff --git a/kdeprint/kdeprint_part/kdeprint_part.rc b/kdeprint/kdeprint_part/kdeprint_part.rc
deleted file mode 100644
index a69e76490..000000000
--- a/kdeprint/kdeprint_part/kdeprint_part.rc
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE kpartgui>
-<kpartgui name="tdeprint_part">
-<ToolBar name="Kdeprint-Toolbar" newline="false"><text>Print Manager Toolbar</text>
-  <Action name="printer_add" />
-  <Action name="printer_add_special" />
-  <Separator lineSeparator="true" />
-  <Action name="printer_state_change" />
-  <Action name="printer_spool_change" />
-  <Separator />
-  <Action name="printer_hard_default" />
-  <Action name="printer_soft_default" />
-  <Action name="printer_remove" />
-  <Separator />
-  <Action name="printer_configure" />
-  <Action name="printer_test" />
-  <Separator lineSeparator="true" />
-  <Action name="server_configure" />
-  <Action name="server_restart" />
-  <Separator lineSeparator="true" />
-  <Action name="manager_configure" />
-  <Action name="view_refresh" />
-  <Separator lineSeparator="true" />
-  <Action name="view_printerinfos" />
-  <Action name="view_change" />
-  <Action name="orientation_change" />
-  <Action name="view_pfilter" />
-</ToolBar>
-</kpartgui>
diff --git a/kdeprint/kdeprint_part/printpart.cpp b/kdeprint/kdeprint_part/printpart.cpp
deleted file mode 100644
index 5d5d7b154..000000000
--- a/kdeprint/kdeprint_part/printpart.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#include "printpart.h"
-
-#include <tdeprint/kmmainview.h>
-#include <tdeprint/kiconselectaction.h>
-#include <kaction.h>
-#include <klocale.h>
-#include <kinstance.h>
-#include <kiconloader.h>
-#include <kaboutdata.h>
-#include <kdebug.h>
-#include <kparts/genericfactory.h>
-#include <tqwidget.h>
-
-typedef KParts::GenericFactory<PrintPart> PrintPartFactory;
-K_EXPORT_COMPONENT_FACTORY( libtdeprint_part, PrintPartFactory )
-
-PrintPart::PrintPart(TQWidget *parentWidget, const char * /*widgetName*/ ,
-	             TQObject *parent, const char *name,
-		     const TQStringList & /*args*/ )
-: KParts::ReadOnlyPart(parent, name)
-{
-	setInstance(PrintPartFactory::instance());
-    instance()->iconLoader()->addAppDir("tdeprint");
-	m_extension = new PrintPartExtension(this);
-
-	m_view = new KMMainView(parentWidget, "MainView", actionCollection());
-	m_view->setFocusPolicy(TQ_ClickFocus);
-	m_view->enableToolbar(false);
-	setWidget(m_view);
-
-	initActions();
-}
-
-PrintPart::~PrintPart()
-{
-}
-
-KAboutData *PrintPart::createAboutData()
-{
-	return new KAboutData(I18N_NOOP("tdeprint_part"), I18N_NOOP("A Konqueror Plugin for Print Management"), "0.1");
-}
-
-bool PrintPart::openFile()
-{
-	return true;
-}
-
-void PrintPart::initActions()
-{
-	setXMLFile("tdeprint_part.rc");
-}
-
-PrintPartExtension::PrintPartExtension(PrintPart *parent)
-: KParts::BrowserExtension(parent, "PrintPartExtension")
-{
-}
-
-PrintPartExtension::~PrintPartExtension()
-{
-}
-
-#include "printpart.moc"
diff --git a/kdeprint/kdeprint_part/printpart.h b/kdeprint/kdeprint_part/printpart.h
deleted file mode 100644
index df543b210..000000000
--- a/kdeprint/kdeprint_part/printpart.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#ifndef PRINTPART_H
-#define PRINTPART_H
-
-#include <kparts/part.h>
-#include <kparts/browserextension.h>
-
-class PrintPartExtension;
-class KMMainView;
-class KAboutData;
-
-class PrintPart : public KParts::ReadOnlyPart
-{
-	Q_OBJECT
-public:
-	PrintPart(TQWidget *parentWidget, const char *widgetName,
-		  TQObject *parent, const char *name,
-		  const TQStringList & );
-	virtual ~PrintPart();
-
-	static KAboutData *createAboutData();
-
-protected:
-	bool openFile();
-	void initActions();
-
-private:
-	PrintPartExtension	*m_extension;
-	KMMainView		*m_view;
-};
-
-class PrintPartExtension : public KParts::BrowserExtension
-{
-	Q_OBJECT
-	friend class PrintPart;
-public:
-	PrintPartExtension(PrintPart *parent);
-	virtual ~PrintPartExtension();
-};
-
-#endif
diff --git a/kdeprint/kdeprintfax/CMakeLists.txt b/kdeprint/kdeprintfax/CMakeLists.txt
deleted file mode 100644
index 538719474..000000000
--- a/kdeprint/kdeprintfax/CMakeLists.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}
-  ${TDE_INCLUDE_DIR}
-  ${TQT_INCLUDE_DIRS}
-)
-
-link_directories(
-  ${TQT_LIBRARY_DIRS}
-)
-
-
-##### other data ################################
-
-tde_install_icons( tdeprintfax )
-tde_install_icons( abentry DESTINATION ${DATA_INSTALL_DIR}/tdeprintfax/icons )
-install( FILES tdeprintfax.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
-install( FILES tdeprintfaxui.rc faxfilters DESTINATION ${DATA_INSTALL_DIR}/tdeprintfax )
-install( PROGRAMS anytops DESTINATION ${DATA_INSTALL_DIR}/tdeprintfax )
-
-
-##### tdeprintfax (executable) ##################
-
-tde_add_executable( tdeprintfax AUTOMOC
-  SOURCES
-    main.cpp tdeprintfax.cpp faxab.cpp faxctrl.cpp
-    confgeneral.cpp configdlg.cpp conffax.cpp
-    confsystem.cpp conffilters.cpp filterdlg.cpp
-    defcmds.cpp
-  LINK kabc-shared tdeprint-shared
-  DESTINATION ${BIN_INSTALL_DIR}
-)
diff --git a/kdeprint/kdeprintfax/Makefile.am b/kdeprint/kdeprintfax/Makefile.am
deleted file mode 100644
index cd0d39900..000000000
--- a/kdeprint/kdeprintfax/Makefile.am
+++ /dev/null
@@ -1,23 +0,0 @@
-INCLUDES= $(all_includes)
-
-bin_PROGRAMS = tdeprintfax
-tdeprintfax_SOURCES = main.cpp tdeprintfax.cpp faxab.cpp faxctrl.cpp confgeneral.cpp configdlg.cpp \
-		      conffax.cpp confsystem.cpp conffilters.cpp filterdlg.cpp defcmds.cpp
-tdeprintfax_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_KDECORE) $(LIB_KDEUI) -ltdefx $(LIB_KIO) -lktexteditor
-tdeprintfax_LDADD   = $(LIB_KDEUI) $(LIB_KIO) $(LIB_KDEPRINT) -lkabc
-tdeprintfax_METASOURCES = AUTO
-
-xdg_apps_DATA = tdeprintfax.desktop
-
-uidir = $(kde_datadir)/tdeprintfax
-ui_DATA = tdeprintfaxui.rc faxfilters
-
-private_SCRIPTS = anytops
-privatedir = $(kde_datadir)/tdeprintfax
-
-messages: rc.cpp
-	$(XGETTEXT) `find . -name \*.h -o -name \*.cpp -o -name \*.cc` -o $(podir)/tdeprintfax.pot
-
-KDE_ICON = tdeprintfax
-pic_ICON = abentry
-picdir = $(kde_datadir)/tdeprintfax/icons
diff --git a/kdeprint/kdeprintfax/anytops b/kdeprint/kdeprintfax/anytops
deleted file mode 100755
index 9718831dc..000000000
--- a/kdeprint/kdeprintfax/anytops
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/sh
-
-FAXFILTERS=./faxfilters
-MIMETYPE=
-PAGE="letter"
-
-usage() {
-	echo "Usage: anytops [-m <filters>] [--mime=<mime-type>] [-p <page>] [--help] <infile> <outfile>"
-	exit $1
-}
-
-while true; do
-	case "$1" in
-		--help)
-			usage 0
-			;;
-		-m)
-			shift
-			FAXFILTERS="$1"
-			shift
-			;;
-		--mime=*)
-			MIMETYPE=${1#--mime=}
-			shift
-			;;
-		-p)
-			shift
-			PAGE="$1"
-			shift
-			;;
-		-v)
-			echo "Anytops v1.0: (c) 2001, Michael Goffioul <tdeprint@swing.be>";
-			echo "Small script to convert any file type into PS. Part of tdeprintfax."
-			exit 0
-			;;
-		*)
-			break;
-			;;
-	esac
-done
-
-INFILE=$1
-OUTFILE=$2
-
-if [ -z "$INFILE" -o -z "$OUTFILE" -o ! -f "$INFILE" ]; then
-	usage 1;
-fi
-
-if [ -z "$MIMETYPE" ]; then
-	MAGIC=$KDEDIR
-	if [ -z "$MAGIC" ]; then
-		MAGIC=/usr
-	fi
-	MAGIC=$MAGIC/share/mimelnk/magic
-
-	if [ ! -f "$MAGIC" ]; then
-		echo "KDE magic file not found. Check your installation."
-		exit 1;
-	fi
-
-	MIMETYPE=`file -b -m $MAGIC "$INFILE" 2> /dev/null`
-	MIMETYPE=${MIMETYPE%%;*}
-fi
-
-echo "Mime type: $MIMETYPE"
-MIMETYPE_BASE=`echo $MIMETYPE | cut -f 1 -d "/"`
-MIMETYPE_TYPE=`echo $MIMETYPE | cut -f 2- -d "/"`
-
-get_command() {
-	while read mime command; do
-		mimebase=`echo $mime | cut -f 1 -d "/"`
-		mimefile=`echo $mime | cut -f 2- -d "/"`
-		if test "$mimebase" = "$MIMETYPE_BASE" || test "$mimebase" = "*"; then
-			if test "$mimefile" = "$MIMETYPE_TYPE" || test "$mimefile" = "*"; then
-				echo $command
-				break;
-			fi
-		fi
-#		PATTERN=`echo $MIMETYPE | grep $mime`
-#		if [ "$PATTERN" = "$MIMETYPE" ]; then
-#			echo $command
-#			break;
-#		fi
-	done
-}
-
-COMMAND=`cat $FAXFILTERS | get_command`
-
-if [ -z "$COMMAND" ]; then
-	echo "$MIMETYPE: file type not handled"
-	exit 1;
-fi
-
-echo "Command: $COMMAND"
-
-PAGEUP="`echo $PAGE | cut -c 1 | tr [:lower:] [:upper:]``echo $PAGE | cut -c 2-`"
-EXECCOMMAND=`echo $COMMAND | sed -e "s,%in,\"$INFILE\"," -e "s,%out,\"$OUTFILE\"," -e "s,%psl,$PAGE," -e "s,%psu,$PAGEUP,"`
-eval "$EXECCOMMAND"
diff --git a/kdeprint/kdeprintfax/conffax.cpp b/kdeprint/kdeprintfax/conffax.cpp
deleted file mode 100644
index 1f3b8c3c5..000000000
--- a/kdeprint/kdeprintfax/conffax.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include "conffax.h"
-
-#include <tqcombobox.h>
-#include <tqlineedit.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqprinter.h>
-
-#include <kglobal.h>
-#include <kconfig.h>
-#include <klocale.h>
-#include <kseparator.h>
-
-#include <stdlib.h>
-
-ConfFax::ConfFax(TQWidget *parent, const char *name)
-: TQWidget(parent, name)
-{
-	m_resolution = new TQComboBox(this);
-	m_resolution->setMinimumHeight(25);
-	m_pagesize = new TQComboBox(this);
-	m_pagesize->setMinimumHeight(25);
-	m_resolution->insertItem(i18n("High (204x196 dpi)"));
-	m_resolution->insertItem(i18n("Low (204x98 dpi)"));
-	m_pagesize->insertItem(i18n("A4"));
-	m_pagesize->insertItem(i18n("Letter"));
-	m_pagesize->insertItem(i18n("Legal"));
-	TQLabel	*m_resolutionlabel = new TQLabel(i18n("&Resolution:"), this);
-	m_resolutionlabel->setBuddy(m_resolution);
-	TQLabel	*m_pagesizelabel = new TQLabel(i18n("&Paper size:"), this);
-	m_pagesizelabel->setBuddy(m_pagesize);
-
-	TQGridLayout	*l0 = new TQGridLayout(this, 3, 2, 10, 10);
-	l0->setColStretch(1, 1);
-	l0->setRowStretch(2, 1);
-	l0->addWidget(m_resolutionlabel, 0, 0);
-	l0->addWidget(m_pagesizelabel, 1, 0);
-	l0->addWidget(m_resolution, 0, 1);
-	l0->addWidget(m_pagesize, 1, 1);
-}
-
-void ConfFax::load()
-{
-	KConfig	*conf = KGlobal::config();
-	conf->setGroup("Fax");
-	TQString	v = conf->readEntry("Page", KGlobal::locale()->pageSize() == TQPrinter::A4 ? "a4" : "letter");
-	if (v == "letter") m_pagesize->setCurrentItem(1);
-	else if (v == "legal") m_pagesize->setCurrentItem(2);
-	else m_pagesize->setCurrentItem(0);
-	v = conf->readEntry("Resolution", "High");
-	m_resolution->setCurrentItem((v == "Low" ? 1 : 0));
-}
-
-void ConfFax::save()
-{
-	KConfig	*conf = KGlobal::config();
-	conf->setGroup("Fax");
-	conf->writeEntry("Resolution", (m_resolution->currentItem() == 0 ? "High" : "Low"));
-	conf->writeEntry("Page", (m_pagesize->currentItem() == 0 ? "a4" : (m_pagesize->currentItem() == 1 ? "letter" : "legal")));
-}
diff --git a/kdeprint/kdeprintfax/conffax.h b/kdeprint/kdeprintfax/conffax.h
deleted file mode 100644
index cf76f2b71..000000000
--- a/kdeprint/kdeprintfax/conffax.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef CONFFAX_H
-#define CONFFAX_H
-
-#include <tqwidget.h>
-
-class TQComboBox;
-
-class ConfFax : public TQWidget
-{
-public:
-	ConfFax(TQWidget *parent = 0, const char *name = 0);
-
-	void load();
-	void save();
-
-private:
-	TQComboBox	*m_resolution, *m_pagesize;
-};
-
-#endif
diff --git a/kdeprint/kdeprintfax/conffilters.cpp b/kdeprint/kdeprintfax/conffilters.cpp
deleted file mode 100644
index d32f33ea8..000000000
--- a/kdeprint/kdeprintfax/conffilters.cpp
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include "conffilters.h"
-#include "filterdlg.h"
-
-#include <tqpushbutton.h>
-#include <tqlayout.h>
-#include <tqtooltip.h>
-#include <tqfile.h>
-#include <tqtextstream.h>
-#include <tqregexp.h>
-#include <tqheader.h>
-
-#include <klocale.h>
-#include <klistview.h>
-#include <kiconloader.h>
-#include <kstandarddirs.h>
-#include <kmessagebox.h>
-
-ConfFilters::ConfFilters(TQWidget *parent, const char *name)
-: TQWidget(parent, name)
-{
-	m_filters = new KListView(this);
-	m_filters->addColumn(i18n("Mime Type"));
-	m_filters->addColumn(i18n("Command"));
-	m_filters->setFrameStyle(TQFrame::WinPanel|TQFrame::Sunken);
-	m_filters->setLineWidth(1);
-	m_filters->setSorting(-1);
-	m_filters->header()->setStretchEnabled(true, 1);
-	connect(m_filters, TQT_SIGNAL(doubleClicked(TQListViewItem*)), TQT_SLOT(slotChange()));
-
-	m_add = new TQPushButton(this);
-	m_add->setPixmap(BarIcon("filenew"));
-	m_remove = new TQPushButton(this);
-	m_remove->setIconSet(BarIconSet("remove"));
-	m_change = new TQPushButton(this);
-	m_change->setIconSet(BarIconSet("filter"));
-	m_up = new TQPushButton(this);
-	m_up->setIconSet(BarIconSet("up"));
-	m_down = new TQPushButton(this);
-	m_down->setIconSet(BarIconSet("down"));
-	connect(m_add, TQT_SIGNAL(clicked()), TQT_SLOT(slotAdd()));
-	connect(m_change, TQT_SIGNAL(clicked()), TQT_SLOT(slotChange()));
-	connect(m_remove, TQT_SIGNAL(clicked()), TQT_SLOT(slotRemove()));
-	connect(m_up, TQT_SIGNAL(clicked()), TQT_SLOT(slotUp()));
-	connect(m_down, TQT_SIGNAL(clicked()), TQT_SLOT(slotDown()));
-	TQToolTip::add(m_add, i18n("Add filter"));
-	TQToolTip::add(m_change, i18n("Modify filter"));
-	TQToolTip::add(m_remove, i18n("Remove filter"));
-	TQToolTip::add(m_up, i18n("Move filter up"));
-	TQToolTip::add(m_down, i18n("Move filter down"));
-
-	TQHBoxLayout	*l0 = new TQHBoxLayout(this, 10, 10);
-	TQVBoxLayout	*l1 = new TQVBoxLayout(0, 0, 0);
-	l0->addWidget(m_filters, 1);
-	l0->addLayout(l1, 0);
-	l1->addWidget(m_add);
-	l1->addWidget(m_change);
-	l1->addWidget(m_remove);
-	l1->addSpacing(10);
-	l1->addWidget(m_up);
-	l1->addWidget(m_down);
-	l1->addStretch(1);
-	updateButton();
-	connect(m_filters, TQT_SIGNAL(selectionChanged ()),TQT_SLOT(updateButton()));
-}
-
-void ConfFilters::load()
-{
-	TQFile	f(locate("data","tdeprintfax/faxfilters"));
-	if (f.exists() && f.open(IO_ReadOnly))
-	{
-		TQTextStream	t(&f);
-		TQString		line;
-		int		p(-1);
-		TQListViewItem	*item(0);
-		while (!t.eof())
-		{
-			line = t.readLine().stripWhiteSpace();
-			if ((p=line.find(TQRegExp("\\s"))) != -1)
-			{
-				TQString	mime(line.left(p)), cmd(line.right(line.length()-p-1).stripWhiteSpace());
-				if (!mime.isEmpty() && !cmd.isEmpty())
-					item = new TQListViewItem(m_filters, item, mime, cmd);
-			}
-		}
-	}
-}
-
-void ConfFilters::save()
-{
-	TQListViewItem	*item = m_filters->firstChild();
-	TQFile	f(locateLocal("data","tdeprintfax/faxfilters"));
-	if (f.open(IO_WriteOnly))
-	{
-		TQTextStream	t(&f);
-		while (item)
-		{
-			t << item->text(0) << ' ' << item->text(1) << endl;
-			item = item->nextSibling();
-		}
-	}
-}
-
-void ConfFilters::slotAdd()
-{
-	TQString	mime, cmd;
-	if (FilterDlg::doIt(this, &mime, &cmd))
-		if (!mime.isEmpty() && !cmd.isEmpty())
-		  {
-		    new TQListViewItem(m_filters, m_filters->currentItem(), mime, cmd);
-		    updateButton();
-		  }
-		else
-			KMessageBox::error(this, i18n("Empty parameters."));
-}
-
-void ConfFilters::slotRemove()
-{
-	TQListViewItem	*item = m_filters->currentItem();
-	if (item)
-		delete item;
-	updateButton();
-}
-
-void ConfFilters::slotChange()
-{
-	TQListViewItem	*item = m_filters->currentItem();
-	if (item)
-	{
-		TQString	mime(item->text(0)), cmd(item->text(1));
-		if (FilterDlg::doIt(this, &mime, &cmd))
-		{
-			item->setText(0, mime);
-			item->setText(1, cmd);
-		}
-	}
-}
-
-void ConfFilters::slotUp()
-{
-	TQListViewItem	*item = m_filters->currentItem();
-	if (item && item->itemAbove())
-	{
-		m_filters->moveItem(item, 0, item->itemAbove()->itemAbove());
-		m_filters->setCurrentItem(item);
-		updateButton();
-	}
-}
-
-void ConfFilters::slotDown()
-{
-	TQListViewItem	*item = m_filters->currentItem();
-	if (item && item->itemBelow())
-	{
-		m_filters->moveItem(item, 0, item->itemBelow());
-		m_filters->setCurrentItem(item);
-		updateButton();
-	}
-}
-
-void ConfFilters::updateButton()
-{
-  TQListViewItem	*item = m_filters->currentItem();
-
-  bool state=item && item->itemBelow();
-  m_remove->setEnabled(item);
-  m_down->setEnabled(state);
-  state=item && item->itemAbove();
-  m_up->setEnabled(state);
-  m_change->setEnabled(item);
-}
-
-#include "conffilters.moc"
diff --git a/kdeprint/kdeprintfax/conffilters.h b/kdeprint/kdeprintfax/conffilters.h
deleted file mode 100644
index 871b44bec..000000000
--- a/kdeprint/kdeprintfax/conffilters.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef CONFFILTERS_H
-#define CONFFILTERS_H
-
-#include <tqwidget.h>
-#include <tqpushbutton.h>
-class KListView;
-
-class ConfFilters : public TQWidget
-{
-	Q_OBJECT
-public:
-	ConfFilters(TQWidget *parent = 0, const char *name = 0);
-
-	void load();
-	void save();
-protected slots:
-	void slotAdd();
-	void slotRemove();
-	void slotChange();
-	void slotUp();
-	void slotDown();
-	void updateButton();
-private:
-	KListView	*m_filters;
-	TQPushButton	*m_add,*m_remove,*m_up,*m_down,*m_change;
-};
-
-#endif
diff --git a/kdeprint/kdeprintfax/confgeneral.cpp b/kdeprint/kdeprintfax/confgeneral.cpp
deleted file mode 100644
index db3ef916a..000000000
--- a/kdeprint/kdeprintfax/confgeneral.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include "confgeneral.h"
-
-#include <tqlineedit.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqcheckbox.h>
-
-#include <kglobal.h>
-#include <kconfig.h>
-#include <klocale.h>
-#include <kseparator.h>
-
-#include <stdlib.h>
-
-ConfGeneral::ConfGeneral(TQWidget *parent, const char *name)
-: TQWidget(parent, name)
-{
-	m_name = new TQLineEdit(this);
-	m_company = new TQLineEdit(this);
-	m_number = new TQLineEdit(this);
-	TQLabel	*m_namelabel = new TQLabel(i18n("&Name:"), this);
-	m_namelabel->setBuddy(m_name);
-	TQLabel	*m_companylabel = new TQLabel(i18n("&Company:"), this);
-	m_companylabel->setBuddy(m_company);
-	TQLabel	*m_numberlabel = new TQLabel(i18n("N&umber:"), this);
-        m_numberlabel->setBuddy(m_number);
-	KSeparator *sep = new KSeparator( this );
-	m_replace_int_char = new TQCheckBox( i18n( "Replace international prefix '+' with:" ), this );
-	m_replace_int_char_val = new TQLineEdit( this );
-	m_replace_int_char_val->setEnabled( false );
-
-	connect( m_replace_int_char, TQT_SIGNAL( toggled( bool ) ), m_replace_int_char_val, TQT_SLOT( setEnabled( bool ) ) );
-
-	TQGridLayout	*l0 = new TQGridLayout(this, 6, 2, 10, 10);
-	l0->setColStretch(1, 1);
-	l0->setRowStretch(5, 1);
-	l0->addWidget(m_namelabel, 0, 0);
-	l0->addWidget(m_companylabel, 1, 0);
-	l0->addWidget(m_numberlabel, 2, 0);
-	l0->addWidget(m_name, 0, 1);
-	l0->addWidget(m_company, 1, 1);
-	l0->addWidget(m_number, 2, 1);
-	l0->addMultiCellWidget( sep, 3, 3, 0, 1 );
-	TQHBoxLayout *l1 = new TQHBoxLayout( this, 0, 10 );
-	l0->addMultiCellLayout( l1, 4, 4, 0, 1 );
-	l1->addWidget( m_replace_int_char );
-	l1->addWidget( m_replace_int_char_val );
-}
-
-void ConfGeneral::load()
-{
-	KConfig	*conf = KGlobal::config();
-	conf->setGroup("Personal");
-	m_name->setText(conf->readEntry("Name", getenv("USER")));
-	m_number->setText(conf->readEntry("Number"));
-	m_company->setText(conf->readEntry("Company"));
-	m_replace_int_char->setChecked( conf->readBoolEntry( "ReplaceIntChar", false ) );
-	m_replace_int_char_val->setText( conf->readEntry( "ReplaceIntCharVal" ) );
-}
-
-void ConfGeneral::save()
-{
-	KConfig	*conf = KGlobal::config();
-	conf->setGroup("Personal");
-	conf->writeEntry("Name", m_name->text());
-	conf->writeEntry("Number", m_number->text());
-	conf->writeEntry("Company", m_company->text());
-	conf->writeEntry( "ReplaceIntChar", m_replace_int_char->isChecked() );
-	conf->writeEntry( "ReplaceIntCharVal", m_replace_int_char_val->text() );
-}
diff --git a/kdeprint/kdeprintfax/confgeneral.h b/kdeprint/kdeprintfax/confgeneral.h
deleted file mode 100644
index 2962b0b0b..000000000
--- a/kdeprint/kdeprintfax/confgeneral.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef CONFGENERAL_H
-#define CONFGENERAL_H
-
-#include <tqwidget.h>
-
-class TQLineEdit;
-class TQCheckBox;
-
-class ConfGeneral : public TQWidget
-{
-public:
-	ConfGeneral(TQWidget *parent = 0, const char *name = 0);
-
-	void load();
-	void save();
-
-private:
-	TQLineEdit	*m_name, *m_company, *m_number;
-	TQCheckBox   *m_replace_int_char;
-	TQLineEdit   *m_replace_int_char_val;
-};
-
-#endif
diff --git a/kdeprint/kdeprintfax/configdlg.cpp b/kdeprint/kdeprintfax/configdlg.cpp
deleted file mode 100644
index 526b767ff..000000000
--- a/kdeprint/kdeprintfax/configdlg.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include "configdlg.h"
-#include "confgeneral.h"
-#include "conffax.h"
-#include "confsystem.h"
-#include "conffilters.h"
-
-#include <tqvbox.h>
-#include <klocale.h>
-#include <kiconloader.h>
-
-ConfigDlg::ConfigDlg(TQWidget *parent, const char *name)
-: KDialogBase(IconList, i18n("Configuration"), Ok|Cancel, Ok, parent, name, true)
-{
-	TQVBox	*page1 = addVBoxPage(i18n("Personal"), i18n("Personal Settings"), DesktopIcon("kdmconfig"));
-	m_general = new ConfGeneral(page1, "Personal");
-
-	TQVBox	*page2 = addVBoxPage(i18n("Page setup"), i18n("Page Setup"), DesktopIcon("editcopy"));
-	m_fax = new ConfFax(page2, "Fax");
-
-	TQVBox	*page3 = addVBoxPage(i18n("System"), i18n("Fax System Selection"), DesktopIcon("tdeprintfax"));
-	m_system = new ConfSystem(page3, "System");
-
-	TQVBox	*page4 = addVBoxPage(i18n("Filters"), i18n("Filters Configuration"), DesktopIcon("filter"));
-	m_filters = new ConfFilters(page4, "Filters");
-
-	resize(450, 300);
-}
-
-void ConfigDlg::load()
-{
-	m_general->load();
-	m_fax->load();
-	m_system->load();
-	m_filters->load();
-}
-
-void ConfigDlg::save()
-{
-	m_general->save();
-	m_fax->save();
-	m_system->save();
-	m_filters->save();
-}
-
-bool ConfigDlg::configure(TQWidget *parent)
-{
-	ConfigDlg	dlg(parent);
-	dlg.load();
-	if (dlg.exec())
-	{
-		dlg.save();
-		return true;
-	}
-	return false;
-}
diff --git a/kdeprint/kdeprintfax/configdlg.h b/kdeprint/kdeprintfax/configdlg.h
deleted file mode 100644
index 6fabd2011..000000000
--- a/kdeprint/kdeprintfax/configdlg.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef CONFIGDLG_H
-#define CONFIGDLG_H
-
-#include <kdialogbase.h>
-
-class ConfGeneral;
-class ConfFax;
-class ConfSystem;
-class ConfFilters;
-
-class ConfigDlg : public KDialogBase
-{
-public:
-	static bool configure(TQWidget *parent = 0);
-
-protected:
-	ConfigDlg(TQWidget *parent = 0, const char *name = 0);
-	void load();
-	void save();
-
-private:
-	ConfGeneral	*m_general;
-	ConfFax		*m_fax;
-	ConfSystem	*m_system;
-	ConfFilters	*m_filters;
-};
-
-#endif
diff --git a/kdeprint/kdeprintfax/confsystem.cpp b/kdeprint/kdeprintfax/confsystem.cpp
deleted file mode 100644
index 91c23adb6..000000000
--- a/kdeprint/kdeprintfax/confsystem.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility 
- *   Copyright (C) 2001  Michael Goffioul 
- * 
- *   This program is free software; you can redistribute it and/or modify 
- *   it under the terms of the GNU General Public License as published by 
- *   the Free Software Foundation; either version 2 of the License, or 
- *   (at your option) any later version. 
- * 
- *   This program is distributed in the hope that it will be useful, 
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of 
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
- *   GNU General Public License for more details. 
- * 
- *   You should have received a copy of the GNU General Public License 
- *   along with this program; if not, write to the Free Software 
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. 
- * 
- */ 
- 
-#include "confsystem.h" 
-#include "defcmds.h" 
- 
-#include <tqlineedit.h> 
-#include <tqlabel.h> 
-#include <tqlayout.h> 
-#include <tqcombobox.h>
- 
-#include <kglobal.h> 
-#include <kconfig.h> 
-#include <klocale.h>
-#include <kseparator.h>
-
-#include <stdlib.h>
- 
-#define	EFAX_ID		0 
-#define	HYLAFAX_ID	1
-#define	MGETTY_ID	2
-#define OTHER_ID    3
- 
-ConfSystem::ConfSystem(TQWidget *parent, const char *name) 
-: TQWidget(parent, name) 
-{ 
-	m_system = new TQComboBox(this);
-	m_system->insertItem("EFax");
-	m_system->insertItem("HylaFax");
-	m_system->insertItem("Mgetty-sendfax");
-	m_system->insertItem( "Other" );
-	m_command = new TQLineEdit(this);
-	TQLabel	*syslabel = new TQLabel(i18n("F&ax system:"), this);
-	TQLabel	*cmdlabel = new TQLabel(i18n("Co&mmand:"), this);
-	syslabel->setBuddy(m_system);
-	cmdlabel->setBuddy(m_command);
-	connect(m_system, TQT_SIGNAL(activated(int)), TQT_SLOT(slotSystemChanged(int)));
-	m_current = 0;
-	m_system->setCurrentItem(m_current);
-
-	TQWidget	*m_dummy1 = new TQWidget(this), *m_dummy2 = new TQWidget(this);
-	m_server = new TQLineEdit(m_dummy1);
-	m_device = new TQComboBox(m_dummy2);
-	TQLabel	*srvlabel = new TQLabel(i18n("Fax &server (if any):"), m_dummy1);
-	TQLabel	*devlabel = new TQLabel(i18n("&Fax/Modem device:"), m_dummy2);
-	srvlabel->setBuddy(m_server);
-	devlabel->setBuddy(m_device);
-	m_device->insertItem(i18n("Standard Modem Port"));
-	for (int i=0; i<10; i++)
-		m_device->insertItem(TQString(i18n("Serial Port #%1").arg(i)));
-	m_device->insertItem( i18n( "Other" ) );
-	connect( m_device, TQT_SIGNAL( activated( int ) ), TQT_SLOT( slotDeviceChanged( int ) ) );
-	m_device_edit = new TQLineEdit( m_dummy2 );
-	slotDeviceChanged( 0 );
-
-	KSeparator	*sep = new KSeparator(this);
-	sep->setMinimumHeight(10);
- 
-	TQVBoxLayout	*l0 = new TQVBoxLayout(this, 10, 10);
-	TQGridLayout	*l1 = new TQGridLayout(0, 2, 2, 0, 10);
-	l0->addLayout(TQT_TQLAYOUT(l1));
-	l1->setColStretch(1, 1);
-	l1->addWidget(syslabel, 0, 0);
-	l1->addWidget(cmdlabel, 1, 0);
-	l1->addWidget(m_system, 0, 1);
-	l1->addWidget(m_command, 1, 1);
-	l0->addWidget(sep);
-	l0->addWidget(m_dummy1);
-	l0->addWidget(m_dummy2);
-	l0->addStretch(1); 
-	TQHBoxLayout	*l4 = new TQHBoxLayout(m_dummy1, 0, 10);
-	l4->addWidget(srvlabel, 0);
-	l4->addWidget(m_server, 1);
-	TQGridLayout	*l5 = new TQGridLayout( m_dummy2, 2, 2, 0, 10 );
-	l5->setColStretch( 1, 1 );
-	l5->addWidget(devlabel, 0, 0);
-	l5->addWidget(m_device, 0, 1);
-	l5->addWidget( m_device_edit, 1, 1 );
-} 
- 
-void ConfSystem::load() 
-{ 
-	KConfig	*conf = KGlobal::config(); 
-	conf->setGroup("System");
-	m_commands << conf->readPathEntry("EFax", defaultCommand(efax_default_cmd)); 
-	m_commands << conf->readPathEntry("HylaFax", defaultCommand(hylafax_default_cmd));
-	m_commands << conf->readPathEntry("Mgetty", defaultCommand(mgetty_default_cmd));
-	m_commands << conf->readPathEntry( "Other", TQString::null );
-	TQString	v = conf->readEntry("System", "efax");
-	if (v == "mgetty") m_current = MGETTY_ID;
-	else if (v == "hylafax") m_current = HYLAFAX_ID;
-	else if ( v == "other" ) m_current = OTHER_ID;
-	else m_current = EFAX_ID;
-	conf->setGroup("Fax");
-	m_server->setText(conf->readEntry("Server", getenv("FAXSERVER")));
-	v = conf->readEntry("Device", "modem");
-	if (v.startsWith("ttyS"))
-		m_device->setCurrentItem(v.right(v.length()-4).toInt()+1);
-	else if ( v == "modem" )
-		m_device->setCurrentItem(0);
-	else
-	{
-		m_device->setCurrentItem( m_device->count()-1 );
-		m_device_edit->setText( "/dev/" + v );
-		slotDeviceChanged( m_device->count()-1 );
-	}
-
-	m_system->setCurrentItem(m_current);
-	m_command->setText(m_commands[m_current]);
-	slotSystemChanged(m_current);
-}
- 
-void ConfSystem::save()
-{
-	m_commands[ m_current ] = m_command->text();
-	KConfig	*conf = KGlobal::config();
-	conf->setGroup("System");
-	if (m_commands[EFAX_ID] != defaultCommand(efax_default_cmd))
-		conf->writePathEntry("EFax", m_commands[EFAX_ID]);
-	else
-		conf->deleteEntry("EFax");
-	if (m_commands[HYLAFAX_ID] != defaultCommand(hylafax_default_cmd))
-		conf->writePathEntry("HylaFax", m_commands[HYLAFAX_ID]);
-	else
-		conf->deleteEntry("HylaFax");
-	if (m_commands[MGETTY_ID] != defaultCommand(mgetty_default_cmd))
-		conf->writePathEntry("Mgetty", m_commands[MGETTY_ID]);
-	else
-		conf->deleteEntry("Mgetty");
-	if ( !m_commands[ OTHER_ID ].isEmpty() )
-		conf->writeEntry( "Other", m_commands[ OTHER_ID ] );
-	else
-		conf->deleteEntry( "Other" );
-	int	ID = m_system->currentItem();
-	switch (ID)
-	{
-		case EFAX_ID: conf->writeEntry("System", "efax"); break;
-		case HYLAFAX_ID: conf->writeEntry("System", "hylafax"); break;
-		case MGETTY_ID: conf->writeEntry("System", "mgetty"); break;
-		case OTHER_ID: conf->writeEntry( "System", "other" ); break;
-	}
-	conf->setGroup("Fax");
-	if ( m_device->currentItem() != ( m_device->count()-1 ) )
-		conf->writeEntry("Device", m_device->currentItem() == 0 ? TQString("modem") : TQString(TQString("ttyS%1").arg(m_device->currentItem()-1)));
-	else
-	{
-		TQString dev = m_device_edit->text();
-		// strip leading "/dev/"
-		if ( dev.startsWith( "/dev/" ) )
-			dev = dev.mid( 5 );
-		conf->writeEntry( "Device", dev );
-	}
-	if (m_server->text().isEmpty())
-		conf->deleteEntry("Server");
-	else
-		conf->writeEntry("Server", m_server->text());
-}
-
-void ConfSystem::slotSystemChanged(int ID)
-{
-	m_commands[m_current] = m_command->text();
-	m_current = ID;
-	if (ID == EFAX_ID)
-		m_device->parentWidget()->show();
-	else
-		m_device->parentWidget()->hide();
-	if (ID == HYLAFAX_ID)
-		m_server->parentWidget()->show();
-	else
-		m_server->parentWidget()->hide();
-	m_command->setText(m_commands[m_current]);
-}
-
-void ConfSystem::slotDeviceChanged( int ID )
-{
-	if ( ID != ( m_device->count()-1 ) )
-		m_device_edit->hide();
-	else
-		m_device_edit->show();
-}
-
-#include "confsystem.moc"
diff --git a/kdeprint/kdeprintfax/confsystem.h b/kdeprint/kdeprintfax/confsystem.h
deleted file mode 100644
index 0ce8971f0..000000000
--- a/kdeprint/kdeprintfax/confsystem.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef CONFSYSTEM_H
-#define CONFSYSTEM_H
-
-#include <tqwidget.h>
-#include <tqstringlist.h>
-
-class TQLineEdit;
-class TQComboBox;
-
-class ConfSystem : public TQWidget
-{
-	Q_OBJECT
-public:
-	ConfSystem(TQWidget *parent = 0, const char *name = 0);
-
-	void load();
-	void save();
-
-protected slots:
-	void slotSystemChanged(int);
-	void slotDeviceChanged(int);
-
-private:
-	TQComboBox	*m_system, *m_device;
-	TQLineEdit	*m_command, *m_server, *m_device_edit;
-	TQStringList	m_commands;
-	int		m_current;
-};
-
-#endif
diff --git a/kdeprint/kdeprintfax/cr16-action-abentry.png b/kdeprint/kdeprintfax/cr16-action-abentry.png
deleted file mode 100644
index b6b1011f3..000000000
Binary files a/kdeprint/kdeprintfax/cr16-action-abentry.png and /dev/null differ
diff --git a/kdeprint/kdeprintfax/defcmds.cpp b/kdeprint/kdeprintfax/defcmds.cpp
deleted file mode 100644
index a2d58c17e..000000000
--- a/kdeprint/kdeprintfax/defcmds.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#include "defcmds.h"
-
-#include <tqregexp.h>
-#include <kstandarddirs.h>
-
-TQString defaultCommand(const TQString& cmd)
-{
-	TQString	str(cmd);
-	TQRegExp	r("%exe_(\\w+)");
-	int	p(-1);
-	if ((p=r.search(str)) != -1)
-	{
-		TQString	exe = KStandardDirs::findExe(r.cap(1));
-		if (exe.isEmpty())
-			exe = "/usr/bin/"+r.cap(1);
-		str.replace(p, r.matchedLength(), exe);
-	}
-	return str;
-}
diff --git a/kdeprint/kdeprintfax/defcmds.h b/kdeprint/kdeprintfax/defcmds.h
deleted file mode 100644
index 90d67b83f..000000000
--- a/kdeprint/kdeprintfax/defcmds.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef DEFCMDS_H
-#define DEFCMDS_H
-
-#include <tqstring.h>
-
-#define efax_default_cmd    "%exe_fax %user_{NAME=\"@@\"} %dev_{DEV=@@} PAGE=%page %from_{FROM=\"@@\"} %res_{?\?-l} send %number %files"
-#define hylafax_default_cmd "%exe_sendfax %cover_{?\?-n} %server_h %res_{-m?\?-l} %subject_r %time_a %enterprise_x %comment_c %email_f %from_W %page_s -d %name_{@@@}%number %files"
-#define mgetty_default_cmd  "%exe_faxspool %user_F %email_f %name_D %time_t %number %files %res_{?\?-n} %cover_{?\?-C -}"
-
-TQString defaultCommand(const TQString& cmd);
-
-#endif
diff --git a/kdeprint/kdeprintfax/faxab.cpp b/kdeprint/kdeprintfax/faxab.cpp
deleted file mode 100644
index ad50ac9fb..000000000
--- a/kdeprint/kdeprintfax/faxab.cpp
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include "faxab.h"
-
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <kpushbutton.h>
-#include <klistview.h>
-#include <tqheader.h>
-#include <klocale.h>
-#include <kabc/stdaddressbook.h>
-#include <kmessagebox.h>
-#include <kiconloader.h>
-#include <krun.h>
-#include <kstdguiitem.h>
-#include <kglobal.h>
-#include <kconfig.h>
-
-FaxAB::FaxAB(TQWidget *parent, const char *name)
-: KDialog(parent, name, true)
-{
-	m_list = new KListView( this );
-	m_list->addColumn( i18n( "Name" ) );
-	m_list->addColumn( i18n( "Fax Number" ) );
-	m_list->header()->setStretchEnabled( true, 0 );
-	TQLabel	*m_listlabel = new TQLabel(i18n("Entries:"), this);
-	m_ok = new KPushButton(KStdGuiItem::ok(), this);
-	TQPushButton	*m_cancel = new KPushButton(KStdGuiItem::cancel(), this);
-	TQPushButton	*m_ab = new KPushButton(KGuiItem(i18n("&Edit Addressbook"), "contents"), this);
-	connect(m_ok, TQT_SIGNAL(clicked()), TQT_SLOT(accept()));
-	connect(m_cancel, TQT_SIGNAL(clicked()), TQT_SLOT(reject()));
-	connect(m_ab, TQT_SIGNAL(clicked()), TQT_SLOT(slotEditAb()));
-	m_ok->setDefault(true);
-
-	TQVBoxLayout	*l0 = new TQVBoxLayout(this, 10, 10);
-	l0->addWidget( m_listlabel );
-	l0->addWidget( m_list );
-	TQHBoxLayout	*l2 = new TQHBoxLayout(0, 0, 10);
-	l0->addLayout(l2, 0);
-	l2->addWidget(m_ab, 0);
-	l2->addStretch(1);
-	l2->addWidget(m_ok, 0);
-	l2->addWidget(m_cancel, 0);
-
-	KConfig *conf = KGlobal::config();
-	conf->setGroup( "General" );
-	TQSize defsize( 400, 200 );
-	resize( conf->readSizeEntry( "ABSize", &defsize ) );
-
-	initialize();
-	connect(KABC::StdAddressBook::self(), TQT_SIGNAL(addressBookChanged(AddressBook*)), TQT_SLOT(slotAbChanged(AddressBook*)));
-}
-
-FaxAB::~FaxAB()
-{
-	KConfig *conf = KGlobal::config();
-	conf->setGroup( "General" );
-	conf->writeEntry( "ABSize", size() );
-}
-
-void FaxAB::initialize()
-{
-	m_entries.clear();
-	m_list->clear();
-
-	KABC::AddressBook	*bk = KABC::StdAddressBook::self();
-	for (KABC::AddressBook::Iterator it=bk->begin(); it!=bk->end(); ++it)
-	{
-		KABC::PhoneNumber::List	numbers = (*it).phoneNumbers();
-		KABC::PhoneNumber::List faxNumbers;
-		for (TQValueList<KABC::PhoneNumber>::Iterator nit=numbers.begin(); nit!=numbers.end(); ++nit)
-		{
-			if (((*nit).type() & KABC::PhoneNumber::Fax) && !(*nit).number().isEmpty())
-				faxNumbers << ( *nit );
-		}
-		if (faxNumbers.count() > 0)
-		{
-			for ( KABC::PhoneNumber::List::ConstIterator nit = faxNumbers.begin(); nit != faxNumbers.end(); ++nit )
-			{
-				FaxABEntry entry;
-				entry.m_number = ( *nit );
-				entry.m_enterprise = ( *it ).organization();
-				if ( !( *it ).formattedName().isEmpty() )
-					entry.m_name = ( *it ).formattedName();
-				else
-				{
-					TQString key = ( *it ).familyName();
-					if ( !( *it ).givenName().isEmpty() )
-					{
-						if ( !key.isEmpty() )
-							key.append( " " );
-						key.append( ( *it ).givenName() );
-					}
-					entry.m_name = key;
-				}
-				entry.m_name += ( " (" + ( *nit ).typeLabel() + ")" );
-				m_entries[ entry.m_name ] = entry;
-			}
-		}
-	}
-
-	if (m_entries.count() > 0)
-	{
-		for (TQMap<TQString,FaxABEntry>::ConstIterator it=m_entries.begin(); it!=m_entries.end(); ++it)
-		{
-			TQCheckListItem *item = new TQCheckListItem( m_list, it.key(), TQCheckListItem::CheckBox );
-			item->setText( 1, ( *it ).m_number.number() );
-			item->setText( 2, ( *it ).m_enterprise );
-		}
-		m_list->sort();
-		m_ok->setEnabled(true);
-	}
-	else
-		m_ok->setDisabled(true);
-}
-
-void FaxAB::slotEditAb()
-{
-	KRun::runCommand("kaddressbook");
-}
-
-void FaxAB::slotAbChanged(AddressBook*)
-{
-	initialize();
-}
-
-bool FaxAB::getEntry(TQStringList& number, TQStringList& name, TQStringList& enterprise, TQWidget *parent)
-{
-	FaxAB	kab(parent);
-	if (!kab.isValid())
-	{
-		KMessageBox::error(parent, i18n("No fax number found in your address book."));
-		return false;
-	}
-	if (kab.exec())
-	{
-		TQListViewItemIterator it( kab.m_list, TQListViewItemIterator::Checked );
-		while ( it.current() )
-		{
-			number << it.current()->text( 1 );
-			name << it.current()->text( 0 );
-			enterprise << it.current()->text( 2 );
-			++it;
-		}
-		/*
-		number = kab.m_fax->currentText();
-		name = kab.m_name->currentText();
-		if (kab.m_entries.contains(name))
-		{
-			enterprise = kab.m_entries[name][0];
-		}
-		*/
-		return true;
-	}
-
-	return false;
-}
-
-bool FaxAB::getEntryByNumber(const TQString& number, TQString& name, TQString& enterprise)
-{
-	KABC::AddressBook *bk = KABC::StdAddressBook::self();
-	for (KABC::AddressBook::Iterator it=bk->begin(); it!=bk->end(); ++it)
-	{
-		KABC::PhoneNumber::List	numbers = (*it).phoneNumbers();
-		TQStringList	filteredNumbers;
-		for (TQValueList<KABC::PhoneNumber>::Iterator nit=numbers.begin(); nit!=numbers.end(); ++nit)
-		{
-			if (((*nit).type() & KABC::PhoneNumber::Fax) )
-			{
-				TQString strippedNumber;
-				for (uint i = 0; i < (*nit).number().length(); ++i)
-					if ((*nit).number()[i].isDigit() || ( *nit ).number()[ i ] == '+')
-						strippedNumber.append((*nit).number()[i]);
-
-				if ( strippedNumber == number)
-				{
-					enterprise = (*it).organization();
-					name = (*it).formattedName();
-					return true;
-				}
-			}
-		}
-	}
-
-	return false;
-}
-
-bool FaxAB::isValid()
-{
-	return true;
-	//return (m_name->count() > 0);
-}
-
-#include "faxab.moc"
diff --git a/kdeprint/kdeprintfax/faxab.h b/kdeprint/kdeprintfax/faxab.h
deleted file mode 100644
index 8b50c204a..000000000
--- a/kdeprint/kdeprintfax/faxab.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef FAXAB_H
-#define FAXAB_H
-
-#include <kdialog.h>
-#include <tqmap.h>
-#include <tqstringlist.h>
-#include <kabc/phonenumber.h>
-
-class KListView;
-class AddressBook;
-class TQPushButton;
-
-class FaxAB : public KDialog
-{
-	Q_OBJECT
-public:
-	FaxAB(TQWidget *parent = 0, const char *name = 0);
-	~FaxAB();
-	bool isValid();
-
-	static bool getEntry(TQStringList& number, TQStringList& name, TQStringList& enterprise, TQWidget *parent = 0);
-	static bool getEntryByNumber(const TQString& number, TQString& name, TQString& enterprise);
-
-protected slots:
-	void slotEditAb();
-	void slotAbChanged(AddressBook*);
-
-protected:
-	void initialize();
-
-private:
-	struct FaxABEntry
-	{
-		TQString           m_name;
-		KABC::PhoneNumber m_number;
-		TQString           m_enterprise;
-	};
-
-	KListView*                  m_list;
-	TQMap<TQString,FaxABEntry>    m_entries;
-	TQPushButton*                m_ok;
-};
-
-#endif
diff --git a/kdeprint/kdeprintfax/faxctrl.cpp b/kdeprint/kdeprintfax/faxctrl.cpp
deleted file mode 100644
index c1b1b1a0d..000000000
--- a/kdeprint/kdeprintfax/faxctrl.cpp
+++ /dev/null
@@ -1,669 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include "faxctrl.h"
-#include "tdeprintfax.h"
-#include "defcmds.h"
-
-#include <ktextedit.h>
-#include <tqfile.h>
-#include <tqtextstream.h>
-#include <kpushbutton.h>
-#include <tqlayout.h>
-#include <tqregexp.h>
-#include <kprinter.h>
-#include <tqsimplerichtext.h>
-#include <tqpainter.h>
-#include <tqpaintdevicemetrics.h>
-#include <tqvaluestack.h>
-#include <tqstylesheet.h>
-
-#include <kprocess.h>
-#include <kglobal.h>
-#include <kconfig.h>
-#include <klocale.h>
-#include <kdialogbase.h>
-#include <kmimetype.h>
-#include <kstandarddirs.h>
-#include <kapplication.h>
-#include <kwin.h>
-#include <kemailsettings.h>
-#include <kdebug.h>
-#include <kstdguiitem.h>
-#include <kfiledialog.h>
-#include <kmessagebox.h>
-
-#include <stdlib.h>
-#include <stdarg.h>
-
-#define quote(x) KProcess::quote(x)
-
-/** \brief Return a string for the page size.
- *
- * @param size the page size, which is actually of type @c TQPrinter::PageSize
- * @return a pointer to a static string for the name of the page size.
- */
-char const* pageSizeText(int size)
-{
-	switch(size)
-	{
-	case TQPrinter::A4:		return "a4";
-	case TQPrinter::Legal:	return "legal";
-	case TQPrinter::Letter:	return "letter";
-	default:				return "letter";
-	}
-}
-
-/** \brief Return the default page size.
- */
-static TQString pageSize()
-{
-	KConfig	*conf = KGlobal::config();
-	conf->setGroup("Fax");
-	return conf->readEntry("Page", pageSizeText(KGlobal::locale()->pageSize()));
-}
-
-static TQString stripNumber( const TQString& s )
-{
-	KConfig *conf = KGlobal::config();
-	conf->setGroup( "Personal" );
-
-	// removes any non-numeric character, except ('+','*','#') (hope it's supported by faxing tools)
-	TQString strip_s = s;
-	strip_s.replace( TQRegExp( "[^\\d+*#]" ), "" );
-	if ( strip_s.find( '+' ) != -1 && conf->readBoolEntry( "ReplaceIntChar", false ) )
-		strip_s.replace( "+", conf->readEntry( "ReplaceIntCharVal" ) );
-	return strip_s;
-}
-
-static TQString tagList( int n, ... )
-{
-	TQString t;
-
-	va_list ap;
-	va_start( ap, n );
-	for ( int i=0; i<n; i++ )
-	{
-		TQString tag = va_arg( ap, const char* );
-		tag.append( "(_(\\w|\\{[^\\}]*\\}))?" );
-		if ( t.isEmpty() )
-			t = tag;
-		else
-			t.append( "|" ).append( tag );
-	}
-
-	return t;
-}
-
-/** Process a @c %variable that has a boolean value.
- * The format is <tt>%name_{iftrue??iffalse}</tt>. Either
- * @em iftrue or @em iffalse can be empty (or both, but that would
- * be silly). For example, if the fax software uses the
- * option @c -l for low resolution, you might use <tt>%res_{??-l}</tt>,
- * and if it uses high resolution, use <tt>%res_{-h??}</tt>. As an
- * abbreviation, omit the trailing <tt>?</tt>, e.g., <tt>%res_{-h}</tt>.
- *
- * By the way, when using multiple, adjacent question marks,
- * always be careful about inadvertently using trigraphs.
- * Always escape the second and subsequent question marks, to be safe.
- * I suppose question marks are not the best string to use,
- * but I think they work well for the end-user.
- *
- * @param match the string to process
- * @param value the Boolean value to control the processing
- * @return the new value of the tag
- */
-static TQString processTag( const TQString& match, bool value)
-{
-	TQString v;
-	int p = match.find( '_' );
-	if ( p != -1 && match[ p+1 ] == '{' )
-	{
-		// Find the ?? that separates the iftrue from the iffalse parts.
-		int q = match.find( "?\?", p+2 );
-		if ( q == -1 )
-		{
-			// No iffalse part
-			if (value)
-				v = match.mid( p+2 );
-			// else value is false, so leave v empty.
-		}
-		else if ( value )
-			// Extract only the iftrue part
-			v = match.mid( p+2, q-p-2 );
-		else
-			// Extract only the iffalse part
-			v = match.mid( q+2, match.length()-q-3 );
-	}
-	// Else the string is malformed: no _ or no { after the _
-	// In either case, there isn't much the program can do,
-	// so just leave the result string empty.
-
-	return v;
-}
-
-static TQString processTag( const TQString& match, const TQString& value )
-{
-	TQString v;
-	int p = match.find( '_' );
-	if ( p != -1 )
-	{
-		if ( value.isEmpty() )
-			v = "";
-		else
-		{
-			if ( match[ p+1 ] == '{' )
-			{
-				v = match.mid( p+2, match.length()-p-3 );
-				v.replace( "@@", quote( value ) );
-			}
-			else
-				v = ( "-" + match.mid( p+1 ) + " " + quote( value ) );
-		}
-	}
-	else
-		v = quote( value );
-	return v;
-}
-
-static bool isTag( const TQString& m, const TQString& t )
-{
-	return ( m == t || m.startsWith( t+"_" ) );
-}
-
-static TQString replaceTags( const TQString& s, const TQString& tags, KdeprintFax *fax = NULL, const KdeprintFax::FaxItem& item = KdeprintFax::FaxItem() )
-{
-	// unquote variables (they will be replaced with quoted values later)
-
-	TQValueStack<bool> stack;
-	KConfig	*conf = KGlobal::config();
-
-	TQString cmd = s;
-
-	bool issinglequote=false;
-	bool isdoublequote=false;
-	TQRegExp re_noquote("(\\$\\(|\\)|\\(|\"|'|\\\\|`|"+tags+")");
-	TQRegExp re_singlequote("('|"+tags+")");
-	TQRegExp re_doublequote("(\\$\\(|\"|\\\\|`|"+tags+")");
-	for	( int i = re_noquote.search(cmd);
-		i != -1;
-		i = (issinglequote?re_singlequote.search(cmd,i)
-			:isdoublequote?re_doublequote.search(cmd,i)
-			:re_noquote.search(cmd,i))
-	)
-	{
-		if (cmd[i]=='(') // (...)
-		{
-			// assert(isdoublequote == false)
-			stack.push(isdoublequote);
-			i++;
-		}
-		else if (cmd[i]=='$') // $(...)
-		{
-			stack.push(isdoublequote);
-			isdoublequote = false;
-			i+=2;
-		}
-		else if (cmd[i]==')') // $(...) or (...)
-		{
-			if (!stack.isEmpty())
-				isdoublequote = stack.pop();
-			else
-				qWarning("Parse error.");
-			i++;
-		}
-		else if (cmd[i]=='\'')
-		{
-			issinglequote=!issinglequote;
-			i++;
-		}
-		else if (cmd[i]=='"')
-		{
-			isdoublequote=!isdoublequote;
-			i++;
-		}
-		else if (cmd[i]=='\\')
-			i+=2;
-		else if (cmd[i]=='`')
-		{
-			// Replace all `...` with safer $(...)
-			cmd.replace (i, 1, "$(");
-			TQRegExp re_backticks("(`|\\\\`|\\\\\\\\|\\\\\\$)");
-			for (	int i2=re_backticks.search(cmd,i+2);
-				i2!=-1;
-				i2=re_backticks.search(cmd,i2)
-			)
-			{
-				if (cmd[i2] == '`')
-				{
-					cmd.replace (i2, 1, ")");
-					i2=cmd.length(); // leave loop
-				}
-				else
-				{	// remove backslash and ignore following character
-					cmd.remove (i2, 1);
-					i2++;
-				}
-			}
-			// Leave i unchanged! We need to process "$("
-		}
-		else
-		{
-			TQString match, v;
-
-			// get match
-			if (issinglequote)
-				match=re_singlequote.cap();
-			else if (isdoublequote)
-				match=re_doublequote.cap();
-			else
-				match=re_noquote.cap();
-
-			// substitute %variables
-			// settings
-			if ( isTag( match, "%dev" ) )
-			{
-				conf->setGroup("Fax");
-				v = processTag( match, conf->readEntry("Device", "modem") );
-
-			}
-			else if (isTag( match, "%server" ))
-			{
-				conf->setGroup( "Fax" );
-				v = conf->readEntry("Server");
-				if (v.isEmpty())
-					v = getenv("FAXSERVER");
-				if (v.isEmpty())
-					v = TQString::tqfromLatin1("localhost");
-				v = processTag( match, v );
-			}
-			else if (isTag( match, "%page" ))
-			{
-				conf->setGroup( "Fax" );
-				v = processTag( match, pageSize() );
-			}
-			else if (isTag( match, "%res" ))
-			{
-				conf->setGroup( "Fax" );
-				v = processTag(match, conf->readEntry("Resolution", "High") == "High");
-			}
-			else if (isTag( match, "%user" ))
-			{
-				conf->setGroup("Personal");
-				v = processTag(match, conf->readEntry("Name", getenv("USER")));
-			}
-			else if (isTag( match, "%from" ))
-			{
-				conf->setGroup( "Personal" );
-				v = processTag(match, conf->readEntry("Number"));
-			}
-			else if (isTag( match, "%email" ))
-			{
-				KEMailSettings	e;
-				v = processTag(match, e.getSetting(KEMailSettings::EmailAddress));
-			}
-			// arguments
-			else if (isTag( match, "%number" ))
-				v = processTag( match, stripNumber( item.number) );
-			else if (isTag( match, "%rawnumber" ))
-				v = processTag( match, item.number );
-			else if (isTag( match, "%name" ))
-				v = processTag(match, item.name);
-			else if (isTag( match, "%comment" ))
-				v = processTag(match, fax->comment());
-			else if (isTag( match, "%enterprise" ))
-				v = processTag(match, item.enterprise);
-			else if ( isTag( match, "%time" ) )
-				v = processTag( match, fax->time() );
-			else if ( isTag( match, "%subject" ) )
-				v = processTag( match, fax->subject() );
-			else if (isTag( match, "%cover" ))
-				v = processTag(match, fax->cover());
-
-			// %variable inside of a quote?
-			if (isdoublequote)
-				v='"'+v+'"';
-			else if (issinglequote)
-				v="'"+v+"'";
-
-			cmd.replace (i, match.length(), v);
-			i+=v.length();
-		}
-	}
-
-	return cmd;
-}
-
-FaxCtrl::FaxCtrl(TQWidget *parent, const char *name)
-: TQObject(parent, name)
-{
-	m_process = new KProcess();
-	m_process->setUseShell(true);
-	connect(m_process, TQT_SIGNAL(receivedStdout(KProcess*,char*,int)), TQT_SLOT(slotReceivedStdout(KProcess*,char*,int)));
-	connect(m_process, TQT_SIGNAL(receivedStderr(KProcess*,char*,int)), TQT_SLOT(slotReceivedStdout(KProcess*,char*,int)));
-	connect(m_process, TQT_SIGNAL(processExited(KProcess*)), TQT_SLOT(slotProcessExited(KProcess*)));
-	connect(this, TQT_SIGNAL(faxSent(bool)), TQT_SLOT(cleanTempFiles()));
-	m_logview = 0;
-}
-
-FaxCtrl::~FaxCtrl()
-{
-	slotCloseLog();
-	delete m_process;
-}
-
-bool FaxCtrl::send(KdeprintFax *f)
-{
-	m_command = faxCommand();
-	if (m_command.isEmpty())
-		return false;
-
-	// replace tags common to all fax "operations"
-	m_command = replaceTags( m_command, tagList( 11, "%dev", "%server", "%page", "%res", "%user", "%from", "%email", "%comment", "%time", "%subject", "%cover" ), f );
-
-	m_log = TQString::null;
-	m_filteredfiles.clear();
-	cleanTempFiles();
-	m_files = f->files();
-	m_faxlist = f->faxList();
-
-	addLogTitle( i18n( "Converting input files to PostScript" ) );
-	filter();
-
-	return true;
-}
-
-void FaxCtrl::slotReceivedStdout(KProcess*, char *buffer, int len)
-{
-	TQCString	str(buffer, len);
-	kdDebug() << "Received stdout: " << str << endl;
-	addLog(TQString(str));
-}
-
-void FaxCtrl::slotProcessExited(KProcess*)
-{
-	// we exited a process: if there's still entries in m_files, this was a filter
-	// process, else this was the fax process
-	bool	ok = (m_process->normalExit() && ((m_process->exitStatus() & (m_files.count() > 0 ? 0x1 : 0xFFFFFFFF)) == 0));
-	if ( ok )
-	{
-		if ( m_files.count() > 0 )
-		{
-			// remove first element
-			m_files.remove(m_files.begin());
-			if (m_files.count() > 0)
-				filter();
-			else
-				sendFax();
-		}
-		else if ( !m_faxlist.isEmpty() )
-			sendFax();
-		else
-			faxSent( true );
-	}
-	else
-	{
-		emit faxSent(false);
-	}
-}
-
-TQString FaxCtrl::faxCommand()
-{
-	KConfig	*conf = KGlobal::config();
-	conf->setGroup("System");
-	TQString	sys = conf->readPathEntry("System", "efax");
-	TQString cmd;
-	if (sys == "hylafax")
-		cmd = conf->readPathEntry("HylaFax", hylafax_default_cmd);
-	else if (sys == "mgetty")
-		cmd = conf->readPathEntry("Mgetty", mgetty_default_cmd);
-	else if ( sys == "other" )
-		cmd = conf->readPathEntry( "Other", TQString::null );
-	else
-		cmd = conf->readPathEntry("EFax", efax_default_cmd);
-	if (cmd.startsWith("%exe_"))
-		cmd = defaultCommand(cmd);
-	return cmd;
-}
-
-void FaxCtrl::sendFax()
-{
-	if ( m_command.find( "%files" ) != -1 )
-	{
-		// replace %files tag
-		TQString	filestr;
-		for (TQStringList::ConstIterator it=m_filteredfiles.begin(); it!=m_filteredfiles.end(); ++it)
-			filestr += (quote(*it)+" ");
-		m_command.replace("%files", filestr);
-	}
-
-	if ( !m_faxlist.isEmpty() )
-	{
-		KdeprintFax::FaxItem item = m_faxlist.first();
-		m_faxlist.remove(m_faxlist.begin());
-
-		addLogTitle( i18n( "Sending fax to %1 (%2)" ).arg( item.number ).arg( item.name ) );
-
-		TQString cmd = replaceTags( m_command, tagList( 4, "%number", "%name", "%enterprise", "%rawnumber" ), NULL, item );
-		m_process->clearArguments();
-		*m_process << cmd;
-		addLog(i18n("Sending to fax using: %1").arg(cmd));
-		if (!m_process->start(KProcess::NotifyOnExit, KProcess::AllOutput))
-			emit faxSent(false);
-		else
-			emit message(i18n("Sending fax to %1...").arg( item.number ));
-	}
-}
-
-void FaxCtrl::filter()
-{
-	if (m_files.count() > 0)
-	{
-		TQString	mimeType = KMimeType::findByURL(KURL(m_files[0]), 0, true)->name();
-		if (mimeType == "application/postscript" || mimeType == "image/tiff")
-		{
-			emit message(i18n("Skipping %1...").arg(m_files[0]));
-			m_filteredfiles.prepend(m_files[0]);
-			m_files.remove(m_files.begin());
-			filter();
-		}
-		else
-		{
-			TQString	tmp = locateLocal("tmp","tdeprintfax_") + kapp->randomString(8);
-			m_filteredfiles.prepend(tmp);
-			m_tempfiles.append(tmp);
-			m_process->clearArguments();
-			*m_process << locate("data","tdeprintfax/anytops") << "-m" << KProcess::quote(locate("data","tdeprintfax/faxfilters"))
-				<< TQString::tqfromLatin1("--mime=%1").arg(mimeType)
-				<< "-p" << pageSize()
-				<<  KProcess::quote(m_files[0]) << KProcess::quote(tmp);
-			if (!m_process->start(KProcess::NotifyOnExit, KProcess::AllOutput))
-				emit faxSent(false);
-			else
-				emit message(i18n("Filtering %1...").arg(m_files[0]));
-		}
-	}
-	else
-	{
-		sendFax();
-	}
-}
-
-bool FaxCtrl::abort()
-{
-	if (m_process->isRunning())
-		return m_process->kill();
-	else
-		return false;
-}
-
-void FaxCtrl::viewLog(TQWidget *)
-{
-	if (!m_logview)
-	{
-		TQWidget	*topView = new TQWidget(0, "LogView", (WFlags)(WType_TopLevel|WStyle_DialogBorder|WDestructiveClose));
-		m_logview = new KTextEdit(topView);
-		m_logview->setTextFormat( TQt::LogText );
-		m_logview->setWordWrap( TQTextEdit::WidgetWidth );
-		m_logview->setPaper( Qt::white );
-		//m_logview->setReadOnly(true);
-		//m_logview->setWordWrap(TQTextEdit::NoWrap);
-		TQPushButton	*m_clear = new KPushButton(KStdGuiItem::clear(), topView);
-		TQPushButton	*m_close = new KPushButton(KStdGuiItem::close(), topView);
-		TQPushButton *m_print = new KPushButton( KStdGuiItem::print(), topView );
-		TQPushButton *m_save = new KPushButton( KStdGuiItem::saveAs(), topView );
-		m_close->setDefault(true);
-		connect(m_clear, TQT_SIGNAL(clicked()), TQT_SLOT(slotClearLog()));
-		connect(m_close, TQT_SIGNAL(clicked()), TQT_SLOT(slotCloseLog()));
-		connect(m_logview, TQT_SIGNAL(destroyed()), TQT_SLOT(slotCloseLog()));
-		connect( m_print, TQT_SIGNAL( clicked() ), TQT_SLOT( slotPrintLog() ) );
-		connect( m_save, TQT_SIGNAL( clicked() ), TQT_SLOT( slotSaveLog() ) );
-
-		TQVBoxLayout	*l0 = new TQVBoxLayout(topView, 10, 10);
-		l0->addWidget(m_logview);
-		TQHBoxLayout	*l1 = new TQHBoxLayout(0, 0, 10);
-		l0->addLayout(l1);
-		l1->addStretch(1);
-		l1->addWidget( m_save );
-		l1->addWidget( m_print );
-		l1->addWidget(m_clear);
-		l1->addWidget(m_close);
-
-		m_logview->setText(m_log);
-
-		topView->resize(450, 350);
-		topView->show();
-	}
-	else
-	{
-		KWin::activateWindow(m_logview->parentWidget()->winId());
-	}
-}
-
-void FaxCtrl::addLogTitle( const TQString& s )
-{
-	TQString t( s );
-	t.prepend( '\n' ).append( '\n' );
-	addLog( t, true );
-}
-
-void FaxCtrl::addLog(const TQString& s, bool isTitle)
-{
-	TQString t = TQStyleSheet::escape(s);
-	if ( isTitle )
-		t.prepend( "<font color=red><b>" ).append( "</b></font>" );
-	m_log.append( t + '\n' );
-	if (m_logview)
-		m_logview->append(t);
-}
-
-TQString FaxCtrl::faxSystem()
-{
-	KConfig	*conf = KGlobal::config();
-	conf->setGroup("System");
-	TQString	s = conf->readEntry("System", "efax");
-	s[0] = s[0].upper();
-	return s;
-}
-
-void FaxCtrl::cleanTempFiles()
-{
-	for (TQStringList::ConstIterator it=m_tempfiles.begin(); it!=m_tempfiles.end(); ++it)
-		TQFile::remove(*it);
-	m_tempfiles.clear();
-}
-
-void FaxCtrl::slotClearLog()
-{
-	m_log = TQString::null;
-	if (m_logview)
-		m_logview->clear();
-}
-
-void FaxCtrl::slotCloseLog()
-{
-	const TQObject	*obj = TQT_TQOBJECT_CONST(sender());
-	if (m_logview)
-	{
-		TQTextEdit	*view = m_logview;
-		m_logview = 0;
-		if (obj && obj->inherits(TQPUSHBUTTON_OBJECT_NAME_STRING))
-			delete view->parentWidget();
-kdDebug() << "slotClose()" << endl;
-	}
-}
-
-void FaxCtrl::slotPrintLog()
-{
-	if ( m_logview )
-	{
-		KPrinter printer;
-		printer.setDocName( i18n( "Fax log" ) );
-		printer.setDocFileName( "faxlog" );
-		if ( printer.setup( m_logview->tqtopLevelWidget(), i18n( "Fax Log" ) ) )
-		{
-			TQPainter painter( &printer );
-			TQPaintDeviceMetrics metric( &printer );
-			TQRect body( 0, 0, metric.width(), metric.height() ), view( body );
-			//TQString txt = m_logview->text();
-			TQString txt = m_log;
-
-			txt.replace( '\n', "<br>" );
-			txt.prepend( "<h2>" + i18n( "KDEPrint Fax Tool Log" ) + "</h2>" );
-
-			kdDebug() << "Log: " << txt << endl;
-			TQSimpleRichText richText( txt, m_logview->font() );
-
-			richText.setWidth( &painter, body.width() );
-			do
-			{
-				richText.draw( &painter, body.left(), body.top(), view, m_logview->tqcolorGroup() );
-				view.moveBy( 0, body.height() );
-				painter.translate( 0, -body.height() );
-				if ( view.top() >= richText.height() )
-					break;
-				printer.newPage();
-			} while ( true );
-		}
-	}
-}
-
-void FaxCtrl::slotSaveLog()
-{
-	if ( m_logview )
-	{
-		TQString filename = KFileDialog::getSaveFileName( TQString::null, TQString::null, m_logview );
-		if ( !filename.isEmpty() )
-		{
-			TQFile f( filename );
-			if ( f.open( IO_WriteOnly ) )
-			{
-				TQTextStream t( &f );
-				t << i18n( "KDEPrint Fax Tool Log" ) << endl;
-				t << m_logview->text() << endl;
-				f.close();
-			}
-			else
-				KMessageBox::error( m_logview, i18n( "Cannot open file for writing." ) );
-		}
-	}
-}
-
-#include "faxctrl.moc"
diff --git a/kdeprint/kdeprintfax/faxctrl.h b/kdeprint/kdeprintfax/faxctrl.h
deleted file mode 100644
index a7e16a850..000000000
--- a/kdeprint/kdeprintfax/faxctrl.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef FAXCTRL_H
-#define FAXCTRL_H
-
-#include <tqobject.h>
-#include <tqstring.h>
-#include <tqstringlist.h>
-
-#include "tdeprintfax.h"
-
-class KProcess;
-class TQTextEdit;
-
-class FaxCtrl : public TQObject
-{
-	Q_OBJECT
-public:
-	FaxCtrl(TQWidget *parent = 0, const char *name = 0);
-	~FaxCtrl();
-
-	bool send(KdeprintFax *f);
-	bool abort();
-	void viewLog(TQWidget *parent = 0);
-	TQString faxSystem();
-	TQString faxCommand();
-
-signals:
-	void message(const TQString&);
-	void faxSent(bool);
-
-protected slots:
-	void slotReceivedStdout(KProcess*, char*, int);
-	void slotProcessExited(KProcess*);
-	void cleanTempFiles();
-	void slotClearLog();
-	void slotCloseLog();
-	void slotPrintLog();
-	void slotSaveLog();
-
-protected:
-	void filter();
-	void sendFax();
-	void addLog(const TQString&, bool = false);
-	void addLogTitle( const TQString& );
-
-private:
-	KProcess	*m_process;
-	TQString		m_log, m_command;
-	TQStringList	m_files, m_filteredfiles, m_tempfiles;
-	TQTextEdit	*m_logview;
-	KdeprintFax::FaxItemList m_faxlist;
-};
-
-#endif
diff --git a/kdeprint/kdeprintfax/faxfilters b/kdeprint/kdeprintfax/faxfilters
deleted file mode 100644
index 73e96a14e..000000000
--- a/kdeprint/kdeprintfax/faxfilters
+++ /dev/null
@@ -1,3 +0,0 @@
-text/* enscript -M %psu -E -p %out %in
-image/* imagetops -gray -noturn %in > %out
-*/* cat %in > %out
diff --git a/kdeprint/kdeprintfax/filterdlg.cpp b/kdeprint/kdeprintfax/filterdlg.cpp
deleted file mode 100644
index 0324863bc..000000000
--- a/kdeprint/kdeprintfax/filterdlg.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include "filterdlg.h"
-#include "filterdlg.moc"
-
-#include <tqlineedit.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-
-#include <klocale.h>
-
-FilterDlg::FilterDlg(TQWidget *parent, const char *name)
-: KDialogBase(parent, name, true, i18n("Filter Parameters"), Ok|Cancel, Ok)
-{
-	TQWidget	*w = new TQWidget(this);
-
-	m_mime = new TQLineEdit(w);
-	m_cmd = new TQLineEdit(w);
-	TQLabel	*m_mimelabel = new TQLabel(i18n("MIME type:"), w);
-	TQLabel	*m_cmdlabel = new TQLabel(i18n("Command:"), w);
-
-	TQGridLayout	*l0 = new TQGridLayout(w, 2, 2, 10, 5);
-	l0->setColStretch(1, 1);
-	l0->addWidget(m_mimelabel, 0, 0);
-	l0->addWidget(m_cmdlabel, 1, 0);
-	l0->addWidget(m_mime, 0, 1);
-	l0->addWidget(m_cmd, 1, 1);
-
-	setMainWidget(w);
-	m_mime->setFocus();
-	resize(300, 100);
-	connect(m_mime, TQT_SIGNAL(textChanged ( const TQString & )),this, TQT_SLOT(slotTextFilterChanged()));
-        connect(m_cmd, TQT_SIGNAL(textChanged ( const TQString & )),this, TQT_SLOT(slotTextFilterChanged()));
-        slotTextFilterChanged();
-}
-
-void FilterDlg::slotTextFilterChanged( )
-{
-    enableButtonOK(!m_mime->text().isEmpty() && !m_cmd->text().isEmpty());
-}
-
-bool FilterDlg::doIt(TQWidget *parent, TQString *mime, TQString *cmd)
-{
-	FilterDlg	dlg(parent);
-	if (mime) dlg.m_mime->setText(*mime);
-	if (cmd) dlg.m_cmd->setText(*cmd);
-	if (dlg.exec())
-	{
-		if (mime) *mime = dlg.m_mime->text();
-		if (cmd) *cmd = dlg.m_cmd->text();
-		return true;
-	}
-	return false;
-}
diff --git a/kdeprint/kdeprintfax/filterdlg.h b/kdeprint/kdeprintfax/filterdlg.h
deleted file mode 100644
index ab4fd0406..000000000
--- a/kdeprint/kdeprintfax/filterdlg.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef FILTERDLG_H
-#define FILTERDLG_H
-
-#include <kdialogbase.h>
-
-class TQLineEdit;
-
-class FilterDlg : public KDialogBase
-{
-  	Q_OBJECT
-public:
-	FilterDlg(TQWidget *parent = 0, const char *name = 0);
-
-	static bool doIt(TQWidget *parent = 0, TQString* mime = 0, TQString *cmd = 0);
-protected slots:
-    void slotTextFilterChanged();
-private:
-	TQLineEdit	*m_mime, *m_cmd;
-};
-
-#endif
diff --git a/kdeprint/kdeprintfax/hi128-app-kdeprintfax.png b/kdeprint/kdeprintfax/hi128-app-kdeprintfax.png
deleted file mode 100644
index ad29adba7..000000000
Binary files a/kdeprint/kdeprintfax/hi128-app-kdeprintfax.png and /dev/null differ
diff --git a/kdeprint/kdeprintfax/hi16-app-kdeprintfax.png b/kdeprint/kdeprintfax/hi16-app-kdeprintfax.png
deleted file mode 100644
index bb676f8b7..000000000
Binary files a/kdeprint/kdeprintfax/hi16-app-kdeprintfax.png and /dev/null differ
diff --git a/kdeprint/kdeprintfax/hi22-app-kdeprintfax.png b/kdeprint/kdeprintfax/hi22-app-kdeprintfax.png
deleted file mode 100644
index 90fc64b0b..000000000
Binary files a/kdeprint/kdeprintfax/hi22-app-kdeprintfax.png and /dev/null differ
diff --git a/kdeprint/kdeprintfax/hi32-app-kdeprintfax.png b/kdeprint/kdeprintfax/hi32-app-kdeprintfax.png
deleted file mode 100644
index 7330eb41f..000000000
Binary files a/kdeprint/kdeprintfax/hi32-app-kdeprintfax.png and /dev/null differ
diff --git a/kdeprint/kdeprintfax/hi48-app-kdeprintfax.png b/kdeprint/kdeprintfax/hi48-app-kdeprintfax.png
deleted file mode 100644
index 3f58c3695..000000000
Binary files a/kdeprint/kdeprintfax/hi48-app-kdeprintfax.png and /dev/null differ
diff --git a/kdeprint/kdeprintfax/hi64-app-kdeprintfax.png b/kdeprint/kdeprintfax/hi64-app-kdeprintfax.png
deleted file mode 100644
index 47e156d5f..000000000
Binary files a/kdeprint/kdeprintfax/hi64-app-kdeprintfax.png and /dev/null differ
diff --git a/kdeprint/kdeprintfax/hisc-app-kdeprintfax.svgz b/kdeprint/kdeprintfax/hisc-app-kdeprintfax.svgz
deleted file mode 100644
index f46fd4401..000000000
Binary files a/kdeprint/kdeprintfax/hisc-app-kdeprintfax.svgz and /dev/null differ
diff --git a/kdeprint/kdeprintfax/kdeprintfax.cpp b/kdeprint/kdeprintfax/kdeprintfax.cpp
deleted file mode 100644
index 24ad58a0e..000000000
--- a/kdeprint/kdeprintfax/kdeprintfax.cpp
+++ /dev/null
@@ -1,607 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include "tdeprintfax.h"
-#include "faxab.h"
-#include "faxctrl.h"
-#include "configdlg.h"
-
-#include <tqcheckbox.h>
-#include <tqlineedit.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqpushbutton.h>
-#include <tqtextedit.h>
-#include <tqdatetimeedit.h>
-#include <tqcombobox.h>
-#include <tqtooltip.h>
-
-#include <kapplication.h>
-#include <kstdaction.h>
-#include <kmenubar.h>
-#include <ktoolbar.h>
-#include <kaction.h>
-#include <klistbox.h>
-#include <klistview.h>
-#include <tqheader.h>
-#include <klocale.h>
-#include <kiconloader.h>
-#include <kio/netaccess.h>
-#include <kmessagebox.h>
-#include <kfiledialog.h>
-#include <kmimetype.h>
-#include <kseparator.h>
-#include <ksystemtray.h>
-#include <kstatusbar.h>
-#include <ksqueezedtextlabel.h>
-#include <krun.h>
-#include <kopenwith.h>
-#include <kpushbutton.h>
-#include <kurldrag.h>
-#include <kdebug.h>
-
-KdeprintFax::KdeprintFax(TQWidget *parent, const char *name)
-: KMainWindow(parent, name)
-{
-	m_faxctrl = new FaxCtrl(this);
-	m_quitAfterSend = false;
-	connect(m_faxctrl, TQT_SIGNAL(message(const TQString&)), TQT_SLOT(slotMessage(const TQString&)));
-	connect(m_faxctrl, TQT_SIGNAL(faxSent(bool)), TQT_SLOT(slotFaxSent(bool)));
-
-	TQWidget	*mainw = new TQWidget(this);
-	setCentralWidget(mainw);
-	m_files = new KListBox(mainw);
-	connect( m_files, TQT_SIGNAL( currentChanged( TQListBoxItem* ) ), TQT_SLOT( slotCurrentChanged() ) );
-	m_upbtn = new KPushButton( mainw );
-	m_upbtn->setIconSet( SmallIconSet( "up" ) );
-	TQToolTip::add( m_upbtn, i18n( "Move up" ) );
-	connect( m_upbtn, TQT_SIGNAL( clicked() ), TQT_SLOT( slotMoveUp() ) );
-	m_upbtn->setEnabled( false );
-	m_downbtn = new KPushButton( mainw );
-	m_downbtn->setIconSet( SmallIconSet( "down" ) );
-	TQToolTip::add( m_downbtn, i18n( "Move down" ) );
-	connect( m_downbtn, TQT_SIGNAL( clicked() ), TQT_SLOT( slotMoveDown() ) );
-	m_downbtn->setEnabled( false );
-	TQLabel	*m_filelabel = new TQLabel(i18n("F&iles:"), mainw);
-        m_filelabel->setBuddy(m_files);
-        KSeparator*m_line = new KSeparator( KSeparator::HLine, mainw);
-		KSeparator *m_line2 = new KSeparator( KSeparator::HLine, mainw );
-	m_numbers = new KListView( mainw );
-	m_numbers->addColumn( i18n("Fax Number") );
-	m_numbers->addColumn( i18n("Name") );
-	m_numbers->addColumn( i18n("Enterprise") );
-	m_numbers->header()->setStretchEnabled( true );
-	m_numbers->setSelectionMode( TQListView::Extended );
-	connect( m_numbers, TQT_SIGNAL( selectionChanged() ), TQT_SLOT( slotFaxSelectionChanged() ) );
-	connect( m_numbers, TQT_SIGNAL( executed( TQListViewItem* ) ), TQT_SLOT( slotFaxExecuted( TQListViewItem* ) ) );
-	m_newbtn = new KPushButton( mainw );
-	m_newbtn->setPixmap( SmallIcon( "edit" ) );
-	TQToolTip::add( m_newbtn, i18n( "Add fax number" ) );
-	connect( m_newbtn, TQT_SIGNAL( clicked() ), TQT_SLOT( slotFaxAdd() ) );
-	m_abbtn = new KPushButton( mainw );
-	m_abbtn->setPixmap( SmallIcon( "kaddressbook" ) );
-	TQToolTip::add( m_abbtn, i18n( "Add fax number from addressbook" ) );
-	connect( m_abbtn, TQT_SIGNAL( clicked() ), TQT_SLOT( slotKab() ) );
-	m_delbtn = new KPushButton( mainw );
-	m_delbtn->setIconSet( SmallIconSet( "edittrash" ) );
-	TQToolTip::add( m_delbtn, i18n( "Remove fax number" ) );
-	m_delbtn->setEnabled( false );
-	connect( m_delbtn, TQT_SIGNAL( clicked() ), TQT_SLOT( slotFaxRemove() ) );
-	TQLabel	*m_commentlabel = new TQLabel(i18n("&Comment:"), mainw);
-	KSystemTray	*m_tray = new KSystemTray(this);
-	m_tray->setPixmap(SmallIcon("tdeprintfax"));
-	m_tray->show();
-	m_comment = new TQTextEdit(mainw);
-// I don't understand why anyone would want to turn off word wrap. It makes
-// the text hard to read and write. It provides no benefit. Therefore,
-// I commented out the next line. [Ray Lischner]
-//	m_comment->setWordWrap(TQTextEdit::NoWrap);
-	m_comment->setLineWidth(1);
-	m_commentlabel->setBuddy(m_comment);
-	TQLabel	*m_timelabel = new TQLabel(i18n("Sched&ule:"), mainw);
-	m_timecombo = new TQComboBox(mainw);
-	m_timecombo->insertItem(i18n("Now"));
-	m_timecombo->insertItem(i18n("At Specified Time"));
-	m_timecombo->setCurrentItem(0);
-	m_timelabel->setBuddy(m_timecombo);
-	m_time = new TQTimeEdit(mainw);
-	m_time->setTime(TQTime::currentTime());
-	m_time->setEnabled(false);
-	connect(m_timecombo, TQT_SIGNAL(activated(int)), TQT_SLOT(slotTimeComboActivated(int)));
-	m_cover = new TQCheckBox(i18n("Send Co&ver Sheet"), mainw);
-	connect(m_cover, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotCoverToggled(bool)));
-	m_subject = new TQLineEdit( mainw );
-	TQLabel *m_subjectlabel = new TQLabel( i18n( "Su&bject:" ), mainw );
-	m_subjectlabel->setBuddy( m_subject );
-
-	TQGridLayout	*l0 = new TQGridLayout(mainw, 10, 2, 10, 5);
-	l0->setColStretch(1,1);
-	l0->addWidget(m_filelabel, 0, 0, Qt::AlignLeft|Qt::AlignTop);
-	TQHBoxLayout *l2 = new TQHBoxLayout( 0, 0, 10 );
-	TQVBoxLayout *l3 = new TQVBoxLayout( 0, 0, 5 );
-	l0->addLayout( l2, 0, 1 );
-	l2->addWidget( m_files );
-	l2->addLayout( l3 );
-	//l3->addStretch( 1 );
-	l3->addWidget( m_upbtn );
-	l3->addWidget( m_downbtn );
-	l3->addStretch( 1 );
-	l0->addMultiCellWidget(m_line, 1, 1, 0, 1);
-	l0->addRowSpacing(1, 10);
-	TQHBoxLayout *l5 = new TQHBoxLayout( 0, 0, 10 );
-	TQVBoxLayout *l6 = new TQVBoxLayout( 0, 0, 5 );
-	l0->addMultiCellLayout( l5, 2, 4, 0, 1 );
-	l5->addWidget( m_numbers );
-	l5->addLayout( l6 );
-	l6->addWidget( m_newbtn );
-	l6->addWidget( m_delbtn );
-	l6->addWidget( m_abbtn );
-	l6->addStretch( 1 );
-	l0->addMultiCellWidget( m_line2, 5, 5, 0, 1 );
-	l0->addRowSpacing( 5, 10 );
-	l0->addWidget( m_cover, 6, 1 );
-	l0->addWidget( m_subjectlabel, 7, 0 );
-	l0->addWidget( m_subject, 7, 1 );
-	l0->addWidget(m_commentlabel, 8, 0, Qt::AlignTop|Qt::AlignLeft);
-	l0->addWidget(m_comment, 8, 1);
-	l0->addWidget(m_timelabel, 9, 0);
-	TQHBoxLayout	*l1 = new TQHBoxLayout(0, 0, 5);
-	l0->addLayout(l1, 9, 1);
-	l1->addWidget(m_timecombo, 1);
-	l1->addWidget(m_time, 0);
-
-	m_msglabel = new KSqueezedTextLabel(statusBar());
-	statusBar()->addWidget(m_msglabel, 1);
-	statusBar()->insertFixedItem(i18n("Processing..."), 1);
-	statusBar()->changeItem(i18n("Idle"), 1);
-	statusBar()->insertFixedItem("hylafax/efax", 2);
-	initActions();
-	setAcceptDrops(true);
-	setCaption(i18n("Send to Fax"));
-	updateState();
-
-	resize(550,500);
-	TQWidget	*d = TQT_TQWIDGET(kapp->desktop());
-	move((d->width()-width())/2, (d->height()-height())/2);
-}
-
-KdeprintFax::~KdeprintFax()
-{
-}
-
-void KdeprintFax::initActions()
-{
-	new KAction(i18n("&Add File..."), "filenew", Qt::Key_Insert, TQT_TQOBJECT(this), TQT_SLOT(slotAdd()), actionCollection(), "file_add");
-	new KAction(i18n("&Remove File"), "remove", Qt::Key_Delete, TQT_TQOBJECT(this), TQT_SLOT(slotRemove()), actionCollection(), "file_remove");
-	new KAction(i18n("&Send Fax"), "connect_established", Qt::Key_Return, TQT_TQOBJECT(this), TQT_SLOT(slotFax()), actionCollection(), "fax_send");
-	new KAction(i18n("A&bort"), "stop", Qt::Key_Escape, TQT_TQOBJECT(this), TQT_SLOT(slotAbort()), actionCollection(), "fax_stop");
-	new KAction(i18n("A&ddress Book"), "kaddressbook", Qt::CTRL+Qt::Key_A, TQT_TQOBJECT(this), TQT_SLOT(slotKab()), actionCollection(), "fax_ab");
-	new KAction(i18n("V&iew Log"), "contents", Qt::CTRL+Qt::Key_L, TQT_TQOBJECT(this), TQT_SLOT(slotViewLog()), actionCollection(), "fax_log");
-	new KAction(i18n("Vi&ew File"), "filefind", Qt::CTRL+Qt::Key_O, TQT_TQOBJECT(this), TQT_SLOT(slotView()), actionCollection(), "file_view");
-	new KAction( i18n( "&New Fax Recipient..." ), "edit", Qt::CTRL+Qt::Key_N, TQT_TQOBJECT(this), TQT_SLOT( slotFaxAdd() ), actionCollection(), "fax_add" );
-
-	KStdAction::quit(TQT_TQOBJECT(this), TQT_SLOT(slotQuit()), actionCollection());
-	setStandardToolBarMenuEnabled(true);
-	KStdAction::showMenubar(TQT_TQOBJECT(this), TQT_SLOT(slotToggleMenuBar()), actionCollection());
-	KStdAction::preferences(TQT_TQOBJECT(this), TQT_SLOT(slotConfigure()), actionCollection());
-        KStdAction::keyBindings(guiFactory(), TQT_SLOT(configureShortcuts()), 
-actionCollection());
-	actionCollection()->action("fax_stop")->setEnabled(false);
-	connect(actionCollection()->action("file_remove"), TQT_SIGNAL(enabled(bool)), actionCollection()->action("file_view"), TQT_SLOT(setEnabled(bool)));
-	actionCollection()->action("file_remove")->setEnabled(false);
-
-	createGUI();
-}
-
-void KdeprintFax::slotToggleMenuBar()
-{
-	if (menuBar()->isVisible()) menuBar()->hide();
-	else menuBar()->show();
-}
-
-void KdeprintFax::slotAdd()
-{
-	KURL	url = KFileDialog::getOpenURL(TQString::null, TQString::null, this);
-	if (!url.isEmpty())
-		addURL(url);
-}
-
-void KdeprintFax::slotRemove()
-{
-	if (m_files->currentItem() >= 0)
-		m_files->removeItem(m_files->currentItem());
-	if (m_files->count() == 0)
-		actionCollection()->action("file_remove")->setEnabled(false);
-}
-
-void KdeprintFax::slotView()
-{
-	if (m_files->currentItem() >= 0)
-	{
-		new KRun(KURL( m_files->currentText() ));
-	}
-}
-
-void KdeprintFax::slotFax()
-{
-	if (m_files->count() == 0)
-		KMessageBox::error(this, i18n("No file to fax."));
-	else if ( m_numbers->childCount() == 0 )
-		KMessageBox::error(this, i18n("No fax number specified."));
-	else if (m_faxctrl->send(this))
-	{
-		actionCollection()->action("fax_send")->setEnabled(false);
-		actionCollection()->action("fax_stop")->setEnabled(true);
-		statusBar()->changeItem(i18n("Processing..."), 1);
-	}
-	else
-		KMessageBox::error(this, i18n("Unable to start Fax process."));
-}
-
-void KdeprintFax::slotAbort()
-{
-	if (!m_faxctrl->abort())
-		KMessageBox::error(this, i18n("Unable to stop Fax process."));
-}
-
-void KdeprintFax::slotKab()
-{
-	TQStringList	number, name, enterprise;
-	if (FaxAB::getEntry(number, name, enterprise, this))
-	{
-		for ( unsigned int i = 0; i<number.count(); i++ )
-			new TQListViewItem( m_numbers, number[ i ], name[ i ], enterprise[ i ] );
-	}
-}
-
-void KdeprintFax::addURL(KURL url)
-{
-	TQString	target;
-	if (KIO::NetAccess::download(url,target,this))
-	{
-		m_files->insertItem(KMimeType::pixmapForURL(url,0,KIcon::Small),target);
-		actionCollection()->action("file_remove")->setEnabled(true);
-		slotCurrentChanged();
-	}
-	else
-		KMessageBox::error(this, i18n("Unable to retrieve %1.").arg(url.prettyURL()));
-}
-
-void KdeprintFax::setPhone(TQString phone)
-{
-	TQString name, enterprise;
-	FaxAB::getEntryByNumber(phone, name, enterprise);
-	new TQListViewItem( m_numbers, phone, name, enterprise );
-}
-
-void KdeprintFax::sendFax( bool quitAfterSend )
-{
-	slotFax();
-	m_quitAfterSend = quitAfterSend;
-}
-
-void KdeprintFax::dragEnterEvent(TQDragEnterEvent *e)
-{
-	e->accept(KURLDrag::canDecode(e));
-}
-
-void KdeprintFax::dropEvent(TQDropEvent *e)
-{
-	KURL::List l;
-	if (KURLDrag::decode(e, l))
-	{
-		for (KURL::List::ConstIterator it = l.begin(); it != l.end(); ++it)
-			addURL(*it);
-	}
-}
-
-TQStringList KdeprintFax::files()
-{
-	TQStringList	l;
-	for (uint i=0; i<m_files->count(); i++)
-		l.append(m_files->text(i));
-	return l;
-}
-
-
-int KdeprintFax::faxCount() const
-{
-	return m_numbers->childCount();
-}
-
-/*
-TQListViewItem* KdeprintFax::faxItem( int i ) const
-{
-	TQListViewItem *item = m_numbers->firstChild();
-	while ( i && item && item->nextSibling() )
-	{
-		item = item->nextSibling();
-		i--;
-	}
-	if ( i || !item )
-		kdError() << "KdeprintFax::faxItem(" << i << ") => fax item index out of bound" << endl;
-	return item;
-}
-
-TQString KdeprintFax::number( int i ) const
-{
-	TQListViewItem *item = faxItem( i );
-	return ( item ? item->text( 0 ) : TQString::null );
-}
-
-TQString KdeprintFax::name( int i ) const
-{
-	TQListViewItem *item = faxItem( i );
-	return ( item ? item->text( 1 ) : TQString::null );
-}
-
-TQString KdeprintFax::enterprise( int i ) const
-{
-	TQListViewItem *item = faxItem( i );
-	return ( item ? item->text( 2 ) : TQString::null );
-}
-*/
-
-KdeprintFax::FaxItemList KdeprintFax::faxList() const
-{
-	FaxItemList list;
-	TQListViewItemIterator it( m_numbers );
-	while ( it.current() )
-	{
-		FaxItem item;
-		item.number = it.current()->text( 0 );
-		item.name = it.current()->text( 1 );
-		item.enterprise = it.current()->text( 2 );
-		list << item;
-		++it;
-	}
-	return list;
-}
-
-TQString KdeprintFax::comment() const
-{
-	return m_comment->text();
-}
-
-bool KdeprintFax::cover() const
-{
-	return m_cover->isChecked();
-}
-
-TQString KdeprintFax::subject() const
-{
-	return m_subject->text();
-}
-
-void KdeprintFax::slotMessage(const TQString& msg)
-{
-	m_msglabel->setText(msg);
-}
-
-void KdeprintFax::slotFaxSent(bool status)
-{
-	actionCollection()->action("fax_send")->setEnabled(true);
-	actionCollection()->action("fax_stop")->setEnabled(false);
-	statusBar()->changeItem(i18n("Idle"), 1);
-
- 	if( m_quitAfterSend ) {
-		slotQuit();
-	}
-	else {
-		if (!status)
-			KMessageBox::error(this, i18n("Fax error: see log message for more information."));
-		slotMessage(TQString::null);
-	}
-}
-
-void KdeprintFax::slotViewLog()
-{
-	m_faxctrl->viewLog(this);
-}
-
-void KdeprintFax::slotConfigure()
-{
-	if (ConfigDlg::configure(this))
-		updateState();
-}
-
-void KdeprintFax::updateState()
-{
-	TQString	cmd = m_faxctrl->faxCommand();
-	m_cover->setEnabled(cmd.find("%cover") != -1);
-	if ( !m_cover->isEnabled() )
-		m_cover->setChecked(false);
-	m_comment->setEnabled(cmd.find("%comment") != -1 && m_cover->isChecked());
-	//m_comment->setPaper(m_comment->isEnabled() ? tqcolorGroup().brush(TQColorGroup::Base) : tqcolorGroup().brush(TQColorGroup::Background));
-	if (!m_comment->isEnabled())
-	{
-		m_comment->setText("");
-		m_comment->setPaper( tqcolorGroup().background() );
-	}
-	else
-		m_comment->setPaper( tqcolorGroup().base() );
-	/*
-	m_enterprise->setEnabled(cmd.find("%enterprise") != -1);
-	if (!m_enterprise->isEnabled())
-		m_enterprise->setText("");
-	*/
-	if (cmd.find("%time") == -1)
-	{
-		m_timecombo->setCurrentItem(0);
-		m_timecombo->setEnabled(false);
-		slotTimeComboActivated(0);
-	}
-	else
-		m_timecombo->setEnabled( true );
-	/*m_name->setEnabled( cmd.find( "%name" ) != -1 );*/
-	m_subject->setEnabled( cmd.find( "%subject" ) != -1 && m_cover->isChecked() );
-	statusBar()->changeItem(m_faxctrl->faxSystem(), 2);
-}
-
-void KdeprintFax::slotQuit()
-{
-	close(true);
-}
-
-void KdeprintFax::slotTimeComboActivated(int ID)
-{
-	m_time->setEnabled(ID == 1);
-}
-
-TQString KdeprintFax::time() const
-{
-	if (!m_time->isEnabled())
-		return TQString::null;
-	return m_time->time().toString("hh:mm");
-}
-
-void KdeprintFax::slotMoveUp()
-{
-	int index = m_files->currentItem();
-	if ( index > 0 )
-	{
-		TQListBoxItem *item = m_files->item( index );
-		m_files->takeItem( item );
-		m_files->insertItem( item, index-1 );
-		m_files->setCurrentItem( index-1 );
-	}
-}
-
-void KdeprintFax::slotMoveDown()
-{
-	int index = m_files->currentItem();
-	if ( index >= 0 && index < ( int )m_files->count()-1 )
-	{
-		TQListBoxItem *item = m_files->item( index );
-		m_files->takeItem( item );
-		m_files->insertItem( item, index+1 );
-		m_files->setCurrentItem( index+1 );
-	}
-}
-
-/** The user or program toggled the "Cover Sheet" check box.
- * Update the state of the other controls to reflect the
- * new status.
- */
-void KdeprintFax::slotCoverToggled(bool)
-{
-	updateState();
-}
-
-void KdeprintFax::slotCurrentChanged()
-{
-	int index = m_files->currentItem();
-	m_upbtn->setEnabled( index > 0 );
-	m_downbtn->setEnabled( index >=0 && index < ( int )m_files->count()-1 );
-}
-
-void KdeprintFax::slotFaxSelectionChanged()
-{
-	TQListViewItemIterator it( m_numbers, TQListViewItemIterator::Selected );
-	m_delbtn->setEnabled( it.current() != NULL );
-}
-
-void KdeprintFax::slotFaxRemove()
-{
-	TQListViewItemIterator it( m_numbers, TQListViewItemIterator::Selected );
-	TQPtrList<TQListViewItem> items;
-	items.setAutoDelete( true );
-	while ( it.current() )
-	{
-		items.append( it.current() );
-		++it;
-	}
-	items.clear();
-	/* force this slot to be called, to update buttons state */
-	slotFaxSelectionChanged();
-}
-
-void KdeprintFax::slotFaxAdd()
-{
-	TQString number, name, enterprise;
-	if ( manualFaxDialog( number, name, enterprise ) )
-	{
-		new TQListViewItem( m_numbers, number, name, enterprise );
-	}
-}
-
-void KdeprintFax::slotFaxExecuted( TQListViewItem *item )
-{
-	if ( item )
-	{
-		TQString number = item->text( 0 ), name = item->text( 1 ), enterprise = item->text( 2 );
-		if ( manualFaxDialog( number, name, enterprise ) )
-		{
-			item->setText( 0, number );
-			item->setText( 1, name );
-			item->setText( 2, enterprise );
-		}
-	}
-}
-
-bool KdeprintFax::manualFaxDialog( TQString& number, TQString& name, TQString& enterprise )
-{
-	/* dialog construction */
-	KDialogBase dlg( this, "manualFaxDialog", true, i18n( "Fax Number" ), KDialogBase::Ok|KDialogBase::Cancel, KDialogBase::Ok, true );
-	TQWidget *mainw = new TQWidget( &dlg );
-	TQLabel *lab0 = new TQLabel( i18n( "Enter recipient fax properties." ), mainw );
-	TQLabel *lab1 = new TQLabel( i18n( "&Number:" ), mainw );
-	TQLabel *lab2 = new TQLabel( i18n( "N&ame:" ), mainw );
-	TQLabel *lab3 = new TQLabel( i18n( "&Enterprise:" ), mainw );
-	TQLineEdit *edit_number = new TQLineEdit( number, mainw );
-	TQLineEdit *edit_name = new TQLineEdit( name, mainw );
-	TQLineEdit *edit_enterprise = new TQLineEdit( enterprise, mainw );
-	lab1->setBuddy( edit_number );
-	lab2->setBuddy( edit_name );
-	lab3->setBuddy( edit_enterprise );
-	TQGridLayout *l0 = new TQGridLayout( mainw, 5, 2, 0, 5 );
-	l0->setColStretch( 1, 1 );
-	l0->addMultiCellWidget( lab0, 0, 0, 0, 1 );
-	l0->setRowSpacing( 1, 10 );
-	l0->addWidget( lab1, 2, 0 );
-	l0->addWidget( lab2, 3, 0 );
-	l0->addWidget( lab3, 4, 0 );
-	l0->addWidget( edit_number, 2, 1 );
-	l0->addWidget( edit_name, 3, 1 );
-	l0->addWidget( edit_enterprise, 4, 1 );
-	dlg.setMainWidget( mainw );
-	dlg.resize( 300, 10 );
-
-	/* dialog execution */
-	while ( 1 )
-		if ( dlg.exec() )
-		{
-			if ( edit_number->text().isEmpty() )
-			{
-				KMessageBox::error( this, i18n( "Invalid fax number." ) );
-			}
-			else
-			{
-				number = edit_number->text();
-				name = edit_name->text();
-				enterprise = edit_enterprise->text();
-				return true;
-			}
-		}
-		else
-			return false;
-}
-
-#include "tdeprintfax.moc"
diff --git a/kdeprint/kdeprintfax/kdeprintfax.desktop b/kdeprint/kdeprintfax/kdeprintfax.desktop
deleted file mode 100644
index dc9c90bab..000000000
--- a/kdeprint/kdeprintfax/kdeprintfax.desktop
+++ /dev/null
@@ -1,97 +0,0 @@
-[Desktop Entry]
-Name=KdeprintFax
-Name[cy]=KdeargraffuFfacs
-Name[eo]=Presfakso
-Name[hi]=केडीई-प्रिंट-फ़ैक्स
-Name[lo]=ອິນເຕີເນັດ
-Name[ne]=Kdeprint फ्याक्स
-Name[nso]=Fax ya kgatiso ya kde
-Name[pa]=Kde ਫੈਕਸ ਛਾਪਣ
-Name[rw]=Kde-gucapaFagisi
-Name[sv]=KDE:s skriv ut fax
-Name[ta]=Kdeஅச்சுபாக்ஸ்
-Name[th]=KDEprintFax
-Name[vi]=In và Fax của KDE
-GenericName=Fax Utility
-GenericName[af]=Faks Program
-GenericName[ar]=أداة الفاكس
-GenericName[be]=Праграма працы з факсам
-GenericName[bg]=Програма за факс
-GenericName[bn]=ফ্যাক্স টুল
-GenericName[br]=Maveg ar faks
-GenericName[bs]=Alat za faxove
-GenericName[ca]=Utilitat de fax
-GenericName[cs]=Faxový nástroj
-GenericName[csb]=Faks
-GenericName[cy]=Cyfleuster Ffacs
-GenericName[da]=FAX-værktøj
-GenericName[de]=Fax-Programm
-GenericName[el]=Εργαλείο φαξ
-GenericName[eo]=Faxutilaĵo
-GenericName[es]=Aplicación de fax
-GenericName[et]=Faksimise utiliit
-GenericName[eu]=Fax tresna
-GenericName[fa]=برنامۀ سودمند دورنگار
-GenericName[fi]=Faksityökalu
-GenericName[fr]=Outil de fax
-GenericName[fy]=Faksprogramma
-GenericName[ga]=Uirlis Facs
-GenericName[gl]=Utilidade de Fax
-GenericName[he]=כלי פקסים
-GenericName[hi]=फ़ैक्स यूटिलिटी
-GenericName[hr]=Alat za fakseve
-GenericName[hu]=Faxprogram
-GenericName[is]=Faxtól
-GenericName[it]=Fax
-GenericName[ja]=ファクスユーティリティ
-GenericName[ka]=ფაქსთან სამუშაო უტილიტა
-GenericName[kk]=Факс утилитасы
-GenericName[km]=ឧបករណ៍​ទូរសារ
-GenericName[lo]=ເຄື່ອງມືໂທລະສານ
-GenericName[lt]=Pagalbinė fakso programėlė
-GenericName[lv]=Faksa utilīta
-GenericName[mk]=Алатка за факс
-GenericName[mn]=Fax-програм
-GenericName[ms]=Kemudahan Faks
-GenericName[mt]=Għodda tal-faks
-GenericName[nb]=Faksverktøy
-GenericName[nds]=Faxwarktüüch
-GenericName[ne]=फ्याक्स युटिलिटी
-GenericName[nl]=Faxprogramma
-GenericName[nn]=Faksverktøy
-GenericName[nso]=Sebereka sa Fax
-GenericName[pa]=ਫੈਕਸ ਸਹੂਲਤ
-GenericName[pl]=Faks
-GenericName[pt]=Utilitário de Fax
-GenericName[pt_BR]=Utilitário de Fax
-GenericName[ro]=Utilitar pentru FAX
-GenericName[ru]=Утилита работы с факсами
-GenericName[rw]=Nkemurabibazo Fagisi
-GenericName[se]=Fáksenreaidu
-GenericName[sk]=Faxový nástroj
-GenericName[sl]=Pripomoček za faks
-GenericName[sr]=Факс програм
-GenericName[sr@Latn]=Faks program
-GenericName[sv]=Faxverktyg
-GenericName[ta]=தொலைநகலி கருவி
-GenericName[tg]=Обзори дурнамо
-GenericName[th]=เครื่องมือโทรสาร
-GenericName[tr]=Faks Görüntüleyici
-GenericName[tt]=Faks Qoralı
-GenericName[uk]=Утиліта факсу
-GenericName[uz]=Faks vositasi
-GenericName[uz@cyrillic]=Факс воситаси
-GenericName[ven]=Tshishumiswa tsha Fax
-GenericName[vi]=Các tiện ích Fax
-GenericName[wa]=Usteye di facs
-GenericName[xh]=Uncedo lwe Fax
-GenericName[zh_CN]=传真工具
-GenericName[zh_TW]=傳真工具
-GenericName[zu]=Isisebenzi se-Fax
-
-Type=Application
-Exec=tdeprintfax -caption "%c" %i %m %u
-Icon=tdeprintfax
-Terminal=false
-X-DCOP-ServiceType=Multi
-Categories=Qt;KDE;Utility;X-KDE-Utilities-Peripherals;
diff --git a/kdeprint/kdeprintfax/kdeprintfax.h b/kdeprint/kdeprintfax/kdeprintfax.h
deleted file mode 100644
index fc1a02f7f..000000000
--- a/kdeprint/kdeprintfax/kdeprintfax.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- *   tdeprintfax - a small fax utility
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef KDEPRINTFAX_H
-#define KDEPRINTFAX_H
-
-#include <kmainwindow.h>
-#include <kurl.h>
-
-class KListBox;
-class KListView;
-class TQLineEdit;
-class TQTextEdit;
-class FaxCtrl;
-class TQCheckBox;
-class TQLabel;
-class TQTimeEdit;
-class TQComboBox;
-class TQPushButton;
-class TQListViewItem;
-
-class KdeprintFax : public KMainWindow
-{
-	Q_OBJECT
-public:
-	struct FaxItem
-	{
-		TQString number;
-		TQString name;
-		TQString enterprise;
-	};
-	typedef TQValueList<FaxItem> FaxItemList;
-	typedef TQValueList<FaxItem>::ConstIterator FaxItemListIterator;
-
-	KdeprintFax(TQWidget *parent = 0, const char *name = 0);
-	~KdeprintFax();
-
-	void addURL(KURL url);
-	void setPhone(TQString phone);
-	void sendFax( bool quitAfterSend );
-	TQStringList files();
-	int faxCount() const;
-	//TQString number( int i = 0 ) const;
-	//TQString name( int i = 0 ) const;
-	//TQString enterprise( int i = 0 ) const;
-	FaxItemList faxList() const;
-	TQString comment() const;
-	TQString time() const;
-	TQString subject() const;
-	bool cover() const;
-
-protected slots:
-	void slotToggleMenuBar();
-	void slotKab();
-	void slotAdd();
-	void slotRemove();
-	void slotFax();
-	void slotAbort();
-	void slotMessage(const TQString&);
-	void slotFaxSent(bool);
-	void slotViewLog();
-	void slotConfigure();
-	void slotQuit();
-	void slotView();
-	void slotTimeComboActivated(int);
-	void slotMoveUp();
-	void slotMoveDown();
-	void slotCurrentChanged();
-	void slotFaxSelectionChanged();
-	void slotFaxRemove();
-	void slotFaxAdd();
-	void slotFaxExecuted( TQListViewItem* );
-	void slotCoverToggled(bool toggle);
-
-protected:
-	void initActions();
-	void dragEnterEvent(TQDragEnterEvent*);
-	void dropEvent(TQDropEvent*);
-	void updateState();
-	bool manualFaxDialog( TQString& number, TQString& name, TQString& enterprise );
-	//TQListViewItem* faxItem( int i = 0 ) const;
-
-private:
-	KListBox	*m_files;
-	KListView   *m_numbers;
-	TQLineEdit	*m_subject;
-	TQTextEdit	*m_comment;
-	FaxCtrl		*m_faxctrl;
-	TQCheckBox	*m_cover;
-	TQLabel		*m_msglabel;
-	TQTimeEdit	*m_time;
-	TQComboBox	*m_timecombo;
-	TQPushButton *m_upbtn, *m_downbtn;
-	TQPushButton *m_newbtn, *m_abbtn, *m_delbtn;
-	bool m_quitAfterSend;
-};
-
-#endif
diff --git a/kdeprint/kdeprintfax/kdeprintfaxui.rc b/kdeprint/kdeprintfax/kdeprintfaxui.rc
deleted file mode 100644
index ae233a6da..000000000
--- a/kdeprint/kdeprintfax/kdeprintfaxui.rc
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE kpartgui>
-<kpartgui name="tdeprintfax">
-<MenuBar>
-  <Menu name="file"><text>&amp;File</text>
-    <Action name="file_add" />
-    <Action name="file_remove" />
-    <Separator />
-    <Action name="file_view" />
-  </Menu>
-  <Menu name="fax"><text>Fa&amp;x</text>
-    <Action name="fax_send" />
-    <Action name="fax_stop" />
-    <Separator />
-    <Action name="fax_add" />
-    <Action name="fax_ab" />
-    <Separator />
-    <Action name="fax_log" />
-  </Menu>
-</MenuBar>
-<ToolBar name="mainToolBar">
-  <Action name="file_add" />
-  <Action name="file_remove" />
-  <Action name="file_view" />
-  <Separator />
-  <Action name="fax_send" />
-  <Action name="fax_stop" />
-  <Action name="fax_ab" />
-  <Separator />
-  <Action name="fax_log" />
-</ToolBar>
-</kpartgui>
diff --git a/kdeprint/kdeprintfax/main.cpp b/kdeprint/kdeprintfax/main.cpp
deleted file mode 100644
index 4fe22a3b6..000000000
--- a/kdeprint/kdeprintfax/main.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *   tdeprintfax - a interface to fax-packages
- *   Copyright (C) 2001  Michael Goffioul
- *
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include "tdeprintfax.h"
-
-#include <tqfile.h>
-#include <kcmdlineargs.h>
-#include <kaboutdata.h>
-#include <klocale.h>
-#include <kapplication.h>
-
-TQString debugFlag;
-int oneShotFlag = false;
-
-static const char description[] =
-	I18N_NOOP("A small fax utility to be used with tdeprint.");
-// INSERT A DESCRIPTION FOR YOUR APPLICATION HERE
-
-
-static KCmdLineOptions options[] =
-{
-  { "phone ", I18N_NOOP("Phone number to fax to"), 0 },
-  { "immediate", I18N_NOOP("Send fax immediately"), 0 },
-  { "batch", I18N_NOOP("Exit after sending"), 0 },
-  { "+[file]", I18N_NOOP("File to fax (added to the file list)"), 0 },
-   KCmdLineLastOption
-  // INSERT YOUR COMMANDLINE OPTIONS HERE
-};
-
-int main(int argc, char *argv[])
-{
-
-  KAboutData aboutData( "tdeprintfax", I18N_NOOP("KdeprintFax"),
-    "1.0", description, KAboutData::License_GPL,
-    "(c), 2001 Michael Goffioul", 0, "http://printing.kde.org");
-  aboutData.addAuthor("Michael Goffioul",0, "tdeprint@swing.be");
-  KCmdLineArgs::init( argc, argv, &aboutData );
-  KCmdLineArgs::addCmdLineOptions( options ); // Add our own options.
-  KApplication::addCmdLineOptions();
-
-  KApplication a;
-  KCmdLineArgs	*args = KCmdLineArgs::parsedArgs();
-
-  KdeprintFax	*w = new KdeprintFax;
-  a.setMainWidget(w);
-  w->show();
-  for (int i=0;i<args->count();i++)
-  	w->addURL(args->url(i));
-
-	TQString phone = args->getOption( "phone" );
-	if( !phone.isEmpty() ) {
-		w->setPhone( phone );
-	}
-
-	if( args->isSet( "immediate" ) ) {
-		w->sendFax( args->isSet( "batch" ) );
-	}
-
-  args->clear();
-  return a.exec();
-}
diff --git a/kdeprint/kjobviewer/CMakeLists.txt b/kdeprint/kjobviewer/CMakeLists.txt
deleted file mode 100644
index 332fa7fc4..000000000
--- a/kdeprint/kjobviewer/CMakeLists.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-add_definitions( -D_KDEPRINT_COMPILE )
-
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}
-  ${TDE_INCLUDE_DIR}
-  ${TQT_INCLUDE_DIRS}
-)
-
-link_directories(
-  ${TQT_LIBRARY_DIRS}
-)
-
-
-##### other data ################################
-
-tde_install_icons( kjobviewer )
-install( FILES kjobviewer.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
-install( FILES kjobviewerui.rc DESTINATION ${DATA_INSTALL_DIR}/kjobviewer )
-
-
-##### kjobviewer (tdeinit) ######################
-
-tde_add_tdeinit_executable( kjobviewer AUTOMOC
-  SOURCES kjobviewer.cpp main.cpp
-  LINK tdeprint_management-shared
-)
diff --git a/kdeprint/kjobviewer/Makefile.am b/kdeprint/kjobviewer/Makefile.am
deleted file mode 100644
index 5362ad033..000000000
--- a/kdeprint/kjobviewer/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-AM_CPPFLAGS = -D_KDEPRINT_COMPILE
-
-INCLUDES = $(all_includes)
-
-bin_PROGRAMS=
-lib_LTLIBRARIES=
-tdeinit_LTLIBRARIES = kjobviewer.la
-
-kjobviewer_la_SOURCES = kjobviewer.cpp main.cpp
-kjobviewer_la_METASOURCES = AUTO
-kjobviewer_la_LIBADD = -ltdeprint_management $(LIB_KDEUI)
-kjobviewer_la_LDFLAGS = -module -avoid-version $(all_libraries) $(KDE_RPATH)
-
-noinst_HEADERS = kjobviewer.h
-
-KDE_ICON = kjobviewer
-
-rc_DATA = kjobviewerui.rc
-rcdir = $(kde_datadir)/kjobviewer
-
-xdg_apps_DATA = kjobviewer.desktop
-
-messages: rc.cpp
-	$(XGETTEXT) *.cpp -o $(podir)/kjobviewer.pot
diff --git a/kdeprint/kjobviewer/hi128-app-kjobviewer.png b/kdeprint/kjobviewer/hi128-app-kjobviewer.png
deleted file mode 100644
index 7db5f56b1..000000000
Binary files a/kdeprint/kjobviewer/hi128-app-kjobviewer.png and /dev/null differ
diff --git a/kdeprint/kjobviewer/hi16-app-kjobviewer.png b/kdeprint/kjobviewer/hi16-app-kjobviewer.png
deleted file mode 100644
index d6defce21..000000000
Binary files a/kdeprint/kjobviewer/hi16-app-kjobviewer.png and /dev/null differ
diff --git a/kdeprint/kjobviewer/hi22-app-kjobviewer.png b/kdeprint/kjobviewer/hi22-app-kjobviewer.png
deleted file mode 100644
index a71ee2817..000000000
Binary files a/kdeprint/kjobviewer/hi22-app-kjobviewer.png and /dev/null differ
diff --git a/kdeprint/kjobviewer/hi32-app-kjobviewer.png b/kdeprint/kjobviewer/hi32-app-kjobviewer.png
deleted file mode 100644
index d554b554f..000000000
Binary files a/kdeprint/kjobviewer/hi32-app-kjobviewer.png and /dev/null differ
diff --git a/kdeprint/kjobviewer/hi48-app-kjobviewer.png b/kdeprint/kjobviewer/hi48-app-kjobviewer.png
deleted file mode 100644
index 13adbd006..000000000
Binary files a/kdeprint/kjobviewer/hi48-app-kjobviewer.png and /dev/null differ
diff --git a/kdeprint/kjobviewer/hi64-app-kjobviewer.png b/kdeprint/kjobviewer/hi64-app-kjobviewer.png
deleted file mode 100644
index 5d22d215e..000000000
Binary files a/kdeprint/kjobviewer/hi64-app-kjobviewer.png and /dev/null differ
diff --git a/kdeprint/kjobviewer/hisc-app-kjobviewer.svgz b/kdeprint/kjobviewer/hisc-app-kjobviewer.svgz
deleted file mode 100644
index f40b4bdfa..000000000
Binary files a/kdeprint/kjobviewer/hisc-app-kjobviewer.svgz and /dev/null differ
diff --git a/kdeprint/kjobviewer/kjobviewer.cpp b/kdeprint/kjobviewer/kjobviewer.cpp
deleted file mode 100644
index 0fb23e7ba..000000000
--- a/kdeprint/kjobviewer/kjobviewer.cpp
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#include "kjobviewer.h"
-#include <tdeprint/kmjobviewer.h>
-#include <tdeprint/kmtimer.h>
-#include <tdeprint/kmmanager.h>
-
-#include <stdlib.h>
-#include <tqpixmap.h>
-#include <kcmdlineargs.h>
-#include <kaboutdata.h>
-#include <kmessagebox.h>
-#include <klocale.h>
-#include <ksystemtray.h>
-#include <kdebug.h>
-#include <kiconloader.h>
-#include <kpopupmenu.h>
-#include <kwin.h>
-#include <kstartupinfo.h>
-
-class JobTray : public KSystemTray
-{
-public:
-	JobTray(KJobViewerApp *parent, const char *name = 0)
-		: KSystemTray(0, name), m_app(parent) { connect( this, TQT_SIGNAL( quitSelected() ), kapp, TQT_SLOT( quit() ) ); }
-protected:
-	void mousePressEvent(TQMouseEvent*);
-private:
-	KJobViewerApp	*m_app;
-};
-
-void JobTray::mousePressEvent(TQMouseEvent *e)
-{
-	if (e->button() == Qt::RightButton)
-		KSystemTray::mousePressEvent(e);
-	else if (m_app->m_views.count() > 0)
-	{
-		KPopupMenu	menu;
-		TQDictIterator<KMJobViewer>	it(m_app->m_views);
-		TQPtrList<KMJobViewer>	list;
-		list.setAutoDelete(false);
-		for (; it.current(); ++it)
-		{
-			menu.insertItem(KWin::icon(it.current()->winId(), 16, 16), it.currentKey(), list.count());
-			if (it.current()->isVisible())
-				menu.setItemChecked(list.count(), true);
-			list.append(it.current());
-		}
-
-		if (list.count() == 1)
-		{
-			// special case, old behavior
-			if (list.first()->isVisible())
-				list.first()->hide();
-			else
-				list.first()->show();
-		}
-		else
-		{
-			int	choice = menu.exec(mapToGlobal(e->pos()));
-			if (choice != -1)
-			{
-				KMJobViewer	*view = list.tqat(choice);
-				if (view->isVisible())
-					KWin::activateWindow(view->winId());
-				else
-					view->show();
-			}
-		}
-	}
-}
-
-//-------------------------------------------------------------
-
-KJobViewerApp::KJobViewerApp() : KUniqueApplication()
-{
-	m_views.setAutoDelete(true);
-	m_tray = 0;
-	m_timer = 0;
-}
-
-KJobViewerApp::~KJobViewerApp()
-{
-}
-
-int KJobViewerApp::newInstance()
-{
-	initialize();
-	return 0;
-}
-
-void KJobViewerApp::initialize()
-{
-	KCmdLineArgs	*args = KCmdLineArgs::parsedArgs();
-	bool 	showIt = args->isSet("show");
-	bool	all = args->isSet("all");
-	QString	prname = args->getOption("d");
-	KMJobViewer	*view(0);
-
-	if (!m_timer)
-	{
-		m_timer = KMTimer::self();
-		connect(m_timer,TQT_SIGNAL(timeout()),TQT_SLOT(slotTimer()));
-	}
-
-	if (prname.isEmpty() && all)
-		prname = i18n("All Printers");
-
-        if (prname.isEmpty()) {
-            KMPrinter *prt =  KMManager::self()->defaultPrinter();
-            if (prt)
-                prname = prt->printerName();
-            else {
-                KMessageBox::error(0, i18n("There is no default printer. Start with --all to see all printers."), i18n("Print Error"));
-                exit(1);
-                return;
-            }
-        }
-
-        if (!m_tray)
-        {
-            m_tray = new JobTray(this);
-            m_tray->setPixmap(m_tray->loadIcon("fileprint"));
-
-        }
-
-        view = m_views.find(prname);
-        if (!view)
-        {
-            kdDebug() << "creating new view: " << TQString(prname) << endl;
-            view = new KMJobViewer();
-            connect(view, TQT_SIGNAL(jobsShown(KMJobViewer*,bool)), TQT_SLOT(slotJobsShown(KMJobViewer*,bool)));
-            connect(view, TQT_SIGNAL(printerChanged(KMJobViewer*,const TQString&)), TQT_SLOT(slotPrinterChanged(KMJobViewer*,const TQString&)));
-            connect(view, TQT_SIGNAL(refreshClicked()), TQT_SLOT(slotTimer()));
-            connect(view, TQT_SIGNAL(viewerDestroyed(KMJobViewer*)), TQT_SLOT(slotViewerDestroyed(KMJobViewer*)));
-            m_views.insert(prname, view);
-        }
-
-        if (showIt)
-        {
-            view->show();
-            m_tray->show();
-        }
-        view->setPrinter(prname);
-
-	//m_timer->release(true);
-	m_timer->delay(10);
-}
-
-void KJobViewerApp::slotJobsShown(KMJobViewer *view, bool hasJobs)
-{
-	if (!hasJobs && !view->isVisible() && !view->isSticky())
-	{
-		kdDebug() << "removing view: " << view->printer() << endl;
-		// the window is hidden and doesn't have any job shown -> destroy it
-		// closing won't have any effect as the KMJobViewer overload closeEvent()
-		m_views.remove(view->printer());
-	}
-
-	if (m_views.count() > 0)
-	{
-		if (!m_tray->isVisible())
-			m_tray->show();
-	}
-	else {
-		KStartupInfo::appStarted();
-		kapp->quit();
-	}
-}
-
-void KJobViewerApp::slotTimer()
-{
-	// Update printer list
-	KMManager::self()->printerList(true);
-
-	// Refresh views. The first time, job list is reloaded,
-	// other views will simply use reloaded job list
-	bool	trigger(true);
-	TQDictIterator<KMJobViewer>	it(m_views);
-	for (; it.current(); ++it, trigger=false)
-		it.current()->refresh(trigger);
-}
-
-void KJobViewerApp::slotPrinterChanged(KMJobViewer *view, const TQString& prname)
-{
-	KMJobViewer	*other = m_views.find(prname);
-	if (other)
-	{
-		if (other->isVisible())
-			KWin::activateWindow(other->winId());
-		else
-			other->show();
-	}
-	else
-	{
-		m_views.take(view->printer());
-		m_views.insert(prname, view);
-		view->setPrinter(prname);
-	}
-}
-
-void KJobViewerApp::reload()
-{
-	// trigger delayed refresh in all views
-	m_timer->delay(10);
-}
-
-void KJobViewerApp::slotViewerDestroyed(KMJobViewer *view)
-{
-	if (view)
-		m_views.take(view->printer());
-	if (m_views.count() == 0)
-		kapp->quit();
-}
-
-#include "kjobviewer.moc"
diff --git a/kdeprint/kjobviewer/kjobviewer.desktop b/kdeprint/kjobviewer/kjobviewer.desktop
deleted file mode 100644
index 965ed49bf..000000000
--- a/kdeprint/kjobviewer/kjobviewer.desktop
+++ /dev/null
@@ -1,92 +0,0 @@
-[Desktop Entry]
-Exec=kjobviewer --all --show %i %m
-Icon=kjobviewer
-Terminal=false
-Type=Application
-X-KDE-StartupNotify=true
-
-Name=KJobViewer
-Name[bn]=কে-জব-ভিউয়ার
-Name[csb]=Przezérnik pòlétów drëkera
-Name[cy]=KGwelyddSwyddi
-Name[ja]=K ジョブビューア
-Name[nds]=Opgavenkieker
-Name[ne]=KJob दर्शक
-Name[pl]=Przeglądarka zadań drukowania
-Name[pt_BR]=Trabalhos de Impressão
-Name[ro]=Vizualizor lucrări de tipărit
-Name[rw]=K-IkigaragazaUmurimo
-Name[sk]=Prehliadač úloh
-Name[sv]=K-jobbvisare
-Name[ta]=கேபணி காட்சியாளன்
-Name[tg]=Намоишгари корҳо
-Name[vi]=Trình theo dõi Tác vụ In ấn
-GenericName=Print Jobs
-GenericName[af]=Drukker Werke
-GenericName[be]=Заданні друку
-GenericName[bg]=Задания за печат
-GenericName[bn]=মুদ্রণ তালিকা
-GenericName[bs]=Zadaci štampe
-GenericName[ca]=Treballs d'impressió
-GenericName[cs]=Tiskové úlohy
-GenericName[csb]=Pòlétë drëkera
-GenericName[cy]=Swyddi Argraffu
-GenericName[da]=Udskriv job
-GenericName[de]=Druckaufträge
-GenericName[el]=Εργασίες εκτύπωσης
-GenericName[eo]=Printtaskoj
-GenericName[es]=Trabajos de impresión
-GenericName[et]=Printeri tööd
-GenericName[eu]=Inprimaketa lanak
-GenericName[fa]=چاپ کارها
-GenericName[fi]=Tulostustyöt
-GenericName[fr]=Tâches d'impressions
-GenericName[fy]=printtaken
-GenericName[ga]=Jabanna Priontála
-GenericName[gl]=Traballos de Impresión
-GenericName[he]=עבודות הדפסה
-GenericName[hr]=Zadaci ispisivanja
-GenericName[hu]=Nyomtatási feladatok
-GenericName[is]=Prentverk
-GenericName[it]=Lavori di stampa
-GenericName[ja]=印刷ジョブ
-GenericName[ka]=ბეჭდვის დავალება
-GenericName[kk]=Басып шығару тапсырмалары
-GenericName[km]=ការងារ​បោះពុម្ព
-GenericName[lt]=Spausdinimo užduotys
-GenericName[mk]=Задачи за печатење
-GenericName[ms]=Cetak Kerja
-GenericName[nb]=Utskriftsjobber
-GenericName[nds]=Druckopgaven
-GenericName[ne]=मुद्रण कार्य
-GenericName[nl]=Afdruktaken
-GenericName[nn]=Utskriftsjobbar
-GenericName[pa]=ਛਪਾਈ ਕੰਮ
-GenericName[pl]=Zadania drukowania
-GenericName[pt]=Tarefas de Impressão
-GenericName[pt_BR]=Tarefas de Impressão
-GenericName[ro]=Lucrări de tipărit
-GenericName[ru]=Задания печати
-GenericName[rw]=Gucapa Imirimo
-GenericName[se]=Čálihanbarggut
-GenericName[sk]=Tlačové úlohy
-GenericName[sl]=Tiskalniška opravila
-GenericName[sr]=Послови штампе
-GenericName[sr@Latn]=Poslovi štampe
-GenericName[sv]=Skrivarjobb
-GenericName[ta]=அச்சுப் பணிகள்
-GenericName[te]=ప్రచురణ పనులు
-GenericName[tg]=Корҳои чопгар
-GenericName[th]=งานพิมพ์
-GenericName[tr]=Yazdırma Görevleri
-GenericName[tt]=Bastıru Eşläre
-GenericName[uk]=Задачі друку
-GenericName[uz]=Bosib chiqarish vazifalari
-GenericName[uz@cyrillic]=Босиб чиқариш вазифалари
-GenericName[vi]=Tác vụ In ấn
-GenericName[wa]=Bouyes d' imprimaedje
-GenericName[zh_CN]=打印任务
-GenericName[zh_TW]=列印工作
-
-X-DCOP-ServiceType=Unique
-Categories=Qt;KDE;Utility;X-KDE-Utilities-Peripherals;
diff --git a/kdeprint/kjobviewer/kjobviewer.h b/kdeprint/kjobviewer/kjobviewer.h
deleted file mode 100644
index 967262de2..000000000
--- a/kdeprint/kjobviewer/kjobviewer.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#ifndef KJOBVIEWER_H
-#define KJOBVIEWER_H
-
-#include <kuniqueapplication.h>
-#include <tdeprint/kpreloadobject.h>
-#include <tqdict.h>
-
-class KMJobViewer;
-class KMTimer;
-class JobTray;
-
-class KJobViewerApp : public KUniqueApplication, public KPReloadObject
-{
-	Q_OBJECT
-	friend class JobTray;
-public:
-	KJobViewerApp();
-	virtual ~KJobViewerApp();
-
-	virtual int newInstance();
-
-protected:
-	void initialize();
-	void reload();
-
-protected slots:
-	void slotJobsShown(KMJobViewer*, bool);
-	void slotTimer();
-	void slotPrinterChanged(KMJobViewer*, const TQString&);
-	void slotViewerDestroyed(KMJobViewer*);
-
-private:
-	TQDict<KMJobViewer>	m_views;
-	JobTray	*m_tray;
-	KMTimer	*m_timer;
-};
-
-#endif
diff --git a/kdeprint/kjobviewer/kjobviewerui.rc b/kdeprint/kjobviewer/kjobviewerui.rc
deleted file mode 100644
index 83592dfc6..000000000
--- a/kdeprint/kjobviewer/kjobviewerui.rc
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE kpartgui>
-<kpartgui name="kjobviewer">
-<MenuBar>
-  <Menu name="jobs"><text>&amp;Jobs</text>
-    <Action name="job_hold" />
-    <Action name="job_resume" />
-    <Separator />
-    <Action name="job_remove" />
-    <Action name="job_move" />
-    <Separator />
-    <Action name="job_restart" />
-  </Menu>
-  <Menu name="filter"><text>F&amp;ilter</text>
-    <Action name="filter_modify" />
-    <Action name="view_completed" />
-    <Action name="view_user_jobs" />
-  </Menu>
-</MenuBar>
-<ToolBar name="mainToolBar">
-  <Action name="job_hold" />
-  <Action name="job_resume" />
-  <Separator />
-  <Action name="job_remove" />
-  <Action name="job_move" />
-  <Separator />
-  <Action name="job_restart" />
-  <Separator />
-  <Action name="filter_modify" />
-  <Action name="view_completed" />
-  <Action name="view_user_jobs" />
-  <Action name="view_username" />
-  <Separator />
-  <Action name="refresh" />
-</ToolBar>
-</kpartgui>
diff --git a/kdeprint/kjobviewer/main.cpp b/kdeprint/kjobviewer/main.cpp
deleted file mode 100644
index e75a00e13..000000000
--- a/kdeprint/kjobviewer/main.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#include <kapplication.h>
-#include <kcmdlineargs.h>
-#include <kaboutdata.h>
-
-#include "kjobviewer.h"
-#include <klocale.h>
-#include <stdlib.h>
-
-static KCmdLineOptions options[] = {
-	{ "d <printer-name>", I18N_NOOP("The printer for which jobs are requested"), 0 },
-	{ "noshow", I18N_NOOP("Show job viewer at startup"), 0},
-	{ "all", I18N_NOOP("Show jobs for all printers"), 0},
-        KCmdLineLastOption
-};
-
-
-extern "C" int KDE_EXPORT kdemain(int argc, char *argv[])
-{
-	KAboutData	aboutData("kjobviewer",I18N_NOOP("KJobViewer"),"0.1",I18N_NOOP("A print job viewer"),KAboutData::License_GPL,"(c) 2001, Michael Goffioul", 0, "http://printing.kde.org");
-	aboutData.addAuthor("Michael Goffioul",0,"tdeprint@swing.be");
-	KCmdLineArgs::init(argc,argv,&aboutData);
-	KCmdLineArgs::addCmdLineOptions(options);
-	KJobViewerApp::addCmdLineOptions();
-
-	if (!KJobViewerApp::start())
-		exit(0);
-
-	KJobViewerApp	a;
-	return a.exec();
-}
diff --git a/kdeprint/kprinter/CMakeLists.txt b/kdeprint/kprinter/CMakeLists.txt
deleted file mode 100644
index 0849ebe12..000000000
--- a/kdeprint/kprinter/CMakeLists.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-include( CheckFunctionExists )
-check_function_exists( sigset HAVE_SIGACTION )
-check_function_exists( sigaction HAVE_SIGSET )
-
-add_definitions( -D_KDEPRINT_COMPILE )
-
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}
-  ${TDE_INCLUDE_DIR}
-  ${TQT_INCLUDE_DIRS}
-)
-
-link_directories(
-  ${TQT_LIBRARY_DIRS}
-)
-
-
-##### kprinter (tdeinit) ########################
-
-tde_add_tdeinit_executable( kprinter AUTOMOC
-  SOURCES main.cpp printwrapper.cpp
-  LINK tdeprint-shared
-)
diff --git a/kdeprint/kprinter/Makefile.am b/kdeprint/kprinter/Makefile.am
deleted file mode 100644
index 4cab98880..000000000
--- a/kdeprint/kprinter/Makefile.am
+++ /dev/null
@@ -1,18 +0,0 @@
-AM_CPPFLAGS = -D_KDEPRINT_COMPILE
-
-INCLUDES = $(all_includes)
-
-bin_PROGRAMS = 
-lib_LTLIBRARIES = 
-tdeinit_LTLIBRARIES = kprinter.la
-
-kprinter_la_SOURCES = main.cpp printwrapper.cpp
-kprinter_la_LIBADD = -ltdeprint
-kprinter_la_LDFLAGS = -module -avoid-version $(all_libraries) $(KDE_RPATH)
-kprinter_la_METASOURCES = AUTO
-
-noinst_HEADERS = printwrapper.h
-
-messages:
-	$(XGETTEXT) *.cpp -o $(podir)/kprinter.pot
-
diff --git a/kdeprint/kprinter/configure.in.in b/kdeprint/kprinter/configure.in.in
deleted file mode 100644
index dd0767216..000000000
--- a/kdeprint/kprinter/configure.in.in
+++ /dev/null
@@ -1 +0,0 @@
-AC_CHECK_FUNCS(sigset sigaction)
diff --git a/kdeprint/kprinter/kprinter.desktop b/kdeprint/kprinter/kprinter.desktop
deleted file mode 100644
index bb2de4735..000000000
--- a/kdeprint/kprinter/kprinter.desktop
+++ /dev/null
@@ -1,107 +0,0 @@
-[Desktop Entry]
-Exec=kprinter
-Icon=kjobviewer
-Terminal=false
-Type=Application
-DocPath=tdeprint/index.html
-X-KDE-StartupNotify=true
-Name=KPrinter
-Name[af]=KDrukker
-Name[cy]=KArgraffydd
-Name[eo]=KPrintilo
-Name[fy]=Kprinter
-Name[hi]=केप्रिंटर
-Name[ka]=პრინტერი
-Name[lo]=ເຄື່ອງພິມ - K
-Name[ne]=K मुद्रक
-Name[nl]=Kprinter
-Name[nso]=KSegatisi
-Name[pa]=ਕੇ-ਪਰਿੰਟਰ
-Name[ru]=Принтер
-Name[rw]=K-Mucapyi
-Name[sv]=Kskrivare
-Name[ta]=Kஅச்சியந்திரம்
-Name[te]=కెప్రింటర్
-Name[tg]=KЧопгар
-Name[th]=เครื่องพิมพ์ K
-Name[tr]=KYazıcı
-Name[ven]=Phirinthara ya K
-Name[vi]=In ấn KDE
-Name[wa]=KScrirece (KPrinter)
-GenericName=Printing Tool
-GenericName[af]=Drukker Program
-GenericName[ar]=أداة الطباعة
-GenericName[be]=Інструмент друку
-GenericName[bg]=Инструмент за печат
-GenericName[bn]=মুদ্রণ টুল
-GenericName[br]=Ostilh moulañ
-GenericName[bs]=Alat za štampu
-GenericName[ca]=Eina per a imprimir
-GenericName[cs]=Tiskový nástroj
-GenericName[csb]=Nôrzãdze do sprôwianiô wëdrëkama
-GenericName[cy]=Erfyn Argraffu
-GenericName[da]=Udskriftsværktøj
-GenericName[de]=Druckprogramm
-GenericName[el]=Εργαλείο εκτύπωσης
-GenericName[eo]=Ilo por printado
-GenericName[es]=Herramienta de impresión
-GenericName[et]=Trükkimise rakendus
-GenericName[eu]=Imprimatzeko tresna
-GenericName[fa]=ابزار چاپ
-GenericName[fi]=Tulostustyökalu
-GenericName[fr]=Outil d'impression
-GenericName[fy]=printprogramma
-GenericName[ga]=Uirlis Priontála
-GenericName[gl]=Ferramenta de Impresión
-GenericName[he]=כלי הדפסה
-GenericName[hi]=प्रिंटर औज़ार
-GenericName[hr]=Alata za ispisivanje
-GenericName[hu]=Nyomtatáskezelő
-GenericName[is]=Prentunartól
-GenericName[it]=Strumento di stampa
-GenericName[ja]=印刷ツール
-GenericName[ka]=საბეჭდი უტილიტა
-GenericName[kk]=Басып шығару құралы
-GenericName[km]=ឧបករណ៍​បោះពុម្ព
-GenericName[lo]=ເຄື່ອງມືລະບົບການພິມ์
-GenericName[lt]=Spausdinimo priemonė
-GenericName[lv]=Drukāšanas Rīks
-GenericName[mk]=Печатарска алатка
-GenericName[mn]=Хэвлэх програм
-GenericName[ms]=Alat Pencetakan
-GenericName[mt]=Għodda tal-ipprintjar
-GenericName[nb]=Verktøy for skriverbehandling
-GenericName[nds]=Druckwarktüüch
-GenericName[ne]=मुद्रण उपकरण
-GenericName[nl]=Afdrukprogramma
-GenericName[nn]=Utskriftsverktøy
-GenericName[nso]=Sebereka sa Kgatiso
-GenericName[pa]=ਛਪਾਈ (ਪਰਿੰਟਿੰਗ) ਸੰਦ
-GenericName[pl]=Narzędzie do zarządzania wydrukiem
-GenericName[pt]=Ferramenta de Impressão
-GenericName[pt_BR]=Ferramenta de Impressão
-GenericName[ro]=Utilitar de tipărire
-GenericName[ru]=Утилита печати
-GenericName[rw]=Igikoresho cyo Gucapa 
-GenericName[se]=Čálihanreaidu
-GenericName[sk]=Tlačový nástroj
-GenericName[sl]=Orodje za tiskanje
-GenericName[sr]=Алат за штампу
-GenericName[sr@Latn]=Alat za štampu
-GenericName[sv]=Skrivarverktyg
-GenericName[ta]=அச்சசியந்திர கருவி
-GenericName[tg]=Обзори Чоп
-GenericName[th]=เครื่องมือระบบการพิมพ์
-GenericName[tr]=Yazdırma Aracı
-GenericName[tt]=Bastıru Qoralı
-GenericName[uk]=Засіб друку
-GenericName[uz]=Bosib chiqarish vositasi
-GenericName[uz@cyrillic]=Босиб чиқариш воситаси
-GenericName[ven]=Tshishumiswa tshau phirintha
-GenericName[vi]=Công cụ In ấn
-GenericName[wa]=Usteye d' imprimaedje
-GenericName[xh]=Isixhobo Sokushicilela
-GenericName[zh_CN]=打印工具
-GenericName[zh_TW]=列印工具
-GenericName[zu]=Ithuluzi Lokushicelela
-
diff --git a/kdeprint/kprinter/main.cpp b/kdeprint/kprinter/main.cpp
deleted file mode 100644
index 5d1667cee..000000000
--- a/kdeprint/kprinter/main.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#include "printwrapper.h"
-
-#include <tqtimer.h>
-#include <kapplication.h>
-#include <kcmdlineargs.h>
-#include <klocale.h>
-
-static KCmdLineOptions options[] =
-{
-	{ "c",                I18N_NOOP("Make an internal copy of the files to print"), 0},
-	{ "P", 0, 0 },
-	{ "d <printer>",      I18N_NOOP("Printer/destination to print on"),      0},
-	{ "J", 0, 0 },
-	{ "t <title>",        I18N_NOOP("Title/Name for the print job" ),              0},
-	{ "#", 0, 0 },
-	{ "n <number>",       I18N_NOOP("Number of copies"), 0 },
-	{ "o <option=value>", I18N_NOOP("Printer option" ),                       0},
-	{ "j <mode>",         I18N_NOOP("Job output mode (gui, console, none)" ), "gui"},
-	{ "system <printsys>",I18N_NOOP("Print system to use (lpd, cups)" ), 0},
-	{ "stdin",            I18N_NOOP("Allow printing from STDIN" ),         0},
-	{ "nodialog",         I18N_NOOP("Do not show the print dialog (print directly)"), 0},
-	{ "+file(s)",	      I18N_NOOP("Files to load" ),                        0},
-	KCmdLineLastOption
-};
-
-extern "C" int KDE_EXPORT kdemain(int argc, char *argv[])
-{
-	KCmdLineArgs::init(argc,argv,"kprinter",I18N_NOOP("KPrinter"),I18N_NOOP("A printer tool for KDE" ),"0.0.1");
-	KCmdLineArgs::addCmdLineOptions(options);
-	KApplication	app;
-	PrintWrapper	*wrap = new PrintWrapper;
-	app.setMainWidget(wrap);
-	TQTimer::singleShot(10,wrap,TQT_SLOT(slotPrint()));
-
-	int	result = app.exec();
-	delete wrap;
-
-	return result;
-}
diff --git a/kdeprint/kprinter/printwrapper.cpp b/kdeprint/kprinter/printwrapper.cpp
deleted file mode 100644
index effa3dea3..000000000
--- a/kdeprint/kprinter/printwrapper.cpp
+++ /dev/null
@@ -1,403 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#include "printwrapper.h"
-
-#include <unistd.h>
-#include <signal.h>
-#include <sys/time.h>
-
-#include <tqstring.h>
-#include <tqstringlist.h>
-#include <stdlib.h>
-#include <kmessagebox.h>
-#include <tqfile.h>
-#include <tqtimer.h>
-#include <tqregexp.h>
-#include <tqsocketnotifier.h>
-
-#include <kapplication.h>
-#include <kcmdlineargs.h>
-#include <klocale.h>
-#include <kstandarddirs.h>
-#include <kio/netaccess.h>
-#include <kurl.h>
-#include <kdebug.h>
-#include <ktempfile.h>
-
-#include <kprinter.h>
-#include <tdeprint/kmmanager.h>
-#include <tdeprint/kmprinter.h>
-#include <tdeprint/kprintdialog.h>
-
-void signal_handler(int);
-TQString tempFile;
-bool fromStdin = false;
-char job_output = 0;	// 0: dialog, 1: console, 2: none
-char readchar = '\0';
-bool dataread = false;
-bool docopy = false;
-
-void showmsgdialog(const TQString& msg, int type = 0)
-{
-	switch (type)
-	{
-	   case 0: KMessageBox::information(NULL,msg,i18n("Print Information")); break;
-	   case 1: KMessageBox::sorry(NULL,msg,i18n("Print Warning")); break;
-	   case 2: KMessageBox::error(NULL,msg,i18n("Print Error")); break;
-	}
-}
-
-void showmsgconsole(const TQString& msg, int type = 0)
-{
-	TQString	errmsg = TQString::tqfromLatin1("%1 : ").arg((type == 0 ? i18n("Print info") : (type == 1 ? i18n("Print warning") : i18n("Print error"))));
-	kdDebug() << errmsg << msg << endl;
-}
-
-void showmsg(const TQString& msg, int type = 0)
-{
-	switch (job_output) {
-	   case 0: showmsgdialog(msg,type); break;
-	   case 1: showmsgconsole(msg,type); break;
-	   default: break;
-	}
-}
-
-void errormsg(const TQString& msg)
-{
-	showmsg(msg,2);
-	exit(1);
-}
-
-void signal_handler(int s)
-{
-	TQFile::remove(tempFile);
-	exit(s);
-}
-
-TQString copyfile( const TQString& filename )
-{
-	kdDebug( 500 ) << "Copying file " << filename << endl;
-	TQString result;
-	TQFile f( filename );
-	if ( f.open( IO_ReadOnly ) )
-	{
-		KTempFile temp;
-		temp.setAutoDelete( false );
-		TQFile *tf = temp.file();
-		if ( tf )
-		{
-			char buffer[ 0xFFFF ];
-			int b = 0;
-			while ( ( b = f.readBlock( buffer, 0xFFFF ) ) > 0 )
-			{
-				if ( tf->writeBlock( buffer, b ) != b )
-					break;
-			}
-			tf->close();
-			if ( b > 0 )
-				temp.setAutoDelete( true );
-			else
-			{
-				kdDebug( 500 ) << "File copied to " << temp.name() << endl;
-				result = temp.name();
-			}
-		}
-		else
-			temp.setAutoDelete( true );
-		f.close();
-	}
-	return result;
-}
-
-//******************************************************************************************************
-
-PrintWrapper::PrintWrapper()
-: TQWidget(), force_stdin(false), check_stdin(true)
-{
-}
-
-void PrintWrapper::slotPrint()
-{
-	KCmdLineArgs	*args = KCmdLineArgs::parsedArgs();
-
-#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
-	struct sigaction action;
-#endif /* HAVE_SIGACTION && !HAVE_SIGSET*/
-
-	// read variables from command line
-	TQString	printer = args->getOption("d");
-	TQString	title = args->getOption("t");
-	int	ncopies = TQString(args->getOption("n")).toInt();
-	TQString	job_mode = args->getOption("j");
-	TQString	system = args->getOption("system");
-	QCStringList	optlist = args->getOptionList("o");
-	TQMap<TQString,TQString>	opts;
-	KURL::List	files;
-	TQStringList	filestoprint;
-	force_stdin = args->isSet("stdin");
-	docopy = args->isSet( "c" );
-	bool	nodialog = !(args->isSet("dialog"));
-	
-	if( isatty( 0 ))
-	    {
-	    kdDebug( 500 ) << "stdin is a terminal, disabling it" << endl;
-	    check_stdin = false;
-	    }
-
-	// parse options
-	for (QCStringList::ConstIterator it=optlist.begin(); it!=optlist.end(); ++it)
-	{
-		TQStringList	l = TQStringList::split('=',TQString(*it),false);
-		if (l.count() >= 1) opts[l[0]] = (l.count() == 2 ? l[1] : TQString::null);
-	}
-
-	// read file list
-	for (int i=0; i<args->count(); i++)
-		files.append(args->url(i));
-
-	// some clean-up
-	args->clear();
-
-	// set default values if necessary
-	if (job_mode == "console") job_output = 1;
-	else if (job_mode == "none") job_output = 2;
-	else job_output = 0;
-
-	// some checking
-	if ( files.count() > 0)
-	{
-		check_stdin = false;
-		
-		if( force_stdin )
-		{
-			showmsg(i18n("A file has been specified on the command line. Printing from STDIN will be disabled."), 1);
-			force_stdin = false;
-		}
-	}
-	if (nodialog && files.count() == 0 &&!force_stdin && !check_stdin )
-	{
-		errormsg(i18n("When using '--nodialog', you must at least specify one file to print or use the '--stdin' flag."));
-	}
-	
-	if( check_stdin )
-	{ // check if there's any input on stdin
-	    fd_set in;
-	    struct timeval tm;
-	    tm.tv_sec = 0;
-	    tm.tv_usec = 0;
-	    FD_ZERO( &in );
-	    FD_SET( 0, &in );
-	    if( select( 1, &in, NULL, NULL, &tm ) )
-	    { // we have data on stdin
-			if ( read( 0, &readchar, 1 ) > 0 )
-			{
-				force_stdin = true;
-				check_stdin = false;
-				dataread = true;
-				kdDebug( 500 ) << "input detected on stdin" << endl;
-			}
-			else
-			{
-				force_stdin = check_stdin = false;
-				kdDebug( 500 ) << "stdin closed and empty" << endl;
-			}
-	    } 
-		else
-			kdDebug( 500 ) << "no input on stdin at startup" << endl;
-	}
-
-        // force_stdin ? or also check_stdin ?
-	KPrinter::ApplicationType	dialog_mode = (force_stdin || nodialog ? KPrinter::StandAlone : KPrinter::StandAlonePersistent);
-	KPrinter::setApplicationType(dialog_mode);
-	if (!force_stdin)
-		KPrinter::addStandardPage(KPrinter::FilesPage);
-
-	KPrinter	kprinter;
-	if (nodialog)
-	{
-		KMPrinter	*prt(0);
-		KMManager	*mgr = KMManager::self();
-
-		mgr->printerList(false);
-		if (!printer.isEmpty())
-			prt = mgr->findPrinter(printer);
-		else
-			prt = mgr->defaultPrinter();
-
-		if (prt == 0)
-			errormsg(i18n("The specified printer or the default printer could not be found."));
-		else if (!prt->autoConfigure(&kprinter))
-			errormsg(i18n("Operation aborted."));
-	}
-	else if (!printer.isEmpty())
-		kprinter.setSearchName(printer);
-	kprinter.setDocName(title);
-	kprinter.initOptions(opts);
-	kprinter.setOption("kde-filelist", files.toStringList().join("@@"));
-	kdDebug( 500 ) << kprinter.option( "kde-filelist" ) << endl;
-	if (ncopies > 0)
-		kprinter.setNumCopies(ncopies);
-
-	if (nodialog)
-		slotPrintRequested(&kprinter);
-	else
-	{
-		dlg = KPrintDialog::printerDialog(&kprinter, 0);
-		if (dlg)
-		{
-			connect(dlg, TQT_SIGNAL(printRequested(KPrinter*)), TQT_SLOT(slotPrintRequested(KPrinter*)));
-			if( check_stdin )
-			{
-			    notif = new TQSocketNotifier( 0, TQSocketNotifier::Read, TQT_TQOBJECT(this) );
-			    connect( notif, TQT_SIGNAL( activated( int )), this, TQT_SLOT( slotGotStdin()));
-			    kdDebug( 500 ) << "waiting for input on stdin" << endl;
-			}
-			dlg->exec();
-			delete dlg;
-		}
-		else
-			errormsg(i18n("Unable to construct the print dialog."));
-	}
-
-	TQTimer::singleShot(10,kapp,TQT_SLOT(quit()));
-}
-
-void hack( KPrintDialog* dlg );
-
-void PrintWrapper::slotGotStdin()
-{
-	delete notif;
-	if ( read( 0, &readchar, 1 ) > 0 )
-	{
-		force_stdin = true;
-		check_stdin = false;
-		dataread = true;
-		dlg->enableDialogPage( 0, false );
-		kdDebug( 500 ) << "got delayed input on stdin" << endl;
-	}
-}
-
-void PrintWrapper::slotPrintRequested(KPrinter *kprinter)
-{
-	// re-initialize docName
-	kprinter->setDocName(TQString::null);
-
-	// download files if needed
-	TQStringList	files = TQStringList::split("@@", kprinter->option("kde-filelist"), false), filestoprint;
-	for (TQStringList::ConstIterator it=files.begin(); it!=files.end(); ++it)
-	{
-		TQString	tmpFile;
-		KURL	url = KURL::fromPathOrURL(*it);
-		kdDebug( 500 ) << url.url() << endl;
-		if (KIO::NetAccess::download(url, tmpFile, this))
-		{
-			filestoprint << tmpFile;
-			kprinter->setDocName(url.fileName());
-		}
-	}
-
-	if (filestoprint.count() > 1)
-		kprinter->setDocName(i18n("Multiple files (%1)").arg(filestoprint.count()));
-	else if (kprinter->docName().isEmpty())
-		kprinter->setDocName(force_stdin ? "<STDIN>" : "KPrinter");
-	if (filestoprint.count() == 0)
-	{
-		// At this point force_stdin should be true
-		if (!force_stdin)
-			errormsg(i18n("Nothing to print."));
-
-		// print from stdin
-
-#  if defined(HAVE_SIGSET)
-		sigset(SIGHUP, signal_handler);
-		sigset(SIGINT, signal_handler);
-		sigset(SIGTERM, signal_handler);
-#  elif defined(HAVE_SIGACTION)
-		memset(&action, 0, sizeof(action));
-		action.sa_handler = signal_handler;
-
-		sigaction(SIGHUP, &action, NULL);
-		sigaction(SIGINT, &action, NULL);
-		sigaction(SIGTERM, &action, NULL);
-#  else
-		signal(SIGHUP, signal_handler);
-		signal(SIGINT, signal_handler);
-		signal(SIGTERM, signal_handler);
-#  endif
-
-		tempFile = locateLocal("tmp","kprinter_")+TQString::number(getpid());
-		filestoprint.append(tempFile);
-		fromStdin = true;
-		FILE	*fout = fopen(TQFile::encodeName(filestoprint[0]),"w");
-		if (!fout) errormsg(i18n("Unable to open temporary file."));
-		char	buffer[8192];
-		int	s;
-
-		// check for previously read data
-		if ( dataread )
-			fwrite( &readchar, 1, 1, fout );
-		// read stdin and write to temporary file
-		while ((s=fread(buffer,1,sizeof(buffer),stdin)) > 0)
-			fwrite(buffer,1,s,fout);
-
-		s = ftell(fout);
-		fclose(fout);
-		if (s <= 0)
-		{
-			showmsg(i18n("Stdin is empty, no job sent."), 2);
-			TQFile::remove(filestoprint[0]);
-			return;
-		}
-	}
-	else if ( docopy )
-	{
-		for ( TQStringList::Iterator it=filestoprint.begin(); it!=filestoprint.end(); ++it )
-		{
-			TQString tmp = copyfile( *it );
-			if ( tmp.isEmpty() )
-			{
-				errormsg( i18n( "Unable to copy file %1." ).arg( *it ) );
-				return;
-			}
-			*it = tmp;
-		}
-		fromStdin = true;
-	}
-	else
-		fromStdin = false;
-
-	// print all files. Remove it after if printing from
-	// stdin. "kprinter" shouldn't remove temp file itself,
-	// otherwise the temp file might get removed before the
-	// print process finishes.
-	bool ok = kprinter->printFiles(filestoprint, fromStdin);
-
-	if (!ok)
-		showmsg(i18n("Error while printing files"), 2);
-	// Do not show this dialog anymore. Code sould be removed definitively
-	// if nobody complains.
-	/*else
-	{
-		QString	msg = i18n("<nobr>File(s) sent to printer <b>%1</b>.</nobr>").arg(kprinter->printerName());
-		showmsg(msg,0);
-	}*/
-}
-
-#include "printwrapper.moc"
diff --git a/kdeprint/kprinter/printwrapper.h b/kdeprint/kprinter/printwrapper.h
deleted file mode 100644
index e34e8d964..000000000
--- a/kdeprint/kprinter/printwrapper.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#ifndef PRINTWRAPPER_H
-#define PRINTWRAPPER_H
-
-#include <tqwidget.h>
-
-class KPrinter;
-class KPrintDialog;
-class TQSocketNotifier;
-
-class PrintWrapper : public TQWidget
-{
-	Q_OBJECT
-public:
-	PrintWrapper();
-
-public slots:
-	void slotPrint();
-	void slotPrintRequested(KPrinter*);
-
-private slots:
-	void slotGotStdin();
-		
-private:
-	bool force_stdin;
-	bool check_stdin;
-	KPrintDialog* dlg;
-	TQSocketNotifier* notif;
-};
-
-#endif
diff --git a/kdeprint/printmgr/CMakeLists.txt b/kdeprint/printmgr/CMakeLists.txt
deleted file mode 100644
index af68abb3f..000000000
--- a/kdeprint/printmgr/CMakeLists.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-add_definitions( -D_KDEPRINT_COMPILE )
-
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}
-  ${TDE_INCLUDE_DIR}
-  ${TQT_INCLUDE_DIRS}
-)
-
-link_directories(
-  ${TQT_LIBRARY_DIRS}
-)
-
-
-##### other data ################################
-
-tde_install_icons( printmgr )
-install( FILES printers.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
-
-
-##### kcm_printmgr (module) #####################
-
-tde_add_kpart( kcm_printmgr AUTOMOC
-  SOURCES kcmprintmgr.cpp
-  LINK tdeprint_management-shared
-  DESTINATION ${PLUGIN_INSTALL_DIR}
-)
diff --git a/kdeprint/printmgr/Makefile.am b/kdeprint/printmgr/Makefile.am
deleted file mode 100644
index d0932829a..000000000
--- a/kdeprint/printmgr/Makefile.am
+++ /dev/null
@@ -1,18 +0,0 @@
-AM_CPPFLAGS = -D_KDEPRINT_COMPILE
-
-INCLUDES = $(all_includes)
-
-kde_module_LTLIBRARIES = kcm_printmgr.la
-
-kcm_printmgr_la_SOURCES = kcmprintmgr.cpp
-kcm_printmgr_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined
-kcm_printmgr_la_LIBADD = -ltdeprint_management
-
-noinst_HEADERS = kcmprintmgr.h
-
-KDE_ICON = printmgr
-
-xdg_apps_DATA = printers.desktop
-
-messages: rc.cpp
-	$(XGETTEXT) *.cpp -o $(podir)/kcmprintmgr.pot
diff --git a/kdeprint/printmgr/hi128-app-printmgr.png b/kdeprint/printmgr/hi128-app-printmgr.png
deleted file mode 100644
index 7db5f56b1..000000000
Binary files a/kdeprint/printmgr/hi128-app-printmgr.png and /dev/null differ
diff --git a/kdeprint/printmgr/hi16-app-printmgr.png b/kdeprint/printmgr/hi16-app-printmgr.png
deleted file mode 100644
index d6defce21..000000000
Binary files a/kdeprint/printmgr/hi16-app-printmgr.png and /dev/null differ
diff --git a/kdeprint/printmgr/hi22-app-printmgr.png b/kdeprint/printmgr/hi22-app-printmgr.png
deleted file mode 100644
index a71ee2817..000000000
Binary files a/kdeprint/printmgr/hi22-app-printmgr.png and /dev/null differ
diff --git a/kdeprint/printmgr/hi32-app-printmgr.png b/kdeprint/printmgr/hi32-app-printmgr.png
deleted file mode 100644
index d554b554f..000000000
Binary files a/kdeprint/printmgr/hi32-app-printmgr.png and /dev/null differ
diff --git a/kdeprint/printmgr/hi48-app-printmgr.png b/kdeprint/printmgr/hi48-app-printmgr.png
deleted file mode 100644
index 13adbd006..000000000
Binary files a/kdeprint/printmgr/hi48-app-printmgr.png and /dev/null differ
diff --git a/kdeprint/printmgr/hi64-app-printmgr.png b/kdeprint/printmgr/hi64-app-printmgr.png
deleted file mode 100644
index 5d22d215e..000000000
Binary files a/kdeprint/printmgr/hi64-app-printmgr.png and /dev/null differ
diff --git a/kdeprint/printmgr/hisc-app-printmgr.svgz b/kdeprint/printmgr/hisc-app-printmgr.svgz
deleted file mode 100644
index f40b4bdfa..000000000
Binary files a/kdeprint/printmgr/hisc-app-printmgr.svgz and /dev/null differ
diff --git a/kdeprint/printmgr/kcmprintmgr.cpp b/kdeprint/printmgr/kcmprintmgr.cpp
deleted file mode 100644
index 34b773070..000000000
--- a/kdeprint/printmgr/kcmprintmgr.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#include "kcmprintmgr.h"
-#include "tdeprint/kmmainview.h"
-
-#include <tqlayout.h>
-
-#include <kgenericfactory.h>
-#include <kaboutdata.h>
-#include <kdebug.h>
-#include <klocale.h>
-
-typedef KGenericFactory<KCMPrintMgr, TQWidget> KPrintMgrFactory;
-K_EXPORT_COMPONENT_FACTORY( kcm_printmgr, KPrintMgrFactory("kcmprintmgr") )
-
-KCMPrintMgr::KCMPrintMgr(TQWidget *parent, const char *name, const TQStringList &)
-: KCModule(KPrintMgrFactory::instance(),parent,name)
-{
-	setButtons(KCModule::Ok);
-	setRootOnlyMsg( i18n(
-		"Print management as normal user\n"
-		"Some print management operations may need administrator privileges. Use the\n"
-		"\"Administrator Mode\" button below to start this print management tool with\n"
-		"administrator privileges.") );
-	setUseRootOnlyMsg(false);
-
-	m_mainview = new KMMainView(this,"MainView");
-
-	TQVBoxLayout	*main_ = new TQVBoxLayout(this, 0, 0);
-	main_->addWidget(m_mainview);
-	main_->activate();
-	
-	KAboutData *about =
-	  new KAboutData(I18N_NOOP("kcmprintmgr"), I18N_NOOP("KDE Printing Management"),
-                  0, 0, KAboutData::License_GPL,
-                  I18N_NOOP("(c) 2000 - 2002 Michael Goffioul"));
-	about->addAuthor("Michael Goffioul", 0, "tdeprint@swing.be");
-	setAboutData(about);
-}
-
-TQString KCMPrintMgr::quickHelp() const
-{
-	return i18n("<h1>Printers</h1>The KDE printing manager is part of KDEPrint which "
-               "is the interface to the real print subsystem of your Operating System (OS). "
-               "Although it does add some additional functionality of its own to those subsystems, "
-               "KDEPrint depends on them for its functionality. Spooling and filtering tasks, especially, "
-               "are still done by your print subsystem, or the administrative tasks (adding or "
-               "modifying printers, setting access rights, etc.)<br/> "
-               "What print features KDEPrint supports is therefore heavily dependent on your chosen print "
-               "subsystem. For the best support in modern printing, the KDE Printing Team recommends "
-               "a CUPS based printing system.");
-}
-
-KCMPrintMgr::~KCMPrintMgr()
-{
-}
diff --git a/kdeprint/printmgr/kcmprintmgr.h b/kdeprint/printmgr/kcmprintmgr.h
deleted file mode 100644
index e82bc730f..000000000
--- a/kdeprint/printmgr/kcmprintmgr.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#ifndef KCMPRINTMGR_H
-#define KCMPRINTMGR_H
-
-#include <kcmodule.h>
-
-class KMMainView;
-
-class KCMPrintMgr : public KCModule
-{
-public:
-	KCMPrintMgr(TQWidget *parent, const char *name, const TQStringList &);
-	~KCMPrintMgr();
-
-	TQString quickHelp() const;
-
-private:
-	KMMainView	*m_mainview;
-};
-
-#endif
diff --git a/kdeprint/printmgr/printers.desktop b/kdeprint/printmgr/printers.desktop
deleted file mode 100644
index 38820b20b..000000000
--- a/kdeprint/printmgr/printers.desktop
+++ /dev/null
@@ -1,235 +0,0 @@
-[Desktop Entry]
-Exec=kcmshell printers
-Icon=printmgr
-Type=Application
-DocPath=tdeprint/index.html
-MimeType=print/manager;
-
-X-KDE-ModuleType=Library
-X-KDE-Library=printmgr
-X-KDE-RootOnly=true
-X-KDE-HasReadOnlyMode=true
-
-Name=Printers
-Name[af]=Drukkers
-Name[ar]=الطابعات
-Name[be]=Друкаркі
-Name[bg]=Принтери
-Name[bn]=মুদ্রণ
-Name[br]=Moullerezioù
-Name[bs]=Štampači
-Name[ca]=Impressores
-Name[cs]=Tiskárny
-Name[csb]=Drëkerë
-Name[cy]=Argraffyddion
-Name[da]=Printere
-Name[de]=Drucker
-Name[el]=Εκτυπωτές
-Name[eo]=Printiloj
-Name[es]=Impresoras
-Name[et]=Printerid
-Name[eu]=Inprimagailuak
-Name[fa]=چاپگرها
-Name[fi]=Tulostimet
-Name[fr]=Imprimantes
-Name[ga]=Printéirí
-Name[gl]=Impresoras
-Name[he]=מדפסות
-Name[hi]=प्रिंटर
-Name[hr]=Pisači
-Name[hu]=Nyomtató
-Name[is]=Prentarar
-Name[it]=Stampanti
-Name[ja]=プリンタ
-Name[ka]=პრინტერები
-Name[kk]=Принтерлер
-Name[km]=ម៉ាស៊ីន​បោះពុម្ព
-Name[lo]=ເຄື່ອງພິມ - K
-Name[lt]=Spausdintuvai
-Name[lv]=Printeri
-Name[mk]=Печатачи
-Name[mn]=Хэвлэгч
-Name[ms]=Pencetak
-Name[nb]=Skrivere
-Name[nds]=Druckers
-Name[ne]=मुद्रक
-Name[nn]=Skrivarar
-Name[nso]=Digatisi
-Name[pa]=ਪਰਿੰਟਰ
-Name[pl]=Drukarki
-Name[pt]=Impressoras
-Name[pt_BR]=Impressoras
-Name[ro]=Imprimante
-Name[ru]=Принтеры
-Name[rw]=Mucapyi
-Name[se]=Čálánat
-Name[sk]=Tlačiarne
-Name[sl]=Tiskalniki
-Name[sr]=Штампачи
-Name[sr@Latn]=Štampači
-Name[ss]=Tishiceleli
-Name[sv]=Skrivare
-Name[ta]=அச்சியந்திரம்
-Name[te]=ప్రింటర్లు
-Name[tg]=Чопгарҳо
-Name[th]=เครื่องพิมพ์
-Name[tr]=Yazıcılar
-Name[tt]=Basaqlar
-Name[uk]=Принтери
-Name[uz]=Printerlar
-Name[uz@cyrillic]=Принтерлар
-Name[ven]=Dziphirinthara
-Name[vi]=Máy in
-Name[wa]=Sicrireces
-Name[xh]=Abashicileli
-Name[zh_CN]=打印机
-Name[zh_TW]=印表機
-Name[zu]=Abashicileli
-
-Comment=Printing system configuration (printers, jobs, classes, ...)
-Comment[af]=Drukker substelsel opstelling (drukkers, werke, klasse, ...)
-Comment[ar]=إعداد نظام الطباعة (الطابعات, المهمات, الفئات ...)
-Comment[az]=Çap Etmə sistemi quraşdırması (çap edicilər, vəzifələr, siniflər, ...)
-Comment[be]=Настаўленні сістэмы друку (друкаркі, заданні, класы, ...)
-Comment[bg]=Настройване на системата за печат
-Comment[bn]=মুদ্রণব্যবস্থার কনফিগারেশন (printers, jobs, classes, ...)
-Comment[bs]=Podešavanje sistema štampe (štampači, zadaci, klase, ...)
-Comment[ca]=Configuració del sistema d'impressió (impressores, tasques, classes...)
-Comment[cs]=Nastavení tiskového systému (tiskárny, úlohy, třídy, ...)
-Comment[csb]=Kònfigùracëjô systemë drëkòwaniô (drëkrë, pòlétë, klasë, ...)
-Comment[cy]=Ffurfweddu cysawd argraffu (argraffyddion, swyddi, dosbarthidau, ...)
-Comment[da]=Printersystemindstilling (printere, job, klasser, ...)
-Comment[de]=Einrichtung des Drucksystems (Drucker, Aufträge, Klassen ...)
-Comment[el]=Ρύθμιση συστήματος εκτύπωσης (εκτυπωτές, εργασίες, κλάσεις, ...)
-Comment[eo]=Agordo de printiloj, taskoj, klasoj,...
-Comment[es]=Configuración del sistema de impresión (impresoras, trabajos, clases...)
-Comment[et]=Trükkimissüsteemi seadistamine (printerid, tööd, klassid...)
-Comment[eu]=Inprimaketa sistemaren konfigurazioa (inprimagailuak, lanak, claseak, ...)
-Comment[fa]=پیکربندی سیستم چاپ )چاپگرها، کارها، رده‌ها و ...(
-Comment[fi]=Tulostusjärjestelmän asetukset (tulostimet, työt, luokat, ...)
-Comment[fr]=Configuration du système d'impression (imprimantes, travaux d'impression, classes...)
-Comment[fy]=Ynstellings fan it printsysteem (printers, taken, klassen, ...)
-Comment[gl]=Configuración do sistema de Impresión (impresoras, traballos, clases, ...)
-Comment[he]=שינוי הגדרות מערכת ההדפסה (מדפסות, עבודות, מחלקות...)
-Comment[hi]=प्रिंटर तंत्र कॉन्फ़िगरेशन (प्रिंटर,कार्य,क्लासेस...)
-Comment[hr]=Konfiguriranje ispisnog sustava (pisači, zadaci, klase...)
-Comment[hu]=A nyomtatási rendszer beállításai
-Comment[is]=Stillingar prentkerfis KDE forrita (prentara, verk, flokka,...)
-Comment[it]=Configurazione del sistema di stampa (stampanti, lavori, classi, ...)
-Comment[ja]=印刷システムの設定 (プリンタ、ジョブ、クラスなど)
-Comment[ka]=ბეჭდვის სისტემის კონფიგურაცია (პრინტერები, დავალებები, კლასები,...)
-Comment[kk]=Басып шығару жүйесін баптау (принтерлер, тапсырмалар, кластар, ...)
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​ប្រព័ន្ធ​បោះពុម្ព (ម៉ាស៊ីន​បោះពុម្ព ការងារ សន្ដាន...)
-Comment[lo]=ປັບແຕ່ງລະບົບການພິມ (ເຄື່ອງພິມ,ງານພິມ,ຄລາສ, ...)
-Comment[lt]=Spausdinimo sistemos konfigūravimas (spausdintuvai, užduotys, klasės, ...)
-Comment[lv]=Drukas sistēmas konfigurācija (drukas iekārtas, darbi, klases, ...)
-Comment[mk]=Конфигурација на печатарскиот систем (печатачи, задачи, класи, ...)
-Comment[mn]=Хэвлэх системийн тохируулга(Хэвлэгч,Даалгавар, Ангиуд...)
-Comment[ms]=Konfigurasi sistem pencetakan [pencetak, kerja, kelas, ...)
-Comment[mt]=Konfigurazzjoni tas-sistema tal-ipprintjar (printers, xogħol, klassijiet, ...)
-Comment[nb]=Tilpass utskriftssystemet (skrivere, jobber, klasser …)
-Comment[nds]=Instellen för dat Drucksysteem (Druckers, Opgaven, Klassen, ...)
-Comment[ne]=मुद्रण प्रणाली कन्फिगरेसन (मुद्रक, कार्य, बग, ...)
-Comment[nl]=Configuratie van het afdruksysteem (printers, taken, klassen, ...)
-Comment[nn]=Oppsett av utskriftssystem (skrivarar, jobbar, klassar, …)
-Comment[nso]=Peakanyo ya system ya kgatiso (digatisi, mesomo, maemo,...)
-Comment[pa]=ਪਰਿੰਟਿੰਗ ਸਿਸਟਮ ਸੰਰਚਨਾ (ਪਰਿੰਟਰ, ਕੰਮ, ਕਲਾਸ, ...)
-Comment[pl]=Konfiguracja systemu drukowania (drukarki, zadania, klasy, ...)
-Comment[pt]=Configuração do sistema de impressão (impressoras, tarefas, classes, ...)
-Comment[pt_BR]=Configuração do sistema de impressão (impressoras, trabalhos, classes, ...)
-Comment[ro]=Configurează sistemul de tipărire (imprimante, lucrări, clase)
-Comment[ru]=Настройки системы печати (принтеры, задания, классы...)
-Comment[rw]=Iboneza rya sisitemu y'icapa (Mucapyi,imirimo,inzego,..) 
-Comment[se]=Heivet čálihanvuogádaga (čálániid, barggut, luohkkát, …)
-Comment[sk]=Nastavenie systému tlače (tlačiarne, úlohy, triedy, ...)
-Comment[sl]=Nastavitev sistema tiskanja (tiskalniki, opravila, razredi ...)
-Comment[sr]=Подешавање система за штампање (штампачи, послови, класе, ...)
-Comment[sr@Latn]=Podešavanje sistema za štampanje (štampači, poslovi, klase, ...)
-Comment[sv]=Anpassa skrivarsystem (skrivare, jobb, klasser...)
-Comment[ta]=அச்சியந்திர சாதன வடிவமைப்பு (அச்சியந்திரங்கள், வேலைகள், பிரிவுகள், ...)
-Comment[tg]= Танзимоти системаи чоп (чопгарҳо, корҳо, синфҳо ва ғайра)
-Comment[th]=ปรับแต่งระบบการพิมพ์ (เครื่องพิมพ์, งานพิมพ์, คลาส, ...)
-Comment[tr]=Yazdırma sistemi kurulumu (yazıcılar, işler, sınıflar, ...)
-Comment[tt]=Bastıru sistemeneñ caylawı: basaqlar, eşlär, törlär kebek närsä
-Comment[uk]=Налаштування системи друку (принтери, задачі, класи, ...)
-Comment[uz]=Bosib chiqarish tizimini moslash (printerlar, vazifalar, sinflar...)
-Comment[uz@cyrillic]=Босиб чиқариш тизимини мослаш (принтерлар, вазифалар, синфлар...)
-Comment[ven]=Nzudzanyo ya maitele au phirintha (Dziphirinthara, mishumo, dzikilasi,...)
-Comment[vi]=Cấu hình hệ thống in ấn (máy in, tác vụ in, lớp, ...)
-Comment[wa]=Apontiaedje do sistinme d' imprimaedje (sicrireces, bouyes, classes...)
-Comment[xh]=Uqwalaselo lwendlela yoshicilelo (abashicileli, imisebenzi, iintlobo, ...)
-Comment[zh_CN]=打印系统配置(打印机、任务、类等等)
-Comment[zh_TW]=列印系統設定 (印表機、工作、類別等等)
-Comment[zu]=Inhlanganiselo yesistimu yokushicilelo (abashicileli, imisebenzi, amakilasi, ...)
-
-Keywords=print,printer,printing management
-Keywords[af]=print,printer,printing bestuuring
-Keywords[ar]=طبع, طباعة, ادارة الطابعات
-Keywords[az]=çap et,çap edici,çap etmə idarəsi
-Keywords[be]=Друк,Друкаваць,Друкарка,Кіраванне друкам,print,printer,printing management
-Keywords[bg]=печат, принтер, отпечатване, управление, система, print, printer, printing management
-Keywords[ca]=imprimir,impressora,gestió de la impressió
-Keywords[cs]=tisk,tiskárna,správa tisku
-Keywords[csb]=drëkùjë,drëker,sprôwianié wëdrëkama
-Keywords[cy]=argraffu,argraffydd,rheoli argraffu
-Keywords[da]=udskriv,printer,printerhåndtering
-Keywords[de]=Druck,Druckaufträge,Druckerverwaltung
-Keywords[el]=εκτύπωση,εκτυπωτής,διαχείριση εκτυπώσεων
-Keywords[eo]=printo,printado,presado,presilo,presadminsitrado
-Keywords[es]=imprimir,impresora,gestión de impresión
-Keywords[et]=trükkimine,printer,trükkimise haldamine
-Keywords[eu]=inprimatu,inprimagailua,inprimaketa kudeaketa
-Keywords[fa]=چاپ، چاپگر، مدیریت چاپ
-Keywords[fi]=tulostus,tulostin,tulostuksenhallinta
-Keywords[fr]=impression,imprimante,système d'impression
-Keywords[fy]=print,printer,printing management,printbehear,printsje
-Keywords[ga]=priontáil,printéir,bainisteoireacht priontála
-Keywords[gl]=imprimir,impresora,xestión de impresión
-Keywords[he]=הדפסה,מדפסת,ניהול הדפסה, print,printer,printing management
-Keywords[hi]=छापा,प्रिंटर,छपाई प्रबंधन
-Keywords[hr]=print,printer,printing management,ispis,pisač,upravljanje ispisivanjem
-Keywords[hu]=nyomtatás,nyomtató,nyomtatáskezelés
-Keywords[is]=prentun,prentari,prentstjórnun
-Keywords[it]=stampa,stampante,gestione stampa
-Keywords[ja]=印刷, プリンタ, 印刷管理
-Keywords[km]=បោះពុម្ព,ម៉ាស៊ីន​បោះពុម្ព,គ្រប់គ្រង​ការ​បោះពុម្ព
-Keywords[lo]=ພິມ,ເຄື່ອງພິມ,ຈັດການພິມ
-Keywords[lt]=print,printer,printing management,spausdinti,spausdintuvas,spausdinimo tvarkymas
-Keywords[lv]=druka,drukas iekārta,drukāšanas menedžments
-Keywords[mk]=print,printer,printing management,печати,печатач,менаџмент на печатење
-Keywords[mn]=Хэвлэх,Хэвлэгч,Хэвлэгчийн удирдлага
-Keywords[ms]=cetak, pencetak, pengurusan pencetakan
-Keywords[mt]=print,printer,printing management,stampar,printja,stampa,ipprintja
-Keywords[nb]=utskrift,skriver,utskriftskontroll
-Keywords[nds]=drucken,Drucker,Opgaav,Opgaven,Druckopgaav,Druckopgaven,Opdrag,Druckopdrag,Opdrääg,Druckopdrääg
-Keywords[ne]=मुद्रण, मुद्रक, मुद्रण व्यवस्थापन
-Keywords[nl]=print,printer,printing management,afdrukbeheer,afdrukken
-Keywords[nn]=utskrift,skrivar,utskriftshandsaming
-Keywords[nso]=taolo ya kgatiso,segatisi,kgatiso
-Keywords[pa]=ਛਾਪਣ,ਪਰਿੰਟਰ,ਪਰਿੰਟ,ਪਰਿੰਟ ਮੈਨੇਜਰ
-Keywords[pl]=drukuj,drukarka,zarządzanie drukowaniem
-Keywords[pt]=imprimir,impressora,gestão de impressão
-Keywords[pt_BR]=imprimir,impressora,gerenciamento de impressão
-Keywords[ro]=tipărire,printare,imprimantă,administrare tipărire
-Keywords[rw]=gucapa,mucapyi,igenzura ry'icapa
-Keywords[se]=čáliheapmi,čálán,čálihangieđahalli
-Keywords[sk]=tlač,tlačiareň,správa tlače
-Keywords[sl]=tiskanje,tiskalnik,upravljanje tiskanja
-Keywords[sr]=print,printer,printing management,штампање,штампач,управљање штампом
-Keywords[sr@Latn]=print,printer,printing management,štampanje,štampač,upravljanje štampom
-Keywords[sv]=skriv ut,skrivare,skrivarhantering
-Keywords[ta]=அச்சு, அச்சியந்திரம்,அச்சு மேலாளர்
-Keywords[th]=พิมพ์,เครื่องพิมพ์,จัดการการพิมพ์
-Keywords[tr]=yazdır,yazıcı,yazıcı yönetimi
-Keywords[uk]=друк,принтер,керування друком
-Keywords[uz]=printer,bosib chiqarish,bosib chiqarishni boshqarish
-Keywords[uz@cyrillic]=принтер,босиб чиқариш,босиб чиқаришни бошқариш
-Keywords[ven]=u phirintha,phirinthara,vhulanguli ha phirinthara
-Keywords[vi]=in ấn,máy in,quản lí in ấn
-Keywords[wa]=rexhe,sicrirece,manaedjmint di l' imprimaedje,imprimaedje
-Keywords[xh]=shicilela,umshicileli,uphatho lokushicilela
-Keywords[zh_CN]=print,printer,printing management,打印,打印机,打印管理
-Keywords[zh_TW]=print,printer,printing management,列印,印表機,列印管理
-Keywords[zu]=shicilela,umshicileli,abaphathi boshicilelo
-
-Categories=Qt;KDE;X-KDE-settings-hardware;Settings;
diff --git a/kdeprint/slave/CMakeLists.txt b/kdeprint/slave/CMakeLists.txt
deleted file mode 100644
index db9162a1b..000000000
--- a/kdeprint/slave/CMakeLists.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-add_definitions( -D_KDEPRINT_COMPILE )
-
-add_subdirectory( mimetypes )
-add_subdirectory( templates )
-
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}
-  ${TDE_INCLUDE_DIR}
-  ${TQT_INCLUDE_DIRS}
-)
-
-link_directories(
-  ${TQT_LIBRARY_DIRS}
-)
-
-
-##### other data ################################
-
-install( FILES print.protocol printdb.protocol DESTINATION ${SERVICES_INSTALL_DIR} )
-
-
-##### kio_print (module) ########################
-
-tde_add_kpart( kio_print AUTOMOC
-  SOURCES kio_print.cpp
-  LINK tdeprint-shared
-  DESTINATION ${PLUGIN_INSTALL_DIR}
-)
diff --git a/kdeprint/slave/Makefile.am b/kdeprint/slave/Makefile.am
deleted file mode 100644
index 5e5e04123..000000000
--- a/kdeprint/slave/Makefile.am
+++ /dev/null
@@ -1,22 +0,0 @@
-AM_CPPFLAGS = -D_KDEPRINT_COMPILE
-
-SUBDIRS = mimetypes templates
-
-INCLUDES= $(all_includes)
-
-kde_module_LTLIBRARIES = kio_print.la
-
-kio_print_la_SOURCES = kio_print.cpp
-kio_print_la_LIBADD = $(LIB_KIO) -ltdeprint
-kio_print_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
-
-METASOURCES = AUTO
-
-noinst_HEADERS = kio_print.h
-
-# Services
-servicesdir = $(kde_servicesdir)
-services_DATA = print.protocol printdb.protocol
-
-messages: rc.cpp
-	$(XGETTEXT) *.cpp -o $(podir)/kio_print.pot
diff --git a/kdeprint/slave/kio_print.cpp b/kdeprint/slave/kio_print.cpp
deleted file mode 100644
index d8bb4cf6e..000000000
--- a/kdeprint/slave/kio_print.cpp
+++ /dev/null
@@ -1,920 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#include "kio_print.h"
-#include <tdeprint/kmprinter.h>
-#include <tdeprint/kmmanager.h>
-#include <tdeprint/kmjobmanager.h>
-#include <tdeprint/kmjob.h>
-#include <tdeprint/driver.h>
-
-#include <tqfile.h>
-#include <tqtextstream.h>
-#include <klocale.h>
-#include <kdebug.h>
-#include <kinstance.h>
-#include <kio/global.h>
-#include <kstandarddirs.h>
-#include <kiconloader.h>
-#include <kmimetype.h>
-#include <kio/job.h>
-#include <kapplication.h>
-#include <kcmdlineargs.h>
-#include <kaboutdata.h>
-#include <kprocess.h>
-#include <ktempfile.h>
-#include <tqfile.h>
-#include <tqdom.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#define	PRINT_DEBUG	kdDebug(7019) << "kio_print: "
-
-extern "C"
-{
-	int KDE_EXPORT kdemain(int argc, char **argv);
-}
-
-void addAtom(KIO::UDSEntry& entry, unsigned int ID, long l, const TQString& s = TQString())
-{
-	KIO::UDSAtom	atom;
-	atom.m_uds = ID;
-	atom.m_long = l;
-	atom.m_str = s;
-	entry.append(atom);
-}
-
-static void createDirEntry(KIO::UDSEntry& entry, const TQString& name, const TQString& url, const TQString& mime)
-{
-	entry.clear();
-	addAtom(entry, KIO::UDS_NAME, 0, name);
-	addAtom(entry, KIO::UDS_FILE_TYPE, S_IFDIR);
-	addAtom(entry, KIO::UDS_ACCESS, 0500);
-	addAtom(entry, KIO::UDS_MIME_TYPE, 0, mime);
-	addAtom(entry, KIO::UDS_URL, 0, url);
-	PRINT_DEBUG << "creating dir entry url=" << url << " mimetype=" << mime << endl;
-	addAtom(entry, KIO::UDS_SIZE, 0);
-	//addAtom(entry, KIO::UDS_GUESSED_MIME_TYPE, 0, "application/octet-stream");
-}
-
-static void createFileEntry(KIO::UDSEntry& entry, const TQString& name, const TQString& url, const TQString& mime)
-{
-	entry.clear();
-	addAtom(entry, KIO::UDS_NAME, 0, name);
-	addAtom(entry, KIO::UDS_FILE_TYPE, S_IFREG);
-	addAtom(entry, KIO::UDS_URL, 0, url);
-	addAtom(entry, KIO::UDS_ACCESS, 0400);
-	addAtom(entry, KIO::UDS_MIME_TYPE, 0, mime);
-	addAtom(entry, KIO::UDS_SIZE, 0);
-	addAtom(entry, KIO::UDS_GUESSED_MIME_TYPE, 0, "application/octet-stream");
-}
-
-TQString buildMenu(const TQStringList& items, const TQStringList& links, int active)
-{
-	if (items.count() == 0 || items.count() != links.count())
-		return TQString("<td height=20 class=\"menu\">&nbsp;</td>");
-
-	TQString	s;
-	int	index = 0;
-	for (TQStringList::ConstIterator it1=items.begin(), it2=links.begin(); it1!=items.end() && it2!=links.end(); ++it1, ++it2, index++)
-	{
-		if (index == active)
-			s.append("<td height=20 class=\"menuactive\">&nbsp; ").append(*it1).append("&nbsp;</td>");
-		else
-			s.append("<td height=20 class=\"menu\">&nbsp; <a class=\"menu\" href=\"").append(*it2).append("\">").append(*it1).append("</a>&nbsp;</td>");
-		if ((unsigned int)index < items.count()-1)
-			s.append("<td height=20 class=\"menu\">|</td>");
-	}
-	return s;
-}
-
-TQString buildOptionRow(DrBase *opt, bool f)
-{
-	TQString	s("<tr class=\"%1\"><td width=\"41%\">%1</td><td width=\"59%\">%1</td></tr>\n");
-	s = s.arg(f ? "contentwhite" : "contentyellow").arg(opt->get("text")).arg(opt->prettyText());
-	return s;
-}
-
-TQString buildGroupTable(DrGroup *grp, bool showHeader = true)
-{
-	TQString	s("<tr class=\"top\"><td colspan=\"2\">%1</td></tr>\n");
-	if (showHeader)
-		s = s.arg(grp->get("text"));
-	else
-		s = TQString();
-
-	TQPtrListIterator<DrBase>	oit(grp->options());
-	bool	f(false);
-	for (; oit.current(); ++oit, f = !f)
-		s.append(buildOptionRow(oit.current(), f));
-
-	TQPtrListIterator<DrGroup>	git(grp->groups());
-	for (; git.current(); ++git)
-		s.append(buildGroupTable(git.current()));
-
-	return s;
-}
-
-int kdemain(int argc, char **argv)
-{
-	KInstance  instance("kio_print");
-
-	PRINT_DEBUG << "starting ioslave" << endl;
-	if (argc != 4)
-	{
-		fprintf(stderr, "Usage: kio_print protocol domain-socket1 domain-socket2\n");
-		exit(-1);
-	}
-
-	/* create fake KApplicatiom object, needed for job stuffs */
-	KAboutData about( "kio_print", "kio_print", "fake_version", 
-			"KDEPrint IO slave", KAboutData::License_GPL, "(c) 2003, Michael Goffioul" );
-	KCmdLineArgs::init( &about );
-	KApplication app;
-
-	KIO_Print	 slave(argv[2], argv[3]);
-	slave.dispatchLoop();
-
-	PRINT_DEBUG << "done" << endl;
-	return 0;
-}
-
-KIO_Print::KIO_Print(const TQCString& pool, const TQCString& app)
-: KIO::SlaveBase("print", pool, app)
-{
-}
-
-void KIO_Print::listDir(const KURL& url)
-{
-	if ( url.protocol() == "printdb" )
-	{
-		listDirDB( url );
-		return;
-	}
-
-	TQStringList	path = TQStringList::split('/', url.path(), false);
-
-	PRINT_DEBUG << "listing " << url.path() << endl;
-	TQString	group = path[0].lower();
-	if (path.count() == 0)
-		listRoot();
-	else if (path.count() == 1 && group != "manager" && group != "jobs")
-	{
-		PRINT_DEBUG << "listing group " << path[0] << endl;
-
-		int	mask;
-		TQString	mimeType;
-		KIO::UDSEntry	entry;
-
-		if (group == "printers")
-		{
-			mask = KMPrinter::Printer;
-			mimeType = "print/printer";
-		}
-		else if (group == "classes")
-		{
-			mask = KMPrinter::Class | KMPrinter::Implicit;
-			mimeType = "print/class";
-		}
-		else if (group == "specials")
-		{
-			mask = KMPrinter::Special;
-			mimeType = "print/printer";
-		}
-		else
-		{
-			error(KIO::ERR_DOES_NOT_EXIST, url.url());
-			return;
-		}
-
-		TQPtrListIterator<KMPrinter>	it(*(KMManager::self()->printerList()));
-		for (;it.current();++it)
-		{
-			if (!(it.current()->type() & mask) || !it.current()->instanceName().isEmpty())
-			{
-				PRINT_DEBUG << "rejecting " << it.current()->name() << endl;
-				continue;
-			}
-
-			//createFileEntry(entry, it.current()->name(), ("print:/"+path[0]+"/"+it.current()->name()), mimeType, "text/html", S_IFDIR);
-			createDirEntry(entry, it.current()->name(), ("print:/"+group+"/"+KURL::encode_string_no_slash(it.current()->name())), mimeType);
-			PRINT_DEBUG << "accepting " << it.current()->name() << endl;
-			listEntry(entry, false);
-		}
-
-		listEntry(KIO::UDSEntry(), true);
-		finished();
-	}
-	else
-	{
-		//error(KIO::ERR_UNSUPPORTED_ACTION, i18n("Unsupported path %1").arg(url.path()));
-		// better do nothing
-		listEntry(KIO::UDSEntry(), true);
-		totalSize(0);
-		finished();
-	}
-}
-
-void KIO_Print::listRoot()
-{
-	PRINT_DEBUG << "listing root entry" << endl;
-
-	KIO::UDSEntry	entry;
-
-	// Classes entry
-	createDirEntry(entry, i18n("Classes"), "print:/classes", "print/folder");
-	listEntry(entry, false);
-
-	// Printers entry
-	createDirEntry(entry, i18n("Printers"), "print:/printers", "print/folder");
-	listEntry(entry, false);
-
-	// Specials entry
-	createDirEntry(entry, i18n("Specials"), "print:/specials", "print/folder");
-	listEntry(entry, false);
-
-	// Management entry
-	//createFileEntry(entry, i18n("Manager"), "print:/manager", "print/manager", TQString(), S_IFDIR);
-	createDirEntry(entry, i18n("Manager"), "print:/manager", "print/manager");
-	listEntry(entry, false);
-
-	// Jobs entry
-	createDirEntry(entry, i18n("Jobs"), "print:/jobs", "print/jobs");
-	listEntry(entry, false);
-
-	// finish
-	totalSize(4);
-	listEntry(entry, true);
-	finished();
-}
-
-void KIO_Print::listDirDB( const KURL& url )
-{
-	PRINT_DEBUG << "listDirDB: " << url << endl;
-
-	TQStringList pathComps = TQStringList::split( '/', url.path(), false );
-	KURL remUrl;
-
-	remUrl.setProtocol( "http" );
-	remUrl.setHost( url.host() );
-	remUrl.setPort( url.port() );
-	remUrl.setPath( "/list-data.cgi" );
-	switch ( pathComps.size() )
-	{
-		case 0: /* list manufacturers */
-			remUrl.addQueryItem( "type", "makes" );
-			break;
-		case 1: /* list printers for the given manufacturer */
-			remUrl.addQueryItem( "type", "printers" );
-			remUrl.addQueryItem( "make", pathComps[ 0 ] );
-			break;
-		case 2: /* list drivers for given printer */
-			remUrl.addQueryItem( "type", "drivers" );
-			remUrl.addQueryItem( "printer", pathComps[ 1 ] );
-			break;
-		default:
-			error( KIO::ERR_UNSUPPORTED_ACTION, "Not implemented" );
-			return;
-	}
-	remUrl.addQueryItem( "format", "xml" );
-
-	if ( getDBFile( remUrl ) )
-	{
-		TQDomDocument doc;
-		if ( doc.setContent( &m_httpBuffer, false ) )
-		{
-			TQDomNodeList l;
-			KIO::UDSEntry entry;
-			switch ( pathComps.size() )
-			{
-				case 0:
-					l = doc.documentElement().elementsByTagName( "make" );
-					for ( unsigned int i=0; i<l.count(); i++ )
-					{
-						TQString make = l.item( i ).toElement().text();
-						KURL makeUrl = url;
-						makeUrl.addPath( "/" + make );
-						createDirEntry( entry, make, makeUrl.url(), "print/folder" );
-						listEntry( entry, false );
-						PRINT_DEBUG << "make: " << make << endl;
-					}
-					break;
-				case 1:
-					l = doc.documentElement().elementsByTagName( "printer" );
-					for ( unsigned int i=0; i<l.count(); i++ )
-					{
-						TQString ID, name;
-						for ( TQDomNode n=l.item( i ).firstChild(); !n.isNull(); n=n.nextSibling() )
-						{
-							TQDomElement e = n.toElement();
-							if ( e.tagName() == "id" )
-								ID = e.text();
-							else if ( e.tagName() == "model" )
-								name = e.text();
-						}
-						if ( !ID.isEmpty() && !name.isEmpty() )
-						{
-							KURL printerUrl = url;
-							printerUrl.addPath( "/" + ID );
-							createDirEntry( entry, name, printerUrl.url(), "print/printermodel" );
-							listEntry( entry, false );
-							PRINT_DEBUG << "printer: " << ID << endl;
-						}
-					}
-					break;
-				case 2:
-					l = doc.documentElement().elementsByTagName( "driver" );
-					for ( unsigned int i=0; i<l.count(); i++ )
-					{
-						TQString driver = l.item( i ).toElement().text();
-						KURL driverUrl = url;
-						driverUrl.addPath( "/" + driver );
-						createFileEntry( entry, driver, driverUrl.url(), "print/driver" );
-						listEntry( entry, false );
-						PRINT_DEBUG << "driver: " << driver << endl;
-					}
-					break;
-				default:
-					error( KIO::ERR_UNSUPPORTED_ACTION, "Not implemented" );
-					return;
-			}
-			listEntry( KIO::UDSEntry(), true );
-			finished();
-		}
-		else
-		{
-			if ( m_httpBuffer.buffer().size() == 0 )
-				error( KIO::ERR_INTERNAL, i18n( "Empty data received (%1)." ).arg( url.host() ) );
-			else
-				error( KIO::ERR_INTERNAL, i18n( "Corrupted/incomplete data or server error (%1)." ).arg( url.host() ) );
-		}
-	}
-	/*
-	 * If error occured while downloading, error has been called by
-	 * getDBFile. No need for a "else" statement.
-	 */
-}
-
-void KIO_Print::stat(const KURL& url)
-{
-	if ( url.protocol() == "printdb" )
-	{
-		statDB( url );
-		return;
-	}
-
-	PRINT_DEBUG << "stat: " << url.url() << endl;
-	TQStringList	path = TQStringList::split('/', url.encodedPathAndQuery(-1), false);
-	KIO::UDSEntry	entry;
-	TQString	mime;
-	bool err(false);
-
-	PRINT_DEBUG << "path components: " << path.join(", ") << endl;
-
-	switch (path.count())
-	{
-		case 0:
-			createDirEntry(entry, i18n("Print System"), "print:/", "print/folder");
-			break;
-		case 1:
-			if (path[0].lower() == "classes")
-				createDirEntry(entry, i18n("Classes"), "print:/classes", "print/folder");
-			else if (path[0].lower() == "printers")
-				createDirEntry(entry, i18n("Printers"), "print:/printers", "print/folder");
-			else if (path[0].lower() == "specials")
-				createDirEntry(entry, i18n("Specials"), "print:/specials", "print/folder");
-			else if (path[0].lower() == "manager")
-				createDirEntry(entry, i18n("Manager"), "print:/manager", "print/manager");
-			else if (path[0].lower().startsWith("jobs"))
-				createFileEntry(entry, i18n("Jobs"), url.url(), "text/html");
-			else
-				err = true;
-			break;
-		case 2:
-			if (path[0].lower() == "printers")
-				mime = "print/printer";
-			else if (path[0].lower() == "classes")
-				mime = "print/class";
-			else if (path[0].lower() == "specials")
-				mime = "print/printer";
-			else
-				err = true;
-			createFileEntry(entry, path[1], "print:/"+path[0]+"/"+path[1], "text/html");
-			break;
-	}
-
-	if (!err)
-	{
-		statEntry(entry);
-		finished();
-	}
-	else
-		error(KIO::ERR_DOES_NOT_EXIST, url.path());
-}
-
-void KIO_Print::statDB( const KURL& url )
-{
-	PRINT_DEBUG << "statDB: " << url << endl;
-	KIO::UDSEntry entry;
-	TQStringList pathComps = TQStringList::split( '/', url.path(), false );
-	if ( pathComps.size() == 3 )
-		createFileEntry( entry, i18n( "Printer driver" ), url.url(), "print/driver" );
-	else
-		createDirEntry( entry, i18n( "On-line printer driver database" ), url.url(), "inode/directory" );
-	statEntry( entry );
-	finished();
-}
-
-bool KIO_Print::getDBFile( const KURL& src )
-{
-	PRINT_DEBUG << "downloading " << src.url() << endl;
-
-	/* re-initialize the internal buffer */
-	if ( m_httpBuffer.isOpen() )
-		m_httpBuffer.close();
-	m_httpError = 0;
-	m_httpBuffer.open( IO_WriteOnly|IO_Truncate ); // be sure to erase the existing data
-
-	/* start the transfer job */
-	KIO::TransferJob *job = KIO::get( src, false, false );
-	connect( job, TQT_SIGNAL( result( KIO::Job* ) ), TQT_SLOT( slotResult( KIO::Job* ) ) );
-	connect( job, TQT_SIGNAL( data( KIO::Job*, const TQByteArray& ) ), TQT_SLOT( slotData( KIO::Job*, const TQByteArray& ) ) );
-	connect( job, TQT_SIGNAL( totalSize( KIO::Job*, KIO::filesize_t ) ), TQT_SLOT( slotTotalSize( KIO::Job*, KIO::filesize_t ) ) );
-	connect( job, TQT_SIGNAL( processedSize( KIO::Job*, KIO::filesize_t ) ), TQT_SLOT( slotProcessedSize( KIO::Job*, KIO::filesize_t ) ) );
-	kapp->enter_loop();
-	m_httpBuffer.close();
-
-	/* return the result */
-	if ( m_httpError != 0 )
-		error( m_httpError, m_httpErrorTxt );
-	return ( m_httpError == 0 );
-}
-
-void KIO_Print::getDB( const KURL& url )
-{
-	PRINT_DEBUG << "downloading PPD file for " << url.url() << endl;
-
-	TQStringList pathComps = TQStringList::split( '/', url.path(), false );
-	if ( pathComps.size() != 3 )
-		error( KIO::ERR_MALFORMED_URL, url.url() );
-	else
-	{
-		KURL remUrl;
-
-		remUrl.setProtocol( "http" );
-		remUrl.setHost( url.host() );
-		remUrl.setPath( "/ppd-o-matic.cgi" );
-		remUrl.addQueryItem( "driver", pathComps[ 2 ] );
-		remUrl.addQueryItem( "printer", pathComps[ 1 ] );
-
-		if ( getDBFile( remUrl ) )
-		{
-			mimeType( "text/plain" );
-			data( m_httpBuffer.buffer() );
-			finished();
-		}
-		/*
-		 * no "else" statement needed, the error has
-		 * already been emitted by the getDBFile function
-		 */
-	}
-}
-
-void KIO_Print::slotResult( KIO::Job *j )
-{
-	/*
-	 * store slave results for later user (job gets deleted 
-	 * after this function). Store only if no other error
-	 * occured previously (when writing to the buffer).
-	 */
-	if ( m_httpError == 0 )
-	{
-		m_httpError = j->error();
-		m_httpErrorTxt = j->errorText();
-	}
-	kapp->exit_loop();
-}
-
-void KIO_Print::slotData( KIO::Job *j, const TQByteArray& d )
-{
-	PRINT_DEBUG << "HTTP data received (size=" << d.size() << ")" << endl;
-	if ( d.size() > 0 )
-	{
-		int len = m_httpBuffer.writeBlock( d );
-		if ( len == -1 || len != ( int )d.size() )
-		{
-			m_httpError = KIO::ERR_INTERNAL;
-			m_httpErrorTxt = "Unable to write to the internal buffer.";
-			j->kill( false );
-		}
-	}
-}
-
-void KIO_Print::slotTotalSize( KIO::Job*, KIO::filesize_t sz )
-{
-	totalSize( sz );
-}
-
-void KIO_Print::slotProcessedSize( KIO::Job*, KIO::filesize_t sz )
-{
-	processedSize( sz );
-}
-
-void KIO_Print::get(const KURL& url)
-{
-	if ( url.protocol() == "printdb" )
-	{
-		getDB( url );
-		return;
-	}
-
-	TQStringList	elems = TQStringList::split('/', url.encodedPathAndQuery(), false);
-	TQString		group(elems[0].lower()), printer(KURL::decode_string(elems[1])), path, query;
-	KMPrinter	*mprinter(0);
-
-	if (group == "manager")
-	{
-		PRINT_DEBUG << "opening print management part" << endl;
-
-		mimeType("print/manager");
-		finished();
-		return;
-	}
-
-	PRINT_DEBUG << "getting " << url.url() << endl;
-
-	if (group.startsWith("jobs"))
-	{
-		int	p = group.find('?');
-		if (p != -1)
-			query = group.mid(p+1);
-		if (!query.isEmpty() && query != "jobs" && query != "completed_jobs")
-		{
-			error(KIO::ERR_MALFORMED_URL, TQString());
-			return;
-		}
-		PRINT_DEBUG << "listing jobs for all printers" << endl;
-		showJobs(0, query == "completed_jobs");
-		return;
-	}
-
-	int	p = printer.find('?');
-	if (p != -1)
-	{
-		query = printer.mid(p+1);
-		printer = printer.left(p);
-	}
-
-	PRINT_DEBUG << "opening " << url.url() << endl;
-	PRINT_DEBUG << "extracted printer name = " << printer << endl;
-
-	KMManager::self()->printerList(false);
-	mprinter = KMManager::self()->findPrinter(printer);
-	if (!mprinter)
-		path = locateData(printer.isEmpty() ? group : printer);
-
-	if (elems.count() > 2 || (path.isEmpty() && group != "printers" && group != "classes" && group != "specials")
-	    || (mprinter == 0 && path.isEmpty()))
-	{
-		error(KIO::ERR_DOES_NOT_EXIST, url.path());
-		return;
-	}
-
-	if (mprinter != 0)
-	{
-		if (!query.isEmpty() && query != "general")
-		{
-			if (query == "jobs")
-				showJobs(mprinter, false);
-			else if (query == "completed_jobs")
-				showJobs(mprinter, true);
-			else if (query == "driver")
-				showDriver(mprinter);
-			else
-				error(KIO::ERR_MALFORMED_URL, KURL::decode_string(elems[1]));
-		}
-		else if (group == "printers" && mprinter->isPrinter())
-			showPrinterInfo(mprinter);
-		else if (group == "classes" && mprinter->isClass(true))
-			showClassInfo(mprinter);
-		else if (group == "specials" && mprinter->isSpecial())
-			showSpecialInfo(mprinter);
-		else
-			error(KIO::ERR_INTERNAL, i18n("Unable to determine object type for %1.").arg(printer));
-	}
-	else if (!path.isEmpty())
-		showData(path);
-	else
-		error(KIO::ERR_INTERNAL, i18n("Unable to determine source type for %1.").arg(printer));
-}
-
-void KIO_Print::showPrinterInfo(KMPrinter *printer)
-{
-	if (!KMManager::self()->completePrinter(printer))
-		error(KIO::ERR_INTERNAL, i18n("Unable to retrieve printer information for %1.").arg(printer->name()));
-	else
-	{
-		mimeType("text/html");
-
-		TQString	content;
-		if (!loadTemplate(TQString::tqfromLatin1("printer.template"), content))
-		{
-			error(KIO::ERR_INTERNAL, i18n("Unable to load template %1").arg("printer.template"));
-			return;
-		}
-
-		content = content
-				 .arg(i18n("Properties of %1").arg(printer->printerName()))
-				 .arg(i18n("Properties of %1").arg(printer->printerName()))
-				 .arg(buildMenu(TQStringList::split('|', i18n("General|Driver|Active jobs|Completed jobs"), false),
-							 TQStringList::split('|', "?general|?driver|?jobs|?completed_jobs", true),
-							 0))
-				 .arg(TQString())
-				 .arg(printer->pixmap())
-				 .arg(printer->name())
-				 .arg(i18n("General Properties"))
-				 .arg(i18n("Type")).arg(printer->isRemote() ? i18n("Remote") : i18n("Local"))
-				 .arg(i18n("State")).arg(printer->stateString())
-				 .arg(i18n("Location")).arg(printer->location())
-				 .arg(i18n("Description")).arg(printer->description())
-				 .arg(i18n("URI")).arg(printer->uri().prettyURL())
-				 .arg(i18n("Interface (Backend)")).arg(printer->device())
-				 .arg(i18n("Driver"))
-				 .arg(i18n("Manufacturer")).arg(printer->manufacturer())
-				 .arg(i18n("Model")).arg(printer->model())
-				 .arg(i18n("Driver Information")).arg(printer->driverInfo());
-
-		data(content.local8Bit());
-		finished();
-	}
-}
-
-void KIO_Print::showClassInfo(KMPrinter *printer)
-{
-	if (!KMManager::self()->completePrinter(printer))
-		error(KIO::ERR_INTERNAL, i18n("Unable to retrieve class information for %1.").arg(printer->name()));
-	else
-	{
-		mimeType("text/html");
-
-		TQString	content;
-		if (!loadTemplate(TQString::tqfromLatin1("class.template"), content))
-		{
-			error(KIO::ERR_INTERNAL, i18n("Unable to load template %1").arg("class.template"));
-			return;
-		}
-
-		TQString		memberContent("<ul>\n");
-		TQStringList	members(printer->members());
-		for (TQStringList::ConstIterator it=members.begin(); it!=members.end(); ++it)
-		{
-			memberContent.append(TQString::tqfromLatin1("<li><a href=\"print:/printers/%1\">%2</a></li>\n").arg(*it).arg(*it));
-		}
-		memberContent.append("</ul>\n");
-
-		TQString		typeContent = (printer->isImplicit() ? i18n("Implicit") : (printer->isRemote() ? i18n("Remote") : i18n("Local")));
-
-		content = content
-				 .arg(i18n("Properties of %1").arg(printer->printerName()))
-				 .arg(i18n("Properties of %1").arg(printer->printerName()))
-				 .arg(buildMenu(TQStringList::split('|', i18n("General|Active jobs|Completed jobs"), false),
-							 TQStringList::split('|', "?general|?jobs|?completed_jobs", true),
-							 0))
-				 .arg(TQString())
-				 .arg(printer->pixmap())
-				 .arg(printer->name())
-				 .arg(i18n("General Properties"))
-				 .arg(i18n("Type")).arg(typeContent)
-				 .arg(i18n("State")).arg(printer->stateString())
-				 .arg(i18n("Location")).arg(printer->location())
-				 .arg(i18n("Description")).arg(printer->description())
-				 .arg(i18n("URI")).arg(printer->uri().prettyURL())
-				 .arg(i18n("Members")).arg(memberContent);
-
-		data(content.local8Bit());
-		finished();
-	}
-}
-
-void KIO_Print::showSpecialInfo(KMPrinter *printer)
-{
-	mimeType("text/html");
-
-	TQString	content;
-	if (!loadTemplate(TQString::tqfromLatin1("pseudo.template"), content))
-	{
-		error(KIO::ERR_INTERNAL, i18n("Unable to load template %1").arg("pseudo.template"));
-		return;
-	}
-
-	TQString	reqContent("<ul>\n");
-	TQStringList	requirements = TQStringList::split(",", printer->option("kde-special-require"), false);
-	for (TQStringList::ConstIterator it=requirements.begin(); it!=requirements.end(); ++it)
-		reqContent += ("<li>" + (*it) + "</li>\n");
-	reqContent.append("</ul>\n");
-
-	content = content
-			 .arg(i18n("Properties of %1").arg(printer->printerName()))
-			 .arg(i18n("Properties of %1").arg(printer->printerName()))
-			 .arg(buildMenu(TQStringList::split('|', i18n("General"), false),
-						 TQStringList::split('|', "?general", true),
-						 0))
-			 .arg(TQString())
-			 .arg(printer->pixmap())
-			 .arg(printer->name())
-			 .arg(i18n("General Properties"))
-			 .arg(i18n("Location")).arg(printer->location())
-			 .arg(i18n("Description")).arg(printer->description())
-			 .arg(i18n("Requirements")).arg(reqContent)
-			 .arg(i18n("Command Properties"))
-			 .arg(i18n("Command")).arg("<tt>"+printer->option("kde-special-command")+"</tt>")
-			 .arg(i18n("Use Output File")).arg(printer->option("kde-special-file") == "1" ? i18n("Yes") : i18n("No"))
-			 .arg(i18n("Default Extension")).arg(printer->option("kde-special-extension"));
-
-	data(content.local8Bit());
-	finished();
-}
-
-bool KIO_Print::loadTemplate(const TQString& filename, TQString& buffer)
-{
-	TQFile	f(locate("data", TQString::tqfromLatin1("tdeprint/template/")+filename));
-	if (f.exists() && f.open(IO_ReadOnly))
-	{
-		TQTextStream	t(&f);
-		buffer = t.read();
-		return true;
-	}
-	else
-	{
-		buffer = TQString();
-		return false;
-	}
-}
-
-void KIO_Print::showData(const TQString& pathname)
-{
-	PRINT_DEBUG << "sending data: " << pathname << endl;
-	TQFile	f(pathname);
-	if (f.exists() && f.open(IO_ReadOnly))
-	{
-		TQByteArray	arr(f.readAll());
-		mimeType(KMimeType::findByURL(KURL(pathname), 0, true, true)->name());
-		data(arr);
-		finished();
-	}
-	else
-	{
-		PRINT_DEBUG << "file not found" << endl;
-		error(KIO::ERR_DOES_NOT_EXIST, pathname);
-	}
-}
-
-/**
- * Locate a data in this order:
- *	- $KDEDIR/share/apps/tdeprint/template/
- *	- as a desktop icon
- */
-TQString KIO_Print::locateData(const TQString& item)
-{
-	TQString	path = locate("data", "tdeprint/template/"+item);
-	if (path.isEmpty())
-		path = KGlobal::iconLoader()->iconPath(item, KIcon::Desktop, true);
-	return path;
-}
-
-void KIO_Print::showJobs(KMPrinter *prt, bool completed)
-{
-	mimeType("text/html");
-
-	// Add the printer to the current list in the job manager
-	KMJobManager::JobType	type = (completed ? KMJobManager::CompletedJobs : KMJobManager::ActiveJobs);
-	KMJobManager	*mgr = KMJobManager::self();
-	if (prt)
-		mgr->addPrinter(prt->printerName(), type);
-	else
-	{
-		TQPtrListIterator<KMPrinter>	pit(*(KMManager::self()->printerList()));
-		for (; pit.current(); ++pit)
-			if (pit.current()->isVirtual() || pit.current()->isSpecial())
-				continue;
-			else
-				mgr->addPrinter(pit.current()->printerName(), type);
-	}
-
-	TQString	content;
-	if (!loadTemplate(TQString::tqfromLatin1("jobs.template"), content))
-	{
-		error(KIO::ERR_INTERNAL, i18n("Unable to load template %1").arg("pseudo.template"));
-		return;
-	}
-
-	if (prt)
-	{
-		content = content
-				 .arg(i18n("Jobs of %1").arg(prt->printerName()))
-				 .arg(i18n("Jobs of %1").arg(prt->printerName()))
-				 .arg(prt->isClass () ?
-						 buildMenu(TQStringList::split('|', i18n("General|Active jobs|Completed jobs"), false),
-							 TQStringList::split('|', "?general|?jobs|?completed_jobs", true),
-							 (completed ? 2 : 1)) :
-						 buildMenu(TQStringList::split('|', i18n("General|Driver|Active jobs|Completed jobs"), false),
-							 TQStringList::split('|', "?general|?driver|?jobs|?completed_jobs", true),
-							 (completed ? 3 : 2)))
-				 .arg(TQString())
-				 .arg(prt->pixmap())
-				 .arg(prt->printerName());
-	}
-	else
-	{
-		content = content
-				 .arg(i18n("All jobs"))
-				 .arg(buildMenu(TQStringList::split('|', i18n("Active jobs|Completed jobs"), false),
-							 TQStringList::split('|', "?jobs|?completed_jobs", true),
-							 (completed ? 1 : 0)))
-				 .arg("fileprint")
-				 .arg(i18n("All jobs"));
-	}
-	content = content.arg(i18n("ID")).arg(i18n("Owner")).arg(i18n("Printer")).arg(i18n("Name")).arg(i18n("State"));
-
-	TQString	jobContent, cellContent("<td>%1</td>\n");
-	TQPtrListIterator<KMJob>	it(mgr->jobList());
-	bool	flag(true);
-	for (; it.current(); ++it, flag = !flag)
-	{
-		jobContent.append("<tr class=\"").append(flag ? "contentyellow" : "contentwhite").append("\">\n");
-		jobContent.append(cellContent.arg(it.current()->id()));
-		jobContent.append(cellContent.arg(it.current()->owner()));
-		jobContent.append(cellContent.arg(it.current()->printer()));
-		jobContent.append(cellContent.arg(it.current()->name()));
-		jobContent.append(cellContent.arg(it.current()->stateString()));
-		jobContent.append("</tr>\n");
-	}
-	content = content.arg(jobContent);
-
-	// remove the current printer to the current list in the job manager
-	if (prt)
-		mgr->removePrinter(prt->printerName(), type);
-	else
-	{
-		TQPtrListIterator<KMPrinter>	pit(*(KMManager::self()->printerList()));
-		for (; pit.current(); ++pit)
-			if (pit.current()->isVirtual() || pit.current()->isSpecial())
-				continue;
-			else
-				mgr->removePrinter(pit.current()->printerName(), type);
-	}
-
-	data(content.local8Bit());
-	finished();
-}
-
-void KIO_Print::showDriver(KMPrinter *prt)
-{
-	mimeType("text/html");
-
-	TQString	content;
-	if (!loadTemplate(TQString::tqfromLatin1("driver.template"), content))
-	{
-		error(KIO::ERR_INTERNAL, i18n("Unable to load template %1").arg("pseudo.template"));
-		return;
-	}
-
-	DrMain	*driver = KMManager::self()->loadPrinterDriver(prt, true);
-	content = content
-			 .arg(i18n("Driver of %1").arg(prt->printerName()))
-			 .arg(i18n("Driver of %1").arg(prt->printerName()))
-			 .arg(buildMenu(TQStringList::split('|', i18n("General|Driver|Active jobs|Completed jobs"), false),
-						 TQStringList::split('|', "?general|?driver|?jobs|?completed_jobs", true),
-						 1))
-			 .arg(TQString())
-			 .arg(prt->pixmap())
-			 .arg(prt->printerName() + "&nbsp;(" + (driver ? driver->get("text") : i18n("No driver found")) + ")");
-
-	if (driver)
-		content = content.arg(buildGroupTable(driver, false));
-	else
-		content = content.arg(TQString());
-
-	data(content.local8Bit());
-	finished();
-}
-
-#include "kio_print.moc"
diff --git a/kdeprint/slave/kio_print.h b/kdeprint/slave/kio_print.h
deleted file mode 100644
index 954a3045f..000000000
--- a/kdeprint/slave/kio_print.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- *  This file is part of the KDE libraries
- *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Library General Public
- *  License version 2 as published by the Free Software Foundation.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Library General Public License for more details.
- *
- *  You should have received a copy of the GNU Library General Public License
- *  along with this library; see the file COPYING.LIB.  If not, write to
- *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- *  Boston, MA 02110-1301, USA.
- **/
-
-#ifndef KIO_PRINT_H
-#define KIO_PRINT_H
-
-#include <kio/slavebase.h>
-#include <kio/global.h>
-#include <tqstring.h>
-#include <tqbuffer.h>
-
-class KMPrinter;
-namespace KIO {
-	class Job;
-}
-
-class KIO_Print : public TQObject, public KIO::SlaveBase
-{
-	Q_OBJECT
-public:
-	KIO_Print(const TQCString& pool, const TQCString& app);
-
-	void listDir(const KURL& url);
-	void get(const KURL& url);
-	void stat(const KURL& url);
-
-protected slots:
-	void slotResult( KIO::Job* );
-	void slotData( KIO::Job*, const TQByteArray& );
-	void slotTotalSize( KIO::Job*, KIO::filesize_t );
-	void slotProcessedSize( KIO::Job*, KIO::filesize_t );
-
-private:
-	void listRoot();
-	void listDirDB( const KURL& );
-	void statDB( const KURL& );
-	bool getDBFile( const KURL& );
-	void getDB( const KURL& );
-	void showClassInfo(KMPrinter*);
-	void showPrinterInfo(KMPrinter*);
-	void showSpecialInfo(KMPrinter*);
-	void showData(const TQString&);
-	TQString locateData(const TQString&);
-	void showJobs(KMPrinter *p = 0, bool completed = false);
-	void showDriver(KMPrinter*);
-
-	bool loadTemplate(const TQString& filename, TQString& buffer);
-
-	TQBuffer m_httpBuffer;
-	int     m_httpError;
-	TQString m_httpErrorTxt;
-};
-
-#endif
diff --git a/kdeprint/slave/mimetypes/CMakeLists.txt b/kdeprint/slave/mimetypes/CMakeLists.txt
deleted file mode 100644
index 02d289c15..000000000
--- a/kdeprint/slave/mimetypes/CMakeLists.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-install( FILES
-    folder.desktop printer.desktop class.desktop
-    manager.desktop jobs.desktop driver.desktop
-    printermodel.desktop
-  DESTINATION ${MIME_INSTALL_DIR}/print )
diff --git a/kdeprint/slave/mimetypes/Makefile.am b/kdeprint/slave/mimetypes/Makefile.am
deleted file mode 100644
index 9992389fe..000000000
--- a/kdeprint/slave/mimetypes/Makefile.am
+++ /dev/null
@@ -1,3 +0,0 @@
-mimetype_DATA = folder.desktop printer.desktop class.desktop manager.desktop jobs.desktop \
-				driver.desktop printermodel.desktop
-mimetypedir = $(kde_mimedir)/print
diff --git a/kdeprint/slave/mimetypes/class.desktop b/kdeprint/slave/mimetypes/class.desktop
deleted file mode 100644
index f73b3262d..000000000
--- a/kdeprint/slave/mimetypes/class.desktop
+++ /dev/null
@@ -1,75 +0,0 @@
-[Desktop Entry]
-Comment=Class of Printers
-Comment[af]=Klas van Drukkers
-Comment[ar]=فئة الطابعات
-Comment[be]=Клас друкарак
-Comment[bg]=Клас принтери
-Comment[bn]=প্রিন্টার-এর ক্লাস (Class)
-Comment[bs]=Klasa štampača
-Comment[ca]=Classes d'impressores
-Comment[cs]=Třída tiskáren
-Comment[csb]=Klasë drëkerów
-Comment[da]=Klasse af printere
-Comment[de]=Druckerklasse
-Comment[el]=Κλάση εκτυπωτών
-Comment[eo]=Printiloklaso
-Comment[es]=Clase de impresoras
-Comment[et]=Printerite klass
-Comment[eu]=Inprimagailu klasea
-Comment[fa]=ردۀ چاپگرها
-Comment[fi]=Tulostinten luokka
-Comment[fr]=Classe d'imprimantes
-Comment[fy]=Printerklassen
-Comment[ga]=Aicme Printéirí
-Comment[gl]=Clase de impresoras
-Comment[he]=מחלקת מדפסות
-Comment[hi]=प्रिंटर के वर्ग
-Comment[hr]=Klase pisača
-Comment[hu]=Nyomtatóosztály
-Comment[is]=Flokkur prentara
-Comment[it]=Classe di stampanti
-Comment[ja]=プリンタクラス
-Comment[ka]=პრინტერთა კლასი
-Comment[kk]=Принтерлер класы
-Comment[km]=សន្ដាន​ម៉ាស៊ីន​បោះពុម្ព
-Comment[lt]=Spausdintuvų klasė
-Comment[lv]=Drukas iekārtu klase
-Comment[mk]=Класа на печатачи
-Comment[ms]=Kelas Pencetak
-Comment[mt]=Klassi ta' printers
-Comment[nb]=Skriverklasse
-Comment[nds]=Klass vun Druckers
-Comment[ne]=मुद्रकको वर्ग
-Comment[nl]=Printerklassen
-Comment[nn]=Skrivarklasse
-Comment[pa]=ਪਰਿੰਟਰਾਂ ਦਾ ਵਰਗ
-Comment[pl]=Klasa drukarek
-Comment[pt]=Classe de Impressoras
-Comment[pt_BR]=Classes de Impressoras
-Comment[ro]=Clase de imprimante
-Comment[ru]=Класс принтеров
-Comment[rw]=Urwego rwa Mucapyi
-Comment[se]=Čálánluohkát
-Comment[sk]=Trieda tlačiarní
-Comment[sl]=Razred tiskalnikov
-Comment[sr]=Класе штампача
-Comment[sr@Latn]=Klase štampača
-Comment[sv]=Klass av skrivare
-Comment[ta]=அச்சியந்திரங்களின் வகை
-Comment[tg]=Дараҷаи чопгарҳо
-Comment[th]=คลาสของเครื่องพิมพ์
-Comment[tr]=Yazıcı Sınıfı
-Comment[tt]=Basaqlar Törläre
-Comment[uk]=Клас принтерів
-Comment[uz]=Printerlar sinfi
-Comment[uz@cyrillic]=Принтерлар синфи
-Comment[vi]=Lớp Máy in
-Comment[wa]=Classe des scrireces
-Comment[zh_CN]=打印机类
-Comment[zh_TW]=印表機類別
-Icon=print_class
-Type=MimeType
-MimeType=print/class
-Patterns=
-
-X-KDE-AutoEmbed=true
diff --git a/kdeprint/slave/mimetypes/driver.desktop b/kdeprint/slave/mimetypes/driver.desktop
deleted file mode 100644
index 36cd08288..000000000
--- a/kdeprint/slave/mimetypes/driver.desktop
+++ /dev/null
@@ -1,76 +0,0 @@
-[Desktop Entry]
-Comment=Printer Driver
-Comment[af]=Drukker Aandrywer
-Comment[ar]=سائق الطابعة
-Comment[be]=Драйвер друкаркі
-Comment[bg]=Драйвер за принтер
-Comment[bn]=প্রিন্টার ড্রাইভার
-Comment[br]=Sturier ar voullerez
-Comment[bs]=Drajver štampača
-Comment[ca]=Control·lador d'impressora
-Comment[cs]=Ovladač tiskárny
-Comment[csb]=Czérownik drëkera
-Comment[da]=Printerdriver
-Comment[de]=Druckertreiber
-Comment[el]=Οδηγός εκτυπωτή
-Comment[eo]=Printila pelilo
-Comment[es]=Controlador de impresora
-Comment[et]=Printeri draiver
-Comment[eu]=Inprimagailuaren driverra
-Comment[fa]=گردانندۀ چاپگر
-Comment[fi]=Tulostinajuri
-Comment[fr]=Pilote d'imprimante
-Comment[fy]=Printerstjoerprogramma
-Comment[ga]=Tiománaí Printéara
-Comment[gl]=Controlador da Impresora
-Comment[he]=מנהל התקן המדפסת
-Comment[hi]=प्रिंटर ड्राइवर
-Comment[hr]=Upravljački program pisača
-Comment[hu]=Nyomtatómeghajtó
-Comment[is]=Prentrekill
-Comment[it]=Driver stampante
-Comment[ja]=プリンタドライバ
-Comment[ka]=პრინტერის დრაივერი
-Comment[kk]=Принтердің драйвері
-Comment[km]=កម្មវិធី​បញ្ជា​ម៉ាស៊ីន​បោះពុម្ព
-Comment[lt]=Spausdintuvo tvarkyklė
-Comment[lv]=Printera draiveris
-Comment[mk]=Управувач за печатач
-Comment[ms]=Pemacu Pencetak
-Comment[mt]=Driver tal-printer
-Comment[nb]=Skriverdriver
-Comment[nds]=Druckerdriever
-Comment[ne]=मुद्रक यन्त्र
-Comment[nl]=Printerstuurprogramma
-Comment[nn]=Skrivardrivar
-Comment[pa]=ਪਰਿੰਟਰ ਡਰਾਇਵਰ
-Comment[pl]=Sterownik drukarki
-Comment[pt]=Controlador de Impressora
-Comment[pt_BR]=Driver da Impressora
-Comment[ro]=Driver de imprimantă
-Comment[ru]=Драйвер принтера
-Comment[rw]=Musomyi ya Mucapyi
-Comment[se]=Čálánstivrran
-Comment[sk]=Ovládač tlačiarne
-Comment[sl]=Tiskalniški gonilnik
-Comment[sr]=Управљачки програм за штампач
-Comment[sr@Latn]=Upravljački program za štampač
-Comment[sv]=Skrivardrivrutin
-Comment[ta]=அச்சியந்திர இயக்கி
-Comment[tg]=Драйвери чопгар
-Comment[th]=ไดรเวอร์เครื่องพิมพ์
-Comment[tr]=Yazıcı Sürücüsü
-Comment[tt]=Basaq öçen Driver
-Comment[uk]=Драйвер принтера
-Comment[uz]=Printerning drayveri
-Comment[uz@cyrillic]=Принтернинг драйвери
-Comment[vi]=Trình điều khiển Máy in
-Comment[wa]=Moenneu di scrirece
-Comment[zh_CN]=打印机驱动程序
-Comment[zh_TW]=印表機驅動程式
-Icon=postscript
-Type=MimeType
-MimeType=print/driver
-Patterns=
-
-X-KDE-AutoEmbed=true
diff --git a/kdeprint/slave/mimetypes/folder.desktop b/kdeprint/slave/mimetypes/folder.desktop
deleted file mode 100644
index 312c863a3..000000000
--- a/kdeprint/slave/mimetypes/folder.desktop
+++ /dev/null
@@ -1,76 +0,0 @@
-[Desktop Entry]
-Comment=Print Folder
-Comment[af]=Drukker Gids
-Comment[ar]=مجلد الطباعة
-Comment[be]=Тэчка друку
-Comment[bg]=Директория на печата
-Comment[bn]=মুদ্রণ ফোল্ডার
-Comment[br]=Renkell moulañ
-Comment[bs]=Direktorij za štampu
-Comment[ca]=Carpeta d'impressió
-Comment[cs]=Složka tisku
-Comment[csb]=Katalog drëkòwaniô
-Comment[cy]=Dogfen argraffu
-Comment[da]=Udskriftsmappe
-Comment[de]=Druckordner
-Comment[el]=Φάκελος εκτυπώσεων
-Comment[eo]=Printa dosierujo
-Comment[es]=Carpeta de impresión
-Comment[et]=Trükkimise kataloog
-Comment[eu]=Inprimaketa karpeta
-Comment[fa]=پوشۀ چاپ
-Comment[fi]=Tulostuskansio
-Comment[fr]=Dossier d'impression
-Comment[fy]=printmap
-Comment[ga]=Fillteán Priontála
-Comment[gl]=Cartafol de Impresión
-Comment[he]=תיקיית הדפסה
-Comment[hr]=Mapa pisača
-Comment[hu]=Nyomtatáskezelő-mappa
-Comment[is]=Prentmappa
-Comment[it]=Cartella di stampa
-Comment[ja]=印刷フォルダ
-Comment[ka]=საბეჭდი საქაღალდე
-Comment[kk]=Басып шығару қапшығы
-Comment[km]=ថត​បោះពុម្ព
-Comment[ko]=홈 폴더
-Comment[lt]=Spausdinimo aplankas
-Comment[mk]=Папка за печатење
-Comment[ms]=Cetak Folder
-Comment[nb]=Skrivermappe
-Comment[nds]=Druckorner
-Comment[ne]=मुद्रण फोल्डर
-Comment[nl]=Afdrukmap
-Comment[nn]=Skrivarmappe
-Comment[pa]=ਛਪਾਈ ਫੋਲਡਰ
-Comment[pl]=Folder drukowania
-Comment[pt]=Pasta de Impressão
-Comment[pt_BR]=Pasta de Impressão
-Comment[ro]=Folder de tipărire
-Comment[ru]=Папка печати
-Comment[rw]=Gucapa Ububiko
-Comment[se]=Čálihanmáhppa
-Comment[sk]=Priečinok tlače
-Comment[sl]=Tiskalniška mapa
-Comment[sr]=Фасцикла за штампање
-Comment[sr@Latn]=Fascikla za štampanje
-Comment[sv]=Skrivarkatalog
-Comment[ta]=அச்சிடும் அடைவு
-Comment[tg]=Феҳристи чоп
-Comment[th]=โฟลเดอร์งานพิมพ์
-Comment[tr]=Yazdırma dizinidizini
-Comment[tt]=Bastıru Törgäge
-Comment[uk]=Тека друку
-Comment[uz]=Bosib chiqarish jildi
-Comment[uz@cyrillic]=Босиб чиқариш жилди
-Comment[vi]=Thư mục In ấn
-Comment[wa]=Ridant d' imprimaedje
-Comment[zh_CN]=打印文件夹
-Comment[zh_TW]=列印資料夾
-Icon=folder_print
-Type=MimeType
-MimeType=print/folder
-Patterns=
-
-X-KDE-AutoEmbed=true
-X-KDE-IsAlso=inode/directory
diff --git a/kdeprint/slave/mimetypes/jobs.desktop b/kdeprint/slave/mimetypes/jobs.desktop
deleted file mode 100644
index 5a92ceaa5..000000000
--- a/kdeprint/slave/mimetypes/jobs.desktop
+++ /dev/null
@@ -1,85 +0,0 @@
-[Desktop Entry]
-Comment=Print Jobs
-Comment[af]=Drukker Werke
-Comment[ar]=مهمات الطباعة
-Comment[be]=Заданні друку
-Comment[bg]=Задания за печат
-Comment[bn]=মুদ্রণ তালিকা
-Comment[bs]=Zadaci štampe
-Comment[ca]=Tasques d'impressió
-Comment[cs]=Tiskové úlohy
-Comment[csb]=Pòlétë drëkòwaniô
-Comment[cy]=Swyddi Argraffu
-Comment[da]=Udskriftsjob
-Comment[de]=Druckaufträge
-Comment[el]=Εργασίες εκτύπωσης
-Comment[eo]=Printaj taskoj
-Comment[es]=Trabajos de impresión
-Comment[et]=Trükitööd
-Comment[eu]=Inprimatze lanak
-Comment[fa]=چاپ کارها
-Comment[fi]=Tulostustyöt
-Comment[fr]=Tâches d'impression
-Comment[fy]=Printtaken
-Comment[ga]=Jabanna Priontála
-Comment[gl]=Traballos de Impresión
-Comment[he]=עבודות הדפסה
-Comment[hi]=प्रिंट कार्य
-Comment[hr]=Zadaci ispisivanja
-Comment[hu]=Nyomtatási feladatok
-Comment[is]=Prentverk
-Comment[it]=Lavori di stampa
-Comment[ja]=印刷ジョブ
-Comment[ka]=ბეჭდვის დავალებები
-Comment[kk]=Басу тапсырмалары
-Comment[km]=ការងារ​បោះពុម្ព
-Comment[lo]=ໂຟນເດີງານພິມ
-Comment[lt]=Spausdinimo užduotys
-Comment[lv]=Drukas darbi
-Comment[mk]=Печатарски задачи
-Comment[mn]=Хэвлэх даалгавар
-Comment[ms]=Cetak Kerja
-Comment[mt]=Xogħlijiet ta' pprintjar
-Comment[nb]=Skriverjobber
-Comment[nds]=Druckopgaven
-Comment[ne]=मुद्रण कार्य
-Comment[nl]=Afdruktaken
-Comment[nn]=Utskriftsjobbar
-Comment[nso]=Mesomo ya Kgatiso
-Comment[pa]=ਪਰਿੰਟ ਕੰਮ
-Comment[pl]=Zadania drukowania
-Comment[pt]=Tarefas de Impressão
-Comment[pt_BR]=Imprimir trabalhos
-Comment[ro]=Lucrări de tipărit
-Comment[ru]=Задания печати
-Comment[rw]=Gucapa Imirimo
-Comment[se]=Čálihanbarggut
-Comment[sk]=Tlačové úlohy
-Comment[sl]=Tiskalna opravila
-Comment[sr]=Послови штампе
-Comment[sr@Latn]=Poslovi štampe
-Comment[sv]=Skrivarjobb
-Comment[ta]=அச்சு வேலைகள்
-Comment[te]=ప్రచురణ పనులు
-Comment[tg]=Чопҳо
-Comment[th]=งานพิมพ์
-Comment[tr]=Yazdırma işleri
-Comment[tt]=Bastıru Eşläre
-Comment[uk]=Завдання друку
-Comment[uz]=Bosib chiqarish vazifalari
-Comment[uz@cyrillic]=Босиб чиқариш вазифалари
-Comment[ven]=Mishumo yau phirintha
-Comment[vi]=Tác vụ In ấn
-Comment[wa]=Bouyes d' imprimaedje
-Comment[xh]=Imisebenzi Yoshicilelo
-Comment[zh_CN]=打印任务
-Comment[zh_TW]=列印工作
-Comment[zu]=Imisebenzi Yokushicilela
-Icon=fileprint
-Type=MimeType
-MimeType=print/jobs
-Patterns=
-
-X-KDE-AutoEmbed=true
-X-KDE-IsAlso=inode/directory
-
diff --git a/kdeprint/slave/mimetypes/manager.desktop b/kdeprint/slave/mimetypes/manager.desktop
deleted file mode 100644
index 7b8cd0671..000000000
--- a/kdeprint/slave/mimetypes/manager.desktop
+++ /dev/null
@@ -1,87 +0,0 @@
-[Desktop Entry]
-Comment=Print Management Tool
-Comment[af]=Drukker Bestuur Program
-Comment[ar]=أداة إدارة الطباعة
-Comment[az]=Çap Edici İdarə Vasitəsi
-Comment[be]=Кіраўнік друку
-Comment[bg]=Програма за управление на печата
-Comment[bn]=মুদ্রণ ম্যানেজমেন্ট টুল
-Comment[br]=Ostilh mererezh moulañ
-Comment[bs]=Alat za upravljanje štampanjem
-Comment[ca]=Eina per a la gestió de la impressió
-Comment[cs]=Nástroj pro správu tiskáren
-Comment[csb]=Sprôwianié wëdrëkama
-Comment[cy]=Erfyn rheoli argraffu
-Comment[da]=Udskriftshåndteringsværktøj
-Comment[de]=Dienstprogramm zur Druckerverwaltung
-Comment[el]=Εργαλείο διαχείρισης εκτυπώσεων
-Comment[eo]=Administrilo por printado
-Comment[es]=Herramienta de gestión de la impresión
-Comment[et]=Trükkimise haldur
-Comment[eu]=Inprimaketak kudeatzeko tresna
-Comment[fa]=ابزار مدیریت چاپ
-Comment[fi]=Tulostuksenhallinta
-Comment[fr]=Gestionnaire d'impression
-Comment[fy]=Helpprogramma foar printerbehear
-Comment[ga]=Uirlis Bhainisteoireacht Priontála
-Comment[gl]=Ferramenta de Xestión das Impresións
-Comment[he]=כלי ניהול הדפסה
-Comment[hi]=छापा प्रबंधन औज़ार
-Comment[hr]=Alat za upravljanje ispisivanjem
-Comment[hu]=Nyomtatáskezelő segédprogram
-Comment[is]=Prentunartól
-Comment[it]=Strumento per la gestione della stampa
-Comment[ja]=印刷マネージメントツール
-Comment[ka]=ბეჭდვის მართვის ხელსაწყო
-Comment[kk]=Басып шығаруды басқару құралы
-Comment[km]=ឧបករណ៍​គ្រប់គ្រង​ការ​បោះពុម្ព
-Comment[ko]=휴대폰 관리 도구
-Comment[lo]=ເຄື່ອງມືຈັດການການພິມ
-Comment[lt]=Spausdinimo valdymo įrankis
-Comment[lv]=Drukas Menedžmenta Rīks
-Comment[mk]=Алатка за менаџмент на печатење
-Comment[mn]=Хэвлэгчийн удирдлагын програм
-Comment[ms]=Cetak Alat Pengurusan
-Comment[mt]=Għodda għall-immaniġġjar tal-ipprintjar
-Comment[nb]=Verktøy for skriverbehandling
-Comment[nds]=Druckpleeg-Warktüüch
-Comment[ne]=मुद्रण प्रबन्धक उपकरण
-Comment[nl]=Hulpprogramma voor printerbeheer
-Comment[nn]=Verktøy for utskriftshandsaming
-Comment[nso]=Sebereka sa Taolo ya Kgatiso
-Comment[pa]=ਪਰਿੰਟ ਪਰਬੰਧਨ ਸੰਦ
-Comment[pl]=Zarządzanie wydrukiem
-Comment[pt]=Ferramenta de gestão de impressão
-Comment[pt_BR]=Ferramenta de Gerenciamento de Impressão
-Comment[ro]=Utilitar de administrare a tipăririi
-Comment[ru]=Утилита управления печатью
-Comment[rw]=Igikoresho Ubuyobozi Gucapa 
-Comment[se]=Reaiddut čáliheami várás
-Comment[sk]=Nástroj na správu tlače
-Comment[sl]=Orodje za upravljanje tiskanja
-Comment[sr]=Алат за управљање штампом
-Comment[sr@Latn]=Alat za upravljanje štampom
-Comment[sv]=Verktyg för att hantera utskrifter
-Comment[ta]=அச்சு மேலாண்மை கருவி
-Comment[tg]=Обзори мудирияти чоп
-Comment[th]=เครื่องมือจัดการการพิมพ์
-Comment[tr]=Yazdırma Yönetim Aracı
-Comment[tt]=Bastıru İdäneñ Qoralı
-Comment[uk]=Засіб керування друком
-Comment[uz]=Bosib chiqarishni boshqarish vositasi
-Comment[uz@cyrillic]=Босиб чиқаришни бошқариш воситаси
-Comment[ven]=Tshishumiswa tsha vhulanguli hau phirintha
-Comment[vi]=Công cụ Quản lí In ấn
-Comment[wa]=Usteye po manaedjî l' imprimaedje
-Comment[xh]=Isixhobo Sophatho Sokushicilela
-Comment[zh_CN]=打印管理工具
-Comment[zh_TW]=列印管理工具
-Comment[zu]=Ithuluzi Lokuphatha Ushicilelo
-Icon=wizard
-Type=MimeType
-MimeType=print/manager
-Patterns=
-
-X-KDE-AutoEmbed=true
-X-KDE-IsAlso=inode/directory
-
diff --git a/kdeprint/slave/mimetypes/printer.desktop b/kdeprint/slave/mimetypes/printer.desktop
deleted file mode 100644
index 905a08d34..000000000
--- a/kdeprint/slave/mimetypes/printer.desktop
+++ /dev/null
@@ -1,79 +0,0 @@
-[Desktop Entry]
-Comment=Printer
-Comment[af]=Drukker
-Comment[ar]=الطابعة
-Comment[az]=Çap Edici
-Comment[be]=Друкарка
-Comment[bg]=Принтер
-Comment[bn]=প্রিন্টার
-Comment[br]=Moulañ
-Comment[bs]=Štampač
-Comment[ca]=Impressora
-Comment[cs]=Tiskárna
-Comment[csb]=Drëker
-Comment[cy]=Argraffydd
-Comment[de]=Drucker
-Comment[el]=Εκτυπωτής
-Comment[eo]=Printilo
-Comment[es]=Impresora
-Comment[eu]=Inprimagailua
-Comment[fa]=چاپگر
-Comment[fi]=Tulostin
-Comment[fr]=Imprimante
-Comment[ga]=Printéir
-Comment[gl]=Impresora
-Comment[he]=מדפסת
-Comment[hi]=प्रिंटर
-Comment[hr]=Pisač
-Comment[hu]=Nyomtató
-Comment[is]=Prentari
-Comment[it]=Stampante
-Comment[ja]=プリンタ
-Comment[ka]=პრინტერი
-Comment[kk]=Принтер
-Comment[km]=ម៉ាស៊ីន​បោះពុម្ព
-Comment[lo]=ເຄື່ອງພິມ
-Comment[lt]=Spausdintuvas
-Comment[lv]=Drukas Iekārta
-Comment[mk]=Печатач
-Comment[mn]=Хэвлэгч
-Comment[ms]=Pencetak
-Comment[nb]=Skriver
-Comment[nds]=Drucker
-Comment[ne]=मुद्रक
-Comment[nn]=Skrivar
-Comment[nso]=Segatisi
-Comment[pa]=ਪਰਿੰਟਰ
-Comment[pl]=Drukarka
-Comment[pt]=Impressora
-Comment[pt_BR]=Impressora
-Comment[ro]=Imprimantă
-Comment[ru]=Принтер
-Comment[rw]=Mucapyi
-Comment[se]=Čálán
-Comment[sk]=Tlačiareň
-Comment[sl]=Tiskalnik
-Comment[sr]=Штампач
-Comment[sr@Latn]=Štampač
-Comment[sv]=Skrivare
-Comment[ta]=அச்சியந்திரம்
-Comment[te]=ప్రింటర్
-Comment[tg]=Чопгар
-Comment[th]=เครื่องพิมพ์
-Comment[tr]=Yazıcı
-Comment[tt]=Basaq
-Comment[uk]=Принтер
-Comment[uz@cyrillic]=Принтер
-Comment[ven]=phirinthara
-Comment[vi]=Máy in
-Comment[wa]=Sicrirece
-Comment[xh]=Umshicileli
-Comment[zh_CN]=打印机
-Comment[zh_TW]=印表機
-Comment[zu]=Umshicileli
-Icon=printer1
-Type=MimeType
-MimeType=print/printer
-Patterns=
-
-X-KDE-AutoEmbed=true
diff --git a/kdeprint/slave/mimetypes/printermodel.desktop b/kdeprint/slave/mimetypes/printermodel.desktop
deleted file mode 100644
index f6a471e41..000000000
--- a/kdeprint/slave/mimetypes/printermodel.desktop
+++ /dev/null
@@ -1,78 +0,0 @@
-[Desktop Entry]
-Comment=Printer Model
-Comment[af]=Drukker Model
-Comment[ar]=طراز الطابعة
-Comment[be]=Мадэль друкаркі
-Comment[bg]=Модел принтер
-Comment[bn]=প্রিন্টার মডেল
-Comment[br]=Gobari ar voullerez
-Comment[bs]=Model štampača
-Comment[ca]=Model d'impressora
-Comment[cs]=Model tiskárny
-Comment[csb]=Ôrt drëkera
-Comment[cy]=Model Argraffydd
-Comment[da]=Printermodel
-Comment[de]=Druckermodell
-Comment[el]=Μοντέλο εκτυπωτή
-Comment[eo]=Printila modelo
-Comment[es]=Modelo de impresora
-Comment[et]=Printeri mudel
-Comment[eu]=Inprimagailuaren modeloa
-Comment[fa]=مدل چاپگر
-Comment[fi]=Tulostinmalli
-Comment[fr]=Modèle d'imprimante
-Comment[fy]=Printermodel
-Comment[ga]=Déanamh an Phrintéara
-Comment[gl]=Modelo da Impresora
-Comment[he]=דגם המדפסת
-Comment[hi]=प्रिंटर मॉडल
-Comment[hr]=Model pisača
-Comment[hu]=Nyomtatótípus
-Comment[is]=Prentaragerð
-Comment[it]=Modello stampante
-Comment[ja]=プリンタモデル
-Comment[ka]=პრინტერის მოდელი
-Comment[kk]=Принтер үлгісі
-Comment[km]=ម៉ូដែលម៉ាស៊ីន​បោះពុម្ព
-Comment[ko]=제어판 모듈
-Comment[lt]=Spausdintuvo modelis
-Comment[lv]=Drukas Iekārtas modelis
-Comment[mk]=Модел на печатач
-Comment[ms]=Model Pencetak
-Comment[mt]=Mudell tal-printer
-Comment[nb]=Skrivermodell
-Comment[nds]=Druckermodell
-Comment[ne]=मुद्रक नमूना
-Comment[nl]=Printermodel
-Comment[nn]=Skrivarmodell
-Comment[pa]=ਪਰਿੰਟਰ ਮਾਡਲ
-Comment[pl]=Model drukarki
-Comment[pt]=Modelo de Impressora
-Comment[pt_BR]=Modelo de Impressora
-Comment[ro]=Model de imprimantă
-Comment[ru]=Модель принтера
-Comment[rw]=Moderi Mucapyi
-Comment[se]=Čálánmálle
-Comment[sk]=Model tlačiarne
-Comment[sl]=Model tiskalnika
-Comment[sr]=Модел штампача
-Comment[sr@Latn]=Model štampača
-Comment[sv]=Skrivarmodell
-Comment[ta]=அச்சியந்திர மாதிரி
-Comment[tg]=Намунаи чопгар
-Comment[th]=รุ่นของเครื่องพิมพ์
-Comment[tr]=Yazıcı Modeli
-Comment[tt]=Basaq Töre
-Comment[uk]=Модель принтера
-Comment[uz]=Printerning modeli
-Comment[uz@cyrillic]=Принтернинг модели
-Comment[vi]=Loại Máy in
-Comment[wa]=Modele del sicrirece
-Comment[zh_CN]=打印机型号
-Comment[zh_TW]=印表機型號
-Icon=printer1
-Type=MimeType
-MimeType=print/printermodel
-Patterns=
-
-X-KDE-AutoEmbed=true
diff --git a/kdeprint/slave/pics/.gitignore b/kdeprint/slave/pics/.gitignore
deleted file mode 100644
index e69de29bb..000000000
diff --git a/kdeprint/slave/print.protocol b/kdeprint/slave/print.protocol
deleted file mode 100644
index 38989160b..000000000
--- a/kdeprint/slave/print.protocol
+++ /dev/null
@@ -1,15 +0,0 @@
-[Protocol]
-exec=kio_print
-protocol=print
-input=none
-output=filesystem
-listing=Name,Type,Access
-reading=true
-writing=false
-makedir=false
-deleting=false
-moving=false
-linking=false
-Icon=postscript
-DocPath=kioslave/print.html
-defaultMimetype=application/octet-stream
diff --git a/kdeprint/slave/printdb.protocol b/kdeprint/slave/printdb.protocol
deleted file mode 100644
index 539edd596..000000000
--- a/kdeprint/slave/printdb.protocol
+++ /dev/null
@@ -1,14 +0,0 @@
-[Protocol]
-exec=kio_print
-protocol=printdb
-input=none
-output=filesystem
-listing=Name,Type,Access
-reading=true
-writing=false
-makedir=false
-deleting=false
-moving=false
-linking=false
-Icon=postscript
-defaultMimetype=application/octet-stream
diff --git a/kdeprint/slave/templates/CMakeLists.txt b/kdeprint/slave/templates/CMakeLists.txt
deleted file mode 100644
index f2344a0df..000000000
--- a/kdeprint/slave/templates/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-install( FILES
-    class.template printer.template pseudo.template
-    jobs.template driver.template bar-bottom-left.png
-    bar-top-middle.png box-bottom-middle.png
-    box-top-middle.png bar-bottom-middle.png
-    bar-top-right.png box-bottom-right.png
-    box-top-right.png bar-bottom-right.png
-    bottom-left.png box-centre-tdeprint.png
-    top-left.png bar-middle-left.png bottom-middle.png
-    box-middle-left.png top-middle.png bar-middle-right.png
-    bottom-right.png box-middle-right.png top-right-tdeprint.png
-    bar-top-left.png box-bottom-left.png box-top-left.png
-    htmlstyles.css
-  DESTINATION ${DATA_INSTALL_DIR}/tdeprint/template )
diff --git a/kdeprint/slave/templates/Makefile.am b/kdeprint/slave/templates/Makefile.am
deleted file mode 100644
index 3f23f9d2d..000000000
--- a/kdeprint/slave/templates/Makefile.am
+++ /dev/null
@@ -1,31 +0,0 @@
-template_DATA = class.template \
-		printer.template \
-		pseudo.template \
-		jobs.template \
-		driver.template \
-		bar-bottom-left.png \
-		bar-top-middle.png \
-		box-bottom-middle.png \
-		box-top-middle.png \
-		bar-bottom-middle.png \
-		bar-top-right.png \
-		box-bottom-right.png \
-		box-top-right.png \
-		bar-bottom-right.png \
-		bottom-left.png \
-		box-centre-tdeprint.png \
-		top-left.png \
-		bar-middle-left.png \
-		bottom-middle.png \
-		box-middle-left.png \
-		top-middle.png \
-		bar-middle-right.png \
-		bottom-right.png \
-		box-middle-right.png \
-		top-right-tdeprint.png \
-		bar-top-left.png \
-		box-bottom-left.png \
-		box-top-left.png \
-		htmlstyles.css
-
-templatedir = $(kde_datadir)/tdeprint/template
diff --git a/kdeprint/slave/templates/bar-bottom-left.png b/kdeprint/slave/templates/bar-bottom-left.png
deleted file mode 100644
index 30a323592..000000000
Binary files a/kdeprint/slave/templates/bar-bottom-left.png and /dev/null differ
diff --git a/kdeprint/slave/templates/bar-bottom-middle.png b/kdeprint/slave/templates/bar-bottom-middle.png
deleted file mode 100644
index b2ebbbed5..000000000
Binary files a/kdeprint/slave/templates/bar-bottom-middle.png and /dev/null differ
diff --git a/kdeprint/slave/templates/bar-bottom-right.png b/kdeprint/slave/templates/bar-bottom-right.png
deleted file mode 100644
index e664e1511..000000000
Binary files a/kdeprint/slave/templates/bar-bottom-right.png and /dev/null differ
diff --git a/kdeprint/slave/templates/bar-middle-left.png b/kdeprint/slave/templates/bar-middle-left.png
deleted file mode 100644
index 72fda9ec2..000000000
Binary files a/kdeprint/slave/templates/bar-middle-left.png and /dev/null differ
diff --git a/kdeprint/slave/templates/bar-middle-right.png b/kdeprint/slave/templates/bar-middle-right.png
deleted file mode 100644
index eb8d3201c..000000000
Binary files a/kdeprint/slave/templates/bar-middle-right.png and /dev/null differ
diff --git a/kdeprint/slave/templates/bar-top-left.png b/kdeprint/slave/templates/bar-top-left.png
deleted file mode 100644
index b05fd216c..000000000
Binary files a/kdeprint/slave/templates/bar-top-left.png and /dev/null differ
diff --git a/kdeprint/slave/templates/bar-top-middle.png b/kdeprint/slave/templates/bar-top-middle.png
deleted file mode 100644
index 387f81017..000000000
Binary files a/kdeprint/slave/templates/bar-top-middle.png and /dev/null differ
diff --git a/kdeprint/slave/templates/bar-top-right.png b/kdeprint/slave/templates/bar-top-right.png
deleted file mode 100644
index a552ff91d..000000000
Binary files a/kdeprint/slave/templates/bar-top-right.png and /dev/null differ
diff --git a/kdeprint/slave/templates/bottom-left.png b/kdeprint/slave/templates/bottom-left.png
deleted file mode 100644
index 78c9fece3..000000000
Binary files a/kdeprint/slave/templates/bottom-left.png and /dev/null differ
diff --git a/kdeprint/slave/templates/bottom-middle.png b/kdeprint/slave/templates/bottom-middle.png
deleted file mode 100644
index 41e52dd8a..000000000
Binary files a/kdeprint/slave/templates/bottom-middle.png and /dev/null differ
diff --git a/kdeprint/slave/templates/bottom-right.png b/kdeprint/slave/templates/bottom-right.png
deleted file mode 100644
index ef81b04a8..000000000
Binary files a/kdeprint/slave/templates/bottom-right.png and /dev/null differ
diff --git a/kdeprint/slave/templates/box-bottom-left.png b/kdeprint/slave/templates/box-bottom-left.png
deleted file mode 100644
index 650fa5743..000000000
Binary files a/kdeprint/slave/templates/box-bottom-left.png and /dev/null differ
diff --git a/kdeprint/slave/templates/box-bottom-middle.png b/kdeprint/slave/templates/box-bottom-middle.png
deleted file mode 100644
index 2bcd3ea03..000000000
Binary files a/kdeprint/slave/templates/box-bottom-middle.png and /dev/null differ
diff --git a/kdeprint/slave/templates/box-bottom-right.png b/kdeprint/slave/templates/box-bottom-right.png
deleted file mode 100644
index 975aaeed7..000000000
Binary files a/kdeprint/slave/templates/box-bottom-right.png and /dev/null differ
diff --git a/kdeprint/slave/templates/box-centre-kdeprint.png b/kdeprint/slave/templates/box-centre-kdeprint.png
deleted file mode 100644
index 97da1910e..000000000
Binary files a/kdeprint/slave/templates/box-centre-kdeprint.png and /dev/null differ
diff --git a/kdeprint/slave/templates/box-middle-left.png b/kdeprint/slave/templates/box-middle-left.png
deleted file mode 100644
index 62a720178..000000000
Binary files a/kdeprint/slave/templates/box-middle-left.png and /dev/null differ
diff --git a/kdeprint/slave/templates/box-middle-right.png b/kdeprint/slave/templates/box-middle-right.png
deleted file mode 100644
index aa94c0c90..000000000
Binary files a/kdeprint/slave/templates/box-middle-right.png and /dev/null differ
diff --git a/kdeprint/slave/templates/box-top-left.png b/kdeprint/slave/templates/box-top-left.png
deleted file mode 100644
index 34aba9195..000000000
Binary files a/kdeprint/slave/templates/box-top-left.png and /dev/null differ
diff --git a/kdeprint/slave/templates/box-top-middle.png b/kdeprint/slave/templates/box-top-middle.png
deleted file mode 100644
index 7ee2a0738..000000000
Binary files a/kdeprint/slave/templates/box-top-middle.png and /dev/null differ
diff --git a/kdeprint/slave/templates/box-top-right.png b/kdeprint/slave/templates/box-top-right.png
deleted file mode 100644
index 26d16d313..000000000
Binary files a/kdeprint/slave/templates/box-top-right.png and /dev/null differ
diff --git a/kdeprint/slave/templates/class.template b/kdeprint/slave/templates/class.template
deleted file mode 100644
index b6a79a1fd..000000000
--- a/kdeprint/slave/templates/class.template
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <meta name="generator" content=
-  "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
-
-  <title>%1</title>
-<style type="text/css">
-/*<![CDATA[*/
-img {margin: 0px; padding: 0px}
-body {margin: 0px; padding: 0px; background-color: #418ade;}
-.bar_text a {color: #008;};
-/*]]>*/
-</style>
-<link rel="stylesheet" href="htmlstyles.css" type="text/css" />
-</head>
-
-<body>
-  <div style=
-  "background-image: url(top-middle.png); width: 100%; height: 131px;">
-  <div style="position: absolute; right: 0px;">
-      <img src="top-right-tdeprint.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style="position: absolute; left: 0px;">
-      <img src="top-left.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style=
-    "position: absolute; top: 25px; right: 100px; text-align: right; font-size: xx-large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
-    %1 <!-- Konqueror -->
-    </div>
-
-    <div style=
-    "position: absolute; top: 70px; right: 100px; text-align: right; font-size: large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
-    %1 <!-- Conquer your Desktop -->
-    </div>
-  </div><!-- the bar -->
-
-  <div style=
-  "width: 100%; background-image: url(bar-middle-right.png); background-repeat: repeat-y; background-position: right; background-color: #57a1d8;">
-  <div style=
-  "width: 100%; height: 19px; background-image: url(bar-top-middle.png);">
-    <div style="width: 22px; height: 19px; float: left;">
-        <img src="bar-top-left.png" style="margin: 0px" alt="" />
-      </div>
-
-      <div style="width: 22px; height: 19px; float: right;">
-        <img src="bar-top-right.png" style="margin: 0px" alt="" />
-      </div>
-    </div>
-
-    <div style=
-    "width: 100%; background-image: url(bar-middle-left.png); background-repeat: repeat-y; text-align: center; color: white;"
-    class="bar_text">
-      %1      <!-- Menu -->
-    </div>
-
-    <div style=
-    "width: 100%; height: 25px; background-image: url(bar-bottom-middle.png);">
-    <div style="width: 22px; height: 25px; float: left;">
-        <img src="bar-bottom-left.png" style="margin: 0px" alt="" />
-      </div>
-
-      <div style="width: 22px; height: 25px; float: right;">
-        <img src="bar-bottom-right.png" style="margin: 0px" alt="" />
-      </div>
-    </div>
-  </div><!-- the main text box -->
-
-  <div align="center">
-    <div style=
-    "width: 90%; background-image: url(box-middle-right.png); background-repeat: repeat-y; background-position: right;">
-    <div style=
-    "width: 100%; height: 35px; background-image: url(box-top-middle.png);">
-      <div style="width: 20px; height: 35px; float: left;">
-          <img src="box-top-left.png" style="margin: 0px" alt="" />
-        </div>
-
-        <div style="width: 20px; height: 35px; float: right;">
-          <img src="box-top-right.png" style="margin: 0px" alt="" />
-        </div>
-      </div>
-
-      <div style=
-      "width: 100%; background-image: url(box-middle-left.png); background-repeat: repeat-y; text-align: center">
-      <div style=
-      "background-image: url(box-centre-tdeprint.png); background-repeat: no-repeat; background-color: #dfe7f3; background-position: top right; margin-left: 20px; margin-right: 20px;">
-	<h2 style="margin-top: 0px;"><img src="%1" width="32" height="32"/>&nbsp;%1<!--Title--></h2>
-	
-	<table border="1" cellspacing="0" cellpadding="1" width="100%">
-	  <tr class="top" align="left" valign="middle">
-	    <td>&nbsp;%1
-	      <!-- Printer Name --> </td>
-	  </tr>
-	  
-	  <tr>
-	    <td>
-	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
-		<tr class="contentyellow">
-		  <td width="40%">%1 </td>
-		  
-		  <td width="58%">%1 <!--Type--></td>
-		</tr>
-		
-		<tr class="contentwhite">
-		  <td>%1 </td>
-		  
-		  <td>%1 <!-- State--></td>
-		</tr>
-		
-		<tr class="contentyellow">
-		  <td>%1 </td>
-		  
-		  <td>%1 <!-- Location --></td>
-		</tr>
-		
-		<tr class="contentwhite">
-		  <td>%1 </td>
-		  
-		  <td>%1 <!-- Description --></td>
-		</tr>
-		
-		<tr class="contentyellow">
-		  <td>%1 </td>
-		  
-		  <td>%1 <!-- URI --></td>
-		</tr>
-		
-	      </table>
-	    </td>
-	  </tr>
-	</table>
-	
-      </p>
-      
-      <p>
-	
-	<table border="1" cellspacing="0" cellpadding="2" width="100%">
-	  <tr class="top" align="left" valign="middle">
-	    <td>&nbsp;%1
-	      <!-- Members --></td>
-	  </tr>
-	  
-	  <tr>
-	    <td>
-	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
-		<tr class="contentyellow">
-		  <td width="100%">%1</td>
-		  
-		</tr>
-		
-	      </table>
-	    </td>
-	  </tr>
-	</table>
-
-        </div>
-      </div>
-
-      <div style=
-      "width: 100%; height: 22px; background-image: url(box-bottom-middle.png);">
-      <div style="width: 25px; height: 22px; float: left;">
-          <img src="box-bottom-left.png" style="margin: 0px" alt="" />
-        </div>
-
-        <div style="width: 25px; height: 22px; float: right;">
-          <img src="box-bottom-right.png" style="margin: 0px" alt="" />
-        </div>
-      </div>
-    </div>
-  </div>
-
-  <div style=
-  "background-image: url(bottom-middle.png); width: 100%; height: 100px;">
-  <div style="position: absolute; right: 0px;">
-      <img src="bottom-right.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style="position: absolute; left: 0px;">
-      <img src="bottom-left.png" style="margin: 0px" alt="" />
-    </div>
-  </div>
-</body>
-</html>
diff --git a/kdeprint/slave/templates/driver.template b/kdeprint/slave/templates/driver.template
deleted file mode 100644
index 8ba428e74..000000000
--- a/kdeprint/slave/templates/driver.template
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <meta name="generator" content=
-  "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
-
-  <title>%1</title>
-<style type="text/css">
-/*<![CDATA[*/
-img {margin: 0px; padding: 0px}
-body {margin: 0px; padding: 0px; background-color: #418ade;}
-.bar_text a {color: #008;};
-/*]]>*/
-</style>
-<link rel="stylesheet" href="htmlstyles.css" type="text/css" />
-</head>
-
-<body>
-  <div style=
-  "background-image: url(top-middle.png); width: 100%; height: 131px;">
-  <div style="position: absolute; right: 0px;">
-      <img src="top-right-tdeprint.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style="position: absolute; left: 0px;">
-      <img src="top-left.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style=
-    "position: absolute; top: 25px; right: 100px; text-align: right; font-size: xx-large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
-    %1 <!-- Konqueror -->
-    </div>
-
-    <div style=
-    "position: absolute; top: 70px; right: 100px; text-align: right; font-size: large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
-    %1 <!-- Conquer your Desktop -->
-    </div>
-  </div><!-- the bar -->
-
-  <div style=
-  "width: 100%; background-image: url(bar-middle-right.png); background-repeat: repeat-y; background-position: right; background-color: #57a1d8;">
-  <div style=
-  "width: 100%; height: 19px; background-image: url(bar-top-middle.png);">
-    <div style="width: 22px; height: 19px; float: left;">
-        <img src="bar-top-left.png" style="margin: 0px" alt="" />
-      </div>
-
-      <div style="width: 22px; height: 19px; float: right;">
-        <img src="bar-top-right.png" style="margin: 0px" alt="" />
-      </div>
-    </div>
-
-    <div style=
-    "width: 100%; background-image: url(bar-middle-left.png); background-repeat: repeat-y; text-align: center; color: white;"
-    class="bar_text">
-      %1      <!-- Menu -->
-    </div>
-
-    <div style=
-    "width: 100%; height: 25px; background-image: url(bar-bottom-middle.png);">
-    <div style="width: 22px; height: 25px; float: left;">
-        <img src="bar-bottom-left.png" style="margin: 0px" alt="" />
-      </div>
-
-      <div style="width: 22px; height: 25px; float: right;">
-        <img src="bar-bottom-right.png" style="margin: 0px" alt="" />
-      </div>
-    </div>
-  </div><!-- the main text box -->
-
-  <div align="center">
-    <div style=
-    "width: 90%; background-image: url(box-middle-right.png); background-repeat: repeat-y; background-position: right;">
-    <div style=
-    "width: 100%; height: 35px; background-image: url(box-top-middle.png);">
-      <div style="width: 20px; height: 35px; float: left;">
-          <img src="box-top-left.png" style="margin: 0px" alt="" />
-        </div>
-
-        <div style="width: 20px; height: 35px; float: right;">
-          <img src="box-top-right.png" style="margin: 0px" alt="" />
-        </div>
-      </div>
-
-      <div style=
-      "width: 100%; background-image: url(box-middle-left.png); background-repeat: repeat-y; text-align: center">
-      <div style=
-      "background-image: url(box-centre-tdeprint.png); background-repeat: no-repeat; background-color: #dfe7f3; background-position: top right; margin-left: 20px; margin-right: 20px;">
-	<h2 style="margin-top: 0px;"><img src="%1" width="32" height="32"/>&nbsp;%1<!--Title--></h2>
-	
-	<table border="1" cellspacing="0" cellpadding="1" width="100%">
-	  <tr>
-	    <td>
-	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
-		
-		%1
-		
-	      </table>
-	    </td>
-	  </tr>
-	</table>
-
-        </div>
-      </div>
-
-      <div style=
-      "width: 100%; height: 22px; background-image: url(box-bottom-middle.png);">
-      <div style="width: 25px; height: 22px; float: left;">
-          <img src="box-bottom-left.png" style="margin: 0px" alt="" />
-        </div>
-
-        <div style="width: 25px; height: 22px; float: right;">
-          <img src="box-bottom-right.png" style="margin: 0px" alt="" />
-        </div>
-      </div>
-    </div>
-  </div>
-
-  <div style=
-  "background-image: url(bottom-middle.png); width: 100%; height: 100px;">
-  <div style="position: absolute; right: 0px;">
-      <img src="bottom-right.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style="position: absolute; left: 0px;">
-      <img src="bottom-left.png" style="margin: 0px" alt="" />
-    </div>
-  </div>
-</body>
-</html>
diff --git a/kdeprint/slave/templates/htmlstyles.css b/kdeprint/slave/templates/htmlstyles.css
deleted file mode 100644
index 650ed76db..000000000
--- a/kdeprint/slave/templates/htmlstyles.css
+++ /dev/null
@@ -1,38 +0,0 @@
-td.main { background-color: #505050;}
-td.logo { background-color: #DDDDDD;}
-td.lines { background-color: #DDDDDD;
-           background-image: url(lines.png);}
-td.trans { background-repeat: no-repeat;}
-td.end { background-image: url(lines2.png);
-         background-repeat: x-repeat;}
-td.shadow1 { background-image: url(shadow1.png);
-             background-repeat: x-repeat;}
-tr.top { font-family: sans-serif;
-              color: #ffffff;
-              background-color: #505050}
-tr.contentyellow { font-family: sans-serif;
-                   color: #000000;
-                   background-color: #fff4c9}
-tr.contentwhite { font-family: sans-serif;
-                  color: #000000;
-                  background-color: #FFFFFF}
-tr.menurow {background-color: #505050;
-            color: #000000;
-            vertical-align: middle;}
-td.deco      {color: #ffffff;
-             background-color: #505050;
-             font-family: sans-serif;
-             font-size: small;}
-td.menuactive      {color: #ffcc00;
-             background-color: #777777;
-             font-family: sans-serif;
-             font-size: small;}
-td.menu      {color: #ffffff;
-             background-color: #505050;
-             font-family: sans-serif;}
-a.menu 	    {color: #eeeeee;
-            font-family: sans-serif;
-            font-size: small;}
-a.menu:hover {color: #ffffff;
-              text-decoration: none;}
-
diff --git a/kdeprint/slave/templates/jobs.template b/kdeprint/slave/templates/jobs.template
deleted file mode 100644
index 684899aba..000000000
--- a/kdeprint/slave/templates/jobs.template
+++ /dev/null
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <meta name="generator" content=
-  "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
-
-  <title>%1</title>
-<style type="text/css">
-/*<![CDATA[*/
-img {margin: 0px; padding: 0px}
-body {margin: 0px; padding: 0px; background-color: #418ade;}
-.bar_text a {color: #008;};
-/*]]>*/
-</style>
-<link rel="stylesheet" href="htmlstyles.css" type="text/css" />
-</head>
-
-<body>
-  <div style=
-  "background-image: url(top-middle.png); width: 100%; height: 131px;">
-  <div style="position: absolute; right: 0px;">
-      <img src="top-right-tdeprint.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style="position: absolute; left: 0px;">
-      <img src="top-left.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style=
-    "position: absolute; top: 25px; right: 100px; text-align: right; font-size: xx-large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
-    %1 <!-- Konqueror -->
-    </div>
-
-    <div style=
-    "position: absolute; top: 70px; right: 100px; text-align: right; font-size: large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
-    %1 <!-- Conquer your Desktop -->
-    </div>
-  </div><!-- the bar -->
-
-  <div style=
-  "width: 100%; background-image: url(bar-middle-right.png); background-repeat: repeat-y; background-position: right; background-color: #57a1d8;">
-  <div style=
-  "width: 100%; height: 19px; background-image: url(bar-top-middle.png);">
-    <div style="width: 22px; height: 19px; float: left;">
-        <img src="bar-top-left.png" style="margin: 0px" alt="" />
-      </div>
-
-      <div style="width: 22px; height: 19px; float: right;">
-        <img src="bar-top-right.png" style="margin: 0px" alt="" />
-      </div>
-    </div>
-
-    <div style=
-    "width: 100%; background-image: url(bar-middle-left.png); background-repeat: repeat-y; text-align: center; color: white;"
-    class="bar_text">
-      %1      <!-- Menu -->
-    </div>
-
-    <div style=
-    "width: 100%; height: 25px; background-image: url(bar-bottom-middle.png);">
-    <div style="width: 22px; height: 25px; float: left;">
-        <img src="bar-bottom-left.png" style="margin: 0px" alt="" />
-      </div>
-
-      <div style="width: 22px; height: 25px; float: right;">
-        <img src="bar-bottom-right.png" style="margin: 0px" alt="" />
-      </div>
-    </div>
-  </div><!-- the main text box -->
-
-  <div align="center">
-    <div style=
-    "width: 90%; background-image: url(box-middle-right.png); background-repeat: repeat-y; background-position: right;">
-    <div style=
-    "width: 100%; height: 35px; background-image: url(box-top-middle.png);">
-      <div style="width: 20px; height: 35px; float: left;">
-          <img src="box-top-left.png" style="margin: 0px" alt="" />
-        </div>
-
-        <div style="width: 20px; height: 35px; float: right;">
-          <img src="box-top-right.png" style="margin: 0px" alt="" />
-        </div>
-      </div>
-
-      <div style=
-      "width: 100%; background-image: url(box-middle-left.png); background-repeat: repeat-y; text-align: center">
-      <div style=
-      "background-image: url(box-centre-tdeprint.png); background-repeat: no-repeat; background-color: #dfe7f3; background-position: top right; margin-left: 20px; margin-right: 20px;">
-	<h2 style="margin-top: 0px;"><img src="%1" width="32" height="32"/>&nbsp;%1<!--Title--></h2>
-	
-	<table border="1" cellspacing="0" cellpadding="1" width="100%">
-	  <tr>
-	    <td>
-	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
-		<tr class="top">
-		  <td width="10%">%1</td>
-		  <td width="15%">%1</td>
-		  <td width="20%">%1</td>
-		  <td width="40%">%1</td>
-		  <td width="15%">%1</td>
-		</tr>
-		
-		%1
-		
-	      </table>
-	    </td>
-	  </tr>
-	</table>
-
-        </div>
-      </div>
-
-      <div style=
-      "width: 100%; height: 22px; background-image: url(box-bottom-middle.png);">
-      <div style="width: 25px; height: 22px; float: left;">
-          <img src="box-bottom-left.png" style="margin: 0px" alt="" />
-        </div>
-
-        <div style="width: 25px; height: 22px; float: right;">
-          <img src="box-bottom-right.png" style="margin: 0px" alt="" />
-        </div>
-      </div>
-    </div>
-  </div>
-
-  <div style=
-  "background-image: url(bottom-middle.png); width: 100%; height: 100px;">
-  <div style="position: absolute; right: 0px;">
-      <img src="bottom-right.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style="position: absolute; left: 0px;">
-      <img src="bottom-left.png" style="margin: 0px" alt="" />
-    </div>
-  </div>
-</body>
-</html>
diff --git a/kdeprint/slave/templates/printer.template b/kdeprint/slave/templates/printer.template
deleted file mode 100644
index 3bdfa8665..000000000
--- a/kdeprint/slave/templates/printer.template
+++ /dev/null
@@ -1,205 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <meta name="generator" content=
-  "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
-
-  <title>%1</title>
-<style type="text/css">
-/*<![CDATA[*/
-img {margin: 0px; padding: 0px}
-body {margin: 0px; padding: 0px; background-color: #418ade;}
-.bar_text a {color: #008;};
-/*]]>*/
-</style>
-<link rel="stylesheet" href="htmlstyles.css" type="text/css" />
-</head>
-
-<body>
-  <div style=
-  "background-image: url(top-middle.png); width: 100%; height: 131px;">
-  <div style="position: absolute; right: 0px;">
-      <img src="top-right-tdeprint.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style="position: absolute; left: 0px;">
-      <img src="top-left.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style=
-    "position: absolute; top: 25px; right: 100px; text-align: right; font-size: xx-large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
-    %1 <!-- Konqueror -->
-    </div>
-
-    <div style=
-    "position: absolute; top: 70px; right: 100px; text-align: right; font-size: large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
-    %1 <!-- Conquer your Desktop -->
-    </div>
-  </div><!-- the bar -->
-
-  <div style=
-  "width: 100%; background-image: url(bar-middle-right.png); background-repeat: repeat-y; background-position: right; background-color: #57a1d8;">
-  <div style=
-  "width: 100%; height: 19px; background-image: url(bar-top-middle.png);">
-    <div style="width: 22px; height: 19px; float: left;">
-        <img src="bar-top-left.png" style="margin: 0px" alt="" />
-      </div>
-
-      <div style="width: 22px; height: 19px; float: right;">
-        <img src="bar-top-right.png" style="margin: 0px" alt="" />
-      </div>
-    </div>
-
-    <div style=
-    "width: 100%; background-image: url(bar-middle-left.png); background-repeat: repeat-y; text-align: center; color: white;"
-    class="bar_text">
-      %1      <!-- Menu -->
-    </div>
-
-    <div style=
-    "width: 100%; height: 25px; background-image: url(bar-bottom-middle.png);">
-    <div style="width: 22px; height: 25px; float: left;">
-        <img src="bar-bottom-left.png" style="margin: 0px" alt="" />
-      </div>
-
-      <div style="width: 22px; height: 25px; float: right;">
-        <img src="bar-bottom-right.png" style="margin: 0px" alt="" />
-      </div>
-    </div>
-  </div><!-- the main text box -->
-
-  <div align="center">
-    <div style=
-    "width: 90%; background-image: url(box-middle-right.png); background-repeat: repeat-y; background-position: right;">
-    <div style=
-    "width: 100%; height: 35px; background-image: url(box-top-middle.png);">
-      <div style="width: 20px; height: 35px; float: left;">
-          <img src="box-top-left.png" style="margin: 0px" alt="" />
-        </div>
-
-        <div style="width: 20px; height: 35px; float: right;">
-          <img src="box-top-right.png" style="margin: 0px" alt="" />
-        </div>
-      </div>
-
-      <div style=
-      "width: 100%; background-image: url(box-middle-left.png); background-repeat: repeat-y; text-align: center">
-      <div style=
-      "background-image: url(box-centre-tdeprint.png); background-repeat: no-repeat; background-color: #dfe7f3; background-position: top right; margin-left: 20px; margin-right: 20px;">
-	<h2 style="margin-top: 0px;"><img src="%1" width="32" height="32"/>&nbsp;%1<!--Title--></h2>
-	
-	<table border="1" cellspacing="0" cellpadding="1" width="100%">
-	  <tr class="top" align="left" valign="middle">
-	    <td>&nbsp;%1
-	      <!-- Printer Name --> </td>
-	  </tr>
-	  
-	  <tr>
-	    <td>
-	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
-		<tr class="contentyellow">
-		  <td width="41%">%1 </td>
-		  
-		  <td width="59%">%1 <!--Type--></td>
-		</tr>
-		
-		<tr class="contentwhite">
-		  <td>%1 </td>
-		  
-		  <td>%1 <!-- State--></td>
-		</tr>
-		
-		<tr class="contentyellow">
-		  <td>%1 </td>
-		  
-		  <td>%1 <!-- Location --></td>
-		</tr>
-		
-		<tr class="contentwhite">
-		  <td>%1 </td>
-		  
-		  <td>%1 <!-- Description --></td>
-		</tr>
-		
-		<tr class="contentyellow">
-		  <td>%1 </td>
-		  
-		  <td>%1 <!-- URI --></td>
-		</tr>
-		
-		<tr class="contentwhite">
-		  <td>%1 </td>
-		  
-		  <td>%1 <!-- Interface --></td>
-		</tr>
-	      </table>
-	    </td>
-	  </tr>
-	</table>
-	
-      </p>
-      
-      <p>
-	
-	<table border="1" cellspacing="0" cellpadding="2" width="100%">
-	  <tr class="top" align="left" valign="middle">
-	    <td>&nbsp;%1 <!-- Driver --></td>
-	  </tr>
-	  
-	  <tr>
-	    <td>
-	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
-		<tr class="contentyellow">
-		  <td width="41%">%1 </td>
-		  
-		  <td width="59%">%1
-		    <!--Manufacturer--></td>
-		</tr>
-		
-		<tr class="contentwhite">
-		  <td>%1 </td>
-		  
-		  <td>%1 <!-- Model--></td>
-		</tr>
-		
-		<tr class="contentyellow">
-		  <td>%1 </td>
-		  
-		  <td>%1 <!-- Driver Informaton --></td>
-		</tr>
-	      </table>
-	    </td>
-	  </tr>
-	</table>
-
-        </div>
-      </div>
-
-      <div style=
-      "width: 100%; height: 22px; background-image: url(box-bottom-middle.png);">
-      <div style="width: 25px; height: 22px; float: left;">
-          <img src="box-bottom-left.png" style="margin: 0px" alt="" />
-        </div>
-
-        <div style="width: 25px; height: 22px; float: right;">
-          <img src="box-bottom-right.png" style="margin: 0px" alt="" />
-        </div>
-      </div>
-    </div>
-  </div>
-
-  <div style=
-  "background-image: url(bottom-middle.png); width: 100%; height: 100px;">
-  <div style="position: absolute; right: 0px;">
-      <img src="bottom-right.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style="position: absolute; left: 0px;">
-      <img src="bottom-left.png" style="margin: 0px" alt="" />
-    </div>
-  </div>
-</body>
-</html>
diff --git a/kdeprint/slave/templates/pseudo.template b/kdeprint/slave/templates/pseudo.template
deleted file mode 100644
index a5acc24d1..000000000
--- a/kdeprint/slave/templates/pseudo.template
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <meta name="generator" content=
-  "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
-
-  <title>%1</title>
-<style type="text/css">
-/*<![CDATA[*/
-img {margin: 0px; padding: 0px}
-body {margin: 0px; padding: 0px; background-color: #418ade;}
-.bar_text a {color: #008;};
-/*]]>*/
-</style>
-<link rel="stylesheet" href="htmlstyles.css" type="text/css" />
-</head>
-
-<body>
-  <div style=
-  "background-image: url(top-middle.png); width: 100%; height: 131px;">
-  <div style="position: absolute; right: 0px;">
-      <img src="top-right-tdeprint.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style="position: absolute; left: 0px;">
-      <img src="top-left.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style=
-    "position: absolute; top: 25px; right: 100px; text-align: right; font-size: xx-large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
-    %1 <!-- Konqueror -->
-    </div>
-
-    <div style=
-    "position: absolute; top: 70px; right: 100px; text-align: right; font-size: large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
-    %1 <!-- Conquer your Desktop -->
-    </div>
-  </div><!-- the bar -->
-
-  <div style=
-  "width: 100%; background-image: url(bar-middle-right.png); background-repeat: repeat-y; background-position: right; background-color: #57a1d8;">
-  <div style=
-  "width: 100%; height: 19px; background-image: url(bar-top-middle.png);">
-    <div style="width: 22px; height: 19px; float: left;">
-        <img src="bar-top-left.png" style="margin: 0px" alt="" />
-      </div>
-
-      <div style="width: 22px; height: 19px; float: right;">
-        <img src="bar-top-right.png" style="margin: 0px" alt="" />
-      </div>
-    </div>
-
-    <div style=
-    "width: 100%; background-image: url(bar-middle-left.png); background-repeat: repeat-y; text-align: center; color: white;"
-    class="bar_text">
-      %1      <!-- Menu -->
-    </div>
-
-    <div style=
-    "width: 100%; height: 25px; background-image: url(bar-bottom-middle.png);">
-    <div style="width: 22px; height: 25px; float: left;">
-        <img src="bar-bottom-left.png" style="margin: 0px" alt="" />
-      </div>
-
-      <div style="width: 22px; height: 25px; float: right;">
-        <img src="bar-bottom-right.png" style="margin: 0px" alt="" />
-      </div>
-    </div>
-  </div><!-- the main text box -->
-
-  <div align="center">
-    <div style=
-    "width: 90%; background-image: url(box-middle-right.png); background-repeat: repeat-y; background-position: right;">
-    <div style=
-    "width: 100%; height: 35px; background-image: url(box-top-middle.png);">
-      <div style="width: 20px; height: 35px; float: left;">
-          <img src="box-top-left.png" style="margin: 0px" alt="" />
-        </div>
-
-        <div style="width: 20px; height: 35px; float: right;">
-          <img src="box-top-right.png" style="margin: 0px" alt="" />
-        </div>
-      </div>
-
-      <div style=
-      "width: 100%; background-image: url(box-middle-left.png); background-repeat: repeat-y; text-align: center">
-      <div style=
-      "background-image: url(box-centre-tdeprint.png); background-repeat: no-repeat; background-color: #dfe7f3; background-position: top right; margin-left: 20px; margin-right: 20px;">
-	<h2 style="margin-top: 0px;"><img src="%1" width="32" height="32"/>&nbsp;%1<!--Title--></h2>
-	  
-	    <table border="1" cellspacing="0" cellpadding="1" width="100%">
-	      <tr class="top" align="left" valign="middle">
-		<td>&nbsp;%1
-		  <!-- Printer Name --> </td>
-	      </tr>
-	      
-	      <tr>
-		<td>
-		  <table border="1" cellspacing="0" cellpadding="2" width="100%">
-		    <tr class="contentyellow">
-		      <td width="41%">%1 </td>
-		      
-		      <td width="59%">%1 <!--Type--></td>
-		    </tr>
-		    
-		    <tr class="contentwhite">
-		      <td>%1 </td>
-		      
-		      <td>%1 <!-- State--></td>
-		    </tr>
-		    
-		    <tr class="contentyellow">
-		      <td>%1 </td>
-		      
-		      <td>%1 <!-- Location --></td>
-		    </tr>
-		    
-		  </table>
-		</td>
-	      </tr>
-	    </table>
-	    
-	  </p>
-	  
-	  <p>
-	    
-	    <table border="1" cellspacing="0" cellpadding="2" width="100%">
-	      <tr class="top" align="left" valign="middle">
-		<td>&nbsp;%1 <!-- Command Properties --></td>
-	      </tr>
-	      
-	      <tr>
-		<td>
-		  <table border="1" cellspacing="0" cellpadding="2" width="100%">
-		    <tr class="contentyellow">
-		      <td width="40%">%1 </td>
-		      
-		      <td width="58%">%1
-			<!--Command--></td>
-		    </tr>
-		    
-		    <tr class="contentwhite">
-		      <td>%1 </td>
-		      
-		      <td>%1 <!-- Use Output File --></td>
-		    </tr>
-		    
-		    <tr class="contentyellow">
-		      <td>%1 </td>
-		      
-		      <td>%1 <!-- Default Extension --></td>
-		    </tr>
-		  </table>
-		</td>
-	      </tr>
-	    </table>
-
-        </div>
-      </div>
-
-      <div style=
-      "width: 100%; height: 22px; background-image: url(box-bottom-middle.png);">
-      <div style="width: 25px; height: 22px; float: left;">
-          <img src="box-bottom-left.png" style="margin: 0px" alt="" />
-        </div>
-
-        <div style="width: 25px; height: 22px; float: right;">
-          <img src="box-bottom-right.png" style="margin: 0px" alt="" />
-        </div>
-      </div>
-    </div>
-  </div>
-
-  <div style=
-  "background-image: url(bottom-middle.png); width: 100%; height: 100px;">
-  <div style="position: absolute; right: 0px;">
-      <img src="bottom-right.png" style="margin: 0px" alt="" />
-    </div>
-
-    <div style="position: absolute; left: 0px;">
-      <img src="bottom-left.png" style="margin: 0px" alt="" />
-    </div>
-  </div>
-</body>
-</html>
diff --git a/kdeprint/slave/templates/top-left.png b/kdeprint/slave/templates/top-left.png
deleted file mode 100644
index d7551c0d5..000000000
Binary files a/kdeprint/slave/templates/top-left.png and /dev/null differ
diff --git a/kdeprint/slave/templates/top-middle.png b/kdeprint/slave/templates/top-middle.png
deleted file mode 100644
index bb3fe7428..000000000
Binary files a/kdeprint/slave/templates/top-middle.png and /dev/null differ
diff --git a/kdeprint/slave/templates/top-right-kdeprint.png b/kdeprint/slave/templates/top-right-kdeprint.png
deleted file mode 100644
index 56717342c..000000000
Binary files a/kdeprint/slave/templates/top-right-kdeprint.png and /dev/null differ
diff --git a/kdesu/AUTHORS b/kdesu/AUTHORS
deleted file mode 100644
index 5cabd8892..000000000
--- a/kdesu/AUTHORS
+++ /dev/null
@@ -1,2 +0,0 @@
-Pietro Iglio <iglio@fub.it>
-Geert Jansen <g.t.jansen@stud.tue.nl>
diff --git a/kdesu/CMakeLists.txt b/kdesu/CMakeLists.txt
deleted file mode 100644
index c1fef3ba8..000000000
--- a/kdesu/CMakeLists.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-include( CheckCSourceCompiles )
-include( CheckFunctionExists )
-
-check_c_source_compiles( "
-  #define _GNU_SOURCE 1
-  #include <sys/socket.h>
-  int main(int argc, char *argv[]) { struct ucred red; return 0; } "
-  HAVE_STRUCT_UCRED )
-
-check_c_source_runs( "
-  #include <grp.h>
-  #include <sys/types.h>
-  int main() { struct group *grp = getgrnam(\"nogroup\"); if(grp) return 0; return 1; }"
-  HAVE_NOGROUP )
-
-if( HAVE_NOGROUP )
-  set( nogroup nogroup )
-else()
-  check_c_source_runs("
-  #include <grp.h>
-  #include <sys/types.h>
-  int main() { struct group *grp = getgrnam(\"nobody\"); if(grp) return 0; return 1; }"
-  HAVE_NOBODY )
-  if( HAVE_NOBODY )
-    set( nogroup nobody )
-  else()
-    set( nogroup 65534 )
-  endif()
-endif()
-
-check_function_exists( getpeereid HAVE_GETPEEREID )
-check_include_file( "sys/select.h" HAVE_SYS_SELECT_H )
-check_include_file( "sys/wait.h" HAVE_SYS_WAIT_H )
-
-if( WITH_SUDO_KDESU_BACKEND )
-  set( DEFAULT_SUPER_USER_COMMAND sudo CACHE INTERNAL "" FORCE )
-else()
-  set( DEFAULT_SUPER_USER_COMMAND su CACHE INTERNAL "" FORCE )
-endif()
-
-add_subdirectory( tdesu )
-add_subdirectory( tdesud )
diff --git a/kdesu/ChangeLog b/kdesu/ChangeLog
deleted file mode 100644
index ad44b81a5..000000000
--- a/kdesu/ChangeLog
+++ /dev/null
@@ -1,128 +0,0 @@
-Wed, 26 Jan 00    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Build sycoca for target process.
-    * Use standard debug facilities.
-    * Use KCmdLineArgs for argument parsing.
-    * Dialog updated to use KDialogBase.
-
-Sat, 18 Dec 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Add DCOP authentication cookies.
-    * Fixed SMP install of tdesud.
-
-Sat, 23 Oct 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * STL -> QTL
-    * Use Qt's standard debug facilities.
-
-Tue, 28 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Integrating tdesu into kdebase
-
-Sat, 25 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * BIG change: su to other user than root. This required a different way
-      to pass X cookies and stuff to the target process. See
-      common/tdesu_stub.c for more info.
-    * Fixed a bug in tdesud/lexer.cpp
-
-Thu, 23 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Portability issues (root has a csh on FreeBSD ... is this just me?)
-    * The execution of processes is more efficient now: 2 processess instead
-      of 3 and 1 tempfile instead of 2. This way possible by setting the
-      XAUTHORITY env. var. to $HOME/.Xauthority instead of making a new one.
-    * Fixed a subtle bug in tdesud. tdesud catches SIGCHLD to handle child
-      exits but this is incompatible with "class RootProcess", which does a
-      waitpid() and depends on getting the exit code.
-    * Only connect to daemon when necessary.
-
-Wed, 22 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Changed WaitSlave() to open slave instead of master pty.
-    * Added French translation (Pierre Dorgueil).
-    * Updated German translation (Ludwig Nussel).
-    * If su has terminal output, feed it back to the user.
-
-Wed, 8 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * If started as root, tdesu does not ask for a password anymore.
-
-Wed, 1 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Deferred instantiation of kapp in tdesu.cpp.
-    * Finished porting to KDE2.
-
-Sun, 29 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Fixed a bug that would let you run only one program with the daemon.
-    * Adapted debug.h macros.
-
-Tue, 24 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Version 0.97
-    * Fixed the RedHat problem! See the function WaitSlave() in
-      common/process.cpp.
-    * Fixed a few GUI bugs.
-    * Improved password security. Passwords are not kept until
-      the root program exits, they are deleted right away.
-
-Fri, 20 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Fixed the glibc 2.1 compile problem (struct ucred test).
-
-Tue, 17 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Fixed debug.h macros.
-    * Some more source cleanups.
-
-Mon, 16 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Added "nogroup" check.
-    * Updated the HTML documentation.
-    * Updated the FAQ
- 
-Sun, 15 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * KDE su now supports terminal mode apps! (-t switch, no password 
-      keeping, output only)
-
-Sat, 14 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Version 0.94
-    * PTY handling is improved. It should work on more systems now. 
-      (tested: Linux w & w/o  UNIX98 PTY's w & w/o GLIBC 2.1, Solaris 7)
-    * Changed behaviour of "Keep Password" setting.
-    * Added -n option: don't offer the choice to keep password.
-    * Added -q, -d options: Quit the daemon and delete a key.
-    * Source cleanups.
-    * Various small bugfixes.
-    * Merged most of the KDE2 fixes from the CVS version.
-    * KDE su now waits for child programs to finish. Use 'command &' to
-      exit right away.
-
-Wed, 02 Jun 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Version 0.91
-    * The password is passed to su with a pty/tty pair. This should fix the
-      problems redhat users are experiencing.
-    * Some portability issues (a.o. AF_LOCAL -> AF_UNIX)
-
-Thu, 20 May 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * I am finally able to release 0.9.
-
-Fri, 09 Apr 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Backport to KDE 1.1. Release as tdesu-0.9.tar.gz
-
-Mon, 22 Mar 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Major changes: password keeping, control module, UI changes
-    * Version 0.9
-
-Thu, 25 Feb 99    Geert Jansen <g.t.jansen@stud.tue.nl>
-
-    * Merge with Pietro Iglio's code.
-    * Version 0.4
-
diff --git a/kdesu/FAQ b/kdesu/FAQ
deleted file mode 100644
index b7d1499c7..000000000
--- a/kdesu/FAQ
+++ /dev/null
@@ -1,46 +0,0 @@
-Q: On my SuSE system, KDE su does not compile. I get an error that some Qt
-   header files cannot be found.
-A: Install the package qtcompat.
-
-Q: Is KDE su safe?
-A: No program is 100% safe. However, KDE su is not setuid root and it
-   handles the password you enter with great care so it should be safe
-   enough.
-
-Q: How safe is password keeping?
-A: Enabling password keeping is less secure that disabling it. However, the
-   scheme tdesu uses to keep passwords prevents everyone (including you, the
-   user) from accessing them. Please see the HTML documentation for a full
-   description of this scheme.
-
-Q: Can I execute tty applications with tdesu?
-A: No. TTY application will probably never be supported. Use the Unix su for
-   those.
-   NOTE: As of version 0.94, tty _output_ _only_ is supported with the `-t'
-   switch. This disables password keeping, though.
-
-Q: What systems does KDE su support?
-A: Tested are:
-    * Linux 2.x (Redhat 6.x, Mandrake "Cooker", Debian potato, SuSE 6.1)
-    * Solaris 7 (intel)
-    * FreeBSD 3.2 (intel, w/ egcs 1.1.2)
-   It will probably work on more systems but I cannot test that.
-
-Q: Why doesn't it support every system that is out there.
-A: KDE su needs to setup a pty/tty pair for communicating with `su'. This is
-   because some `su' implementations refuse to read a password from stdin if 
-   that is not a tty.  Setting up a pty/tty pair is not completely portable.
-
-Q: A good debug tip?
-A: If tdesu doesn't fire up your application, use the '-t' switch.
-   This way, you'll get terminal output. Maybe there is something wrong with 
-   the program you're trying to run.
-
-Q: I always get the warning: "Terminal output not available on non-terminal".
-A: Maybe you're not logged on from a terminal but probably you're using
-   UNIX98 pty's without glibc 2.1 (Linux). The glibc 2.0 ttyname() function 
-   incorrectly reports that UNIX98 slave pty's are no tty's.
-
-Q: Why not use DCOP for the communications with the daemon?
-A: KDE su needs one instance of the daemon per host, instead of per desktop
-   session.
diff --git a/kdesu/LICENSE.readme b/kdesu/LICENSE.readme
deleted file mode 100644
index 234d3c1d8..000000000
--- a/kdesu/LICENSE.readme
+++ /dev/null
@@ -1,125 +0,0 @@
-tdesu - a KDE front end to su
-
-Copyright (c) 1998 by Pietro Iglio <iglio@fub.it>
-Copyright (c) 1999,2000 by Geert Jansen <jansen@kde.org>
-
-                               The "Artistic License"
-
-                                      Preamble
-
-        The intent of this document is to state the conditions under which a
-        Package may be copied, such that the Copyright Holder maintains some
-        semblance of artistic control over the development of the package,
-        while giving the users of the package the right to use and
-        distribute the Package in a more-or-less customary fashion, plus the
-        right to make reasonable modifications.
-
-        Definitions:
-
-           * "Package" refers to the collection of files distributed by the
-             Copyright Holder, and derivatives of that collection of files
-             created through textual modification.
-
-           * "Standard Version" refers to such a Package if it has not been
-             modified, or has been modified in accordance with the wishes of
-             the Copyright Holder.
-
-           * "Copyright Holder" is whoever is named in the copyright or
-             copyrights for the package.
-
-           * "You" is you, if you're thinking about copying or distributing
-             this Package.
-
-           * "Reasonable copying fee" is whatever you can justify on the
-             basis of media cost, duplication charges, time of people
-             involved, and so on. (You will not be required to justify it to
-             the Copyright Holder, but only to the computing community at
-             large as a market that must bear the fee.)
-
-           * "Freely Available" means that no fee is charged for the item
-             itself, though there may be fees involved in handling the item.
-             It also means that recipients of the item may redistribute it
-             under the same conditions they received it.
-
-        1. You may make and give away verbatim copies of the source form of
-        the Standard Version of this Package without restriction, provided
-        that you duplicate all of the original copyright notices and
-        associated disclaimers.
-
-        2. You may apply bug fixes, portability fixes and other
-        modifications derived from the Public Domain or from the Copyright
-        Holder. A Package modified in such a way shall still be considered
-        the Standard Version.
-
-        3. You may otherwise modify your copy of this Package in any way,
-        provided that you insert a prominent notice in each changed file
-        stating how and when you changed that file, and provided that you do
-        at least ONE of the following:
-
-             a) place your modifications in the Public Domain or
-             otherwise make them Freely Available, such as by posting
-             said modifications to Usenet or an equivalent medium, or
-             placing the modifications on a major archive site such as
-             ftp.uu.net, or by allowing the Copyright Holder to include
-             your modifications in the Standard Version of the Package.
-
-             b) use the modified Package only within your corporation
-             or organization.
-
-             c) rename any non-standard executables so the names do not
-             conflict with standard executables, which must also be
-             provided, and provide a separate manual page for each
-             non-standard executable that clearly documents how it
-             differs from the Standard Version.
-
-             d) make other distribution arrangements with the Copyright
-             Holder.
-
-        4. You may distribute the programs of this Package in object code or
-        executable form, provided that you do at least ONE of the following:
-
-             a) distribute a Standard Version of the executables and
-             library files, together with instructions (in the manual
-             page or equivalent) on where to get the Standard Version.
-
-             b) accompany the distribution with the machine-readable
-             source of the Package with your modifications.
-
-             c) accompany any non-standard executables with their
-             corresponding Standard Version executables, giving the
-             non-standard executables non-standard names, and clearly
-             documenting the differences in manual pages (or
-             equivalent), together with instructions on where to get
-             the Standard Version.
-
-             d) make other distribution arrangements with the Copyright
-             Holder.
-
-        5. You may charge a reasonable copying fee for any distribution of
-        this Package. You may charge any fee you choose for support of this
-        Package. You may not charge a fee for this Package itself. However,
-        you may distribute this Package in aggregate with other (possibly
-        commercial) programs as part of a larger (possibly commercial)
-        software distribution provided that you do not advertise this
-        Package as a product of your own.
-
-        6. The scripts and library files supplied as input to or produced as
-        output from the programs of this Package do not automatically fall
-        under the copyright of this Package, but belong to whomever
-        generated them, and may be sold commercially, and may be aggregated
-        with this Package.
-
-        7. C or perl subroutines supplied by you and linked into this
-        Package shall not be considered part of this Package.
-
-        8. The name of the Copyright Holder may not be used to endorse or
-        promote products derived from this software without specific prior
-        written permission.
-
-        9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
-        IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-        WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
-                                      The End
-
-
diff --git a/kdesu/Makefile.am b/kdesu/Makefile.am
deleted file mode 100644
index a07d47884..000000000
--- a/kdesu/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-SUBDIRS = tdesu tdesud
diff --git a/kdesu/README b/kdesu/README
deleted file mode 100644
index caa2e0d48..000000000
--- a/kdesu/README
+++ /dev/null
@@ -1,34 +0,0 @@
-
-        KDESU: A KDE front end for `su'.
-
-What is it?
-
-    KDE su is a graphical front end to the Unix `su' utility. It allows you
-    to run programs as another user by entering their password.
-    It is _not_ a setuid root program, it runs completely unprivileged. 
-    The system's program `su' is used for acquiring privileges.
-
-Usage:
-
-    $ tdesu -h
-    $ tdesu -c konsole
-
-Please see the HTML documentation!
-
-Notes and Acknowledgements:
-
-    Credits go to Pietro Iglio. He was the original author of KDE su 
-    (until version 0.3). I was writing a similar program when I
-    found out that KDE su already existed. We decided to merge our
-    projects and that I would continue with it.
-
-    If you find any bug of have a suggestion, feel free to contact me
-    at <kde@geeksrus.net>.
-
-
-License:
-
-    KDE su comes under the "Artistic License". See the file LICENSE.readme
-    for the exact terms.
-
-Alan Eldridge	2002/10/12 <kde@geeksrus.net>
diff --git a/kdesu/TODO b/kdesu/TODO
deleted file mode 100644
index 1be1aec4b..000000000
--- a/kdesu/TODO
+++ /dev/null
@@ -1,3 +0,0 @@
-KDE su TODO list.
-
-* Currently nothing
diff --git a/kdesu/configure.in.in b/kdesu/configure.in.in
deleted file mode 100644
index 512825786..000000000
--- a/kdesu/configure.in.in
+++ /dev/null
@@ -1,62 +0,0 @@
-dnl Check for "struct ucred"
-AC_MSG_CHECKING("struct ucred")
-AC_TRY_COMPILE(
-[
-  #define _GNU_SOURCE 1
-  #include <sys/socket.h>
-],
-[
-  struct ucred red;
-],  have_ucred=yes
-  , have_ucred=no
-)
-if test "$have_ucred" = "yes"; then
-    AC_DEFINE(HAVE_STRUCT_UCRED, 1, [Define if you have the struct ucred])
-    AC_MSG_RESULT(yes)
-else
-    AC_MSG_RESULT(no)
-fi
-
-dnl Check for the group "nogroup" or "nobody" Use -2 otherwise.
-AC_MSG_CHECKING(nogroup)
-AC_TRY_RUN([
-    #include <grp.h>
-    #include <sys/types.h>
-
-    int main() 
-    {
-	struct group *grp = getgrnam("nogroup");
-	if (grp) return 0;
-	return 1;
-    }
-], nogroup=nogroup, 
-AC_TRY_RUN([
-    #include <grp.h>
-    #include <sys/types.h>
-
-    int main() 
-    {
-	struct group *grp = getgrnam("nobody");
-	if (grp) return 0;
-	return 1;
-    }
-], nogroup=nobody, 
-nogroup=65534, nogroup=65534), nogroup=65534)
-AC_MSG_RESULT($nogroup)
-AC_SUBST(nogroup)
-AC_CHECK_FUNCS(getpeereid)
-
-AC_ARG_WITH(sudo-tdesu-backend,
-	    AC_HELP_STRING([--with-sudo-tdesu-backend],
-			   [use sudo as backend for tdesu (default is su)]),
-[
-    if test x$withval = xyes; then
-        use_tdesu_backend="sudo"
-    else
-        use_tdesu_backend="su"
-    fi
-],
-    use_tdesu_backend="su"
-)
-
-AC_DEFINE_UNQUOTED(DEFAULT_SUPER_USER_COMMAND, "$use_tdesu_backend", [Use su or sudo])
diff --git a/kdesu/kdesu/CMakeLists.txt b/kdesu/kdesu/CMakeLists.txt
deleted file mode 100644
index 7eb878140..000000000
--- a/kdesu/kdesu/CMakeLists.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}
-  ${CMAKE_BINARY_DIR}
-  ${TDE_INCLUDE_DIR}
-  ${TQT_INCLUDE_DIRS}
-)
-
-link_directories(
-  ${TQT_LIBRARY_DIRS}
-)
-
-
-##### tdesu (executable) ########################
-
-tde_add_executable( tdesu AUTOMOC
-  SOURCES tdesu.cpp sudlg.cpp
-  LINK tdesu-shared kio-shared
-  DESTINATION ${BIN_INSTALL_DIR}
-)
diff --git a/kdesu/kdesu/Makefile.am b/kdesu/kdesu/Makefile.am
deleted file mode 100644
index f322f0a6f..000000000
--- a/kdesu/kdesu/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-## Makefile.am for tdesu by Geert Jansen
-
-INCLUDES= $(all_includes)
-
-## tdesu
-bin_PROGRAMS = 	tdesu
-tdesu_SOURCES = tdesu.cpp sudlg.cpp
-tdesu_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_KDECORE) $(LIB_KDEUI) -ltdefx $(LIB_KIO) -lktexteditor
-tdesu_LDADD   = $(LIB_KIO) -ltdesu
-tdesu_METASOURCES =  AUTO
-noinst_HEADERS = sudlg.h
-
-## Messages
-messages:
-	$(XGETTEXT) $(tdesu_SOURCES) -o $(podir)/tdesu.pot
diff --git a/kdesu/kdesu/kdesu.cpp b/kdesu/kdesu/kdesu.cpp
deleted file mode 100644
index d6aeebc6f..000000000
--- a/kdesu/kdesu/kdesu.cpp
+++ /dev/null
@@ -1,431 +0,0 @@
-/* vi: ts=8 sts=4 sw=4
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1998 Pietro Iglio <iglio@fub.it>
- * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
- */
-
-#include <config.h>
-
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <pwd.h>
-#include <stdlib.h>
-
-#include <sys/time.h>
-#include <sys/resource.h>
-#if defined(HAVE_SYS_WAIT_H)
-#include <sys/wait.h>
-#endif
-
-#include <tqstring.h>
-#include <tqfileinfo.h>
-#include <tqglobal.h>
-#include <tqfile.h>
-#include <tqdir.h>
-
-#include <dcopclient.h>
-
-#include <kdebug.h>
-#include <kglobal.h>
-#include <kapplication.h>
-#include <kstandarddirs.h>
-#include <kconfig.h>
-#include <klocale.h>
-#include <kaboutdata.h>
-#include <kcmdlineargs.h>
-#include <kmessagebox.h>
-#include <krun.h>
-#include <kuser.h>
-
-#include <tdesu/defaults.h>
-#include <tdesu/su.h>
-#include <tdesu/client.h>
-
-#include "sudlg.h"
-
-#define ERR strerror(errno)
-
-TQCString command;
-const char *Version = "1.0";
-
-// NOTE: if you change the position of the -u switch, be sure to adjust it
-// at the beginning of main()
-static KCmdLineOptions options[] = {
-    { "+command", I18N_NOOP("Specifies the command to run"), 0 },
-    { "c <command>", I18N_NOOP("Specifies the command to run"), "" },
-    { "f <file>", I18N_NOOP("Run command under target uid if <file> is not writable"), "" },
-    { "u <user>", I18N_NOOP("Specifies the target uid"), "root" },
-    { "n", I18N_NOOP("Do not keep password"), 0 },
-    { "s", I18N_NOOP("Stop the daemon (forgets all passwords)"), 0 },
-    { "t", I18N_NOOP("Enable terminal output (no password keeping)"), 0 },
-    { "p <prio>", I18N_NOOP("Set priority value: 0 <= prio <= 100, 0 is lowest"), "50" },
-    { "r", I18N_NOOP("Use realtime scheduling"), 0 },
-    { "newdcop", I18N_NOOP("Create a new dcopserver instance (this can break your current TDE session)"), 0 },
-    { "noignorebutton", I18N_NOOP("Do not display ignore button"), 0 },
-    { "i <icon name>", I18N_NOOP("Specify icon to use in the password dialog"), 0},
-    { "d", I18N_NOOP("Do not show the command to be run in the dialog"), 0},
-    KCmdLineLastOption
-};
-
-
-TQCString dcopNetworkId()
-{
-    TQCString result;
-    result.resize(1025);
-    TQFile file(DCOPClient::dcopServerFile());
-    if (!file.open(IO_ReadOnly))
-        return "";
-    int i = file.readLine(result.data(), 1024);
-    if (i <= 0)
-        return "";
-    result.data()[i-1] = '\0'; // strip newline
-    return result;
-}
-
-static int startApp();
-
-int main(int argc, char *argv[])
-{
-    // FIXME: this can be considered a poor man's solution, as it's not
-    // directly obvious to a gui user. :)
-    // anyway, i vote against removing it even when we have a proper gui
-    // implementation.  -- ossi
-    const char *duser = ::getenv("ADMIN_ACCOUNT");
-    if (duser && duser[0])
-        options[3].def = duser;
-
-    KAboutData aboutData("tdesu", I18N_NOOP("KDE su"),
-            Version, I18N_NOOP("Runs a program with elevated privileges."),
-            KAboutData::License_Artistic,
-            "Copyright (c) 1998-2000 Geert Jansen, Pietro Iglio");
-    aboutData.addAuthor("Geert Jansen", I18N_NOOP("Maintainer"),
-            "jansen@kde.org", "http://www.stack.nl/~geertj/");
-    aboutData.addAuthor("Pietro Iglio", I18N_NOOP("Original author"),
-            "iglio@fub.it");
-
-    KCmdLineArgs::init(argc, argv, &aboutData);
-    KCmdLineArgs::addCmdLineOptions(options);
-    KApplication::disableAutoDcopRegistration();
-    // tdesu doesn't process SM events, so don't even connect to ksmserver
-    TQCString session_manager = getenv( "SESSION_MANAGER" );
-    unsetenv( "SESSION_MANAGER" );
-    KApplication app;
-    // but propagate it to the started app
-    if (session_manager.data())
-    {
-        setenv( "SESSION_MANAGER", session_manager.data(), 1 );
-    }
-    
-    {
-        KStartupInfoId id;
-        id.initId( kapp->startupId());
-        id.setupStartupEnv(); // make DESKTOP_STARTUP_ID env. var. available again
-    }
-
-    int result = startApp();
-
-    if (result == 127)
-    {
-        KMessageBox::sorry(0, i18n("Command '%1' not found.").arg(static_cast<const char *>(command)));
-    }
-
-    return result;
-}
-
-static int startApp()
-{
-    KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
-    // Stop daemon and exit?
-    if (args->isSet("s"))
-    {
-        KDEsuClient client;
-        if (client.ping() == -1)
-        {
-            kdError(1206) << "Daemon not running -- nothing to stop\n";
-            exit(1);
-        }
-        if (client.stopServer() != -1)
-        {
-            kdDebug(1206) << "Daemon stopped\n";
-            exit(0);
-        }
-        kdError(1206) << "Could not stop daemon\n";
-        exit(1);
-    }
-
-    TQString icon;
-    if ( args->isSet("i"))
-	icon = args->getOption("i");	
-
-    bool prompt = true;
-    if ( args->isSet("d"))
-	prompt = false;
-
-    // Get target uid
-    TQCString user = args->getOption("u");
-    TQCString auth_user = user;
-    struct passwd *pw = getpwnam(user);
-    if (pw == 0L)
-    {
-        kdError(1206) << "User " << user << " does not exist\n";
-        exit(1);
-    }
-    bool change_uid = (getuid() != pw->pw_uid);
-
-    // If file is writeable, do not change uid
-    TQString file = TQFile::decodeName(args->getOption("f"));
-    if (change_uid && !file.isEmpty())
-    {
-        if (file.tqat(0) != '/')
-        {
-            KStandardDirs dirs;
-            dirs.addKDEDefaults();
-            file = dirs.findResource("config", file);
-            if (file.isEmpty())
-            {
-                kdError(1206) << "Config file not found: " << file << "\n";
-                exit(1);
-            }
-        }
-        TQFileInfo fi(file);
-        if (!fi.exists())
-        {
-            kdError(1206) << "File does not exist: " << file << "\n";
-            exit(1);
-        }
-        change_uid = !fi.isWritable();
-    }
-
-    // Get priority/scheduler
-    TQCString tmp = args->getOption("p");
-    bool ok;
-    int priority = tmp.toInt(&ok);
-    if (!ok || (priority < 0) || (priority > 100))
-    {
-        KCmdLineArgs::usage(i18n("Illegal priority: %1").arg(static_cast<const char *>(tmp)));
-        exit(1);
-    }
-    int scheduler = SuProcess::SchedNormal;
-    if (args->isSet("r"))
-        scheduler = SuProcess::SchedRealtime;
-    if ((priority > 50) || (scheduler != SuProcess::SchedNormal))
-    {
-        change_uid = true;
-        auth_user = "root";
-    }
-
-    // Get command
-    if (args->isSet("c"))
-    {
-        command = args->getOption("c");
-        for (int i=0; i<args->count(); i++)
-        {
-            TQString arg = TQFile::decodeName(args->arg(i));
-            KRun::shellQuote(arg);
-            command += " ";
-            command += TQFile::encodeName(arg);
-        }
-    }
-    else 
-    {
-        if( args->count() == 0 )
-        {
-            KCmdLineArgs::usage(i18n("No command specified."));
-            exit(1);
-        }
-        command = args->arg(0);
-        for (int i=1; i<args->count(); i++)
-        {
-            TQString arg = TQFile::decodeName(args->arg(i));
-            KRun::shellQuote(arg);
-            command += " ";
-            command += TQFile::encodeName(arg);
-        }
-    }
-
-    // Don't change uid if we're don't need to.
-    if (!change_uid)
-    {
-        int result = system(command);
-        result = WEXITSTATUS(result);
-        return result;
-    }
-
-    // Check for daemon and start if necessary
-    bool just_started = false;
-    bool have_daemon = true;
-    KDEsuClient client;
-    if (!client.isServerSGID())
-    {
-        kdWarning(1206) << "Daemon not safe (not sgid), not using it.\n";
-        have_daemon = false;
-    }
-    else if (client.ping() == -1)
-    {
-        if (client.startServer() == -1)
-        {
-            kdWarning(1206) << "Could not start daemon, reduced functionality.\n";
-            have_daemon = false;
-        }
-        just_started = true;
-    }
-
-    // Try to exec the command with tdesud.
-    bool keep = !args->isSet("n") && have_daemon;
-    bool terminal = true;
-    bool new_dcop = args->isSet("newdcop");
-    bool withIgnoreButton = args->isSet("ignorebutton");
-    
-    QCStringList env;
-    TQCString options;
-    env << ( "DESKTOP_STARTUP_ID=" + kapp->startupId());
-    
-    if (pw->pw_uid)
-    {
-       // Only propagate KDEHOME for non-root users,
-       // root uses KDEROOTHOME
-       
-       // Translate the KDEHOME of this user to the new user.
-       TQString kdeHome = KGlobal::dirs()->relativeLocation("home", KGlobal::dirs()->localkdedir());
-       if (kdeHome[0] != '/')
-          kdeHome.prepend("~/"); 
-       else
-          kdeHome=TQString::null; // Use default
-
-       env << ("KDEHOME="+ TQFile::encodeName(kdeHome));
-    }
-
-    KUser u;
-    env << (TQCString) ("KDESU_USER=" + u.loginName().local8Bit());
-    
-    if (!new_dcop)
-    {
-        TQCString ksycoca = "KDESYCOCA="+TQFile::encodeName(locateLocal("cache", "ksycoca"));
-        env << ksycoca;
-
-        options += "xf"; // X-only, dcop forwarding enabled.
-    }
-
-    if (keep && !terminal && !just_started)
-    {
-        client.setPriority(priority);
-        client.setScheduler(scheduler);
-        int result = client.exec(command, user, options, env);
-        if (result == 0)
-        {
-           result = client.exitCode();
-           return result;
-        }
-    }
-
-    // Set core dump size to 0 because we will have
-    // root's password in memory.
-    struct rlimit rlim;
-    rlim.rlim_cur = rlim.rlim_max = 0;
-    if (setrlimit(RLIMIT_CORE, &rlim))
-    {
-        kdError(1206) << "rlimit(): " << ERR << "\n";
-        exit(1);
-    }
-
-    // Read configuration
-    KConfig *config = KGlobal::config();
-    config->setGroup("Passwords");
-    int timeout = config->readNumEntry("Timeout", defTimeout);
-
-    // Check if we need a password
-    SuProcess proc;
-    proc.setUser(auth_user);
-    int needpw = proc.checkNeedPassword();
-    if (needpw < 0)
-    {
-        TQString err = i18n("Su returned with an error.\n");
-        KMessageBox::error(0L, err);
-        exit(1);
-    }
-    if (needpw == 0)
-    {
-        keep = 0;
-        kdDebug() << "Don't need password!!\n";
-    }
-
-    // Start the dialog
-    TQCString password;
-    if (needpw)
-    {
-        KStartupInfoId id;
-        id.initId( kapp->startupId());
-        KStartupInfoData data;
-        data.setSilent( KStartupInfoData::Yes );
-        KStartupInfo::sendChange( id, data );
-        KDEsuDialog dlg(user, auth_user, keep && !terminal,icon, withIgnoreButton);
-	if (prompt)
-	    dlg.addLine(i18n("Command:"), command);
-        if ((priority != 50) || (scheduler != SuProcess::SchedNormal))
-        {
-            TQString prio;
-            if (scheduler == SuProcess::SchedRealtime)
-                prio += i18n("realtime: ");
-            prio += TQString("%1/100").arg(priority);
-	    if (prompt)
-		dlg.addLine(i18n("Priority:"), prio);
-        }
-        int ret = dlg.exec();
-        if (ret == KDEsuDialog::Rejected)
-        {
-            KStartupInfo::sendFinish( id );
-            exit(0);
-        }
-        if (ret == KDEsuDialog::AsUser)
-            change_uid = false;
-        password = dlg.password();
-        keep = dlg.keep();
-        KConfigGroup(config,"Passwords").writeEntry("Keep", keep);
-        data.setSilent( KStartupInfoData::No );
-        KStartupInfo::sendChange( id, data );
-    }
-
-    // Some events may need to be handled (like a button animation)
-    kapp->processEvents();
-
-    // Run command
-    if (!change_uid)
-    {
-        int result = system(command);
-        result = WEXITSTATUS(result);
-        return result;
-    }
-    else if (keep && have_daemon)
-    {
-        client.setPass(password, timeout);
-        client.setPriority(priority);
-        client.setScheduler(scheduler);
-        int result = client.exec(command, user, options, env);
-        if (result == 0)
-        {
-            result = client.exitCode();
-            return result;
-        }
-    } else
-    {
-        SuProcess proc;
-        proc.setTerminal(terminal);
-        proc.setErase(true);
-        proc.setUser(user);
-        if (!new_dcop)
-        {
-            proc.setXOnly(true);
-            proc.setDCOPForwarding(true);
-        }
-        proc.setEnvironment(env);
-        proc.setPriority(priority);
-        proc.setScheduler(scheduler);
-        proc.setCommand(command);
-        int result = proc.exec(password);
-        return result;
-    }
-    return -1;
-}
-
diff --git a/kdesu/kdesu/sudlg.cpp b/kdesu/kdesu/sudlg.cpp
deleted file mode 100644
index cfda9168c..000000000
--- a/kdesu/kdesu/sudlg.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/* vi: ts=8 sts=4 sw=4
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 2000 Geert Jansen <jansen@kde.org>
- */
-
-#include <config.h>
-#include <tqstring.h>
-#include <kconfig.h>
-#include <kdebug.h>
-#include <klocale.h>
-#include <kmessagebox.h>
-
-#include <tdesu/su.h>
-#include "sudlg.h"
-
-KDEsuDialog::KDEsuDialog(TQCString user, TQCString auth_user, bool enableKeep,const TQString& icon, bool withIgnoreButton)
-     : KPasswordDialog(Password, enableKeep, (withIgnoreButton ? User1:NoDefault), icon)
-{
-    KConfig* config = KGlobal::config();
-    config->setGroup("super-user-command");
-    TQString superUserCommand = config->readEntry("super-user-command", DEFAULT_SUPER_USER_COMMAND);
-    if ( superUserCommand != "sudo" && superUserCommand != "su" ) {
-	kdWarning() << "unknown super user command" << endl;
-	superUserCommand = "su";
-    }
-
-    m_User = auth_user;
-    setCaption(i18n("Run as %1").arg(static_cast<const char *>(user)));
-
-    TQString prompt;
-    if (superUserCommand == "sudo" && m_User == "root") {
-	    prompt = i18n("Please enter your password." );
-    } else {
-        if (m_User == "root") {
-	    prompt = i18n("The action you requested needs root privileges. "
-	    "Please enter root's password below or click "
-	    "Ignore to continue with your current privileges.");
-        } else {
-	    prompt = i18n("The action you requested needs additional privileges. "
-		"Please enter the password for \"%1\" below or click "
-		"Ignore to continue with your current privileges.").arg(static_cast<const char *>(m_User));
-	}
-    }
-    setPrompt(prompt);
-
-    if( withIgnoreButton )
-	setButtonText(User1, i18n("&Ignore"));
-}
-
-
-KDEsuDialog::~KDEsuDialog()
-{
-}
-
-bool KDEsuDialog::checkPassword(const char *password)
-{
-    SuProcess proc;
-    proc.setUser(m_User);
-    int status = proc.checkInstall(password);
-    switch (status)
-    {
-    case -1:
-	KMessageBox::sorry(this, i18n("Conversation with su failed."));
-	done(Rejected);
-	return false;
-
-    case 0:
-	return true;
-
-    case SuProcess::SuNotFound:
-        KMessageBox::sorry(this,
-		i18n("The program 'su' is not found;\n"
-		     "make sure your PATH is set correctly."));
-	done(Rejected);
-	return false;
-
-    case SuProcess::SuNotAllowed:
-        KMessageBox::sorry(this,
-		i18n("You are not allowed to use 'su';\n"
-		     "on some systems, you need to be in a special "
-		     "group (often: wheel) to use this program."));
-	done(Rejected);
-	return false;
-
-    case SuProcess::SuIncorrectPassword:
-        KMessageBox::sorry(this, i18n("Incorrect password; please try again."));
-	return false;
-
-    default:
-        KMessageBox::error(this, i18n("Internal error: illegal return from "
-		"SuProcess::checkInstall()"));
-	done(Rejected);
-	return false;
-    }
-}
-
-void KDEsuDialog::slotUser1()
-{
-    done(AsUser);
-}
-
-#include "sudlg.moc"
diff --git a/kdesu/kdesu/sudlg.h b/kdesu/kdesu/sudlg.h
deleted file mode 100644
index 64a283a0e..000000000
--- a/kdesu/kdesu/sudlg.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* vi: ts=8 sts=4 sw=4
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 2000 Geert Jansen <jansen@kde.org>
- */
-
-#ifndef __SuDlg_h_Included__
-#define __SuDlg_h_Included__
-
-#include <kpassdlg.h>
-
-class KDEsuDialog
-    : public KPasswordDialog
-{
-    Q_OBJECT
-
-public:
-    KDEsuDialog(TQCString user, TQCString auth_user, bool enableKeep, const TQString& icon , bool withIgnoreButton=false);
-    ~KDEsuDialog();
-
-    enum ResultCodes { AsUser = 10 };
-    
-protected:
-    bool checkPassword(const char *password);
-    void slotUser1();
-    
-private:
-    TQCString m_User;
-};
-    
-
-#endif // __SuDlg_h_Included__
diff --git a/kdesu/kdesud/CMakeLists.txt b/kdesu/kdesud/CMakeLists.txt
deleted file mode 100644
index 2696a8197..000000000
--- a/kdesu/kdesud/CMakeLists.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-# FIXME there is used KDE_USE_FPIE
-
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}
-  ${CMAKE_BINARY_DIR}
-  ${TDE_INCLUDE_DIR}
-  ${TQT_INCLUDE_DIRS}
-)
-
-link_directories(
-  ${TQT_LIBRARY_DIRS}
-)
-
-
-##### tdesud (executable) #######################
-
-tde_add_executable( tdesud
-  SOURCES tdesud.cpp repo.cpp lexer.cpp handler.cpp secure.cpp
-  LINK tdesu-shared
-  DESTINATION ${BIN_INSTALL_DIR}
-)
-
-install( CODE "execute_process( COMMAND chown root:${nogroup} \$ENV{DESTDIR}${_destination}/tdesud )" )
-install( CODE "execute_process( COMMAND chmod 2755 \$ENV{DESTDIR}${_destination}/tdesud )" )
diff --git a/kdesu/kdesud/Makefile.am b/kdesu/kdesud/Makefile.am
deleted file mode 100644
index 140cbce06..000000000
--- a/kdesu/kdesud/Makefile.am
+++ /dev/null
@@ -1,31 +0,0 @@
-## Makefile.am for tdesud
-
-INCLUDES = $(all_includes)
-
-KDE_CXXFLAGS = $(KDE_USE_FPIE)
-
-bin_PROGRAMS = tdesud
-tdesud_SOURCES = tdesud.cpp repo.cpp lexer.cpp handler.cpp secure.cpp 
-tdesud_LDFLAGS = $(KDE_USE_PIE) $(all_libraries) $(KDE_RPATH)
-tdesud_LDADD = $(LIB_KDECORE) -ltdesu $(LIBSOCKET)
-noinst_HEADERS = repo.h handler.h lexer.h secure.h
-
-## tdesud needs to be suid or sgid something
-install-data-local:
-	@echo "********************************************************"
-	@echo ""
-	@echo "For security reasons, tdesud is installed setgid nogroup."
-	@echo "Kdesud is the daemon that implements the password caching."
-	@echo ""
-	@echo "You should NOT use the password caching feature if tdesud is"
-	@echo "not installed setgid nogroup."
-	@echo ""
-	@echo "********************************************************"
-
-install-exec-hook: 
-	@(chown root:@nogroup@ $(DESTDIR)$(bindir)/tdesud && chmod 2755  $(DESTDIR)$(bindir)/tdesud) \
-	|| echo "Error: Could not install tdesud as setgid nogroup!!\n" \
-	"The password caching feature is disabled."
-
-messages:
-	$(XGETTEXT) $(tdesud_SOURCES) -o $(podir)/tdesud.pot
diff --git a/kdesu/kdesud/handler.cpp b/kdesu/kdesud/handler.cpp
deleted file mode 100644
index 2a744b217..000000000
--- a/kdesu/kdesud/handler.cpp
+++ /dev/null
@@ -1,512 +0,0 @@
-/*
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
- *
- * handler.cpp: A connection handler for tdesud.
- */
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <unistd.h>
-#include <signal.h>
-#include <errno.h>
-#include <string.h>
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-
-#include <tqcstring.h>
-
-#include <kdebug.h>
-#include <tdesu/su.h>
-#include <tdesu/ssh.h>
-
-#include "handler.h"
-#include "repo.h"
-#include "lexer.h"
-#include "secure.h"
-
-
-// Global repository
-extern Repository *repo;
-void tdesud_cleanup();
-
-ConnectionHandler::ConnectionHandler(int fd)
-        : SocketSecurity(fd), m_exitCode(0), m_hasExitCode(false), m_needExitCode(false), m_pid(0)
-{
-    m_Fd = fd;
-    m_Priority = 50;
-    m_Scheduler = SuProcess::SchedNormal;
-}
-
-ConnectionHandler::~ConnectionHandler()
-{
-    m_Buf.fill('x');
-    m_Pass.fill('x');
-    close(m_Fd);
-}
-
-/*
- * Handle a connection: make sure we don't block
- */
-
-int ConnectionHandler::handle()
-{
-    int ret, nbytes;
-
-    // Add max 100 bytes to connection buffer
-
-    char tmpbuf[100];
-    nbytes = recv(m_Fd, tmpbuf, 99, 0);
-
-    if (nbytes < 0)
-    {
-        if (errno == EINTR)
-            return 0;
-        // read error
-        return -1;
-    } else if (nbytes == 0)
-    {
-        // eof
-        return -1;
-    }
-    tmpbuf[nbytes] = '\000';
-
-    if (m_Buf.length()+nbytes > 1024)
-    {
-        kdWarning(1205) << "line too long";
-        return -1;
-    }
-
-    m_Buf.append(tmpbuf);
-    memset(tmpbuf, 'x', nbytes);
-
-    // Do we have a complete command yet?
-    int n;
-    TQCString newbuf;
-    while ((n = m_Buf.find('\n')) != -1)
-    {
-        newbuf = m_Buf.left(n+1);
-        m_Buf.fill('x', n+1);
-        m_Buf.remove(0, n+1);
-        ret = doCommand(newbuf);
-        if (ret < 0)
-            return ret;
-    }
-
-    return 0;
-}
-
-TQCString ConnectionHandler::makeKey(int _namespace, TQCString s1,
-        TQCString s2, TQCString s3)
-{
-    TQCString res;
-    res.setNum(_namespace);
-    res += "*";
-    res += s1 + "*" + s2 + "*" + s3;
-    return res;
-}
-
-void ConnectionHandler::sendExitCode()
-{
-    if (!m_needExitCode)
-       return;
-    TQCString buf;
-    buf.setNum(m_exitCode);
-    buf.prepend("OK ");
-    buf.append("\n");
-
-    send(m_Fd, buf.data(), buf.length(), 0);
-}
-
-void ConnectionHandler::respond(int ok, TQCString s)
-{
-    TQCString buf;
-
-    switch (ok) {
-    case Res_OK:
-        buf = "OK";
-        break;
-    case Res_NO:
-    default:
-        buf = "NO";
-        break;
-    }
-
-    if (!s.isEmpty())
-    {
-        buf += ' ';
-        buf += s;
-    }
-
-    buf += '\n';
-
-    send(m_Fd, buf.data(), buf.length(), 0);
-}
-
-/*
- * Parse and do one command. On a parse error, return -1. This will
- * close the socket in the main accept loop.
- */
-
-int ConnectionHandler::doCommand(TQCString buf)
-{
-    if ((uid_t) peerUid() != getuid())
-    {
-        kdWarning(1205) << "Peer uid not equal to me\n";
-        kdWarning(1205) << "Peer: " << peerUid() << " Me: " << getuid() << endl;
-        return -1;
-    }
-
-    TQCString key, command, pass, name, user, value, env_check;
-    Data_entry data;
-
-    Lexer *l = new Lexer(buf);
-    int tok = l->lex();
-    switch (tok)
-    {
-    case Lexer::Tok_pass:  // "PASS password:string timeout:int\n"
-        tok = l->lex();
-        if (tok != Lexer::Tok_str)
-            goto parse_error;
-        m_Pass.fill('x');
-        m_Pass = l->lval();
-        tok = l->lex();
-        if (tok != Lexer::Tok_num)
-            goto parse_error;
-        m_Timeout = l->lval().toInt();
-        if (l->lex() != '\n')
-            goto parse_error;
-        if (m_Pass.isNull())
-           m_Pass = "";
-        kdDebug(1205) << "Password set!\n";
-        respond(Res_OK);
-        break;
-
-    case Lexer::Tok_host:  // "HOST host:string\n"
-        tok = l->lex();
-        if (tok != Lexer::Tok_str)
-            goto parse_error;
-        m_Host = l->lval();
-        if (l->lex() != '\n')
-            goto parse_error;
-        kdDebug(1205) << "Host set to " << m_Host << endl;
-        respond(Res_OK);
-        break;
-
-    case Lexer::Tok_prio:  // "PRIO priority:int\n"
-        tok = l->lex();
-        if (tok != Lexer::Tok_num)
-            goto parse_error;
-        m_Priority = l->lval().toInt();
-        if (l->lex() != '\n')
-            goto parse_error;
-        kdDebug(1205) << "priority set to " << m_Priority << endl;
-        respond(Res_OK);
-        break;
-
-    case Lexer::Tok_sched:  // "SCHD scheduler:int\n"
-        tok = l->lex();
-        if (tok != Lexer::Tok_num)
-            goto parse_error;
-        m_Scheduler = l->lval().toInt();
-        if (l->lex() != '\n')
-            goto parse_error;
-        kdDebug(1205) << "Scheduler set to " << m_Scheduler << endl;
-        respond(Res_OK);
-        break;
-
-    case Lexer::Tok_exec:  // "EXEC command:string user:string [options:string (env:string)*]\n"
-    {
-        TQCString options;
-        QCStringList env;
-        tok = l->lex();
-        if (tok != Lexer::Tok_str)
-            goto parse_error;
-        command = l->lval();
-        tok = l->lex();
-        if (tok != Lexer::Tok_str)
-            goto parse_error;
-        user = l->lval();
-        tok = l->lex();
-        if (tok != '\n')
-        {
-            if (tok != Lexer::Tok_str)
-                goto parse_error;
-            options = l->lval();
-            tok = l->lex();
-            while (tok != '\n')
-            {
-               if (tok != Lexer::Tok_str)
-                   goto parse_error;
-               TQCString env_str = l->lval();
-               env.append(env_str);
-               if (strncmp(env_str, "DESKTOP_STARTUP_ID=", strlen("DESKTOP_STARTUP_ID=")) != 0)
-                   env_check += "*"+env_str;
-               tok = l->lex();
-            }
-        }
-
-        TQCString auth_user;
-        if ((m_Scheduler != SuProcess::SchedNormal) || (m_Priority > 50))
-            auth_user = "root";
-        else
-            auth_user = user;
-        key = makeKey(2, m_Host, auth_user, command);
-        // We only use the command if the environment is the same.
-        if (repo->find(key) == env_check)
-        {
-           key = makeKey(0, m_Host, auth_user, command);
-           pass = repo->find(key);
-        }
-        if (pass.isNull()) // isNull() means no password, isEmpty() can mean empty password
-        {
-            if (m_Pass.isNull())
-            {
-                respond(Res_NO);
-                break;
-            }
-            data.value = env_check;
-            data.timeout = m_Timeout;
-            key = makeKey(2, m_Host, auth_user, command);
-            repo->add(key, data);
-            data.value = m_Pass;
-            data.timeout = m_Timeout;
-            key = makeKey(0, m_Host, auth_user, command);
-            repo->add(key, data);
-            pass = m_Pass;
-        }
-
-        // Execute the command asynchronously
-        kdDebug(1205) << "Executing command: " << command << endl;
-        pid_t pid = fork();
-        if (pid < 0)
-        {
-            kdDebug(1205) << "fork(): " << strerror(errno) << endl;
-            respond(Res_NO);
-            break;
-        } else if (pid > 0)
-        {
-            m_pid = pid;
-            respond(Res_OK);
-            break;
-        }
-
-        // Ignore SIGCHLD because "class SuProcess" needs waitpid()
-        signal(SIGCHLD, SIG_DFL);
-
-        int ret;
-        if (m_Host.isEmpty())
-        {
-            SuProcess proc;
-            proc.setCommand(command);
-            proc.setUser(user);
-            if (options.contains('x'))
-               proc.setXOnly(true);
-            if (options.contains('f'))
-               proc.setDCOPForwarding(true);
-            proc.setPriority(m_Priority);
-            proc.setScheduler(m_Scheduler);
-            proc.setEnvironment(env);
-            ret = proc.exec(pass.data());
-        } else
-        {
-            SshProcess proc;
-            proc.setCommand(command);
-            proc.setUser(user);
-            proc.setHost(m_Host);
-            ret = proc.exec(pass.data());
-        }
-
-        kdDebug(1205) << "Command completed: " << command << endl;
-        _exit(ret);
-    }
-
-    case Lexer::Tok_delCmd:  // "DEL command:string user:string\n"
-    tok = l->lex();
-    if (tok != Lexer::Tok_str)
-        goto parse_error;
-    command = l->lval();
-    tok = l->lex();
-    if (tok != Lexer::Tok_str)
-        goto parse_error;
-    user = l->lval();
-    if (l->lex() != '\n')
-        goto parse_error;
-    key = makeKey(0, m_Host, user, command);
-    if (repo->remove(key) < 0) {
-        kdDebug(1205) << "Unknown command: " << command << endl;
-        respond(Res_NO);
-    }
-    else {
-        kdDebug(1205) << "Deleted command: " << command << ", user = "
-                      << user << endl;
-        respond(Res_OK);
-    }
-    break;
-
-    case Lexer::Tok_delVar:  // "DELV name:string \n"
-    {
-    tok = l->lex();
-    if (tok != Lexer::Tok_str)
-        goto parse_error;
-    name = l->lval();
-    tok = l->lex();
-    if (tok != '\n')
-        goto parse_error;
-    key = makeKey(1, name);
-    if (repo->remove(key) < 0)
-    {
-        kdDebug(1205) << "Unknown name: " << name << endl;
-        respond(Res_NO);
-    }
-    else {
-        kdDebug(1205) << "Deleted name: " << name << endl;
-        respond(Res_OK);
-    }
-    break;
-    }
-
-    case Lexer::Tok_delGroup:  // "DELG group:string\n"
-    tok = l->lex();
-    if (tok != Lexer::Tok_str)
-        goto parse_error;
-    name = l->lval();
-    if (repo->removeGroup(name) < 0)
-    {
-        kdDebug(1205) << "No keys found under group: " << name << endl;
-        respond(Res_NO);
-    }
-    else
-    {
-        kdDebug(1205) << "Removed all keys under group: " << name << endl;
-        respond(Res_OK);
-    }
-    break;
-
-    case Lexer::Tok_delSpecialKey:  // "DELS special_key:string\n"
-    tok = l->lex();
-    if (tok != Lexer::Tok_str)
-        goto parse_error;
-    name = l->lval();
-    if (repo->removeSpecialKey(name) < 0)
-        respond(Res_NO);
-    else
-        respond(Res_OK);
-    break;
-
-    case Lexer::Tok_set:  // "SET name:string value:string group:string timeout:int\n"
-    tok = l->lex();
-    if (tok != Lexer::Tok_str)
-        goto parse_error;
-    name = l->lval();
-    tok = l->lex();
-    if (tok != Lexer::Tok_str)
-        goto parse_error;
-    data.value = l->lval();
-    tok = l->lex();
-    if (tok != Lexer::Tok_str)
-        goto parse_error;
-    data.group = l->lval();
-    tok = l->lex();
-    if (tok != Lexer::Tok_num)
-        goto parse_error;
-    data.timeout = l->lval().toInt();
-    if (l->lex() != '\n')
-        goto parse_error;
-    key = makeKey(1, name);
-    repo->add(key, data);
-    kdDebug(1205) << "Stored key: " << key << endl;
-    respond(Res_OK);
-    break;
-
-    case Lexer::Tok_get:  // "GET name:string\n"
-    tok = l->lex();
-    if (tok != Lexer::Tok_str)
-        goto parse_error;
-    name = l->lval();
-    if (l->lex() != '\n')
-        goto parse_error;
-    key = makeKey(1, name);
-    kdDebug(1205) << "Request for key: " << key << endl;
-    value = repo->find(key);
-    if (!value.isEmpty())
-        respond(Res_OK, value);
-    else
-        respond(Res_NO);
-    break;
-
-    case Lexer::Tok_getKeys:  // "GETK groupname:string\n"
-        tok = l->lex();
-        if (tok != Lexer::Tok_str)
-            goto parse_error;
-        name = l->lval();
-        if (l->lex() != '\n')
-            goto parse_error;
-        kdDebug(1205) << "Request for group key: " << name << endl;
-        value = repo->findKeys(name);
-        if (!value.isEmpty())
-            respond(Res_OK, value);
-        else
-            respond(Res_NO);
-        break;
-
-    case Lexer::Tok_chkGroup:  // "CHKG groupname:string\n"
-        tok = l->lex();
-        if (tok != Lexer::Tok_str)
-            goto parse_error;
-        name = l->lval();
-        if (l->lex() != '\n')
-            goto parse_error;
-        kdDebug(1205) << "Checking for group key: " << name << endl;
-        if ( repo->hasGroup( name ) < 0 )
-            respond(Res_NO);
-        else
-            respond(Res_OK);
-        break;
-
-    case Lexer::Tok_ping:  // "PING\n"
-        tok = l->lex();
-        if (tok != '\n')
-            goto parse_error;
-        respond(Res_OK);
-        break;
-
-    case Lexer::Tok_exit:  // "EXIT\n"
-        tok = l->lex();
-        if (tok != '\n')
-            goto parse_error;
-        m_needExitCode = true;
-        if (m_hasExitCode)
-           sendExitCode();
-        break;
-
-    case Lexer::Tok_stop:  // "STOP\n"
-        tok = l->lex();
-        if (tok != '\n')
-            goto parse_error;
-        kdDebug(1205) << "Stopping by command" << endl;
-        respond(Res_OK);
-        tdesud_cleanup();
-        exit(0);
-
-    default:
-        kdWarning(1205) << "Unknown command: " << l->lval() << endl;
-        respond(Res_NO);
-        goto parse_error;
-    }
-
-    delete l;
-    return 0;
-
-parse_error:
-    kdWarning(1205) << "Parse error" << endl;
-    delete l;
-    return -1;
-}
-
-
-
diff --git a/kdesu/kdesud/handler.h b/kdesu/kdesud/handler.h
deleted file mode 100644
index 8728efe78..000000000
--- a/kdesu/kdesud/handler.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* vi: ts=8 sts=4 sw=4
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
- */
-
-#ifndef __Handler_h_included__
-#define __Handler_h_included__
-
-#include <sys/types.h>
-
-#include <tqcstring.h>
-#include "secure.h"
-
-/**
- * A ConnectionHandler handles a client. It is called from the main program
- * loop whenever there is data to read from a corresponding socket.
- * It keeps reading data until a newline is read. Then, a command is parsed
- * and executed.
- */
-
-class ConnectionHandler: public SocketSecurity 
-{
-
-public:
-    ConnectionHandler(int fd);
-    ~ConnectionHandler();
-
-    /** Handle incoming data. */
-    int handle();
-
-    /* Send back exit code. */
-    void sendExitCode();
-
-private:
-    enum Results { Res_OK, Res_NO };
-
-    int doCommand(TQCString buf);
-    void respond(int ok, TQCString s=0);
-    TQCString makeKey(int namspace, TQCString s1, TQCString s2=0, TQCString s3=0);
-
-    int m_Fd, m_Timeout;
-    int m_Priority, m_Scheduler;
-    TQCString m_Buf, m_Pass, m_Host;
-public:
-    int m_exitCode;
-    bool m_hasExitCode;
-    bool m_needExitCode;
-    pid_t m_pid;
-};
-
-#endif
diff --git a/kdesu/kdesud/kdesud.cpp b/kdesu/kdesud/kdesud.cpp
deleted file mode 100644
index d369aaf9b..000000000
--- a/kdesu/kdesud/kdesud.cpp
+++ /dev/null
@@ -1,418 +0,0 @@
-/* vi: ts=8 sts=4 sw=4
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
- * 
- *
- * tdesud.cpp: KDE su daemon. Offers "keep password" functionality to kde su.
- *
- * The socket $KDEHOME/socket-$(HOSTNAME)/tdesud_$(display) is used for communication with
- * client programs.
- *
- * The protocol: Client initiates the connection. All commands and responses
- * are terminated by a newline.
- *
- *   Client                     Server     Description
- *   ------                     ------     -----------
- *
- *   PASS <pass> <timeout>      OK         Set password for commands in
- *                                         this session. Password is
- *                                         valid for <timeout> seconds.
- *
- *   USER <user>                OK         Set the target user [required]
- *
- *   EXEC <command>             OK         Execute command <command>. If
- *                              NO         <command> has been executed
- *                                         before (< timeout) no PASS
- *                                         command is needed.
- *                                              
- *   DEL <command>              OK         Delete password for command
- *                              NO         <command>.
- *
- *   PING                       OK         Ping the server (diagnostics).
- */
-
-
-#include <config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <string.h>
-#include <stdarg.h>
-#include <signal.h>
-#include <pwd.h>
-#include <errno.h>
-
-#include <sys/prctl.h>
-#include <sys/time.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sys/resource.h>
-#include <sys/wait.h>
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>                // Needed on some systems.
-#endif
-
-#include <tqptrvector.h>
-#include <tqfile.h>
-#include <tqregexp.h>
-
-#include <kinstance.h>
-#include <kdebug.h>
-#include <klocale.h>
-#include <kcmdlineargs.h>
-#include <kstandarddirs.h>
-#include <kaboutdata.h>
-#include <tdesu/client.h>
-#include <tdesu/defaults.h>
-#include <ksockaddr.h>
-
-#include "repo.h"
-#include "handler.h"
-
-#include <X11/X.h>
-#include <X11/Xlib.h>
-
-#ifndef SUN_LEN
-#define SUN_LEN(ptr) ((kde_socklen_t) (((struct sockaddr_un *) 0)->sun_path) \
-                     + strlen ((ptr)->sun_path))   
-#endif
-
-#define ERR strerror(errno)
-
-// Globals
-
-Repository *repo;
-const char *Version = "1.01";
-TQCString sock;
-Display *x11Display;
-int pipeOfDeath[2];
-
-
-void tdesud_cleanup()
-{
-    unlink(sock);
-}
-
-
-// Borrowed from kdebase/kaudio/kaudioserver.cpp
-
-extern "C" int xio_errhandler(Display *);
-
-int xio_errhandler(Display *)
-{
-    kdError(1205) << "Fatal IO error, exiting...\n";
-    tdesud_cleanup();
-    exit(1);
-    return 1;  //silence compilers
-}
-
-int initXconnection()
-{
-    x11Display = XOpenDisplay(NULL);
-    if (x11Display != 0L) 
-    {
-        XSetIOErrorHandler(xio_errhandler);
-        XCreateSimpleWindow(x11Display, DefaultRootWindow(x11Display), 
-                0, 0, 1, 1, 0,
-                BlackPixelOfScreen(DefaultScreenOfDisplay(x11Display)),
-                BlackPixelOfScreen(DefaultScreenOfDisplay(x11Display)));
-        return XConnectionNumber(x11Display);
-    } else 
-    {
-        kdWarning(1205) << "Can't connect to the X Server.\n";
-        kdWarning(1205) << "Might not terminate at end of session.\n";
-        return -1;
-    }
-}
-
-extern "C" {
-  void signal_exit(int);
-  void sigchld_handler(int);
-}
-
-void signal_exit(int sig)
-{
-    kdDebug(1205) << "Exiting on signal " << sig << "\n";
-    tdesud_cleanup();
-    exit(1);
-}
-
-void sigchld_handler(int)
-{
-    char c = ' ';
-    write(pipeOfDeath[1], &c, 1);
-}
-
-/**
- * Creates an AF_UNIX socket in socket resource, mode 0600.
- */
-
-int create_socket()
-{
-    int sockfd;
-    ksocklen_t addrlen;
-    struct stat s;
-
-    TQCString display(getenv("DISPLAY"));
-    if (display.isEmpty())
-    {
-        kdWarning(1205) << "$DISPLAY is not set\n";
-        return -1;
-    }
-
-    // strip the screen number from the display
-    display.replace(TQRegExp("\\.[0-9]+$"), "");
-
-    sock = TQFile::encodeName(locateLocal("socket", TQString("tdesud_%1").arg(static_cast<const char *>(display))));
-    int stat_err=lstat(sock, &s);
-    if(!stat_err && S_ISLNK(s.st_mode)) {
-        kdWarning(1205) << "Someone is running a symlink attack on you\n";
-        if(unlink(sock)) {
-            kdWarning(1205) << "Could not delete symlink\n";
-            return -1;
-        }
-    }
-
-    if (!access(sock, R_OK|W_OK)) 
-    {
-        KDEsuClient client;
-        if (client.ping() == -1) 
-        {
-            kdWarning(1205) << "stale socket exists\n";
-            if (unlink(sock)) 
-            {
-                kdWarning(1205) << "Could not delete stale socket\n";
-                return -1;
-            }
-        } else 
-        {
-            kdWarning(1205) << "tdesud is already running\n";
-            return -1;
-        }
-
-    }
-
-    sockfd = socket(PF_UNIX, SOCK_STREAM, 0);
-    if (sockfd < 0) 
-    {
-        kdError(1205) << "socket(): " << ERR << "\n";
-        return -1;
-    }
-
-    struct sockaddr_un addr;
-    addr.sun_family = AF_UNIX;
-    strncpy(addr.sun_path, sock, sizeof(addr.sun_path)-1);
-    addr.sun_path[sizeof(addr.sun_path)-1] = '\000';
-    addrlen = SUN_LEN(&addr);
-    if (bind(sockfd, (struct sockaddr *)&addr, addrlen) < 0) 
-    {
-        kdError(1205) << "bind(): " << ERR << "\n";
-        return -1;
-    }
-
-    struct linger lin;
-    lin.l_onoff = lin.l_linger = 0;
-    if (setsockopt(sockfd, SOL_SOCKET, SO_LINGER, (char *) &lin,
-                   sizeof(linger)) < 0) 
-    {
-        kdError(1205) << "setsockopt(SO_LINGER): " << ERR << "\n";
-        return -1;
-    }
-
-    int opt = 1;
-    if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *) &opt,
-                   sizeof(opt)) < 0) 
-    {
-        kdError(1205) << "setsockopt(SO_REUSEADDR): " << ERR << "\n";
-        return -1;
-    }
-    opt = 1;
-    if (setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, (char *) &opt,
-                   sizeof(opt)) < 0) 
-    {
-        kdError(1205) << "setsockopt(SO_KEEPALIVE): " << ERR << "\n";
-        return -1;
-    }
-    chmod(sock, 0600);
-    return sockfd;
-}
-
-
-/**
- * Main program
- */
-
-int main(int argc, char *argv[])
-{
-    prctl(PR_SET_DUMPABLE, 0);
-
-    KAboutData aboutData("tdesud", I18N_NOOP("KDE su daemon"),
-            Version, I18N_NOOP("Daemon used by tdesu"),
-            KAboutData::License_Artistic,
-            "Copyright (c) 1999,2000 Geert Jansen");
-    aboutData.addAuthor("Geert Jansen", I18N_NOOP("Author"),
-            "jansen@kde.org", "http://www.stack.nl/~geertj/");
-    KCmdLineArgs::init(argc, argv, &aboutData);
-    KInstance instance(&aboutData);
-
-    // Set core dump size to 0
-    struct rlimit rlim;
-    rlim.rlim_cur = rlim.rlim_max = 0;
-    if (setrlimit(RLIMIT_CORE, &rlim) < 0) 
-    {
-        kdError(1205) << "setrlimit(): " << ERR << "\n";
-        exit(1);
-    }
-
-    // Create the Unix socket.
-    int sockfd = create_socket();
-    if (sockfd < 0)
-        exit(1);
-    if (listen(sockfd, 1) < 0) 
-    {
-        kdError(1205) << "listen(): " << ERR << "\n";
-        tdesud_cleanup();
-        exit(1);
-    }
-    int maxfd = sockfd;
-
-    // Ok, we're accepting connections. Fork to the background.
-    pid_t pid = fork();
-    if (pid == -1) 
-    {
-        kdError(1205) << "fork():" << ERR << "\n";
-        tdesud_cleanup();
-        exit(1);
-    }
-    if (pid)
-        exit(0);
-
-    // Make sure we exit when the display gets closed.
-    int x11Fd = initXconnection();
-    maxfd = QMAX(maxfd, x11Fd);
-
-    repo = new Repository;
-    TQPtrVector<ConnectionHandler> handler;
-    handler.setAutoDelete(true);
-
-    pipe(pipeOfDeath);
-    maxfd = QMAX(maxfd, pipeOfDeath[0]);
-
-    // Signal handlers 
-    struct sigaction sa;
-    sa.sa_handler = signal_exit;
-    sigemptyset(&sa.sa_mask);
-    sa.sa_flags = 0;
-    sigaction(SIGHUP, &sa, 0L);
-    sigaction(SIGINT, &sa, 0L);
-    sigaction(SIGTERM, &sa, 0L);
-    sigaction(SIGQUIT, &sa, 0L);
-
-    sa.sa_handler = sigchld_handler;
-    sa.sa_flags = SA_NOCLDSTOP;
-    sigaction(SIGCHLD, &sa, 0L);
-    sa.sa_handler = SIG_IGN;
-    sigaction(SIGPIPE, &sa, 0L);
-
-    // Main execution loop 
-
-    ksocklen_t addrlen;
-    struct sockaddr_un clientname;
-
-    fd_set tmp_fds, active_fds;
-    FD_ZERO(&active_fds);
-    FD_SET(sockfd, &active_fds);
-    FD_SET(pipeOfDeath[0], &active_fds);
-    if (x11Fd != -1)
-        FD_SET(x11Fd, &active_fds);
-
-    while (1) 
-    {
-        tmp_fds = active_fds;
-        if(x11Display)
-            XFlush(x11Display);
-        if (select(maxfd+1, &tmp_fds, 0L, 0L, 0L) < 0) 
-        {
-            if (errno == EINTR) continue;
-            
-            kdError(1205) << "select(): " << ERR << "\n";
-            exit(1);
-        }
-        repo->expire();
-        for (int i=0; i<=maxfd; i++) 
-        {
-            if (!FD_ISSET(i, &tmp_fds)) 
-                continue;
-
-            if (i == pipeOfDeath[0])
-            {
-                char buf[101];
-                read(pipeOfDeath[0], buf, 100);
-                pid_t result;
-                do
-                {
-                    int status;
-                    result = waitpid((pid_t)-1, &status, WNOHANG);
-                    if (result > 0)
-                    {
-                        for(int j=handler.size(); j--;)
-                        {
-                            if (handler[j] && (handler[j]->m_pid == result))
-                            {
-                                handler[j]->m_exitCode = WEXITSTATUS(status);
-                                handler[j]->m_hasExitCode = true;
-                                handler[j]->sendExitCode();
-                                handler[j]->m_pid = 0;
-                                break;
-                            }
-                        }
-                    }
-                }
-                while(result > 0);
-            }
-
-            if (i == x11Fd) 
-            {
-                // Discard X events
-                XEvent event_return;
-                if (x11Display)
-                    while(XPending(x11Display))
-                        XNextEvent(x11Display, &event_return);
-                continue;
-            }
-
-            if (i == sockfd) 
-            {
-                // Accept new connection
-                int fd;
-                addrlen = 64;
-                fd = accept(sockfd, (struct sockaddr *) &clientname, &addrlen);
-                if (fd < 0) 
-                {
-                    kdError(1205) << "accept():" << ERR << "\n";
-                    continue;
-                }
-                if (fd+1 > (int) handler.size())
-                    handler.resize(fd+1);
-                handler.insert(fd, new ConnectionHandler(fd));
-                maxfd = TQMAX(maxfd, fd);
-                FD_SET(fd, &active_fds);
-                continue;
-            }
-
-            // handle alreay established connection
-            if (handler[i] && handler[i]->handle() < 0) 
-            {
-                handler.remove(i);
-                FD_CLR(i, &active_fds);
-            }
-        }
-    }
-    kdWarning(1205) << "???\n";
-}
-
diff --git a/kdesu/kdesud/lexer.cpp b/kdesu/kdesud/lexer.cpp
deleted file mode 100644
index f1932f07d..000000000
--- a/kdesu/kdesud/lexer.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-/* vi: ts=8 sts=4 sw=4
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
- * 
- * lexer.cpp: A lexer for the tdesud protocol. See tdesud.cpp for a
- *            description of the protocol.
- */
-
-#include <ctype.h>
-#include <tqcstring.h>
-#include "lexer.h"
-
-
-Lexer::Lexer(const TQCString &input)
-{
-    m_Input = input;
-    in = 0;
-}
-
-Lexer::~Lexer()
-{
-    // Erase buffers
-    m_Input.fill('x');
-    m_Output.fill('x');
-}
-
-TQCString &Lexer::lval()
-{
-    return m_Output;
-}
-
-/*
- * lex() is the lexer. There is no end-of-input check here so that has to be
- * done by the caller.
- */
-
-int Lexer::lex()
-{
-    char c;
-
-    c = m_Input[in++];
-    m_Output.fill('x');
-    m_Output.resize(0);
-
-    while (1) 
-    {
-	// newline? 
-	if (c == '\n')
-	    return '\n';
-
-	// No control characters 
-	if (iscntrl(c))
-	    return Tok_none;
-
-	if (isspace(c))
-	    while (isspace(c = m_Input[in++]));
-
-	// number?
-	if (isdigit(c)) 
-	{
-	    m_Output += c;
-	    while (isdigit(c = m_Input[in++]))
-		m_Output += c;
-	    in--;
-	    return Tok_num;
-	}
-
-	// quoted string?
-	if (c == '"') 
-	{
-	    c = m_Input[in++];
-	    while ((c != '"') && !iscntrl(c)) {
-		// handle escaped characters
-		if (c == '\\')
-		    m_Output += m_Input[in++];
-		else
-		    m_Output += c;
-		c = m_Input[in++];
-	    }
-	    if (c == '"')
-		return Tok_str;
-	    return Tok_none;
-	}
-
-	// normal string
-	while (!isspace(c) && !iscntrl(c)) 
-	{
-	    m_Output += c;
-	    c = m_Input[in++];
-	}
-	in--;
-
-	// command? 
-	if (m_Output.length() <= 4) 
-	{
-	    if (m_Output == "EXEC")
-		return Tok_exec;
-	    if (m_Output == "PASS")
-		return Tok_pass;
-	    if (m_Output == "DEL")
-		return Tok_delCmd;
-	    if (m_Output == "PING")
-		return Tok_ping;
-	    if (m_Output == "EXIT")
-		return Tok_exit;
-	    if (m_Output == "STOP")
-		return Tok_stop;
-	    if (m_Output == "SET")
-		return Tok_set;
-	    if (m_Output == "GET")
-		return Tok_get;
-	    if (m_Output == "HOST")
-		return Tok_host;
-	    if (m_Output == "SCHD")
-		return Tok_sched;
-	    if (m_Output == "PRIO")
-		return Tok_prio;
-	    if (m_Output == "DELV")
-		return Tok_delVar;
-	    if (m_Output == "DELG")
-		return Tok_delGroup;
-	    if (m_Output == "DELS")
-		return Tok_delSpecialKey;
-        if (m_Output == "GETK")
-        return Tok_getKeys;
-        if (m_Output == "CHKG")
-        return Tok_chkGroup;
-	}
-
-	return Tok_str;
-    }
-}
-
diff --git a/kdesu/kdesud/lexer.h b/kdesu/kdesud/lexer.h
deleted file mode 100644
index d8f529cd8..000000000
--- a/kdesu/kdesud/lexer.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* vi: ts=8 sts=4 sw=4
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
- */
-
-#ifndef __Lexer_h_included__
-#define __Lexer_h_included__
-
-class TQCString;
-
-/**
- * This is a lexer for the tdesud protocol.
- */
-
-class Lexer {
-public:
-    Lexer(const TQCString &input);
-    ~Lexer();
-
-    /** Read next token. */
-    int lex();
-
-    /** Return the token's value. */
-    TQCString &lval();
-
-    enum Tokens { 
-    Tok_none, Tok_exec=256, Tok_pass, Tok_delCmd,
-    Tok_ping, Tok_str, Tok_num , Tok_stop,
-    Tok_set, Tok_get, Tok_delVar, Tok_delGroup,
-    Tok_host, Tok_prio, Tok_sched, Tok_getKeys,
-    Tok_chkGroup, Tok_delSpecialKey, Tok_exit
-    };
-
-private:
-    TQCString m_Input;
-    TQCString m_Output;
-
-    int in;
-};
-
-#endif
diff --git a/kdesu/kdesud/repo.cpp b/kdesu/kdesud/repo.cpp
deleted file mode 100644
index e923d6411..000000000
--- a/kdesu/kdesud/repo.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-/* vi: ts=8 sts=4 sw=4
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1999,2000 Geert Jansen <g.t.jansen@stud.tue.nl>
- */
-
-#include <time.h>
-#include <assert.h>
-
-#include <tqcstring.h>
-#include <tqmap.h>
-#include <tqvaluestack.h>
-#include <kdebug.h>
-
-#include "repo.h"
-
-
-Repository::Repository()
-{
-    head_time = (unsigned) -1;
-}
-
-
-Repository::~Repository()
-{}
-
-
-void Repository::add(const TQCString &key, Data_entry &data)
-{
-    RepoIterator it = repo.find(key);
-    if (it != repo.end())
-        remove(key);
-    if (data.timeout == 0)
-        data.timeout = (unsigned) -1;
-    else
-        data.timeout += time(0L);
-    head_time = QMIN(head_time, data.timeout);
-    repo.insert(key, data);
-}
-
-int Repository::remove(const TQCString &key)
-{
-    if( key.isEmpty() )
-        return -1;
-
-     RepoIterator it = repo.find(key);
-     if (it == repo.end())
-        return -1;
-     it.data().value.fill('x');
-     it.data().group.fill('x');
-     repo.remove(it);
-     return 0;
-}
-
-int Repository::removeSpecialKey(const TQCString &key)
-{
-    int found = -1;
-    if ( !key.isEmpty() )
-    {
-        TQValueStack<TQCString> rm_keys;
-        for (RepoCIterator it=repo.begin(); it!=repo.end(); ++it)
-        {
-            if (  key.find( static_cast<const char *>(it.data().group) ) == 0 &&
-                  it.key().find( static_cast<const char *>(key) ) >= 0 )
-            {
-                rm_keys.push(it.key());
-                found = 0;
-            }
-        }
-        while (!rm_keys.isEmpty())
-        {
-            kdDebug(1205) << "Removed key: " << rm_keys.top() << endl;
-            remove(rm_keys.pop());
-        }
-    }
-    return found;
-}
-
-int Repository::removeGroup(const TQCString &group)
-{
-    int found = -1;
-    if ( !group.isEmpty() )
-    {
-        TQValueStack<TQCString> rm_keys;
-        for (RepoCIterator it=repo.begin(); it!=repo.end(); ++it)
-        {
-            if (it.data().group == group)
-            {
-                rm_keys.push(it.key());
-                found = 0;
-            }
-        }
-        while (!rm_keys.isEmpty())
-        {
-            kdDebug(1205) << "Removed key: " << rm_keys.top() << endl;
-            remove(rm_keys.pop());
-        }
-    }
-    return found;
-}
-
-int Repository::hasGroup(const TQCString &group) const
-{
-    if ( !group.isEmpty() )
-    {
-        RepoCIterator it;
-        for (it=repo.begin(); it!=repo.end(); ++it)
-        {
-            if (it.data().group == group)
-                return 0;
-        }
-    }
-    return -1;
-}
-
-TQCString Repository::findKeys(const TQCString &group, const char *sep ) const
-{
-    TQCString list="";
-    if( !group.isEmpty() )
-    {
-        kdDebug(1205) << "Looking for matching key with group key: " << group << endl;
-        int pos;
-        TQCString key;
-        RepoCIterator it;
-        for (it=repo.begin(); it!=repo.end(); ++it)
-        {
-            if (it.data().group == group)
-            {
-                key = it.key().copy();
-                kdDebug(1205) << "Matching key found: " << key << endl;
-                pos = key.findRev(sep);
-                key.truncate( pos );
-                key.remove(0, 2);
-                if (!list.isEmpty())
-                {
-                    // Add the same keys only once please :)
-                    if( !list.contains(static_cast<const char *>(key)) )
-                    {
-                        kdDebug(1205) << "Key added to list: " << key << endl;
-                        list += '\007'; // I do not know
-                        list.append(key);
-                    }
-                }
-                else
-                    list = key;
-            }
-        }
-    }
-    return list;
-}
-
-TQCString Repository::find(const TQCString &key) const
-{
-    if( key.isEmpty() )
-        return 0;
-
-    RepoCIterator it = repo.find(key);
-    if (it == repo.end())
-        return 0;
-    return it.data().value;
-}
-
-
-int Repository::expire()
-{
-    unsigned current = time(0L);
-    if (current < head_time)
-	return 0;
-
-    unsigned t;
-    TQValueStack<TQCString> keys;
-    head_time = (unsigned) -1;
-    RepoIterator it;
-    for (it=repo.begin(); it!=repo.end(); ++it)
-    {
-	t = it.data().timeout;
-	if (t <= current)
-	    keys.push(it.key());
-	else
-	    head_time = QMIN(head_time, t);
-    }
-
-    int n = keys.count();
-    while (!keys.isEmpty())
-	remove(keys.pop());
-    return n;
-}
-
diff --git a/kdesu/kdesud/repo.h b/kdesu/kdesud/repo.h
deleted file mode 100644
index 70027793f..000000000
--- a/kdesu/kdesud/repo.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* vi: ts=8 sts=4 sw=4
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
- */
-
-#ifndef __Repo_h_included__
-#define __Repo_h_included__
-
-
-#include <tqmap.h>
-#include <tqcstring.h>
-
-
-/**
- * Used internally.
- */
-struct Data_entry 
-{
-    TQCString value;
-    TQCString group;
-    unsigned int timeout;
-};
-
-
-/**
- * String repository.
- *
- * This class implements a string repository with expiration.
- */
-class Repository {
-public:
-    Repository();
-    ~Repository();
-
-    /** Remove data elements which are expired. */
-    int expire();
-
-    /** Add a data element */
-    void add(const TQCString& key, Data_entry& data);
-
-    /** Delete a data element. */
-    int remove(const TQCString& key);
-
-    /** Delete all data entries having the given group.  */
-    int removeGroup(const TQCString& group);
-
-    /** Delete all data entries based on key. */
-    int removeSpecialKey(const TQCString& key );
-
-    /** Checks for the existence of the specified group. */
-    int hasGroup(const TQCString &group) const;
-
-    /** Return a data value.  */
-    TQCString find(const TQCString& key) const;
-
-    /** Returns the key values for the given group. */
-    TQCString findKeys(const TQCString& group, const char *sep= "-") const;
-
-private:
-
-    TQMap<TQCString,Data_entry> repo;
-    typedef TQMap<TQCString,Data_entry>::Iterator RepoIterator;
-    typedef TQMap<TQCString,Data_entry>::ConstIterator RepoCIterator;
-    unsigned head_time;
-};
-
-#endif
diff --git a/kdesu/kdesud/secure.cpp b/kdesu/kdesud/secure.cpp
deleted file mode 100644
index 9b30ab4ee..000000000
--- a/kdesu/kdesud/secure.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/* vi: ts=8 sts=4 sw=4
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1999,2000 Geert Jansen <g.t.jansen@stud.tue.nl>
- *
- * secure.cpp: Peer credentials for a UNIX socket.
- */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <errno.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-
-#include <kdebug.h>
-#include <ksockaddr.h>
-#include "secure.h"
-
-
-/**
- * Under Linux, Socket_security is supported.
- */
-
-#if defined(SO_PEERCRED)
-
-SocketSecurity::SocketSecurity(int sockfd)
-{
-    ksocklen_t len = sizeof(struct ucred);
-    if (getsockopt(sockfd, SOL_SOCKET, SO_PEERCRED, &cred, &len) < 0) {
-	kdError() << "getsockopt(SO_PEERCRED) " << perror << endl;
-	return;
-    }
-
-    ok = true;
-}
-
-#else
-# if defined(HAVE_GETPEEREID)
-SocketSecurity::SocketSecurity(int sockfd)
-{
-    uid_t euid;
-    gid_t egid;
-    if (getpeereid(sockfd, &euid, &egid) == 0) {
-	cred.uid = euid;
-	cred.gid = egid;
-	cred.pid = -1;
-	ok = true;
-    }
-}
-
-# else
-
-
-/**
- * The default version does nothing.
- */
-
-SocketSecurity::SocketSecurity(int sockfd)
-{
-    static bool warned_him = FALSE;
-
-    if (!warned_him) {
-        kdWarning() << "Using void socket security. Please add support for your" << endl;
-        kdWarning() << "platform to tdesu/tdesud/secure.cpp" << endl;
-        warned_him = TRUE;
-    }
-
-    // This passes the test made in handler.cpp
-    cred.uid = getuid();
-    ok = true;
-}
-
-# endif
-#endif
diff --git a/kdesu/kdesud/secure.h b/kdesu/kdesud/secure.h
deleted file mode 100644
index edf58d9c6..000000000
--- a/kdesu/kdesud/secure.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* vi: ts=8 sts=4 sw=4
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
- */
-
-#ifndef __Secure_h_included__
-#define __Secure_h_included__
-
-#include "config.h"
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#ifndef HAVE_STRUCT_UCRED
-
-// `struct ucred' is not defined in glibc 2.0.
-
-struct ucred {
-    pid_t     pid;
-    uid_t     uid;
-    gid_t     gid;
-};
-
-#endif // HAVE_STRUCT_UCRED
-
-
-/**
- * The Socket_security class autheticates the peer for you. It provides
- * the process-id, user-id and group-id plus the MD5 sum of the connected
- * binary.
- */
-
-class SocketSecurity {
-public:
-    SocketSecurity(int fd);
-
-    /** Returns the peer's process-id. */
-    int peerPid() { if (!ok) return -1; return cred.pid; }
-
-    /** Returns the peer's user-id */
-    int peerUid() { if (!ok) return -1; return cred.uid; }
-
-    /** Returns the peer's group-id */
-    int peerGid() { if (!ok) return -1; return cred.gid; }
-
-private:
-    bool ok;
-    struct ucred cred;
-};
-
-#endif
diff --git a/kicker/menuext/kdeprint/CMakeLists.txt b/kicker/menuext/kdeprint/CMakeLists.txt
deleted file mode 100644
index a013bcf82..000000000
--- a/kicker/menuext/kdeprint/CMakeLists.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-#################################################
-#
-#  (C) 2010-2011 Serghei Amelian
-#  serghei (DOT) amelian (AT) gmail.com
-#
-#  Improvements and feedback are welcome
-#
-#  This file is released under GPL >= 2
-#
-#################################################
-
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}
-  ${TDE_INCLUDE_DIR}
-  ${TQT_INCLUDE_DIRS}
-)
-
-link_directories(
-  ${TQT_LIBRARY_DIRS}
-)
-
-##### other data ################################
-
-install( FILES printmenu.desktop DESTINATION ${DATA_INSTALL_DIR}/kicker/menuext )
-
-
-##### kickermenu_tdeprint (module) ##############
-
-tde_add_kpart( kickermenu_tdeprint AUTOMOC
-  SOURCES print_mnu.cpp
-  LINK tdeprint-shared
-  DESTINATION ${PLUGIN_INSTALL_DIR}
-)
diff --git a/kicker/menuext/kdeprint/Makefile.am b/kicker/menuext/kdeprint/Makefile.am
deleted file mode 100644
index c8ad7858a..000000000
--- a/kicker/menuext/kdeprint/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-INCLUDES = $(all_includes)
-
-kde_module_LTLIBRARIES = kickermenu_tdeprint.la
-
-kickermenu_tdeprint_la_SOURCES = print_mnu.cpp
-kickermenu_tdeprint_la_LDFLAGS = $(all_libraries) -module -avoid-version
-kickermenu_tdeprint_la_LIBADD = $(LIB_KDEUI) $(LIB_KIO) -ltdeprint
-
-kickermenu_tdeprint_la_METASOURCES = AUTO
-
-desktopmenu_DATA = printmenu.desktop
-desktopmenudir = $(kde_datadir)/kicker/menuext
-
-messages:
-	$(XGETTEXT) *.cpp -o $(podir)/libkickermenu_tdeprint.pot
diff --git a/kicker/menuext/kdeprint/print_mnu.cpp b/kicker/menuext/kdeprint/print_mnu.cpp
deleted file mode 100644
index dee220d80..000000000
--- a/kicker/menuext/kdeprint/print_mnu.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-/*****************************************************************
-
-Copyright (c) 1996-2001 the kicker authors. See file AUTHORS.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************/
-
-#include "print_mnu.h"
-#include <kiconloader.h>
-#include <klocale.h>
-#include <kglobal.h>
-#include <kapplication.h>
-#include <krun.h>
-#include <tdeprint/kmmanager.h>
-#include <tqregexp.h>
-
-K_EXPORT_KICKER_MENUEXT(tdeprint, PrintMenu)
-
-#define ADD_PRINTER_ID		0
-#define KDEPRINT_SETTINGS_ID	1
-#define	CONFIG_SERVER_ID	2
-#define	PRINT_MANAGER_ID	3
-#define PRINT_BROWSER_ID	4
-#define	KPRINTER_ID		5
-#define PRINTER_LIST_ID		10
-
-PrintMenu::PrintMenu(TQWidget *parent, const char *name, const TQStringList & /*args*/)
-: KPanelMenu("", parent, name)
-{
-    static bool tdeprintIconsInitialized = false;
-    if ( !tdeprintIconsInitialized ) {
-        KGlobal::iconLoader()->addAppDir("tdeprint");
-        tdeprintIconsInitialized = true;
-    }
-}
-
-PrintMenu::~PrintMenu()
-{
-}
-
-void PrintMenu::initialize()
-{
-    if (initialized()) clear();
-    setInitialized(true);
-
-    int ID = PRINTER_LIST_ID;
-    // just to be sure the plugin is loaded -> icons are available
-    KMManager::self();
-
-    if ((KMManager::self()->printerOperationMask() & KMManager::PrinterCreation) && KMManager::self()->hasManagement())
-        insertItem(SmallIconSet("wizard"), i18n("Add Printer..."), ADD_PRINTER_ID);
-    insertItem(SmallIconSet("tdeprint_configmgr"), i18n("KDE Print Settings"), KDEPRINT_SETTINGS_ID);
-    if (KMManager::self()->serverOperationMask() & KMManager::ServerConfigure)
-        insertItem(SmallIconSet("tdeprint_configsrv"), i18n("Configure Server"), CONFIG_SERVER_ID);
-    insertSeparator();
-    insertItem(SmallIconSet("kcontrol"), i18n("Print Manager"), PRINT_MANAGER_ID);
-    insertItem(SmallIconSet("konqueror"), i18n("Print Browser (Konqueror)"), PRINT_BROWSER_ID);
-    insertSeparator();
-    insertItem(SmallIconSet("fileprint"), i18n("Print File..."), KPRINTER_ID);
-
-    // printer list
-    TQPtrList<KMPrinter>    *l = KMManager::self()->printerList();
-    if (l && !l->isEmpty())
-    {
-        bool separatorInserted = false;
-        TQPtrListIterator<KMPrinter>    it(*l);
-        for (; it.current(); ++it)
-        {
-            // no special, implicit or pure instances
-            if (it.current()->isSpecial() || it.current()->isVirtual())
-                continue;
-            if (!separatorInserted)
-            {
-                // we insert a separator only when we find the first
-                // printer
-                insertSeparator();
-                separatorInserted = true;
-            }
-            insertItem(SmallIconSet(it.current()->pixmap()),
-                       it.current()->printerName(), ID++);
-        }
-    }
-}
-
-void PrintMenu::slotExec(int ID)
-{
-    switch (ID)
-    {
-        case ADD_PRINTER_ID:
-            kapp->tdeinitExec("kaddprinterwizard");
-            break;
-        case KDEPRINT_SETTINGS_ID:
-	    kapp->tdeinitExec("kaddprinterwizard", TQStringList("--kdeconfig"));
-            break;
-	case CONFIG_SERVER_ID:
-	    kapp->tdeinitExec("kaddprinterwizard", TQStringList("--serverconfig"));
-	    break;
-        case PRINT_MANAGER_ID:
-            KRun::runCommand("kcmshell kde-printers.desktop");
-            break;
-        case PRINT_BROWSER_ID:
-            KRun::runCommand("kfmclient openProfile filemanagement print:/", "kfmclient", "konqueror");
-            break;
-	case KPRINTER_ID:
-	    kapp->tdeinitExec("kprinter");
-	    break;
-        default:
-            {
-                // start kjobviewer
-                TQStringList args;
-                args << "--show" << "-d" << text(ID).remove('&');
-                kapp->tdeinitExec("kjobviewer", args);
-            }
-            break;
-    }
-}
-
-void PrintMenu::reload()
-{
-	initialize();
-}
-
-#include "print_mnu.moc"
diff --git a/kicker/menuext/kdeprint/print_mnu.h b/kicker/menuext/kdeprint/print_mnu.h
deleted file mode 100644
index 47c9e609e..000000000
--- a/kicker/menuext/kdeprint/print_mnu.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*****************************************************************
-
-Copyright (c) 1996-2001 the kicker authors. See file AUTHORS.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************/
-
-#ifndef _print_mnu_h_
-#define _print_mnu_h_
-
-#include <kpanelmenu.h>
-#include <tdeprint/kpreloadobject.h>
-
-class PrintMenu : public KPanelMenu, public KPReloadObject
-{
-    Q_OBJECT
-
-public:
-    PrintMenu(TQWidget *parent, const char *name, const TQStringList & /*args*/);
-    ~PrintMenu();
-
-protected slots:
-    void slotExec(int id);
-    void initialize();
-
-protected:
-	void reload();
-};
-
-#endif
diff --git a/kicker/menuext/kdeprint/printmenu.desktop b/kicker/menuext/kdeprint/printmenu.desktop
deleted file mode 100644
index 447d62c8f..000000000
--- a/kicker/menuext/kdeprint/printmenu.desktop
+++ /dev/null
@@ -1,144 +0,0 @@
-[Desktop Entry]
-Name=Print System
-Name[af]=Drukker Stelsel
-Name[ar]=نظام الطباعة
-Name[az]=Çap Sistemi
-Name[be]=Сістэма друку
-Name[bg]=Система за печат
-Name[bn]=মুদ্রণ ব্যবস্থা
-Name[br]=Reizhiad moulañ
-Name[bs]=Sistem štampe
-Name[ca]=Sistema d'impressió
-Name[cs]=Tiskový systém
-Name[csb]=Systema drëkù
-Name[cy]=Cysawd Argraffu
-Name[da]=Udskriftssystem
-Name[de]=Drucksystem
-Name[el]=Σύστημα εκτύπωσης
-Name[eo]=Printosistemo
-Name[es]=Sistema de impresión
-Name[et]=Trükkimissüsteem
-Name[eu]=Inprimaketa sistema
-Name[fa]=سیستم چاپ
-Name[fi]=Tulostusjärjestelmä
-Name[fr]=Système d'impression
-Name[fy]=Printsysteem
-Name[ga]=Córas Priontála
-Name[gl]=Sistema de Impresión
-Name[he]=מערכת הדפסה
-Name[hi]=छापा तंत्र
-Name[hr]=Sustav za ispisivanje
-Name[hu]=Nyomtatási rendszer
-Name[is]=Prentkerfi
-Name[it]=Sistema di stampa
-Name[ja]=印刷システム
-Name[ka]=ბეჭდვის სისტემა
-Name[kk]=Басып шығару
-Name[km]=ប្រព័ន្ធ​បោះពុម្ព
-Name[ko]=모던 시스템
-Name[ku]=Pergala Çapkirinê
-Name[lo]=ລະບົບການພິມ
-Name[lt]=Spausdinimo sistema
-Name[lv]=Drukas Sistēma
-Name[mk]=Печатарски систем
-Name[mn]=Хэвлэх систем
-Name[ms]=Cetak Sistem
-Name[mt]=Sistema tal-ipprintjar
-Name[nb]=Utskriftsystem
-Name[nds]=Drucksysteem
-Name[ne]=मुद्रण प्रणाली
-Name[nl]=Afdruksysteem
-Name[nn]=Utskriftssystem
-Name[nso]=System ya Kgatiso
-Name[pa]=ਪਰਿੰਟ ਸਿਸਟਮ
-Name[pl]=System drukowania
-Name[pt]=Sistema de Impressão
-Name[pt_BR]=Sistema de Impressão
-Name[ro]=Sistem de tipărire
-Name[ru]=Система печати
-Name[rw]=Sisitemu Gucapa
-Name[se]=Čálihanvuogádat
-Name[sk]=Tlačový systém
-Name[sl]=Tiskalniški sistem
-Name[sr]=Систем за штампу
-Name[sr@Latn]=Sistem za štampu
-Name[sv]=Skrivarsystem
-Name[ta]=அச்சு அமைப்பு
-Name[te]=ప్రచురణ వ్యవస్థ
-Name[tg]=Системаи Чоп
-Name[th]=ระบบการพิมพ์
-Name[tr]=Yazıcı Sistemi
-Name[tt]=Bastıru Sisteme
-Name[uk]=Система друку
-Name[uz]=Bosib chiqarish tizimi
-Name[uz@cyrillic]=Босиб чиқариш тизими
-Name[ven]=Maitele au phirintha
-Name[vi]=Hệ thống In ấn
-Name[wa]=Sistinme d' imprimaedje
-Name[xh]=Indlela Yoshicilelo
-Name[zh_CN]=打印系统
-Name[zh_TW]=列印系統
-Name[zu]=Isistimu yokushicilela
-Comment=Menu for the print system
-Comment[af]=Kieslys vir die drukker stelsel
-Comment[ar]=قائمة لنظام الطباعة
-Comment[be]=Меню для сістэмы друку
-Comment[bg]=Меню на системата за печат
-Comment[bn]=মুদ্রণ ব্যবস্থার জন্য মেনু
-Comment[bs]=Meni za sistem štampe
-Comment[ca]=Menú per al sistema d'impressió
-Comment[cs]=Nabídka tiskového systému
-Comment[csb]=Menu systemë drëkù
-Comment[da]=Menu for udskriftssystemet
-Comment[de]=Einfacher Zugriff auf das Drucksystem
-Comment[el]=Μενού για το σύστημα εκτύπωσης
-Comment[eo]=Menuo por printosistemo
-Comment[es]=Menú para el sistema de impresión
-Comment[et]=Trükkimissüsteemi menüü
-Comment[eu]=Inprimaketa sistemarako menua
-Comment[fa]=گزینگان برای سیستم چاپ
-Comment[fi]=Tulostusjärjestelmävalikko
-Comment[fr]=Menu du système d'impression
-Comment[fy]=Menu foar it printsysteem
-Comment[gl]=Menu para o sistema de impresión
-Comment[he]=תפריט למערכת ההדפסה
-Comment[hr]=Izbornik sustava ispisivanja
-Comment[hu]=Menü a nyomtatási rendszer eléréséhez
-Comment[is]=Fljótleg leið að prentkerfinu
-Comment[it]=Menu del sistema di stampa
-Comment[ja]=印刷システム用メニュー
-Comment[ka]=ბეჭდვის სისტემის მენიუ
-Comment[kk]=Басып шығару жүйесінің мәзірі
-Comment[km]=ម៉ឺនុយ​សម្រាប់​ប្រព័ន្ធ​បោះពុម្ព
-Comment[lt]=Spausdinimo sistemos meniu
-Comment[mk]=Мени за системот за печатење
-Comment[nb]=Meny for utskriftssystemet
-Comment[nds]=Menü för dat Drucksysteem
-Comment[ne]=मुद्रण प्रणालीका लागि मेनु
-Comment[nl]=Menu voor het afdruksysteem
-Comment[nn]=Meny for utskriftssystemet
-Comment[pa]=ਪਰਿੰਟ ਸਿਸਟਮ ਲਈ ਮੇਨੂ
-Comment[pl]=Menu systemu drukowania
-Comment[pt]=Um menu para o sistema de impressão
-Comment[pt_BR]=Menu para o sistema de impressão
-Comment[ro]=Meniu pentru sistemul de tipărire
-Comment[ru]=Быстрый доступ к системе печати
-Comment[se]=Čálihanvuogádaga fállu
-Comment[sk]=Menu pre tlačový systém
-Comment[sl]=Meni za tiskalniški sistem
-Comment[sr]=Мени за систем штампања
-Comment[sr@Latn]=Meni za sistem štampanja
-Comment[sv]=Meny för skrivarsystemet
-Comment[te]=ప్రచురణ వ్యవస్థ కొరకు పట్టి
-Comment[th]=เมนูสำหรับระบบการพิมพ์
-Comment[tr]=Yazıcı sistemi menüsü
-Comment[uk]=Меню для системи друку
-Comment[uz]=Bosib chiqarish tizimining menyusi
-Comment[uz@cyrillic]=Босиб чиқариш тизимининг менюси
-Comment[vi]=Thực đơn cho hệ thống in ấn
-Comment[wa]=Dresseŷe pol sistinme d' imprimaedje
-Comment[zh_CN]=打印系统菜单
-Comment[zh_TW]=用於列印系統的選單
-Icon=fileprint
-
-X-KDE-Library=kickermenu_tdeprint
diff --git a/kicker/menuext/tdeprint/CMakeLists.txt b/kicker/menuext/tdeprint/CMakeLists.txt
new file mode 100644
index 000000000..a013bcf82
--- /dev/null
+++ b/kicker/menuext/tdeprint/CMakeLists.txt
@@ -0,0 +1,33 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+  ${CMAKE_CURRENT_BINARY_DIR}
+  ${TDE_INCLUDE_DIR}
+  ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+  ${TQT_LIBRARY_DIRS}
+)
+
+##### other data ################################
+
+install( FILES printmenu.desktop DESTINATION ${DATA_INSTALL_DIR}/kicker/menuext )
+
+
+##### kickermenu_tdeprint (module) ##############
+
+tde_add_kpart( kickermenu_tdeprint AUTOMOC
+  SOURCES print_mnu.cpp
+  LINK tdeprint-shared
+  DESTINATION ${PLUGIN_INSTALL_DIR}
+)
diff --git a/kicker/menuext/tdeprint/Makefile.am b/kicker/menuext/tdeprint/Makefile.am
new file mode 100644
index 000000000..c8ad7858a
--- /dev/null
+++ b/kicker/menuext/tdeprint/Makefile.am
@@ -0,0 +1,15 @@
+INCLUDES = $(all_includes)
+
+kde_module_LTLIBRARIES = kickermenu_tdeprint.la
+
+kickermenu_tdeprint_la_SOURCES = print_mnu.cpp
+kickermenu_tdeprint_la_LDFLAGS = $(all_libraries) -module -avoid-version
+kickermenu_tdeprint_la_LIBADD = $(LIB_KDEUI) $(LIB_KIO) -ltdeprint
+
+kickermenu_tdeprint_la_METASOURCES = AUTO
+
+desktopmenu_DATA = printmenu.desktop
+desktopmenudir = $(kde_datadir)/kicker/menuext
+
+messages:
+	$(XGETTEXT) *.cpp -o $(podir)/libkickermenu_tdeprint.pot
diff --git a/kicker/menuext/tdeprint/print_mnu.cpp b/kicker/menuext/tdeprint/print_mnu.cpp
new file mode 100644
index 000000000..dee220d80
--- /dev/null
+++ b/kicker/menuext/tdeprint/print_mnu.cpp
@@ -0,0 +1,139 @@
+/*****************************************************************
+
+Copyright (c) 1996-2001 the kicker authors. See file AUTHORS.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************/
+
+#include "print_mnu.h"
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kglobal.h>
+#include <kapplication.h>
+#include <krun.h>
+#include <tdeprint/kmmanager.h>
+#include <tqregexp.h>
+
+K_EXPORT_KICKER_MENUEXT(tdeprint, PrintMenu)
+
+#define ADD_PRINTER_ID		0
+#define KDEPRINT_SETTINGS_ID	1
+#define	CONFIG_SERVER_ID	2
+#define	PRINT_MANAGER_ID	3
+#define PRINT_BROWSER_ID	4
+#define	KPRINTER_ID		5
+#define PRINTER_LIST_ID		10
+
+PrintMenu::PrintMenu(TQWidget *parent, const char *name, const TQStringList & /*args*/)
+: KPanelMenu("", parent, name)
+{
+    static bool tdeprintIconsInitialized = false;
+    if ( !tdeprintIconsInitialized ) {
+        KGlobal::iconLoader()->addAppDir("tdeprint");
+        tdeprintIconsInitialized = true;
+    }
+}
+
+PrintMenu::~PrintMenu()
+{
+}
+
+void PrintMenu::initialize()
+{
+    if (initialized()) clear();
+    setInitialized(true);
+
+    int ID = PRINTER_LIST_ID;
+    // just to be sure the plugin is loaded -> icons are available
+    KMManager::self();
+
+    if ((KMManager::self()->printerOperationMask() & KMManager::PrinterCreation) && KMManager::self()->hasManagement())
+        insertItem(SmallIconSet("wizard"), i18n("Add Printer..."), ADD_PRINTER_ID);
+    insertItem(SmallIconSet("tdeprint_configmgr"), i18n("KDE Print Settings"), KDEPRINT_SETTINGS_ID);
+    if (KMManager::self()->serverOperationMask() & KMManager::ServerConfigure)
+        insertItem(SmallIconSet("tdeprint_configsrv"), i18n("Configure Server"), CONFIG_SERVER_ID);
+    insertSeparator();
+    insertItem(SmallIconSet("kcontrol"), i18n("Print Manager"), PRINT_MANAGER_ID);
+    insertItem(SmallIconSet("konqueror"), i18n("Print Browser (Konqueror)"), PRINT_BROWSER_ID);
+    insertSeparator();
+    insertItem(SmallIconSet("fileprint"), i18n("Print File..."), KPRINTER_ID);
+
+    // printer list
+    TQPtrList<KMPrinter>    *l = KMManager::self()->printerList();
+    if (l && !l->isEmpty())
+    {
+        bool separatorInserted = false;
+        TQPtrListIterator<KMPrinter>    it(*l);
+        for (; it.current(); ++it)
+        {
+            // no special, implicit or pure instances
+            if (it.current()->isSpecial() || it.current()->isVirtual())
+                continue;
+            if (!separatorInserted)
+            {
+                // we insert a separator only when we find the first
+                // printer
+                insertSeparator();
+                separatorInserted = true;
+            }
+            insertItem(SmallIconSet(it.current()->pixmap()),
+                       it.current()->printerName(), ID++);
+        }
+    }
+}
+
+void PrintMenu::slotExec(int ID)
+{
+    switch (ID)
+    {
+        case ADD_PRINTER_ID:
+            kapp->tdeinitExec("kaddprinterwizard");
+            break;
+        case KDEPRINT_SETTINGS_ID:
+	    kapp->tdeinitExec("kaddprinterwizard", TQStringList("--kdeconfig"));
+            break;
+	case CONFIG_SERVER_ID:
+	    kapp->tdeinitExec("kaddprinterwizard", TQStringList("--serverconfig"));
+	    break;
+        case PRINT_MANAGER_ID:
+            KRun::runCommand("kcmshell kde-printers.desktop");
+            break;
+        case PRINT_BROWSER_ID:
+            KRun::runCommand("kfmclient openProfile filemanagement print:/", "kfmclient", "konqueror");
+            break;
+	case KPRINTER_ID:
+	    kapp->tdeinitExec("kprinter");
+	    break;
+        default:
+            {
+                // start kjobviewer
+                TQStringList args;
+                args << "--show" << "-d" << text(ID).remove('&');
+                kapp->tdeinitExec("kjobviewer", args);
+            }
+            break;
+    }
+}
+
+void PrintMenu::reload()
+{
+	initialize();
+}
+
+#include "print_mnu.moc"
diff --git a/kicker/menuext/tdeprint/print_mnu.h b/kicker/menuext/tdeprint/print_mnu.h
new file mode 100644
index 000000000..47c9e609e
--- /dev/null
+++ b/kicker/menuext/tdeprint/print_mnu.h
@@ -0,0 +1,46 @@
+/*****************************************************************
+
+Copyright (c) 1996-2001 the kicker authors. See file AUTHORS.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************/
+
+#ifndef _print_mnu_h_
+#define _print_mnu_h_
+
+#include <kpanelmenu.h>
+#include <tdeprint/kpreloadobject.h>
+
+class PrintMenu : public KPanelMenu, public KPReloadObject
+{
+    Q_OBJECT
+
+public:
+    PrintMenu(TQWidget *parent, const char *name, const TQStringList & /*args*/);
+    ~PrintMenu();
+
+protected slots:
+    void slotExec(int id);
+    void initialize();
+
+protected:
+	void reload();
+};
+
+#endif
diff --git a/kicker/menuext/tdeprint/printmenu.desktop b/kicker/menuext/tdeprint/printmenu.desktop
new file mode 100644
index 000000000..447d62c8f
--- /dev/null
+++ b/kicker/menuext/tdeprint/printmenu.desktop
@@ -0,0 +1,144 @@
+[Desktop Entry]
+Name=Print System
+Name[af]=Drukker Stelsel
+Name[ar]=نظام الطباعة
+Name[az]=Çap Sistemi
+Name[be]=Сістэма друку
+Name[bg]=Система за печат
+Name[bn]=মুদ্রণ ব্যবস্থা
+Name[br]=Reizhiad moulañ
+Name[bs]=Sistem štampe
+Name[ca]=Sistema d'impressió
+Name[cs]=Tiskový systém
+Name[csb]=Systema drëkù
+Name[cy]=Cysawd Argraffu
+Name[da]=Udskriftssystem
+Name[de]=Drucksystem
+Name[el]=Σύστημα εκτύπωσης
+Name[eo]=Printosistemo
+Name[es]=Sistema de impresión
+Name[et]=Trükkimissüsteem
+Name[eu]=Inprimaketa sistema
+Name[fa]=سیستم چاپ
+Name[fi]=Tulostusjärjestelmä
+Name[fr]=Système d'impression
+Name[fy]=Printsysteem
+Name[ga]=Córas Priontála
+Name[gl]=Sistema de Impresión
+Name[he]=מערכת הדפסה
+Name[hi]=छापा तंत्र
+Name[hr]=Sustav za ispisivanje
+Name[hu]=Nyomtatási rendszer
+Name[is]=Prentkerfi
+Name[it]=Sistema di stampa
+Name[ja]=印刷システム
+Name[ka]=ბეჭდვის სისტემა
+Name[kk]=Басып шығару
+Name[km]=ប្រព័ន្ធ​បោះពុម្ព
+Name[ko]=모던 시스템
+Name[ku]=Pergala Çapkirinê
+Name[lo]=ລະບົບການພິມ
+Name[lt]=Spausdinimo sistema
+Name[lv]=Drukas Sistēma
+Name[mk]=Печатарски систем
+Name[mn]=Хэвлэх систем
+Name[ms]=Cetak Sistem
+Name[mt]=Sistema tal-ipprintjar
+Name[nb]=Utskriftsystem
+Name[nds]=Drucksysteem
+Name[ne]=मुद्रण प्रणाली
+Name[nl]=Afdruksysteem
+Name[nn]=Utskriftssystem
+Name[nso]=System ya Kgatiso
+Name[pa]=ਪਰਿੰਟ ਸਿਸਟਮ
+Name[pl]=System drukowania
+Name[pt]=Sistema de Impressão
+Name[pt_BR]=Sistema de Impressão
+Name[ro]=Sistem de tipărire
+Name[ru]=Система печати
+Name[rw]=Sisitemu Gucapa
+Name[se]=Čálihanvuogádat
+Name[sk]=Tlačový systém
+Name[sl]=Tiskalniški sistem
+Name[sr]=Систем за штампу
+Name[sr@Latn]=Sistem za štampu
+Name[sv]=Skrivarsystem
+Name[ta]=அச்சு அமைப்பு
+Name[te]=ప్రచురణ వ్యవస్థ
+Name[tg]=Системаи Чоп
+Name[th]=ระบบการพิมพ์
+Name[tr]=Yazıcı Sistemi
+Name[tt]=Bastıru Sisteme
+Name[uk]=Система друку
+Name[uz]=Bosib chiqarish tizimi
+Name[uz@cyrillic]=Босиб чиқариш тизими
+Name[ven]=Maitele au phirintha
+Name[vi]=Hệ thống In ấn
+Name[wa]=Sistinme d' imprimaedje
+Name[xh]=Indlela Yoshicilelo
+Name[zh_CN]=打印系统
+Name[zh_TW]=列印系統
+Name[zu]=Isistimu yokushicilela
+Comment=Menu for the print system
+Comment[af]=Kieslys vir die drukker stelsel
+Comment[ar]=قائمة لنظام الطباعة
+Comment[be]=Меню для сістэмы друку
+Comment[bg]=Меню на системата за печат
+Comment[bn]=মুদ্রণ ব্যবস্থার জন্য মেনু
+Comment[bs]=Meni za sistem štampe
+Comment[ca]=Menú per al sistema d'impressió
+Comment[cs]=Nabídka tiskového systému
+Comment[csb]=Menu systemë drëkù
+Comment[da]=Menu for udskriftssystemet
+Comment[de]=Einfacher Zugriff auf das Drucksystem
+Comment[el]=Μενού για το σύστημα εκτύπωσης
+Comment[eo]=Menuo por printosistemo
+Comment[es]=Menú para el sistema de impresión
+Comment[et]=Trükkimissüsteemi menüü
+Comment[eu]=Inprimaketa sistemarako menua
+Comment[fa]=گزینگان برای سیستم چاپ
+Comment[fi]=Tulostusjärjestelmävalikko
+Comment[fr]=Menu du système d'impression
+Comment[fy]=Menu foar it printsysteem
+Comment[gl]=Menu para o sistema de impresión
+Comment[he]=תפריט למערכת ההדפסה
+Comment[hr]=Izbornik sustava ispisivanja
+Comment[hu]=Menü a nyomtatási rendszer eléréséhez
+Comment[is]=Fljótleg leið að prentkerfinu
+Comment[it]=Menu del sistema di stampa
+Comment[ja]=印刷システム用メニュー
+Comment[ka]=ბეჭდვის სისტემის მენიუ
+Comment[kk]=Басып шығару жүйесінің мәзірі
+Comment[km]=ម៉ឺនុយ​សម្រាប់​ប្រព័ន្ធ​បោះពុម្ព
+Comment[lt]=Spausdinimo sistemos meniu
+Comment[mk]=Мени за системот за печатење
+Comment[nb]=Meny for utskriftssystemet
+Comment[nds]=Menü för dat Drucksysteem
+Comment[ne]=मुद्रण प्रणालीका लागि मेनु
+Comment[nl]=Menu voor het afdruksysteem
+Comment[nn]=Meny for utskriftssystemet
+Comment[pa]=ਪਰਿੰਟ ਸਿਸਟਮ ਲਈ ਮੇਨੂ
+Comment[pl]=Menu systemu drukowania
+Comment[pt]=Um menu para o sistema de impressão
+Comment[pt_BR]=Menu para o sistema de impressão
+Comment[ro]=Meniu pentru sistemul de tipărire
+Comment[ru]=Быстрый доступ к системе печати
+Comment[se]=Čálihanvuogádaga fállu
+Comment[sk]=Menu pre tlačový systém
+Comment[sl]=Meni za tiskalniški sistem
+Comment[sr]=Мени за систем штампања
+Comment[sr@Latn]=Meni za sistem štampanja
+Comment[sv]=Meny för skrivarsystemet
+Comment[te]=ప్రచురణ వ్యవస్థ కొరకు పట్టి
+Comment[th]=เมนูสำหรับระบบการพิมพ์
+Comment[tr]=Yazıcı sistemi menüsü
+Comment[uk]=Меню для системи друку
+Comment[uz]=Bosib chiqarish tizimining menyusi
+Comment[uz@cyrillic]=Босиб чиқариш тизимининг менюси
+Comment[vi]=Thực đơn cho hệ thống in ấn
+Comment[wa]=Dresseŷe pol sistinme d' imprimaedje
+Comment[zh_CN]=打印系统菜单
+Comment[zh_TW]=用於列印系統的選單
+Icon=fileprint
+
+X-KDE-Library=kickermenu_tdeprint
diff --git a/tdeprint/CMakeLists.txt b/tdeprint/CMakeLists.txt
new file mode 100644
index 000000000..1065c69af
--- /dev/null
+++ b/tdeprint/CMakeLists.txt
@@ -0,0 +1,17 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+add_subdirectory( printmgr )
+add_subdirectory( kjobviewer )
+add_subdirectory( kprinter )
+add_subdirectory( tdeprintfax )
+add_subdirectory( slave )
+add_subdirectory( tdeprint_part )
diff --git a/tdeprint/Makefile.am b/tdeprint/Makefile.am
new file mode 100644
index 000000000..1bbc21ff7
--- /dev/null
+++ b/tdeprint/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = printmgr kjobviewer kprinter tdeprintfax slave tdeprint_part
diff --git a/tdeprint/configure.in.in b/tdeprint/configure.in.in
new file mode 100644
index 000000000..255d82a9b
--- /dev/null
+++ b/tdeprint/configure.in.in
@@ -0,0 +1 @@
+dnl nothing special
diff --git a/tdeprint/descriptions/Makefile.am b/tdeprint/descriptions/Makefile.am
new file mode 100644
index 000000000..66b8205e6
--- /dev/null
+++ b/tdeprint/descriptions/Makefile.am
@@ -0,0 +1,24 @@
+KDE_OPTIONS = qtonly
+# Note: sortthem does not sort! (It is just a sort of uniq(1)
+
+INCLUDES = $(all_includes)
+
+EXTRA_PROGRAMS = sortthem
+
+sortthem_SOURCES = sortthem.cpp
+sortthem_LDFLAGS = $(all_libraries) $(LIB_QT)
+
+printers.cpp: sortthem
+	: > printers.cpp
+	for i in `find /usr/share/cups/model -type f ! -name '*.gz'`; do perl $(srcdir)/readppd < $$i >> printers.cpp; done
+	for i in `find /usr/share/cups/model -type f -name '*.gz'`; do \
+		gzip -cd $$i | perl $(srcdir)/readppd >> printers.cpp; done
+	iconv -flatin1 -tutf-8 printers.cpp | grep  -v '"[-0-9][0-9]*")' > printers.new
+	mv printers.new printers.cpp
+	./sortthem < printers.cpp | perl -n -e "print \"// xgettext: no-c-format\n\".\$$_;" > printers.new && mv printers.new $(srcdir)/printers.cpp
+
+messages:
+	$(XGETTEXT) printers.cpp -o $(podir)/ppdtranslations.pot
+
+.PHONY: printers.cpp
+
diff --git a/tdeprint/descriptions/printers.cpp b/tdeprint/descriptions/printers.cpp
new file mode 100644
index 000000000..274c5084b
--- /dev/null
+++ b/tdeprint/descriptions/printers.cpp
@@ -0,0 +1,7084 @@
+// xgettext: no-c-format
+i18n("Executive");
+// xgettext: no-c-format
+i18n("Envelope B5");
+// xgettext: no-c-format
+i18n("Envelope #10");
+// xgettext: no-c-format
+i18n("Envelope DL");
+// xgettext: no-c-format
+i18n("PageRegion");
+// xgettext: no-c-format
+i18n("Media Source");
+// xgettext: no-c-format
+i18n("Default");
+// xgettext: no-c-format
+i18n("Manual Feed");
+// xgettext: no-c-format
+i18n("Output Resolution");
+// xgettext: no-c-format
+i18n("150 DPI");
+// xgettext: no-c-format
+i18n("300 DPI");
+// xgettext: no-c-format
+i18n("600 DPI");
+// xgettext: no-c-format
+i18n("1200 DPI");
+// xgettext: no-c-format
+i18n("2400 DPI");
+// xgettext: no-c-format
+i18n("Double-Sided Printing");
+// xgettext: no-c-format
+i18n("Off");
+// xgettext: no-c-format
+i18n("Long Edge (Standard)");
+// xgettext: no-c-format
+i18n("Short Edge (Flip)");
+// xgettext: no-c-format
+i18n("US Letter");
+// xgettext: no-c-format
+i18n("US Legal");
+// xgettext: no-c-format
+i18n("US Executive");
+// xgettext: no-c-format
+i18n("US Tabloid");
+// xgettext: no-c-format
+i18n("A3");
+// xgettext: no-c-format
+i18n("Media Type");
+// xgettext: no-c-format
+i18n("Plain Paper");
+// xgettext: no-c-format
+i18n("Bond Paper");
+// xgettext: no-c-format
+i18n("Special Paper");
+// xgettext: no-c-format
+i18n("Transparency");
+// xgettext: no-c-format
+i18n("Glossy Paper");
+// xgettext: no-c-format
+i18n("Tray");
+// xgettext: no-c-format
+i18n("Envelope Feed");
+// xgettext: no-c-format
+i18n("Output Mode");
+// xgettext: no-c-format
+i18n("CMYK Color");
+// xgettext: no-c-format
+i18n("CMY Color");
+// xgettext: no-c-format
+i18n("Grayscale");
+// xgettext: no-c-format
+i18n("600x300 DPI");
+// xgettext: no-c-format
+i18n("CRET Color");
+// xgettext: no-c-format
+i18n("Duplexer");
+// xgettext: no-c-format
+i18n("Address - 1 1/8 x 3 1/2\"");
+// xgettext: no-c-format
+i18n("Large Address - 1 4/10 x 3 1/2\"");
+// xgettext: no-c-format
+i18n("Return Address - 3/4 x 2\"");
+// xgettext: no-c-format
+i18n("Shipping Address - 2 5/16 x 4\"");
+// xgettext: no-c-format
+i18n("Internet Postage 2-Part - 2 1/4 x 7 1/2\"");
+// xgettext: no-c-format
+i18n("Internet Postage 3-Part - 2 1/4 x 7\"");
+// xgettext: no-c-format
+i18n("File Folder - 9/16 x 3 7/16\"");
+// xgettext: no-c-format
+i18n("Hanging Folder - 9/16 x 2\"");
+// xgettext: no-c-format
+i18n("3.5\" Disk - 2 1/8 x 2 3/4\"");
+// xgettext: no-c-format
+i18n("136 DPI");
+// xgettext: no-c-format
+i18n("203 DPI");
+// xgettext: no-c-format
+i18n("Output Darkness");
+// xgettext: no-c-format
+i18n("Normal");
+// xgettext: no-c-format
+i18n("FanFoldUS");
+// xgettext: no-c-format
+i18n("60 DPI");
+// xgettext: no-c-format
+i18n("120x60 DPI");
+// xgettext: no-c-format
+i18n("180 DPI");
+// xgettext: no-c-format
+i18n("360x180 DPI");
+// xgettext: no-c-format
+i18n("360 DPI");
+// xgettext: no-c-format
+i18n("60x72 DPI");
+// xgettext: no-c-format
+i18n("120x72 DPI");
+// xgettext: no-c-format
+i18n("240x72 DPI");
+// xgettext: no-c-format
+i18n("Tray 4");
+// xgettext: no-c-format
+i18n("720 DPI");
+// xgettext: no-c-format
+i18n("Page Size and Printing Quality");
+// xgettext: no-c-format
+i18n("A4, 600x600 DPI");
+// xgettext: no-c-format
+i18n("Letter, 600x600 DPI");
+// xgettext: no-c-format
+i18n("A4, 1200x600 DPI");
+// xgettext: no-c-format
+i18n("B5, 600x600 DPI");
+// xgettext: no-c-format
+i18n("B5, 1200x600 DPI");
+// xgettext: no-c-format
+i18n("Legal, 600x600 DPI");
+// xgettext: no-c-format
+i18n("Legal, 1200x600 DPI");
+// xgettext: no-c-format
+i18n("Letter, 1200x600 DPI");
+// xgettext: no-c-format
+i18n("High Grade Paper");
+// xgettext: no-c-format
+i18n("Back Print Media");
+// xgettext: no-c-format
+i18n("Iron-On Transfer Sheet");
+// xgettext: no-c-format
+i18n("Hot OHP Media");
+// xgettext: no-c-format
+i18n("Post Card");
+// xgettext: no-c-format
+i18n("Thick Paper");
+// xgettext: no-c-format
+i18n("Printing Mode");
+// xgettext: no-c-format
+i18n("BlackOnly");
+// xgettext: no-c-format
+i18n("Colour");
+// xgettext: no-c-format
+i18n("HalfTone");
+// xgettext: no-c-format
+i18n("NoHalfTone");
+// xgettext: no-c-format
+i18n("Dithering");
+// xgettext: no-c-format
+i18n("FloydSteinberg");
+// xgettext: no-c-format
+i18n("NoFloydSteinberg");
+// xgettext: no-c-format
+i18n("Banding");
+// xgettext: no-c-format
+i18n("NoBanding");
+// xgettext: no-c-format
+i18n("Colour Mode");
+// xgettext: no-c-format
+i18n("CMY");
+// xgettext: no-c-format
+i18n("Colour Correction Mode");
+// xgettext: no-c-format
+i18n("FullBlack");
+// xgettext: no-c-format
+i18n("Colour correction");
+// xgettext: no-c-format
+i18n("NoColourCorrection");
+// xgettext: no-c-format
+i18n("ColourCorrection");
+// xgettext: no-c-format
+i18n("How often every dot is printed");
+// xgettext: no-c-format
+i18n("PrintTwice");
+// xgettext: no-c-format
+i18n("PrintOnce");
+// xgettext: no-c-format
+i18n("Black Printing Mode");
+// xgettext: no-c-format
+i18n("SolidBlack");
+// xgettext: no-c-format
+i18n("MixedBlack");
+// xgettext: no-c-format
+i18n("Square Dithering");
+// xgettext: no-c-format
+i18n("SquareDithering");
+// xgettext: no-c-format
+i18n("NoSquareDithering");
+// xgettext: no-c-format
+i18n("Do Curl Correction");
+// xgettext: no-c-format
+i18n("CurlCorrectionAlways");
+// xgettext: no-c-format
+i18n("CurlCorrectionAfterFinal");
+// xgettext: no-c-format
+i18n("Curl Correction on current pass");
+// xgettext: no-c-format
+i18n("NoCurlCorrectionOnCurrent");
+// xgettext: no-c-format
+i18n("CurlCorrectionOnCurrent");
+// xgettext: no-c-format
+i18n("Colour Intensity");
+// xgettext: no-c-format
+i18n("Line Feed Adjustment");
+// xgettext: no-c-format
+i18n("Gamma");
+// xgettext: no-c-format
+i18n("0.00");
+// xgettext: no-c-format
+i18n("0.05");
+// xgettext: no-c-format
+i18n("0.10");
+// xgettext: no-c-format
+i18n("0.15");
+// xgettext: no-c-format
+i18n("0.20");
+// xgettext: no-c-format
+i18n("0.25");
+// xgettext: no-c-format
+i18n("0.30");
+// xgettext: no-c-format
+i18n("0.35");
+// xgettext: no-c-format
+i18n("0.40");
+// xgettext: no-c-format
+i18n("0.45");
+// xgettext: no-c-format
+i18n("0.50");
+// xgettext: no-c-format
+i18n("0.55");
+// xgettext: no-c-format
+i18n("0.60");
+// xgettext: no-c-format
+i18n("0.65");
+// xgettext: no-c-format
+i18n("0.70");
+// xgettext: no-c-format
+i18n("0.75");
+// xgettext: no-c-format
+i18n("0.80");
+// xgettext: no-c-format
+i18n("0.85");
+// xgettext: no-c-format
+i18n("0.90");
+// xgettext: no-c-format
+i18n("0.95");
+// xgettext: no-c-format
+i18n("1.00");
+// xgettext: no-c-format
+i18n("1.05");
+// xgettext: no-c-format
+i18n("1.10");
+// xgettext: no-c-format
+i18n("1.15");
+// xgettext: no-c-format
+i18n("1.20");
+// xgettext: no-c-format
+i18n("1.25");
+// xgettext: no-c-format
+i18n("1.30");
+// xgettext: no-c-format
+i18n("1.35");
+// xgettext: no-c-format
+i18n("1.40");
+// xgettext: no-c-format
+i18n("1.45");
+// xgettext: no-c-format
+i18n("1.50");
+// xgettext: no-c-format
+i18n("1.55");
+// xgettext: no-c-format
+i18n("1.60");
+// xgettext: no-c-format
+i18n("1.65");
+// xgettext: no-c-format
+i18n("1.70");
+// xgettext: no-c-format
+i18n("1.75");
+// xgettext: no-c-format
+i18n("1.80");
+// xgettext: no-c-format
+i18n("1.85");
+// xgettext: no-c-format
+i18n("1.90");
+// xgettext: no-c-format
+i18n("1.95");
+// xgettext: no-c-format
+i18n("2.00");
+// xgettext: no-c-format
+i18n("2.05");
+// xgettext: no-c-format
+i18n("2.10");
+// xgettext: no-c-format
+i18n("2.15");
+// xgettext: no-c-format
+i18n("2.20");
+// xgettext: no-c-format
+i18n("2.25");
+// xgettext: no-c-format
+i18n("2.30");
+// xgettext: no-c-format
+i18n("2.35");
+// xgettext: no-c-format
+i18n("2.40");
+// xgettext: no-c-format
+i18n("2.45");
+// xgettext: no-c-format
+i18n("2.50");
+// xgettext: no-c-format
+i18n("2.55");
+// xgettext: no-c-format
+i18n("2.60");
+// xgettext: no-c-format
+i18n("2.65");
+// xgettext: no-c-format
+i18n("2.70");
+// xgettext: no-c-format
+i18n("2.75");
+// xgettext: no-c-format
+i18n("2.80");
+// xgettext: no-c-format
+i18n("2.85");
+// xgettext: no-c-format
+i18n("2.90");
+// xgettext: no-c-format
+i18n("2.95");
+// xgettext: no-c-format
+i18n("3.00");
+// xgettext: no-c-format
+i18n("3.05");
+// xgettext: no-c-format
+i18n("3.10");
+// xgettext: no-c-format
+i18n("3.15");
+// xgettext: no-c-format
+i18n("3.20");
+// xgettext: no-c-format
+i18n("3.25");
+// xgettext: no-c-format
+i18n("3.30");
+// xgettext: no-c-format
+i18n("3.35");
+// xgettext: no-c-format
+i18n("3.40");
+// xgettext: no-c-format
+i18n("3.45");
+// xgettext: no-c-format
+i18n("3.50");
+// xgettext: no-c-format
+i18n("3.55");
+// xgettext: no-c-format
+i18n("3.60");
+// xgettext: no-c-format
+i18n("3.65");
+// xgettext: no-c-format
+i18n("3.70");
+// xgettext: no-c-format
+i18n("3.75");
+// xgettext: no-c-format
+i18n("3.80");
+// xgettext: no-c-format
+i18n("3.85");
+// xgettext: no-c-format
+i18n("3.90");
+// xgettext: no-c-format
+i18n("3.95");
+// xgettext: no-c-format
+i18n("4.00");
+// xgettext: no-c-format
+i18n("Horizontal (X-)Shift (in dots)");
+// xgettext: no-c-format
+i18n("Vertical (Y-)Shift (in dots)");
+// xgettext: no-c-format
+i18n("Next Job");
+// xgettext: no-c-format
+i18n("NextJobOnSameSheet");
+// xgettext: no-c-format
+i18n("NextJobOnNewSheet");
+// xgettext: no-c-format
+i18n("Next Job is spot colour page");
+// xgettext: no-c-format
+i18n("NextSpotColourPage");
+// xgettext: no-c-format
+i18n("NextNotSpotColourPage");
+// xgettext: no-c-format
+i18n("This Job is spot colour page");
+// xgettext: no-c-format
+i18n("ThisSpotColourPage");
+// xgettext: no-c-format
+i18n("ThisNotSpotColourPage");
+// xgettext: no-c-format
+i18n("Page Size");
+// xgettext: no-c-format
+i18n("B5");
+// xgettext: no-c-format
+i18n("Manual");
+// xgettext: no-c-format
+i18n("Automatic");
+// xgettext: no-c-format
+i18n("Cardboard");
+// xgettext: no-c-format
+i18n("Coated Film");
+// xgettext: no-c-format
+i18n("Fine Paper");
+// xgettext: no-c-format
+i18n("Iron Seal");
+// xgettext: no-c-format
+i18n("OHP");
+// xgettext: no-c-format
+i18n("OHP (MD 2000)");
+// xgettext: no-c-format
+i18n("Rebeca Free");
+// xgettext: no-c-format
+i18n("Resolution");
+// xgettext: no-c-format
+i18n("1200x600 DPI");
+// xgettext: no-c-format
+i18n("Color Mode");
+// xgettext: no-c-format
+i18n("Colour Depth");
+// xgettext: no-c-format
+i18n("Floyd Steinb. High Qual. (32 bpp)");
+// xgettext: no-c-format
+i18n("Floyd Steinberg Simple (8 bpp)");
+// xgettext: no-c-format
+i18n("Monochrome (1 bpp)");
+// xgettext: no-c-format
+i18n("Simple Colour (4 bpp)");
+// xgettext: no-c-format
+i18n("On");
+// xgettext: no-c-format
+i18n("Duplex");
+// xgettext: no-c-format
+i18n("DoubleSided");
+// xgettext: no-c-format
+i18n("SingleSided");
+// xgettext: no-c-format
+i18n("Black color saving");
+// xgettext: no-c-format
+i18n("EcoBlack");
+// xgettext: no-c-format
+i18n("NormalBlack");
+// xgettext: no-c-format
+i18n("Black Level");
+// xgettext: no-c-format
+i18n("Cyan Level");
+// xgettext: no-c-format
+i18n("Magenta Level");
+// xgettext: no-c-format
+i18n("Yellow Level");
+// xgettext: no-c-format
+i18n("B4 (JIS)");
+// xgettext: no-c-format
+i18n("B6 (JIS)");
+// xgettext: no-c-format
+i18n("Envelope You 4");
+// xgettext: no-c-format
+i18n("Hagaki");
+// xgettext: no-c-format
+i18n("Ledger");
+// xgettext: no-c-format
+i18n("Oufuku");
+// xgettext: no-c-format
+i18n("600x600 DPI");
+// xgettext: no-c-format
+i18n("300x300 DPI");
+// xgettext: no-c-format
+i18n("3x5");
+// xgettext: no-c-format
+i18n("4x6");
+// xgettext: no-c-format
+i18n("5x7");
+// xgettext: no-c-format
+i18n("5x8");
+// xgettext: no-c-format
+i18n("6x8");
+// xgettext: no-c-format
+i18n("8x10");
+// xgettext: no-c-format
+i18n("8x12");
+// xgettext: no-c-format
+i18n("11x14");
+// xgettext: no-c-format
+i18n("13x19");
+// xgettext: no-c-format
+i18n("16x20");
+// xgettext: no-c-format
+i18n("16x24");
+// xgettext: no-c-format
+i18n("60x60 dpi");
+// xgettext: no-c-format
+i18n("60x72 dpi");
+// xgettext: no-c-format
+i18n("60x180 dpi");
+// xgettext: no-c-format
+i18n("60x216 dpi");
+// xgettext: no-c-format
+i18n("120x60 dpi");
+// xgettext: no-c-format
+i18n("120x72 dpi");
+// xgettext: no-c-format
+i18n("120x180 dpi");
+// xgettext: no-c-format
+i18n("120x216 dpi");
+// xgettext: no-c-format
+i18n("180x60 dpi");
+// xgettext: no-c-format
+i18n("180x72 dpi");
+// xgettext: no-c-format
+i18n("180x180 dpi");
+// xgettext: no-c-format
+i18n("180x216 dpi");
+// xgettext: no-c-format
+i18n("240x60 dpi");
+// xgettext: no-c-format
+i18n("240x72 dpi");
+// xgettext: no-c-format
+i18n("240x180 dpi");
+// xgettext: no-c-format
+i18n("240x216 dpi");
+// xgettext: no-c-format
+i18n("360x60 dpi");
+// xgettext: no-c-format
+i18n("360x72 dpi");
+// xgettext: no-c-format
+i18n("360x180 dpi");
+// xgettext: no-c-format
+i18n("360x216 dpi");
+// xgettext: no-c-format
+i18n("11x17");
+// xgettext: no-c-format
+i18n("Photo Paper");
+// xgettext: no-c-format
+i18n("HP Premium Paper");
+// xgettext: no-c-format
+i18n("Transparency Paper");
+// xgettext: no-c-format
+i18n("Print Quality");
+// xgettext: no-c-format
+i18n("Draft Quality");
+// xgettext: no-c-format
+i18n("Normal Quality");
+// xgettext: no-c-format
+i18n("Presentation Quality");
+// xgettext: no-c-format
+i18n("Monochrome");
+// xgettext: no-c-format
+i18n("Dithering Pixels Per Inch");
+// xgettext: no-c-format
+i18n("Generic DeskJet");
+// xgettext: no-c-format
+i18n("Standard Tray");
+// xgettext: no-c-format
+i18n("Banner Printing");
+// xgettext: no-c-format
+i18n("Envelope Feeder");
+// xgettext: no-c-format
+i18n("Manual Feeder");
+// xgettext: no-c-format
+i18n("Quick-Dry Glossy");
+// xgettext: no-c-format
+i18n("Quick-Dry Transparency");
+// xgettext: no-c-format
+i18n("Quality");
+// xgettext: no-c-format
+i18n("Default Setting");
+// xgettext: no-c-format
+i18n("Draft");
+// xgettext: no-c-format
+i18n("Presentation");
+// xgettext: no-c-format
+i18n("Ink Drying Time (sec)");
+// xgettext: no-c-format
+i18n("Memory Limit (Bytes)");
+// xgettext: no-c-format
+i18n("Black Levels");
+// xgettext: no-c-format
+i18n("2 Levels");
+// xgettext: no-c-format
+i18n("3 Levels");
+// xgettext: no-c-format
+i18n("4 Levels");
+// xgettext: no-c-format
+i18n("No Black");
+// xgettext: no-c-format
+i18n("CMY Levels");
+// xgettext: no-c-format
+i18n("No CMY");
+// xgettext: no-c-format
+i18n("Printout Mode");
+// xgettext: no-c-format
+i18n("Draft (Color cartridge)");
+// xgettext: no-c-format
+i18n("Draft Grayscale (Black + color cartridge)");
+// xgettext: no-c-format
+i18n("Normal (Color cartridge)");
+// xgettext: no-c-format
+i18n("Normal Grayscale (Black + color cartridge)");
+// xgettext: no-c-format
+i18n("High Quality Grayscale (Black + color cartridge)");
+// xgettext: no-c-format
+i18n("Photo (Photo + color cartridge, photo paper)");
+// xgettext: no-c-format
+i18n("Photo/4x6 inch index card");
+// xgettext: no-c-format
+i18n("Photo with tear-off tab");
+// xgettext: no-c-format
+i18n("3x5 inch index card");
+// xgettext: no-c-format
+i18n("5x8 inch index card");
+// xgettext: no-c-format
+i18n("A6");
+// xgettext: no-c-format
+i18n("A6 with tear-off tab");
+// xgettext: no-c-format
+i18n("Envelope C6");
+// xgettext: no-c-format
+i18n("American Foolscap");
+// xgettext: no-c-format
+i18n("Oufuku-Hagaki");
+// xgettext: no-c-format
+i18n("16K");
+// xgettext: no-c-format
+i18n("Executive (JIS)");
+// xgettext: no-c-format
+i18n("Resolution, Quality, Ink Type, Media Type");
+// xgettext: no-c-format
+i18n("Controlled by 'Printout Mode'");
+// xgettext: no-c-format
+i18n("300 dpi, Color, Color Cartr.");
+// xgettext: no-c-format
+i18n("300 dpi, Color, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("300 dpi, Draft, Color, Color Cartr.");
+// xgettext: no-c-format
+i18n("300 dpi, Draft, Color, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("300 dpi, Draft, Grayscale, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("300 dpi, Grayscale, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("300 dpi, Photo, Photo + Color Cartr., Premium Paper");
+// xgettext: no-c-format
+i18n("600x300 dpi, Best, Grayscale, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("Normal Color");
+// xgettext: no-c-format
+i18n("Best Quality Color");
+// xgettext: no-c-format
+i18n("Black and White");
+// xgettext: no-c-format
+i18n("Floyd-Steinberg Color");
+// xgettext: no-c-format
+i18n("Floyd-Steinberg Color (Low Memory)");
+// xgettext: no-c-format
+i18n("Floyd-Steinberg Gray");
+// xgettext: no-c-format
+i18n("Black correction (Cyan reduction)");
+// xgettext: no-c-format
+i18n("Ink Reduction");
+// xgettext: no-c-format
+i18n("25 %");
+// xgettext: no-c-format
+i18n("50 %");
+// xgettext: no-c-format
+i18n("No");
+// xgettext: no-c-format
+i18n("Draft (Economy)");
+// xgettext: no-c-format
+i18n("Draft Grayscale (Economy)");
+// xgettext: no-c-format
+i18n("Normal Grayscale");
+// xgettext: no-c-format
+i18n("High Quality");
+// xgettext: no-c-format
+i18n("High Quality Grayscale");
+// xgettext: no-c-format
+i18n("Photo");
+// xgettext: no-c-format
+i18n("Photo Grayscale");
+// xgettext: no-c-format
+i18n("C5");
+// xgettext: no-c-format
+i18n("Commercial 10");
+// xgettext: no-c-format
+i18n("DL");
+// xgettext: no-c-format
+i18n("B5 ISO");
+// xgettext: no-c-format
+i18n("B6 ISO");
+// xgettext: no-c-format
+i18n("B7 ISO");
+// xgettext: no-c-format
+i18n("B8 ISO");
+// xgettext: no-c-format
+i18n("B9 ISO");
+// xgettext: no-c-format
+i18n("B10 ISO");
+// xgettext: no-c-format
+i18n("Monarch Envelope");
+// xgettext: no-c-format
+i18n("Postcard");
+// xgettext: no-c-format
+i18n("C7-6");
+// xgettext: no-c-format
+i18n("Japanese long envelope #4");
+// xgettext: no-c-format
+i18n("Hagaki Card");
+// xgettext: no-c-format
+i18n("Small paperback");
+// xgettext: no-c-format
+i18n("Penguin small paperback");
+// xgettext: no-c-format
+i18n("A2 Invitation");
+// xgettext: no-c-format
+i18n("Epson 4x6 Photo Paper");
+// xgettext: no-c-format
+i18n("Japanese long envelope #3");
+// xgettext: no-c-format
+i18n("B6-C4");
+// xgettext: no-c-format
+i18n("Penguin large paperback");
+// xgettext: no-c-format
+i18n("Crown Quarto");
+// xgettext: no-c-format
+i18n("Large Crown Quarto");
+// xgettext: no-c-format
+i18n("RA4");
+// xgettext: no-c-format
+i18n("American foolscap");
+// xgettext: no-c-format
+i18n("Bond");
+// xgettext: no-c-format
+i18n("Glossy Photo");
+// xgettext: no-c-format
+i18n("Transparencies");
+// xgettext: no-c-format
+i18n("Ink Type");
+// xgettext: no-c-format
+i18n("Color + Photo Cartridges");
+// xgettext: no-c-format
+i18n("Four Color Standard");
+// xgettext: no-c-format
+i18n("stpGamma");
+// xgettext: no-c-format
+i18n("Density");
+// xgettext: no-c-format
+i18n("0.12");
+// xgettext: no-c-format
+i18n("0.14");
+// xgettext: no-c-format
+i18n("0.16");
+// xgettext: no-c-format
+i18n("0.18");
+// xgettext: no-c-format
+i18n("0.22");
+// xgettext: no-c-format
+i18n("0.24");
+// xgettext: no-c-format
+i18n("0.26");
+// xgettext: no-c-format
+i18n("0.28");
+// xgettext: no-c-format
+i18n("0.32");
+// xgettext: no-c-format
+i18n("0.34");
+// xgettext: no-c-format
+i18n("0.36");
+// xgettext: no-c-format
+i18n("0.38");
+// xgettext: no-c-format
+i18n("0.42");
+// xgettext: no-c-format
+i18n("0.44");
+// xgettext: no-c-format
+i18n("0.46");
+// xgettext: no-c-format
+i18n("0.48");
+// xgettext: no-c-format
+i18n("0.52");
+// xgettext: no-c-format
+i18n("0.54");
+// xgettext: no-c-format
+i18n("0.56");
+// xgettext: no-c-format
+i18n("0.58");
+// xgettext: no-c-format
+i18n("0.62");
+// xgettext: no-c-format
+i18n("0.64");
+// xgettext: no-c-format
+i18n("0.66");
+// xgettext: no-c-format
+i18n("0.68");
+// xgettext: no-c-format
+i18n("0.72");
+// xgettext: no-c-format
+i18n("0.74");
+// xgettext: no-c-format
+i18n("0.76");
+// xgettext: no-c-format
+i18n("0.78");
+// xgettext: no-c-format
+i18n("0.82");
+// xgettext: no-c-format
+i18n("0.84");
+// xgettext: no-c-format
+i18n("0.86");
+// xgettext: no-c-format
+i18n("0.88");
+// xgettext: no-c-format
+i18n("0.92");
+// xgettext: no-c-format
+i18n("0.94");
+// xgettext: no-c-format
+i18n("0.96");
+// xgettext: no-c-format
+i18n("0.98");
+// xgettext: no-c-format
+i18n("1.02");
+// xgettext: no-c-format
+i18n("1.04");
+// xgettext: no-c-format
+i18n("1.06");
+// xgettext: no-c-format
+i18n("1.08");
+// xgettext: no-c-format
+i18n("1.12");
+// xgettext: no-c-format
+i18n("1.14");
+// xgettext: no-c-format
+i18n("1.16");
+// xgettext: no-c-format
+i18n("1.18");
+// xgettext: no-c-format
+i18n("1.22");
+// xgettext: no-c-format
+i18n("1.24");
+// xgettext: no-c-format
+i18n("1.26");
+// xgettext: no-c-format
+i18n("1.28");
+// xgettext: no-c-format
+i18n("1.32");
+// xgettext: no-c-format
+i18n("1.34");
+// xgettext: no-c-format
+i18n("1.36");
+// xgettext: no-c-format
+i18n("1.38");
+// xgettext: no-c-format
+i18n("1.42");
+// xgettext: no-c-format
+i18n("1.44");
+// xgettext: no-c-format
+i18n("1.46");
+// xgettext: no-c-format
+i18n("1.48");
+// xgettext: no-c-format
+i18n("1.52");
+// xgettext: no-c-format
+i18n("1.54");
+// xgettext: no-c-format
+i18n("1.56");
+// xgettext: no-c-format
+i18n("1.58");
+// xgettext: no-c-format
+i18n("1.62");
+// xgettext: no-c-format
+i18n("1.64");
+// xgettext: no-c-format
+i18n("1.66");
+// xgettext: no-c-format
+i18n("1.68");
+// xgettext: no-c-format
+i18n("1.72");
+// xgettext: no-c-format
+i18n("1.74");
+// xgettext: no-c-format
+i18n("1.76");
+// xgettext: no-c-format
+i18n("1.78");
+// xgettext: no-c-format
+i18n("1.82");
+// xgettext: no-c-format
+i18n("1.84");
+// xgettext: no-c-format
+i18n("1.86");
+// xgettext: no-c-format
+i18n("1.88");
+// xgettext: no-c-format
+i18n("1.92");
+// xgettext: no-c-format
+i18n("1.94");
+// xgettext: no-c-format
+i18n("1.96");
+// xgettext: no-c-format
+i18n("1.98");
+// xgettext: no-c-format
+i18n("stpBrightness");
+// xgettext: no-c-format
+i18n("0.02");
+// xgettext: no-c-format
+i18n("0.04");
+// xgettext: no-c-format
+i18n("0.06");
+// xgettext: no-c-format
+i18n("0.08");
+// xgettext: no-c-format
+i18n("stpSaturation");
+// xgettext: no-c-format
+i18n("0.0");
+// xgettext: no-c-format
+i18n("0.1");
+// xgettext: no-c-format
+i18n("0.2");
+// xgettext: no-c-format
+i18n("0.3");
+// xgettext: no-c-format
+i18n("0.4");
+// xgettext: no-c-format
+i18n("0.5");
+// xgettext: no-c-format
+i18n("0.6");
+// xgettext: no-c-format
+i18n("0.7");
+// xgettext: no-c-format
+i18n("0.8");
+// xgettext: no-c-format
+i18n("0.9");
+// xgettext: no-c-format
+i18n("1.0");
+// xgettext: no-c-format
+i18n("1.1");
+// xgettext: no-c-format
+i18n("1.2");
+// xgettext: no-c-format
+i18n("1.3");
+// xgettext: no-c-format
+i18n("1.4");
+// xgettext: no-c-format
+i18n("1.5");
+// xgettext: no-c-format
+i18n("1.6");
+// xgettext: no-c-format
+i18n("1.7");
+// xgettext: no-c-format
+i18n("1.8");
+// xgettext: no-c-format
+i18n("1.9");
+// xgettext: no-c-format
+i18n("2.0");
+// xgettext: no-c-format
+i18n("2.1");
+// xgettext: no-c-format
+i18n("2.2");
+// xgettext: no-c-format
+i18n("2.3");
+// xgettext: no-c-format
+i18n("2.4");
+// xgettext: no-c-format
+i18n("2.5");
+// xgettext: no-c-format
+i18n("2.6");
+// xgettext: no-c-format
+i18n("2.7");
+// xgettext: no-c-format
+i18n("2.8");
+// xgettext: no-c-format
+i18n("2.9");
+// xgettext: no-c-format
+i18n("3.0");
+// xgettext: no-c-format
+i18n("3.1");
+// xgettext: no-c-format
+i18n("3.2");
+// xgettext: no-c-format
+i18n("3.3");
+// xgettext: no-c-format
+i18n("3.4");
+// xgettext: no-c-format
+i18n("3.5");
+// xgettext: no-c-format
+i18n("3.6");
+// xgettext: no-c-format
+i18n("3.7");
+// xgettext: no-c-format
+i18n("3.8");
+// xgettext: no-c-format
+i18n("3.9");
+// xgettext: no-c-format
+i18n("4.0");
+// xgettext: no-c-format
+i18n("4.1");
+// xgettext: no-c-format
+i18n("4.2");
+// xgettext: no-c-format
+i18n("4.3");
+// xgettext: no-c-format
+i18n("4.4");
+// xgettext: no-c-format
+i18n("4.5");
+// xgettext: no-c-format
+i18n("4.6");
+// xgettext: no-c-format
+i18n("4.7");
+// xgettext: no-c-format
+i18n("4.8");
+// xgettext: no-c-format
+i18n("4.9");
+// xgettext: no-c-format
+i18n("5.0");
+// xgettext: no-c-format
+i18n("5.1");
+// xgettext: no-c-format
+i18n("5.2");
+// xgettext: no-c-format
+i18n("5.3");
+// xgettext: no-c-format
+i18n("5.4");
+// xgettext: no-c-format
+i18n("5.5");
+// xgettext: no-c-format
+i18n("5.6");
+// xgettext: no-c-format
+i18n("5.7");
+// xgettext: no-c-format
+i18n("5.8");
+// xgettext: no-c-format
+i18n("5.9");
+// xgettext: no-c-format
+i18n("6.0");
+// xgettext: no-c-format
+i18n("6.1");
+// xgettext: no-c-format
+i18n("6.2");
+// xgettext: no-c-format
+i18n("6.3");
+// xgettext: no-c-format
+i18n("6.4");
+// xgettext: no-c-format
+i18n("6.5");
+// xgettext: no-c-format
+i18n("6.6");
+// xgettext: no-c-format
+i18n("6.7");
+// xgettext: no-c-format
+i18n("6.8");
+// xgettext: no-c-format
+i18n("6.9");
+// xgettext: no-c-format
+i18n("7.0");
+// xgettext: no-c-format
+i18n("7.1");
+// xgettext: no-c-format
+i18n("7.2");
+// xgettext: no-c-format
+i18n("7.3");
+// xgettext: no-c-format
+i18n("7.4");
+// xgettext: no-c-format
+i18n("7.5");
+// xgettext: no-c-format
+i18n("7.6");
+// xgettext: no-c-format
+i18n("7.7");
+// xgettext: no-c-format
+i18n("7.8");
+// xgettext: no-c-format
+i18n("7.9");
+// xgettext: no-c-format
+i18n("8.0");
+// xgettext: no-c-format
+i18n("8.1");
+// xgettext: no-c-format
+i18n("8.2");
+// xgettext: no-c-format
+i18n("8.3");
+// xgettext: no-c-format
+i18n("8.4");
+// xgettext: no-c-format
+i18n("8.5");
+// xgettext: no-c-format
+i18n("8.6");
+// xgettext: no-c-format
+i18n("8.7");
+// xgettext: no-c-format
+i18n("8.8");
+// xgettext: no-c-format
+i18n("8.9");
+// xgettext: no-c-format
+i18n("9.0");
+// xgettext: no-c-format
+i18n("Contrast Level");
+// xgettext: no-c-format
+i18n("150 x 150 DPI");
+// xgettext: no-c-format
+i18n("300 x 300 DPI");
+// xgettext: no-c-format
+i18n("600 x 300 DPI");
+// xgettext: no-c-format
+i18n("600 x 600 DPI");
+// xgettext: no-c-format
+i18n("Output Type");
+// xgettext: no-c-format
+i18n("Gray Scale");
+// xgettext: no-c-format
+i18n("Continuous-tone photographs");
+// xgettext: no-c-format
+i18n("Line art");
+// xgettext: no-c-format
+i18n("Primarily solid colors or smooth gradients");
+// xgettext: no-c-format
+i18n("Dither Algorithm");
+// xgettext: no-c-format
+i18n("EvenTone");
+// xgettext: no-c-format
+i18n("Fast");
+// xgettext: no-c-format
+i18n("Raw CMYK");
+// xgettext: no-c-format
+i18n("Not capable");
+// xgettext: no-c-format
+i18n("Printer Default");
+// xgettext: no-c-format
+i18n("GhostScript pre-filtering");
+// xgettext: no-c-format
+i18n("Embed GhostScript fonts only");
+// xgettext: no-c-format
+i18n("Convert to PS level 1");
+// xgettext: no-c-format
+i18n("Convert to PS level 2");
+// xgettext: no-c-format
+i18n("No pre-filtering");
+// xgettext: no-c-format
+i18n("160x72 dpi");
+// xgettext: no-c-format
+i18n("160x144 dpi");
+// xgettext: no-c-format
+i18n("320x216 dpi");
+// xgettext: no-c-format
+i18n("Input Slot");
+// xgettext: no-c-format
+i18n("Standard");
+// xgettext: no-c-format
+i18n("Printer default");
+// xgettext: no-c-format
+i18n("PageSize");
+// xgettext: no-c-format
+i18n("Tabloid");
+// xgettext: no-c-format
+i18n("SRA4");
+// xgettext: no-c-format
+i18n("C4");
+// xgettext: no-c-format
+i18n("ArchA");
+// xgettext: no-c-format
+i18n("European foolscap");
+// xgettext: no-c-format
+i18n("Large Crown Octavo");
+// xgettext: no-c-format
+i18n("Japanese Kaku envelope #4");
+// xgettext: no-c-format
+i18n("ColorModel");
+// xgettext: no-c-format
+i18n("Black & White");
+// xgettext: no-c-format
+i18n("Back Print Film");
+// xgettext: no-c-format
+i18n("Fabric Sheets");
+// xgettext: no-c-format
+i18n("Envelope");
+// xgettext: no-c-format
+i18n("High Resolution Paper");
+// xgettext: no-c-format
+i18n("T-Shirt Transfers");
+// xgettext: no-c-format
+i18n("High Gloss Film");
+// xgettext: no-c-format
+i18n("Glossy Photo Paper");
+// xgettext: no-c-format
+i18n("Glossy Photo Cards");
+// xgettext: no-c-format
+i18n("Photo Paper Pro");
+// xgettext: no-c-format
+i18n("Other");
+// xgettext: no-c-format
+i18n("Auto Sheet Feeder");
+// xgettext: no-c-format
+i18n("Manual with Pause");
+// xgettext: no-c-format
+i18n("Manual without Pause");
+// xgettext: no-c-format
+i18n("90x90 DPI");
+// xgettext: no-c-format
+i18n("180x180 DPI");
+// xgettext: no-c-format
+i18n("360x360 DPI");
+// xgettext: no-c-format
+i18n("360x360 DPI DMT");
+// xgettext: no-c-format
+i18n("720x360 DPI");
+// xgettext: no-c-format
+i18n("Line Art");
+// xgettext: no-c-format
+i18n("Solid Colors");
+// xgettext: no-c-format
+i18n("Photograph");
+// xgettext: no-c-format
+i18n("Black");
+// xgettext: no-c-format
+i18n("Brightness");
+// xgettext: no-c-format
+i18n("0.000");
+// xgettext: no-c-format
+i18n("0.050");
+// xgettext: no-c-format
+i18n("0.100");
+// xgettext: no-c-format
+i18n("0.150");
+// xgettext: no-c-format
+i18n("0.200");
+// xgettext: no-c-format
+i18n("0.250");
+// xgettext: no-c-format
+i18n("0.300");
+// xgettext: no-c-format
+i18n("0.350");
+// xgettext: no-c-format
+i18n("0.400");
+// xgettext: no-c-format
+i18n("0.450");
+// xgettext: no-c-format
+i18n("0.500");
+// xgettext: no-c-format
+i18n("0.550");
+// xgettext: no-c-format
+i18n("0.600");
+// xgettext: no-c-format
+i18n("0.650");
+// xgettext: no-c-format
+i18n("0.700");
+// xgettext: no-c-format
+i18n("0.750");
+// xgettext: no-c-format
+i18n("0.800");
+// xgettext: no-c-format
+i18n("0.850");
+// xgettext: no-c-format
+i18n("0.900");
+// xgettext: no-c-format
+i18n("0.950");
+// xgettext: no-c-format
+i18n("1.000");
+// xgettext: no-c-format
+i18n("1.050");
+// xgettext: no-c-format
+i18n("1.100");
+// xgettext: no-c-format
+i18n("1.150");
+// xgettext: no-c-format
+i18n("1.200");
+// xgettext: no-c-format
+i18n("1.250");
+// xgettext: no-c-format
+i18n("1.300");
+// xgettext: no-c-format
+i18n("1.350");
+// xgettext: no-c-format
+i18n("1.400");
+// xgettext: no-c-format
+i18n("1.450");
+// xgettext: no-c-format
+i18n("1.500");
+// xgettext: no-c-format
+i18n("1.550");
+// xgettext: no-c-format
+i18n("1.600");
+// xgettext: no-c-format
+i18n("1.650");
+// xgettext: no-c-format
+i18n("1.700");
+// xgettext: no-c-format
+i18n("1.750");
+// xgettext: no-c-format
+i18n("1.800");
+// xgettext: no-c-format
+i18n("1.850");
+// xgettext: no-c-format
+i18n("1.900");
+// xgettext: no-c-format
+i18n("1.950");
+// xgettext: no-c-format
+i18n("2.000");
+// xgettext: no-c-format
+i18n("Contrast");
+// xgettext: no-c-format
+i18n("2.050");
+// xgettext: no-c-format
+i18n("2.100");
+// xgettext: no-c-format
+i18n("2.150");
+// xgettext: no-c-format
+i18n("2.200");
+// xgettext: no-c-format
+i18n("2.250");
+// xgettext: no-c-format
+i18n("2.300");
+// xgettext: no-c-format
+i18n("2.350");
+// xgettext: no-c-format
+i18n("2.400");
+// xgettext: no-c-format
+i18n("2.450");
+// xgettext: no-c-format
+i18n("2.500");
+// xgettext: no-c-format
+i18n("2.550");
+// xgettext: no-c-format
+i18n("2.600");
+// xgettext: no-c-format
+i18n("2.650");
+// xgettext: no-c-format
+i18n("2.700");
+// xgettext: no-c-format
+i18n("2.750");
+// xgettext: no-c-format
+i18n("2.800");
+// xgettext: no-c-format
+i18n("2.850");
+// xgettext: no-c-format
+i18n("2.900");
+// xgettext: no-c-format
+i18n("2.950");
+// xgettext: no-c-format
+i18n("3.000");
+// xgettext: no-c-format
+i18n("3.050");
+// xgettext: no-c-format
+i18n("3.100");
+// xgettext: no-c-format
+i18n("3.150");
+// xgettext: no-c-format
+i18n("3.200");
+// xgettext: no-c-format
+i18n("3.250");
+// xgettext: no-c-format
+i18n("3.300");
+// xgettext: no-c-format
+i18n("3.350");
+// xgettext: no-c-format
+i18n("3.400");
+// xgettext: no-c-format
+i18n("3.450");
+// xgettext: no-c-format
+i18n("3.500");
+// xgettext: no-c-format
+i18n("3.550");
+// xgettext: no-c-format
+i18n("3.600");
+// xgettext: no-c-format
+i18n("3.650");
+// xgettext: no-c-format
+i18n("3.700");
+// xgettext: no-c-format
+i18n("3.750");
+// xgettext: no-c-format
+i18n("3.800");
+// xgettext: no-c-format
+i18n("3.850");
+// xgettext: no-c-format
+i18n("3.900");
+// xgettext: no-c-format
+i18n("3.950");
+// xgettext: no-c-format
+i18n("4.000");
+// xgettext: no-c-format
+i18n("Cyan");
+// xgettext: no-c-format
+i18n("Magenta");
+// xgettext: no-c-format
+i18n("Yellow");
+// xgettext: no-c-format
+i18n("Saturation");
+// xgettext: no-c-format
+i18n("4.050");
+// xgettext: no-c-format
+i18n("4.100");
+// xgettext: no-c-format
+i18n("4.150");
+// xgettext: no-c-format
+i18n("4.200");
+// xgettext: no-c-format
+i18n("4.250");
+// xgettext: no-c-format
+i18n("4.300");
+// xgettext: no-c-format
+i18n("4.350");
+// xgettext: no-c-format
+i18n("4.400");
+// xgettext: no-c-format
+i18n("4.450");
+// xgettext: no-c-format
+i18n("4.500");
+// xgettext: no-c-format
+i18n("4.550");
+// xgettext: no-c-format
+i18n("4.600");
+// xgettext: no-c-format
+i18n("4.650");
+// xgettext: no-c-format
+i18n("4.700");
+// xgettext: no-c-format
+i18n("4.750");
+// xgettext: no-c-format
+i18n("4.800");
+// xgettext: no-c-format
+i18n("4.850");
+// xgettext: no-c-format
+i18n("4.900");
+// xgettext: no-c-format
+i18n("4.950");
+// xgettext: no-c-format
+i18n("5.000");
+// xgettext: no-c-format
+i18n("5.050");
+// xgettext: no-c-format
+i18n("5.100");
+// xgettext: no-c-format
+i18n("5.150");
+// xgettext: no-c-format
+i18n("5.200");
+// xgettext: no-c-format
+i18n("5.250");
+// xgettext: no-c-format
+i18n("5.300");
+// xgettext: no-c-format
+i18n("5.350");
+// xgettext: no-c-format
+i18n("5.400");
+// xgettext: no-c-format
+i18n("5.450");
+// xgettext: no-c-format
+i18n("5.500");
+// xgettext: no-c-format
+i18n("5.550");
+// xgettext: no-c-format
+i18n("5.600");
+// xgettext: no-c-format
+i18n("5.650");
+// xgettext: no-c-format
+i18n("5.700");
+// xgettext: no-c-format
+i18n("5.750");
+// xgettext: no-c-format
+i18n("5.800");
+// xgettext: no-c-format
+i18n("5.850");
+// xgettext: no-c-format
+i18n("5.900");
+// xgettext: no-c-format
+i18n("5.950");
+// xgettext: no-c-format
+i18n("6.000");
+// xgettext: no-c-format
+i18n("6.050");
+// xgettext: no-c-format
+i18n("6.100");
+// xgettext: no-c-format
+i18n("6.150");
+// xgettext: no-c-format
+i18n("6.200");
+// xgettext: no-c-format
+i18n("6.250");
+// xgettext: no-c-format
+i18n("6.300");
+// xgettext: no-c-format
+i18n("6.350");
+// xgettext: no-c-format
+i18n("6.400");
+// xgettext: no-c-format
+i18n("6.450");
+// xgettext: no-c-format
+i18n("6.500");
+// xgettext: no-c-format
+i18n("6.550");
+// xgettext: no-c-format
+i18n("6.600");
+// xgettext: no-c-format
+i18n("6.650");
+// xgettext: no-c-format
+i18n("6.700");
+// xgettext: no-c-format
+i18n("6.750");
+// xgettext: no-c-format
+i18n("6.800");
+// xgettext: no-c-format
+i18n("6.850");
+// xgettext: no-c-format
+i18n("6.900");
+// xgettext: no-c-format
+i18n("6.950");
+// xgettext: no-c-format
+i18n("7.000");
+// xgettext: no-c-format
+i18n("7.050");
+// xgettext: no-c-format
+i18n("7.100");
+// xgettext: no-c-format
+i18n("7.150");
+// xgettext: no-c-format
+i18n("7.200");
+// xgettext: no-c-format
+i18n("7.250");
+// xgettext: no-c-format
+i18n("7.300");
+// xgettext: no-c-format
+i18n("7.350");
+// xgettext: no-c-format
+i18n("7.400");
+// xgettext: no-c-format
+i18n("7.450");
+// xgettext: no-c-format
+i18n("7.500");
+// xgettext: no-c-format
+i18n("7.550");
+// xgettext: no-c-format
+i18n("7.600");
+// xgettext: no-c-format
+i18n("7.650");
+// xgettext: no-c-format
+i18n("7.700");
+// xgettext: no-c-format
+i18n("7.750");
+// xgettext: no-c-format
+i18n("7.800");
+// xgettext: no-c-format
+i18n("7.850");
+// xgettext: no-c-format
+i18n("7.900");
+// xgettext: no-c-format
+i18n("7.950");
+// xgettext: no-c-format
+i18n("8.000");
+// xgettext: no-c-format
+i18n("8.050");
+// xgettext: no-c-format
+i18n("8.100");
+// xgettext: no-c-format
+i18n("8.150");
+// xgettext: no-c-format
+i18n("8.200");
+// xgettext: no-c-format
+i18n("8.250");
+// xgettext: no-c-format
+i18n("8.300");
+// xgettext: no-c-format
+i18n("8.350");
+// xgettext: no-c-format
+i18n("8.400");
+// xgettext: no-c-format
+i18n("8.450");
+// xgettext: no-c-format
+i18n("8.500");
+// xgettext: no-c-format
+i18n("8.550");
+// xgettext: no-c-format
+i18n("8.600");
+// xgettext: no-c-format
+i18n("8.650");
+// xgettext: no-c-format
+i18n("8.700");
+// xgettext: no-c-format
+i18n("8.750");
+// xgettext: no-c-format
+i18n("8.800");
+// xgettext: no-c-format
+i18n("8.850");
+// xgettext: no-c-format
+i18n("8.900");
+// xgettext: no-c-format
+i18n("8.950");
+// xgettext: no-c-format
+i18n("9.000");
+// xgettext: no-c-format
+i18n("720x720 DPI");
+// xgettext: no-c-format
+i18n("1440x720 DPI");
+// xgettext: no-c-format
+i18n("Photo CcMmY Color");
+// xgettext: no-c-format
+i18n("Photo CcMmYK Color");
+// xgettext: no-c-format
+i18n("1200x1200 DPI");
+// xgettext: no-c-format
+i18n("12x18");
+// xgettext: no-c-format
+i18n("Super B 13x19");
+// xgettext: no-c-format
+i18n("20x24");
+// xgettext: no-c-format
+i18n("20x30");
+// xgettext: no-c-format
+i18n("22x30");
+// xgettext: no-c-format
+i18n("24x30");
+// xgettext: no-c-format
+i18n("24x36");
+// xgettext: no-c-format
+i18n("30x40");
+// xgettext: no-c-format
+i18n("A0");
+// xgettext: no-c-format
+i18n("A1");
+// xgettext: no-c-format
+i18n("A2");
+// xgettext: no-c-format
+i18n("RA0");
+// xgettext: no-c-format
+i18n("RA1");
+// xgettext: no-c-format
+i18n("RA2");
+// xgettext: no-c-format
+i18n("RA3");
+// xgettext: no-c-format
+i18n("SRA0");
+// xgettext: no-c-format
+i18n("SRA1");
+// xgettext: no-c-format
+i18n("SRA2");
+// xgettext: no-c-format
+i18n("B0 ISO");
+// xgettext: no-c-format
+i18n("B1 ISO");
+// xgettext: no-c-format
+i18n("B2 ISO");
+// xgettext: no-c-format
+i18n("B3 ISO");
+// xgettext: no-c-format
+i18n("B0 JIS");
+// xgettext: no-c-format
+i18n("B1 JIS");
+// xgettext: no-c-format
+i18n("B2 JIS");
+// xgettext: no-c-format
+i18n("B3 JIS");
+// xgettext: no-c-format
+i18n("C0");
+// xgettext: no-c-format
+i18n("C1");
+// xgettext: no-c-format
+i18n("C2");
+// xgettext: no-c-format
+i18n("C3");
+// xgettext: no-c-format
+i18n("ArchA Transverse");
+// xgettext: no-c-format
+i18n("ArchB");
+// xgettext: no-c-format
+i18n("ArchB Transverse");
+// xgettext: no-c-format
+i18n("ArchC");
+// xgettext: no-c-format
+i18n("ArchC Transverse");
+// xgettext: no-c-format
+i18n("ArchD");
+// xgettext: no-c-format
+i18n("ArchD Transverse");
+// xgettext: no-c-format
+i18n("ArchE");
+// xgettext: no-c-format
+i18n("Plain Paper Fast Load");
+// xgettext: no-c-format
+i18n("Glossy Film");
+// xgettext: no-c-format
+i18n("Envelopes");
+// xgettext: no-c-format
+i18n("Back Light Film");
+// xgettext: no-c-format
+i18n("Matte Paper");
+// xgettext: no-c-format
+i18n("Inkjet Paper");
+// xgettext: no-c-format
+i18n("Photo Quality Inkjet Paper");
+// xgettext: no-c-format
+i18n("Premium Glossy Photo Paper");
+// xgettext: no-c-format
+i18n("Premium Luster Photo Paper");
+// xgettext: no-c-format
+i18n("Photo Quality Glossy Paper");
+// xgettext: no-c-format
+i18n("Ilford Heavy Paper");
+// xgettext: no-c-format
+i18n("ColorLife Paper");
+// xgettext: no-c-format
+i18n("Roll Feed");
+// xgettext: no-c-format
+i18n("360 x 90 DPI Fast Economy Draft");
+// xgettext: no-c-format
+i18n("360 x 120 DPI Economy Draft");
+// xgettext: no-c-format
+i18n("180 DPI Economy Draft");
+// xgettext: no-c-format
+i18n("360 x 240 DPI Draft");
+// xgettext: no-c-format
+i18n("360 x 180 DPI Draft");
+// xgettext: no-c-format
+i18n("360 DPI Microweave");
+// xgettext: no-c-format
+i18n("360 DPI Microweave Unidirectional");
+// xgettext: no-c-format
+i18n("360 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("360 DPI Full Overlap");
+// xgettext: no-c-format
+i18n("360 DPI Full Overlap Unidirectional");
+// xgettext: no-c-format
+i18n("360 DPI FOL2");
+// xgettext: no-c-format
+i18n("360 DPI FOL2 Unidirectional");
+// xgettext: no-c-format
+i18n("360 DPI MW2");
+// xgettext: no-c-format
+i18n("360 DPI MW2 Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI");
+// xgettext: no-c-format
+i18n("720 x 360 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI Microweave");
+// xgettext: no-c-format
+i18n("720 x 360 DPI Microweave Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI FOL");
+// xgettext: no-c-format
+i18n("720 x 360 DPI FOL Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI FOL2");
+// xgettext: no-c-format
+i18n("720 x 360 DPI FOL2 Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI MW2");
+// xgettext: no-c-format
+i18n("720 x 360 DPI MW2 Unidirectional");
+// xgettext: no-c-format
+i18n("720 DPI Microweave");
+// xgettext: no-c-format
+i18n("720 DPI Microweave Unidirectional");
+// xgettext: no-c-format
+i18n("720 DPI Full Overlap");
+// xgettext: no-c-format
+i18n("720 DPI Full Overlap Unidirectional");
+// xgettext: no-c-format
+i18n("720 DPI Four Pass");
+// xgettext: no-c-format
+i18n("720 DPI Four Pass Unidirectional");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Microweave");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Microweave Unidirectional");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI FOL");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI FOL Unidirectional");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Four Pass");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Four Pass Unidirectional");
+// xgettext: no-c-format
+i18n("Six Color Photo");
+// xgettext: no-c-format
+i18n("Five Color Photo Composite");
+// xgettext: no-c-format
+i18n("Three Color Composite");
+// xgettext: no-c-format
+i18n("Quadtone");
+// xgettext: no-c-format
+i18n("720 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("720 DPI High Quality");
+// xgettext: no-c-format
+i18n("720 DPI High Quality Unidirectional");
+// xgettext: no-c-format
+i18n("720 DPI Highest Quality");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Highest Quality");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("Roll Feed (cut each page)");
+// xgettext: no-c-format
+i18n("Roll Feed (do not cut)");
+// xgettext: no-c-format
+i18n("1440 x 1440 DPI");
+// xgettext: no-c-format
+i18n("1440 x 1440 DPI Highest Quality");
+// xgettext: no-c-format
+i18n("2880 x 1440 DPI");
+// xgettext: no-c-format
+i18n("Seven Color Photo");
+// xgettext: no-c-format
+i18n("Two Level Grayscale");
+// xgettext: no-c-format
+i18n("Cut Sheet Bin 1");
+// xgettext: no-c-format
+i18n("Cut Sheet Bin 2");
+// xgettext: no-c-format
+i18n("Cut Sheet Autoselect");
+// xgettext: no-c-format
+i18n("Manual Selection");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI Microweave");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI Microweave Unidirectional");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI FOL");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI FOL Unidirectional");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI Four Pass");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI Four Pass Unidirectional");
+// xgettext: no-c-format
+i18n("1440 x 1440 DPI Microweave");
+// xgettext: no-c-format
+i18n("1440 x 1440 DPI Microweave Unidirectional");
+// xgettext: no-c-format
+i18n("1440 x 1440 DPI FOL");
+// xgettext: no-c-format
+i18n("1440 x 1440 DPI FOL Unidirectional");
+// xgettext: no-c-format
+i18n("1440 x 1440 DPI Four Pass");
+// xgettext: no-c-format
+i18n("1440 x 1440 DPI Four Pass Unidirectional");
+// xgettext: no-c-format
+i18n("2880 x 1440 DPI Microweave");
+// xgettext: no-c-format
+i18n("2880 x 1440 DPI Microweave Unidirectional");
+// xgettext: no-c-format
+i18n("2880 x 1440 DPI FOL");
+// xgettext: no-c-format
+i18n("2880 x 1440 DPI FOL Unidirectional");
+// xgettext: no-c-format
+i18n("2880 x 1440 DPI Four Pass");
+// xgettext: no-c-format
+i18n("2880 x 1440 DPI Four Pass Unidirectional");
+// xgettext: no-c-format
+i18n("Seven Color Enhanced");
+// xgettext: no-c-format
+i18n("Six Color Enhanced Composite");
+// xgettext: no-c-format
+i18n("Plain");
+// xgettext: no-c-format
+i18n("300 DPI x 600 DPI");
+// xgettext: no-c-format
+i18n("600 DPI high quality");
+// xgettext: no-c-format
+i18n("600 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("1200 DPI high quality");
+// xgettext: no-c-format
+i18n("1200 DPI highest quality");
+// xgettext: no-c-format
+i18n("1200 DPI  Unidirectional");
+// xgettext: no-c-format
+i18n("2400 DPI x 1200 DPI");
+// xgettext: no-c-format
+i18n("2400 DPI x 1200 DPI high quality");
+// xgettext: no-c-format
+i18n("2400 DPI x 1200 DPI highest quality");
+// xgettext: no-c-format
+i18n("600x600 DPI monochrome");
+// xgettext: no-c-format
+i18n("Quick-dry Photo");
+// xgettext: no-c-format
+i18n("Quick-dry Transparency");
+// xgettext: no-c-format
+i18n("Portable Sheet Feeder");
+// xgettext: no-c-format
+i18n("Desktop Sheet Feeder");
+// xgettext: no-c-format
+i18n("Color + Black Cartridges");
+// xgettext: no-c-format
+i18n("Upper Tray");
+// xgettext: no-c-format
+i18n("Lower Tray");
+// xgettext: no-c-format
+i18n("Dual");
+// xgettext: no-c-format
+i18n("Thicker Paper");
+// xgettext: no-c-format
+i18n("Thin Paper");
+// xgettext: no-c-format
+i18n("Toner Saving");
+// xgettext: no-c-format
+i18n("High (50%)");
+// xgettext: no-c-format
+i18n("Low (25%)");
+// xgettext: no-c-format
+i18n("Standard printing");
+// xgettext: no-c-format
+i18n("Floyd-Steinberg dithered printing");
+// xgettext: no-c-format
+i18n("Tray 5");
+// xgettext: no-c-format
+i18n("2400x600 DPI");
+// xgettext: no-c-format
+i18n("Draft Grayscale");
+// xgettext: no-c-format
+i18n("Printer Model");
+// xgettext: no-c-format
+i18n("HP LaserJet II series");
+// xgettext: no-c-format
+i18n("HP LaserJet III series");
+// xgettext: no-c-format
+i18n("8K");
+// xgettext: no-c-format
+i18n("Large Capacity Tray");
+// xgettext: no-c-format
+i18n("Multi Purpose Tray");
+// xgettext: no-c-format
+i18n("300 dpi, Draft, Grayscale, Black Cartr.");
+// xgettext: no-c-format
+i18n("300 dpi, Grayscale, Black Cartr.");
+// xgettext: no-c-format
+i18n("600 dpi, Grayscale, Black Cartr.");
+// xgettext: no-c-format
+i18n("180x360 dpi");
+// xgettext: no-c-format
+i18n("360x360 dpi");
+// xgettext: no-c-format
+i18n("180 x 180 DPI");
+// xgettext: no-c-format
+i18n("360 x 360 DPI");
+// xgettext: no-c-format
+i18n("Plain paper");
+// xgettext: no-c-format
+i18n("Bond paper");
+// xgettext: no-c-format
+i18n("Media Weight");
+// xgettext: no-c-format
+i18n("Normal paper");
+// xgettext: no-c-format
+i18n("Thick paper");
+// xgettext: no-c-format
+i18n("90 DPI");
+// xgettext: no-c-format
+i18n("Ghostscript Bits Per Pixel");
+// xgettext: no-c-format
+i18n("Monochrome (1bpp)");
+// xgettext: no-c-format
+i18n("CMYK with Ghostscript dithering (8bpp)");
+// xgettext: no-c-format
+i18n("CMYK with Ghostscript FS dithering (16bpp)");
+// xgettext: no-c-format
+i18n("CMYK with FS dithering (24 bpp)");
+// xgettext: no-c-format
+i18n("CMYK with FS dithering (32 bpp)");
+// xgettext: no-c-format
+i18n("Color Model");
+// xgettext: no-c-format
+i18n("Four-color CMYK");
+// xgettext: no-c-format
+i18n("Greyscale");
+// xgettext: no-c-format
+i18n("Three-color RGB");
+// xgettext: no-c-format
+i18n("Colours to be used");
+// xgettext: no-c-format
+i18n("Cyan only");
+// xgettext: no-c-format
+i18n("Cyan, Black");
+// xgettext: no-c-format
+i18n("Cyan, Magenta");
+// xgettext: no-c-format
+i18n("Cyan, Magenta, Black");
+// xgettext: no-c-format
+i18n("Cyan, Magenta, Yellow");
+// xgettext: no-c-format
+i18n("Cyan, Magenta, Yellow, Black");
+// xgettext: no-c-format
+i18n("Cyan, Yellow");
+// xgettext: no-c-format
+i18n("Cyan, Yellow, Black");
+// xgettext: no-c-format
+i18n("Black only");
+// xgettext: no-c-format
+i18n("Black for any colour");
+// xgettext: no-c-format
+i18n("Magenta only");
+// xgettext: no-c-format
+i18n("Magenta, Black");
+// xgettext: no-c-format
+i18n("Magenta, Yellow");
+// xgettext: no-c-format
+i18n("Magenta, Yellow, Black");
+// xgettext: no-c-format
+i18n("Yellow only");
+// xgettext: no-c-format
+i18n("Yellow, Black");
+// xgettext: no-c-format
+i18n("90 x 90 DPI");
+// xgettext: no-c-format
+i18n("Resolution, Media Type");
+// xgettext: no-c-format
+i18n("360x360dpi, back print film");
+// xgettext: no-c-format
+i18n("360x360dpi, coated paper");
+// xgettext: no-c-format
+i18n("360x360dpi, fabric sheet");
+// xgettext: no-c-format
+i18n("360x360dpi, glossy paper");
+// xgettext: no-c-format
+i18n("360x360dpi, high gloss film");
+// xgettext: no-c-format
+i18n("360x360dpi, high resolution paper");
+// xgettext: no-c-format
+i18n("360x360dpi, plain paper");
+// xgettext: no-c-format
+i18n("360x360dpi, plain paper, high speed");
+// xgettext: no-c-format
+i18n("360x360dpi, transparency film");
+// xgettext: no-c-format
+i18n("Very High Quality");
+// xgettext: no-c-format
+i18n("Very High Quality Grayscale");
+// xgettext: no-c-format
+i18n("720 x 720 DPI");
+// xgettext: no-c-format
+i18n("360 dpi");
+// xgettext: no-c-format
+i18n("720 dpi");
+// xgettext: no-c-format
+i18n("Low Quality");
+// xgettext: no-c-format
+i18n("720x720dpi, back print film");
+// xgettext: no-c-format
+i18n("720x720dpi, coated paper");
+// xgettext: no-c-format
+i18n("720x720dpi, glossy paper");
+// xgettext: no-c-format
+i18n("720x720dpi, high-gloss paper");
+// xgettext: no-c-format
+i18n("720x720dpi, high resolution paper");
+// xgettext: no-c-format
+i18n("720x720dpi, plain paper");
+// xgettext: no-c-format
+i18n("720x720dpi, transparency film");
+// xgettext: no-c-format
+i18n("1200 x 600 DPI");
+// xgettext: no-c-format
+i18n("Resolution, Quality, Media Type");
+// xgettext: no-c-format
+i18n("600x600dpi, iron-on transfer sheets, normal quality");
+// xgettext: no-c-format
+i18n("600x600dpi, plain paper, normal quality");
+// xgettext: no-c-format
+i18n("600x600dpi, transparencies, normal quality");
+// xgettext: no-c-format
+i18n("1200x1200dpi, glossy photo cards, high quality");
+// xgettext: no-c-format
+i18n("1200x1200dpi, high gloss photo paper, high quality");
+// xgettext: no-c-format
+i18n("1200x1200dpi, professional photo paper, highest quality");
+// xgettext: no-c-format
+i18n("1200 x 1200 DPI");
+// xgettext: no-c-format
+i18n("Number of Copies");
+// xgettext: no-c-format
+i18n("REt Setting");
+// xgettext: no-c-format
+i18n("Halftoning");
+// xgettext: no-c-format
+i18n("HP LaserJet 4L");
+// xgettext: no-c-format
+i18n("Shift output horizontally (in 1/300 inch)");
+// xgettext: no-c-format
+i18n("Shift output vertically (in 1/300 inch)");
+// xgettext: no-c-format
+i18n("Full Paint");
+// xgettext: no-c-format
+i18n("FullPaint");
+// xgettext: no-c-format
+i18n("PartialPaint");
+// xgettext: no-c-format
+i18n("Printer's paper size");
+// xgettext: no-c-format
+i18n("IgnoreSize");
+// xgettext: no-c-format
+i18n("RequireSize");
+// xgettext: no-c-format
+i18n("240x240 DPI");
+// xgettext: no-c-format
+i18n("300x300 dpi");
+// xgettext: no-c-format
+i18n("300x600 dpi");
+// xgettext: no-c-format
+i18n("600x600 dpi");
+// xgettext: no-c-format
+i18n("600x1200 dpi");
+// xgettext: no-c-format
+i18n("1200x1200 dpi");
+// xgettext: no-c-format
+i18n("Head Separation");
+// xgettext: no-c-format
+i18n("300x600 DPI");
+// xgettext: no-c-format
+i18n("300x1200 DPI");
+// xgettext: no-c-format
+i18n("600x1200 DPI");
+// xgettext: no-c-format
+i18n("1200x300 DPI");
+// xgettext: no-c-format
+i18n("Photo Quality Colour (6-ink)");
+// xgettext: no-c-format
+i18n("Normal Quality Colour (4-ink)");
+// xgettext: no-c-format
+i18n("Bidirectional printing");
+// xgettext: no-c-format
+i18n("off");
+// xgettext: no-c-format
+i18n("on");
+// xgettext: no-c-format
+i18n("Horz. align. betw. cartr.");
+// xgettext: no-c-format
+i18n("Vert. align. betw. cartr.");
+// xgettext: no-c-format
+i18n("Distance even/odd nozzles left cartr.");
+// xgettext: no-c-format
+i18n("Distance even/odd nozzles right cartr.");
+// xgettext: no-c-format
+i18n("Number of passes per line");
+// xgettext: no-c-format
+i18n("Paper Source");
+// xgettext: no-c-format
+i18n("Tray 8");
+// xgettext: no-c-format
+i18n("Tray 9");
+// xgettext: no-c-format
+i18n("Tray 10");
+// xgettext: no-c-format
+i18n("Tray 11");
+// xgettext: no-c-format
+i18n("Tray 12");
+// xgettext: no-c-format
+i18n("Tray 13");
+// xgettext: no-c-format
+i18n("Tray 14");
+// xgettext: no-c-format
+i18n("Tray 15");
+// xgettext: no-c-format
+i18n("Page Output");
+// xgettext: no-c-format
+i18n("FaceUp");
+// xgettext: no-c-format
+i18n("FaceDown");
+// xgettext: no-c-format
+i18n("Thick Paper/Card Board");
+// xgettext: no-c-format
+i18n("Toner Density");
+// xgettext: no-c-format
+i18n("TonerSaving");
+// xgettext: no-c-format
+i18n("Output Order");
+// xgettext: no-c-format
+i18n("Collate");
+// xgettext: no-c-format
+i18n("Orientation");
+// xgettext: no-c-format
+i18n("Landscape");
+// xgettext: no-c-format
+i18n("Portrait");
+// xgettext: no-c-format
+i18n("RIT Control");
+// xgettext: no-c-format
+i18n("RITOff");
+// xgettext: no-c-format
+i18n("RITOn");
+// xgettext: no-c-format
+i18n("Monochrome, fast");
+// xgettext: no-c-format
+i18n("Monochrome, Floyd-Steinberg");
+// xgettext: no-c-format
+i18n("Head motion");
+// xgettext: no-c-format
+i18n("Unidirectional");
+// xgettext: no-c-format
+i18n("Bidirectional");
+// xgettext: no-c-format
+i18n("Weaving");
+// xgettext: no-c-format
+i18n("Microweave (Printer internal)");
+// xgettext: no-c-format
+i18n("Softweave (Driver internal)");
+// xgettext: no-c-format
+i18n("ESC/P2 Encoding");
+// xgettext: no-c-format
+i18n("Delta Row");
+// xgettext: no-c-format
+i18n("Run Length");
+// xgettext: no-c-format
+i18n("Uncompressed");
+// xgettext: no-c-format
+i18n("Preconfiguration file");
+// xgettext: no-c-format
+i18n("stcolor");
+// xgettext: no-c-format
+i18n("none");
+// xgettext: no-c-format
+i18n("Initialization values for dithering");
+// xgettext: no-c-format
+i18n("Uniform");
+// xgettext: no-c-format
+i18n("Random");
+// xgettext: no-c-format
+i18n("360 x 120 DPI");
+// xgettext: no-c-format
+i18n("360 x 240 DPI");
+// xgettext: no-c-format
+i18n("360 x 180 DPI");
+// xgettext: no-c-format
+i18n("360 x 90 DPI");
+// xgettext: no-c-format
+i18n("360x360dpi, 4-bit, PostScript halftoning, weaved");
+// xgettext: no-c-format
+i18n("360x360dpi, 32-bit CMYK");
+// xgettext: no-c-format
+i18n("720x720dpi, 32-bit CMYK, weaved");
+// xgettext: no-c-format
+i18n("Colour, Floyd-Steinberg, CMYK, better");
+// xgettext: no-c-format
+i18n("Colour, fast, CMYK");
+// xgettext: no-c-format
+i18n("Colour, modif. Floyd-Steinberg, CMYK, faster");
+// xgettext: no-c-format
+i18n("Colour, fast, RGB");
+// xgettext: no-c-format
+i18n("Colour, Floyd-Steinberg, RGB");
+// xgettext: no-c-format
+i18n("Colour, Floyd-Steinberg, CMYK, simpler");
+// xgettext: no-c-format
+i18n("Colour, Stefan-Singer algorithm, RGB");
+// xgettext: no-c-format
+i18n("360 dpi, plain paper");
+// xgettext: no-c-format
+i18n("720 dpi, plain paper");
+// xgettext: no-c-format
+i18n("1440x720dpi, inkjet paper");
+// xgettext: no-c-format
+i18n("Resolution, Color Mode, Media Type");
+// xgettext: no-c-format
+i18n("360x360dpi, plain paper, grayscale");
+// xgettext: no-c-format
+i18n("720x720dpi, inkjet paper");
+// xgettext: no-c-format
+i18n("720x720dpi, plain paper, grayscale");
+// xgettext: no-c-format
+i18n("1440x720dpi, inkjet paper, grayscale");
+// xgettext: no-c-format
+i18n("360x360dpi, plain paper low quality");
+// xgettext: no-c-format
+i18n("360x360dpi");
+// xgettext: no-c-format
+i18n("720x720dpi");
+// xgettext: no-c-format
+i18n("F4");
+// xgettext: no-c-format
+i18n("Government Legal");
+// xgettext: no-c-format
+i18n("Government Letter");
+// xgettext: no-c-format
+i18n("Half Letter");
+// xgettext: no-c-format
+i18n("TonerSave");
+// xgettext: no-c-format
+i18n("Dpi");
+// xgettext: no-c-format
+i18n("600x300 dpi (Class600)");
+// xgettext: no-c-format
+i18n("1200x600 dpi (Class1200)");
+// xgettext: no-c-format
+i18n("Ritech");
+// xgettext: no-c-format
+i18n("Resolution, Color Mode");
+// xgettext: no-c-format
+i18n("180x180dpi, Grayscale, plain paper");
+// xgettext: no-c-format
+i18n("360x360dpi, Color, plain paper");
+// xgettext: no-c-format
+i18n("360x360dpi, Grayscale, plain paper");
+// xgettext: no-c-format
+i18n("360x720 DPI");
+// xgettext: no-c-format
+i18n("400x400 DPI");
+// xgettext: no-c-format
+i18n("300 dpi, Best, Color, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("600 dpi, Best, Color, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("600 dpi, Grayscale, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("Super B");
+// xgettext: no-c-format
+i18n("Manual Feeding");
+// xgettext: no-c-format
+i18n("Paper type");
+// xgettext: no-c-format
+i18n("Glossy film");
+// xgettext: no-c-format
+i18n("Special paper");
+// xgettext: no-c-format
+i18n("Transparency film");
+// xgettext: no-c-format
+i18n("Printing Quality");
+// xgettext: no-c-format
+i18n("RET (Resolution Enhancement)");
+// xgettext: no-c-format
+i18n("Draft (auto-detect paper type)");
+// xgettext: no-c-format
+i18n("Photo (on photo paper)");
+// xgettext: no-c-format
+i18n("300 dpi, Photo, Black + Color Cartr., Photo Paper");
+// xgettext: no-c-format
+i18n("600 dpi, Color, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("600 dpi, Photo, Black + Color Cartr., Photo Paper");
+// xgettext: no-c-format
+i18n("Draft Grayscale (auto-detect paper type)");
+// xgettext: no-c-format
+i18n("Normal (auto-detect paper type)");
+// xgettext: no-c-format
+i18n("Normal Grayscale (auto-detect paper type)");
+// xgettext: no-c-format
+i18n("High Quality (auto-detect paper type)");
+// xgettext: no-c-format
+i18n("High Quality Grayscale (auto-detect paper type)");
+// xgettext: no-c-format
+i18n("1200 dpi, Photo, Black + Color Cartr., Photo Paper");
+// xgettext: no-c-format
+i18n("Binding for Double-Sided Pr.");
+// xgettext: no-c-format
+i18n("Long Edge");
+// xgettext: no-c-format
+i18n("Short Edge");
+// xgettext: no-c-format
+i18n("Auto");
+// xgettext: no-c-format
+i18n("Contone (4096 colors)");
+// xgettext: no-c-format
+i18n("2A");
+// xgettext: no-c-format
+i18n("4A");
+// xgettext: no-c-format
+i18n("Arch A");
+// xgettext: no-c-format
+i18n("Arch B");
+// xgettext: no-c-format
+i18n("Arch C");
+// xgettext: no-c-format
+i18n("Arch D");
+// xgettext: no-c-format
+i18n("Arch E");
+// xgettext: no-c-format
+i18n("B0 (ISO)");
+// xgettext: no-c-format
+i18n("B1 (ISO)");
+// xgettext: no-c-format
+i18n("B2 (ISO)");
+// xgettext: no-c-format
+i18n("B3 (ISO)");
+// xgettext: no-c-format
+i18n("B4 (ISO)");
+// xgettext: no-c-format
+i18n("B5 (ISO)");
+// xgettext: no-c-format
+i18n("B0 (JIS)");
+// xgettext: no-c-format
+i18n("B1 (JIS)");
+// xgettext: no-c-format
+i18n("B2 (JIS)");
+// xgettext: no-c-format
+i18n("B3 (JIS)");
+// xgettext: no-c-format
+i18n("Super A");
+// xgettext: no-c-format
+i18n("Tabloid Extra");
+// xgettext: no-c-format
+i18n("EconoFast Mode");
+// xgettext: no-c-format
+i18n("Color (Color Cartridge, for photos)");
+// xgettext: no-c-format
+i18n("Color (both cartridges, for text with images)");
+// xgettext: no-c-format
+i18n("Grayscale (black cartridge)");
+// xgettext: no-c-format
+i18n("Dithering Algorithm");
+// xgettext: no-c-format
+i18n("Floyd Steinberg (higher quality)");
+// xgettext: no-c-format
+i18n("Ordered (faster)");
+// xgettext: no-c-format
+i18n("Off (better quality)");
+// xgettext: no-c-format
+i18n("On (faster)");
+// xgettext: no-c-format
+i18n("Black ink density adjustment.");
+// xgettext: no-c-format
+i18n("Bottom Margin");
+// xgettext: no-c-format
+i18n("Left Margin");
+// xgettext: no-c-format
+i18n("Right Margin");
+// xgettext: no-c-format
+i18n("Top Margin");
+// xgettext: no-c-format
+i18n("X Offset");
+// xgettext: no-c-format
+i18n("Y Offset");
+// xgettext: no-c-format
+i18n("Gamma Correction File");
+// xgettext: no-c-format
+i18n("Default (/etc/pnm2ppa.gamma)");
+// xgettext: no-c-format
+i18n("Normal Quality (/etc/pnm2ppa.gamma_normal)");
+// xgettext: no-c-format
+i18n("Best Quality (/etc/pnm2ppa.gamma_best)");
+// xgettext: no-c-format
+i18n("None");
+// xgettext: no-c-format
+i18n("GhostScript Rendering Format");
+// xgettext: no-c-format
+i18n("Gamma Correction");
+// xgettext: no-c-format
+i18n("Gamma Black");
+// xgettext: no-c-format
+i18n("Gamma Cyan");
+// xgettext: no-c-format
+i18n("Gamma Magenta");
+// xgettext: no-c-format
+i18n("Gamma Yellow");
+// xgettext: no-c-format
+i18n("Draft Grayscale (Black cartridge)");
+// xgettext: no-c-format
+i18n("Normal Grayscale (Black cartridge)");
+// xgettext: no-c-format
+i18n("High Quality Grayscale (Black cartridge)");
+// xgettext: no-c-format
+i18n("600x300 dpi, Best, Grayscale, Black Cartr.");
+// xgettext: no-c-format
+i18n("300 dpi, Color, Full Bleed, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("600 dpi, Color, Full Bleed, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("1200 dpi, Photo, Full Bleed, Black + Color Cartr., Photo Paper");
+// xgettext: no-c-format
+i18n("Photo (Color cartridge, on photo paper)");
+// xgettext: no-c-format
+i18n("300 dpi, Photo, Color Cartr., Photo Paper");
+// xgettext: no-c-format
+i18n("600 dpi, Photo, Color Cartr., Photo Paper");
+// xgettext: no-c-format
+i18n("Glossy");
+// xgettext: no-c-format
+i18n("Paper");
+// xgettext: no-c-format
+i18n("Behaviour when Toner Low");
+// xgettext: no-c-format
+i18n("Output Bin");
+// xgettext: no-c-format
+i18n("Upper");
+// xgettext: no-c-format
+i18n("Lower");
+// xgettext: no-c-format
+i18n("MP Tray");
+// xgettext: no-c-format
+i18n("300 dpi, Color, Full Bleed, Color Cartr.");
+// xgettext: no-c-format
+i18n("600 dpi, Color, Color Cartr.");
+// xgettext: no-c-format
+i18n("600 dpi, Color, Full Bleed, Color Cartr.");
+// xgettext: no-c-format
+i18n("1200 dpi, Photo, Color Cartr., Photo Paper");
+// xgettext: no-c-format
+i18n("1200 dpi, Photo, Full Bleed, Color Cartr., Photo Paper");
+// xgettext: no-c-format
+i18n("150 dpi, Best, Color, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("150 dpi, Color, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("150 dpi, Draft, Color, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("150 dpi, Draft, Grayscale, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("150 dpi, Grayscale, Black + Color Cartr.");
+// xgettext: no-c-format
+i18n("2400x1200 DPI");
+// xgettext: no-c-format
+i18n("High Quality (Color cartridge)");
+// xgettext: no-c-format
+i18n("Cover for HP DeskJet 3425");
+// xgettext: no-c-format
+i18n("75x75 dpi");
+// xgettext: no-c-format
+i18n("150x150 dpi");
+// xgettext: no-c-format
+i18n("Black cartridge");
+// xgettext: no-c-format
+i18n("Color cartridge");
+// xgettext: no-c-format
+i18n("Folio");
+// xgettext: no-c-format
+i18n("Normal Paper");
+// xgettext: no-c-format
+i18n("Card Stock");
+// xgettext: no-c-format
+i18n("Adhesive Labels");
+// xgettext: no-c-format
+i18n("Pre-printed paper");
+// xgettext: no-c-format
+i18n("Allow use of 'Reprint' button");
+// xgettext: no-c-format
+i18n("Yes");
+// xgettext: no-c-format
+i18n("Altitude Correction");
+// xgettext: no-c-format
+i18n("High Altitude (Low Air Pressure)");
+// xgettext: no-c-format
+i18n("Low Altitude (High Air Pressure)");
+// xgettext: no-c-format
+i18n("Reprint Page after Paper Jam");
+// xgettext: no-c-format
+i18n("Page Timeout");
+// xgettext: no-c-format
+i18n("15 sec");
+// xgettext: no-c-format
+i18n("30 sec");
+// xgettext: no-c-format
+i18n("45 sec");
+// xgettext: no-c-format
+i18n("Idle time to start power save mode (min)");
+// xgettext: no-c-format
+i18n("5 min");
+// xgettext: no-c-format
+i18n("10 min");
+// xgettext: no-c-format
+i18n("15 min");
+// xgettext: no-c-format
+i18n("30 min");
+// xgettext: no-c-format
+i18n("45 min");
+// xgettext: no-c-format
+i18n("60 min");
+// xgettext: no-c-format
+i18n("Use Power Saving Mode");
+// xgettext: no-c-format
+i18n("Dithering PPI");
+// xgettext: no-c-format
+i18n("300 x 600 DPI");
+// xgettext: no-c-format
+i18n("2400 x 1200 DPI");
+// xgettext: no-c-format
+i18n("2-passes x-weaving");
+// xgettext: no-c-format
+i18n("3-passes x-weaving");
+// xgettext: no-c-format
+i18n("320x320 DPI");
+// xgettext: no-c-format
+i18n("160x160 DPI");
+// xgettext: no-c-format
+i18n("Darkness");
+// xgettext: no-c-format
+i18n("Darkest");
+// xgettext: no-c-format
+i18n("Lightest");
+// xgettext: no-c-format
+i18n("Black toner saving");
+// xgettext: no-c-format
+i18n("DeskJet");
+// xgettext: no-c-format
+i18n("DeskJet 310");
+// xgettext: no-c-format
+i18n("DeskJet 320");
+// xgettext: no-c-format
+i18n("DeskJet 340");
+// xgettext: no-c-format
+i18n("DeskJet 400");
+// xgettext: no-c-format
+i18n("DeskJet 600");
+// xgettext: no-c-format
+i18n("DeskJet 660C");
+// xgettext: no-c-format
+i18n("DeskJet 670C");
+// xgettext: no-c-format
+i18n("DeskJet 680C");
+// xgettext: no-c-format
+i18n("DeskJet 690C");
+// xgettext: no-c-format
+i18n("DeskJet 870C");
+// xgettext: no-c-format
+i18n("DeskJet 890C");
+// xgettext: no-c-format
+i18n("DeskJet 970C with Duplexer");
+// xgettext: no-c-format
+i18n("DeskJet 1120C");
+// xgettext: no-c-format
+i18n("DeskJet Plus");
+// xgettext: no-c-format
+i18n("DeskJet Portable");
+// xgettext: no-c-format
+i18n("Olivetti (Black sent after CMY)");
+// xgettext: no-c-format
+i18n("Unspecified Model");
+// xgettext: no-c-format
+i18n("Unspecified Old Model");
+// xgettext: no-c-format
+i18n("Configure Every Page");
+// xgettext: no-c-format
+i18n("Media Size");
+// xgettext: no-c-format
+i18n("Letter");
+// xgettext: no-c-format
+i18n("Legal");
+// xgettext: no-c-format
+i18n("A4");
+// xgettext: no-c-format
+i18n("PageRegion");
+// xgettext: no-c-format
+i18n("Output Resolution");
+// xgettext: no-c-format
+i18n("204x196 DPI");
+// xgettext: no-c-format
+i18n("204x98 DPI");
+// xgettext: no-c-format
+i18n("your fax for replies");
+// xgettext: no-c-format
+i18n("ID");
+// xgettext: no-c-format
+i18n("your fax header");
+// xgettext: no-c-format
+i18n("Default");
+// xgettext: no-c-format
+i18n("Resolution");
+// xgettext: no-c-format
+i18n("72dpi");
+// xgettext: no-c-format
+i18n("144dpi");
+// xgettext: no-c-format
+i18n("300dpi");
+// xgettext: no-c-format
+i18n("360dpi");
+// xgettext: no-c-format
+i18n("600dpi");
+// xgettext: no-c-format
+i18n("720dpi");
+// xgettext: no-c-format
+i18n("1200dpi");
+// xgettext: no-c-format
+i18n("1440dpi");
+// xgettext: no-c-format
+i18n("2400dpi");
+// xgettext: no-c-format
+i18n("PageSize");
+// xgettext: no-c-format
+i18n("A0");
+// xgettext: no-c-format
+i18n("A1");
+// xgettext: no-c-format
+i18n("A2");
+// xgettext: no-c-format
+i18n("A3");
+// xgettext: no-c-format
+i18n("A5");
+// xgettext: no-c-format
+i18n("A6");
+// xgettext: no-c-format
+i18n("B4");
+// xgettext: no-c-format
+i18n("B5");
+// xgettext: no-c-format
+i18n("B6");
+// xgettext: no-c-format
+i18n("US Legal");
+// xgettext: no-c-format
+i18n("US Letter");
+// xgettext: no-c-format
+i18n("Executive");
+// xgettext: no-c-format
+i18n("Statement");
+// xgettext: no-c-format
+i18n("US Tabloid");
+// xgettext: no-c-format
+i18n("Ledger Landscape");
+// xgettext: no-c-format
+i18n("US C");
+// xgettext: no-c-format
+i18n("US D");
+// xgettext: no-c-format
+i18n("US E");
+// xgettext: no-c-format
+i18n("ARCH A");
+// xgettext: no-c-format
+i18n("ARCH B");
+// xgettext: no-c-format
+i18n("ARCH C");
+// xgettext: no-c-format
+i18n("ARCH D");
+// xgettext: no-c-format
+i18n("ARCH E");
+// xgettext: no-c-format
+i18n("Monarch Envelope");
+// xgettext: no-c-format
+i18n("DL Envelope");
+// xgettext: no-c-format
+i18n("C4 Envelope");
+// xgettext: no-c-format
+i18n("C5 Envelope");
+// xgettext: no-c-format
+i18n("C6 Envelope");
+// xgettext: no-c-format
+i18n("C10 Envelope");
+// xgettext: no-c-format
+i18n("C65 Envelope");
+// xgettext: no-c-format
+i18n("Folio");
+// xgettext: no-c-format
+i18n("InputSlot");
+// xgettext: no-c-format
+i18n("Autotray");
+// xgettext: no-c-format
+i18n("Tray 2 Paper Tray");
+// xgettext: no-c-format
+i18n("Installed Memory");
+// xgettext: no-c-format
+i18n("Standard 16MB");
+// xgettext: no-c-format
+i18n("80 MB");
+// xgettext: no-c-format
+i18n("B5 (JIS)");
+// xgettext: no-c-format
+i18n("Envelope 10");
+// xgettext: no-c-format
+i18n("Envelope DL");
+// xgettext: no-c-format
+i18n("Envelope C5");
+// xgettext: no-c-format
+i18n("Envelope C6");
+// xgettext: no-c-format
+i18n("Envelope Monarch");
+// xgettext: no-c-format
+i18n("Envelope A2");
+// xgettext: no-c-format
+i18n("4x6");
+// xgettext: no-c-format
+i18n("5x8");
+// xgettext: no-c-format
+i18n("A6 Card");
+// xgettext: no-c-format
+i18n("Print Color as Gray");
+// xgettext: no-c-format
+i18n("On");
+// xgettext: no-c-format
+i18n("Off");
+// xgettext: no-c-format
+i18n("Media Type");
+// xgettext: no-c-format
+i18n("Plain Paper");
+// xgettext: no-c-format
+i18n("HP Premium Inkjet Paper");
+// xgettext: no-c-format
+i18n("HP Premium Inkjet Heavyweight Paper");
+// xgettext: no-c-format
+i18n("HP Premium Transparency");
+// xgettext: no-c-format
+i18n("HP Premium Photo Paper");
+// xgettext: no-c-format
+i18n("HP Photo Paper");
+// xgettext: no-c-format
+i18n("HP Professional Brochure Paper, Glossy");
+// xgettext: no-c-format
+i18n("HP Professional Brochure Paper, Matte");
+// xgettext: no-c-format
+i18n(" Paper Source");
+// xgettext: no-c-format
+i18n("Tray 1");
+// xgettext: no-c-format
+i18n("Tray 2");
+// xgettext: no-c-format
+i18n("Manual Feed");
+// xgettext: no-c-format
+i18n("HP ColorSmart");
+// xgettext: no-c-format
+i18n("Automatic");
+// xgettext: no-c-format
+i18n("Manual");
+// xgettext: no-c-format
+i18n("Text");
+// xgettext: no-c-format
+i18n("ScreenMatch(sRGB)");
+// xgettext: no-c-format
+i18n("Vivid");
+// xgettext: no-c-format
+i18n("Graphics");
+// xgettext: no-c-format
+i18n("Image");
+// xgettext: no-c-format
+i18n(" Print Quality");
+// xgettext: no-c-format
+i18n("Best");
+// xgettext: no-c-format
+i18n("Normal");
+// xgettext: no-c-format
+i18n("Fast");
+// xgettext: no-c-format
+i18n("CMYK Inks");
+// xgettext: no-c-format
+i18n("FAST");
+// xgettext: no-c-format
+i18n("SWOP Emulation");
+// xgettext: no-c-format
+i18n("Eurostandard");
+// xgettext: no-c-format
+i18n("TOYO");
+// xgettext: no-c-format
+i18n("Pages per Sheet");
+// xgettext: no-c-format
+i18n("1 (Portrait)");
+// xgettext: no-c-format
+i18n("1 (Landscape)");
+// xgettext: no-c-format
+i18n("2 (Portrait)");
+// xgettext: no-c-format
+i18n("2 (Landscape)");
+// xgettext: no-c-format
+i18n("4 (Portrait)");
+// xgettext: no-c-format
+i18n("4 (Landscape)");
+// xgettext: no-c-format
+i18n("6 (Portrait)");
+// xgettext: no-c-format
+i18n("6 (Landscape)");
+// xgettext: no-c-format
+i18n("9 (Portrait)");
+// xgettext: no-c-format
+i18n("9 (Landscape)");
+// xgettext: no-c-format
+i18n("16 (Portrait)");
+// xgettext: no-c-format
+i18n("16 (Landscape)");
+// xgettext: no-c-format
+i18n("Watermark");
+// xgettext: no-c-format
+i18n("None");
+// xgettext: no-c-format
+i18n("Company Confidential");
+// xgettext: no-c-format
+i18n("Company Proprietary");
+// xgettext: no-c-format
+i18n("Company Private");
+// xgettext: no-c-format
+i18n("Confidential");
+// xgettext: no-c-format
+i18n("Copy");
+// xgettext: no-c-format
+i18n("Copyright");
+// xgettext: no-c-format
+i18n("Draft");
+// xgettext: no-c-format
+i18n("File Copy");
+// xgettext: no-c-format
+i18n("Final");
+// xgettext: no-c-format
+i18n("For Internal Use Only");
+// xgettext: no-c-format
+i18n("Preliminary");
+// xgettext: no-c-format
+i18n("Proof");
+// xgettext: no-c-format
+i18n("Review Copy");
+// xgettext: no-c-format
+i18n("Sample");
+// xgettext: no-c-format
+i18n("Top Secret");
+// xgettext: no-c-format
+i18n("Urgent");
+// xgettext: no-c-format
+i18n("Watermark Font");
+// xgettext: no-c-format
+i18n("Courier Bold");
+// xgettext: no-c-format
+i18n("Times Bold");
+// xgettext: no-c-format
+i18n("Helvetica Bold");
+// xgettext: no-c-format
+i18n("Watermark Size");
+// xgettext: no-c-format
+i18n("24 Points");
+// xgettext: no-c-format
+i18n("30 Points");
+// xgettext: no-c-format
+i18n("36 Points");
+// xgettext: no-c-format
+i18n("42 Points");
+// xgettext: no-c-format
+i18n("48 Points");
+// xgettext: no-c-format
+i18n("54 Points");
+// xgettext: no-c-format
+i18n("60 Points");
+// xgettext: no-c-format
+i18n("66 Points");
+// xgettext: no-c-format
+i18n("72 Points");
+// xgettext: no-c-format
+i18n("78 Points");
+// xgettext: no-c-format
+i18n("84 Points");
+// xgettext: no-c-format
+i18n("90 Points");
+// xgettext: no-c-format
+i18n("Watermark Angle");
+// xgettext: no-c-format
+i18n("90 Degrees");
+// xgettext: no-c-format
+i18n("75 Degrees");
+// xgettext: no-c-format
+i18n("60 Degrees");
+// xgettext: no-c-format
+i18n("45 Degrees");
+// xgettext: no-c-format
+i18n("30 Degrees");
+// xgettext: no-c-format
+i18n("15 Degrees");
+// xgettext: no-c-format
+i18n("0 Degrees");
+// xgettext: no-c-format
+i18n("-15 Degrees");
+// xgettext: no-c-format
+i18n("-30 Degrees");
+// xgettext: no-c-format
+i18n("-45 Degrees");
+// xgettext: no-c-format
+i18n("-60 Degrees");
+// xgettext: no-c-format
+i18n("-75 Degrees");
+// xgettext: no-c-format
+i18n("-90 Degrees");
+// xgettext: no-c-format
+i18n("Watermark Style");
+// xgettext: no-c-format
+i18n("Narrow Outline");
+// xgettext: no-c-format
+i18n("Medium Outline");
+// xgettext: no-c-format
+i18n("Wide Outline");
+// xgettext: no-c-format
+i18n("Wide Halo Outline");
+// xgettext: no-c-format
+i18n("Print Watermark");
+// xgettext: no-c-format
+i18n("All Pages");
+// xgettext: no-c-format
+i18n("First Page Only");
+// xgettext: no-c-format
+i18n("32 MB");
+// xgettext: no-c-format
+i18n("48 MB");
+// xgettext: no-c-format
+i18n("64 MB");
+// xgettext: no-c-format
+i18n("72 MB");
+// xgettext: no-c-format
+i18n("Tabloid");
+// xgettext: no-c-format
+i18n("4x6 Index Card");
+// xgettext: no-c-format
+i18n("5x8 Index Card");
+// xgettext: no-c-format
+i18n("Super B");
+// xgettext: no-c-format
+i18n("Super A3");
+// xgettext: no-c-format
+i18n("Input Slot");
+// xgettext: no-c-format
+i18n("Tray 3");
+// xgettext: no-c-format
+i18n("Rear Manual Feed");
+// xgettext: no-c-format
+i18n("True");
+// xgettext: no-c-format
+i18n("False");
+// xgettext: no-c-format
+i18n("HP Rapid-Dry Transparency");
+// xgettext: no-c-format
+i18n("HP Transparency");
+// xgettext: no-c-format
+i18n("HP Iron-on T-shirt Transfers");
+// xgettext: no-c-format
+i18n("Fit to Page");
+// xgettext: no-c-format
+i18n("Prompt User");
+// xgettext: no-c-format
+i18n("Nearest Size and Scale");
+// xgettext: no-c-format
+i18n("Nearest Size and Crop");
+// xgettext: no-c-format
+i18n("Print Quality");
+// xgettext: no-c-format
+i18n("EconoFast");
+// xgettext: no-c-format
+i18n("Color Control");
+// xgettext: no-c-format
+i18n("Enhanced Native");
+// xgettext: no-c-format
+i18n("ColorSmart Business Graphics");
+// xgettext: no-c-format
+i18n("No Color Adjustment");
+// xgettext: no-c-format
+i18n("Pantone");
+// xgettext: no-c-format
+i18n("Rendering Intent");
+// xgettext: no-c-format
+i18n("Contrast");
+// xgettext: no-c-format
+i18n("Colorimetric");
+// xgettext: no-c-format
+i18n("Saturation");
+// xgettext: no-c-format
+i18n(" -25% Lighter");
+// xgettext: no-c-format
+i18n(" -20%");
+// xgettext: no-c-format
+i18n(" -15%");
+// xgettext: no-c-format
+i18n(" -10%");
+// xgettext: no-c-format
+i18n(" -5%");
+// xgettext: no-c-format
+i18n(" 0% No Change");
+// xgettext: no-c-format
+i18n(" +5%");
+// xgettext: no-c-format
+i18n(" +10%");
+// xgettext: no-c-format
+i18n(" +15%");
+// xgettext: no-c-format
+i18n(" +20%");
+// xgettext: no-c-format
+i18n(" +25% Darker");
+// xgettext: no-c-format
+i18n("Application Halftoning");
+// xgettext: no-c-format
+i18n("Yes");
+// xgettext: no-c-format
+i18n("No");
+// xgettext: no-c-format
+i18n("Scale to");
+// xgettext: no-c-format
+i18n("No Change");
+// xgettext: no-c-format
+i18n("PPD Version");
+// xgettext: no-c-format
+i18n("2.0");
+// xgettext: no-c-format
+i18n("Rear Feed Unit");
+// xgettext: no-c-format
+i18n("Installed");
+// xgettext: no-c-format
+i18n("Not Installed");
+// xgettext: no-c-format
+i18n("Memory Configuration");
+// xgettext: no-c-format
+i18n("36 - 43 MB RAM");
+// xgettext: no-c-format
+i18n("44 - 51 MB RAM");
+// xgettext: no-c-format
+i18n("52 - 59 MB RAM");
+// xgettext: no-c-format
+i18n("60 - 67 MB RAM");
+// xgettext: no-c-format
+i18n(">= 68 MB RAM");
+// xgettext: no-c-format
+i18n("Print as Grayscale");
+// xgettext: no-c-format
+i18n("ColorSmart");
+// xgettext: no-c-format
+i18n("Auto");
+// xgettext: no-c-format
+i18n("Pantone<AE>");
+// xgettext: no-c-format
+i18n("ColorSmart Text");
+// xgettext: no-c-format
+i18n("Vivid Color");
+// xgettext: no-c-format
+i18n("Match Color Across Printers");
+// xgettext: no-c-format
+i18n("No Adjustment");
+// xgettext: no-c-format
+i18n("ColorSmart Graphics");
+// xgettext: no-c-format
+i18n("ColorSmart Photos");
+// xgettext: no-c-format
+i18n("Text Halftone");
+// xgettext: no-c-format
+i18n("Detail");
+// xgettext: no-c-format
+i18n("Smooth");
+// xgettext: no-c-format
+i18n("Basic");
+// xgettext: no-c-format
+i18n("Graphics Halftone");
+// xgettext: no-c-format
+i18n("Image Halftone");
+// xgettext: no-c-format
+i18n("Transparency/HP Special Paper");
+// xgettext: no-c-format
+i18n("Media Source");
+// xgettext: no-c-format
+i18n("Auto Select");
+// xgettext: no-c-format
+i18n("Front Tray");
+// xgettext: no-c-format
+i18n("Rear Tray");
+// xgettext: no-c-format
+i18n("Output Bin");
+// xgettext: no-c-format
+i18n("Upper");
+// xgettext: no-c-format
+i18n("Lower");
+// xgettext: no-c-format
+i18n(" 8 - 15 MB Total RAM");
+// xgettext: no-c-format
+i18n(" 16 - 23 MB Total RAM");
+// xgettext: no-c-format
+i18n(" 24 - 31 MB Total RAM");
+// xgettext: no-c-format
+i18n(" 32 - 39 MB Total RAM");
+// xgettext: no-c-format
+i18n(" 40 - 56 MB Total RAM");
+// xgettext: no-c-format
+i18n("Letter 8 1/2 x 11 in");
+// xgettext: no-c-format
+i18n("Legal 8 1/2 x 14 in");
+// xgettext: no-c-format
+i18n("Tabloid 11 x 17 in");
+// xgettext: no-c-format
+i18n("Executive 7 1/4 x 10 1/2 in");
+// xgettext: no-c-format
+i18n("A4 210 x 297 mm");
+// xgettext: no-c-format
+i18n("A3 297 x 420 mm");
+// xgettext: no-c-format
+i18n("Halftone");
+// xgettext: no-c-format
+i18n("Cluster (Standard)");
+// xgettext: no-c-format
+i18n("Scatter (Enhanced)");
+// xgettext: no-c-format
+i18n("Printer's Current Setting");
+// xgettext: no-c-format
+i18n("Full Color");
+// xgettext: no-c-format
+i18n("Paper");
+// xgettext: no-c-format
+i18n("Transparency");
+// xgettext: no-c-format
+i18n("Resolution Enhancement (REt)");
+// xgettext: no-c-format
+i18n("Light");
+// xgettext: no-c-format
+i18n("Medium");
+// xgettext: no-c-format
+i18n("Dark");
+// xgettext: no-c-format
+i18n("Printer Default");
+// xgettext: no-c-format
+i18n("Tray3");
+// xgettext: no-c-format
+i18n("32 - 39 MB RAM");
+// xgettext: no-c-format
+i18n("40 - 63 MB RAM");
+// xgettext: no-c-format
+i18n("64 - 95 MB RAM");
+// xgettext: no-c-format
+i18n("96 - 127 MB RAM");
+// xgettext: no-c-format
+i18n("128 - 159 MB RAM");
+// xgettext: no-c-format
+i18n("160 - 191 MB RAM");
+// xgettext: no-c-format
+i18n("  192 MB RAM");
+// xgettext: no-c-format
+i18n("Duplex Unit (for 2-Sided Printing)");
+// xgettext: no-c-format
+i18n("Envelope B5");
+// xgettext: no-c-format
+i18n("Envelope #10");
+// xgettext: no-c-format
+i18n("Plain");
+// xgettext: no-c-format
+i18n("Preprinted");
+// xgettext: no-c-format
+i18n("Letterhead");
+// xgettext: no-c-format
+i18n("Glossy");
+// xgettext: no-c-format
+i18n("Prepunched");
+// xgettext: no-c-format
+i18n("Labels");
+// xgettext: no-c-format
+i18n("Bond");
+// xgettext: no-c-format
+i18n("Recycled");
+// xgettext: no-c-format
+i18n("Color");
+// xgettext: no-c-format
+i18n("Heavy");
+// xgettext: no-c-format
+i18n("Card Stock");
+// xgettext: no-c-format
+i18n("Print Finish");
+// xgettext: no-c-format
+i18n("Matte");
+// xgettext: no-c-format
+i18n("Paper Source");
+// xgettext: no-c-format
+i18n("Tray2");
+// xgettext: no-c-format
+i18n("Tray1");
+// xgettext: no-c-format
+i18n("2-Sided Printing");
+// xgettext: no-c-format
+i18n("Long-Edge Binding");
+// xgettext: no-c-format
+i18n("Short-Edge Binding");
+// xgettext: no-c-format
+i18n("SWOP");
+// xgettext: no-c-format
+i18n("ColorSmart II");
+// xgettext: no-c-format
+i18n("ScreenMatch(sRGB)-Detail");
+// xgettext: no-c-format
+i18n("ScreenMatch(sRGB)-Smooth");
+// xgettext: no-c-format
+i18n("Vivid-Detail");
+// xgettext: no-c-format
+i18n("Vivid-Smooth");
+// xgettext: no-c-format
+i18n("500-Sheet Paper Feeder");
+// xgettext: no-c-format
+i18n("Printer Disk");
+// xgettext: no-c-format
+i18n("RAM Disk");
+// xgettext: no-c-format
+i18n("Hard Disk");
+// xgettext: no-c-format
+i18n("32 - 63 MB RAM");
+// xgettext: no-c-format
+i18n("192 - 223 MB RAM");
+// xgettext: no-c-format
+i18n("224 - 256 MB RAM");
+// xgettext: no-c-format
+i18n("Duplex Printing Accessory");
+// xgettext: no-c-format
+i18n("Paper Matching");
+// xgettext: no-c-format
+i18n("Prompt User for correct size");
+// xgettext: no-c-format
+i18n("Nearest Size & Scale");
+// xgettext: no-c-format
+i18n("Nearest Size & Crop");
+// xgettext: no-c-format
+i18n("Job Retention");
+// xgettext: no-c-format
+i18n("Quick Copy");
+// xgettext: no-c-format
+i18n("Proof and Hold");
+// xgettext: no-c-format
+i18n("Stored Job");
+// xgettext: no-c-format
+i18n("Private Job");
+// xgettext: no-c-format
+i18n("PIN (for Private Job)");
+// xgettext: no-c-format
+i18n("User Specified PIN");
+// xgettext: no-c-format
+i18n("User Name");
+// xgettext: no-c-format
+i18n("Use file sharing name");
+// xgettext: no-c-format
+i18n("Forms");
+// xgettext: no-c-format
+i18n("Custom user name");
+// xgettext: no-c-format
+i18n("Job Name");
+// xgettext: no-c-format
+i18n("Use Document Name");
+// xgettext: no-c-format
+i18n("User Specified Job Name");
+// xgettext: no-c-format
+i18n("US Letter (Small)");
+// xgettext: no-c-format
+i18n("US Legal (Small)");
+// xgettext: no-c-format
+i18n("A4 (Small)");
+// xgettext: no-c-format
+i18n("JB5");
+// xgettext: no-c-format
+i18n("Env ISO B5");
+// xgettext: no-c-format
+i18n("Env Comm10");
+// xgettext: no-c-format
+i18n("Env C5");
+// xgettext: no-c-format
+i18n("Env DL");
+// xgettext: no-c-format
+i18n("Env Monarch");
+// xgettext: no-c-format
+i18n("Tray 3 (Optional)");
+// xgettext: no-c-format
+i18n("Glossy Finish");
+// xgettext: no-c-format
+i18n("Automatic PANTONE¨ Color Calibration");
+// xgettext: no-c-format
+i18n("EuroScale");
+// xgettext: no-c-format
+i18n("DIC");
+// xgettext: no-c-format
+i18n("Manual Text");
+// xgettext: no-c-format
+i18n("Calibrated-Detail");
+// xgettext: no-c-format
+i18n("Calibrated-Smooth");
+// xgettext: no-c-format
+i18n("Manual Graphics");
+// xgettext: no-c-format
+i18n("Manual Image");
+// xgettext: no-c-format
+i18n("Watermark/Overlay");
+// xgettext: no-c-format
+i18n("Overlay");
+// xgettext: no-c-format
+i18n("Watermark Pages");
+// xgettext: no-c-format
+i18n("All");
+// xgettext: no-c-format
+i18n("First Only");
+// xgettext: no-c-format
+i18n("Watermark Text");
+// xgettext: no-c-format
+i18n("Custom");
+// xgettext: no-c-format
+i18n("Watermark Size (points)");
+// xgettext: no-c-format
+i18n("90<A1>");
+// xgettext: no-c-format
+i18n("75<A1>");
+// xgettext: no-c-format
+i18n("60<A1>");
+// xgettext: no-c-format
+i18n("45<A1>");
+// xgettext: no-c-format
+i18n("30<A1>");
+// xgettext: no-c-format
+i18n("15<A1>");
+// xgettext: no-c-format
+i18n("0<A1>");
+// xgettext: no-c-format
+i18n("Ð15<A1>");
+// xgettext: no-c-format
+i18n("Ð30<A1>");
+// xgettext: no-c-format
+i18n("Ð45<A1>");
+// xgettext: no-c-format
+i18n("Ð60<A1>");
+// xgettext: no-c-format
+i18n("Ð75<A1>");
+// xgettext: no-c-format
+i18n("Ð90<A1>");
+// xgettext: no-c-format
+i18n("Thin Outline");
+// xgettext: no-c-format
+i18n("Thick Outline");
+// xgettext: no-c-format
+i18n("Thick Outline with Halo");
+// xgettext: no-c-format
+i18n("Filled");
+// xgettext: no-c-format
+i18n("Watermark Color");
+// xgettext: no-c-format
+i18n("Gray");
+// xgettext: no-c-format
+i18n("Red");
+// xgettext: no-c-format
+i18n("Orange");
+// xgettext: no-c-format
+i18n("Yellow");
+// xgettext: no-c-format
+i18n("Green");
+// xgettext: no-c-format
+i18n("Blue");
+// xgettext: no-c-format
+i18n("Violet");
+// xgettext: no-c-format
+i18n("Watermark Intensity");
+// xgettext: no-c-format
+i18n("Darkest");
+// xgettext: no-c-format
+i18n("Darker");
+// xgettext: no-c-format
+i18n("Medium Dark");
+// xgettext: no-c-format
+i18n("Medium Light");
+// xgettext: no-c-format
+i18n("Lighter");
+// xgettext: no-c-format
+i18n("Lightest");
+// xgettext: no-c-format
+i18n("Collate");
+// xgettext: no-c-format
+i18n("On (turn off in application)");
+// xgettext: no-c-format
+i18n("2000 sheet input Tray 4");
+// xgettext: no-c-format
+i18n("Multi-Bin Mailbox");
+// xgettext: no-c-format
+i18n("Printer hard disk");
+// xgettext: no-c-format
+i18n("Printer Memory");
+// xgettext: no-c-format
+i18n("Multi-Bin Mailbox Mode");
+// xgettext: no-c-format
+i18n("Mailbox");
+// xgettext: no-c-format
+i18n("Stacking");
+// xgettext: no-c-format
+i18n("Job Separation");
+// xgettext: no-c-format
+i18n("Color Mode");
+// xgettext: no-c-format
+i18n("CMYK");
+// xgettext: no-c-format
+i18n("Grayscale");
+// xgettext: no-c-format
+i18n("Duplex");
+// xgettext: no-c-format
+i18n("Duplex Tumble");
+// xgettext: no-c-format
+i18n("Duplex (Two-Sided)");
+// xgettext: no-c-format
+i18n("One Sided");
+// xgettext: no-c-format
+i18n("ColorSmartCRD Text");
+// xgettext: no-c-format
+i18n("Screen Match");
+// xgettext: no-c-format
+i18n("OHT");
+// xgettext: no-c-format
+i18n("ColorSmartCRD Graphics");
+// xgettext: no-c-format
+i18n("ColorSmartCRD Images");
+// xgettext: no-c-format
+i18n("HalftoneText");
+// xgettext: no-c-format
+i18n("Halftone Graphics");
+// xgettext: no-c-format
+i18n("Halftone Images");
+// xgettext: no-c-format
+i18n("Cardstock");
+// xgettext: no-c-format
+i18n("Heavy Media >= 28lbs");
+// xgettext: no-c-format
+i18n("Envelope");
+// xgettext: no-c-format
+i18n("28 Lb Type1");
+// xgettext: no-c-format
+i18n("28 Lb Type2");
+// xgettext: no-c-format
+i18n("Media Type First");
+// xgettext: no-c-format
+i18n("Media Type Rest");
+// xgettext: no-c-format
+i18n("Staple");
+// xgettext: no-c-format
+i18n("Manual Feed (Tray 1)");
+// xgettext: no-c-format
+i18n("Tray 4");
+// xgettext: no-c-format
+i18n("Paper Source First");
+// xgettext: no-c-format
+i18n("Paper Source Rest");
+// xgettext: no-c-format
+i18n("Output Destination");
+// xgettext: no-c-format
+i18n("Top Output Bin (Face-Down)");
+// xgettext: no-c-format
+i18n("Left Output Bin (Face-Up)");
+// xgettext: no-c-format
+i18n("Stacker");
+// xgettext: no-c-format
+i18n("Job Separator");
+// xgettext: no-c-format
+i18n("Mailbox 1");
+// xgettext: no-c-format
+i18n("Mailbox 2");
+// xgettext: no-c-format
+i18n("Mailbox 3");
+// xgettext: no-c-format
+i18n("Mailbox 4");
+// xgettext: no-c-format
+i18n("Mailbox 5");
+// xgettext: no-c-format
+i18n("Mailbox 6");
+// xgettext: no-c-format
+i18n("Mailbox 7");
+// xgettext: no-c-format
+i18n("Mailbox 8");
+// xgettext: no-c-format
+i18n("Page Size");
+// xgettext: no-c-format
+i18n("Exec");
+// xgettext: no-c-format
+i18n("11x17");
+// xgettext: no-c-format
+i18n("Com-10");
+// xgettext: no-c-format
+i18n("DL");
+// xgettext: no-c-format
+i18n("Monarch");
+// xgettext: no-c-format
+i18n("C5");
+// xgettext: no-c-format
+i18n("JIS B5");
+// xgettext: no-c-format
+i18n("JPostD");
+// xgettext: no-c-format
+i18n("12x18");
+// xgettext: no-c-format
+i18n("9x12");
+// xgettext: no-c-format
+i18n("C4");
+// xgettext: no-c-format
+i18n("N-UP AND WATERMARK SETTINGS");
+// xgettext: no-c-format
+i18n("");
+// xgettext: no-c-format
+i18n("(None)");
+// xgettext: no-c-format
+i18n("Optional Tray 2");
+// xgettext: no-c-format
+i18n("Optional Tray 4");
+// xgettext: no-c-format
+i18n("1000 sheet input Tray 4");
+// xgettext: no-c-format
+i18n("Accessory Output Bins");
+// xgettext: no-c-format
+i18n("8 Bin Mailbox (Mailbox mode)");
+// xgettext: no-c-format
+i18n("8 Bin Mailbox (Stacker-Separator-Collator)");
+// xgettext: no-c-format
+i18n("HP 3000-Sheet Stapler-Stacker");
+// xgettext: no-c-format
+i18n("HP 3000-Sheet Stacker");
+// xgettext: no-c-format
+i18n("Enabled");
+// xgettext: no-c-format
+i18n("Disabled");
+// xgettext: no-c-format
+i18n("Color Treatment");
+// xgettext: no-c-format
+i18n("High Print Quality");
+// xgettext: no-c-format
+i18n("SWOP-Coated");
+// xgettext: no-c-format
+i18n("Euroscale");
+// xgettext: no-c-format
+i18n("Manually Print on 2nd Side");
+// xgettext: no-c-format
+i18n("Manual Images");
+// xgettext: no-c-format
+i18n("Private Stored Job");
+// xgettext: no-c-format
+i18n("PrinterÕs Current Setting");
+// xgettext: no-c-format
+i18n("Stacker-Separator-Collator");
+// xgettext: no-c-format
+i18n("Stapler");
+// xgettext: no-c-format
+i18n("Bin 1");
+// xgettext: no-c-format
+i18n("Bin 2");
+// xgettext: no-c-format
+i18n("Bin 3");
+// xgettext: no-c-format
+i18n("Bin 4");
+// xgettext: no-c-format
+i18n("Bin 5");
+// xgettext: no-c-format
+i18n("Bin 6");
+// xgettext: no-c-format
+i18n("Bin 7");
+// xgettext: no-c-format
+i18n("Bin 8");
+// xgettext: no-c-format
+i18n("Stapler Option");
+// xgettext: no-c-format
+i18n("1 Staple, diagonal");
+// xgettext: no-c-format
+i18n("1 Staple, parallel");
+// xgettext: no-c-format
+i18n("2 Staples, parallel");
+// xgettext: no-c-format
+i18n("3 Staples, parallel");
+// xgettext: no-c-format
+i18n("6 Staples, parallel");
+// xgettext: no-c-format
+i18n("JIS B4");
+// xgettext: no-c-format
+i18n("A3 (Oversize 12x18.11)");
+// xgettext: no-c-format
+i18n("Executive (JIS)");
+// xgettext: no-c-format
+i18n("16K");
+// xgettext: no-c-format
+i18n("8K");
+// xgettext: no-c-format
+i18n("Double Postcard (JIS)");
+// xgettext: no-c-format
+i18n("EconoMode");
+// xgettext: no-c-format
+i18n("Total Memory");
+// xgettext: no-c-format
+i18n("6 - 7 MB");
+// xgettext: no-c-format
+i18n("8 - 11 MB");
+// xgettext: no-c-format
+i18n("12 - 19 MB");
+// xgettext: no-c-format
+i18n("20 - 27 MB");
+// xgettext: no-c-format
+i18n("28 - 35 MB");
+// xgettext: no-c-format
+i18n("36 MB or more");
+// xgettext: no-c-format
+i18n("8.5 x 13");
+// xgettext: no-c-format
+i18n("Postcard (JIS)");
+// xgettext: no-c-format
+i18n("B5 (ISO)");
+// xgettext: no-c-format
+i18n("Tray 1 (Manual)");
+// xgettext: no-c-format
+i18n("Manual Duplex");
+// xgettext: no-c-format
+i18n("Odd Pages");
+// xgettext: no-c-format
+i18n("Even Pages");
+// xgettext: no-c-format
+i18n("Levels of Gray");
+// xgettext: no-c-format
+i18n("Enhanced");
+// xgettext: no-c-format
+i18n("Standard");
+// xgettext: no-c-format
+i18n("Resolution Enhancement");
+// xgettext: no-c-format
+i18n("Optional Lower Tray");
+// xgettext: no-c-format
+i18n("Optional Envelope Feeder");
+// xgettext: no-c-format
+i18n("JCLOpenUI *JCLResolution");
+// xgettext: no-c-format
+i18n("Legal Frame Size");
+// xgettext: no-c-format
+i18n("Com-10 Env");
+// xgettext: no-c-format
+i18n("Monarch Env");
+// xgettext: no-c-format
+i18n("DL Env");
+// xgettext: no-c-format
+i18n("C5 Env");
+// xgettext: no-c-format
+i18n("B5 Env");
+// xgettext: no-c-format
+i18n("Multipurpose Tray");
+// xgettext: no-c-format
+i18n("Paper Cassette");
+// xgettext: no-c-format
+i18n("Lower Cassette");
+// xgettext: no-c-format
+i18n("Envelope Feeder");
+// xgettext: no-c-format
+i18n("Rough");
+// xgettext: no-c-format
+i18n("Duplex Unit");
+// xgettext: no-c-format
+i18n("Printer Hard Disk");
+// xgettext: no-c-format
+i18n("Total Printer Memory");
+// xgettext: no-c-format
+i18n("4 - 7 MB");
+// xgettext: no-c-format
+i18n(" Tray 1");
+// xgettext: no-c-format
+i18n(" Tray 1 (Manual)");
+// xgettext: no-c-format
+i18n(" Tray 2");
+// xgettext: no-c-format
+i18n(" Tray 3");
+// xgettext: no-c-format
+i18n(" Tray 4");
+// xgettext: no-c-format
+i18n(" Envelope Feeder");
+// xgettext: no-c-format
+i18n("Scale Patterns");
+// xgettext: no-c-format
+i18n("Off (1-Sided)");
+// xgettext: no-c-format
+i18n("Flip on Long Edge (Standard)");
+// xgettext: no-c-format
+i18n("Flip on Short Edge");
+// xgettext: no-c-format
+i18n("User");
+// xgettext: no-c-format
+i18n("FastRes 1200");
+// xgettext: no-c-format
+i18n("Number of Input Trays");
+// xgettext: no-c-format
+i18n(" 2");
+// xgettext: no-c-format
+i18n(" 3");
+// xgettext: no-c-format
+i18n(" 4");
+// xgettext: no-c-format
+i18n(" 5");
+// xgettext: no-c-format
+i18n(" 6");
+// xgettext: no-c-format
+i18n(" 7");
+// xgettext: no-c-format
+i18n(" 8");
+// xgettext: no-c-format
+i18n(" 9");
+// xgettext: no-c-format
+i18n("12 - 15 MB");
+// xgettext: no-c-format
+i18n("16 - 19 MB");
+// xgettext: no-c-format
+i18n(" Tray 5");
+// xgettext: no-c-format
+i18n(" Tray 6");
+// xgettext: no-c-format
+i18n(" Tray 7");
+// xgettext: no-c-format
+i18n(" Tray 8");
+// xgettext: no-c-format
+i18n(" Tray 9");
+// xgettext: no-c-format
+i18n(" Tray 10");
+// xgettext: no-c-format
+i18n("ManualFeed");
+// xgettext: no-c-format
+i18n("Page Protection");
+// xgettext: no-c-format
+i18n(" 2 -  3 MB Total RAM");
+// xgettext: no-c-format
+i18n(" 4 -  5 MB Total RAM");
+// xgettext: no-c-format
+i18n(" 6 -  9 MB Total RAM");
+// xgettext: no-c-format
+i18n("10 - 14 MB Total RAM");
+// xgettext: no-c-format
+i18n("15 - 26 MB Total RAM");
+// xgettext: no-c-format
+i18n("Upper Tray");
+// xgettext: no-c-format
+i18n("Lower Tray");
+// xgettext: no-c-format
+i18n("Long Edge Binding");
+// xgettext: no-c-format
+i18n("Short Edge Binding");
+// xgettext: no-c-format
+i18n("Upper - Face Down");
+// xgettext: no-c-format
+i18n("Lower - Face Up");
+// xgettext: no-c-format
+i18n("12 - 27 MB Total RAM");
+// xgettext: no-c-format
+i18n("28 - 35 MB Total RAM");
+// xgettext: no-c-format
+i18n("36 - 52 MB Total RAM");
+// xgettext: no-c-format
+i18n("11x17 (Oversize)");
+// xgettext: no-c-format
+i18n("ISO B5 Env");
+// xgettext: no-c-format
+i18n("MP Tray");
+// xgettext: no-c-format
+i18n("Printer<27>s Current Setting");
+// xgettext: no-c-format
+i18n("Optional Lower Cassette");
+// xgettext: no-c-format
+i18n("Optional Duplex Unit");
+// xgettext: no-c-format
+i18n("Long-edge Binding");
+// xgettext: no-c-format
+i18n("Short-edge Binding");
+// xgettext: no-c-format
+i18n("500-Sheet Tray 3");
+// xgettext: no-c-format
+i18n("12 MB or more");
+// xgettext: no-c-format
+i18n("Vellum");
+// xgettext: no-c-format
+i18n("11x17 (Oversize 12x18.5)");
+// xgettext: no-c-format
+i18n("A3 (Oversize 312x440)");
+// xgettext: no-c-format
+i18n("B4 (JIS)");
+// xgettext: no-c-format
+i18n("B6 (JIS)");
+// xgettext: no-c-format
+i18n("Tray 1 (MultiPurpose Tray)");
+// xgettext: no-c-format
+i18n("Tray 2 (Paper Cassette)");
+// xgettext: no-c-format
+i18n("Letter  (8 1/2 x 11 in)");
+// xgettext: no-c-format
+i18n("Legal  (8 1/2 x 14 in)");
+// xgettext: no-c-format
+i18n("A4  (210 x 297 mm)");
+// xgettext: no-c-format
+i18n("Executive  (7 1/4 x 10 1/2 in)");
+// xgettext: no-c-format
+i18n("A5  (148 x 210 mm)");
+// xgettext: no-c-format
+i18n("Com-10 Env  (4 1/8 x 9 1/2 in)");
+// xgettext: no-c-format
+i18n("Monarch Env  (3 7/8 x 7 1/2 in)");
+// xgettext: no-c-format
+i18n("DL Env  (110 x 220 mm)");
+// xgettext: no-c-format
+i18n("C5 Env  (162 x 229 mm)");
+// xgettext: no-c-format
+i18n("B5 Env  (176 x 250 mm)");
+// xgettext: no-c-format
+i18n("2000-Sheet Input Tray (Tray 4)");
+// xgettext: no-c-format
+i18n("28 - 43 MB Total RAM");
+// xgettext: no-c-format
+i18n("44 - 59 MB Total RAM");
+// xgettext: no-c-format
+i18n("60 - 75 MB Total RAM");
+// xgettext: no-c-format
+i18n("76 -100 MB Total RAM");
+// xgettext: no-c-format
+i18n("Double Postcard");
+// xgettext: no-c-format
+i18n("Page Region");
+// xgettext: no-c-format
+i18n("Top Output Bin (Face Down)");
+// xgettext: no-c-format
+i18n("Left Output Bin (Face Up)");
+// xgettext: no-c-format
+i18n("Stacker (Face Down)");
+// xgettext: no-c-format
+i18n("Job Seperator (Face Down)");
+// xgettext: no-c-format
+i18n("Mailbox 1 (Face Down)");
+// xgettext: no-c-format
+i18n("Mailbox 2 (Face Down)");
+// xgettext: no-c-format
+i18n("Mailbox 3 (Face Down)");
+// xgettext: no-c-format
+i18n("Mailbox 4 (Face Down)");
+// xgettext: no-c-format
+i18n("Mailbox 5 (Face Down)");
+// xgettext: no-c-format
+i18n("Mailbox 6 (Face Down)");
+// xgettext: no-c-format
+i18n("Mailbox 7 (Face Down)");
+// xgettext: no-c-format
+i18n("Mailbox 8 (Face Down)");
+// xgettext: no-c-format
+i18n("Printer Resolution");
+// xgettext: no-c-format
+i18n("600 dpi");
+// xgettext: no-c-format
+i18n("300 dpi");
+// xgettext: no-c-format
+i18n("Mailbox with Stapler");
+// xgettext: no-c-format
+i18n("Mailbox with Stapler Mode");
+// xgettext: no-c-format
+i18n("Job Separator (Face Down)");
+// xgettext: no-c-format
+i18n("Stapler (Face Down)");
+// xgettext: no-c-format
+i18n("3 MB");
+// xgettext: no-c-format
+i18n("4 - 5 MB");
+// xgettext: no-c-format
+i18n("6 MB or more");
+// xgettext: no-c-format
+i18n("Top Bin");
+// xgettext: no-c-format
+i18n("Left Bin (Face Up)");
+// xgettext: no-c-format
+i18n("Stapler (max 50 Sheets)");
+// xgettext: no-c-format
+i18n("Stapler Opposing (max 50)");
+// xgettext: no-c-format
+i18n("Stapler (max 20 Letter or A4)");
+// xgettext: no-c-format
+i18n("Collator");
+// xgettext: no-c-format
+i18n("Stapling Options");
+// xgettext: no-c-format
+i18n("One Staple Angled");
+// xgettext: no-c-format
+i18n("One Staple");
+// xgettext: no-c-format
+i18n("Two Staples");
+// xgettext: no-c-format
+i18n("Three Staples");
+// xgettext: no-c-format
+i18n("Six Staples");
+// xgettext: no-c-format
+i18n("Administrator Defined");
+// xgettext: no-c-format
+i18n("Tray 5");
+// xgettext: no-c-format
+i18n("5 Bin Mailbox with Stapler");
+// xgettext: no-c-format
+i18n("7 Bin Mailbox");
+// xgettext: no-c-format
+i18n("8 Bin Mailbox");
+// xgettext: no-c-format
+i18n("HP 3000-Sheet Stapler/Stacker");
+// xgettext: no-c-format
+i18n("Standard Mailbox");
+// xgettext: no-c-format
+i18n("20 - 23 MB");
+// xgettext: no-c-format
+i18n("24 - 27 MB");
+// xgettext: no-c-format
+i18n("11x17 (Oversize 11.7x17.7)");
+// xgettext: no-c-format
+i18n("System Name (if available)");
+// xgettext: no-c-format
+i18n(" 1");
+// xgettext: no-c-format
+i18n("PIN digit 1 (for Private Job)");
+// xgettext: no-c-format
+i18n("PIN digit 2 (for Private Job)");
+// xgettext: no-c-format
+i18n("PIN digit 3 (for Private Job)");
+// xgettext: no-c-format
+i18n("PIN digit 4 (for Private Job)");
+// xgettext: no-c-format
+i18n("Edge-to-Edge Printing");
+// xgettext: no-c-format
+i18n("32 - 39 MB");
+// xgettext: no-c-format
+i18n("40 - 47 MB");
+// xgettext: no-c-format
+i18n("48 - 55 MB");
+// xgettext: no-c-format
+i18n("56 - 63 MB");
+// xgettext: no-c-format
+i18n("64 - 71 MB");
+// xgettext: no-c-format
+i18n("72 MB or more");
+// xgettext: no-c-format
+i18n("Banner Printing");
+// xgettext: no-c-format
+i18n("Manual Feeder");
+// xgettext: no-c-format
+i18n("Standard Tray");
+// xgettext: no-c-format
+i18n("Sheet Feeder");
+// xgettext: no-c-format
+i18n("Bond Paper");
+// xgettext: no-c-format
+i18n("Glossy Paper");
+// xgettext: no-c-format
+i18n("HP Premium Paper");
+// xgettext: no-c-format
+i18n("Quick-Dry Glossy");
+// xgettext: no-c-format
+i18n("Quick-Dry Transparency");
+// xgettext: no-c-format
+i18n("Transparency Film");
+// xgettext: no-c-format
+i18n("75 DPI");
+// xgettext: no-c-format
+i18n("150 DPI");
+// xgettext: no-c-format
+i18n("300 DPI");
+// xgettext: no-c-format
+i18n("600 DPI");
+// xgettext: no-c-format
+i18n("600x300 DPI");
+// xgettext: no-c-format
+i18n("Quality");
+// xgettext: no-c-format
+i18n("Default Setting");
+// xgettext: no-c-format
+i18n("Presentation");
+// xgettext: no-c-format
+i18n("CMY");
+// xgettext: no-c-format
+i18n("CMY+K");
+// xgettext: no-c-format
+i18n("Model");
+// xgettext: no-c-format
+i18n("DeskJet");
+// xgettext: no-c-format
+i18n("DeskJet 310");
+// xgettext: no-c-format
+i18n("DeskJet 320");
+// xgettext: no-c-format
+i18n("DeskJet 340");
+// xgettext: no-c-format
+i18n("DeskJet 400");
+// xgettext: no-c-format
+i18n("DeskJet 500");
+// xgettext: no-c-format
+i18n("DeskJet 500C");
+// xgettext: no-c-format
+i18n("DeskJet 510");
+// xgettext: no-c-format
+i18n("DeskJet 520");
+// xgettext: no-c-format
+i18n("DeskJet 540");
+// xgettext: no-c-format
+i18n("DeskJet 550C");
+// xgettext: no-c-format
+i18n("DeskJet 560C");
+// xgettext: no-c-format
+i18n("DeskJet 600");
+// xgettext: no-c-format
+i18n("DeskJet 660C");
+// xgettext: no-c-format
+i18n("DeskJet 670C");
+// xgettext: no-c-format
+i18n("DeskJet 680C");
+// xgettext: no-c-format
+i18n("DeskJet 690C");
+// xgettext: no-c-format
+i18n("DeskJet 850C");
+// xgettext: no-c-format
+i18n("DeskJet 855C");
+// xgettext: no-c-format
+i18n("DeskJet 870C");
+// xgettext: no-c-format
+i18n("DeskJet 890C");
+// xgettext: no-c-format
+i18n("DeskJet 970C with Duplexer");
+// xgettext: no-c-format
+i18n("DeskJet 1120C");
+// xgettext: no-c-format
+i18n("DeskJet Plus");
+// xgettext: no-c-format
+i18n("DeskJet Portable");
+// xgettext: no-c-format
+i18n("Olivetti (Black sent after CMY)");
+// xgettext: no-c-format
+i18n("Unspecified Model");
+// xgettext: no-c-format
+i18n("Unspecified Old Model");
+// xgettext: no-c-format
+i18n("Black Levels");
+// xgettext: no-c-format
+i18n("2 Levels");
+// xgettext: no-c-format
+i18n("3 Levels");
+// xgettext: no-c-format
+i18n("4 Levels");
+// xgettext: no-c-format
+i18n("No Black");
+// xgettext: no-c-format
+i18n("CMY Levels");
+// xgettext: no-c-format
+i18n("No CMY");
+// xgettext: no-c-format
+i18n("Compression Method");
+// xgettext: no-c-format
+i18n("Compressed Replacement Delta Row Encoding");
+// xgettext: no-c-format
+i18n("Delta Row Compression");
+// xgettext: no-c-format
+i18n("Runlength Encoding");
+// xgettext: no-c-format
+i18n("Tagged Image File Format");
+// xgettext: no-c-format
+i18n("Unencoded");
+// xgettext: no-c-format
+i18n("Intensity Rendering");
+// xgettext: no-c-format
+i18n("Floyd-Steinberg Dithering");
+// xgettext: no-c-format
+i18n("Half Tones");
+// xgettext: no-c-format
+i18n("Printer-internal");
+// xgettext: no-c-format
+i18n("Leading Edge");
+// xgettext: no-c-format
+i18n("Long edge; left side of canonical page");
+// xgettext: no-c-format
+i18n("Long edge; right side of canonical page");
+// xgettext: no-c-format
+i18n("Short edge; bottom of canonical page");
+// xgettext: no-c-format
+i18n("Short edge; top of canonical page");
+// xgettext: no-c-format
+i18n("Generate only PCL with 'Configure Raster Data'");
+// xgettext: no-c-format
+i18n("OnlyCRD");
+// xgettext: no-c-format
+i18n("GeneralPCL");
+// xgettext: no-c-format
+i18n("Print Head Passes per Line");
+// xgettext: no-c-format
+i18n("1 Pass (Fastest)");
+// xgettext: no-c-format
+i18n("2 Passes (50% of the dots/pass)");
+// xgettext: no-c-format
+i18n("4 Passes (25% of the dots/pass)");
+// xgettext: no-c-format
+i18n("PCL3GUI Language Mode");
+// xgettext: no-c-format
+i18n("PCL3GUI");
+// xgettext: no-c-format
+i18n("NoPCL3GUI");
+// xgettext: no-c-format
+i18n("3x5");
+// xgettext: no-c-format
+i18n("5x7");
+// xgettext: no-c-format
+i18n("6x8");
+// xgettext: no-c-format
+i18n("8x10");
+// xgettext: no-c-format
+i18n("8x12");
+// xgettext: no-c-format
+i18n("US A2 Invitation");
+// xgettext: no-c-format
+i18n("A7");
+// xgettext: no-c-format
+i18n("A8");
+// xgettext: no-c-format
+i18n("A9");
+// xgettext: no-c-format
+i18n("A10");
+// xgettext: no-c-format
+i18n("B5 ISO");
+// xgettext: no-c-format
+i18n("B5 JIS");
+// xgettext: no-c-format
+i18n("B6 aka C4");
+// xgettext: no-c-format
+i18n("B6 ISO");
+// xgettext: no-c-format
+i18n("B6 JIS");
+// xgettext: no-c-format
+i18n("B7 ISO");
+// xgettext: no-c-format
+i18n("B7 JIS");
+// xgettext: no-c-format
+i18n("B8 ISO");
+// xgettext: no-c-format
+i18n("B8 JIS");
+// xgettext: no-c-format
+i18n("B9 ISO");
+// xgettext: no-c-format
+i18n("B9 JIS");
+// xgettext: no-c-format
+i18n("B10 ISO");
+// xgettext: no-c-format
+i18n("B10 JIS");
+// xgettext: no-c-format
+i18n("C6");
+// xgettext: no-c-format
+i18n("C7");
+// xgettext: no-c-format
+i18n("C7 by C6");
+// xgettext: no-c-format
+i18n("C8");
+// xgettext: no-c-format
+i18n("C9");
+// xgettext: no-c-format
+i18n("C10");
+// xgettext: no-c-format
+i18n("US Commercial 10 Envelope");
+// xgettext: no-c-format
+i18n("Crown Octavo");
+// xgettext: no-c-format
+i18n("Crown Quarto");
+// xgettext: no-c-format
+i18n("Demy Octavo");
+// xgettext: no-c-format
+i18n("Epson 4x6 Photo Paper");
+// xgettext: no-c-format
+i18n("American Foolscap");
+// xgettext: no-c-format
+i18n("Hagaki Card");
+// xgettext: no-c-format
+i18n("Half Letter");
+// xgettext: no-c-format
+i18n("Large Crown Octavo");
+// xgettext: no-c-format
+i18n("Large Crown Quarto");
+// xgettext: no-c-format
+i18n("Japanese Long Envelope Number 3");
+// xgettext: no-c-format
+i18n("Japanese Long Envelope Number 4");
+// xgettext: no-c-format
+i18n("Oufuku Card");
+// xgettext: no-c-format
+i18n("Penguin Small Paperback");
+// xgettext: no-c-format
+i18n("Postcard");
+// xgettext: no-c-format
+i18n("RA4");
+// xgettext: no-c-format
+i18n("Royal Octavo");
+// xgettext: no-c-format
+i18n("Small Paperback");
+// xgettext: no-c-format
+i18n("Tray");
+// xgettext: no-c-format
+i18n("Glossy/Photo");
+// xgettext: no-c-format
+i18n("Premium");
+// xgettext: no-c-format
+i18n("Quick-dry Photo");
+// xgettext: no-c-format
+i18n("Quick-dry Transparency");
+// xgettext: no-c-format
+i18n("Ghostscript Resolution");
+// xgettext: no-c-format
+i18n("1200 DPI");
+// xgettext: no-c-format
+i18n("150x150 DPI");
+// xgettext: no-c-format
+i18n("300x300 DPI");
+// xgettext: no-c-format
+i18n("600x600 DPI");
+// xgettext: no-c-format
+i18n("Grayscale only");
+// xgettext: no-c-format
+i18n("Image Type");
+// xgettext: no-c-format
+i18n("Pure bw or prescreened (currently black-only)");
+// xgettext: no-c-format
+i18n("Line art (color or gray scale)");
+// xgettext: no-c-format
+i18n("Continuous-tone photographs (color or gray scale)");
+// xgettext: no-c-format
+i18n("Primarily solid colors ro smooth gradients (color or gray scale)");
+// xgettext: no-c-format
+i18n("Dithering Algorithm");
+// xgettext: no-c-format
+i18n("Adaptive Hybrid");
+// xgettext: no-c-format
+i18n("Adaptive Random");
+// xgettext: no-c-format
+i18n("Hybrid Floyd-Steinberg");
+// xgettext: no-c-format
+i18n("Ordered");
+// xgettext: no-c-format
+i18n("Random Floyd-Steinberg");
+// xgettext: no-c-format
+i18n("Very Fast");
+// xgettext: no-c-format
+i18n("11x14");
+// xgettext: no-c-format
+i18n("13x19");
+// xgettext: no-c-format
+i18n("Arch A");
+// xgettext: no-c-format
+i18n("Arch B");
+// xgettext: no-c-format
+i18n("B4 ISO");
+// xgettext: no-c-format
+i18n("B4 JIS");
+// xgettext: no-c-format
+i18n("C3");
+// xgettext: no-c-format
+i18n("Demy Quarto");
+// xgettext: no-c-format
+i18n("European Foolscap");
+// xgettext: no-c-format
+i18n("Japanese Kaku Envelope Number 4");
+// xgettext: no-c-format
+i18n("RA3");
+// xgettext: no-c-format
+i18n("Royal Quarto");
+// xgettext: no-c-format
+i18n("SRA3");
+// xgettext: no-c-format
+i18n("SRA4");
+// xgettext: no-c-format
+i18n("Autoselect");
+// xgettext: no-c-format
+i18n("Optional Source");
+// xgettext: no-c-format
+i18n("Paper type");
+// xgettext: no-c-format
+i18n("Bond paper");
+// xgettext: no-c-format
+i18n("Glossy film");
+// xgettext: no-c-format
+i18n("Plain paper");
+// xgettext: no-c-format
+i18n("Special paper");
+// xgettext: no-c-format
+i18n("Transparency film");
+// xgettext: no-c-format
+i18n("Printing Quality");
+// xgettext: no-c-format
+i18n("RET (Resolution Enhancement)");
+// xgettext: no-c-format
+i18n("Manual Feeding");
+// xgettext: no-c-format
+i18n("Double-Sided Printing");
+// xgettext: no-c-format
+i18n("Long Edge (Standard)");
+// xgettext: no-c-format
+i18n("Short Edge (Flip)");
+// xgettext: no-c-format
+i18n("1200x600 DPI");
+// xgettext: no-c-format
+i18n("GhostScript pre-filtering");
+// xgettext: no-c-format
+i18n("Convert to PS level 1");
+// xgettext: no-c-format
+i18n("Convert to PS level 2");
+// xgettext: no-c-format
+i18n("No pre-filtering");
+// xgettext: no-c-format
+i18n("Printer default");
+// xgettext: no-c-format
+i18n("Tray 6");
+// xgettext: no-c-format
+i18n("Tray 7");
+// xgettext: no-c-format
+i18n("Printing Mode");
+// xgettext: no-c-format
+i18n("Manual Feed of Paper");
+// xgettext: no-c-format
+i18n("Binding for Double-Sided Pr.");
+// xgettext: no-c-format
+i18n("Long Edge");
+// xgettext: no-c-format
+i18n("Short Edge");
+// xgettext: no-c-format
+i18n("REt Setting");
+// xgettext: no-c-format
+i18n("Density");
+// xgettext: no-c-format
+i18n("Economy mode");
+// xgettext: no-c-format
+i18n("Economy Mode");
+// xgettext: no-c-format
+i18n("Standard Mode");
+// xgettext: no-c-format
+i18n("Fast Res.");
+// xgettext: no-c-format
+i18n("Memory Booster Technology");
+// xgettext: no-c-format
+i18n("Monochrome");
+// xgettext: no-c-format
+i18n("Floyd-Steinberg dithered printing");
+// xgettext: no-c-format
+i18n("Standard printing");
+// xgettext: no-c-format
+i18n("Color mode");
+// xgettext: no-c-format
+i18n("Contone (4096 colors)");
+// xgettext: no-c-format
+i18n("Normal (8 colors)");
+// xgettext: no-c-format
+i18n("16x20");
+// xgettext: no-c-format
+i18n("16x24");
+// xgettext: no-c-format
+i18n("Black and White");
+// xgettext: no-c-format
+i18n("Floyd-Steinberg Color");
+// xgettext: no-c-format
+i18n("Floyd-Steinberg Color (Low Memory)");
+// xgettext: no-c-format
+i18n("Floyd-Steinberg Gray");
+// xgettext: no-c-format
+i18n("Normal Color");
+// xgettext: no-c-format
+i18n("Raster Graphics Quality");
+// xgettext: no-c-format
+i18n("High");
+// xgettext: no-c-format
+i18n("Black, draft quality, ink economy mode");
+// xgettext: no-c-format
+i18n("Black, normal quality");
+// xgettext: no-c-format
+i18n("Color, best quality, optional color correction");
+// xgettext: no-c-format
+i18n("Color, best quality, black ink disabled, optional color correction");
+// xgettext: no-c-format
+i18n("Color, draft quality, ink economy, fast dither, no color correction");
+// xgettext: no-c-format
+i18n("Color, normal quality, optional color correction");
+// xgettext: no-c-format
+i18n("Color, normal quality, black ink disabled, optional color correction");
+// xgettext: no-c-format
+i18n("Do not use Color Correction");
+// xgettext: no-c-format
+i18n("DisableColorCorrection");
+// xgettext: no-c-format
+i18n("EnableColorCorrection");
+// xgettext: no-c-format
+i18n("Choice of Ghostscript Driver");
+// xgettext: no-c-format
+i18n("Attempts to choose best PNM format for document; not always reliable.");
+// xgettext: no-c-format
+i18n("Attempts to choose best monochrome PNM format for document; not always reliable.");
+// xgettext: no-c-format
+i18n("A fast monochrome format; best for B&W text and line images.");
+// xgettext: no-c-format
+i18n("256-shade greyscale format");
+// xgettext: no-c-format
+i18n("Format for color images (includes monochrome).");
+// xgettext: no-c-format
+i18n("Force left-to-right print sweeps only (reduce striping)");
+// xgettext: no-c-format
+i18n("Unidirectional");
+// xgettext: no-c-format
+i18n("Bidirectional");
+// xgettext: no-c-format
+i18n("Ink Reduction");
+// xgettext: no-c-format
+i18n("25 %");
+// xgettext: no-c-format
+i18n("25 % with Gamma Correction");
+// xgettext: no-c-format
+i18n("50 %");
+// xgettext: no-c-format
+i18n("50 % with Gamma Correction");
+// xgettext: no-c-format
+i18n("600x600 DPI monochrome");
+// xgettext: no-c-format
+i18n("A6 (Post card)");
+// xgettext: no-c-format
+i18n("Photo (4 x 6 in., 10 x 15 cm)");
+// xgettext: no-c-format
+i18n("300 DPI Grayscale");
+// xgettext: no-c-format
+i18n("300 DPI Normal");
+// xgettext: no-c-format
+i18n("300 DPI Photo");
+// xgettext: no-c-format
+i18n("600 DPI Photo");
+// xgettext: no-c-format
+i18n("Use Postcards");
+// xgettext: no-c-format
+i18n("Postcards");
+// xgettext: no-c-format
+i18n("Sheets");
+// xgettext: no-c-format
+i18n("Rendering type");
+// xgettext: no-c-format
+i18n("Snap black to white, others to black");
+// xgettext: no-c-format
+i18n("Cluster ordered dither");
+// xgettext: no-c-format
+i18n("Monochrome cluster ordered dither");
+// xgettext: no-c-format
+i18n("Driver does dithering");
+// xgettext: no-c-format
+i18n("Error diffusion");
+// xgettext: no-c-format
+i18n("Monochrome error diffusion");
+// xgettext: no-c-format
+i18n("Ordered dithering");
+// xgettext: no-c-format
+i18n("Monochrome ordered dithering");
+// xgettext: no-c-format
+i18n("Snap to primaries");
+// xgettext: no-c-format
+i18n("Best Quality Color");
+// xgettext: no-c-format
+i18n("Desktop CSF");
+// xgettext: no-c-format
+i18n("Desktop Sheet Feeder");
+// xgettext: no-c-format
+i18n("Portable Sheet Feeder");
+// xgettext: no-c-format
+i18n("Ink Type");
+// xgettext: no-c-format
+i18n("Color + Black Cartridges");
+// xgettext: no-c-format
+i18n("Color + Photo Cartridges");
+// xgettext: no-c-format
+i18n("300 DPI Color");
+// xgettext: no-c-format
+i18n("300 DPI Draft");
+// xgettext: no-c-format
+i18n("On (Flip on Long Edge)");
+// xgettext: no-c-format
+i18n("On (Flip on Short Edge)");
+// xgettext: no-c-format
+i18n("600 DPI Normal");
+// xgettext: no-c-format
+i18n("Special");
+// xgettext: no-c-format
+i18n("Transparent");
+// xgettext: no-c-format
+i18n("Quality Type");
+// xgettext: no-c-format
+i18n("Double-sided printing");
+// xgettext: no-c-format
+i18n("Behavior when Toner Low");
+// xgettext: no-c-format
+i18n("Continue Printing");
+// xgettext: no-c-format
+i18n("Stop Printing");
+// xgettext: no-c-format
+i18n("Job Offset");
+// xgettext: no-c-format
+i18n("Cassette");
+// xgettext: no-c-format
+i18n("First");
+// xgettext: no-c-format
+i18n("90 DPI");
+// xgettext: no-c-format
+i18n("180 DPI");
+// xgettext: no-c-format
+i18n("16MB RAM");
+// xgettext: no-c-format
+i18n("32MB RAM");
+// xgettext: no-c-format
+i18n("48MB RAM");
+// xgettext: no-c-format
+i18n("64MB RAM");
+// xgettext: no-c-format
+i18n("80MB RAM");
+// xgettext: no-c-format
+i18n("96MB RAM");
+// xgettext: no-c-format
+i18n("128MB RAM");
+// xgettext: no-c-format
+i18n("144MB RAM");
+// xgettext: no-c-format
+i18n("160MB RAM");
+// xgettext: no-c-format
+i18n("192MB - 224MB RAM");
+// xgettext: no-c-format
+i18n("256MB - 512MB RAM");
+// xgettext: no-c-format
+i18n("Drawer Base");
+// xgettext: no-c-format
+i18n("DB-208 (3 Trays)");
+// xgettext: no-c-format
+i18n("DB-608 (2 Trays)");
+// xgettext: no-c-format
+i18n("DB-208A (1 Tray)");
+// xgettext: no-c-format
+i18n("Finisher Installed");
+// xgettext: no-c-format
+i18n("FS-105");
+// xgettext: no-c-format
+i18n("400dpi");
+// xgettext: no-c-format
+i18n("Edge Smoothing");
+// xgettext: no-c-format
+i18n("Text Only");
+// xgettext: no-c-format
+i18n("All Objects");
+// xgettext: no-c-format
+i18n("Print Density");
+// xgettext: no-c-format
+i18n("Toner Save");
+// xgettext: no-c-format
+i18n("OHP Transparency");
+// xgettext: no-c-format
+i18n("Thin Paper");
+// xgettext: no-c-format
+i18n("Thick Paper");
+// xgettext: no-c-format
+i18n("Duplex Mode");
+// xgettext: no-c-format
+i18n("Sort");
+// xgettext: no-c-format
+i18n("Group");
+// xgettext: no-c-format
+i18n("Special Modes");
+// xgettext: no-c-format
+i18n("2-in-1");
+// xgettext: no-c-format
+i18n("Booklet");
+// xgettext: no-c-format
+i18n("Stapling");
+// xgettext: no-c-format
+i18n("Single (Portrait)");
+// xgettext: no-c-format
+i18n("Single (Landscape)");
+// xgettext: no-c-format
+i18n("Double Side (Portrait)");
+// xgettext: no-c-format
+i18n("Double Side (Landscape)");
+// xgettext: no-c-format
+i18n("Double Top (Portrait)");
+// xgettext: no-c-format
+i18n("Double Top (Landscape)");
+// xgettext: no-c-format
+i18n("Wait Mode");
+// xgettext: no-c-format
+i18n("Front Cover");
+// xgettext: no-c-format
+i18n("Printed");
+// xgettext: no-c-format
+i18n("Blank");
+// xgettext: no-c-format
+i18n("Front Cover Tray");
+// xgettext: no-c-format
+i18n("Back Cover");
+// xgettext: no-c-format
+i18n("Cover Tray");
+// xgettext: no-c-format
+i18n("Manual Feed (Thick)");
+// xgettext: no-c-format
+i18n("Middle");
+// xgettext: no-c-format
+i18n("Output Order");
+// xgettext: no-c-format
+i18n("Half-letter (5 1/2 x 8 1/2 in)");
+// xgettext: no-c-format
+i18n("Letter (8 1/2 x 11 in)");
+// xgettext: no-c-format
+i18n("Legal (8 1/2 x 14 in)");
+// xgettext: no-c-format
+i18n("Tabloid (11 x 17 in)");
+// xgettext: no-c-format
+i18n("F4");
+// xgettext: no-c-format
+i18n("Half-letter");
+// xgettext: no-c-format
+i18n("No Finisher");
+// xgettext: no-c-format
+i18n("FS-106");
+// xgettext: no-c-format
+i18n("FS-108B (BookletMaker)");
+// xgettext: no-c-format
+i18n("PI-108");
+// xgettext: no-c-format
+i18n("Large Capacity Tray");
+// xgettext: no-c-format
+i18n("Tandem Configuration");
+// xgettext: no-c-format
+i18n("Fold & Stitch");
+// xgettext: no-c-format
+i18n("Fold only");
+// xgettext: no-c-format
+i18n("Fold & Saddle Stitch");
+// xgettext: no-c-format
+i18n("Wait");
+// xgettext: no-c-format
+i18n("Wait with Proof");
+// xgettext: no-c-format
+i18n("Back Cover Tray");
+// xgettext: no-c-format
+i18n("Tandem Printing");
+// xgettext: no-c-format
+i18n("Normal Mode (Auto Select)");
+// xgettext: no-c-format
+i18n("Split Mode (Auto Split)");
+// xgettext: no-c-format
+i18n("Split Mode (Equal Split)");
+// xgettext: no-c-format
+i18n("Print Engine Select (Printer 1)");
+// xgettext: no-c-format
+i18n("Print Engine Select (Printer 2)");
+// xgettext: no-c-format
+i18n("EcoPrint");
+// xgettext: no-c-format
+i18n("PF-8 Paper Feeder");
+// xgettext: no-c-format
+i18n("Memory");
+// xgettext: no-c-format
+i18n("1MB Upgrade");
+// xgettext: no-c-format
+i18n("2MB Upgrade");
+// xgettext: no-c-format
+i18n("4MB Upgrade");
+// xgettext: no-c-format
+i18n("300 Dots per Inch (dpi)");
+// xgettext: no-c-format
+i18n("KIR");
+// xgettext: no-c-format
+i18n("Envelope #6");
+// xgettext: no-c-format
+i18n("Envelope #9");
+// xgettext: no-c-format
+i18n("Cassette 1 (Internal)");
+// xgettext: no-c-format
+i18n("Cassette 2");
+// xgettext: no-c-format
+i18n("Auto Tray Switch");
+// xgettext: no-c-format
+i18n("1.6.0 [08-13-99]");
+// xgettext: no-c-format
+i18n("PF-16 Paper Feeder");
+// xgettext: no-c-format
+i18n("8MB Upgrade");
+// xgettext: no-c-format
+i18n("16MB Upgrade");
+// xgettext: no-c-format
+i18n("32MB Upgrade");
+// xgettext: no-c-format
+i18n("600 Dots per Inch (dpi)");
+// xgettext: no-c-format
+i18n("1.6.1 [02-28-2000]");
+// xgettext: no-c-format
+i18n("PF-4 Paper Feeder");
+// xgettext: no-c-format
+i18n("3MB Upgrade");
+// xgettext: no-c-format
+i18n("PF-17 Paper Feeder");
+// xgettext: no-c-format
+i18n("Optional Disk");
+// xgettext: no-c-format
+i18n("PostCard");
+// xgettext: no-c-format
+i18n("DoublePostCard");
+// xgettext: no-c-format
+i18n("Multi-Purpose Feeder");
+// xgettext: no-c-format
+i18n("Job Spooling");
+// xgettext: no-c-format
+i18n("Optional Feeder");
+// xgettext: no-c-format
+i18n("PF-21 Paper Feeders");
+// xgettext: no-c-format
+i18n("One");
+// xgettext: no-c-format
+i18n("Two");
+// xgettext: no-c-format
+i18n("Output Device");
+// xgettext: no-c-format
+i18n("SO-6 Bulk Sorter");
+// xgettext: no-c-format
+i18n("ST-20 Bulk Stacker");
+// xgettext: no-c-format
+i18n("12MB Upgrade");
+// xgettext: no-c-format
+i18n("20MB Upgrade");
+// xgettext: no-c-format
+i18n("24MB Upgrade");
+// xgettext: no-c-format
+i18n("36MB Upgrade");
+// xgettext: no-c-format
+i18n("40MB Upgrade");
+// xgettext: no-c-format
+i18n("48MB Upgrade");
+// xgettext: no-c-format
+i18n("64MB Upgrade");
+// xgettext: no-c-format
+i18n("Cassette 3");
+// xgettext: no-c-format
+i18n("Custom 1");
+// xgettext: no-c-format
+i18n("Custom 2");
+// xgettext: no-c-format
+i18n("Custom 3");
+// xgettext: no-c-format
+i18n("Custom 4");
+// xgettext: no-c-format
+i18n("Custom 5");
+// xgettext: no-c-format
+i18n("Custom 6");
+// xgettext: no-c-format
+i18n("Custom 7");
+// xgettext: no-c-format
+i18n("Custom 8");
+// xgettext: no-c-format
+i18n("Top Tray (Face-Down)");
+// xgettext: no-c-format
+i18n("Rear Tray (Face-Up)");
+// xgettext: no-c-format
+i18n("Stacker Mode (Face-Down)");
+// xgettext: no-c-format
+i18n("Sorter Mode (Face-Down)");
+// xgettext: no-c-format
+i18n("Collator Mode (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 1 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 2 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 3 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 4 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 5 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 6 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 7 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 8 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 9 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 10 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 11 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 12 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 13 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 14 (Face-Down)");
+// xgettext: no-c-format
+i18n("Mailbox 15 (Face-Down)");
+// xgettext: no-c-format
+i18n("Duplexing");
+// xgettext: no-c-format
+i18n("Temporary");
+// xgettext: no-c-format
+i18n("EF-1 Envelope Feeder");
+// xgettext: no-c-format
+i18n("UF-1 Universal Feeder");
+// xgettext: no-c-format
+i18n("PF-7 Bulk Feeder");
+// xgettext: no-c-format
+i18n("PF-5 Paper Feeders");
+// xgettext: no-c-format
+i18n("HS-3 Bulk Stacker");
+// xgettext: no-c-format
+i18n("Bulk Feeder");
+// xgettext: no-c-format
+i18n("Universal Feeder");
+// xgettext: no-c-format
+i18n("Stacker Mode (Face-Up)");
+// xgettext: no-c-format
+i18n("5MB Upgrade");
+// xgettext: no-c-format
+i18n("6MB Upgrade");
+// xgettext: no-c-format
+i18n("9MB Upgrade");
+// xgettext: no-c-format
+i18n("10MB Upgrade");
+// xgettext: no-c-format
+i18n("17MB Upgrade");
+// xgettext: no-c-format
+i18n("18MB Upgrade");
+// xgettext: no-c-format
+i18n("33MB Upgrade");
+// xgettext: no-c-format
+i18n("34MB Upgrade");
+// xgettext: no-c-format
+i18n("PF-7E Bulk Feeder");
+// xgettext: no-c-format
+i18n("PF-20 Paper Feeders");
+// xgettext: no-c-format
+i18n("HS-3E Bulk Stacker");
+// xgettext: no-c-format
+i18n("60MB Upgrade");
+// xgettext: no-c-format
+i18n("1200 Dots per Inch (dpi)");
+// xgettext: no-c-format
+i18n("PF-1 Paper Feeder");
+// xgettext: no-c-format
+i18n("Cassette 1");
+// xgettext: no-c-format
+i18n("7MB Upgrade");
+// xgettext: no-c-format
+i18n("13MB Upgrade");
+// xgettext: no-c-format
+i18n("PF-2 Paper Feeder");
+// xgettext: no-c-format
+i18n("11x17 (Ledger)");
+// xgettext: no-c-format
+i18n("Side Tray (Face-Up)");
+// xgettext: no-c-format
+i18n("PF-80 Paper Feeder");
+// xgettext: no-c-format
+i18n("Process Color (CMYK)");
+// xgettext: no-c-format
+i18n("Quick Color (CMY)");
+// xgettext: no-c-format
+i18n("Color Matching");
+// xgettext: no-c-format
+i18n("Simulate Display");
+// xgettext: no-c-format
+i18n("Side Tray (Face-Down)");
+// xgettext: no-c-format
+i18n("Permanent");
+// xgettext: no-c-format
+i18n("Barcode");
+// xgettext: no-c-format
+i18n("First Page");
+// xgettext: no-c-format
+i18n("Barcode ID");
+// xgettext: no-c-format
+i18n("Barcode Position");
+// xgettext: no-c-format
+i18n("Upper Left");
+// xgettext: no-c-format
+i18n("Upper Right");
+// xgettext: no-c-format
+i18n("Lower Left");
+// xgettext: no-c-format
+i18n("Lower Right");
+// xgettext: no-c-format
+i18n("Upper Left Vertical");
+// xgettext: no-c-format
+i18n("Upper Right Vertical");
+// xgettext: no-c-format
+i18n("Lower Left Vertical");
+// xgettext: no-c-format
+i18n("Lower Right Vertical");
+// xgettext: no-c-format
+i18n("PF-81 Paper Feeder");
+// xgettext: no-c-format
+i18n("Color Correction");
+// xgettext: no-c-format
+i18n("Application Corrected");
+// xgettext: no-c-format
+i18n("Printer Corrected");
+// xgettext: no-c-format
+i18n("Ink Simulation (CMYK)");
+// xgettext: no-c-format
+i18n("Euroscale Press");
+// xgettext: no-c-format
+i18n("SWOP Press");
+// xgettext: no-c-format
+i18n("Monitor Simulation (RGB)");
+// xgettext: no-c-format
+i18n("SMPTE240M");
+// xgettext: no-c-format
+i18n("sRGB (HDTV)");
+// xgettext: no-c-format
+i18n("Trinitron");
+// xgettext: no-c-format
+i18n("Apple RGB");
+// xgettext: no-c-format
+i18n("NTSC");
+// xgettext: no-c-format
+i18n("Duplex Paper");
+// xgettext: no-c-format
+i18n("Coated Paper");
+// xgettext: no-c-format
+i18n("Temporary (RAM Disk)");
+// xgettext: no-c-format
+i18n("Temporary (Hard Disk)");
+// xgettext: no-c-format
+i18n("Permanent (Hard Disk)");
+// xgettext: no-c-format
+i18n("Virtual Mailbox (Administrator)");
+// xgettext: no-c-format
+i18n("Virtual Mailbox (User 1)");
+// xgettext: no-c-format
+i18n("Virtual Mailbox (User 2)");
+// xgettext: no-c-format
+i18n("Virtual Mailbox (User 3)");
+// xgettext: no-c-format
+i18n("Virtual Mailbox (User 4)");
+// xgettext: no-c-format
+i18n("Virtual Mailbox (User 5)");
+// xgettext: no-c-format
+i18n("Virtual Mailbox (User 6)");
+// xgettext: no-c-format
+i18n("Virtual Mailbox (User 7)");
+// xgettext: no-c-format
+i18n("Virtual Mailbox (User 8)");
+// xgettext: no-c-format
+i18n("Virtual Mailbox (User 9)");
+// xgettext: no-c-format
+i18n("Virtual Mailbox (User 10)");
+// xgettext: no-c-format
+i18n("PF-26 Paper Feeders");
+// xgettext: no-c-format
+i18n("PF-9 Paper Feeders");
+// xgettext: no-c-format
+i18n("11MB Upgrade");
+// xgettext: no-c-format
+i18n("15MB Upgrade");
+// xgettext: no-c-format
+i18n("19MB Upgrade");
+// xgettext: no-c-format
+i18n("23MB Upgrade");
+// xgettext: no-c-format
+i18n("31MB Upgrade");
+// xgettext: no-c-format
+i18n("35MB Upgrade");
+// xgettext: no-c-format
+i18n("39MB Upgrade");
+// xgettext: no-c-format
+i18n("47MB Upgrade");
+// xgettext: no-c-format
+i18n("63MB Upgrade");
+// xgettext: no-c-format
+i18n("PF-25 Paper Feeders");
+// xgettext: no-c-format
+i18n("38MB Upgrade");
+// xgettext: no-c-format
+i18n("PF-30 Paper Feeders");
+// xgettext: no-c-format
+i18n("One (2 Cassettes)");
+// xgettext: no-c-format
+i18n("Two (4 Cassettes)");
+// xgettext: no-c-format
+i18n("Three (6 Cassettes)");
+// xgettext: no-c-format
+i18n("SO-30 Bulk Sorter");
+// xgettext: no-c-format
+i18n("ST-30 Bulk Stacker");
+// xgettext: no-c-format
+i18n("DF-30 Document Finisher");
+// xgettext: no-c-format
+i18n("Cassette 4");
+// xgettext: no-c-format
+i18n("Cassette 5");
+// xgettext: no-c-format
+i18n("Cassette 6");
+// xgettext: no-c-format
+i18n("Staple Method");
+// xgettext: no-c-format
+i18n("Staple Job up to 20 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 20 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 19 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 18 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 17 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 16 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 15 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 14 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 13 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 12 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 11 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 10 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 9 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 8 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 7 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 6 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 5 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 4 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 3 Sheets");
+// xgettext: no-c-format
+i18n("Staple Every 2 Sheets");
+// xgettext: no-c-format
+i18n("DF-31 Document Finisher");
+// xgettext: no-c-format
+i18n("44MB Upgrade");
+// xgettext: no-c-format
+i18n("Lower Tray - Option");
+// xgettext: no-c-format
+i18n("Envelope Feeder - Option");
+// xgettext: no-c-format
+i18n("Printer Memory - Option");
+// xgettext: no-c-format
+i18n("1.5 Mb Printer Memory");
+// xgettext: no-c-format
+i18n("2.5 Mb Printer Memory");
+// xgettext: no-c-format
+i18n("4 Mb Printer Memory");
+// xgettext: no-c-format
+i18n("C9 Envelope");
+// xgettext: no-c-format
+i18n("B5 Envelope");
+// xgettext: no-c-format
+i18n("Manual Envelope");
+// xgettext: no-c-format
+i18n("Manual Paper");
+// xgettext: no-c-format
+i18n("Tray Linking");
+// xgettext: no-c-format
+i18n("2 Mb Printer Memory");
+// xgettext: no-c-format
+i18n("3 Mb Printer Memory");
+// xgettext: no-c-format
+i18n("5+ Mb Printer Memory");
+// xgettext: no-c-format
+i18n("Smoothing");
+// xgettext: no-c-format
+i18n("Other Envelope");
+// xgettext: no-c-format
+i18n("Duplex - Option");
+// xgettext: no-c-format
+i18n("Simplex");
+// xgettext: no-c-format
+i18n("Duplex - Long Edge");
+// xgettext: no-c-format
+i18n("Duplex - Short Edge");
+// xgettext: no-c-format
+i18n("Flash Memory Card - Option");
+// xgettext: no-c-format
+i18n("Printer Hard Disk - Option");
+// xgettext: no-c-format
+i18n("2 MB Printer Memory");
+// xgettext: no-c-format
+i18n("4 MB Printer Memory");
+// xgettext: no-c-format
+i18n("6 MB Printer Memory");
+// xgettext: no-c-format
+i18n("8 MB Printer Memory");
+// xgettext: no-c-format
+i18n("10 MB Printer Memory");
+// xgettext: no-c-format
+i18n("12 MB Printer Memory");
+// xgettext: no-c-format
+i18n("16 MB Printer Memory");
+// xgettext: no-c-format
+i18n("8 Mb Printer Memory");
+// xgettext: no-c-format
+i18n("12 Mb Printer Memory");
+// xgettext: no-c-format
+i18n("16 Mb Printer Memory");
+// xgettext: no-c-format
+i18n("Printer Software Version");
+// xgettext: no-c-format
+i18n("250.0x");
+// xgettext: no-c-format
+i18n("250.2x");
+// xgettext: no-c-format
+i18n("360 dpi");
+// xgettext: no-c-format
+i18n("High Quality");
+// xgettext: no-c-format
+i18n("Bold Black");
+// xgettext: no-c-format
+i18n("Screening");
+// xgettext: no-c-format
+i18n("Color Balance");
+// xgettext: no-c-format
+i18n("Blue Adjust");
+// xgettext: no-c-format
+i18n("Line Art && Text");
+// xgettext: no-c-format
+i18n("Images");
+// xgettext: no-c-format
+i18n("Color Model");
+// xgettext: no-c-format
+i18n("RGB");
+// xgettext: no-c-format
+i18n("Image Brightness");
+// xgettext: no-c-format
+i18n("+5");
+// xgettext: no-c-format
+i18n("+10");
+// xgettext: no-c-format
+i18n("+15");
+// xgettext: no-c-format
+i18n("+20");
+// xgettext: no-c-format
+i18n("+25");
+// xgettext: no-c-format
+i18n("+30");
+// xgettext: no-c-format
+i18n("+35");
+// xgettext: no-c-format
+i18n("+40");
+// xgettext: no-c-format
+i18n("+45");
+// xgettext: no-c-format
+i18n("+50");
+// xgettext: no-c-format
+i18n("Image Contrast");
+// xgettext: no-c-format
+i18n("20 MB Printer Memory");
+// xgettext: no-c-format
+i18n("32 or more MB Printer Memory");
+// xgettext: no-c-format
+i18n("Pause Mode");
+// xgettext: no-c-format
+i18n("ColorGrade");
+// xgettext: no-c-format
+i18n("Image Diffusion");
+// xgettext: no-c-format
+i18n("Oversize 11.7 x 22 in");
+// xgettext: no-c-format
+i18n("Duplexer - Option");
+// xgettext: no-c-format
+i18n("Tray 3 - Option");
+// xgettext: no-c-format
+i18n("Feeder 2 - Option");
+// xgettext: no-c-format
+i18n("1 MB Flash Memory");
+// xgettext: no-c-format
+i18n("2 MB Flash Memory");
+// xgettext: no-c-format
+i18n("4 MB Flash Memory");
+// xgettext: no-c-format
+i18n("18 MB Printer Memory");
+// xgettext: no-c-format
+i18n("24 MB Printer Memory");
+// xgettext: no-c-format
+i18n("Print Darkness");
+// xgettext: no-c-format
+i18n("1200 dpi");
+// xgettext: no-c-format
+i18n("Feeder");
+// xgettext: no-c-format
+i18n("Feeder 2");
+// xgettext: no-c-format
+i18n("Tray 2 - Option");
+// xgettext: no-c-format
+i18n("32 MB Printer Memory");
+// xgettext: no-c-format
+i18n("64 MB Printer Memory");
+// xgettext: no-c-format
+i18n("96 MB Printer Memory");
+// xgettext: no-c-format
+i18n("128 MB Printer Memory");
+// xgettext: no-c-format
+i18n("Toner Saver");
+// xgettext: no-c-format
+i18n("Image Smoothing");
+// xgettext: no-c-format
+i18n("Colored Paper");
+// xgettext: no-c-format
+i18n("Custom Type 1");
+// xgettext: no-c-format
+i18n("Custom Type 2");
+// xgettext: no-c-format
+i18n("Custom Type 3");
+// xgettext: no-c-format
+i18n("Custom Type 4");
+// xgettext: no-c-format
+i18n("Port Rotation");
+// xgettext: no-c-format
+i18n("Collate Copies");
+// xgettext: no-c-format
+i18n("Top");
+// xgettext: no-c-format
+i18n("Rear");
+// xgettext: no-c-format
+i18n("Black & White");
+// xgettext: no-c-format
+i18n("Display");
+// xgettext: no-c-format
+i18n("1200 Image Quality");
+// xgettext: no-c-format
+i18n("B5 182 x 257 mm");
+// xgettext: no-c-format
+i18n("A5 148 x 210 mm");
+// xgettext: no-c-format
+i18n("B4 257 x 364 mm");
+// xgettext: no-c-format
+i18n("A3 297 x 419 mm");
+// xgettext: no-c-format
+i18n("Universal 11.7 x 17 in");
+// xgettext: no-c-format
+i18n("7 3/4 Envelope 3 7/8 x 7 1/2 in");
+// xgettext: no-c-format
+i18n("9 Envelope 3 7/8 x 8 7/8 in");
+// xgettext: no-c-format
+i18n("10 Envelope 4 1/8 x 9 1/2 in");
+// xgettext: no-c-format
+i18n("DL Envelope 110 x 220 mm");
+// xgettext: no-c-format
+i18n("C5 Envelope 162 x 229 mm");
+// xgettext: no-c-format
+i18n("B5 Envelope 176 x 250 mm");
+// xgettext: no-c-format
+i18n("Other Envelope 8 1/2 x 14 in");
+// xgettext: no-c-format
+i18n("Universal");
+// xgettext: no-c-format
+i18n("Comm10");
+// xgettext: no-c-format
+i18n("ISOB5");
+// xgettext: no-c-format
+i18n("Other");
+// xgettext: no-c-format
+i18n("MP Feeder");
+// xgettext: no-c-format
+i18n("36 MB Printer Memory");
+// xgettext: no-c-format
+i18n("68 or more MB Printer Memory");
+// xgettext: no-c-format
+i18n("Left Cartridge");
+// xgettext: no-c-format
+i18n("Unknown Cartridge");
+// xgettext: no-c-format
+i18n("Standard Black Cartridge");
+// xgettext: no-c-format
+i18n("High Capacity Black Cartridge");
+// xgettext: no-c-format
+i18n("Photo Cartridge");
+// xgettext: no-c-format
+i18n("Right Cartridge");
+// xgettext: no-c-format
+i18n("Standard Color Cartridge");
+// xgettext: no-c-format
+i18n("High Capacity Color Cartridge");
+// xgettext: no-c-format
+i18n("Greeting Card");
+// xgettext: no-c-format
+i18n("Iron On");
+// xgettext: no-c-format
+i18n("Photo Paper");
+// xgettext: no-c-format
+i18n("QuickPrint");
+// xgettext: no-c-format
+i18n("Universal 8 1/2 x 14 in");
+// xgettext: no-c-format
+i18n("40 MB Printer Memory");
+// xgettext: no-c-format
+i18n("72 or more MB Printer Memory");
+// xgettext: no-c-format
+i18n("SA3 320 x 450 mm");
+// xgettext: no-c-format
+i18n("Universal 12.6 x 22 in");
+// xgettext: no-c-format
+i18n("SA3");
+// xgettext: no-c-format
+i18n("Duplex Option - Option");
+// xgettext: no-c-format
+i18n("Fax Card");
+// xgettext: no-c-format
+i18n("Printer Setting");
+// xgettext: no-c-format
+i18n("Black && White");
+// xgettext: no-c-format
+i18n("2 Color Draft");
+// xgettext: no-c-format
+i18n("Image Enhancement");
+// xgettext: no-c-format
+i18n("PictureGrade");
+// xgettext: no-c-format
+i18n("Custom Type 5");
+// xgettext: no-c-format
+i18n("Custom Type 6");
+// xgettext: no-c-format
+i18n("14 MB Printer Memory");
+// xgettext: no-c-format
+i18n("28 MB Printer Memory");
+// xgettext: no-c-format
+i18n("Toner Darkness");
+// xgettext: no-c-format
+i18n("Printer's default");
+// xgettext: no-c-format
+i18n("Tray 4 - Option");
+// xgettext: no-c-format
+i18n("Tray 5 - Option");
+// xgettext: no-c-format
+i18n("MP Feeder - Option");
+// xgettext: no-c-format
+i18n("Number of Output Bins - Option");
+// xgettext: no-c-format
+i18n("Standard Bin Only");
+// xgettext: no-c-format
+i18n("1 Extra Bin");
+// xgettext: no-c-format
+i18n("2 Extra Bins");
+// xgettext: no-c-format
+i18n("3 Extra Bins");
+// xgettext: no-c-format
+i18n("4 Extra Bins");
+// xgettext: no-c-format
+i18n("5 Extra Bins");
+// xgettext: no-c-format
+i18n("6 Extra Bins");
+// xgettext: no-c-format
+i18n("7 Extra Bins");
+// xgettext: no-c-format
+i18n("8 Extra Bins");
+// xgettext: no-c-format
+i18n("9 Extra Bins");
+// xgettext: no-c-format
+i18n("10 Extra Bins");
+// xgettext: no-c-format
+i18n("11 Extra Bins");
+// xgettext: no-c-format
+i18n("12 Extra Bins");
+// xgettext: no-c-format
+i18n("13 Extra Bins");
+// xgettext: no-c-format
+i18n("14 Extra Bins");
+// xgettext: no-c-format
+i18n("15 Extra Bins");
+// xgettext: no-c-format
+i18n("22 MB Printer Memory");
+// xgettext: no-c-format
+i18n("Standard Bin");
+// xgettext: no-c-format
+i18n("Bin 9");
+// xgettext: no-c-format
+i18n("Bin 10");
+// xgettext: no-c-format
+i18n("Bin 11");
+// xgettext: no-c-format
+i18n("Bin 12");
+// xgettext: no-c-format
+i18n("Bin 13");
+// xgettext: no-c-format
+i18n("Bin 14");
+// xgettext: no-c-format
+i18n("Bin 15");
+// xgettext: no-c-format
+i18n("250-Sheet Drawer");
+// xgettext: no-c-format
+i18n("500-Sheet Drawer");
+// xgettext: no-c-format
+i18n("2000-Sheet Drawer");
+// xgettext: no-c-format
+i18n("1 - Output Expander");
+// xgettext: no-c-format
+i18n("1 - Hi-Capacity Output Expander");
+// xgettext: no-c-format
+i18n("2 - 2 Output Expanders");
+// xgettext: no-c-format
+i18n("2 - 1 Hi-Capacity + 1 Output Expander");
+// xgettext: no-c-format
+i18n("3 - 3 Output Expanders");
+// xgettext: no-c-format
+i18n("5 - 5-Bin Mailbox");
+// xgettext: no-c-format
+i18n("6 - 1 Output Expander + 1 5-Bin Mailbox");
+// xgettext: no-c-format
+i18n("6 - 1 5-Bin Mailbox + 1 Output Expander");
+// xgettext: no-c-format
+i18n("10 - 2 5-Bin Mailboxes");
+// xgettext: no-c-format
+i18n("Other Envelope 9.02 x 14 in");
+// xgettext: no-c-format
+i18n("Color Registration");
+// xgettext: no-c-format
+i18n("High Speed");
+// xgettext: no-c-format
+i18n("Finish Quality");
+// xgettext: no-c-format
+i18n("Medium Gloss");
+// xgettext: no-c-format
+i18n("High Gloss");
+// xgettext: no-c-format
+i18n("Low Gloss");
+// xgettext: no-c-format
+i18n("Contone");
+// xgettext: no-c-format
+i18n("Stochastic");
+// xgettext: no-c-format
+i18n("Multipurpose Feeder");
+// xgettext: no-c-format
+i18n("3 MB Printer Memory");
+// xgettext: no-c-format
+i18n("Manual Feed Paper Type");
+// xgettext: no-c-format
+i18n("Tray 1 Paper Type");
+// xgettext: no-c-format
+i18n("Tray 2 Paper Type");
+// xgettext: no-c-format
+i18n("1200 Quality");
+// xgettext: no-c-format
+i18n("Paper Input Drawer - Option");
+// xgettext: no-c-format
+i18n("Finisher - Option");
+// xgettext: no-c-format
+i18n("Custom 11.7 x 17.7 in");
+// xgettext: no-c-format
+i18n("Upper (Tray 1)");
+// xgettext: no-c-format
+i18n("Lower (Tray 2)");
+// xgettext: no-c-format
+i18n("Input Drawer (Tray 3)");
+// xgettext: no-c-format
+i18n("No Tray Linking");
+// xgettext: no-c-format
+i18n("Link Tray 1+2");
+// xgettext: no-c-format
+i18n("Link Tray 1+2+3");
+// xgettext: no-c-format
+i18n("Link Tray 2+3");
+// xgettext: no-c-format
+i18n("Bin 0 (Top)");
+// xgettext: no-c-format
+i18n("Bin 1 (Side)");
+// xgettext: no-c-format
+i18n("Staple 1");
+// xgettext: no-c-format
+i18n("Staple 2");
+// xgettext: no-c-format
+i18n("Do Not Care");
+// xgettext: no-c-format
+i18n("26 MB Printer Memory");
+// xgettext: no-c-format
+i18n("Images Only");
+// xgettext: no-c-format
+i18n("Entire Page");
+// xgettext: no-c-format
+i18n("2500-Sheet Drawer");
+// xgettext: no-c-format
+i18n("Mailbox - Option");
+// xgettext: no-c-format
+i18n("Hole Punch");
+// xgettext: no-c-format
+i18n("Offset Pages");
+// xgettext: no-c-format
+i18n("Between Copies");
+// xgettext: no-c-format
+i18n("Universal 11.69 x 17 in");
+// xgettext: no-c-format
+i18n("300x1200 DPI");
+// xgettext: no-c-format
+i18n("300x600 DPI");
+// xgettext: no-c-format
+i18n("600x1200 DPI");
+// xgettext: no-c-format
+i18n("1200x1200 DPI");
+// xgettext: no-c-format
+i18n("1200x300 DPI");
+// xgettext: no-c-format
+i18n("Normal Quality Color (4-ink)");
+// xgettext: no-c-format
+i18n("Photo Quality Color (6-ink)");
+// xgettext: no-c-format
+i18n("Bidirectional printing");
+// xgettext: no-c-format
+i18n("off");
+// xgettext: no-c-format
+i18n("on");
+// xgettext: no-c-format
+i18n("300 dpi x 600 dpi");
+// xgettext: no-c-format
+i18n("600 dpi x 600 dpi");
+// xgettext: no-c-format
+i18n("1200 dpi x 600 dpi");
+// xgettext: no-c-format
+i18n("Color");
+// xgettext: no-c-format
+i18n("Page Drying Time");
+// xgettext: no-c-format
+i18n("0 sec");
+// xgettext: no-c-format
+i18n("10 sec.");
+// xgettext: no-c-format
+i18n("20 sec.");
+// xgettext: no-c-format
+i18n("30 sec.");
+// xgettext: no-c-format
+i18n("40 sec.");
+// xgettext: no-c-format
+i18n("50 sec");
+// xgettext: no-c-format
+i18n("60 sec");
+// xgettext: no-c-format
+i18n("300x300 dpi");
+// xgettext: no-c-format
+i18n("300x600 dpi");
+// xgettext: no-c-format
+i18n("600x1200 dpi");
+// xgettext: no-c-format
+i18n("600x600 dpi");
+// xgettext: no-c-format
+i18n("1200x1200 dpi");
+// xgettext: no-c-format
+i18n("Optional Multi-Feeder");
+// xgettext: no-c-format
+i18n("6 MB");
+// xgettext: no-c-format
+i18n("7 MB");
+// xgettext: no-c-format
+i18n("8 MB");
+// xgettext: no-c-format
+i18n("10 MB");
+// xgettext: no-c-format
+i18n("11 MB");
+// xgettext: no-c-format
+i18n("12 MB");
+// xgettext: no-c-format
+i18n("14 MB");
+// xgettext: no-c-format
+i18n("18 MB");
+// xgettext: no-c-format
+i18n("19 MB");
+// xgettext: no-c-format
+i18n("20 MB");
+// xgettext: no-c-format
+i18n("22 MB");
+// xgettext: no-c-format
+i18n("26 MB");
+// xgettext: no-c-format
+i18n("34 MB");
+// xgettext: no-c-format
+i18n("Legal14");
+// xgettext: no-c-format
+i18n("Legal13");
+// xgettext: no-c-format
+i18n("Com10");
+// xgettext: no-c-format
+i18n("Com9");
+// xgettext: no-c-format
+i18n("Multi Feeder");
+// xgettext: no-c-format
+i18n("TraySwitch");
+// xgettext: no-c-format
+i18n("4 MB");
+// xgettext: no-c-format
+i18n("5 MB");
+// xgettext: no-c-format
+i18n("600x1200dpi");
+// xgettext: no-c-format
+i18n("Multi-Feeder");
+// xgettext: no-c-format
+i18n("2 MB");
+// xgettext: no-c-format
+i18n("4MB");
+// xgettext: no-c-format
+i18n("5MB");
+// xgettext: no-c-format
+i18n("6MB");
+// xgettext: no-c-format
+i18n("7MB");
+// xgettext: no-c-format
+i18n("8MB");
+// xgettext: no-c-format
+i18n("10MB");
+// xgettext: no-c-format
+i18n("11MB");
+// xgettext: no-c-format
+i18n("12MB");
+// xgettext: no-c-format
+i18n("14MB");
+// xgettext: no-c-format
+i18n("18MB");
+// xgettext: no-c-format
+i18n("19MB");
+// xgettext: no-c-format
+i18n("20MB");
+// xgettext: no-c-format
+i18n("22MB");
+// xgettext: no-c-format
+i18n("26MB");
+// xgettext: no-c-format
+i18n("34MB");
+// xgettext: no-c-format
+i18n("35MB");
+// xgettext: no-c-format
+i18n("36MB");
+// xgettext: no-c-format
+i18n("38MB");
+// xgettext: no-c-format
+i18n("42MB");
+// xgettext: no-c-format
+i18n("50MB");
+// xgettext: no-c-format
+i18n("66MB");
+// xgettext: no-c-format
+i18n("Env10");
+// xgettext: no-c-format
+i18n("Env9");
+// xgettext: no-c-format
+i18n("EnvDL");
+// xgettext: no-c-format
+i18n("EnvC4");
+// xgettext: no-c-format
+i18n("EnvC5");
+// xgettext: no-c-format
+i18n("EnvMonarch");
+// xgettext: no-c-format
+i18n("OKHalftoneMode");
+// xgettext: no-c-format
+i18n("Regular");
+// xgettext: no-c-format
+i18n("Photo");
+// xgettext: no-c-format
+i18n("2.5 MB");
+// xgettext: no-c-format
+i18n("3.5 MB");
+// xgettext: no-c-format
+i18n("4.5 MB");
+// xgettext: no-c-format
+i18n("6.5 MB");
+// xgettext: no-c-format
+i18n("10.5 MB");
+// xgettext: no-c-format
+i18n("18.5 MB");
+// xgettext: no-c-format
+i18n("Post Card");
+// xgettext: no-c-format
+i18n("Cardboard");
+// xgettext: no-c-format
+i18n("Coated Film");
+// xgettext: no-c-format
+i18n("Fine Paper");
+// xgettext: no-c-format
+i18n("Iron Seal");
+// xgettext: no-c-format
+i18n("OHP");
+// xgettext: no-c-format
+i18n("OHP (MD 2000)");
+// xgettext: no-c-format
+i18n("Rebeca Free");
+// xgettext: no-c-format
+i18n("Color Depth");
+// xgettext: no-c-format
+i18n("Floyd Steinb. High Qual. (32 bpp)");
+// xgettext: no-c-format
+i18n("Floyd Steinberg Simple (8 bpp)");
+// xgettext: no-c-format
+i18n("Monochrome (1 bpp)");
+// xgettext: no-c-format
+i18n("Simple Color (4 bpp)");
+// xgettext: no-c-format
+i18n("Dithering");
+// xgettext: no-c-format
+i18n("DoubleSided");
+// xgettext: no-c-format
+i18n("SingleSided");
+// xgettext: no-c-format
+i18n("Black toner saving");
+// xgettext: no-c-format
+i18n("EcoBlack");
+// xgettext: no-c-format
+i18n("NormalBlack");
+// xgettext: no-c-format
+i18n("60x144 dpi");
+// xgettext: no-c-format
+i18n("60x72 dpi");
+// xgettext: no-c-format
+i18n("120x144 dpi");
+// xgettext: no-c-format
+i18n("120x72 dpi");
+// xgettext: no-c-format
+i18n("240x144 dpi");
+// xgettext: no-c-format
+i18n("240x72 dpi");
+// xgettext: no-c-format
+i18n("60x180 dpi");
+// xgettext: no-c-format
+i18n("60x216 dpi");
+// xgettext: no-c-format
+i18n("60x60 dpi");
+// xgettext: no-c-format
+i18n("120x180 dpi");
+// xgettext: no-c-format
+i18n("120x216 dpi");
+// xgettext: no-c-format
+i18n("120x60 dpi");
+// xgettext: no-c-format
+i18n("180x180 dpi");
+// xgettext: no-c-format
+i18n("180x216 dpi");
+// xgettext: no-c-format
+i18n("180x60 dpi");
+// xgettext: no-c-format
+i18n("180x72 dpi");
+// xgettext: no-c-format
+i18n("240x180 dpi");
+// xgettext: no-c-format
+i18n("240x216 dpi");
+// xgettext: no-c-format
+i18n("240x60 dpi");
+// xgettext: no-c-format
+i18n("360x180 dpi");
+// xgettext: no-c-format
+i18n("360x216 dpi");
+// xgettext: no-c-format
+i18n("360x60 dpi");
+// xgettext: no-c-format
+i18n("360x72 dpi");
+// xgettext: no-c-format
+i18n("72x72 dpi");
+// xgettext: no-c-format
+i18n("144x144 dpi");
+// xgettext: no-c-format
+i18n("Paper Size");
+// xgettext: no-c-format
+i18n("Paper Tray");
+// xgettext: no-c-format
+i18n("Paper Weight");
+// xgettext: no-c-format
+i18n("Heavier paper (28lb)");
+// xgettext: no-c-format
+i18n("Heaviest paper (32lb)");
+// xgettext: no-c-format
+i18n("Heavy paper (24lb)");
+// xgettext: no-c-format
+i18n("Light Paper (20lb)");
+// xgettext: no-c-format
+i18n("Lightest Paper (16lb)");
+// xgettext: no-c-format
+i18n("Darkness");
+// xgettext: no-c-format
+i18n("Rendering Mode");
+// xgettext: no-c-format
+i18n("Graphics Mode");
+// xgettext: no-c-format
+i18n("Text Mode");
+// xgettext: no-c-format
+i18n("US Executive");
+// xgettext: no-c-format
+i18n("Special Paper");
+// xgettext: no-c-format
+i18n("Envelope Feed");
+// xgettext: no-c-format
+i18n("Output Mode");
+// xgettext: no-c-format
+i18n("CMYK Color");
+// xgettext: no-c-format
+i18n("CMY Color");
+// xgettext: no-c-format
+i18n("CRET Color");
+// xgettext: no-c-format
+i18n("Duplexer");
+// xgettext: no-c-format
+i18n("Address - 1 1/8 x 3 1/2\"");
+// xgettext: no-c-format
+i18n("Large Address - 1 4/10 x 3 1/2\"");
+// xgettext: no-c-format
+i18n("Return Address - 3/4 x 2\"");
+// xgettext: no-c-format
+i18n("Shipping Address - 2 5/16 x 4\"");
+// xgettext: no-c-format
+i18n("Internet Postage 2-Part - 2 1/4 x 7 1/2\"");
+// xgettext: no-c-format
+i18n("Internet Postage 3-Part - 2 1/4 x 7\"");
+// xgettext: no-c-format
+i18n("File Folder - 9/16 x 3 7/16\"");
+// xgettext: no-c-format
+i18n("Hanging Folder - 9/16 x 2\"");
+// xgettext: no-c-format
+i18n("3.5\" Disk - 2 1/8 x 2 3/4\"");
+// xgettext: no-c-format
+i18n("136 DPI");
+// xgettext: no-c-format
+i18n("203 DPI");
+// xgettext: no-c-format
+i18n("Output Darkness");
+// xgettext: no-c-format
+i18n("FanFoldUS");
+// xgettext: no-c-format
+i18n("60 DPI");
+// xgettext: no-c-format
+i18n("120x60 DPI");
+// xgettext: no-c-format
+i18n("360x180 DPI");
+// xgettext: no-c-format
+i18n("360 DPI");
+// xgettext: no-c-format
+i18n("60x72 DPI");
+// xgettext: no-c-format
+i18n("120x72 DPI");
+// xgettext: no-c-format
+i18n("240x72 DPI");
+// xgettext: no-c-format
+i18n("720 DPI");
+// xgettext: no-c-format
+i18n("Page Size and Printing Quality");
+// xgettext: no-c-format
+i18n("A4, 600x600 DPI");
+// xgettext: no-c-format
+i18n("A4, 1200x600 DPI");
+// xgettext: no-c-format
+i18n("B5, 600x600 DPI");
+// xgettext: no-c-format
+i18n("B5, 1200x600 DPI");
+// xgettext: no-c-format
+i18n("Legal, 600x600 DPI");
+// xgettext: no-c-format
+i18n("Legal, 1200x600 DPI");
+// xgettext: no-c-format
+i18n("Letter, 600x600 DPI");
+// xgettext: no-c-format
+i18n("Letter, 1200x600 DPI");
+// xgettext: no-c-format
+i18n("Back Print Media");
+// xgettext: no-c-format
+i18n("High Grade Paper");
+// xgettext: no-c-format
+i18n("Iron-On Transfer Sheet");
+// xgettext: no-c-format
+i18n("Hot OHP Media");
+// xgettext: no-c-format
+i18n("BlackOnly");
+// xgettext: no-c-format
+i18n("HalfTone");
+// xgettext: no-c-format
+i18n("NoHalfTone");
+// xgettext: no-c-format
+i18n("FloydSteinberg");
+// xgettext: no-c-format
+i18n("NoFloydSteinberg");
+// xgettext: no-c-format
+i18n("Banding");
+// xgettext: no-c-format
+i18n("NoBanding");
+// xgettext: no-c-format
+i18n("Color Mode");
+// xgettext: no-c-format
+i18n("Do Curl Correction");
+// xgettext: no-c-format
+i18n("CurlCorrectionAlways");
+// xgettext: no-c-format
+i18n("CurlCorrectionAfterFinal");
+// xgettext: no-c-format
+i18n("Color Correction Mode");
+// xgettext: no-c-format
+i18n("FullBlack");
+// xgettext: no-c-format
+i18n("Next Job");
+// xgettext: no-c-format
+i18n("NextJobOnSameSheet");
+// xgettext: no-c-format
+i18n("NextJobOnNewSheet");
+// xgettext: no-c-format
+i18n("Next Job is spot color page");
+// xgettext: no-c-format
+i18n("NextSpotColorPage");
+// xgettext: no-c-format
+i18n("NextNotSpotColorPage");
+// xgettext: no-c-format
+i18n("Color correction");
+// xgettext: no-c-format
+i18n("NoColorCorrection");
+// xgettext: no-c-format
+i18n("ColorCorrection");
+// xgettext: no-c-format
+i18n("Curl Correction on current pass");
+// xgettext: no-c-format
+i18n("NoCurlCorrectionOnCurrent");
+// xgettext: no-c-format
+i18n("CurlCorrectionOnCurrent");
+// xgettext: no-c-format
+i18n("How often every dot is printed");
+// xgettext: no-c-format
+i18n("PrintTwice");
+// xgettext: no-c-format
+i18n("PrintOnce");
+// xgettext: no-c-format
+i18n("Black Printing Mode");
+// xgettext: no-c-format
+i18n("SolidBlack");
+// xgettext: no-c-format
+i18n("MixedBlack");
+// xgettext: no-c-format
+i18n("Square Dithering");
+// xgettext: no-c-format
+i18n("SquareDithering");
+// xgettext: no-c-format
+i18n("NoSquareDithering");
+// xgettext: no-c-format
+i18n("This Job is spot color page");
+// xgettext: no-c-format
+i18n("ThisSpotColorPage");
+// xgettext: no-c-format
+i18n("ThisNotSpotColorPage");
+// xgettext: no-c-format
+i18n("300 DPI Normal, color and black cartr.");
+// xgettext: no-c-format
+i18n("300 DPI Normal, color cartr. only");
+// xgettext: no-c-format
+i18n("A4, Color");
+// xgettext: no-c-format
+i18n("A4, Grayscale");
+// xgettext: no-c-format
+i18n("Letter, Color");
+// xgettext: no-c-format
+i18n("Letter, Grayscale");
+// xgettext: no-c-format
+i18n("Device");
+// xgettext: no-c-format
+i18n("Link stylewriter in dev directory (set it to the appropriate device)");
+// xgettext: no-c-format
+i18n("Serial Port #1 (Linux)");
+// xgettext: no-c-format
+i18n("Serial Port #2 (Linux)");
+// xgettext: no-c-format
+i18n("Serial Port #1 (NetBSD)");
+// xgettext: no-c-format
+i18n("Serial Port #2 (NetBSD)");
+// xgettext: no-c-format
+i18n("Pass output to device set by the spooler");
+// xgettext: no-c-format
+i18n("Label Size");
+// xgettext: no-c-format
+i18n("2.25x7.5in, 59x190mm (Lever archive - large)");
+// xgettext: no-c-format
+i18n("1.4x7.5in, 38x190mm (Lever archive - small)");
+// xgettext: no-c-format
+i18n("2.125x4.0in, 54x101mm (Shipping badge)");
+// xgettext: no-c-format
+i18n("2.125x2.75in, 54x70mm (Diskette)");
+// xgettext: no-c-format
+i18n("1.4x3.5in, 36x89mm (Large address)");
+// xgettext: no-c-format
+i18n("1.125x3.5in, 28x89mm (Standard address)");
+// xgettext: no-c-format
+i18n("0.5x2in, 12x50mm (Suspension file)");
+// xgettext: no-c-format
+i18n("0.75x5.875in, 19x147mm (Video tape spine)");
+// xgettext: no-c-format
+i18n("1.8x3.1in, 46x78mm (Video tape top)");
+// xgettext: no-c-format
+i18n("Dual");
+// xgettext: no-c-format
+i18n("Thicker Paper");
+// xgettext: no-c-format
+i18n("Toner Saving");
+// xgettext: no-c-format
+i18n("High (50%)");
+// xgettext: no-c-format
+i18n("Low (25%)");
+// xgettext: no-c-format
+i18n("2400x600 DPI");
+// xgettext: no-c-format
+i18n("180x360 dpi");
+// xgettext: no-c-format
+i18n("360x360 dpi");
+// xgettext: no-c-format
+i18n("Media Weight");
+// xgettext: no-c-format
+i18n("Normal paper");
+// xgettext: no-c-format
+i18n("Thick paper");
+// xgettext: no-c-format
+i18n("Draft Quality");
+// xgettext: no-c-format
+i18n("Normal Quality");
+// xgettext: no-c-format
+i18n("Ghostscript Bits Per Pixel");
+// xgettext: no-c-format
+i18n("Monochrome (1bpp)");
+// xgettext: no-c-format
+i18n("CMYK with Ghostscript dithering (8bpp)");
+// xgettext: no-c-format
+i18n("CMYK with Ghostscript FS dithering (16bpp)");
+// xgettext: no-c-format
+i18n("CMYK with FS dithering (24 bpp)");
+// xgettext: no-c-format
+i18n("CMYK with FS dithering (32 bpp)");
+// xgettext: no-c-format
+i18n("Mode");
+// xgettext: no-c-format
+i18n("Four-color CMYK");
+// xgettext: no-c-format
+i18n("Greyscale");
+// xgettext: no-c-format
+i18n("Three-color RGB");
+// xgettext: no-c-format
+i18n("Colors to be used");
+// xgettext: no-c-format
+i18n("Cyan only");
+// xgettext: no-c-format
+i18n("Cyan, Black");
+// xgettext: no-c-format
+i18n("Cyan, Magenta");
+// xgettext: no-c-format
+i18n("Cyan, Magenta, Black");
+// xgettext: no-c-format
+i18n("Cyan, Magenta, Yellow");
+// xgettext: no-c-format
+i18n("Cyan, Magenta, Yellow, Black");
+// xgettext: no-c-format
+i18n("Cyan, Yellow");
+// xgettext: no-c-format
+i18n("Cyan, Yellow, Black");
+// xgettext: no-c-format
+i18n("Black only");
+// xgettext: no-c-format
+i18n("Black for any color");
+// xgettext: no-c-format
+i18n("Magenta only");
+// xgettext: no-c-format
+i18n("Magenta, Black");
+// xgettext: no-c-format
+i18n("Magenta, Yellow");
+// xgettext: no-c-format
+i18n("Magenta, Yellow, Black");
+// xgettext: no-c-format
+i18n("Yellow only");
+// xgettext: no-c-format
+i18n("Yellow, Black");
+// xgettext: no-c-format
+i18n("Auto Sheet Feeder");
+// xgettext: no-c-format
+i18n("Manual without Pause");
+// xgettext: no-c-format
+i18n("Manual with Pause");
+// xgettext: no-c-format
+i18n("Back Print Film");
+// xgettext: no-c-format
+i18n("Fabric Sheets");
+// xgettext: no-c-format
+i18n("Glossy Photo Cards");
+// xgettext: no-c-format
+i18n("Glossy Photo Paper");
+// xgettext: no-c-format
+i18n("High Gloss Film");
+// xgettext: no-c-format
+i18n("High Resolution Paper");
+// xgettext: no-c-format
+i18n("Photo Paper Pro");
+// xgettext: no-c-format
+i18n("T-Shirt Transfers");
+// xgettext: no-c-format
+i18n("Black");
+// xgettext: no-c-format
+i18n("1440 DPI");
+// xgettext: no-c-format
+i18n("1440x720 DPI");
+// xgettext: no-c-format
+i18n("180x180 DPI");
+// xgettext: no-c-format
+i18n("360x360 DPI");
+// xgettext: no-c-format
+i18n("720x360 DPI");
+// xgettext: no-c-format
+i18n("360×360dpi, back print film");
+// xgettext: no-c-format
+i18n("360×360dpi, coated paper");
+// xgettext: no-c-format
+i18n("360×360dpi, fabric sheet");
+// xgettext: no-c-format
+i18n("360×360dpi, glossy paper");
+// xgettext: no-c-format
+i18n("360×360dpi, high gloss film");
+// xgettext: no-c-format
+i18n("360×360dpi, high resolution paper");
+// xgettext: no-c-format
+i18n("360×360dpi, plain paper");
+// xgettext: no-c-format
+i18n("360×360dpi, plain paper, high speed");
+// xgettext: no-c-format
+i18n("360×360dpi, transparency film");
+// xgettext: no-c-format
+i18n("720 dpi");
+// xgettext: no-c-format
+i18n("Black and Color");
+// xgettext: no-c-format
+i18n("Photo and Color");
+// xgettext: no-c-format
+i18n("360x360 DPI DMT");
+// xgettext: no-c-format
+i18n("720x720 DPI");
+// xgettext: no-c-format
+i18n("Low Quality");
+// xgettext: no-c-format
+i18n("720×720dpi, back print film");
+// xgettext: no-c-format
+i18n("720×720dpi, coated paper");
+// xgettext: no-c-format
+i18n("720×720dpi, glossy paper");
+// xgettext: no-c-format
+i18n("720×720dpi, high-gloss paper");
+// xgettext: no-c-format
+i18n("720×720dpi, high resolution paper");
+// xgettext: no-c-format
+i18n("720×720dpi, plain paper");
+// xgettext: no-c-format
+i18n("720×720dpi, transparency film");
+// xgettext: no-c-format
+i18n("Black and Photo catridges");
+// xgettext: no-c-format
+i18n("600×600dpi, iron-on transfer sheets, normal quality");
+// xgettext: no-c-format
+i18n("600×600dpi, plain paper, normal quality");
+// xgettext: no-c-format
+i18n("600×600dpi, transparencies, normal quality");
+// xgettext: no-c-format
+i18n("1200×1200dpi, glossy photo cards, high quality");
+// xgettext: no-c-format
+i18n("1200×1200dpi, high gloss photo paper, high quality");
+// xgettext: no-c-format
+i18n("1200×1200dpi, professional photo paper, highest quality");
+// xgettext: no-c-format
+i18n("300x300 DPI DMT");
+// xgettext: no-c-format
+i18n("600x600 DPI DMT");
+// xgettext: no-c-format
+i18n("Monochrome, fast");
+// xgettext: no-c-format
+i18n("Monochrome, Floyd-Steinberg");
+// xgettext: no-c-format
+i18n("ESC/P2 Encoding");
+// xgettext: no-c-format
+i18n("Delta Row");
+// xgettext: no-c-format
+i18n("Run Length");
+// xgettext: no-c-format
+i18n("Uncompressed");
+// xgettext: no-c-format
+i18n("Preconfiguration file");
+// xgettext: no-c-format
+i18n("stcolor");
+// xgettext: no-c-format
+i18n("none");
+// xgettext: no-c-format
+i18n("Head motion");
+// xgettext: no-c-format
+i18n("Initialization values for dithering");
+// xgettext: no-c-format
+i18n("Uniform");
+// xgettext: no-c-format
+i18n("Random");
+// xgettext: no-c-format
+i18n("Weaving");
+// xgettext: no-c-format
+i18n("Microweave (Printer internal)");
+// xgettext: no-c-format
+i18n("Softweave (Driver internal)");
+// xgettext: no-c-format
+i18n("360×360dpi, 32-bit CMYK");
+// xgettext: no-c-format
+i18n("3360×360dpi, 4-bit, PostScript halftoning, weaved");
+// xgettext: no-c-format
+i18n("720×720dpi, 32-bit CMYK, weaved");
+// xgettext: no-c-format
+i18n("Color, Floyd-Steinberg, CMYK, better");
+// xgettext: no-c-format
+i18n("Color, fast, CMYK");
+// xgettext: no-c-format
+i18n("Color, modif. Floyd-Steinberg, CMYK, faster");
+// xgettext: no-c-format
+i18n("Color, fast, RGB");
+// xgettext: no-c-format
+i18n("Color, Floyd-Steinberg, RGB");
+// xgettext: no-c-format
+i18n("Color, Floyd-Steinberg, CMYK, simpler");
+// xgettext: no-c-format
+i18n("Color, Stefan-Singer algorithm, RGB");
+// xgettext: no-c-format
+i18n("Back Light Film");
+// xgettext: no-c-format
+i18n("Glossy Film");
+// xgettext: no-c-format
+i18n("Inkjet Paper");
+// xgettext: no-c-format
+i18n("Matte Paper");
+// xgettext: no-c-format
+i18n("Photo Quality Glossy Paper");
+// xgettext: no-c-format
+i18n("Photo Quality Inkjet Paper");
+// xgettext: no-c-format
+i18n("Plain Paper Fast Load");
+// xgettext: no-c-format
+i18n("Premium Glossy Photo Paper");
+// xgettext: no-c-format
+i18n("720 DPI Microweave");
+// xgettext: no-c-format
+i18n("360 DPI High Quality");
+// xgettext: no-c-format
+i18n("360 DPI Softweave");
+// xgettext: no-c-format
+i18n("720 DPI Highest Quality");
+// xgettext: no-c-format
+i18n("720 DPI High Quality");
+// xgettext: no-c-format
+i18n("720 DPI Softweave");
+// xgettext: no-c-format
+i18n("1440 x 1440 DPI Emulated");
+// xgettext: no-c-format
+i18n("1440 x 2880 DPI Emulated");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Highest Quality");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Softweave");
+// xgettext: no-c-format
+i18n("B3 ISO");
+// xgettext: no-c-format
+i18n("B3 JIS");
+// xgettext: no-c-format
+i18n("RA2");
+// xgettext: no-c-format
+i18n("360 dpi, plain paper");
+// xgettext: no-c-format
+i18n("720 dpi, plain paper");
+// xgettext: no-c-format
+i18n("1440×720dpi, inkjet paper");
+// xgettext: no-c-format
+i18n("360×360dpi, plain paper, grayscale");
+// xgettext: no-c-format
+i18n("720×720dpi, inkjet paper");
+// xgettext: no-c-format
+i18n("720×720dpi, plain paper, grayscale");
+// xgettext: no-c-format
+i18n("1440×720dpi, inkjet paper, grayscale");
+// xgettext: no-c-format
+i18n("720x720dpi, plain paper");
+// xgettext: no-c-format
+i18n("360×360dpi");
+// xgettext: no-c-format
+i18n("720×720dpi");
+// xgettext: no-c-format
+i18n("Four color CMYK printing");
+// xgettext: no-c-format
+i18n("Six color CMYKcm printing");
+// xgettext: no-c-format
+i18n("75x75 dpi");
+// xgettext: no-c-format
+i18n("150x150 dpi");
+// xgettext: no-c-format
+i18n("2-passes x-weaving");
+// xgettext: no-c-format
+i18n("3-passes x-weaving");
+// xgettext: no-c-format
+i18n("2400 DPI");
+// xgettext: no-c-format
+i18n("Reset printer before printing");
+// xgettext: no-c-format
+i18n("NoReset");
+// xgettext: no-c-format
+i18n("Reset");
+// xgettext: no-c-format
+i18n("Power saving mode after printing");
+// xgettext: no-c-format
+i18n("PowerSaving");
+// xgettext: no-c-format
+i18n("NoPowerSaving");
+// xgettext: no-c-format
+i18n("Bits per R/G/B component");
+// xgettext: no-c-format
+i18n("HalfLetter");
+// xgettext: no-c-format
+i18n("B6-C4");
+// xgettext: no-c-format
+i18n("C7-6");
+// xgettext: no-c-format
+i18n("ArchA");
+// xgettext: no-c-format
+i18n("flsa");
+// xgettext: no-c-format
+i18n("flse");
+// xgettext: no-c-format
+i18n("Small paperback");
+// xgettext: no-c-format
+i18n("Penguin small paperback");
+// xgettext: no-c-format
+i18n("Penguin large paperback");
+// xgettext: no-c-format
+i18n("Long 3");
+// xgettext: no-c-format
+i18n("Long 4");
+// xgettext: no-c-format
+i18n("Kaku");
+// xgettext: no-c-format
+i18n("Commercial 10");
+// xgettext: no-c-format
+i18n("A2 Invitation");
+// xgettext: no-c-format
+i18n("ColorModel");
+// xgettext: no-c-format
+i18n("Line Art");
+// xgettext: no-c-format
+i18n("Solid Tone");
+// xgettext: no-c-format
+i18n("Photograph");
+// xgettext: no-c-format
+i18n("MediaType");
+// xgettext: no-c-format
+i18n("Transparencies");
+// xgettext: no-c-format
+i18n("Dither");
+// xgettext: no-c-format
+i18n("300 DPI x 600 DPI");
+// xgettext: no-c-format
+i18n("600 DPI high quality");
+// xgettext: no-c-format
+i18n("600 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("1200 DPI high quality");
+// xgettext: no-c-format
+i18n("1200 DPI highest quality");
+// xgettext: no-c-format
+i18n("1200 DPI  Unidirectional");
+// xgettext: no-c-format
+i18n("2400 DPI x 1200 DPI");
+// xgettext: no-c-format
+i18n("2400 DPI x 1200 DPI high quality");
+// xgettext: no-c-format
+i18n("2400 DPI x 1200 DPI highest quality");
+// xgettext: no-c-format
+i18n("ArchB");
+// xgettext: no-c-format
+i18n("Envelopes");
+// xgettext: no-c-format
+i18n("Premium Luster Photo Paper");
+// xgettext: no-c-format
+i18n("180 x 120 DPI");
+// xgettext: no-c-format
+i18n("180 x 120 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("360 x 120 DPI");
+// xgettext: no-c-format
+i18n("360 x 120 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("360 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("360 DPI Microweave");
+// xgettext: no-c-format
+i18n("360 DPI Microweave Unidirectional");
+// xgettext: no-c-format
+i18n("360 DPI High Quality Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI Softweave");
+// xgettext: no-c-format
+i18n("720 x 360 DPI Softweave Unidirectional");
+// xgettext: no-c-format
+i18n("720 DPI Microweave Unidirectional");
+// xgettext: no-c-format
+i18n("720 DPI Softweave Unidirectional");
+// xgettext: no-c-format
+i18n("720 DPI High Quality Unidirectional");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Softweave Unidirectional");
+// xgettext: no-c-format
+i18n("Roll Feed");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI Softweave");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI Softweave Unidirectional");
+// xgettext: no-c-format
+i18n("180 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("360 DPI Full Overlap");
+// xgettext: no-c-format
+i18n("360 DPI Full Overlap Unidirectional");
+// xgettext: no-c-format
+i18n("360 DPI FOL2");
+// xgettext: no-c-format
+i18n("360 DPI FOL2 Unidirectional");
+// xgettext: no-c-format
+i18n("360 DPI MW2");
+// xgettext: no-c-format
+i18n("360 DPI MW2 Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI Default");
+// xgettext: no-c-format
+i18n("720 x 360 DPI Default Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI Microweave");
+// xgettext: no-c-format
+i18n("720 x 360 DPI Microweave Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI FOL");
+// xgettext: no-c-format
+i18n("720 x 360 DPI FOL Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI FOL2");
+// xgettext: no-c-format
+i18n("720 x 360 DPI FOL2 Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI MW2");
+// xgettext: no-c-format
+i18n("720 x 360 DPI MW2 Unidirectional");
+// xgettext: no-c-format
+i18n("720 DPI Full Overlap");
+// xgettext: no-c-format
+i18n("720 DPI Full Overlap Unidirectional");
+// xgettext: no-c-format
+i18n("720 DPI Four Pass");
+// xgettext: no-c-format
+i18n("720 DPI Four Pass Unidirectional");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Microweave");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Microweave Unidirectional");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI FOL");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI FOL Unidirectional");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Four Pass");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Four Pass Unidirectional");
+// xgettext: no-c-format
+i18n("20x24");
+// xgettext: no-c-format
+i18n("20x30");
+// xgettext: no-c-format
+i18n("24x30");
+// xgettext: no-c-format
+i18n("24x36");
+// xgettext: no-c-format
+i18n("SRA2");
+// xgettext: no-c-format
+i18n("B2 ISO");
+// xgettext: no-c-format
+i18n("B2 JIS");
+// xgettext: no-c-format
+i18n("C2");
+// xgettext: no-c-format
+i18n("ArchC");
+// xgettext: no-c-format
+i18n("ArchD");
+// xgettext: no-c-format
+i18n("30x40");
+// xgettext: no-c-format
+i18n("RA0");
+// xgettext: no-c-format
+i18n("RA1");
+// xgettext: no-c-format
+i18n("SRA0");
+// xgettext: no-c-format
+i18n("SRA1");
+// xgettext: no-c-format
+i18n("B0 ISO");
+// xgettext: no-c-format
+i18n("B1 ISO");
+// xgettext: no-c-format
+i18n("B0 JIS");
+// xgettext: no-c-format
+i18n("B1 JIS");
+// xgettext: no-c-format
+i18n("C0");
+// xgettext: no-c-format
+i18n("C1");
+// xgettext: no-c-format
+i18n("ArchE");
+// xgettext: no-c-format
+i18n("1200 x 1200 DPI");
+// xgettext: no-c-format
+i18n("1200 x 600 DPI");
+// xgettext: no-c-format
+i18n("13 Inch Roll Paper");
+// xgettext: no-c-format
+i18n("1440 x 1440 DPI");
+// xgettext: no-c-format
+i18n("1440 x 1440 DPI Highest Quality");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI");
+// xgettext: no-c-format
+i18n("1440 x 720 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("150 x 150 DPI");
+// xgettext: no-c-format
+i18n("180 DPI Economy Draft");
+// xgettext: no-c-format
+i18n("180 x 180 DPI");
+// xgettext: no-c-format
+i18n("210 mm Roll Paper");
+// xgettext: no-c-format
+i18n("22 Inch Roll Paper");
+// xgettext: no-c-format
+i18n("2400 x 1200 DPI");
+// xgettext: no-c-format
+i18n("240x240 DPI");
+// xgettext: no-c-format
+i18n("24 Inch Roll Paper");
+// xgettext: no-c-format
+i18n("2880 x 1440 DPI");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI");
+// xgettext: no-c-format
+i18n("2880 x 720 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("300 dpi, Color, Black & Color Cartr., Plain Paper");
+// xgettext: no-c-format
+i18n("300 dpi, Color, Color Cartr., Plain Paper");
+// xgettext: no-c-format
+i18n("300 dpi, Grayscale, Black Cartr., Plain Paper");
+// xgettext: no-c-format
+i18n("300 dpi, Grayscale, Black & Color Cartr., Plain Paper");
+// xgettext: no-c-format
+i18n("300 dpi, Photo, Black & Color Cartr., Photo Paper");
+// xgettext: no-c-format
+i18n("300 dpi, Photo, Photo & Color Cartr., Premium Paper");
+// xgettext: no-c-format
+i18n("300 x 300 DPI");
+// xgettext: no-c-format
+i18n("300 x 600 DPI");
+// xgettext: no-c-format
+i18n("360×360dpi, 4-bit, PostScript halftoning, weaved");
+// xgettext: no-c-format
+i18n("360 x 120 DPI Economy Draft");
+// xgettext: no-c-format
+i18n("360 x 180 DPI");
+// xgettext: no-c-format
+i18n("360 x 180 DPI Draft");
+// xgettext: no-c-format
+i18n("360 x 240 DPI");
+// xgettext: no-c-format
+i18n("360 x 240 DPI Draft");
+// xgettext: no-c-format
+i18n("360 x 360 DPI");
+// xgettext: no-c-format
+i18n("360x720 DPI");
+// xgettext: no-c-format
+i18n("360 x 90 DPI");
+// xgettext: no-c-format
+i18n("360 x 90 DPI Fast Economy Draft");
+// xgettext: no-c-format
+i18n("36 Inch Roll Paper");
+// xgettext: no-c-format
+i18n("3-ink color (Color ink cartridge)");
+// xgettext: no-c-format
+i18n("400x400 DPI");
+// xgettext: no-c-format
+i18n("44 Inch Roll Paper");
+// xgettext: no-c-format
+i18n("4 Inch Roll Paper");
+// xgettext: no-c-format
+i18n("4-ink color (Both ink cartridges)");
+// xgettext: no-c-format
+i18n("5 Inch Roll Paper");
+// xgettext: no-c-format
+i18n("600 dpi, Color, Black & Color Cartr., Plain Paper");
+// xgettext: no-c-format
+i18n("600 dpi, Color, Color Cartr., Plain Paper");
+// xgettext: no-c-format
+i18n("600 dpi, Grayscale, Black & Color Cartr., Plain Paper");
+// xgettext: no-c-format
+i18n("600 dpi, Photo, Black & Color Cartr., Photo Paper");
+// xgettext: no-c-format
+i18n("600 x 300 DPI");
+// xgettext: no-c-format
+i18n("600 x 600 DPI");
+// xgettext: no-c-format
+i18n("720 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 360 DPI");
+// xgettext: no-c-format
+i18n("720 x 360 DPI Unidirectional");
+// xgettext: no-c-format
+i18n("720 x 720 DPI");
+// xgettext: no-c-format
+i18n("89 mm Roll Paper");
+// xgettext: no-c-format
+i18n("90 x 90 DPI");
+// xgettext: no-c-format
+i18n("90x90 DPI");
+// xgettext: no-c-format
+i18n("A4, Colour");
+// xgettext: no-c-format
+i18n("Always");
+// xgettext: no-c-format
+i18n("B6 (ISO)");
+// xgettext: no-c-format
+i18n("Behaviour when Toner Low");
+// xgettext: no-c-format
+i18n("Bidirectional Printing");
+// xgettext: no-c-format
+i18n("Black and Blue (Cyan, Magenta, Black)");
+// xgettext: no-c-format
+i18n("Black and Cyan");
+// xgettext: no-c-format
+i18n("Black and Green (Cyan, Yellow, Black)");
+// xgettext: no-c-format
+i18n("Black and Magenta");
+// xgettext: no-c-format
+i18n("Black and Red (Magenta, Yellow, Black)");
+// xgettext: no-c-format
+i18n("Black and Yellow");
+// xgettext: no-c-format
+i18n("Black cartridge");
+// xgettext: no-c-format
+i18n("Black Cartridge");
+// xgettext: no-c-format
+i18n("Black correction (Cyan reduction)");
+// xgettext: no-c-format
+i18n("Black for any colour");
+// xgettext: no-c-format
+i18n("Black ink density adjustment.");
+// xgettext: no-c-format
+i18n("Black Level");
+// xgettext: no-c-format
+i18n("Black Level (Black cartr. only)");
+// xgettext: no-c-format
+i18n("Blue (Cyan and Magenta)");
+// xgettext: no-c-format
+i18n("Bottom Margin");
+// xgettext: no-c-format
+i18n("Brightness");
+// xgettext: no-c-format
+i18n("Color cartridge");
+// xgettext: no-c-format
+i18n("Color (Draft Quality)");
+// xgettext: no-c-format
+i18n("Color (High Quality)");
+// xgettext: no-c-format
+i18n("Color, normal quality, optional colour correction");
+// xgettext: no-c-format
+i18n("Colour");
+// xgettext: no-c-format
+i18n("Colour Cartridge");
+// xgettext: no-c-format
+i18n("Colour correction");
+// xgettext: no-c-format
+i18n("Colour Correction");
+// xgettext: no-c-format
+i18n("ColourCorrection");
+// xgettext: no-c-format
+i18n("Colour Correction Mode");
+// xgettext: no-c-format
+i18n("Colour Depth");
+// xgettext: no-c-format
+i18n("Colour, fast, CMYK");
+// xgettext: no-c-format
+i18n("Colour, fast, RGB");
+// xgettext: no-c-format
+i18n("Colour, Floyd-Steinberg, CMYK, better");
+// xgettext: no-c-format
+i18n("Colour, Floyd-Steinberg, CMYK, simpler");
+// xgettext: no-c-format
+i18n("Colour, Floyd-Steinberg, RGB");
+// xgettext: no-c-format
+i18n("Colour Intensity");
+// xgettext: no-c-format
+i18n("Colour mode");
+// xgettext: no-c-format
+i18n("Colour Mode");
+// xgettext: no-c-format
+i18n("Colour, modif. Floyd-Steinberg, CMYK, faster");
+// xgettext: no-c-format
+i18n("Colours one page at a time");
+// xgettext: no-c-format
+i18n("Colour, Stefan-Singer algorithm, RGB");
+// xgettext: no-c-format
+i18n("Colours to be printed");
+// xgettext: no-c-format
+i18n("Colours to be used");
+// xgettext: no-c-format
+i18n("Composed Black");
+// xgettext: no-c-format
+i18n("Compressed Data Transfer");
+// xgettext: no-c-format
+i18n("Continuous-tone photographs");
+// xgettext: no-c-format
+i18n("Contrast Level");
+// xgettext: no-c-format
+i18n("CorrectBlack");
+// xgettext: no-c-format
+i18n("Curl Correction");
+// xgettext: no-c-format
+i18n("Cyan");
+// xgettext: no-c-format
+i18n("Cyan Level");
+// xgettext: no-c-format
+i18n("Cyan Level (Colour cartr. only)");
+// xgettext: no-c-format
+i18n("Default behaviour");
+// xgettext: no-c-format
+i18n("Distance even/odd nozzles left cartr.");
+// xgettext: no-c-format
+i18n("Distance even/odd nozzles right cartr.");
+// xgettext: no-c-format
+i18n("Dither Algorithm");
+// xgettext: no-c-format
+i18n("Dithering Pixels Per Inch");
+// xgettext: no-c-format
+i18n("Dithering PPI");
+// xgettext: no-c-format
+i18n("Do not care about cartridges, colours one page at a time");
+// xgettext: no-c-format
+i18n("Do not care about cartridges, each line in all colours");
+// xgettext: no-c-format
+i18n("DoNotOverlay");
+// xgettext: no-c-format
+i18n("Driver Default");
+// xgettext: no-c-format
+i18n("Each line in all colours");
+// xgettext: no-c-format
+i18n("Executive, 1200x600 DPI");
+// xgettext: no-c-format
+i18n("Executive, 600x600 DPI");
+// xgettext: no-c-format
+i18n("FaceDown");
+// xgettext: no-c-format
+i18n("FaceUp");
+// xgettext: no-c-format
+i18n("First pass of an overlayed printout");
+// xgettext: no-c-format
+i18n("Five Color Photo Composite");
+// xgettext: no-c-format
+i18n("Floyd-Steinberg (not recommended for MicroDry)");
+// xgettext: no-c-format
+i18n("Foolscap A");
+// xgettext: no-c-format
+i18n("Foolscap E");
+// xgettext: no-c-format
+i18n("Four Color Standard");
+// xgettext: no-c-format
+i18n("FullPaint");
+// xgettext: no-c-format
+i18n("Gamma");
+// xgettext: no-c-format
+i18n("Gamma Black");
+// xgettext: no-c-format
+i18n("Gamma (Blue Component)");
+// xgettext: no-c-format
+i18n("Gamma Correction");
+// xgettext: no-c-format
+i18n("Gamma correction on saturation HSV component");
+// xgettext: no-c-format
+i18n("Gamma Cyan");
+// xgettext: no-c-format
+i18n("Gamma (Green Component)");
+// xgettext: no-c-format
+i18n("Gamma Magenta");
+// xgettext: no-c-format
+i18n("Gamma (Red Component)");
+// xgettext: no-c-format
+i18n("Gamma Yellow");
+// xgettext: no-c-format
+i18n("Generic DeskJet");
+// xgettext: no-c-format
+i18n("Glossy finishing");
+// xgettext: no-c-format
+i18n("Glossy Photo");
+// xgettext: no-c-format
+i18n("Gray Scale");
+// xgettext: no-c-format
+i18n("Grayscale (Black ink cartridge)");
+// xgettext: no-c-format
+i18n("Green (Cyan and Yellow)");
+// xgettext: no-c-format
+i18n("Hagaki");
+// xgettext: no-c-format
+i18n("Halftone (recommended for general use)");
+// xgettext: no-c-format
+i18n("Head Separation");
+// xgettext: no-c-format
+i18n("Horiz. Alignm. betw. Cartr.");
+// xgettext: no-c-format
+i18n("Horizontal (X-)Shift (in dots)");
+// xgettext: no-c-format
+i18n("Horz. align. betw. cartr.");
+// xgettext: no-c-format
+i18n("HP LaserJet 4L");
+// xgettext: no-c-format
+i18n("HP LaserJet III series");
+// xgettext: no-c-format
+i18n("HP LaserJet II series");
+// xgettext: no-c-format
+i18n("IgnoreSize");
+// xgettext: no-c-format
+i18n("Ilford Heavy Paper");
+// xgettext: no-c-format
+i18n("Ink Drying Time (sec)");
+// xgettext: no-c-format
+i18n("Inverse Printing");
+// xgettext: no-c-format
+i18n("Japanese Kaku envelope #4");
+// xgettext: no-c-format
+i18n("Japanese long envelope #3");
+// xgettext: no-c-format
+i18n("Japanese long envelope #4");
+// xgettext: no-c-format
+i18n("Job Type");
+// xgettext: no-c-format
+i18n("KeepBlack");
+// xgettext: no-c-format
+i18n("Keep pure black");
+// xgettext: no-c-format
+i18n("Landscape");
+// xgettext: no-c-format
+i18n("Last pass of an overlayed printout");
+// xgettext: no-c-format
+i18n("Left Margin");
+// xgettext: no-c-format
+i18n("Left Skip (in pixels)");
+// xgettext: no-c-format
+i18n("Letter, Colour");
+// xgettext: no-c-format
+i18n("Limit Error from Paper Colour Correction");
+// xgettext: no-c-format
+i18n("Line Feed Adjustment");
+// xgettext: no-c-format
+i18n("Magenta");
+// xgettext: no-c-format
+i18n("Magenta Level");
+// xgettext: no-c-format
+i18n("Magenta Level (Colour cartr. only)");
+// xgettext: no-c-format
+i18n("Memory Limit (Bytes)");
+// xgettext: no-c-format
+i18n("Middle pass of an overlayed printout");
+// xgettext: no-c-format
+i18n("Monochrome printing, re-usable economy black cartridge");
+// xgettext: no-c-format
+i18n("Monochrome printing, standard black cartridge");
+// xgettext: no-c-format
+i18n("More than 4 colours, colours one page at a time");
+// xgettext: no-c-format
+i18n("Never");
+// xgettext: no-c-format
+i18n("Next Job is spot colour page");
+// xgettext: no-c-format
+i18n("NextNotSpotColourPage");
+// xgettext: no-c-format
+i18n("NextSpotColourPage");
+// xgettext: no-c-format
+i18n("NoColourCorrection");
+// xgettext: no-c-format
+i18n("No dithering");
+// xgettext: no-c-format
+i18n("noGlossy");
+// xgettext: no-c-format
+i18n("Non-Bleed");
+// xgettext: no-c-format
+i18n("None (RGB --> CMY)");
+// xgettext: no-c-format
+i18n("Normal Quality Colour (4-ink)");
+// xgettext: no-c-format
+i18n("Number of Copies");
+// xgettext: no-c-format
+i18n("Number of passes per line");
+// xgettext: no-c-format
+i18n("Orientation");
+// xgettext: no-c-format
+i18n("Oufuku-Hagaki");
+// xgettext: no-c-format
+i18n("Output Type");
+// xgettext: no-c-format
+i18n("Page Output");
+// xgettext: no-c-format
+i18n("Paper Colour (Blue Component)");
+// xgettext: no-c-format
+i18n("Paper Colour (Green Component)");
+// xgettext: no-c-format
+i18n("Paper Colour (Red Component)");
+// xgettext: no-c-format
+i18n("PartialPaint");
+// xgettext: no-c-format
+i18n("Photo CcMmY Color");
+// xgettext: no-c-format
+i18n("Photo CcMmYK Color");
+// xgettext: no-c-format
+i18n("Photo (CMYK, gamma correction, ...)");
+// xgettext: no-c-format
+i18n("Photo Full Bleed");
+// xgettext: no-c-format
+i18n("Photo Quality Colour (6-ink)");
+// xgettext: no-c-format
+i18n("Plain (RGB --> CMYK)");
+// xgettext: no-c-format
+i18n("Portrait");
+// xgettext: no-c-format
+i18n("Presentation Quality");
+// xgettext: no-c-format
+i18n("Primarily solid colors or smooth gradients");
+// xgettext: no-c-format
+i18n("Printer Model");
+// xgettext: no-c-format
+i18n("Printer's paper size");
+// xgettext: no-c-format
+i18n("Print next job over the current one");
+// xgettext: no-c-format
+i18n("Printout Quality");
+// xgettext: no-c-format
+i18n("Quality, Ink Type, Media Type");
+// xgettext: no-c-format
+i18n("Randomization of Floyd-Steinberg");
+// xgettext: no-c-format
+i18n("Raw CMYK");
+// xgettext: no-c-format
+i18n("Red (Magenta and Yellow)");
+// xgettext: no-c-format
+i18n("RequireSize");
+// xgettext: no-c-format
+i18n("Reset after job");
+// xgettext: no-c-format
+i18n("Right Margin");
+// xgettext: no-c-format
+i18n("RIT Control");
+// xgettext: no-c-format
+i18n("RITOff");
+// xgettext: no-c-format
+i18n("RITOn");
+// xgettext: no-c-format
+i18n("Roll Paper");
+// xgettext: no-c-format
+i18n("Shift output horizontally (in 1/300 inch)");
+// xgettext: no-c-format
+i18n("Shift output vertically (in 1/300 inch)");
+// xgettext: no-c-format
+i18n("Simple Colour (4 bpp)");
+// xgettext: no-c-format
+i18n("Single Pass Job");
+// xgettext: no-c-format
+i18n("Six Color Photo");
+// xgettext: no-c-format
+i18n("Smooth Printing (BC-02 cartridge)");
+// xgettext: no-c-format
+i18n("Solid Colors");
+// xgettext: no-c-format
+i18n("Square (experimental, not recommended)");
+// xgettext: no-c-format
+i18n("StpBrightness");
+// xgettext: no-c-format
+i18n("StpGamma");
+// xgettext: no-c-format
+i18n("StpSaturation");
+// xgettext: no-c-format
+i18n("Super B 13x19");
+// xgettext: no-c-format
+i18n("Thick Paper/Card Board");
+// xgettext: no-c-format
+i18n("This Job is spot colour page");
+// xgettext: no-c-format
+i18n("ThisNotSpotColourPage");
+// xgettext: no-c-format
+i18n("ThisSpotColourPage");
+// xgettext: no-c-format
+i18n("Three Color Composite");
+// xgettext: no-c-format
+i18n("Toner Density");
+// xgettext: no-c-format
+i18n("TonerSaving");
+// xgettext: no-c-format
+i18n("Top Margin");
+// xgettext: no-c-format
+i18n("Top Skip (in pixels)");
+// xgettext: no-c-format
+i18n("Transparency Paper");
+// xgettext: no-c-format
+i18n("Tray 10");
+// xgettext: no-c-format
+i18n("Tray 11");
+// xgettext: no-c-format
+i18n("Tray 12");
+// xgettext: no-c-format
+i18n("Tray 13");
+// xgettext: no-c-format
+i18n("Tray 14");
+// xgettext: no-c-format
+i18n("Tray 15");
+// xgettext: no-c-format
+i18n("Tray 8");
+// xgettext: no-c-format
+i18n("Tray 9");
+// xgettext: no-c-format
+i18n("Use multi-colour ribbon");
+// xgettext: no-c-format
+i18n("UseMultiColourRibbon");
+// xgettext: no-c-format
+i18n("UseStandardRibbons");
+// xgettext: no-c-format
+i18n("Vert. align. betw. cartr.");
+// xgettext: no-c-format
+i18n("Vert. Alignm. betw. Cartr.");
+// xgettext: no-c-format
+i18n("Vertical (Y-)Shift (in dots)");
+// xgettext: no-c-format
+i18n("X Offset");
+// xgettext: no-c-format
+i18n("Yellow Level");
+// xgettext: no-c-format
+i18n("Yellow Level (Colour cartr. only)");
+// xgettext: no-c-format
+i18n("Y Offset");
diff --git a/tdeprint/descriptions/readppd b/tdeprint/descriptions/readppd
new file mode 100755
index 000000000..2c7621a36
--- /dev/null
+++ b/tdeprint/descriptions/readppd
@@ -0,0 +1,83 @@
+#! /usr/bin/perl
+
+$inui = 0;
+$tag = "";
+$linenr = 0;
+
+$incomdata = 0;
+$aftername = 0;
+$aftercomment = 0;
+$commentvalue = "";
+
+while ( <STDIN> )
+{
+  $linenr = $linenr + 1;
+
+     # *LanguageVersion: Check for English
+     if (/^\*LanguageVersion:\s+([\w\-]+)\s*$/) {
+          last if ($1 ne "English");
+     }
+
+     # *OpenUI *InputSlot/Media Source: PickOne
+     if ($_ =~ "^*OpenUI") {
+	  $inui = 1;
+	  $_ =~ s/^\*OpenUI\s*//;
+	  $tag = $_;
+	  $tag =~ s%:.*$%%;
+	  $tag =~ s%/.*%%;
+	  chomp($tag);
+	  $_ =~ s%\s*:.*$%%;
+	  $_ =~ s%\s*\*%%;
+	  $_ =~ s%^[^/]*/%%;
+	  $_ =~ s%\"%\\\"%g;
+	  chomp($_);
+	  print "i18n(\"", $_, "\");\n";
+	  next;
+     }
+
+     if ($_ =~ "^*CloseUI") {
+	  $inui = 0;
+	  $tag = "";
+     }
+
+     if ($inui) {
+       if (substr($_, 0, length($tag)) eq $tag) {
+	 $_ =~ s%\s*:.*$%%;
+	 $_ =~ s%\*\S*\s*%%;
+	 $_ =~ s%^[^/]*/%%;
+	 $_ =~ s%\"%\\\"%g;
+	 chomp($_);
+	 print "i18n(\"", $_, "\");\n";
+       }
+     }
+
+     # *% COMDATA #$VAR1 = {: Start looking for 'name','comment','type'
+     if (/^\*\% COMDATA \#\$VAR1/) {
+       $incomdata = 1;
+     }
+
+     # *% COMDATA #      'name': Continue looking for 'comment'
+     if ($incomdata && /^\*\% COMDATA \#\s*\'name\'/) {
+       $aftername    = 1;
+       $aftercomment = 0;
+     }
+
+     # *% COMDATA #      'comment' => '*': Continue looking for 'type'
+     if ($aftername && /^\*\% COMDATA \#\s*\'comment\'\s*\=\>\s*\'(.*)\'/) {
+       $aftername    = 0;
+       $aftercomment = 1;
+       $commentvalue = $1;
+     }
+
+     # *% COMDATA #      'type' => '*':
+     # Output comment if type is 'int', 'float' or 'string'
+     if ($aftercomment && /^\*\% COMDATA \#\s*\'type\'\s*\=\>\s*\'(.*)\'/) {
+       $aftername    = 0;
+       $aftercomment = 0;
+       if ($1 eq "int" || $1 eq "float" || $1 eq "string") {
+         print "i18n(\"$commentvalue\");\n";
+       }
+     }
+	
+   
+}
diff --git a/tdeprint/descriptions/sortthem.cpp b/tdeprint/descriptions/sortthem.cpp
new file mode 100644
index 000000000..9adc284b1
--- /dev/null
+++ b/tdeprint/descriptions/sortthem.cpp
@@ -0,0 +1,28 @@
+
+
+#include <tqstring.h>
+#include <tqstringlist.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+
+
+int main(int argc, char **argv) {
+TQStringList have;
+char buf[1024];
+
+
+   while (!feof(stdin)) {
+      char *cline = fgets(buf, 1000, stdin);
+      if (!cline) break;
+      if (!have.contains(cline)) {
+         have << cline;
+         fprintf(stdout, "%s", cline);
+      }
+   }
+
+
+return 0;
+}
+
+
diff --git a/tdeprint/kjobviewer/CMakeLists.txt b/tdeprint/kjobviewer/CMakeLists.txt
new file mode 100644
index 000000000..332fa7fc4
--- /dev/null
+++ b/tdeprint/kjobviewer/CMakeLists.txt
@@ -0,0 +1,37 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+add_definitions( -D_KDEPRINT_COMPILE )
+
+include_directories(
+  ${CMAKE_CURRENT_BINARY_DIR}
+  ${TDE_INCLUDE_DIR}
+  ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+  ${TQT_LIBRARY_DIRS}
+)
+
+
+##### other data ################################
+
+tde_install_icons( kjobviewer )
+install( FILES kjobviewer.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+install( FILES kjobviewerui.rc DESTINATION ${DATA_INSTALL_DIR}/kjobviewer )
+
+
+##### kjobviewer (tdeinit) ######################
+
+tde_add_tdeinit_executable( kjobviewer AUTOMOC
+  SOURCES kjobviewer.cpp main.cpp
+  LINK tdeprint_management-shared
+)
diff --git a/tdeprint/kjobviewer/Makefile.am b/tdeprint/kjobviewer/Makefile.am
new file mode 100644
index 000000000..5362ad033
--- /dev/null
+++ b/tdeprint/kjobviewer/Makefile.am
@@ -0,0 +1,24 @@
+AM_CPPFLAGS = -D_KDEPRINT_COMPILE
+
+INCLUDES = $(all_includes)
+
+bin_PROGRAMS=
+lib_LTLIBRARIES=
+tdeinit_LTLIBRARIES = kjobviewer.la
+
+kjobviewer_la_SOURCES = kjobviewer.cpp main.cpp
+kjobviewer_la_METASOURCES = AUTO
+kjobviewer_la_LIBADD = -ltdeprint_management $(LIB_KDEUI)
+kjobviewer_la_LDFLAGS = -module -avoid-version $(all_libraries) $(KDE_RPATH)
+
+noinst_HEADERS = kjobviewer.h
+
+KDE_ICON = kjobviewer
+
+rc_DATA = kjobviewerui.rc
+rcdir = $(kde_datadir)/kjobviewer
+
+xdg_apps_DATA = kjobviewer.desktop
+
+messages: rc.cpp
+	$(XGETTEXT) *.cpp -o $(podir)/kjobviewer.pot
diff --git a/tdeprint/kjobviewer/hi128-app-kjobviewer.png b/tdeprint/kjobviewer/hi128-app-kjobviewer.png
new file mode 100644
index 000000000..7db5f56b1
Binary files /dev/null and b/tdeprint/kjobviewer/hi128-app-kjobviewer.png differ
diff --git a/tdeprint/kjobviewer/hi16-app-kjobviewer.png b/tdeprint/kjobviewer/hi16-app-kjobviewer.png
new file mode 100644
index 000000000..d6defce21
Binary files /dev/null and b/tdeprint/kjobviewer/hi16-app-kjobviewer.png differ
diff --git a/tdeprint/kjobviewer/hi22-app-kjobviewer.png b/tdeprint/kjobviewer/hi22-app-kjobviewer.png
new file mode 100644
index 000000000..a71ee2817
Binary files /dev/null and b/tdeprint/kjobviewer/hi22-app-kjobviewer.png differ
diff --git a/tdeprint/kjobviewer/hi32-app-kjobviewer.png b/tdeprint/kjobviewer/hi32-app-kjobviewer.png
new file mode 100644
index 000000000..d554b554f
Binary files /dev/null and b/tdeprint/kjobviewer/hi32-app-kjobviewer.png differ
diff --git a/tdeprint/kjobviewer/hi48-app-kjobviewer.png b/tdeprint/kjobviewer/hi48-app-kjobviewer.png
new file mode 100644
index 000000000..13adbd006
Binary files /dev/null and b/tdeprint/kjobviewer/hi48-app-kjobviewer.png differ
diff --git a/tdeprint/kjobviewer/hi64-app-kjobviewer.png b/tdeprint/kjobviewer/hi64-app-kjobviewer.png
new file mode 100644
index 000000000..5d22d215e
Binary files /dev/null and b/tdeprint/kjobviewer/hi64-app-kjobviewer.png differ
diff --git a/tdeprint/kjobviewer/hisc-app-kjobviewer.svgz b/tdeprint/kjobviewer/hisc-app-kjobviewer.svgz
new file mode 100644
index 000000000..f40b4bdfa
Binary files /dev/null and b/tdeprint/kjobviewer/hisc-app-kjobviewer.svgz differ
diff --git a/tdeprint/kjobviewer/kjobviewer.cpp b/tdeprint/kjobviewer/kjobviewer.cpp
new file mode 100644
index 000000000..0fb23e7ba
--- /dev/null
+++ b/tdeprint/kjobviewer/kjobviewer.cpp
@@ -0,0 +1,233 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#include "kjobviewer.h"
+#include <tdeprint/kmjobviewer.h>
+#include <tdeprint/kmtimer.h>
+#include <tdeprint/kmmanager.h>
+
+#include <stdlib.h>
+#include <tqpixmap.h>
+#include <kcmdlineargs.h>
+#include <kaboutdata.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <ksystemtray.h>
+#include <kdebug.h>
+#include <kiconloader.h>
+#include <kpopupmenu.h>
+#include <kwin.h>
+#include <kstartupinfo.h>
+
+class JobTray : public KSystemTray
+{
+public:
+	JobTray(KJobViewerApp *parent, const char *name = 0)
+		: KSystemTray(0, name), m_app(parent) { connect( this, TQT_SIGNAL( quitSelected() ), kapp, TQT_SLOT( quit() ) ); }
+protected:
+	void mousePressEvent(TQMouseEvent*);
+private:
+	KJobViewerApp	*m_app;
+};
+
+void JobTray::mousePressEvent(TQMouseEvent *e)
+{
+	if (e->button() == Qt::RightButton)
+		KSystemTray::mousePressEvent(e);
+	else if (m_app->m_views.count() > 0)
+	{
+		KPopupMenu	menu;
+		TQDictIterator<KMJobViewer>	it(m_app->m_views);
+		TQPtrList<KMJobViewer>	list;
+		list.setAutoDelete(false);
+		for (; it.current(); ++it)
+		{
+			menu.insertItem(KWin::icon(it.current()->winId(), 16, 16), it.currentKey(), list.count());
+			if (it.current()->isVisible())
+				menu.setItemChecked(list.count(), true);
+			list.append(it.current());
+		}
+
+		if (list.count() == 1)
+		{
+			// special case, old behavior
+			if (list.first()->isVisible())
+				list.first()->hide();
+			else
+				list.first()->show();
+		}
+		else
+		{
+			int	choice = menu.exec(mapToGlobal(e->pos()));
+			if (choice != -1)
+			{
+				KMJobViewer	*view = list.tqat(choice);
+				if (view->isVisible())
+					KWin::activateWindow(view->winId());
+				else
+					view->show();
+			}
+		}
+	}
+}
+
+//-------------------------------------------------------------
+
+KJobViewerApp::KJobViewerApp() : KUniqueApplication()
+{
+	m_views.setAutoDelete(true);
+	m_tray = 0;
+	m_timer = 0;
+}
+
+KJobViewerApp::~KJobViewerApp()
+{
+}
+
+int KJobViewerApp::newInstance()
+{
+	initialize();
+	return 0;
+}
+
+void KJobViewerApp::initialize()
+{
+	KCmdLineArgs	*args = KCmdLineArgs::parsedArgs();
+	bool 	showIt = args->isSet("show");
+	bool	all = args->isSet("all");
+	QString	prname = args->getOption("d");
+	KMJobViewer	*view(0);
+
+	if (!m_timer)
+	{
+		m_timer = KMTimer::self();
+		connect(m_timer,TQT_SIGNAL(timeout()),TQT_SLOT(slotTimer()));
+	}
+
+	if (prname.isEmpty() && all)
+		prname = i18n("All Printers");
+
+        if (prname.isEmpty()) {
+            KMPrinter *prt =  KMManager::self()->defaultPrinter();
+            if (prt)
+                prname = prt->printerName();
+            else {
+                KMessageBox::error(0, i18n("There is no default printer. Start with --all to see all printers."), i18n("Print Error"));
+                exit(1);
+                return;
+            }
+        }
+
+        if (!m_tray)
+        {
+            m_tray = new JobTray(this);
+            m_tray->setPixmap(m_tray->loadIcon("fileprint"));
+
+        }
+
+        view = m_views.find(prname);
+        if (!view)
+        {
+            kdDebug() << "creating new view: " << TQString(prname) << endl;
+            view = new KMJobViewer();
+            connect(view, TQT_SIGNAL(jobsShown(KMJobViewer*,bool)), TQT_SLOT(slotJobsShown(KMJobViewer*,bool)));
+            connect(view, TQT_SIGNAL(printerChanged(KMJobViewer*,const TQString&)), TQT_SLOT(slotPrinterChanged(KMJobViewer*,const TQString&)));
+            connect(view, TQT_SIGNAL(refreshClicked()), TQT_SLOT(slotTimer()));
+            connect(view, TQT_SIGNAL(viewerDestroyed(KMJobViewer*)), TQT_SLOT(slotViewerDestroyed(KMJobViewer*)));
+            m_views.insert(prname, view);
+        }
+
+        if (showIt)
+        {
+            view->show();
+            m_tray->show();
+        }
+        view->setPrinter(prname);
+
+	//m_timer->release(true);
+	m_timer->delay(10);
+}
+
+void KJobViewerApp::slotJobsShown(KMJobViewer *view, bool hasJobs)
+{
+	if (!hasJobs && !view->isVisible() && !view->isSticky())
+	{
+		kdDebug() << "removing view: " << view->printer() << endl;
+		// the window is hidden and doesn't have any job shown -> destroy it
+		// closing won't have any effect as the KMJobViewer overload closeEvent()
+		m_views.remove(view->printer());
+	}
+
+	if (m_views.count() > 0)
+	{
+		if (!m_tray->isVisible())
+			m_tray->show();
+	}
+	else {
+		KStartupInfo::appStarted();
+		kapp->quit();
+	}
+}
+
+void KJobViewerApp::slotTimer()
+{
+	// Update printer list
+	KMManager::self()->printerList(true);
+
+	// Refresh views. The first time, job list is reloaded,
+	// other views will simply use reloaded job list
+	bool	trigger(true);
+	TQDictIterator<KMJobViewer>	it(m_views);
+	for (; it.current(); ++it, trigger=false)
+		it.current()->refresh(trigger);
+}
+
+void KJobViewerApp::slotPrinterChanged(KMJobViewer *view, const TQString& prname)
+{
+	KMJobViewer	*other = m_views.find(prname);
+	if (other)
+	{
+		if (other->isVisible())
+			KWin::activateWindow(other->winId());
+		else
+			other->show();
+	}
+	else
+	{
+		m_views.take(view->printer());
+		m_views.insert(prname, view);
+		view->setPrinter(prname);
+	}
+}
+
+void KJobViewerApp::reload()
+{
+	// trigger delayed refresh in all views
+	m_timer->delay(10);
+}
+
+void KJobViewerApp::slotViewerDestroyed(KMJobViewer *view)
+{
+	if (view)
+		m_views.take(view->printer());
+	if (m_views.count() == 0)
+		kapp->quit();
+}
+
+#include "kjobviewer.moc"
diff --git a/tdeprint/kjobviewer/kjobviewer.desktop b/tdeprint/kjobviewer/kjobviewer.desktop
new file mode 100644
index 000000000..965ed49bf
--- /dev/null
+++ b/tdeprint/kjobviewer/kjobviewer.desktop
@@ -0,0 +1,92 @@
+[Desktop Entry]
+Exec=kjobviewer --all --show %i %m
+Icon=kjobviewer
+Terminal=false
+Type=Application
+X-KDE-StartupNotify=true
+
+Name=KJobViewer
+Name[bn]=কে-জব-ভিউয়ার
+Name[csb]=Przezérnik pòlétów drëkera
+Name[cy]=KGwelyddSwyddi
+Name[ja]=K ジョブビューア
+Name[nds]=Opgavenkieker
+Name[ne]=KJob दर्शक
+Name[pl]=Przeglądarka zadań drukowania
+Name[pt_BR]=Trabalhos de Impressão
+Name[ro]=Vizualizor lucrări de tipărit
+Name[rw]=K-IkigaragazaUmurimo
+Name[sk]=Prehliadač úloh
+Name[sv]=K-jobbvisare
+Name[ta]=கேபணி காட்சியாளன்
+Name[tg]=Намоишгари корҳо
+Name[vi]=Trình theo dõi Tác vụ In ấn
+GenericName=Print Jobs
+GenericName[af]=Drukker Werke
+GenericName[be]=Заданні друку
+GenericName[bg]=Задания за печат
+GenericName[bn]=মুদ্রণ তালিকা
+GenericName[bs]=Zadaci štampe
+GenericName[ca]=Treballs d'impressió
+GenericName[cs]=Tiskové úlohy
+GenericName[csb]=Pòlétë drëkera
+GenericName[cy]=Swyddi Argraffu
+GenericName[da]=Udskriv job
+GenericName[de]=Druckaufträge
+GenericName[el]=Εργασίες εκτύπωσης
+GenericName[eo]=Printtaskoj
+GenericName[es]=Trabajos de impresión
+GenericName[et]=Printeri tööd
+GenericName[eu]=Inprimaketa lanak
+GenericName[fa]=چاپ کارها
+GenericName[fi]=Tulostustyöt
+GenericName[fr]=Tâches d'impressions
+GenericName[fy]=printtaken
+GenericName[ga]=Jabanna Priontála
+GenericName[gl]=Traballos de Impresión
+GenericName[he]=עבודות הדפסה
+GenericName[hr]=Zadaci ispisivanja
+GenericName[hu]=Nyomtatási feladatok
+GenericName[is]=Prentverk
+GenericName[it]=Lavori di stampa
+GenericName[ja]=印刷ジョブ
+GenericName[ka]=ბეჭდვის დავალება
+GenericName[kk]=Басып шығару тапсырмалары
+GenericName[km]=ការងារ​បោះពុម្ព
+GenericName[lt]=Spausdinimo užduotys
+GenericName[mk]=Задачи за печатење
+GenericName[ms]=Cetak Kerja
+GenericName[nb]=Utskriftsjobber
+GenericName[nds]=Druckopgaven
+GenericName[ne]=मुद्रण कार्य
+GenericName[nl]=Afdruktaken
+GenericName[nn]=Utskriftsjobbar
+GenericName[pa]=ਛਪਾਈ ਕੰਮ
+GenericName[pl]=Zadania drukowania
+GenericName[pt]=Tarefas de Impressão
+GenericName[pt_BR]=Tarefas de Impressão
+GenericName[ro]=Lucrări de tipărit
+GenericName[ru]=Задания печати
+GenericName[rw]=Gucapa Imirimo
+GenericName[se]=Čálihanbarggut
+GenericName[sk]=Tlačové úlohy
+GenericName[sl]=Tiskalniška opravila
+GenericName[sr]=Послови штампе
+GenericName[sr@Latn]=Poslovi štampe
+GenericName[sv]=Skrivarjobb
+GenericName[ta]=அச்சுப் பணிகள்
+GenericName[te]=ప్రచురణ పనులు
+GenericName[tg]=Корҳои чопгар
+GenericName[th]=งานพิมพ์
+GenericName[tr]=Yazdırma Görevleri
+GenericName[tt]=Bastıru Eşläre
+GenericName[uk]=Задачі друку
+GenericName[uz]=Bosib chiqarish vazifalari
+GenericName[uz@cyrillic]=Босиб чиқариш вазифалари
+GenericName[vi]=Tác vụ In ấn
+GenericName[wa]=Bouyes d' imprimaedje
+GenericName[zh_CN]=打印任务
+GenericName[zh_TW]=列印工作
+
+X-DCOP-ServiceType=Unique
+Categories=Qt;KDE;Utility;X-KDE-Utilities-Peripherals;
diff --git a/tdeprint/kjobviewer/kjobviewer.h b/tdeprint/kjobviewer/kjobviewer.h
new file mode 100644
index 000000000..967262de2
--- /dev/null
+++ b/tdeprint/kjobviewer/kjobviewer.h
@@ -0,0 +1,57 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#ifndef KJOBVIEWER_H
+#define KJOBVIEWER_H
+
+#include <kuniqueapplication.h>
+#include <tdeprint/kpreloadobject.h>
+#include <tqdict.h>
+
+class KMJobViewer;
+class KMTimer;
+class JobTray;
+
+class KJobViewerApp : public KUniqueApplication, public KPReloadObject
+{
+	Q_OBJECT
+	friend class JobTray;
+public:
+	KJobViewerApp();
+	virtual ~KJobViewerApp();
+
+	virtual int newInstance();
+
+protected:
+	void initialize();
+	void reload();
+
+protected slots:
+	void slotJobsShown(KMJobViewer*, bool);
+	void slotTimer();
+	void slotPrinterChanged(KMJobViewer*, const TQString&);
+	void slotViewerDestroyed(KMJobViewer*);
+
+private:
+	TQDict<KMJobViewer>	m_views;
+	JobTray	*m_tray;
+	KMTimer	*m_timer;
+};
+
+#endif
diff --git a/tdeprint/kjobviewer/kjobviewerui.rc b/tdeprint/kjobviewer/kjobviewerui.rc
new file mode 100644
index 000000000..83592dfc6
--- /dev/null
+++ b/tdeprint/kjobviewer/kjobviewerui.rc
@@ -0,0 +1,35 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="kjobviewer">
+<MenuBar>
+  <Menu name="jobs"><text>&amp;Jobs</text>
+    <Action name="job_hold" />
+    <Action name="job_resume" />
+    <Separator />
+    <Action name="job_remove" />
+    <Action name="job_move" />
+    <Separator />
+    <Action name="job_restart" />
+  </Menu>
+  <Menu name="filter"><text>F&amp;ilter</text>
+    <Action name="filter_modify" />
+    <Action name="view_completed" />
+    <Action name="view_user_jobs" />
+  </Menu>
+</MenuBar>
+<ToolBar name="mainToolBar">
+  <Action name="job_hold" />
+  <Action name="job_resume" />
+  <Separator />
+  <Action name="job_remove" />
+  <Action name="job_move" />
+  <Separator />
+  <Action name="job_restart" />
+  <Separator />
+  <Action name="filter_modify" />
+  <Action name="view_completed" />
+  <Action name="view_user_jobs" />
+  <Action name="view_username" />
+  <Separator />
+  <Action name="refresh" />
+</ToolBar>
+</kpartgui>
diff --git a/tdeprint/kjobviewer/main.cpp b/tdeprint/kjobviewer/main.cpp
new file mode 100644
index 000000000..e75a00e13
--- /dev/null
+++ b/tdeprint/kjobviewer/main.cpp
@@ -0,0 +1,49 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#include <kapplication.h>
+#include <kcmdlineargs.h>
+#include <kaboutdata.h>
+
+#include "kjobviewer.h"
+#include <klocale.h>
+#include <stdlib.h>
+
+static KCmdLineOptions options[] = {
+	{ "d <printer-name>", I18N_NOOP("The printer for which jobs are requested"), 0 },
+	{ "noshow", I18N_NOOP("Show job viewer at startup"), 0},
+	{ "all", I18N_NOOP("Show jobs for all printers"), 0},
+        KCmdLineLastOption
+};
+
+
+extern "C" int KDE_EXPORT kdemain(int argc, char *argv[])
+{
+	KAboutData	aboutData("kjobviewer",I18N_NOOP("KJobViewer"),"0.1",I18N_NOOP("A print job viewer"),KAboutData::License_GPL,"(c) 2001, Michael Goffioul", 0, "http://printing.kde.org");
+	aboutData.addAuthor("Michael Goffioul",0,"tdeprint@swing.be");
+	KCmdLineArgs::init(argc,argv,&aboutData);
+	KCmdLineArgs::addCmdLineOptions(options);
+	KJobViewerApp::addCmdLineOptions();
+
+	if (!KJobViewerApp::start())
+		exit(0);
+
+	KJobViewerApp	a;
+	return a.exec();
+}
diff --git a/tdeprint/kprinter/CMakeLists.txt b/tdeprint/kprinter/CMakeLists.txt
new file mode 100644
index 000000000..0849ebe12
--- /dev/null
+++ b/tdeprint/kprinter/CMakeLists.txt
@@ -0,0 +1,34 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+include( CheckFunctionExists )
+check_function_exists( sigset HAVE_SIGACTION )
+check_function_exists( sigaction HAVE_SIGSET )
+
+add_definitions( -D_KDEPRINT_COMPILE )
+
+include_directories(
+  ${CMAKE_CURRENT_BINARY_DIR}
+  ${TDE_INCLUDE_DIR}
+  ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+  ${TQT_LIBRARY_DIRS}
+)
+
+
+##### kprinter (tdeinit) ########################
+
+tde_add_tdeinit_executable( kprinter AUTOMOC
+  SOURCES main.cpp printwrapper.cpp
+  LINK tdeprint-shared
+)
diff --git a/tdeprint/kprinter/Makefile.am b/tdeprint/kprinter/Makefile.am
new file mode 100644
index 000000000..4cab98880
--- /dev/null
+++ b/tdeprint/kprinter/Makefile.am
@@ -0,0 +1,18 @@
+AM_CPPFLAGS = -D_KDEPRINT_COMPILE
+
+INCLUDES = $(all_includes)
+
+bin_PROGRAMS = 
+lib_LTLIBRARIES = 
+tdeinit_LTLIBRARIES = kprinter.la
+
+kprinter_la_SOURCES = main.cpp printwrapper.cpp
+kprinter_la_LIBADD = -ltdeprint
+kprinter_la_LDFLAGS = -module -avoid-version $(all_libraries) $(KDE_RPATH)
+kprinter_la_METASOURCES = AUTO
+
+noinst_HEADERS = printwrapper.h
+
+messages:
+	$(XGETTEXT) *.cpp -o $(podir)/kprinter.pot
+
diff --git a/tdeprint/kprinter/configure.in.in b/tdeprint/kprinter/configure.in.in
new file mode 100644
index 000000000..dd0767216
--- /dev/null
+++ b/tdeprint/kprinter/configure.in.in
@@ -0,0 +1 @@
+AC_CHECK_FUNCS(sigset sigaction)
diff --git a/tdeprint/kprinter/kprinter.desktop b/tdeprint/kprinter/kprinter.desktop
new file mode 100644
index 000000000..bb2de4735
--- /dev/null
+++ b/tdeprint/kprinter/kprinter.desktop
@@ -0,0 +1,107 @@
+[Desktop Entry]
+Exec=kprinter
+Icon=kjobviewer
+Terminal=false
+Type=Application
+DocPath=tdeprint/index.html
+X-KDE-StartupNotify=true
+Name=KPrinter
+Name[af]=KDrukker
+Name[cy]=KArgraffydd
+Name[eo]=KPrintilo
+Name[fy]=Kprinter
+Name[hi]=केप्रिंटर
+Name[ka]=პრინტერი
+Name[lo]=ເຄື່ອງພິມ - K
+Name[ne]=K मुद्रक
+Name[nl]=Kprinter
+Name[nso]=KSegatisi
+Name[pa]=ਕੇ-ਪਰਿੰਟਰ
+Name[ru]=Принтер
+Name[rw]=K-Mucapyi
+Name[sv]=Kskrivare
+Name[ta]=Kஅச்சியந்திரம்
+Name[te]=కెప్రింటర్
+Name[tg]=KЧопгар
+Name[th]=เครื่องพิมพ์ K
+Name[tr]=KYazıcı
+Name[ven]=Phirinthara ya K
+Name[vi]=In ấn KDE
+Name[wa]=KScrirece (KPrinter)
+GenericName=Printing Tool
+GenericName[af]=Drukker Program
+GenericName[ar]=أداة الطباعة
+GenericName[be]=Інструмент друку
+GenericName[bg]=Инструмент за печат
+GenericName[bn]=মুদ্রণ টুল
+GenericName[br]=Ostilh moulañ
+GenericName[bs]=Alat za štampu
+GenericName[ca]=Eina per a imprimir
+GenericName[cs]=Tiskový nástroj
+GenericName[csb]=Nôrzãdze do sprôwianiô wëdrëkama
+GenericName[cy]=Erfyn Argraffu
+GenericName[da]=Udskriftsværktøj
+GenericName[de]=Druckprogramm
+GenericName[el]=Εργαλείο εκτύπωσης
+GenericName[eo]=Ilo por printado
+GenericName[es]=Herramienta de impresión
+GenericName[et]=Trükkimise rakendus
+GenericName[eu]=Imprimatzeko tresna
+GenericName[fa]=ابزار چاپ
+GenericName[fi]=Tulostustyökalu
+GenericName[fr]=Outil d'impression
+GenericName[fy]=printprogramma
+GenericName[ga]=Uirlis Priontála
+GenericName[gl]=Ferramenta de Impresión
+GenericName[he]=כלי הדפסה
+GenericName[hi]=प्रिंटर औज़ार
+GenericName[hr]=Alata za ispisivanje
+GenericName[hu]=Nyomtatáskezelő
+GenericName[is]=Prentunartól
+GenericName[it]=Strumento di stampa
+GenericName[ja]=印刷ツール
+GenericName[ka]=საბეჭდი უტილიტა
+GenericName[kk]=Басып шығару құралы
+GenericName[km]=ឧបករណ៍​បោះពុម្ព
+GenericName[lo]=ເຄື່ອງມືລະບົບການພິມ์
+GenericName[lt]=Spausdinimo priemonė
+GenericName[lv]=Drukāšanas Rīks
+GenericName[mk]=Печатарска алатка
+GenericName[mn]=Хэвлэх програм
+GenericName[ms]=Alat Pencetakan
+GenericName[mt]=Għodda tal-ipprintjar
+GenericName[nb]=Verktøy for skriverbehandling
+GenericName[nds]=Druckwarktüüch
+GenericName[ne]=मुद्रण उपकरण
+GenericName[nl]=Afdrukprogramma
+GenericName[nn]=Utskriftsverktøy
+GenericName[nso]=Sebereka sa Kgatiso
+GenericName[pa]=ਛਪਾਈ (ਪਰਿੰਟਿੰਗ) ਸੰਦ
+GenericName[pl]=Narzędzie do zarządzania wydrukiem
+GenericName[pt]=Ferramenta de Impressão
+GenericName[pt_BR]=Ferramenta de Impressão
+GenericName[ro]=Utilitar de tipărire
+GenericName[ru]=Утилита печати
+GenericName[rw]=Igikoresho cyo Gucapa 
+GenericName[se]=Čálihanreaidu
+GenericName[sk]=Tlačový nástroj
+GenericName[sl]=Orodje za tiskanje
+GenericName[sr]=Алат за штампу
+GenericName[sr@Latn]=Alat za štampu
+GenericName[sv]=Skrivarverktyg
+GenericName[ta]=அச்சசியந்திர கருவி
+GenericName[tg]=Обзори Чоп
+GenericName[th]=เครื่องมือระบบการพิมพ์
+GenericName[tr]=Yazdırma Aracı
+GenericName[tt]=Bastıru Qoralı
+GenericName[uk]=Засіб друку
+GenericName[uz]=Bosib chiqarish vositasi
+GenericName[uz@cyrillic]=Босиб чиқариш воситаси
+GenericName[ven]=Tshishumiswa tshau phirintha
+GenericName[vi]=Công cụ In ấn
+GenericName[wa]=Usteye d' imprimaedje
+GenericName[xh]=Isixhobo Sokushicilela
+GenericName[zh_CN]=打印工具
+GenericName[zh_TW]=列印工具
+GenericName[zu]=Ithuluzi Lokushicelela
+
diff --git a/tdeprint/kprinter/main.cpp b/tdeprint/kprinter/main.cpp
new file mode 100644
index 000000000..5d1667cee
--- /dev/null
+++ b/tdeprint/kprinter/main.cpp
@@ -0,0 +1,58 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#include "printwrapper.h"
+
+#include <tqtimer.h>
+#include <kapplication.h>
+#include <kcmdlineargs.h>
+#include <klocale.h>
+
+static KCmdLineOptions options[] =
+{
+	{ "c",                I18N_NOOP("Make an internal copy of the files to print"), 0},
+	{ "P", 0, 0 },
+	{ "d <printer>",      I18N_NOOP("Printer/destination to print on"),      0},
+	{ "J", 0, 0 },
+	{ "t <title>",        I18N_NOOP("Title/Name for the print job" ),              0},
+	{ "#", 0, 0 },
+	{ "n <number>",       I18N_NOOP("Number of copies"), 0 },
+	{ "o <option=value>", I18N_NOOP("Printer option" ),                       0},
+	{ "j <mode>",         I18N_NOOP("Job output mode (gui, console, none)" ), "gui"},
+	{ "system <printsys>",I18N_NOOP("Print system to use (lpd, cups)" ), 0},
+	{ "stdin",            I18N_NOOP("Allow printing from STDIN" ),         0},
+	{ "nodialog",         I18N_NOOP("Do not show the print dialog (print directly)"), 0},
+	{ "+file(s)",	      I18N_NOOP("Files to load" ),                        0},
+	KCmdLineLastOption
+};
+
+extern "C" int KDE_EXPORT kdemain(int argc, char *argv[])
+{
+	KCmdLineArgs::init(argc,argv,"kprinter",I18N_NOOP("KPrinter"),I18N_NOOP("A printer tool for KDE" ),"0.0.1");
+	KCmdLineArgs::addCmdLineOptions(options);
+	KApplication	app;
+	PrintWrapper	*wrap = new PrintWrapper;
+	app.setMainWidget(wrap);
+	TQTimer::singleShot(10,wrap,TQT_SLOT(slotPrint()));
+
+	int	result = app.exec();
+	delete wrap;
+
+	return result;
+}
diff --git a/tdeprint/kprinter/printwrapper.cpp b/tdeprint/kprinter/printwrapper.cpp
new file mode 100644
index 000000000..effa3dea3
--- /dev/null
+++ b/tdeprint/kprinter/printwrapper.cpp
@@ -0,0 +1,403 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#include "printwrapper.h"
+
+#include <unistd.h>
+#include <signal.h>
+#include <sys/time.h>
+
+#include <tqstring.h>
+#include <tqstringlist.h>
+#include <stdlib.h>
+#include <kmessagebox.h>
+#include <tqfile.h>
+#include <tqtimer.h>
+#include <tqregexp.h>
+#include <tqsocketnotifier.h>
+
+#include <kapplication.h>
+#include <kcmdlineargs.h>
+#include <klocale.h>
+#include <kstandarddirs.h>
+#include <kio/netaccess.h>
+#include <kurl.h>
+#include <kdebug.h>
+#include <ktempfile.h>
+
+#include <kprinter.h>
+#include <tdeprint/kmmanager.h>
+#include <tdeprint/kmprinter.h>
+#include <tdeprint/kprintdialog.h>
+
+void signal_handler(int);
+TQString tempFile;
+bool fromStdin = false;
+char job_output = 0;	// 0: dialog, 1: console, 2: none
+char readchar = '\0';
+bool dataread = false;
+bool docopy = false;
+
+void showmsgdialog(const TQString& msg, int type = 0)
+{
+	switch (type)
+	{
+	   case 0: KMessageBox::information(NULL,msg,i18n("Print Information")); break;
+	   case 1: KMessageBox::sorry(NULL,msg,i18n("Print Warning")); break;
+	   case 2: KMessageBox::error(NULL,msg,i18n("Print Error")); break;
+	}
+}
+
+void showmsgconsole(const TQString& msg, int type = 0)
+{
+	TQString	errmsg = TQString::tqfromLatin1("%1 : ").arg((type == 0 ? i18n("Print info") : (type == 1 ? i18n("Print warning") : i18n("Print error"))));
+	kdDebug() << errmsg << msg << endl;
+}
+
+void showmsg(const TQString& msg, int type = 0)
+{
+	switch (job_output) {
+	   case 0: showmsgdialog(msg,type); break;
+	   case 1: showmsgconsole(msg,type); break;
+	   default: break;
+	}
+}
+
+void errormsg(const TQString& msg)
+{
+	showmsg(msg,2);
+	exit(1);
+}
+
+void signal_handler(int s)
+{
+	TQFile::remove(tempFile);
+	exit(s);
+}
+
+TQString copyfile( const TQString& filename )
+{
+	kdDebug( 500 ) << "Copying file " << filename << endl;
+	TQString result;
+	TQFile f( filename );
+	if ( f.open( IO_ReadOnly ) )
+	{
+		KTempFile temp;
+		temp.setAutoDelete( false );
+		TQFile *tf = temp.file();
+		if ( tf )
+		{
+			char buffer[ 0xFFFF ];
+			int b = 0;
+			while ( ( b = f.readBlock( buffer, 0xFFFF ) ) > 0 )
+			{
+				if ( tf->writeBlock( buffer, b ) != b )
+					break;
+			}
+			tf->close();
+			if ( b > 0 )
+				temp.setAutoDelete( true );
+			else
+			{
+				kdDebug( 500 ) << "File copied to " << temp.name() << endl;
+				result = temp.name();
+			}
+		}
+		else
+			temp.setAutoDelete( true );
+		f.close();
+	}
+	return result;
+}
+
+//******************************************************************************************************
+
+PrintWrapper::PrintWrapper()
+: TQWidget(), force_stdin(false), check_stdin(true)
+{
+}
+
+void PrintWrapper::slotPrint()
+{
+	KCmdLineArgs	*args = KCmdLineArgs::parsedArgs();
+
+#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
+	struct sigaction action;
+#endif /* HAVE_SIGACTION && !HAVE_SIGSET*/
+
+	// read variables from command line
+	TQString	printer = args->getOption("d");
+	TQString	title = args->getOption("t");
+	int	ncopies = TQString(args->getOption("n")).toInt();
+	TQString	job_mode = args->getOption("j");
+	TQString	system = args->getOption("system");
+	QCStringList	optlist = args->getOptionList("o");
+	TQMap<TQString,TQString>	opts;
+	KURL::List	files;
+	TQStringList	filestoprint;
+	force_stdin = args->isSet("stdin");
+	docopy = args->isSet( "c" );
+	bool	nodialog = !(args->isSet("dialog"));
+	
+	if( isatty( 0 ))
+	    {
+	    kdDebug( 500 ) << "stdin is a terminal, disabling it" << endl;
+	    check_stdin = false;
+	    }
+
+	// parse options
+	for (QCStringList::ConstIterator it=optlist.begin(); it!=optlist.end(); ++it)
+	{
+		TQStringList	l = TQStringList::split('=',TQString(*it),false);
+		if (l.count() >= 1) opts[l[0]] = (l.count() == 2 ? l[1] : TQString::null);
+	}
+
+	// read file list
+	for (int i=0; i<args->count(); i++)
+		files.append(args->url(i));
+
+	// some clean-up
+	args->clear();
+
+	// set default values if necessary
+	if (job_mode == "console") job_output = 1;
+	else if (job_mode == "none") job_output = 2;
+	else job_output = 0;
+
+	// some checking
+	if ( files.count() > 0)
+	{
+		check_stdin = false;
+		
+		if( force_stdin )
+		{
+			showmsg(i18n("A file has been specified on the command line. Printing from STDIN will be disabled."), 1);
+			force_stdin = false;
+		}
+	}
+	if (nodialog && files.count() == 0 &&!force_stdin && !check_stdin )
+	{
+		errormsg(i18n("When using '--nodialog', you must at least specify one file to print or use the '--stdin' flag."));
+	}
+	
+	if( check_stdin )
+	{ // check if there's any input on stdin
+	    fd_set in;
+	    struct timeval tm;
+	    tm.tv_sec = 0;
+	    tm.tv_usec = 0;
+	    FD_ZERO( &in );
+	    FD_SET( 0, &in );
+	    if( select( 1, &in, NULL, NULL, &tm ) )
+	    { // we have data on stdin
+			if ( read( 0, &readchar, 1 ) > 0 )
+			{
+				force_stdin = true;
+				check_stdin = false;
+				dataread = true;
+				kdDebug( 500 ) << "input detected on stdin" << endl;
+			}
+			else
+			{
+				force_stdin = check_stdin = false;
+				kdDebug( 500 ) << "stdin closed and empty" << endl;
+			}
+	    } 
+		else
+			kdDebug( 500 ) << "no input on stdin at startup" << endl;
+	}
+
+        // force_stdin ? or also check_stdin ?
+	KPrinter::ApplicationType	dialog_mode = (force_stdin || nodialog ? KPrinter::StandAlone : KPrinter::StandAlonePersistent);
+	KPrinter::setApplicationType(dialog_mode);
+	if (!force_stdin)
+		KPrinter::addStandardPage(KPrinter::FilesPage);
+
+	KPrinter	kprinter;
+	if (nodialog)
+	{
+		KMPrinter	*prt(0);
+		KMManager	*mgr = KMManager::self();
+
+		mgr->printerList(false);
+		if (!printer.isEmpty())
+			prt = mgr->findPrinter(printer);
+		else
+			prt = mgr->defaultPrinter();
+
+		if (prt == 0)
+			errormsg(i18n("The specified printer or the default printer could not be found."));
+		else if (!prt->autoConfigure(&kprinter))
+			errormsg(i18n("Operation aborted."));
+	}
+	else if (!printer.isEmpty())
+		kprinter.setSearchName(printer);
+	kprinter.setDocName(title);
+	kprinter.initOptions(opts);
+	kprinter.setOption("kde-filelist", files.toStringList().join("@@"));
+	kdDebug( 500 ) << kprinter.option( "kde-filelist" ) << endl;
+	if (ncopies > 0)
+		kprinter.setNumCopies(ncopies);
+
+	if (nodialog)
+		slotPrintRequested(&kprinter);
+	else
+	{
+		dlg = KPrintDialog::printerDialog(&kprinter, 0);
+		if (dlg)
+		{
+			connect(dlg, TQT_SIGNAL(printRequested(KPrinter*)), TQT_SLOT(slotPrintRequested(KPrinter*)));
+			if( check_stdin )
+			{
+			    notif = new TQSocketNotifier( 0, TQSocketNotifier::Read, TQT_TQOBJECT(this) );
+			    connect( notif, TQT_SIGNAL( activated( int )), this, TQT_SLOT( slotGotStdin()));
+			    kdDebug( 500 ) << "waiting for input on stdin" << endl;
+			}
+			dlg->exec();
+			delete dlg;
+		}
+		else
+			errormsg(i18n("Unable to construct the print dialog."));
+	}
+
+	TQTimer::singleShot(10,kapp,TQT_SLOT(quit()));
+}
+
+void hack( KPrintDialog* dlg );
+
+void PrintWrapper::slotGotStdin()
+{
+	delete notif;
+	if ( read( 0, &readchar, 1 ) > 0 )
+	{
+		force_stdin = true;
+		check_stdin = false;
+		dataread = true;
+		dlg->enableDialogPage( 0, false );
+		kdDebug( 500 ) << "got delayed input on stdin" << endl;
+	}
+}
+
+void PrintWrapper::slotPrintRequested(KPrinter *kprinter)
+{
+	// re-initialize docName
+	kprinter->setDocName(TQString::null);
+
+	// download files if needed
+	TQStringList	files = TQStringList::split("@@", kprinter->option("kde-filelist"), false), filestoprint;
+	for (TQStringList::ConstIterator it=files.begin(); it!=files.end(); ++it)
+	{
+		TQString	tmpFile;
+		KURL	url = KURL::fromPathOrURL(*it);
+		kdDebug( 500 ) << url.url() << endl;
+		if (KIO::NetAccess::download(url, tmpFile, this))
+		{
+			filestoprint << tmpFile;
+			kprinter->setDocName(url.fileName());
+		}
+	}
+
+	if (filestoprint.count() > 1)
+		kprinter->setDocName(i18n("Multiple files (%1)").arg(filestoprint.count()));
+	else if (kprinter->docName().isEmpty())
+		kprinter->setDocName(force_stdin ? "<STDIN>" : "KPrinter");
+	if (filestoprint.count() == 0)
+	{
+		// At this point force_stdin should be true
+		if (!force_stdin)
+			errormsg(i18n("Nothing to print."));
+
+		// print from stdin
+
+#  if defined(HAVE_SIGSET)
+		sigset(SIGHUP, signal_handler);
+		sigset(SIGINT, signal_handler);
+		sigset(SIGTERM, signal_handler);
+#  elif defined(HAVE_SIGACTION)
+		memset(&action, 0, sizeof(action));
+		action.sa_handler = signal_handler;
+
+		sigaction(SIGHUP, &action, NULL);
+		sigaction(SIGINT, &action, NULL);
+		sigaction(SIGTERM, &action, NULL);
+#  else
+		signal(SIGHUP, signal_handler);
+		signal(SIGINT, signal_handler);
+		signal(SIGTERM, signal_handler);
+#  endif
+
+		tempFile = locateLocal("tmp","kprinter_")+TQString::number(getpid());
+		filestoprint.append(tempFile);
+		fromStdin = true;
+		FILE	*fout = fopen(TQFile::encodeName(filestoprint[0]),"w");
+		if (!fout) errormsg(i18n("Unable to open temporary file."));
+		char	buffer[8192];
+		int	s;
+
+		// check for previously read data
+		if ( dataread )
+			fwrite( &readchar, 1, 1, fout );
+		// read stdin and write to temporary file
+		while ((s=fread(buffer,1,sizeof(buffer),stdin)) > 0)
+			fwrite(buffer,1,s,fout);
+
+		s = ftell(fout);
+		fclose(fout);
+		if (s <= 0)
+		{
+			showmsg(i18n("Stdin is empty, no job sent."), 2);
+			TQFile::remove(filestoprint[0]);
+			return;
+		}
+	}
+	else if ( docopy )
+	{
+		for ( TQStringList::Iterator it=filestoprint.begin(); it!=filestoprint.end(); ++it )
+		{
+			TQString tmp = copyfile( *it );
+			if ( tmp.isEmpty() )
+			{
+				errormsg( i18n( "Unable to copy file %1." ).arg( *it ) );
+				return;
+			}
+			*it = tmp;
+		}
+		fromStdin = true;
+	}
+	else
+		fromStdin = false;
+
+	// print all files. Remove it after if printing from
+	// stdin. "kprinter" shouldn't remove temp file itself,
+	// otherwise the temp file might get removed before the
+	// print process finishes.
+	bool ok = kprinter->printFiles(filestoprint, fromStdin);
+
+	if (!ok)
+		showmsg(i18n("Error while printing files"), 2);
+	// Do not show this dialog anymore. Code sould be removed definitively
+	// if nobody complains.
+	/*else
+	{
+		QString	msg = i18n("<nobr>File(s) sent to printer <b>%1</b>.</nobr>").arg(kprinter->printerName());
+		showmsg(msg,0);
+	}*/
+}
+
+#include "printwrapper.moc"
diff --git a/tdeprint/kprinter/printwrapper.h b/tdeprint/kprinter/printwrapper.h
new file mode 100644
index 000000000..e34e8d964
--- /dev/null
+++ b/tdeprint/kprinter/printwrapper.h
@@ -0,0 +1,49 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#ifndef PRINTWRAPPER_H
+#define PRINTWRAPPER_H
+
+#include <tqwidget.h>
+
+class KPrinter;
+class KPrintDialog;
+class TQSocketNotifier;
+
+class PrintWrapper : public TQWidget
+{
+	Q_OBJECT
+public:
+	PrintWrapper();
+
+public slots:
+	void slotPrint();
+	void slotPrintRequested(KPrinter*);
+
+private slots:
+	void slotGotStdin();
+		
+private:
+	bool force_stdin;
+	bool check_stdin;
+	KPrintDialog* dlg;
+	TQSocketNotifier* notif;
+};
+
+#endif
diff --git a/tdeprint/printmgr/CMakeLists.txt b/tdeprint/printmgr/CMakeLists.txt
new file mode 100644
index 000000000..af68abb3f
--- /dev/null
+++ b/tdeprint/printmgr/CMakeLists.txt
@@ -0,0 +1,37 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+add_definitions( -D_KDEPRINT_COMPILE )
+
+include_directories(
+  ${CMAKE_CURRENT_BINARY_DIR}
+  ${TDE_INCLUDE_DIR}
+  ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+  ${TQT_LIBRARY_DIRS}
+)
+
+
+##### other data ################################
+
+tde_install_icons( printmgr )
+install( FILES printers.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+
+
+##### kcm_printmgr (module) #####################
+
+tde_add_kpart( kcm_printmgr AUTOMOC
+  SOURCES kcmprintmgr.cpp
+  LINK tdeprint_management-shared
+  DESTINATION ${PLUGIN_INSTALL_DIR}
+)
diff --git a/tdeprint/printmgr/Makefile.am b/tdeprint/printmgr/Makefile.am
new file mode 100644
index 000000000..d0932829a
--- /dev/null
+++ b/tdeprint/printmgr/Makefile.am
@@ -0,0 +1,18 @@
+AM_CPPFLAGS = -D_KDEPRINT_COMPILE
+
+INCLUDES = $(all_includes)
+
+kde_module_LTLIBRARIES = kcm_printmgr.la
+
+kcm_printmgr_la_SOURCES = kcmprintmgr.cpp
+kcm_printmgr_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined
+kcm_printmgr_la_LIBADD = -ltdeprint_management
+
+noinst_HEADERS = kcmprintmgr.h
+
+KDE_ICON = printmgr
+
+xdg_apps_DATA = printers.desktop
+
+messages: rc.cpp
+	$(XGETTEXT) *.cpp -o $(podir)/kcmprintmgr.pot
diff --git a/tdeprint/printmgr/hi128-app-printmgr.png b/tdeprint/printmgr/hi128-app-printmgr.png
new file mode 100644
index 000000000..7db5f56b1
Binary files /dev/null and b/tdeprint/printmgr/hi128-app-printmgr.png differ
diff --git a/tdeprint/printmgr/hi16-app-printmgr.png b/tdeprint/printmgr/hi16-app-printmgr.png
new file mode 100644
index 000000000..d6defce21
Binary files /dev/null and b/tdeprint/printmgr/hi16-app-printmgr.png differ
diff --git a/tdeprint/printmgr/hi22-app-printmgr.png b/tdeprint/printmgr/hi22-app-printmgr.png
new file mode 100644
index 000000000..a71ee2817
Binary files /dev/null and b/tdeprint/printmgr/hi22-app-printmgr.png differ
diff --git a/tdeprint/printmgr/hi32-app-printmgr.png b/tdeprint/printmgr/hi32-app-printmgr.png
new file mode 100644
index 000000000..d554b554f
Binary files /dev/null and b/tdeprint/printmgr/hi32-app-printmgr.png differ
diff --git a/tdeprint/printmgr/hi48-app-printmgr.png b/tdeprint/printmgr/hi48-app-printmgr.png
new file mode 100644
index 000000000..13adbd006
Binary files /dev/null and b/tdeprint/printmgr/hi48-app-printmgr.png differ
diff --git a/tdeprint/printmgr/hi64-app-printmgr.png b/tdeprint/printmgr/hi64-app-printmgr.png
new file mode 100644
index 000000000..5d22d215e
Binary files /dev/null and b/tdeprint/printmgr/hi64-app-printmgr.png differ
diff --git a/tdeprint/printmgr/hisc-app-printmgr.svgz b/tdeprint/printmgr/hisc-app-printmgr.svgz
new file mode 100644
index 000000000..f40b4bdfa
Binary files /dev/null and b/tdeprint/printmgr/hisc-app-printmgr.svgz differ
diff --git a/tdeprint/printmgr/kcmprintmgr.cpp b/tdeprint/printmgr/kcmprintmgr.cpp
new file mode 100644
index 000000000..34b773070
--- /dev/null
+++ b/tdeprint/printmgr/kcmprintmgr.cpp
@@ -0,0 +1,73 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#include "kcmprintmgr.h"
+#include "tdeprint/kmmainview.h"
+
+#include <tqlayout.h>
+
+#include <kgenericfactory.h>
+#include <kaboutdata.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+typedef KGenericFactory<KCMPrintMgr, TQWidget> KPrintMgrFactory;
+K_EXPORT_COMPONENT_FACTORY( kcm_printmgr, KPrintMgrFactory("kcmprintmgr") )
+
+KCMPrintMgr::KCMPrintMgr(TQWidget *parent, const char *name, const TQStringList &)
+: KCModule(KPrintMgrFactory::instance(),parent,name)
+{
+	setButtons(KCModule::Ok);
+	setRootOnlyMsg( i18n(
+		"Print management as normal user\n"
+		"Some print management operations may need administrator privileges. Use the\n"
+		"\"Administrator Mode\" button below to start this print management tool with\n"
+		"administrator privileges.") );
+	setUseRootOnlyMsg(false);
+
+	m_mainview = new KMMainView(this,"MainView");
+
+	TQVBoxLayout	*main_ = new TQVBoxLayout(this, 0, 0);
+	main_->addWidget(m_mainview);
+	main_->activate();
+	
+	KAboutData *about =
+	  new KAboutData(I18N_NOOP("kcmprintmgr"), I18N_NOOP("KDE Printing Management"),
+                  0, 0, KAboutData::License_GPL,
+                  I18N_NOOP("(c) 2000 - 2002 Michael Goffioul"));
+	about->addAuthor("Michael Goffioul", 0, "tdeprint@swing.be");
+	setAboutData(about);
+}
+
+TQString KCMPrintMgr::quickHelp() const
+{
+	return i18n("<h1>Printers</h1>The KDE printing manager is part of KDEPrint which "
+               "is the interface to the real print subsystem of your Operating System (OS). "
+               "Although it does add some additional functionality of its own to those subsystems, "
+               "KDEPrint depends on them for its functionality. Spooling and filtering tasks, especially, "
+               "are still done by your print subsystem, or the administrative tasks (adding or "
+               "modifying printers, setting access rights, etc.)<br/> "
+               "What print features KDEPrint supports is therefore heavily dependent on your chosen print "
+               "subsystem. For the best support in modern printing, the KDE Printing Team recommends "
+               "a CUPS based printing system.");
+}
+
+KCMPrintMgr::~KCMPrintMgr()
+{
+}
diff --git a/tdeprint/printmgr/kcmprintmgr.h b/tdeprint/printmgr/kcmprintmgr.h
new file mode 100644
index 000000000..e82bc730f
--- /dev/null
+++ b/tdeprint/printmgr/kcmprintmgr.h
@@ -0,0 +1,39 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#ifndef KCMPRINTMGR_H
+#define KCMPRINTMGR_H
+
+#include <kcmodule.h>
+
+class KMMainView;
+
+class KCMPrintMgr : public KCModule
+{
+public:
+	KCMPrintMgr(TQWidget *parent, const char *name, const TQStringList &);
+	~KCMPrintMgr();
+
+	TQString quickHelp() const;
+
+private:
+	KMMainView	*m_mainview;
+};
+
+#endif
diff --git a/tdeprint/printmgr/printers.desktop b/tdeprint/printmgr/printers.desktop
new file mode 100644
index 000000000..38820b20b
--- /dev/null
+++ b/tdeprint/printmgr/printers.desktop
@@ -0,0 +1,235 @@
+[Desktop Entry]
+Exec=kcmshell printers
+Icon=printmgr
+Type=Application
+DocPath=tdeprint/index.html
+MimeType=print/manager;
+
+X-KDE-ModuleType=Library
+X-KDE-Library=printmgr
+X-KDE-RootOnly=true
+X-KDE-HasReadOnlyMode=true
+
+Name=Printers
+Name[af]=Drukkers
+Name[ar]=الطابعات
+Name[be]=Друкаркі
+Name[bg]=Принтери
+Name[bn]=মুদ্রণ
+Name[br]=Moullerezioù
+Name[bs]=Štampači
+Name[ca]=Impressores
+Name[cs]=Tiskárny
+Name[csb]=Drëkerë
+Name[cy]=Argraffyddion
+Name[da]=Printere
+Name[de]=Drucker
+Name[el]=Εκτυπωτές
+Name[eo]=Printiloj
+Name[es]=Impresoras
+Name[et]=Printerid
+Name[eu]=Inprimagailuak
+Name[fa]=چاپگرها
+Name[fi]=Tulostimet
+Name[fr]=Imprimantes
+Name[ga]=Printéirí
+Name[gl]=Impresoras
+Name[he]=מדפסות
+Name[hi]=प्रिंटर
+Name[hr]=Pisači
+Name[hu]=Nyomtató
+Name[is]=Prentarar
+Name[it]=Stampanti
+Name[ja]=プリンタ
+Name[ka]=პრინტერები
+Name[kk]=Принтерлер
+Name[km]=ម៉ាស៊ីន​បោះពុម្ព
+Name[lo]=ເຄື່ອງພິມ - K
+Name[lt]=Spausdintuvai
+Name[lv]=Printeri
+Name[mk]=Печатачи
+Name[mn]=Хэвлэгч
+Name[ms]=Pencetak
+Name[nb]=Skrivere
+Name[nds]=Druckers
+Name[ne]=मुद्रक
+Name[nn]=Skrivarar
+Name[nso]=Digatisi
+Name[pa]=ਪਰਿੰਟਰ
+Name[pl]=Drukarki
+Name[pt]=Impressoras
+Name[pt_BR]=Impressoras
+Name[ro]=Imprimante
+Name[ru]=Принтеры
+Name[rw]=Mucapyi
+Name[se]=Čálánat
+Name[sk]=Tlačiarne
+Name[sl]=Tiskalniki
+Name[sr]=Штампачи
+Name[sr@Latn]=Štampači
+Name[ss]=Tishiceleli
+Name[sv]=Skrivare
+Name[ta]=அச்சியந்திரம்
+Name[te]=ప్రింటర్లు
+Name[tg]=Чопгарҳо
+Name[th]=เครื่องพิมพ์
+Name[tr]=Yazıcılar
+Name[tt]=Basaqlar
+Name[uk]=Принтери
+Name[uz]=Printerlar
+Name[uz@cyrillic]=Принтерлар
+Name[ven]=Dziphirinthara
+Name[vi]=Máy in
+Name[wa]=Sicrireces
+Name[xh]=Abashicileli
+Name[zh_CN]=打印机
+Name[zh_TW]=印表機
+Name[zu]=Abashicileli
+
+Comment=Printing system configuration (printers, jobs, classes, ...)
+Comment[af]=Drukker substelsel opstelling (drukkers, werke, klasse, ...)
+Comment[ar]=إعداد نظام الطباعة (الطابعات, المهمات, الفئات ...)
+Comment[az]=Çap Etmə sistemi quraşdırması (çap edicilər, vəzifələr, siniflər, ...)
+Comment[be]=Настаўленні сістэмы друку (друкаркі, заданні, класы, ...)
+Comment[bg]=Настройване на системата за печат
+Comment[bn]=মুদ্রণব্যবস্থার কনফিগারেশন (printers, jobs, classes, ...)
+Comment[bs]=Podešavanje sistema štampe (štampači, zadaci, klase, ...)
+Comment[ca]=Configuració del sistema d'impressió (impressores, tasques, classes...)
+Comment[cs]=Nastavení tiskového systému (tiskárny, úlohy, třídy, ...)
+Comment[csb]=Kònfigùracëjô systemë drëkòwaniô (drëkrë, pòlétë, klasë, ...)
+Comment[cy]=Ffurfweddu cysawd argraffu (argraffyddion, swyddi, dosbarthidau, ...)
+Comment[da]=Printersystemindstilling (printere, job, klasser, ...)
+Comment[de]=Einrichtung des Drucksystems (Drucker, Aufträge, Klassen ...)
+Comment[el]=Ρύθμιση συστήματος εκτύπωσης (εκτυπωτές, εργασίες, κλάσεις, ...)
+Comment[eo]=Agordo de printiloj, taskoj, klasoj,...
+Comment[es]=Configuración del sistema de impresión (impresoras, trabajos, clases...)
+Comment[et]=Trükkimissüsteemi seadistamine (printerid, tööd, klassid...)
+Comment[eu]=Inprimaketa sistemaren konfigurazioa (inprimagailuak, lanak, claseak, ...)
+Comment[fa]=پیکربندی سیستم چاپ )چاپگرها، کارها، رده‌ها و ...(
+Comment[fi]=Tulostusjärjestelmän asetukset (tulostimet, työt, luokat, ...)
+Comment[fr]=Configuration du système d'impression (imprimantes, travaux d'impression, classes...)
+Comment[fy]=Ynstellings fan it printsysteem (printers, taken, klassen, ...)
+Comment[gl]=Configuración do sistema de Impresión (impresoras, traballos, clases, ...)
+Comment[he]=שינוי הגדרות מערכת ההדפסה (מדפסות, עבודות, מחלקות...)
+Comment[hi]=प्रिंटर तंत्र कॉन्फ़िगरेशन (प्रिंटर,कार्य,क्लासेस...)
+Comment[hr]=Konfiguriranje ispisnog sustava (pisači, zadaci, klase...)
+Comment[hu]=A nyomtatási rendszer beállításai
+Comment[is]=Stillingar prentkerfis KDE forrita (prentara, verk, flokka,...)
+Comment[it]=Configurazione del sistema di stampa (stampanti, lavori, classi, ...)
+Comment[ja]=印刷システムの設定 (プリンタ、ジョブ、クラスなど)
+Comment[ka]=ბეჭდვის სისტემის კონფიგურაცია (პრინტერები, დავალებები, კლასები,...)
+Comment[kk]=Басып шығару жүйесін баптау (принтерлер, тапсырмалар, кластар, ...)
+Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​ប្រព័ន្ធ​បោះពុម្ព (ម៉ាស៊ីន​បោះពុម្ព ការងារ សន្ដាន...)
+Comment[lo]=ປັບແຕ່ງລະບົບການພິມ (ເຄື່ອງພິມ,ງານພິມ,ຄລາສ, ...)
+Comment[lt]=Spausdinimo sistemos konfigūravimas (spausdintuvai, užduotys, klasės, ...)
+Comment[lv]=Drukas sistēmas konfigurācija (drukas iekārtas, darbi, klases, ...)
+Comment[mk]=Конфигурација на печатарскиот систем (печатачи, задачи, класи, ...)
+Comment[mn]=Хэвлэх системийн тохируулга(Хэвлэгч,Даалгавар, Ангиуд...)
+Comment[ms]=Konfigurasi sistem pencetakan [pencetak, kerja, kelas, ...)
+Comment[mt]=Konfigurazzjoni tas-sistema tal-ipprintjar (printers, xogħol, klassijiet, ...)
+Comment[nb]=Tilpass utskriftssystemet (skrivere, jobber, klasser …)
+Comment[nds]=Instellen för dat Drucksysteem (Druckers, Opgaven, Klassen, ...)
+Comment[ne]=मुद्रण प्रणाली कन्फिगरेसन (मुद्रक, कार्य, बग, ...)
+Comment[nl]=Configuratie van het afdruksysteem (printers, taken, klassen, ...)
+Comment[nn]=Oppsett av utskriftssystem (skrivarar, jobbar, klassar, …)
+Comment[nso]=Peakanyo ya system ya kgatiso (digatisi, mesomo, maemo,...)
+Comment[pa]=ਪਰਿੰਟਿੰਗ ਸਿਸਟਮ ਸੰਰਚਨਾ (ਪਰਿੰਟਰ, ਕੰਮ, ਕਲਾਸ, ...)
+Comment[pl]=Konfiguracja systemu drukowania (drukarki, zadania, klasy, ...)
+Comment[pt]=Configuração do sistema de impressão (impressoras, tarefas, classes, ...)
+Comment[pt_BR]=Configuração do sistema de impressão (impressoras, trabalhos, classes, ...)
+Comment[ro]=Configurează sistemul de tipărire (imprimante, lucrări, clase)
+Comment[ru]=Настройки системы печати (принтеры, задания, классы...)
+Comment[rw]=Iboneza rya sisitemu y'icapa (Mucapyi,imirimo,inzego,..) 
+Comment[se]=Heivet čálihanvuogádaga (čálániid, barggut, luohkkát, …)
+Comment[sk]=Nastavenie systému tlače (tlačiarne, úlohy, triedy, ...)
+Comment[sl]=Nastavitev sistema tiskanja (tiskalniki, opravila, razredi ...)
+Comment[sr]=Подешавање система за штампање (штампачи, послови, класе, ...)
+Comment[sr@Latn]=Podešavanje sistema za štampanje (štampači, poslovi, klase, ...)
+Comment[sv]=Anpassa skrivarsystem (skrivare, jobb, klasser...)
+Comment[ta]=அச்சியந்திர சாதன வடிவமைப்பு (அச்சியந்திரங்கள், வேலைகள், பிரிவுகள், ...)
+Comment[tg]= Танзимоти системаи чоп (чопгарҳо, корҳо, синфҳо ва ғайра)
+Comment[th]=ปรับแต่งระบบการพิมพ์ (เครื่องพิมพ์, งานพิมพ์, คลาส, ...)
+Comment[tr]=Yazdırma sistemi kurulumu (yazıcılar, işler, sınıflar, ...)
+Comment[tt]=Bastıru sistemeneñ caylawı: basaqlar, eşlär, törlär kebek närsä
+Comment[uk]=Налаштування системи друку (принтери, задачі, класи, ...)
+Comment[uz]=Bosib chiqarish tizimini moslash (printerlar, vazifalar, sinflar...)
+Comment[uz@cyrillic]=Босиб чиқариш тизимини мослаш (принтерлар, вазифалар, синфлар...)
+Comment[ven]=Nzudzanyo ya maitele au phirintha (Dziphirinthara, mishumo, dzikilasi,...)
+Comment[vi]=Cấu hình hệ thống in ấn (máy in, tác vụ in, lớp, ...)
+Comment[wa]=Apontiaedje do sistinme d' imprimaedje (sicrireces, bouyes, classes...)
+Comment[xh]=Uqwalaselo lwendlela yoshicilelo (abashicileli, imisebenzi, iintlobo, ...)
+Comment[zh_CN]=打印系统配置(打印机、任务、类等等)
+Comment[zh_TW]=列印系統設定 (印表機、工作、類別等等)
+Comment[zu]=Inhlanganiselo yesistimu yokushicilelo (abashicileli, imisebenzi, amakilasi, ...)
+
+Keywords=print,printer,printing management
+Keywords[af]=print,printer,printing bestuuring
+Keywords[ar]=طبع, طباعة, ادارة الطابعات
+Keywords[az]=çap et,çap edici,çap etmə idarəsi
+Keywords[be]=Друк,Друкаваць,Друкарка,Кіраванне друкам,print,printer,printing management
+Keywords[bg]=печат, принтер, отпечатване, управление, система, print, printer, printing management
+Keywords[ca]=imprimir,impressora,gestió de la impressió
+Keywords[cs]=tisk,tiskárna,správa tisku
+Keywords[csb]=drëkùjë,drëker,sprôwianié wëdrëkama
+Keywords[cy]=argraffu,argraffydd,rheoli argraffu
+Keywords[da]=udskriv,printer,printerhåndtering
+Keywords[de]=Druck,Druckaufträge,Druckerverwaltung
+Keywords[el]=εκτύπωση,εκτυπωτής,διαχείριση εκτυπώσεων
+Keywords[eo]=printo,printado,presado,presilo,presadminsitrado
+Keywords[es]=imprimir,impresora,gestión de impresión
+Keywords[et]=trükkimine,printer,trükkimise haldamine
+Keywords[eu]=inprimatu,inprimagailua,inprimaketa kudeaketa
+Keywords[fa]=چاپ، چاپگر، مدیریت چاپ
+Keywords[fi]=tulostus,tulostin,tulostuksenhallinta
+Keywords[fr]=impression,imprimante,système d'impression
+Keywords[fy]=print,printer,printing management,printbehear,printsje
+Keywords[ga]=priontáil,printéir,bainisteoireacht priontála
+Keywords[gl]=imprimir,impresora,xestión de impresión
+Keywords[he]=הדפסה,מדפסת,ניהול הדפסה, print,printer,printing management
+Keywords[hi]=छापा,प्रिंटर,छपाई प्रबंधन
+Keywords[hr]=print,printer,printing management,ispis,pisač,upravljanje ispisivanjem
+Keywords[hu]=nyomtatás,nyomtató,nyomtatáskezelés
+Keywords[is]=prentun,prentari,prentstjórnun
+Keywords[it]=stampa,stampante,gestione stampa
+Keywords[ja]=印刷, プリンタ, 印刷管理
+Keywords[km]=បោះពុម្ព,ម៉ាស៊ីន​បោះពុម្ព,គ្រប់គ្រង​ការ​បោះពុម្ព
+Keywords[lo]=ພິມ,ເຄື່ອງພິມ,ຈັດການພິມ
+Keywords[lt]=print,printer,printing management,spausdinti,spausdintuvas,spausdinimo tvarkymas
+Keywords[lv]=druka,drukas iekārta,drukāšanas menedžments
+Keywords[mk]=print,printer,printing management,печати,печатач,менаџмент на печатење
+Keywords[mn]=Хэвлэх,Хэвлэгч,Хэвлэгчийн удирдлага
+Keywords[ms]=cetak, pencetak, pengurusan pencetakan
+Keywords[mt]=print,printer,printing management,stampar,printja,stampa,ipprintja
+Keywords[nb]=utskrift,skriver,utskriftskontroll
+Keywords[nds]=drucken,Drucker,Opgaav,Opgaven,Druckopgaav,Druckopgaven,Opdrag,Druckopdrag,Opdrääg,Druckopdrääg
+Keywords[ne]=मुद्रण, मुद्रक, मुद्रण व्यवस्थापन
+Keywords[nl]=print,printer,printing management,afdrukbeheer,afdrukken
+Keywords[nn]=utskrift,skrivar,utskriftshandsaming
+Keywords[nso]=taolo ya kgatiso,segatisi,kgatiso
+Keywords[pa]=ਛਾਪਣ,ਪਰਿੰਟਰ,ਪਰਿੰਟ,ਪਰਿੰਟ ਮੈਨੇਜਰ
+Keywords[pl]=drukuj,drukarka,zarządzanie drukowaniem
+Keywords[pt]=imprimir,impressora,gestão de impressão
+Keywords[pt_BR]=imprimir,impressora,gerenciamento de impressão
+Keywords[ro]=tipărire,printare,imprimantă,administrare tipărire
+Keywords[rw]=gucapa,mucapyi,igenzura ry'icapa
+Keywords[se]=čáliheapmi,čálán,čálihangieđahalli
+Keywords[sk]=tlač,tlačiareň,správa tlače
+Keywords[sl]=tiskanje,tiskalnik,upravljanje tiskanja
+Keywords[sr]=print,printer,printing management,штампање,штампач,управљање штампом
+Keywords[sr@Latn]=print,printer,printing management,štampanje,štampač,upravljanje štampom
+Keywords[sv]=skriv ut,skrivare,skrivarhantering
+Keywords[ta]=அச்சு, அச்சியந்திரம்,அச்சு மேலாளர்
+Keywords[th]=พิมพ์,เครื่องพิมพ์,จัดการการพิมพ์
+Keywords[tr]=yazdır,yazıcı,yazıcı yönetimi
+Keywords[uk]=друк,принтер,керування друком
+Keywords[uz]=printer,bosib chiqarish,bosib chiqarishni boshqarish
+Keywords[uz@cyrillic]=принтер,босиб чиқариш,босиб чиқаришни бошқариш
+Keywords[ven]=u phirintha,phirinthara,vhulanguli ha phirinthara
+Keywords[vi]=in ấn,máy in,quản lí in ấn
+Keywords[wa]=rexhe,sicrirece,manaedjmint di l' imprimaedje,imprimaedje
+Keywords[xh]=shicilela,umshicileli,uphatho lokushicilela
+Keywords[zh_CN]=print,printer,printing management,打印,打印机,打印管理
+Keywords[zh_TW]=print,printer,printing management,列印,印表機,列印管理
+Keywords[zu]=shicilela,umshicileli,abaphathi boshicilelo
+
+Categories=Qt;KDE;X-KDE-settings-hardware;Settings;
diff --git a/tdeprint/slave/CMakeLists.txt b/tdeprint/slave/CMakeLists.txt
new file mode 100644
index 000000000..db9162a1b
--- /dev/null
+++ b/tdeprint/slave/CMakeLists.txt
@@ -0,0 +1,39 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+add_definitions( -D_KDEPRINT_COMPILE )
+
+add_subdirectory( mimetypes )
+add_subdirectory( templates )
+
+include_directories(
+  ${CMAKE_CURRENT_BINARY_DIR}
+  ${TDE_INCLUDE_DIR}
+  ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+  ${TQT_LIBRARY_DIRS}
+)
+
+
+##### other data ################################
+
+install( FILES print.protocol printdb.protocol DESTINATION ${SERVICES_INSTALL_DIR} )
+
+
+##### kio_print (module) ########################
+
+tde_add_kpart( kio_print AUTOMOC
+  SOURCES kio_print.cpp
+  LINK tdeprint-shared
+  DESTINATION ${PLUGIN_INSTALL_DIR}
+)
diff --git a/tdeprint/slave/Makefile.am b/tdeprint/slave/Makefile.am
new file mode 100644
index 000000000..5e5e04123
--- /dev/null
+++ b/tdeprint/slave/Makefile.am
@@ -0,0 +1,22 @@
+AM_CPPFLAGS = -D_KDEPRINT_COMPILE
+
+SUBDIRS = mimetypes templates
+
+INCLUDES= $(all_includes)
+
+kde_module_LTLIBRARIES = kio_print.la
+
+kio_print_la_SOURCES = kio_print.cpp
+kio_print_la_LIBADD = $(LIB_KIO) -ltdeprint
+kio_print_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
+
+METASOURCES = AUTO
+
+noinst_HEADERS = kio_print.h
+
+# Services
+servicesdir = $(kde_servicesdir)
+services_DATA = print.protocol printdb.protocol
+
+messages: rc.cpp
+	$(XGETTEXT) *.cpp -o $(podir)/kio_print.pot
diff --git a/tdeprint/slave/kio_print.cpp b/tdeprint/slave/kio_print.cpp
new file mode 100644
index 000000000..d8bb4cf6e
--- /dev/null
+++ b/tdeprint/slave/kio_print.cpp
@@ -0,0 +1,920 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#include "kio_print.h"
+#include <tdeprint/kmprinter.h>
+#include <tdeprint/kmmanager.h>
+#include <tdeprint/kmjobmanager.h>
+#include <tdeprint/kmjob.h>
+#include <tdeprint/driver.h>
+
+#include <tqfile.h>
+#include <tqtextstream.h>
+#include <klocale.h>
+#include <kdebug.h>
+#include <kinstance.h>
+#include <kio/global.h>
+#include <kstandarddirs.h>
+#include <kiconloader.h>
+#include <kmimetype.h>
+#include <kio/job.h>
+#include <kapplication.h>
+#include <kcmdlineargs.h>
+#include <kaboutdata.h>
+#include <kprocess.h>
+#include <ktempfile.h>
+#include <tqfile.h>
+#include <tqdom.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+
+#define	PRINT_DEBUG	kdDebug(7019) << "kio_print: "
+
+extern "C"
+{
+	int KDE_EXPORT kdemain(int argc, char **argv);
+}
+
+void addAtom(KIO::UDSEntry& entry, unsigned int ID, long l, const TQString& s = TQString())
+{
+	KIO::UDSAtom	atom;
+	atom.m_uds = ID;
+	atom.m_long = l;
+	atom.m_str = s;
+	entry.append(atom);
+}
+
+static void createDirEntry(KIO::UDSEntry& entry, const TQString& name, const TQString& url, const TQString& mime)
+{
+	entry.clear();
+	addAtom(entry, KIO::UDS_NAME, 0, name);
+	addAtom(entry, KIO::UDS_FILE_TYPE, S_IFDIR);
+	addAtom(entry, KIO::UDS_ACCESS, 0500);
+	addAtom(entry, KIO::UDS_MIME_TYPE, 0, mime);
+	addAtom(entry, KIO::UDS_URL, 0, url);
+	PRINT_DEBUG << "creating dir entry url=" << url << " mimetype=" << mime << endl;
+	addAtom(entry, KIO::UDS_SIZE, 0);
+	//addAtom(entry, KIO::UDS_GUESSED_MIME_TYPE, 0, "application/octet-stream");
+}
+
+static void createFileEntry(KIO::UDSEntry& entry, const TQString& name, const TQString& url, const TQString& mime)
+{
+	entry.clear();
+	addAtom(entry, KIO::UDS_NAME, 0, name);
+	addAtom(entry, KIO::UDS_FILE_TYPE, S_IFREG);
+	addAtom(entry, KIO::UDS_URL, 0, url);
+	addAtom(entry, KIO::UDS_ACCESS, 0400);
+	addAtom(entry, KIO::UDS_MIME_TYPE, 0, mime);
+	addAtom(entry, KIO::UDS_SIZE, 0);
+	addAtom(entry, KIO::UDS_GUESSED_MIME_TYPE, 0, "application/octet-stream");
+}
+
+TQString buildMenu(const TQStringList& items, const TQStringList& links, int active)
+{
+	if (items.count() == 0 || items.count() != links.count())
+		return TQString("<td height=20 class=\"menu\">&nbsp;</td>");
+
+	TQString	s;
+	int	index = 0;
+	for (TQStringList::ConstIterator it1=items.begin(), it2=links.begin(); it1!=items.end() && it2!=links.end(); ++it1, ++it2, index++)
+	{
+		if (index == active)
+			s.append("<td height=20 class=\"menuactive\">&nbsp; ").append(*it1).append("&nbsp;</td>");
+		else
+			s.append("<td height=20 class=\"menu\">&nbsp; <a class=\"menu\" href=\"").append(*it2).append("\">").append(*it1).append("</a>&nbsp;</td>");
+		if ((unsigned int)index < items.count()-1)
+			s.append("<td height=20 class=\"menu\">|</td>");
+	}
+	return s;
+}
+
+TQString buildOptionRow(DrBase *opt, bool f)
+{
+	TQString	s("<tr class=\"%1\"><td width=\"41%\">%1</td><td width=\"59%\">%1</td></tr>\n");
+	s = s.arg(f ? "contentwhite" : "contentyellow").arg(opt->get("text")).arg(opt->prettyText());
+	return s;
+}
+
+TQString buildGroupTable(DrGroup *grp, bool showHeader = true)
+{
+	TQString	s("<tr class=\"top\"><td colspan=\"2\">%1</td></tr>\n");
+	if (showHeader)
+		s = s.arg(grp->get("text"));
+	else
+		s = TQString();
+
+	TQPtrListIterator<DrBase>	oit(grp->options());
+	bool	f(false);
+	for (; oit.current(); ++oit, f = !f)
+		s.append(buildOptionRow(oit.current(), f));
+
+	TQPtrListIterator<DrGroup>	git(grp->groups());
+	for (; git.current(); ++git)
+		s.append(buildGroupTable(git.current()));
+
+	return s;
+}
+
+int kdemain(int argc, char **argv)
+{
+	KInstance  instance("kio_print");
+
+	PRINT_DEBUG << "starting ioslave" << endl;
+	if (argc != 4)
+	{
+		fprintf(stderr, "Usage: kio_print protocol domain-socket1 domain-socket2\n");
+		exit(-1);
+	}
+
+	/* create fake KApplicatiom object, needed for job stuffs */
+	KAboutData about( "kio_print", "kio_print", "fake_version", 
+			"KDEPrint IO slave", KAboutData::License_GPL, "(c) 2003, Michael Goffioul" );
+	KCmdLineArgs::init( &about );
+	KApplication app;
+
+	KIO_Print	 slave(argv[2], argv[3]);
+	slave.dispatchLoop();
+
+	PRINT_DEBUG << "done" << endl;
+	return 0;
+}
+
+KIO_Print::KIO_Print(const TQCString& pool, const TQCString& app)
+: KIO::SlaveBase("print", pool, app)
+{
+}
+
+void KIO_Print::listDir(const KURL& url)
+{
+	if ( url.protocol() == "printdb" )
+	{
+		listDirDB( url );
+		return;
+	}
+
+	TQStringList	path = TQStringList::split('/', url.path(), false);
+
+	PRINT_DEBUG << "listing " << url.path() << endl;
+	TQString	group = path[0].lower();
+	if (path.count() == 0)
+		listRoot();
+	else if (path.count() == 1 && group != "manager" && group != "jobs")
+	{
+		PRINT_DEBUG << "listing group " << path[0] << endl;
+
+		int	mask;
+		TQString	mimeType;
+		KIO::UDSEntry	entry;
+
+		if (group == "printers")
+		{
+			mask = KMPrinter::Printer;
+			mimeType = "print/printer";
+		}
+		else if (group == "classes")
+		{
+			mask = KMPrinter::Class | KMPrinter::Implicit;
+			mimeType = "print/class";
+		}
+		else if (group == "specials")
+		{
+			mask = KMPrinter::Special;
+			mimeType = "print/printer";
+		}
+		else
+		{
+			error(KIO::ERR_DOES_NOT_EXIST, url.url());
+			return;
+		}
+
+		TQPtrListIterator<KMPrinter>	it(*(KMManager::self()->printerList()));
+		for (;it.current();++it)
+		{
+			if (!(it.current()->type() & mask) || !it.current()->instanceName().isEmpty())
+			{
+				PRINT_DEBUG << "rejecting " << it.current()->name() << endl;
+				continue;
+			}
+
+			//createFileEntry(entry, it.current()->name(), ("print:/"+path[0]+"/"+it.current()->name()), mimeType, "text/html", S_IFDIR);
+			createDirEntry(entry, it.current()->name(), ("print:/"+group+"/"+KURL::encode_string_no_slash(it.current()->name())), mimeType);
+			PRINT_DEBUG << "accepting " << it.current()->name() << endl;
+			listEntry(entry, false);
+		}
+
+		listEntry(KIO::UDSEntry(), true);
+		finished();
+	}
+	else
+	{
+		//error(KIO::ERR_UNSUPPORTED_ACTION, i18n("Unsupported path %1").arg(url.path()));
+		// better do nothing
+		listEntry(KIO::UDSEntry(), true);
+		totalSize(0);
+		finished();
+	}
+}
+
+void KIO_Print::listRoot()
+{
+	PRINT_DEBUG << "listing root entry" << endl;
+
+	KIO::UDSEntry	entry;
+
+	// Classes entry
+	createDirEntry(entry, i18n("Classes"), "print:/classes", "print/folder");
+	listEntry(entry, false);
+
+	// Printers entry
+	createDirEntry(entry, i18n("Printers"), "print:/printers", "print/folder");
+	listEntry(entry, false);
+
+	// Specials entry
+	createDirEntry(entry, i18n("Specials"), "print:/specials", "print/folder");
+	listEntry(entry, false);
+
+	// Management entry
+	//createFileEntry(entry, i18n("Manager"), "print:/manager", "print/manager", TQString(), S_IFDIR);
+	createDirEntry(entry, i18n("Manager"), "print:/manager", "print/manager");
+	listEntry(entry, false);
+
+	// Jobs entry
+	createDirEntry(entry, i18n("Jobs"), "print:/jobs", "print/jobs");
+	listEntry(entry, false);
+
+	// finish
+	totalSize(4);
+	listEntry(entry, true);
+	finished();
+}
+
+void KIO_Print::listDirDB( const KURL& url )
+{
+	PRINT_DEBUG << "listDirDB: " << url << endl;
+
+	TQStringList pathComps = TQStringList::split( '/', url.path(), false );
+	KURL remUrl;
+
+	remUrl.setProtocol( "http" );
+	remUrl.setHost( url.host() );
+	remUrl.setPort( url.port() );
+	remUrl.setPath( "/list-data.cgi" );
+	switch ( pathComps.size() )
+	{
+		case 0: /* list manufacturers */
+			remUrl.addQueryItem( "type", "makes" );
+			break;
+		case 1: /* list printers for the given manufacturer */
+			remUrl.addQueryItem( "type", "printers" );
+			remUrl.addQueryItem( "make", pathComps[ 0 ] );
+			break;
+		case 2: /* list drivers for given printer */
+			remUrl.addQueryItem( "type", "drivers" );
+			remUrl.addQueryItem( "printer", pathComps[ 1 ] );
+			break;
+		default:
+			error( KIO::ERR_UNSUPPORTED_ACTION, "Not implemented" );
+			return;
+	}
+	remUrl.addQueryItem( "format", "xml" );
+
+	if ( getDBFile( remUrl ) )
+	{
+		TQDomDocument doc;
+		if ( doc.setContent( &m_httpBuffer, false ) )
+		{
+			TQDomNodeList l;
+			KIO::UDSEntry entry;
+			switch ( pathComps.size() )
+			{
+				case 0:
+					l = doc.documentElement().elementsByTagName( "make" );
+					for ( unsigned int i=0; i<l.count(); i++ )
+					{
+						TQString make = l.item( i ).toElement().text();
+						KURL makeUrl = url;
+						makeUrl.addPath( "/" + make );
+						createDirEntry( entry, make, makeUrl.url(), "print/folder" );
+						listEntry( entry, false );
+						PRINT_DEBUG << "make: " << make << endl;
+					}
+					break;
+				case 1:
+					l = doc.documentElement().elementsByTagName( "printer" );
+					for ( unsigned int i=0; i<l.count(); i++ )
+					{
+						TQString ID, name;
+						for ( TQDomNode n=l.item( i ).firstChild(); !n.isNull(); n=n.nextSibling() )
+						{
+							TQDomElement e = n.toElement();
+							if ( e.tagName() == "id" )
+								ID = e.text();
+							else if ( e.tagName() == "model" )
+								name = e.text();
+						}
+						if ( !ID.isEmpty() && !name.isEmpty() )
+						{
+							KURL printerUrl = url;
+							printerUrl.addPath( "/" + ID );
+							createDirEntry( entry, name, printerUrl.url(), "print/printermodel" );
+							listEntry( entry, false );
+							PRINT_DEBUG << "printer: " << ID << endl;
+						}
+					}
+					break;
+				case 2:
+					l = doc.documentElement().elementsByTagName( "driver" );
+					for ( unsigned int i=0; i<l.count(); i++ )
+					{
+						TQString driver = l.item( i ).toElement().text();
+						KURL driverUrl = url;
+						driverUrl.addPath( "/" + driver );
+						createFileEntry( entry, driver, driverUrl.url(), "print/driver" );
+						listEntry( entry, false );
+						PRINT_DEBUG << "driver: " << driver << endl;
+					}
+					break;
+				default:
+					error( KIO::ERR_UNSUPPORTED_ACTION, "Not implemented" );
+					return;
+			}
+			listEntry( KIO::UDSEntry(), true );
+			finished();
+		}
+		else
+		{
+			if ( m_httpBuffer.buffer().size() == 0 )
+				error( KIO::ERR_INTERNAL, i18n( "Empty data received (%1)." ).arg( url.host() ) );
+			else
+				error( KIO::ERR_INTERNAL, i18n( "Corrupted/incomplete data or server error (%1)." ).arg( url.host() ) );
+		}
+	}
+	/*
+	 * If error occured while downloading, error has been called by
+	 * getDBFile. No need for a "else" statement.
+	 */
+}
+
+void KIO_Print::stat(const KURL& url)
+{
+	if ( url.protocol() == "printdb" )
+	{
+		statDB( url );
+		return;
+	}
+
+	PRINT_DEBUG << "stat: " << url.url() << endl;
+	TQStringList	path = TQStringList::split('/', url.encodedPathAndQuery(-1), false);
+	KIO::UDSEntry	entry;
+	TQString	mime;
+	bool err(false);
+
+	PRINT_DEBUG << "path components: " << path.join(", ") << endl;
+
+	switch (path.count())
+	{
+		case 0:
+			createDirEntry(entry, i18n("Print System"), "print:/", "print/folder");
+			break;
+		case 1:
+			if (path[0].lower() == "classes")
+				createDirEntry(entry, i18n("Classes"), "print:/classes", "print/folder");
+			else if (path[0].lower() == "printers")
+				createDirEntry(entry, i18n("Printers"), "print:/printers", "print/folder");
+			else if (path[0].lower() == "specials")
+				createDirEntry(entry, i18n("Specials"), "print:/specials", "print/folder");
+			else if (path[0].lower() == "manager")
+				createDirEntry(entry, i18n("Manager"), "print:/manager", "print/manager");
+			else if (path[0].lower().startsWith("jobs"))
+				createFileEntry(entry, i18n("Jobs"), url.url(), "text/html");
+			else
+				err = true;
+			break;
+		case 2:
+			if (path[0].lower() == "printers")
+				mime = "print/printer";
+			else if (path[0].lower() == "classes")
+				mime = "print/class";
+			else if (path[0].lower() == "specials")
+				mime = "print/printer";
+			else
+				err = true;
+			createFileEntry(entry, path[1], "print:/"+path[0]+"/"+path[1], "text/html");
+			break;
+	}
+
+	if (!err)
+	{
+		statEntry(entry);
+		finished();
+	}
+	else
+		error(KIO::ERR_DOES_NOT_EXIST, url.path());
+}
+
+void KIO_Print::statDB( const KURL& url )
+{
+	PRINT_DEBUG << "statDB: " << url << endl;
+	KIO::UDSEntry entry;
+	TQStringList pathComps = TQStringList::split( '/', url.path(), false );
+	if ( pathComps.size() == 3 )
+		createFileEntry( entry, i18n( "Printer driver" ), url.url(), "print/driver" );
+	else
+		createDirEntry( entry, i18n( "On-line printer driver database" ), url.url(), "inode/directory" );
+	statEntry( entry );
+	finished();
+}
+
+bool KIO_Print::getDBFile( const KURL& src )
+{
+	PRINT_DEBUG << "downloading " << src.url() << endl;
+
+	/* re-initialize the internal buffer */
+	if ( m_httpBuffer.isOpen() )
+		m_httpBuffer.close();
+	m_httpError = 0;
+	m_httpBuffer.open( IO_WriteOnly|IO_Truncate ); // be sure to erase the existing data
+
+	/* start the transfer job */
+	KIO::TransferJob *job = KIO::get( src, false, false );
+	connect( job, TQT_SIGNAL( result( KIO::Job* ) ), TQT_SLOT( slotResult( KIO::Job* ) ) );
+	connect( job, TQT_SIGNAL( data( KIO::Job*, const TQByteArray& ) ), TQT_SLOT( slotData( KIO::Job*, const TQByteArray& ) ) );
+	connect( job, TQT_SIGNAL( totalSize( KIO::Job*, KIO::filesize_t ) ), TQT_SLOT( slotTotalSize( KIO::Job*, KIO::filesize_t ) ) );
+	connect( job, TQT_SIGNAL( processedSize( KIO::Job*, KIO::filesize_t ) ), TQT_SLOT( slotProcessedSize( KIO::Job*, KIO::filesize_t ) ) );
+	kapp->enter_loop();
+	m_httpBuffer.close();
+
+	/* return the result */
+	if ( m_httpError != 0 )
+		error( m_httpError, m_httpErrorTxt );
+	return ( m_httpError == 0 );
+}
+
+void KIO_Print::getDB( const KURL& url )
+{
+	PRINT_DEBUG << "downloading PPD file for " << url.url() << endl;
+
+	TQStringList pathComps = TQStringList::split( '/', url.path(), false );
+	if ( pathComps.size() != 3 )
+		error( KIO::ERR_MALFORMED_URL, url.url() );
+	else
+	{
+		KURL remUrl;
+
+		remUrl.setProtocol( "http" );
+		remUrl.setHost( url.host() );
+		remUrl.setPath( "/ppd-o-matic.cgi" );
+		remUrl.addQueryItem( "driver", pathComps[ 2 ] );
+		remUrl.addQueryItem( "printer", pathComps[ 1 ] );
+
+		if ( getDBFile( remUrl ) )
+		{
+			mimeType( "text/plain" );
+			data( m_httpBuffer.buffer() );
+			finished();
+		}
+		/*
+		 * no "else" statement needed, the error has
+		 * already been emitted by the getDBFile function
+		 */
+	}
+}
+
+void KIO_Print::slotResult( KIO::Job *j )
+{
+	/*
+	 * store slave results for later user (job gets deleted 
+	 * after this function). Store only if no other error
+	 * occured previously (when writing to the buffer).
+	 */
+	if ( m_httpError == 0 )
+	{
+		m_httpError = j->error();
+		m_httpErrorTxt = j->errorText();
+	}
+	kapp->exit_loop();
+}
+
+void KIO_Print::slotData( KIO::Job *j, const TQByteArray& d )
+{
+	PRINT_DEBUG << "HTTP data received (size=" << d.size() << ")" << endl;
+	if ( d.size() > 0 )
+	{
+		int len = m_httpBuffer.writeBlock( d );
+		if ( len == -1 || len != ( int )d.size() )
+		{
+			m_httpError = KIO::ERR_INTERNAL;
+			m_httpErrorTxt = "Unable to write to the internal buffer.";
+			j->kill( false );
+		}
+	}
+}
+
+void KIO_Print::slotTotalSize( KIO::Job*, KIO::filesize_t sz )
+{
+	totalSize( sz );
+}
+
+void KIO_Print::slotProcessedSize( KIO::Job*, KIO::filesize_t sz )
+{
+	processedSize( sz );
+}
+
+void KIO_Print::get(const KURL& url)
+{
+	if ( url.protocol() == "printdb" )
+	{
+		getDB( url );
+		return;
+	}
+
+	TQStringList	elems = TQStringList::split('/', url.encodedPathAndQuery(), false);
+	TQString		group(elems[0].lower()), printer(KURL::decode_string(elems[1])), path, query;
+	KMPrinter	*mprinter(0);
+
+	if (group == "manager")
+	{
+		PRINT_DEBUG << "opening print management part" << endl;
+
+		mimeType("print/manager");
+		finished();
+		return;
+	}
+
+	PRINT_DEBUG << "getting " << url.url() << endl;
+
+	if (group.startsWith("jobs"))
+	{
+		int	p = group.find('?');
+		if (p != -1)
+			query = group.mid(p+1);
+		if (!query.isEmpty() && query != "jobs" && query != "completed_jobs")
+		{
+			error(KIO::ERR_MALFORMED_URL, TQString());
+			return;
+		}
+		PRINT_DEBUG << "listing jobs for all printers" << endl;
+		showJobs(0, query == "completed_jobs");
+		return;
+	}
+
+	int	p = printer.find('?');
+	if (p != -1)
+	{
+		query = printer.mid(p+1);
+		printer = printer.left(p);
+	}
+
+	PRINT_DEBUG << "opening " << url.url() << endl;
+	PRINT_DEBUG << "extracted printer name = " << printer << endl;
+
+	KMManager::self()->printerList(false);
+	mprinter = KMManager::self()->findPrinter(printer);
+	if (!mprinter)
+		path = locateData(printer.isEmpty() ? group : printer);
+
+	if (elems.count() > 2 || (path.isEmpty() && group != "printers" && group != "classes" && group != "specials")
+	    || (mprinter == 0 && path.isEmpty()))
+	{
+		error(KIO::ERR_DOES_NOT_EXIST, url.path());
+		return;
+	}
+
+	if (mprinter != 0)
+	{
+		if (!query.isEmpty() && query != "general")
+		{
+			if (query == "jobs")
+				showJobs(mprinter, false);
+			else if (query == "completed_jobs")
+				showJobs(mprinter, true);
+			else if (query == "driver")
+				showDriver(mprinter);
+			else
+				error(KIO::ERR_MALFORMED_URL, KURL::decode_string(elems[1]));
+		}
+		else if (group == "printers" && mprinter->isPrinter())
+			showPrinterInfo(mprinter);
+		else if (group == "classes" && mprinter->isClass(true))
+			showClassInfo(mprinter);
+		else if (group == "specials" && mprinter->isSpecial())
+			showSpecialInfo(mprinter);
+		else
+			error(KIO::ERR_INTERNAL, i18n("Unable to determine object type for %1.").arg(printer));
+	}
+	else if (!path.isEmpty())
+		showData(path);
+	else
+		error(KIO::ERR_INTERNAL, i18n("Unable to determine source type for %1.").arg(printer));
+}
+
+void KIO_Print::showPrinterInfo(KMPrinter *printer)
+{
+	if (!KMManager::self()->completePrinter(printer))
+		error(KIO::ERR_INTERNAL, i18n("Unable to retrieve printer information for %1.").arg(printer->name()));
+	else
+	{
+		mimeType("text/html");
+
+		TQString	content;
+		if (!loadTemplate(TQString::tqfromLatin1("printer.template"), content))
+		{
+			error(KIO::ERR_INTERNAL, i18n("Unable to load template %1").arg("printer.template"));
+			return;
+		}
+
+		content = content
+				 .arg(i18n("Properties of %1").arg(printer->printerName()))
+				 .arg(i18n("Properties of %1").arg(printer->printerName()))
+				 .arg(buildMenu(TQStringList::split('|', i18n("General|Driver|Active jobs|Completed jobs"), false),
+							 TQStringList::split('|', "?general|?driver|?jobs|?completed_jobs", true),
+							 0))
+				 .arg(TQString())
+				 .arg(printer->pixmap())
+				 .arg(printer->name())
+				 .arg(i18n("General Properties"))
+				 .arg(i18n("Type")).arg(printer->isRemote() ? i18n("Remote") : i18n("Local"))
+				 .arg(i18n("State")).arg(printer->stateString())
+				 .arg(i18n("Location")).arg(printer->location())
+				 .arg(i18n("Description")).arg(printer->description())
+				 .arg(i18n("URI")).arg(printer->uri().prettyURL())
+				 .arg(i18n("Interface (Backend)")).arg(printer->device())
+				 .arg(i18n("Driver"))
+				 .arg(i18n("Manufacturer")).arg(printer->manufacturer())
+				 .arg(i18n("Model")).arg(printer->model())
+				 .arg(i18n("Driver Information")).arg(printer->driverInfo());
+
+		data(content.local8Bit());
+		finished();
+	}
+}
+
+void KIO_Print::showClassInfo(KMPrinter *printer)
+{
+	if (!KMManager::self()->completePrinter(printer))
+		error(KIO::ERR_INTERNAL, i18n("Unable to retrieve class information for %1.").arg(printer->name()));
+	else
+	{
+		mimeType("text/html");
+
+		TQString	content;
+		if (!loadTemplate(TQString::tqfromLatin1("class.template"), content))
+		{
+			error(KIO::ERR_INTERNAL, i18n("Unable to load template %1").arg("class.template"));
+			return;
+		}
+
+		TQString		memberContent("<ul>\n");
+		TQStringList	members(printer->members());
+		for (TQStringList::ConstIterator it=members.begin(); it!=members.end(); ++it)
+		{
+			memberContent.append(TQString::tqfromLatin1("<li><a href=\"print:/printers/%1\">%2</a></li>\n").arg(*it).arg(*it));
+		}
+		memberContent.append("</ul>\n");
+
+		TQString		typeContent = (printer->isImplicit() ? i18n("Implicit") : (printer->isRemote() ? i18n("Remote") : i18n("Local")));
+
+		content = content
+				 .arg(i18n("Properties of %1").arg(printer->printerName()))
+				 .arg(i18n("Properties of %1").arg(printer->printerName()))
+				 .arg(buildMenu(TQStringList::split('|', i18n("General|Active jobs|Completed jobs"), false),
+							 TQStringList::split('|', "?general|?jobs|?completed_jobs", true),
+							 0))
+				 .arg(TQString())
+				 .arg(printer->pixmap())
+				 .arg(printer->name())
+				 .arg(i18n("General Properties"))
+				 .arg(i18n("Type")).arg(typeContent)
+				 .arg(i18n("State")).arg(printer->stateString())
+				 .arg(i18n("Location")).arg(printer->location())
+				 .arg(i18n("Description")).arg(printer->description())
+				 .arg(i18n("URI")).arg(printer->uri().prettyURL())
+				 .arg(i18n("Members")).arg(memberContent);
+
+		data(content.local8Bit());
+		finished();
+	}
+}
+
+void KIO_Print::showSpecialInfo(KMPrinter *printer)
+{
+	mimeType("text/html");
+
+	TQString	content;
+	if (!loadTemplate(TQString::tqfromLatin1("pseudo.template"), content))
+	{
+		error(KIO::ERR_INTERNAL, i18n("Unable to load template %1").arg("pseudo.template"));
+		return;
+	}
+
+	TQString	reqContent("<ul>\n");
+	TQStringList	requirements = TQStringList::split(",", printer->option("kde-special-require"), false);
+	for (TQStringList::ConstIterator it=requirements.begin(); it!=requirements.end(); ++it)
+		reqContent += ("<li>" + (*it) + "</li>\n");
+	reqContent.append("</ul>\n");
+
+	content = content
+			 .arg(i18n("Properties of %1").arg(printer->printerName()))
+			 .arg(i18n("Properties of %1").arg(printer->printerName()))
+			 .arg(buildMenu(TQStringList::split('|', i18n("General"), false),
+						 TQStringList::split('|', "?general", true),
+						 0))
+			 .arg(TQString())
+			 .arg(printer->pixmap())
+			 .arg(printer->name())
+			 .arg(i18n("General Properties"))
+			 .arg(i18n("Location")).arg(printer->location())
+			 .arg(i18n("Description")).arg(printer->description())
+			 .arg(i18n("Requirements")).arg(reqContent)
+			 .arg(i18n("Command Properties"))
+			 .arg(i18n("Command")).arg("<tt>"+printer->option("kde-special-command")+"</tt>")
+			 .arg(i18n("Use Output File")).arg(printer->option("kde-special-file") == "1" ? i18n("Yes") : i18n("No"))
+			 .arg(i18n("Default Extension")).arg(printer->option("kde-special-extension"));
+
+	data(content.local8Bit());
+	finished();
+}
+
+bool KIO_Print::loadTemplate(const TQString& filename, TQString& buffer)
+{
+	TQFile	f(locate("data", TQString::tqfromLatin1("tdeprint/template/")+filename));
+	if (f.exists() && f.open(IO_ReadOnly))
+	{
+		TQTextStream	t(&f);
+		buffer = t.read();
+		return true;
+	}
+	else
+	{
+		buffer = TQString();
+		return false;
+	}
+}
+
+void KIO_Print::showData(const TQString& pathname)
+{
+	PRINT_DEBUG << "sending data: " << pathname << endl;
+	TQFile	f(pathname);
+	if (f.exists() && f.open(IO_ReadOnly))
+	{
+		TQByteArray	arr(f.readAll());
+		mimeType(KMimeType::findByURL(KURL(pathname), 0, true, true)->name());
+		data(arr);
+		finished();
+	}
+	else
+	{
+		PRINT_DEBUG << "file not found" << endl;
+		error(KIO::ERR_DOES_NOT_EXIST, pathname);
+	}
+}
+
+/**
+ * Locate a data in this order:
+ *	- $KDEDIR/share/apps/tdeprint/template/
+ *	- as a desktop icon
+ */
+TQString KIO_Print::locateData(const TQString& item)
+{
+	TQString	path = locate("data", "tdeprint/template/"+item);
+	if (path.isEmpty())
+		path = KGlobal::iconLoader()->iconPath(item, KIcon::Desktop, true);
+	return path;
+}
+
+void KIO_Print::showJobs(KMPrinter *prt, bool completed)
+{
+	mimeType("text/html");
+
+	// Add the printer to the current list in the job manager
+	KMJobManager::JobType	type = (completed ? KMJobManager::CompletedJobs : KMJobManager::ActiveJobs);
+	KMJobManager	*mgr = KMJobManager::self();
+	if (prt)
+		mgr->addPrinter(prt->printerName(), type);
+	else
+	{
+		TQPtrListIterator<KMPrinter>	pit(*(KMManager::self()->printerList()));
+		for (; pit.current(); ++pit)
+			if (pit.current()->isVirtual() || pit.current()->isSpecial())
+				continue;
+			else
+				mgr->addPrinter(pit.current()->printerName(), type);
+	}
+
+	TQString	content;
+	if (!loadTemplate(TQString::tqfromLatin1("jobs.template"), content))
+	{
+		error(KIO::ERR_INTERNAL, i18n("Unable to load template %1").arg("pseudo.template"));
+		return;
+	}
+
+	if (prt)
+	{
+		content = content
+				 .arg(i18n("Jobs of %1").arg(prt->printerName()))
+				 .arg(i18n("Jobs of %1").arg(prt->printerName()))
+				 .arg(prt->isClass () ?
+						 buildMenu(TQStringList::split('|', i18n("General|Active jobs|Completed jobs"), false),
+							 TQStringList::split('|', "?general|?jobs|?completed_jobs", true),
+							 (completed ? 2 : 1)) :
+						 buildMenu(TQStringList::split('|', i18n("General|Driver|Active jobs|Completed jobs"), false),
+							 TQStringList::split('|', "?general|?driver|?jobs|?completed_jobs", true),
+							 (completed ? 3 : 2)))
+				 .arg(TQString())
+				 .arg(prt->pixmap())
+				 .arg(prt->printerName());
+	}
+	else
+	{
+		content = content
+				 .arg(i18n("All jobs"))
+				 .arg(buildMenu(TQStringList::split('|', i18n("Active jobs|Completed jobs"), false),
+							 TQStringList::split('|', "?jobs|?completed_jobs", true),
+							 (completed ? 1 : 0)))
+				 .arg("fileprint")
+				 .arg(i18n("All jobs"));
+	}
+	content = content.arg(i18n("ID")).arg(i18n("Owner")).arg(i18n("Printer")).arg(i18n("Name")).arg(i18n("State"));
+
+	TQString	jobContent, cellContent("<td>%1</td>\n");
+	TQPtrListIterator<KMJob>	it(mgr->jobList());
+	bool	flag(true);
+	for (; it.current(); ++it, flag = !flag)
+	{
+		jobContent.append("<tr class=\"").append(flag ? "contentyellow" : "contentwhite").append("\">\n");
+		jobContent.append(cellContent.arg(it.current()->id()));
+		jobContent.append(cellContent.arg(it.current()->owner()));
+		jobContent.append(cellContent.arg(it.current()->printer()));
+		jobContent.append(cellContent.arg(it.current()->name()));
+		jobContent.append(cellContent.arg(it.current()->stateString()));
+		jobContent.append("</tr>\n");
+	}
+	content = content.arg(jobContent);
+
+	// remove the current printer to the current list in the job manager
+	if (prt)
+		mgr->removePrinter(prt->printerName(), type);
+	else
+	{
+		TQPtrListIterator<KMPrinter>	pit(*(KMManager::self()->printerList()));
+		for (; pit.current(); ++pit)
+			if (pit.current()->isVirtual() || pit.current()->isSpecial())
+				continue;
+			else
+				mgr->removePrinter(pit.current()->printerName(), type);
+	}
+
+	data(content.local8Bit());
+	finished();
+}
+
+void KIO_Print::showDriver(KMPrinter *prt)
+{
+	mimeType("text/html");
+
+	TQString	content;
+	if (!loadTemplate(TQString::tqfromLatin1("driver.template"), content))
+	{
+		error(KIO::ERR_INTERNAL, i18n("Unable to load template %1").arg("pseudo.template"));
+		return;
+	}
+
+	DrMain	*driver = KMManager::self()->loadPrinterDriver(prt, true);
+	content = content
+			 .arg(i18n("Driver of %1").arg(prt->printerName()))
+			 .arg(i18n("Driver of %1").arg(prt->printerName()))
+			 .arg(buildMenu(TQStringList::split('|', i18n("General|Driver|Active jobs|Completed jobs"), false),
+						 TQStringList::split('|', "?general|?driver|?jobs|?completed_jobs", true),
+						 1))
+			 .arg(TQString())
+			 .arg(prt->pixmap())
+			 .arg(prt->printerName() + "&nbsp;(" + (driver ? driver->get("text") : i18n("No driver found")) + ")");
+
+	if (driver)
+		content = content.arg(buildGroupTable(driver, false));
+	else
+		content = content.arg(TQString());
+
+	data(content.local8Bit());
+	finished();
+}
+
+#include "kio_print.moc"
diff --git a/tdeprint/slave/kio_print.h b/tdeprint/slave/kio_print.h
new file mode 100644
index 000000000..954a3045f
--- /dev/null
+++ b/tdeprint/slave/kio_print.h
@@ -0,0 +1,70 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#ifndef KIO_PRINT_H
+#define KIO_PRINT_H
+
+#include <kio/slavebase.h>
+#include <kio/global.h>
+#include <tqstring.h>
+#include <tqbuffer.h>
+
+class KMPrinter;
+namespace KIO {
+	class Job;
+}
+
+class KIO_Print : public TQObject, public KIO::SlaveBase
+{
+	Q_OBJECT
+public:
+	KIO_Print(const TQCString& pool, const TQCString& app);
+
+	void listDir(const KURL& url);
+	void get(const KURL& url);
+	void stat(const KURL& url);
+
+protected slots:
+	void slotResult( KIO::Job* );
+	void slotData( KIO::Job*, const TQByteArray& );
+	void slotTotalSize( KIO::Job*, KIO::filesize_t );
+	void slotProcessedSize( KIO::Job*, KIO::filesize_t );
+
+private:
+	void listRoot();
+	void listDirDB( const KURL& );
+	void statDB( const KURL& );
+	bool getDBFile( const KURL& );
+	void getDB( const KURL& );
+	void showClassInfo(KMPrinter*);
+	void showPrinterInfo(KMPrinter*);
+	void showSpecialInfo(KMPrinter*);
+	void showData(const TQString&);
+	TQString locateData(const TQString&);
+	void showJobs(KMPrinter *p = 0, bool completed = false);
+	void showDriver(KMPrinter*);
+
+	bool loadTemplate(const TQString& filename, TQString& buffer);
+
+	TQBuffer m_httpBuffer;
+	int     m_httpError;
+	TQString m_httpErrorTxt;
+};
+
+#endif
diff --git a/tdeprint/slave/mimetypes/CMakeLists.txt b/tdeprint/slave/mimetypes/CMakeLists.txt
new file mode 100644
index 000000000..02d289c15
--- /dev/null
+++ b/tdeprint/slave/mimetypes/CMakeLists.txt
@@ -0,0 +1,16 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+install( FILES
+    folder.desktop printer.desktop class.desktop
+    manager.desktop jobs.desktop driver.desktop
+    printermodel.desktop
+  DESTINATION ${MIME_INSTALL_DIR}/print )
diff --git a/tdeprint/slave/mimetypes/Makefile.am b/tdeprint/slave/mimetypes/Makefile.am
new file mode 100644
index 000000000..9992389fe
--- /dev/null
+++ b/tdeprint/slave/mimetypes/Makefile.am
@@ -0,0 +1,3 @@
+mimetype_DATA = folder.desktop printer.desktop class.desktop manager.desktop jobs.desktop \
+				driver.desktop printermodel.desktop
+mimetypedir = $(kde_mimedir)/print
diff --git a/tdeprint/slave/mimetypes/class.desktop b/tdeprint/slave/mimetypes/class.desktop
new file mode 100644
index 000000000..f73b3262d
--- /dev/null
+++ b/tdeprint/slave/mimetypes/class.desktop
@@ -0,0 +1,75 @@
+[Desktop Entry]
+Comment=Class of Printers
+Comment[af]=Klas van Drukkers
+Comment[ar]=فئة الطابعات
+Comment[be]=Клас друкарак
+Comment[bg]=Клас принтери
+Comment[bn]=প্রিন্টার-এর ক্লাস (Class)
+Comment[bs]=Klasa štampača
+Comment[ca]=Classes d'impressores
+Comment[cs]=Třída tiskáren
+Comment[csb]=Klasë drëkerów
+Comment[da]=Klasse af printere
+Comment[de]=Druckerklasse
+Comment[el]=Κλάση εκτυπωτών
+Comment[eo]=Printiloklaso
+Comment[es]=Clase de impresoras
+Comment[et]=Printerite klass
+Comment[eu]=Inprimagailu klasea
+Comment[fa]=ردۀ چاپگرها
+Comment[fi]=Tulostinten luokka
+Comment[fr]=Classe d'imprimantes
+Comment[fy]=Printerklassen
+Comment[ga]=Aicme Printéirí
+Comment[gl]=Clase de impresoras
+Comment[he]=מחלקת מדפסות
+Comment[hi]=प्रिंटर के वर्ग
+Comment[hr]=Klase pisača
+Comment[hu]=Nyomtatóosztály
+Comment[is]=Flokkur prentara
+Comment[it]=Classe di stampanti
+Comment[ja]=プリンタクラス
+Comment[ka]=პრინტერთა კლასი
+Comment[kk]=Принтерлер класы
+Comment[km]=សន្ដាន​ម៉ាស៊ីន​បោះពុម្ព
+Comment[lt]=Spausdintuvų klasė
+Comment[lv]=Drukas iekārtu klase
+Comment[mk]=Класа на печатачи
+Comment[ms]=Kelas Pencetak
+Comment[mt]=Klassi ta' printers
+Comment[nb]=Skriverklasse
+Comment[nds]=Klass vun Druckers
+Comment[ne]=मुद्रकको वर्ग
+Comment[nl]=Printerklassen
+Comment[nn]=Skrivarklasse
+Comment[pa]=ਪਰਿੰਟਰਾਂ ਦਾ ਵਰਗ
+Comment[pl]=Klasa drukarek
+Comment[pt]=Classe de Impressoras
+Comment[pt_BR]=Classes de Impressoras
+Comment[ro]=Clase de imprimante
+Comment[ru]=Класс принтеров
+Comment[rw]=Urwego rwa Mucapyi
+Comment[se]=Čálánluohkát
+Comment[sk]=Trieda tlačiarní
+Comment[sl]=Razred tiskalnikov
+Comment[sr]=Класе штампача
+Comment[sr@Latn]=Klase štampača
+Comment[sv]=Klass av skrivare
+Comment[ta]=அச்சியந்திரங்களின் வகை
+Comment[tg]=Дараҷаи чопгарҳо
+Comment[th]=คลาสของเครื่องพิมพ์
+Comment[tr]=Yazıcı Sınıfı
+Comment[tt]=Basaqlar Törläre
+Comment[uk]=Клас принтерів
+Comment[uz]=Printerlar sinfi
+Comment[uz@cyrillic]=Принтерлар синфи
+Comment[vi]=Lớp Máy in
+Comment[wa]=Classe des scrireces
+Comment[zh_CN]=打印机类
+Comment[zh_TW]=印表機類別
+Icon=print_class
+Type=MimeType
+MimeType=print/class
+Patterns=
+
+X-KDE-AutoEmbed=true
diff --git a/tdeprint/slave/mimetypes/driver.desktop b/tdeprint/slave/mimetypes/driver.desktop
new file mode 100644
index 000000000..36cd08288
--- /dev/null
+++ b/tdeprint/slave/mimetypes/driver.desktop
@@ -0,0 +1,76 @@
+[Desktop Entry]
+Comment=Printer Driver
+Comment[af]=Drukker Aandrywer
+Comment[ar]=سائق الطابعة
+Comment[be]=Драйвер друкаркі
+Comment[bg]=Драйвер за принтер
+Comment[bn]=প্রিন্টার ড্রাইভার
+Comment[br]=Sturier ar voullerez
+Comment[bs]=Drajver štampača
+Comment[ca]=Control·lador d'impressora
+Comment[cs]=Ovladač tiskárny
+Comment[csb]=Czérownik drëkera
+Comment[da]=Printerdriver
+Comment[de]=Druckertreiber
+Comment[el]=Οδηγός εκτυπωτή
+Comment[eo]=Printila pelilo
+Comment[es]=Controlador de impresora
+Comment[et]=Printeri draiver
+Comment[eu]=Inprimagailuaren driverra
+Comment[fa]=گردانندۀ چاپگر
+Comment[fi]=Tulostinajuri
+Comment[fr]=Pilote d'imprimante
+Comment[fy]=Printerstjoerprogramma
+Comment[ga]=Tiománaí Printéara
+Comment[gl]=Controlador da Impresora
+Comment[he]=מנהל התקן המדפסת
+Comment[hi]=प्रिंटर ड्राइवर
+Comment[hr]=Upravljački program pisača
+Comment[hu]=Nyomtatómeghajtó
+Comment[is]=Prentrekill
+Comment[it]=Driver stampante
+Comment[ja]=プリンタドライバ
+Comment[ka]=პრინტერის დრაივერი
+Comment[kk]=Принтердің драйвері
+Comment[km]=កម្មវិធី​បញ្ជា​ម៉ាស៊ីន​បោះពុម្ព
+Comment[lt]=Spausdintuvo tvarkyklė
+Comment[lv]=Printera draiveris
+Comment[mk]=Управувач за печатач
+Comment[ms]=Pemacu Pencetak
+Comment[mt]=Driver tal-printer
+Comment[nb]=Skriverdriver
+Comment[nds]=Druckerdriever
+Comment[ne]=मुद्रक यन्त्र
+Comment[nl]=Printerstuurprogramma
+Comment[nn]=Skrivardrivar
+Comment[pa]=ਪਰਿੰਟਰ ਡਰਾਇਵਰ
+Comment[pl]=Sterownik drukarki
+Comment[pt]=Controlador de Impressora
+Comment[pt_BR]=Driver da Impressora
+Comment[ro]=Driver de imprimantă
+Comment[ru]=Драйвер принтера
+Comment[rw]=Musomyi ya Mucapyi
+Comment[se]=Čálánstivrran
+Comment[sk]=Ovládač tlačiarne
+Comment[sl]=Tiskalniški gonilnik
+Comment[sr]=Управљачки програм за штампач
+Comment[sr@Latn]=Upravljački program za štampač
+Comment[sv]=Skrivardrivrutin
+Comment[ta]=அச்சியந்திர இயக்கி
+Comment[tg]=Драйвери чопгар
+Comment[th]=ไดรเวอร์เครื่องพิมพ์
+Comment[tr]=Yazıcı Sürücüsü
+Comment[tt]=Basaq öçen Driver
+Comment[uk]=Драйвер принтера
+Comment[uz]=Printerning drayveri
+Comment[uz@cyrillic]=Принтернинг драйвери
+Comment[vi]=Trình điều khiển Máy in
+Comment[wa]=Moenneu di scrirece
+Comment[zh_CN]=打印机驱动程序
+Comment[zh_TW]=印表機驅動程式
+Icon=postscript
+Type=MimeType
+MimeType=print/driver
+Patterns=
+
+X-KDE-AutoEmbed=true
diff --git a/tdeprint/slave/mimetypes/folder.desktop b/tdeprint/slave/mimetypes/folder.desktop
new file mode 100644
index 000000000..312c863a3
--- /dev/null
+++ b/tdeprint/slave/mimetypes/folder.desktop
@@ -0,0 +1,76 @@
+[Desktop Entry]
+Comment=Print Folder
+Comment[af]=Drukker Gids
+Comment[ar]=مجلد الطباعة
+Comment[be]=Тэчка друку
+Comment[bg]=Директория на печата
+Comment[bn]=মুদ্রণ ফোল্ডার
+Comment[br]=Renkell moulañ
+Comment[bs]=Direktorij za štampu
+Comment[ca]=Carpeta d'impressió
+Comment[cs]=Složka tisku
+Comment[csb]=Katalog drëkòwaniô
+Comment[cy]=Dogfen argraffu
+Comment[da]=Udskriftsmappe
+Comment[de]=Druckordner
+Comment[el]=Φάκελος εκτυπώσεων
+Comment[eo]=Printa dosierujo
+Comment[es]=Carpeta de impresión
+Comment[et]=Trükkimise kataloog
+Comment[eu]=Inprimaketa karpeta
+Comment[fa]=پوشۀ چاپ
+Comment[fi]=Tulostuskansio
+Comment[fr]=Dossier d'impression
+Comment[fy]=printmap
+Comment[ga]=Fillteán Priontála
+Comment[gl]=Cartafol de Impresión
+Comment[he]=תיקיית הדפסה
+Comment[hr]=Mapa pisača
+Comment[hu]=Nyomtatáskezelő-mappa
+Comment[is]=Prentmappa
+Comment[it]=Cartella di stampa
+Comment[ja]=印刷フォルダ
+Comment[ka]=საბეჭდი საქაღალდე
+Comment[kk]=Басып шығару қапшығы
+Comment[km]=ថត​បោះពុម្ព
+Comment[ko]=홈 폴더
+Comment[lt]=Spausdinimo aplankas
+Comment[mk]=Папка за печатење
+Comment[ms]=Cetak Folder
+Comment[nb]=Skrivermappe
+Comment[nds]=Druckorner
+Comment[ne]=मुद्रण फोल्डर
+Comment[nl]=Afdrukmap
+Comment[nn]=Skrivarmappe
+Comment[pa]=ਛਪਾਈ ਫੋਲਡਰ
+Comment[pl]=Folder drukowania
+Comment[pt]=Pasta de Impressão
+Comment[pt_BR]=Pasta de Impressão
+Comment[ro]=Folder de tipărire
+Comment[ru]=Папка печати
+Comment[rw]=Gucapa Ububiko
+Comment[se]=Čálihanmáhppa
+Comment[sk]=Priečinok tlače
+Comment[sl]=Tiskalniška mapa
+Comment[sr]=Фасцикла за штампање
+Comment[sr@Latn]=Fascikla za štampanje
+Comment[sv]=Skrivarkatalog
+Comment[ta]=அச்சிடும் அடைவு
+Comment[tg]=Феҳристи чоп
+Comment[th]=โฟลเดอร์งานพิมพ์
+Comment[tr]=Yazdırma dizinidizini
+Comment[tt]=Bastıru Törgäge
+Comment[uk]=Тека друку
+Comment[uz]=Bosib chiqarish jildi
+Comment[uz@cyrillic]=Босиб чиқариш жилди
+Comment[vi]=Thư mục In ấn
+Comment[wa]=Ridant d' imprimaedje
+Comment[zh_CN]=打印文件夹
+Comment[zh_TW]=列印資料夾
+Icon=folder_print
+Type=MimeType
+MimeType=print/folder
+Patterns=
+
+X-KDE-AutoEmbed=true
+X-KDE-IsAlso=inode/directory
diff --git a/tdeprint/slave/mimetypes/jobs.desktop b/tdeprint/slave/mimetypes/jobs.desktop
new file mode 100644
index 000000000..5a92ceaa5
--- /dev/null
+++ b/tdeprint/slave/mimetypes/jobs.desktop
@@ -0,0 +1,85 @@
+[Desktop Entry]
+Comment=Print Jobs
+Comment[af]=Drukker Werke
+Comment[ar]=مهمات الطباعة
+Comment[be]=Заданні друку
+Comment[bg]=Задания за печат
+Comment[bn]=মুদ্রণ তালিকা
+Comment[bs]=Zadaci štampe
+Comment[ca]=Tasques d'impressió
+Comment[cs]=Tiskové úlohy
+Comment[csb]=Pòlétë drëkòwaniô
+Comment[cy]=Swyddi Argraffu
+Comment[da]=Udskriftsjob
+Comment[de]=Druckaufträge
+Comment[el]=Εργασίες εκτύπωσης
+Comment[eo]=Printaj taskoj
+Comment[es]=Trabajos de impresión
+Comment[et]=Trükitööd
+Comment[eu]=Inprimatze lanak
+Comment[fa]=چاپ کارها
+Comment[fi]=Tulostustyöt
+Comment[fr]=Tâches d'impression
+Comment[fy]=Printtaken
+Comment[ga]=Jabanna Priontála
+Comment[gl]=Traballos de Impresión
+Comment[he]=עבודות הדפסה
+Comment[hi]=प्रिंट कार्य
+Comment[hr]=Zadaci ispisivanja
+Comment[hu]=Nyomtatási feladatok
+Comment[is]=Prentverk
+Comment[it]=Lavori di stampa
+Comment[ja]=印刷ジョブ
+Comment[ka]=ბეჭდვის დავალებები
+Comment[kk]=Басу тапсырмалары
+Comment[km]=ការងារ​បោះពុម្ព
+Comment[lo]=ໂຟນເດີງານພິມ
+Comment[lt]=Spausdinimo užduotys
+Comment[lv]=Drukas darbi
+Comment[mk]=Печатарски задачи
+Comment[mn]=Хэвлэх даалгавар
+Comment[ms]=Cetak Kerja
+Comment[mt]=Xogħlijiet ta' pprintjar
+Comment[nb]=Skriverjobber
+Comment[nds]=Druckopgaven
+Comment[ne]=मुद्रण कार्य
+Comment[nl]=Afdruktaken
+Comment[nn]=Utskriftsjobbar
+Comment[nso]=Mesomo ya Kgatiso
+Comment[pa]=ਪਰਿੰਟ ਕੰਮ
+Comment[pl]=Zadania drukowania
+Comment[pt]=Tarefas de Impressão
+Comment[pt_BR]=Imprimir trabalhos
+Comment[ro]=Lucrări de tipărit
+Comment[ru]=Задания печати
+Comment[rw]=Gucapa Imirimo
+Comment[se]=Čálihanbarggut
+Comment[sk]=Tlačové úlohy
+Comment[sl]=Tiskalna opravila
+Comment[sr]=Послови штампе
+Comment[sr@Latn]=Poslovi štampe
+Comment[sv]=Skrivarjobb
+Comment[ta]=அச்சு வேலைகள்
+Comment[te]=ప్రచురణ పనులు
+Comment[tg]=Чопҳо
+Comment[th]=งานพิมพ์
+Comment[tr]=Yazdırma işleri
+Comment[tt]=Bastıru Eşläre
+Comment[uk]=Завдання друку
+Comment[uz]=Bosib chiqarish vazifalari
+Comment[uz@cyrillic]=Босиб чиқариш вазифалари
+Comment[ven]=Mishumo yau phirintha
+Comment[vi]=Tác vụ In ấn
+Comment[wa]=Bouyes d' imprimaedje
+Comment[xh]=Imisebenzi Yoshicilelo
+Comment[zh_CN]=打印任务
+Comment[zh_TW]=列印工作
+Comment[zu]=Imisebenzi Yokushicilela
+Icon=fileprint
+Type=MimeType
+MimeType=print/jobs
+Patterns=
+
+X-KDE-AutoEmbed=true
+X-KDE-IsAlso=inode/directory
+
diff --git a/tdeprint/slave/mimetypes/manager.desktop b/tdeprint/slave/mimetypes/manager.desktop
new file mode 100644
index 000000000..7b8cd0671
--- /dev/null
+++ b/tdeprint/slave/mimetypes/manager.desktop
@@ -0,0 +1,87 @@
+[Desktop Entry]
+Comment=Print Management Tool
+Comment[af]=Drukker Bestuur Program
+Comment[ar]=أداة إدارة الطباعة
+Comment[az]=Çap Edici İdarə Vasitəsi
+Comment[be]=Кіраўнік друку
+Comment[bg]=Програма за управление на печата
+Comment[bn]=মুদ্রণ ম্যানেজমেন্ট টুল
+Comment[br]=Ostilh mererezh moulañ
+Comment[bs]=Alat za upravljanje štampanjem
+Comment[ca]=Eina per a la gestió de la impressió
+Comment[cs]=Nástroj pro správu tiskáren
+Comment[csb]=Sprôwianié wëdrëkama
+Comment[cy]=Erfyn rheoli argraffu
+Comment[da]=Udskriftshåndteringsværktøj
+Comment[de]=Dienstprogramm zur Druckerverwaltung
+Comment[el]=Εργαλείο διαχείρισης εκτυπώσεων
+Comment[eo]=Administrilo por printado
+Comment[es]=Herramienta de gestión de la impresión
+Comment[et]=Trükkimise haldur
+Comment[eu]=Inprimaketak kudeatzeko tresna
+Comment[fa]=ابزار مدیریت چاپ
+Comment[fi]=Tulostuksenhallinta
+Comment[fr]=Gestionnaire d'impression
+Comment[fy]=Helpprogramma foar printerbehear
+Comment[ga]=Uirlis Bhainisteoireacht Priontála
+Comment[gl]=Ferramenta de Xestión das Impresións
+Comment[he]=כלי ניהול הדפסה
+Comment[hi]=छापा प्रबंधन औज़ार
+Comment[hr]=Alat za upravljanje ispisivanjem
+Comment[hu]=Nyomtatáskezelő segédprogram
+Comment[is]=Prentunartól
+Comment[it]=Strumento per la gestione della stampa
+Comment[ja]=印刷マネージメントツール
+Comment[ka]=ბეჭდვის მართვის ხელსაწყო
+Comment[kk]=Басып шығаруды басқару құралы
+Comment[km]=ឧបករណ៍​គ្រប់គ្រង​ការ​បោះពុម្ព
+Comment[ko]=휴대폰 관리 도구
+Comment[lo]=ເຄື່ອງມືຈັດການການພິມ
+Comment[lt]=Spausdinimo valdymo įrankis
+Comment[lv]=Drukas Menedžmenta Rīks
+Comment[mk]=Алатка за менаџмент на печатење
+Comment[mn]=Хэвлэгчийн удирдлагын програм
+Comment[ms]=Cetak Alat Pengurusan
+Comment[mt]=Għodda għall-immaniġġjar tal-ipprintjar
+Comment[nb]=Verktøy for skriverbehandling
+Comment[nds]=Druckpleeg-Warktüüch
+Comment[ne]=मुद्रण प्रबन्धक उपकरण
+Comment[nl]=Hulpprogramma voor printerbeheer
+Comment[nn]=Verktøy for utskriftshandsaming
+Comment[nso]=Sebereka sa Taolo ya Kgatiso
+Comment[pa]=ਪਰਿੰਟ ਪਰਬੰਧਨ ਸੰਦ
+Comment[pl]=Zarządzanie wydrukiem
+Comment[pt]=Ferramenta de gestão de impressão
+Comment[pt_BR]=Ferramenta de Gerenciamento de Impressão
+Comment[ro]=Utilitar de administrare a tipăririi
+Comment[ru]=Утилита управления печатью
+Comment[rw]=Igikoresho Ubuyobozi Gucapa 
+Comment[se]=Reaiddut čáliheami várás
+Comment[sk]=Nástroj na správu tlače
+Comment[sl]=Orodje za upravljanje tiskanja
+Comment[sr]=Алат за управљање штампом
+Comment[sr@Latn]=Alat za upravljanje štampom
+Comment[sv]=Verktyg för att hantera utskrifter
+Comment[ta]=அச்சு மேலாண்மை கருவி
+Comment[tg]=Обзори мудирияти чоп
+Comment[th]=เครื่องมือจัดการการพิมพ์
+Comment[tr]=Yazdırma Yönetim Aracı
+Comment[tt]=Bastıru İdäneñ Qoralı
+Comment[uk]=Засіб керування друком
+Comment[uz]=Bosib chiqarishni boshqarish vositasi
+Comment[uz@cyrillic]=Босиб чиқаришни бошқариш воситаси
+Comment[ven]=Tshishumiswa tsha vhulanguli hau phirintha
+Comment[vi]=Công cụ Quản lí In ấn
+Comment[wa]=Usteye po manaedjî l' imprimaedje
+Comment[xh]=Isixhobo Sophatho Sokushicilela
+Comment[zh_CN]=打印管理工具
+Comment[zh_TW]=列印管理工具
+Comment[zu]=Ithuluzi Lokuphatha Ushicilelo
+Icon=wizard
+Type=MimeType
+MimeType=print/manager
+Patterns=
+
+X-KDE-AutoEmbed=true
+X-KDE-IsAlso=inode/directory
+
diff --git a/tdeprint/slave/mimetypes/printer.desktop b/tdeprint/slave/mimetypes/printer.desktop
new file mode 100644
index 000000000..905a08d34
--- /dev/null
+++ b/tdeprint/slave/mimetypes/printer.desktop
@@ -0,0 +1,79 @@
+[Desktop Entry]
+Comment=Printer
+Comment[af]=Drukker
+Comment[ar]=الطابعة
+Comment[az]=Çap Edici
+Comment[be]=Друкарка
+Comment[bg]=Принтер
+Comment[bn]=প্রিন্টার
+Comment[br]=Moulañ
+Comment[bs]=Štampač
+Comment[ca]=Impressora
+Comment[cs]=Tiskárna
+Comment[csb]=Drëker
+Comment[cy]=Argraffydd
+Comment[de]=Drucker
+Comment[el]=Εκτυπωτής
+Comment[eo]=Printilo
+Comment[es]=Impresora
+Comment[eu]=Inprimagailua
+Comment[fa]=چاپگر
+Comment[fi]=Tulostin
+Comment[fr]=Imprimante
+Comment[ga]=Printéir
+Comment[gl]=Impresora
+Comment[he]=מדפסת
+Comment[hi]=प्रिंटर
+Comment[hr]=Pisač
+Comment[hu]=Nyomtató
+Comment[is]=Prentari
+Comment[it]=Stampante
+Comment[ja]=プリンタ
+Comment[ka]=პრინტერი
+Comment[kk]=Принтер
+Comment[km]=ម៉ាស៊ីន​បោះពុម្ព
+Comment[lo]=ເຄື່ອງພິມ
+Comment[lt]=Spausdintuvas
+Comment[lv]=Drukas Iekārta
+Comment[mk]=Печатач
+Comment[mn]=Хэвлэгч
+Comment[ms]=Pencetak
+Comment[nb]=Skriver
+Comment[nds]=Drucker
+Comment[ne]=मुद्रक
+Comment[nn]=Skrivar
+Comment[nso]=Segatisi
+Comment[pa]=ਪਰਿੰਟਰ
+Comment[pl]=Drukarka
+Comment[pt]=Impressora
+Comment[pt_BR]=Impressora
+Comment[ro]=Imprimantă
+Comment[ru]=Принтер
+Comment[rw]=Mucapyi
+Comment[se]=Čálán
+Comment[sk]=Tlačiareň
+Comment[sl]=Tiskalnik
+Comment[sr]=Штампач
+Comment[sr@Latn]=Štampač
+Comment[sv]=Skrivare
+Comment[ta]=அச்சியந்திரம்
+Comment[te]=ప్రింటర్
+Comment[tg]=Чопгар
+Comment[th]=เครื่องพิมพ์
+Comment[tr]=Yazıcı
+Comment[tt]=Basaq
+Comment[uk]=Принтер
+Comment[uz@cyrillic]=Принтер
+Comment[ven]=phirinthara
+Comment[vi]=Máy in
+Comment[wa]=Sicrirece
+Comment[xh]=Umshicileli
+Comment[zh_CN]=打印机
+Comment[zh_TW]=印表機
+Comment[zu]=Umshicileli
+Icon=printer1
+Type=MimeType
+MimeType=print/printer
+Patterns=
+
+X-KDE-AutoEmbed=true
diff --git a/tdeprint/slave/mimetypes/printermodel.desktop b/tdeprint/slave/mimetypes/printermodel.desktop
new file mode 100644
index 000000000..f6a471e41
--- /dev/null
+++ b/tdeprint/slave/mimetypes/printermodel.desktop
@@ -0,0 +1,78 @@
+[Desktop Entry]
+Comment=Printer Model
+Comment[af]=Drukker Model
+Comment[ar]=طراز الطابعة
+Comment[be]=Мадэль друкаркі
+Comment[bg]=Модел принтер
+Comment[bn]=প্রিন্টার মডেল
+Comment[br]=Gobari ar voullerez
+Comment[bs]=Model štampača
+Comment[ca]=Model d'impressora
+Comment[cs]=Model tiskárny
+Comment[csb]=Ôrt drëkera
+Comment[cy]=Model Argraffydd
+Comment[da]=Printermodel
+Comment[de]=Druckermodell
+Comment[el]=Μοντέλο εκτυπωτή
+Comment[eo]=Printila modelo
+Comment[es]=Modelo de impresora
+Comment[et]=Printeri mudel
+Comment[eu]=Inprimagailuaren modeloa
+Comment[fa]=مدل چاپگر
+Comment[fi]=Tulostinmalli
+Comment[fr]=Modèle d'imprimante
+Comment[fy]=Printermodel
+Comment[ga]=Déanamh an Phrintéara
+Comment[gl]=Modelo da Impresora
+Comment[he]=דגם המדפסת
+Comment[hi]=प्रिंटर मॉडल
+Comment[hr]=Model pisača
+Comment[hu]=Nyomtatótípus
+Comment[is]=Prentaragerð
+Comment[it]=Modello stampante
+Comment[ja]=プリンタモデル
+Comment[ka]=პრინტერის მოდელი
+Comment[kk]=Принтер үлгісі
+Comment[km]=ម៉ូដែលម៉ាស៊ីន​បោះពុម្ព
+Comment[ko]=제어판 모듈
+Comment[lt]=Spausdintuvo modelis
+Comment[lv]=Drukas Iekārtas modelis
+Comment[mk]=Модел на печатач
+Comment[ms]=Model Pencetak
+Comment[mt]=Mudell tal-printer
+Comment[nb]=Skrivermodell
+Comment[nds]=Druckermodell
+Comment[ne]=मुद्रक नमूना
+Comment[nl]=Printermodel
+Comment[nn]=Skrivarmodell
+Comment[pa]=ਪਰਿੰਟਰ ਮਾਡਲ
+Comment[pl]=Model drukarki
+Comment[pt]=Modelo de Impressora
+Comment[pt_BR]=Modelo de Impressora
+Comment[ro]=Model de imprimantă
+Comment[ru]=Модель принтера
+Comment[rw]=Moderi Mucapyi
+Comment[se]=Čálánmálle
+Comment[sk]=Model tlačiarne
+Comment[sl]=Model tiskalnika
+Comment[sr]=Модел штампача
+Comment[sr@Latn]=Model štampača
+Comment[sv]=Skrivarmodell
+Comment[ta]=அச்சியந்திர மாதிரி
+Comment[tg]=Намунаи чопгар
+Comment[th]=รุ่นของเครื่องพิมพ์
+Comment[tr]=Yazıcı Modeli
+Comment[tt]=Basaq Töre
+Comment[uk]=Модель принтера
+Comment[uz]=Printerning modeli
+Comment[uz@cyrillic]=Принтернинг модели
+Comment[vi]=Loại Máy in
+Comment[wa]=Modele del sicrirece
+Comment[zh_CN]=打印机型号
+Comment[zh_TW]=印表機型號
+Icon=printer1
+Type=MimeType
+MimeType=print/printermodel
+Patterns=
+
+X-KDE-AutoEmbed=true
diff --git a/tdeprint/slave/pics/.gitignore b/tdeprint/slave/pics/.gitignore
new file mode 100644
index 000000000..e69de29bb
diff --git a/tdeprint/slave/print.protocol b/tdeprint/slave/print.protocol
new file mode 100644
index 000000000..38989160b
--- /dev/null
+++ b/tdeprint/slave/print.protocol
@@ -0,0 +1,15 @@
+[Protocol]
+exec=kio_print
+protocol=print
+input=none
+output=filesystem
+listing=Name,Type,Access
+reading=true
+writing=false
+makedir=false
+deleting=false
+moving=false
+linking=false
+Icon=postscript
+DocPath=kioslave/print.html
+defaultMimetype=application/octet-stream
diff --git a/tdeprint/slave/printdb.protocol b/tdeprint/slave/printdb.protocol
new file mode 100644
index 000000000..539edd596
--- /dev/null
+++ b/tdeprint/slave/printdb.protocol
@@ -0,0 +1,14 @@
+[Protocol]
+exec=kio_print
+protocol=printdb
+input=none
+output=filesystem
+listing=Name,Type,Access
+reading=true
+writing=false
+makedir=false
+deleting=false
+moving=false
+linking=false
+Icon=postscript
+defaultMimetype=application/octet-stream
diff --git a/tdeprint/slave/templates/CMakeLists.txt b/tdeprint/slave/templates/CMakeLists.txt
new file mode 100644
index 000000000..f2344a0df
--- /dev/null
+++ b/tdeprint/slave/templates/CMakeLists.txt
@@ -0,0 +1,25 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+install( FILES
+    class.template printer.template pseudo.template
+    jobs.template driver.template bar-bottom-left.png
+    bar-top-middle.png box-bottom-middle.png
+    box-top-middle.png bar-bottom-middle.png
+    bar-top-right.png box-bottom-right.png
+    box-top-right.png bar-bottom-right.png
+    bottom-left.png box-centre-tdeprint.png
+    top-left.png bar-middle-left.png bottom-middle.png
+    box-middle-left.png top-middle.png bar-middle-right.png
+    bottom-right.png box-middle-right.png top-right-tdeprint.png
+    bar-top-left.png box-bottom-left.png box-top-left.png
+    htmlstyles.css
+  DESTINATION ${DATA_INSTALL_DIR}/tdeprint/template )
diff --git a/tdeprint/slave/templates/Makefile.am b/tdeprint/slave/templates/Makefile.am
new file mode 100644
index 000000000..3f23f9d2d
--- /dev/null
+++ b/tdeprint/slave/templates/Makefile.am
@@ -0,0 +1,31 @@
+template_DATA = class.template \
+		printer.template \
+		pseudo.template \
+		jobs.template \
+		driver.template \
+		bar-bottom-left.png \
+		bar-top-middle.png \
+		box-bottom-middle.png \
+		box-top-middle.png \
+		bar-bottom-middle.png \
+		bar-top-right.png \
+		box-bottom-right.png \
+		box-top-right.png \
+		bar-bottom-right.png \
+		bottom-left.png \
+		box-centre-tdeprint.png \
+		top-left.png \
+		bar-middle-left.png \
+		bottom-middle.png \
+		box-middle-left.png \
+		top-middle.png \
+		bar-middle-right.png \
+		bottom-right.png \
+		box-middle-right.png \
+		top-right-tdeprint.png \
+		bar-top-left.png \
+		box-bottom-left.png \
+		box-top-left.png \
+		htmlstyles.css
+
+templatedir = $(kde_datadir)/tdeprint/template
diff --git a/tdeprint/slave/templates/bar-bottom-left.png b/tdeprint/slave/templates/bar-bottom-left.png
new file mode 100644
index 000000000..30a323592
Binary files /dev/null and b/tdeprint/slave/templates/bar-bottom-left.png differ
diff --git a/tdeprint/slave/templates/bar-bottom-middle.png b/tdeprint/slave/templates/bar-bottom-middle.png
new file mode 100644
index 000000000..b2ebbbed5
Binary files /dev/null and b/tdeprint/slave/templates/bar-bottom-middle.png differ
diff --git a/tdeprint/slave/templates/bar-bottom-right.png b/tdeprint/slave/templates/bar-bottom-right.png
new file mode 100644
index 000000000..e664e1511
Binary files /dev/null and b/tdeprint/slave/templates/bar-bottom-right.png differ
diff --git a/tdeprint/slave/templates/bar-middle-left.png b/tdeprint/slave/templates/bar-middle-left.png
new file mode 100644
index 000000000..72fda9ec2
Binary files /dev/null and b/tdeprint/slave/templates/bar-middle-left.png differ
diff --git a/tdeprint/slave/templates/bar-middle-right.png b/tdeprint/slave/templates/bar-middle-right.png
new file mode 100644
index 000000000..eb8d3201c
Binary files /dev/null and b/tdeprint/slave/templates/bar-middle-right.png differ
diff --git a/tdeprint/slave/templates/bar-top-left.png b/tdeprint/slave/templates/bar-top-left.png
new file mode 100644
index 000000000..b05fd216c
Binary files /dev/null and b/tdeprint/slave/templates/bar-top-left.png differ
diff --git a/tdeprint/slave/templates/bar-top-middle.png b/tdeprint/slave/templates/bar-top-middle.png
new file mode 100644
index 000000000..387f81017
Binary files /dev/null and b/tdeprint/slave/templates/bar-top-middle.png differ
diff --git a/tdeprint/slave/templates/bar-top-right.png b/tdeprint/slave/templates/bar-top-right.png
new file mode 100644
index 000000000..a552ff91d
Binary files /dev/null and b/tdeprint/slave/templates/bar-top-right.png differ
diff --git a/tdeprint/slave/templates/bottom-left.png b/tdeprint/slave/templates/bottom-left.png
new file mode 100644
index 000000000..78c9fece3
Binary files /dev/null and b/tdeprint/slave/templates/bottom-left.png differ
diff --git a/tdeprint/slave/templates/bottom-middle.png b/tdeprint/slave/templates/bottom-middle.png
new file mode 100644
index 000000000..41e52dd8a
Binary files /dev/null and b/tdeprint/slave/templates/bottom-middle.png differ
diff --git a/tdeprint/slave/templates/bottom-right.png b/tdeprint/slave/templates/bottom-right.png
new file mode 100644
index 000000000..ef81b04a8
Binary files /dev/null and b/tdeprint/slave/templates/bottom-right.png differ
diff --git a/tdeprint/slave/templates/box-bottom-left.png b/tdeprint/slave/templates/box-bottom-left.png
new file mode 100644
index 000000000..650fa5743
Binary files /dev/null and b/tdeprint/slave/templates/box-bottom-left.png differ
diff --git a/tdeprint/slave/templates/box-bottom-middle.png b/tdeprint/slave/templates/box-bottom-middle.png
new file mode 100644
index 000000000..2bcd3ea03
Binary files /dev/null and b/tdeprint/slave/templates/box-bottom-middle.png differ
diff --git a/tdeprint/slave/templates/box-bottom-right.png b/tdeprint/slave/templates/box-bottom-right.png
new file mode 100644
index 000000000..975aaeed7
Binary files /dev/null and b/tdeprint/slave/templates/box-bottom-right.png differ
diff --git a/tdeprint/slave/templates/box-centre-tdeprint.png b/tdeprint/slave/templates/box-centre-tdeprint.png
new file mode 100644
index 000000000..97da1910e
Binary files /dev/null and b/tdeprint/slave/templates/box-centre-tdeprint.png differ
diff --git a/tdeprint/slave/templates/box-middle-left.png b/tdeprint/slave/templates/box-middle-left.png
new file mode 100644
index 000000000..62a720178
Binary files /dev/null and b/tdeprint/slave/templates/box-middle-left.png differ
diff --git a/tdeprint/slave/templates/box-middle-right.png b/tdeprint/slave/templates/box-middle-right.png
new file mode 100644
index 000000000..aa94c0c90
Binary files /dev/null and b/tdeprint/slave/templates/box-middle-right.png differ
diff --git a/tdeprint/slave/templates/box-top-left.png b/tdeprint/slave/templates/box-top-left.png
new file mode 100644
index 000000000..34aba9195
Binary files /dev/null and b/tdeprint/slave/templates/box-top-left.png differ
diff --git a/tdeprint/slave/templates/box-top-middle.png b/tdeprint/slave/templates/box-top-middle.png
new file mode 100644
index 000000000..7ee2a0738
Binary files /dev/null and b/tdeprint/slave/templates/box-top-middle.png differ
diff --git a/tdeprint/slave/templates/box-top-right.png b/tdeprint/slave/templates/box-top-right.png
new file mode 100644
index 000000000..26d16d313
Binary files /dev/null and b/tdeprint/slave/templates/box-top-right.png differ
diff --git a/tdeprint/slave/templates/class.template b/tdeprint/slave/templates/class.template
new file mode 100644
index 000000000..b6a79a1fd
--- /dev/null
+++ b/tdeprint/slave/templates/class.template
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
+
+  <title>%1</title>
+<style type="text/css">
+/*<![CDATA[*/
+img {margin: 0px; padding: 0px}
+body {margin: 0px; padding: 0px; background-color: #418ade;}
+.bar_text a {color: #008;};
+/*]]>*/
+</style>
+<link rel="stylesheet" href="htmlstyles.css" type="text/css" />
+</head>
+
+<body>
+  <div style=
+  "background-image: url(top-middle.png); width: 100%; height: 131px;">
+  <div style="position: absolute; right: 0px;">
+      <img src="top-right-tdeprint.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style="position: absolute; left: 0px;">
+      <img src="top-left.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style=
+    "position: absolute; top: 25px; right: 100px; text-align: right; font-size: xx-large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
+    %1 <!-- Konqueror -->
+    </div>
+
+    <div style=
+    "position: absolute; top: 70px; right: 100px; text-align: right; font-size: large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
+    %1 <!-- Conquer your Desktop -->
+    </div>
+  </div><!-- the bar -->
+
+  <div style=
+  "width: 100%; background-image: url(bar-middle-right.png); background-repeat: repeat-y; background-position: right; background-color: #57a1d8;">
+  <div style=
+  "width: 100%; height: 19px; background-image: url(bar-top-middle.png);">
+    <div style="width: 22px; height: 19px; float: left;">
+        <img src="bar-top-left.png" style="margin: 0px" alt="" />
+      </div>
+
+      <div style="width: 22px; height: 19px; float: right;">
+        <img src="bar-top-right.png" style="margin: 0px" alt="" />
+      </div>
+    </div>
+
+    <div style=
+    "width: 100%; background-image: url(bar-middle-left.png); background-repeat: repeat-y; text-align: center; color: white;"
+    class="bar_text">
+      %1      <!-- Menu -->
+    </div>
+
+    <div style=
+    "width: 100%; height: 25px; background-image: url(bar-bottom-middle.png);">
+    <div style="width: 22px; height: 25px; float: left;">
+        <img src="bar-bottom-left.png" style="margin: 0px" alt="" />
+      </div>
+
+      <div style="width: 22px; height: 25px; float: right;">
+        <img src="bar-bottom-right.png" style="margin: 0px" alt="" />
+      </div>
+    </div>
+  </div><!-- the main text box -->
+
+  <div align="center">
+    <div style=
+    "width: 90%; background-image: url(box-middle-right.png); background-repeat: repeat-y; background-position: right;">
+    <div style=
+    "width: 100%; height: 35px; background-image: url(box-top-middle.png);">
+      <div style="width: 20px; height: 35px; float: left;">
+          <img src="box-top-left.png" style="margin: 0px" alt="" />
+        </div>
+
+        <div style="width: 20px; height: 35px; float: right;">
+          <img src="box-top-right.png" style="margin: 0px" alt="" />
+        </div>
+      </div>
+
+      <div style=
+      "width: 100%; background-image: url(box-middle-left.png); background-repeat: repeat-y; text-align: center">
+      <div style=
+      "background-image: url(box-centre-tdeprint.png); background-repeat: no-repeat; background-color: #dfe7f3; background-position: top right; margin-left: 20px; margin-right: 20px;">
+	<h2 style="margin-top: 0px;"><img src="%1" width="32" height="32"/>&nbsp;%1<!--Title--></h2>
+	
+	<table border="1" cellspacing="0" cellpadding="1" width="100%">
+	  <tr class="top" align="left" valign="middle">
+	    <td>&nbsp;%1
+	      <!-- Printer Name --> </td>
+	  </tr>
+	  
+	  <tr>
+	    <td>
+	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
+		<tr class="contentyellow">
+		  <td width="40%">%1 </td>
+		  
+		  <td width="58%">%1 <!--Type--></td>
+		</tr>
+		
+		<tr class="contentwhite">
+		  <td>%1 </td>
+		  
+		  <td>%1 <!-- State--></td>
+		</tr>
+		
+		<tr class="contentyellow">
+		  <td>%1 </td>
+		  
+		  <td>%1 <!-- Location --></td>
+		</tr>
+		
+		<tr class="contentwhite">
+		  <td>%1 </td>
+		  
+		  <td>%1 <!-- Description --></td>
+		</tr>
+		
+		<tr class="contentyellow">
+		  <td>%1 </td>
+		  
+		  <td>%1 <!-- URI --></td>
+		</tr>
+		
+	      </table>
+	    </td>
+	  </tr>
+	</table>
+	
+      </p>
+      
+      <p>
+	
+	<table border="1" cellspacing="0" cellpadding="2" width="100%">
+	  <tr class="top" align="left" valign="middle">
+	    <td>&nbsp;%1
+	      <!-- Members --></td>
+	  </tr>
+	  
+	  <tr>
+	    <td>
+	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
+		<tr class="contentyellow">
+		  <td width="100%">%1</td>
+		  
+		</tr>
+		
+	      </table>
+	    </td>
+	  </tr>
+	</table>
+
+        </div>
+      </div>
+
+      <div style=
+      "width: 100%; height: 22px; background-image: url(box-bottom-middle.png);">
+      <div style="width: 25px; height: 22px; float: left;">
+          <img src="box-bottom-left.png" style="margin: 0px" alt="" />
+        </div>
+
+        <div style="width: 25px; height: 22px; float: right;">
+          <img src="box-bottom-right.png" style="margin: 0px" alt="" />
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <div style=
+  "background-image: url(bottom-middle.png); width: 100%; height: 100px;">
+  <div style="position: absolute; right: 0px;">
+      <img src="bottom-right.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style="position: absolute; left: 0px;">
+      <img src="bottom-left.png" style="margin: 0px" alt="" />
+    </div>
+  </div>
+</body>
+</html>
diff --git a/tdeprint/slave/templates/driver.template b/tdeprint/slave/templates/driver.template
new file mode 100644
index 000000000..8ba428e74
--- /dev/null
+++ b/tdeprint/slave/templates/driver.template
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
+
+  <title>%1</title>
+<style type="text/css">
+/*<![CDATA[*/
+img {margin: 0px; padding: 0px}
+body {margin: 0px; padding: 0px; background-color: #418ade;}
+.bar_text a {color: #008;};
+/*]]>*/
+</style>
+<link rel="stylesheet" href="htmlstyles.css" type="text/css" />
+</head>
+
+<body>
+  <div style=
+  "background-image: url(top-middle.png); width: 100%; height: 131px;">
+  <div style="position: absolute; right: 0px;">
+      <img src="top-right-tdeprint.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style="position: absolute; left: 0px;">
+      <img src="top-left.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style=
+    "position: absolute; top: 25px; right: 100px; text-align: right; font-size: xx-large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
+    %1 <!-- Konqueror -->
+    </div>
+
+    <div style=
+    "position: absolute; top: 70px; right: 100px; text-align: right; font-size: large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
+    %1 <!-- Conquer your Desktop -->
+    </div>
+  </div><!-- the bar -->
+
+  <div style=
+  "width: 100%; background-image: url(bar-middle-right.png); background-repeat: repeat-y; background-position: right; background-color: #57a1d8;">
+  <div style=
+  "width: 100%; height: 19px; background-image: url(bar-top-middle.png);">
+    <div style="width: 22px; height: 19px; float: left;">
+        <img src="bar-top-left.png" style="margin: 0px" alt="" />
+      </div>
+
+      <div style="width: 22px; height: 19px; float: right;">
+        <img src="bar-top-right.png" style="margin: 0px" alt="" />
+      </div>
+    </div>
+
+    <div style=
+    "width: 100%; background-image: url(bar-middle-left.png); background-repeat: repeat-y; text-align: center; color: white;"
+    class="bar_text">
+      %1      <!-- Menu -->
+    </div>
+
+    <div style=
+    "width: 100%; height: 25px; background-image: url(bar-bottom-middle.png);">
+    <div style="width: 22px; height: 25px; float: left;">
+        <img src="bar-bottom-left.png" style="margin: 0px" alt="" />
+      </div>
+
+      <div style="width: 22px; height: 25px; float: right;">
+        <img src="bar-bottom-right.png" style="margin: 0px" alt="" />
+      </div>
+    </div>
+  </div><!-- the main text box -->
+
+  <div align="center">
+    <div style=
+    "width: 90%; background-image: url(box-middle-right.png); background-repeat: repeat-y; background-position: right;">
+    <div style=
+    "width: 100%; height: 35px; background-image: url(box-top-middle.png);">
+      <div style="width: 20px; height: 35px; float: left;">
+          <img src="box-top-left.png" style="margin: 0px" alt="" />
+        </div>
+
+        <div style="width: 20px; height: 35px; float: right;">
+          <img src="box-top-right.png" style="margin: 0px" alt="" />
+        </div>
+      </div>
+
+      <div style=
+      "width: 100%; background-image: url(box-middle-left.png); background-repeat: repeat-y; text-align: center">
+      <div style=
+      "background-image: url(box-centre-tdeprint.png); background-repeat: no-repeat; background-color: #dfe7f3; background-position: top right; margin-left: 20px; margin-right: 20px;">
+	<h2 style="margin-top: 0px;"><img src="%1" width="32" height="32"/>&nbsp;%1<!--Title--></h2>
+	
+	<table border="1" cellspacing="0" cellpadding="1" width="100%">
+	  <tr>
+	    <td>
+	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
+		
+		%1
+		
+	      </table>
+	    </td>
+	  </tr>
+	</table>
+
+        </div>
+      </div>
+
+      <div style=
+      "width: 100%; height: 22px; background-image: url(box-bottom-middle.png);">
+      <div style="width: 25px; height: 22px; float: left;">
+          <img src="box-bottom-left.png" style="margin: 0px" alt="" />
+        </div>
+
+        <div style="width: 25px; height: 22px; float: right;">
+          <img src="box-bottom-right.png" style="margin: 0px" alt="" />
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <div style=
+  "background-image: url(bottom-middle.png); width: 100%; height: 100px;">
+  <div style="position: absolute; right: 0px;">
+      <img src="bottom-right.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style="position: absolute; left: 0px;">
+      <img src="bottom-left.png" style="margin: 0px" alt="" />
+    </div>
+  </div>
+</body>
+</html>
diff --git a/tdeprint/slave/templates/htmlstyles.css b/tdeprint/slave/templates/htmlstyles.css
new file mode 100644
index 000000000..650ed76db
--- /dev/null
+++ b/tdeprint/slave/templates/htmlstyles.css
@@ -0,0 +1,38 @@
+td.main { background-color: #505050;}
+td.logo { background-color: #DDDDDD;}
+td.lines { background-color: #DDDDDD;
+           background-image: url(lines.png);}
+td.trans { background-repeat: no-repeat;}
+td.end { background-image: url(lines2.png);
+         background-repeat: x-repeat;}
+td.shadow1 { background-image: url(shadow1.png);
+             background-repeat: x-repeat;}
+tr.top { font-family: sans-serif;
+              color: #ffffff;
+              background-color: #505050}
+tr.contentyellow { font-family: sans-serif;
+                   color: #000000;
+                   background-color: #fff4c9}
+tr.contentwhite { font-family: sans-serif;
+                  color: #000000;
+                  background-color: #FFFFFF}
+tr.menurow {background-color: #505050;
+            color: #000000;
+            vertical-align: middle;}
+td.deco      {color: #ffffff;
+             background-color: #505050;
+             font-family: sans-serif;
+             font-size: small;}
+td.menuactive      {color: #ffcc00;
+             background-color: #777777;
+             font-family: sans-serif;
+             font-size: small;}
+td.menu      {color: #ffffff;
+             background-color: #505050;
+             font-family: sans-serif;}
+a.menu 	    {color: #eeeeee;
+            font-family: sans-serif;
+            font-size: small;}
+a.menu:hover {color: #ffffff;
+              text-decoration: none;}
+
diff --git a/tdeprint/slave/templates/jobs.template b/tdeprint/slave/templates/jobs.template
new file mode 100644
index 000000000..684899aba
--- /dev/null
+++ b/tdeprint/slave/templates/jobs.template
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
+
+  <title>%1</title>
+<style type="text/css">
+/*<![CDATA[*/
+img {margin: 0px; padding: 0px}
+body {margin: 0px; padding: 0px; background-color: #418ade;}
+.bar_text a {color: #008;};
+/*]]>*/
+</style>
+<link rel="stylesheet" href="htmlstyles.css" type="text/css" />
+</head>
+
+<body>
+  <div style=
+  "background-image: url(top-middle.png); width: 100%; height: 131px;">
+  <div style="position: absolute; right: 0px;">
+      <img src="top-right-tdeprint.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style="position: absolute; left: 0px;">
+      <img src="top-left.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style=
+    "position: absolute; top: 25px; right: 100px; text-align: right; font-size: xx-large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
+    %1 <!-- Konqueror -->
+    </div>
+
+    <div style=
+    "position: absolute; top: 70px; right: 100px; text-align: right; font-size: large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
+    %1 <!-- Conquer your Desktop -->
+    </div>
+  </div><!-- the bar -->
+
+  <div style=
+  "width: 100%; background-image: url(bar-middle-right.png); background-repeat: repeat-y; background-position: right; background-color: #57a1d8;">
+  <div style=
+  "width: 100%; height: 19px; background-image: url(bar-top-middle.png);">
+    <div style="width: 22px; height: 19px; float: left;">
+        <img src="bar-top-left.png" style="margin: 0px" alt="" />
+      </div>
+
+      <div style="width: 22px; height: 19px; float: right;">
+        <img src="bar-top-right.png" style="margin: 0px" alt="" />
+      </div>
+    </div>
+
+    <div style=
+    "width: 100%; background-image: url(bar-middle-left.png); background-repeat: repeat-y; text-align: center; color: white;"
+    class="bar_text">
+      %1      <!-- Menu -->
+    </div>
+
+    <div style=
+    "width: 100%; height: 25px; background-image: url(bar-bottom-middle.png);">
+    <div style="width: 22px; height: 25px; float: left;">
+        <img src="bar-bottom-left.png" style="margin: 0px" alt="" />
+      </div>
+
+      <div style="width: 22px; height: 25px; float: right;">
+        <img src="bar-bottom-right.png" style="margin: 0px" alt="" />
+      </div>
+    </div>
+  </div><!-- the main text box -->
+
+  <div align="center">
+    <div style=
+    "width: 90%; background-image: url(box-middle-right.png); background-repeat: repeat-y; background-position: right;">
+    <div style=
+    "width: 100%; height: 35px; background-image: url(box-top-middle.png);">
+      <div style="width: 20px; height: 35px; float: left;">
+          <img src="box-top-left.png" style="margin: 0px" alt="" />
+        </div>
+
+        <div style="width: 20px; height: 35px; float: right;">
+          <img src="box-top-right.png" style="margin: 0px" alt="" />
+        </div>
+      </div>
+
+      <div style=
+      "width: 100%; background-image: url(box-middle-left.png); background-repeat: repeat-y; text-align: center">
+      <div style=
+      "background-image: url(box-centre-tdeprint.png); background-repeat: no-repeat; background-color: #dfe7f3; background-position: top right; margin-left: 20px; margin-right: 20px;">
+	<h2 style="margin-top: 0px;"><img src="%1" width="32" height="32"/>&nbsp;%1<!--Title--></h2>
+	
+	<table border="1" cellspacing="0" cellpadding="1" width="100%">
+	  <tr>
+	    <td>
+	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
+		<tr class="top">
+		  <td width="10%">%1</td>
+		  <td width="15%">%1</td>
+		  <td width="20%">%1</td>
+		  <td width="40%">%1</td>
+		  <td width="15%">%1</td>
+		</tr>
+		
+		%1
+		
+	      </table>
+	    </td>
+	  </tr>
+	</table>
+
+        </div>
+      </div>
+
+      <div style=
+      "width: 100%; height: 22px; background-image: url(box-bottom-middle.png);">
+      <div style="width: 25px; height: 22px; float: left;">
+          <img src="box-bottom-left.png" style="margin: 0px" alt="" />
+        </div>
+
+        <div style="width: 25px; height: 22px; float: right;">
+          <img src="box-bottom-right.png" style="margin: 0px" alt="" />
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <div style=
+  "background-image: url(bottom-middle.png); width: 100%; height: 100px;">
+  <div style="position: absolute; right: 0px;">
+      <img src="bottom-right.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style="position: absolute; left: 0px;">
+      <img src="bottom-left.png" style="margin: 0px" alt="" />
+    </div>
+  </div>
+</body>
+</html>
diff --git a/tdeprint/slave/templates/printer.template b/tdeprint/slave/templates/printer.template
new file mode 100644
index 000000000..3bdfa8665
--- /dev/null
+++ b/tdeprint/slave/templates/printer.template
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
+
+  <title>%1</title>
+<style type="text/css">
+/*<![CDATA[*/
+img {margin: 0px; padding: 0px}
+body {margin: 0px; padding: 0px; background-color: #418ade;}
+.bar_text a {color: #008;};
+/*]]>*/
+</style>
+<link rel="stylesheet" href="htmlstyles.css" type="text/css" />
+</head>
+
+<body>
+  <div style=
+  "background-image: url(top-middle.png); width: 100%; height: 131px;">
+  <div style="position: absolute; right: 0px;">
+      <img src="top-right-tdeprint.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style="position: absolute; left: 0px;">
+      <img src="top-left.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style=
+    "position: absolute; top: 25px; right: 100px; text-align: right; font-size: xx-large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
+    %1 <!-- Konqueror -->
+    </div>
+
+    <div style=
+    "position: absolute; top: 70px; right: 100px; text-align: right; font-size: large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
+    %1 <!-- Conquer your Desktop -->
+    </div>
+  </div><!-- the bar -->
+
+  <div style=
+  "width: 100%; background-image: url(bar-middle-right.png); background-repeat: repeat-y; background-position: right; background-color: #57a1d8;">
+  <div style=
+  "width: 100%; height: 19px; background-image: url(bar-top-middle.png);">
+    <div style="width: 22px; height: 19px; float: left;">
+        <img src="bar-top-left.png" style="margin: 0px" alt="" />
+      </div>
+
+      <div style="width: 22px; height: 19px; float: right;">
+        <img src="bar-top-right.png" style="margin: 0px" alt="" />
+      </div>
+    </div>
+
+    <div style=
+    "width: 100%; background-image: url(bar-middle-left.png); background-repeat: repeat-y; text-align: center; color: white;"
+    class="bar_text">
+      %1      <!-- Menu -->
+    </div>
+
+    <div style=
+    "width: 100%; height: 25px; background-image: url(bar-bottom-middle.png);">
+    <div style="width: 22px; height: 25px; float: left;">
+        <img src="bar-bottom-left.png" style="margin: 0px" alt="" />
+      </div>
+
+      <div style="width: 22px; height: 25px; float: right;">
+        <img src="bar-bottom-right.png" style="margin: 0px" alt="" />
+      </div>
+    </div>
+  </div><!-- the main text box -->
+
+  <div align="center">
+    <div style=
+    "width: 90%; background-image: url(box-middle-right.png); background-repeat: repeat-y; background-position: right;">
+    <div style=
+    "width: 100%; height: 35px; background-image: url(box-top-middle.png);">
+      <div style="width: 20px; height: 35px; float: left;">
+          <img src="box-top-left.png" style="margin: 0px" alt="" />
+        </div>
+
+        <div style="width: 20px; height: 35px; float: right;">
+          <img src="box-top-right.png" style="margin: 0px" alt="" />
+        </div>
+      </div>
+
+      <div style=
+      "width: 100%; background-image: url(box-middle-left.png); background-repeat: repeat-y; text-align: center">
+      <div style=
+      "background-image: url(box-centre-tdeprint.png); background-repeat: no-repeat; background-color: #dfe7f3; background-position: top right; margin-left: 20px; margin-right: 20px;">
+	<h2 style="margin-top: 0px;"><img src="%1" width="32" height="32"/>&nbsp;%1<!--Title--></h2>
+	
+	<table border="1" cellspacing="0" cellpadding="1" width="100%">
+	  <tr class="top" align="left" valign="middle">
+	    <td>&nbsp;%1
+	      <!-- Printer Name --> </td>
+	  </tr>
+	  
+	  <tr>
+	    <td>
+	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
+		<tr class="contentyellow">
+		  <td width="41%">%1 </td>
+		  
+		  <td width="59%">%1 <!--Type--></td>
+		</tr>
+		
+		<tr class="contentwhite">
+		  <td>%1 </td>
+		  
+		  <td>%1 <!-- State--></td>
+		</tr>
+		
+		<tr class="contentyellow">
+		  <td>%1 </td>
+		  
+		  <td>%1 <!-- Location --></td>
+		</tr>
+		
+		<tr class="contentwhite">
+		  <td>%1 </td>
+		  
+		  <td>%1 <!-- Description --></td>
+		</tr>
+		
+		<tr class="contentyellow">
+		  <td>%1 </td>
+		  
+		  <td>%1 <!-- URI --></td>
+		</tr>
+		
+		<tr class="contentwhite">
+		  <td>%1 </td>
+		  
+		  <td>%1 <!-- Interface --></td>
+		</tr>
+	      </table>
+	    </td>
+	  </tr>
+	</table>
+	
+      </p>
+      
+      <p>
+	
+	<table border="1" cellspacing="0" cellpadding="2" width="100%">
+	  <tr class="top" align="left" valign="middle">
+	    <td>&nbsp;%1 <!-- Driver --></td>
+	  </tr>
+	  
+	  <tr>
+	    <td>
+	      <table border="1" cellspacing="0" cellpadding="2" width="100%">
+		<tr class="contentyellow">
+		  <td width="41%">%1 </td>
+		  
+		  <td width="59%">%1
+		    <!--Manufacturer--></td>
+		</tr>
+		
+		<tr class="contentwhite">
+		  <td>%1 </td>
+		  
+		  <td>%1 <!-- Model--></td>
+		</tr>
+		
+		<tr class="contentyellow">
+		  <td>%1 </td>
+		  
+		  <td>%1 <!-- Driver Informaton --></td>
+		</tr>
+	      </table>
+	    </td>
+	  </tr>
+	</table>
+
+        </div>
+      </div>
+
+      <div style=
+      "width: 100%; height: 22px; background-image: url(box-bottom-middle.png);">
+      <div style="width: 25px; height: 22px; float: left;">
+          <img src="box-bottom-left.png" style="margin: 0px" alt="" />
+        </div>
+
+        <div style="width: 25px; height: 22px; float: right;">
+          <img src="box-bottom-right.png" style="margin: 0px" alt="" />
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <div style=
+  "background-image: url(bottom-middle.png); width: 100%; height: 100px;">
+  <div style="position: absolute; right: 0px;">
+      <img src="bottom-right.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style="position: absolute; left: 0px;">
+      <img src="bottom-left.png" style="margin: 0px" alt="" />
+    </div>
+  </div>
+</body>
+</html>
diff --git a/tdeprint/slave/templates/pseudo.template b/tdeprint/slave/templates/pseudo.template
new file mode 100644
index 000000000..a5acc24d1
--- /dev/null
+++ b/tdeprint/slave/templates/pseudo.template
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
+
+  <title>%1</title>
+<style type="text/css">
+/*<![CDATA[*/
+img {margin: 0px; padding: 0px}
+body {margin: 0px; padding: 0px; background-color: #418ade;}
+.bar_text a {color: #008;};
+/*]]>*/
+</style>
+<link rel="stylesheet" href="htmlstyles.css" type="text/css" />
+</head>
+
+<body>
+  <div style=
+  "background-image: url(top-middle.png); width: 100%; height: 131px;">
+  <div style="position: absolute; right: 0px;">
+      <img src="top-right-tdeprint.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style="position: absolute; left: 0px;">
+      <img src="top-left.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style=
+    "position: absolute; top: 25px; right: 100px; text-align: right; font-size: xx-large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
+    %1 <!-- Konqueror -->
+    </div>
+
+    <div style=
+    "position: absolute; top: 70px; right: 100px; text-align: right; font-size: large; font-weight: bold; text-shadow: #fff 0px 0px 5px; color: #444">
+    %1 <!-- Conquer your Desktop -->
+    </div>
+  </div><!-- the bar -->
+
+  <div style=
+  "width: 100%; background-image: url(bar-middle-right.png); background-repeat: repeat-y; background-position: right; background-color: #57a1d8;">
+  <div style=
+  "width: 100%; height: 19px; background-image: url(bar-top-middle.png);">
+    <div style="width: 22px; height: 19px; float: left;">
+        <img src="bar-top-left.png" style="margin: 0px" alt="" />
+      </div>
+
+      <div style="width: 22px; height: 19px; float: right;">
+        <img src="bar-top-right.png" style="margin: 0px" alt="" />
+      </div>
+    </div>
+
+    <div style=
+    "width: 100%; background-image: url(bar-middle-left.png); background-repeat: repeat-y; text-align: center; color: white;"
+    class="bar_text">
+      %1      <!-- Menu -->
+    </div>
+
+    <div style=
+    "width: 100%; height: 25px; background-image: url(bar-bottom-middle.png);">
+    <div style="width: 22px; height: 25px; float: left;">
+        <img src="bar-bottom-left.png" style="margin: 0px" alt="" />
+      </div>
+
+      <div style="width: 22px; height: 25px; float: right;">
+        <img src="bar-bottom-right.png" style="margin: 0px" alt="" />
+      </div>
+    </div>
+  </div><!-- the main text box -->
+
+  <div align="center">
+    <div style=
+    "width: 90%; background-image: url(box-middle-right.png); background-repeat: repeat-y; background-position: right;">
+    <div style=
+    "width: 100%; height: 35px; background-image: url(box-top-middle.png);">
+      <div style="width: 20px; height: 35px; float: left;">
+          <img src="box-top-left.png" style="margin: 0px" alt="" />
+        </div>
+
+        <div style="width: 20px; height: 35px; float: right;">
+          <img src="box-top-right.png" style="margin: 0px" alt="" />
+        </div>
+      </div>
+
+      <div style=
+      "width: 100%; background-image: url(box-middle-left.png); background-repeat: repeat-y; text-align: center">
+      <div style=
+      "background-image: url(box-centre-tdeprint.png); background-repeat: no-repeat; background-color: #dfe7f3; background-position: top right; margin-left: 20px; margin-right: 20px;">
+	<h2 style="margin-top: 0px;"><img src="%1" width="32" height="32"/>&nbsp;%1<!--Title--></h2>
+	  
+	    <table border="1" cellspacing="0" cellpadding="1" width="100%">
+	      <tr class="top" align="left" valign="middle">
+		<td>&nbsp;%1
+		  <!-- Printer Name --> </td>
+	      </tr>
+	      
+	      <tr>
+		<td>
+		  <table border="1" cellspacing="0" cellpadding="2" width="100%">
+		    <tr class="contentyellow">
+		      <td width="41%">%1 </td>
+		      
+		      <td width="59%">%1 <!--Type--></td>
+		    </tr>
+		    
+		    <tr class="contentwhite">
+		      <td>%1 </td>
+		      
+		      <td>%1 <!-- State--></td>
+		    </tr>
+		    
+		    <tr class="contentyellow">
+		      <td>%1 </td>
+		      
+		      <td>%1 <!-- Location --></td>
+		    </tr>
+		    
+		  </table>
+		</td>
+	      </tr>
+	    </table>
+	    
+	  </p>
+	  
+	  <p>
+	    
+	    <table border="1" cellspacing="0" cellpadding="2" width="100%">
+	      <tr class="top" align="left" valign="middle">
+		<td>&nbsp;%1 <!-- Command Properties --></td>
+	      </tr>
+	      
+	      <tr>
+		<td>
+		  <table border="1" cellspacing="0" cellpadding="2" width="100%">
+		    <tr class="contentyellow">
+		      <td width="40%">%1 </td>
+		      
+		      <td width="58%">%1
+			<!--Command--></td>
+		    </tr>
+		    
+		    <tr class="contentwhite">
+		      <td>%1 </td>
+		      
+		      <td>%1 <!-- Use Output File --></td>
+		    </tr>
+		    
+		    <tr class="contentyellow">
+		      <td>%1 </td>
+		      
+		      <td>%1 <!-- Default Extension --></td>
+		    </tr>
+		  </table>
+		</td>
+	      </tr>
+	    </table>
+
+        </div>
+      </div>
+
+      <div style=
+      "width: 100%; height: 22px; background-image: url(box-bottom-middle.png);">
+      <div style="width: 25px; height: 22px; float: left;">
+          <img src="box-bottom-left.png" style="margin: 0px" alt="" />
+        </div>
+
+        <div style="width: 25px; height: 22px; float: right;">
+          <img src="box-bottom-right.png" style="margin: 0px" alt="" />
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <div style=
+  "background-image: url(bottom-middle.png); width: 100%; height: 100px;">
+  <div style="position: absolute; right: 0px;">
+      <img src="bottom-right.png" style="margin: 0px" alt="" />
+    </div>
+
+    <div style="position: absolute; left: 0px;">
+      <img src="bottom-left.png" style="margin: 0px" alt="" />
+    </div>
+  </div>
+</body>
+</html>
diff --git a/tdeprint/slave/templates/top-left.png b/tdeprint/slave/templates/top-left.png
new file mode 100644
index 000000000..d7551c0d5
Binary files /dev/null and b/tdeprint/slave/templates/top-left.png differ
diff --git a/tdeprint/slave/templates/top-middle.png b/tdeprint/slave/templates/top-middle.png
new file mode 100644
index 000000000..bb3fe7428
Binary files /dev/null and b/tdeprint/slave/templates/top-middle.png differ
diff --git a/tdeprint/slave/templates/top-right-tdeprint.png b/tdeprint/slave/templates/top-right-tdeprint.png
new file mode 100644
index 000000000..56717342c
Binary files /dev/null and b/tdeprint/slave/templates/top-right-tdeprint.png differ
diff --git a/tdeprint/tdeprint_part/CMakeLists.txt b/tdeprint/tdeprint_part/CMakeLists.txt
new file mode 100644
index 000000000..6de7ddb91
--- /dev/null
+++ b/tdeprint/tdeprint_part/CMakeLists.txt
@@ -0,0 +1,37 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+add_definitions( -D_KDEPRINT_COMPILE )
+
+include_directories(
+  ${CMAKE_CURRENT_BINARY_DIR}
+  ${TDE_INCLUDE_DIR}
+  ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+  ${TQT_LIBRARY_DIRS}
+)
+
+
+##### other data ################################
+
+install( FILES tdeprint_part.rc DESTINATION ${DATA_INSTALL_DIR}/tdeprint_part )
+install( FILES tdeprint_part.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+
+
+##### libtdeprint_part (module) #################
+
+tde_add_kpart( libtdeprint_part AUTOMOC
+  SOURCES printpart.cpp
+  LINK tdeprint_management-shared kparts-shared
+  DESTINATION ${PLUGIN_INSTALL_DIR}
+)
diff --git a/tdeprint/tdeprint_part/Makefile.am b/tdeprint/tdeprint_part/Makefile.am
new file mode 100644
index 000000000..e27404a0f
--- /dev/null
+++ b/tdeprint/tdeprint_part/Makefile.am
@@ -0,0 +1,24 @@
+AM_CPPFLAGS = -D_KDEPRINT_COMPILE
+
+kde_module_LTLIBRARIES = libtdeprint_part.la
+
+libtdeprint_part_la_SOURCES = printpart.cpp
+libtdeprint_part_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined
+libtdeprint_part_la_LIBADD = -ltdeprint_management $(LIB_KPARTS)
+
+noinst_HEADERS = printpart.h
+
+METASOURCES = AUTO
+INCLUDES = $(all_includes)
+
+# service
+myservice_DATA = tdeprint_part.desktop
+myservicedir = $(kde_servicesdir)
+
+# UI file
+myrcfile_DATA = tdeprint_part.rc
+myrcfiledir = $(kde_datadir)/tdeprint_part
+
+messages: rc.cpp
+	$(EXTRACTRC) tdeprint_part.rc >> rc.cpp
+	$(XGETTEXT) *.cpp -o $(podir)/tdeprint_part.pot
diff --git a/tdeprint/tdeprint_part/printpart.cpp b/tdeprint/tdeprint_part/printpart.cpp
new file mode 100644
index 000000000..5d5d7b154
--- /dev/null
+++ b/tdeprint/tdeprint_part/printpart.cpp
@@ -0,0 +1,81 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#include "printpart.h"
+
+#include <tdeprint/kmmainview.h>
+#include <tdeprint/kiconselectaction.h>
+#include <kaction.h>
+#include <klocale.h>
+#include <kinstance.h>
+#include <kiconloader.h>
+#include <kaboutdata.h>
+#include <kdebug.h>
+#include <kparts/genericfactory.h>
+#include <tqwidget.h>
+
+typedef KParts::GenericFactory<PrintPart> PrintPartFactory;
+K_EXPORT_COMPONENT_FACTORY( libtdeprint_part, PrintPartFactory )
+
+PrintPart::PrintPart(TQWidget *parentWidget, const char * /*widgetName*/ ,
+	             TQObject *parent, const char *name,
+		     const TQStringList & /*args*/ )
+: KParts::ReadOnlyPart(parent, name)
+{
+	setInstance(PrintPartFactory::instance());
+    instance()->iconLoader()->addAppDir("tdeprint");
+	m_extension = new PrintPartExtension(this);
+
+	m_view = new KMMainView(parentWidget, "MainView", actionCollection());
+	m_view->setFocusPolicy(TQ_ClickFocus);
+	m_view->enableToolbar(false);
+	setWidget(m_view);
+
+	initActions();
+}
+
+PrintPart::~PrintPart()
+{
+}
+
+KAboutData *PrintPart::createAboutData()
+{
+	return new KAboutData(I18N_NOOP("tdeprint_part"), I18N_NOOP("A Konqueror Plugin for Print Management"), "0.1");
+}
+
+bool PrintPart::openFile()
+{
+	return true;
+}
+
+void PrintPart::initActions()
+{
+	setXMLFile("tdeprint_part.rc");
+}
+
+PrintPartExtension::PrintPartExtension(PrintPart *parent)
+: KParts::BrowserExtension(parent, "PrintPartExtension")
+{
+}
+
+PrintPartExtension::~PrintPartExtension()
+{
+}
+
+#include "printpart.moc"
diff --git a/tdeprint/tdeprint_part/printpart.h b/tdeprint/tdeprint_part/printpart.h
new file mode 100644
index 000000000..df543b210
--- /dev/null
+++ b/tdeprint/tdeprint_part/printpart.h
@@ -0,0 +1,59 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#ifndef PRINTPART_H
+#define PRINTPART_H
+
+#include <kparts/part.h>
+#include <kparts/browserextension.h>
+
+class PrintPartExtension;
+class KMMainView;
+class KAboutData;
+
+class PrintPart : public KParts::ReadOnlyPart
+{
+	Q_OBJECT
+public:
+	PrintPart(TQWidget *parentWidget, const char *widgetName,
+		  TQObject *parent, const char *name,
+		  const TQStringList & );
+	virtual ~PrintPart();
+
+	static KAboutData *createAboutData();
+
+protected:
+	bool openFile();
+	void initActions();
+
+private:
+	PrintPartExtension	*m_extension;
+	KMMainView		*m_view;
+};
+
+class PrintPartExtension : public KParts::BrowserExtension
+{
+	Q_OBJECT
+	friend class PrintPart;
+public:
+	PrintPartExtension(PrintPart *parent);
+	virtual ~PrintPartExtension();
+};
+
+#endif
diff --git a/tdeprint/tdeprint_part/tdeprint_part.desktop b/tdeprint/tdeprint_part/tdeprint_part.desktop
new file mode 100644
index 000000000..001f8ae39
--- /dev/null
+++ b/tdeprint/tdeprint_part/tdeprint_part.desktop
@@ -0,0 +1,85 @@
+[Desktop Entry]
+Type=Service
+Name=Print Management Tool
+Name[af]=Drukker Bestuur Program
+Name[ar]=أداة ادارة الطباعة
+Name[az]=Çap Edici İdarə Vasitəsi
+Name[be]=Кіраўнік друку
+Name[bg]=Управление на печата
+Name[bn]=মুদ্রণ ম্যানেজমেন্ট টুল
+Name[br]=Ostilh mererezh moulañ
+Name[bs]=Alat za upravljanje štampom
+Name[ca]=Eina per a gestionar la impressió
+Name[cs]=Správce tiskáren
+Name[csb]=Sprôwianié wëdrëkama
+Name[cy]=Erfyn Rheoli Argraffu
+Name[da]=Udskriftshåndteringsværktøj
+Name[de]=Druckerverwaltung
+Name[el]=Εργαλείο διαχείρισης εκτυπώσεων
+Name[eo]=Printadministrilo
+Name[es]=Herramienta de gestión de la  impresión
+Name[et]=Trükkimise seadistused
+Name[eu]=Inprimaketa kudeatzeko tresna
+Name[fa]=ابزار مدیریت چاپ
+Name[fi]=Tulostuksenhallinta
+Name[fr]=Gestionnaire d'impression
+Name[fy]=Helpprogramma foar printbehear
+Name[ga]=Uirlis Bhainisteoireacht Priontála
+Name[gl]=Ferramenta de Xestión da Impresión
+Name[he]=כלי ניהול הדפסה
+Name[hi]=प्रिंटर प्रबंधन औज़ार
+Name[hr]=Alat za upravljanje ispisom
+Name[hu]=Nyomtatáskezelő eszköz
+Name[is]=Prentunartól
+Name[it]=Strumento di gestione della stampa
+Name[ja]=印刷マネージメントツール
+Name[ka]=ბეჭდვის მართვა
+Name[kk]=Басып шығаруды басқару
+Name[km]=ឧបករណ៍​គ្រប់គ្រង​ការ​បោះពុម្ព
+Name[ko]=휴대폰 관리 도구
+Name[lo]=ເຄື່ອງມືຈັດການພິມ
+Name[lt]=Spausdinimo valdymo įrankis
+Name[lv]=Drukas Menedžmenta Rīks
+Name[mk]=Алатка за менаџмент на печатење
+Name[mn]=Хэвлэгч удирдах хэлбэр
+Name[ms]=Cetak Alat Pengurusan
+Name[mt]=Għodda għall-immaniġġjar tal-printing
+Name[nb]=Verktøy for utskriftsbehandling
+Name[nds]=Druckers un Opgaven plegen
+Name[ne]=मुद्रण व्यवस्थापन उपकरण
+Name[nl]=Hulpprogramma voor printerbeheer
+Name[nn]=Utskriftshandsaming
+Name[nso]=Sebereka sa Taolo ya Kgatiso
+Name[pa]=ਛਾਪਣ (ਪਰਿੰਟ) ਪਰਬੰਧਨ ਸੰਦ
+Name[pl]=Zarządzanie wydrukiem
+Name[pt]=Ferramenta de Gestão de Impressões
+Name[pt_BR]=Ferramenta para Gerenciamento de Impressão
+Name[ro]=Administrare tipărire
+Name[ru]=Управление печатью
+Name[rw]=Gucapa Igikoresho cy'Ubuyobozi
+Name[se]=Čálihangieđahalli
+Name[sk]=Nástroj na správu tlače
+Name[sl]=Orodje za upravljanje tiskanja
+Name[sr]=Алат за управљање штампом
+Name[sr@Latn]=Alat za upravljanje štampom
+Name[sv]=Verktyg för utskriftshantering
+Name[ta]=அச்சு மேலாண்மைக் கருவி
+Name[tg]=Тафсири мудирияти чоп
+Name[th]=เครื่องมือจัดการงานพิมพ์
+Name[tr]=Yazdırma Yönetim Aracı
+Name[tt]=Bastıru İdäneñ Qoralı
+Name[uk]=Засіб керування друком
+Name[uz]=Bosib chiqarishni boshqarish vositasi
+Name[uz@cyrillic]=Босиб чиқаришни бошқариш воситаси
+Name[ven]=Tshishumiswa tsha vhulanguli ha phirinthara
+Name[vi]=Công cụ Quản lý In ấn
+Name[wa]=Usteye po manaedjî l' imprimaedje
+Name[xh]=Isixhobo Sophatho soshicilelo
+Name[zh_CN]=打印管理工具
+Name[zh_TW]=列印管理工具
+Name[zu]=Ithuluzi Lokuphathwa Koshicilelo
+MimeType=print/manager
+ServiceTypes=Browser/View,KParts/ReadOnlyPart
+X-KDE-Library=libtdeprint_part
+Icon=printmgr
+InitialPreference=12
diff --git a/tdeprint/tdeprint_part/tdeprint_part.rc b/tdeprint/tdeprint_part/tdeprint_part.rc
new file mode 100644
index 000000000..a69e76490
--- /dev/null
+++ b/tdeprint/tdeprint_part/tdeprint_part.rc
@@ -0,0 +1,28 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="tdeprint_part">
+<ToolBar name="Kdeprint-Toolbar" newline="false"><text>Print Manager Toolbar</text>
+  <Action name="printer_add" />
+  <Action name="printer_add_special" />
+  <Separator lineSeparator="true" />
+  <Action name="printer_state_change" />
+  <Action name="printer_spool_change" />
+  <Separator />
+  <Action name="printer_hard_default" />
+  <Action name="printer_soft_default" />
+  <Action name="printer_remove" />
+  <Separator />
+  <Action name="printer_configure" />
+  <Action name="printer_test" />
+  <Separator lineSeparator="true" />
+  <Action name="server_configure" />
+  <Action name="server_restart" />
+  <Separator lineSeparator="true" />
+  <Action name="manager_configure" />
+  <Action name="view_refresh" />
+  <Separator lineSeparator="true" />
+  <Action name="view_printerinfos" />
+  <Action name="view_change" />
+  <Action name="orientation_change" />
+  <Action name="view_pfilter" />
+</ToolBar>
+</kpartgui>
diff --git a/tdeprint/tdeprintfax/CMakeLists.txt b/tdeprint/tdeprintfax/CMakeLists.txt
new file mode 100644
index 000000000..538719474
--- /dev/null
+++ b/tdeprint/tdeprintfax/CMakeLists.txt
@@ -0,0 +1,42 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+  ${CMAKE_CURRENT_BINARY_DIR}
+  ${TDE_INCLUDE_DIR}
+  ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+  ${TQT_LIBRARY_DIRS}
+)
+
+
+##### other data ################################
+
+tde_install_icons( tdeprintfax )
+tde_install_icons( abentry DESTINATION ${DATA_INSTALL_DIR}/tdeprintfax/icons )
+install( FILES tdeprintfax.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+install( FILES tdeprintfaxui.rc faxfilters DESTINATION ${DATA_INSTALL_DIR}/tdeprintfax )
+install( PROGRAMS anytops DESTINATION ${DATA_INSTALL_DIR}/tdeprintfax )
+
+
+##### tdeprintfax (executable) ##################
+
+tde_add_executable( tdeprintfax AUTOMOC
+  SOURCES
+    main.cpp tdeprintfax.cpp faxab.cpp faxctrl.cpp
+    confgeneral.cpp configdlg.cpp conffax.cpp
+    confsystem.cpp conffilters.cpp filterdlg.cpp
+    defcmds.cpp
+  LINK kabc-shared tdeprint-shared
+  DESTINATION ${BIN_INSTALL_DIR}
+)
diff --git a/tdeprint/tdeprintfax/Makefile.am b/tdeprint/tdeprintfax/Makefile.am
new file mode 100644
index 000000000..cd0d39900
--- /dev/null
+++ b/tdeprint/tdeprintfax/Makefile.am
@@ -0,0 +1,23 @@
+INCLUDES= $(all_includes)
+
+bin_PROGRAMS = tdeprintfax
+tdeprintfax_SOURCES = main.cpp tdeprintfax.cpp faxab.cpp faxctrl.cpp confgeneral.cpp configdlg.cpp \
+		      conffax.cpp confsystem.cpp conffilters.cpp filterdlg.cpp defcmds.cpp
+tdeprintfax_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_KDECORE) $(LIB_KDEUI) -ltdefx $(LIB_KIO) -lktexteditor
+tdeprintfax_LDADD   = $(LIB_KDEUI) $(LIB_KIO) $(LIB_KDEPRINT) -lkabc
+tdeprintfax_METASOURCES = AUTO
+
+xdg_apps_DATA = tdeprintfax.desktop
+
+uidir = $(kde_datadir)/tdeprintfax
+ui_DATA = tdeprintfaxui.rc faxfilters
+
+private_SCRIPTS = anytops
+privatedir = $(kde_datadir)/tdeprintfax
+
+messages: rc.cpp
+	$(XGETTEXT) `find . -name \*.h -o -name \*.cpp -o -name \*.cc` -o $(podir)/tdeprintfax.pot
+
+KDE_ICON = tdeprintfax
+pic_ICON = abentry
+picdir = $(kde_datadir)/tdeprintfax/icons
diff --git a/tdeprint/tdeprintfax/anytops b/tdeprint/tdeprintfax/anytops
new file mode 100755
index 000000000..9718831dc
--- /dev/null
+++ b/tdeprint/tdeprintfax/anytops
@@ -0,0 +1,98 @@
+#!/bin/sh
+
+FAXFILTERS=./faxfilters
+MIMETYPE=
+PAGE="letter"
+
+usage() {
+	echo "Usage: anytops [-m <filters>] [--mime=<mime-type>] [-p <page>] [--help] <infile> <outfile>"
+	exit $1
+}
+
+while true; do
+	case "$1" in
+		--help)
+			usage 0
+			;;
+		-m)
+			shift
+			FAXFILTERS="$1"
+			shift
+			;;
+		--mime=*)
+			MIMETYPE=${1#--mime=}
+			shift
+			;;
+		-p)
+			shift
+			PAGE="$1"
+			shift
+			;;
+		-v)
+			echo "Anytops v1.0: (c) 2001, Michael Goffioul <tdeprint@swing.be>";
+			echo "Small script to convert any file type into PS. Part of tdeprintfax."
+			exit 0
+			;;
+		*)
+			break;
+			;;
+	esac
+done
+
+INFILE=$1
+OUTFILE=$2
+
+if [ -z "$INFILE" -o -z "$OUTFILE" -o ! -f "$INFILE" ]; then
+	usage 1;
+fi
+
+if [ -z "$MIMETYPE" ]; then
+	MAGIC=$KDEDIR
+	if [ -z "$MAGIC" ]; then
+		MAGIC=/usr
+	fi
+	MAGIC=$MAGIC/share/mimelnk/magic
+
+	if [ ! -f "$MAGIC" ]; then
+		echo "KDE magic file not found. Check your installation."
+		exit 1;
+	fi
+
+	MIMETYPE=`file -b -m $MAGIC "$INFILE" 2> /dev/null`
+	MIMETYPE=${MIMETYPE%%;*}
+fi
+
+echo "Mime type: $MIMETYPE"
+MIMETYPE_BASE=`echo $MIMETYPE | cut -f 1 -d "/"`
+MIMETYPE_TYPE=`echo $MIMETYPE | cut -f 2- -d "/"`
+
+get_command() {
+	while read mime command; do
+		mimebase=`echo $mime | cut -f 1 -d "/"`
+		mimefile=`echo $mime | cut -f 2- -d "/"`
+		if test "$mimebase" = "$MIMETYPE_BASE" || test "$mimebase" = "*"; then
+			if test "$mimefile" = "$MIMETYPE_TYPE" || test "$mimefile" = "*"; then
+				echo $command
+				break;
+			fi
+		fi
+#		PATTERN=`echo $MIMETYPE | grep $mime`
+#		if [ "$PATTERN" = "$MIMETYPE" ]; then
+#			echo $command
+#			break;
+#		fi
+	done
+}
+
+COMMAND=`cat $FAXFILTERS | get_command`
+
+if [ -z "$COMMAND" ]; then
+	echo "$MIMETYPE: file type not handled"
+	exit 1;
+fi
+
+echo "Command: $COMMAND"
+
+PAGEUP="`echo $PAGE | cut -c 1 | tr [:lower:] [:upper:]``echo $PAGE | cut -c 2-`"
+EXECCOMMAND=`echo $COMMAND | sed -e "s,%in,\"$INFILE\"," -e "s,%out,\"$OUTFILE\"," -e "s,%psl,$PAGE," -e "s,%psu,$PAGEUP,"`
+eval "$EXECCOMMAND"
diff --git a/tdeprint/tdeprintfax/conffax.cpp b/tdeprint/tdeprintfax/conffax.cpp
new file mode 100644
index 000000000..1f3b8c3c5
--- /dev/null
+++ b/tdeprint/tdeprintfax/conffax.cpp
@@ -0,0 +1,80 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include "conffax.h"
+
+#include <tqcombobox.h>
+#include <tqlineedit.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <tqprinter.h>
+
+#include <kglobal.h>
+#include <kconfig.h>
+#include <klocale.h>
+#include <kseparator.h>
+
+#include <stdlib.h>
+
+ConfFax::ConfFax(TQWidget *parent, const char *name)
+: TQWidget(parent, name)
+{
+	m_resolution = new TQComboBox(this);
+	m_resolution->setMinimumHeight(25);
+	m_pagesize = new TQComboBox(this);
+	m_pagesize->setMinimumHeight(25);
+	m_resolution->insertItem(i18n("High (204x196 dpi)"));
+	m_resolution->insertItem(i18n("Low (204x98 dpi)"));
+	m_pagesize->insertItem(i18n("A4"));
+	m_pagesize->insertItem(i18n("Letter"));
+	m_pagesize->insertItem(i18n("Legal"));
+	TQLabel	*m_resolutionlabel = new TQLabel(i18n("&Resolution:"), this);
+	m_resolutionlabel->setBuddy(m_resolution);
+	TQLabel	*m_pagesizelabel = new TQLabel(i18n("&Paper size:"), this);
+	m_pagesizelabel->setBuddy(m_pagesize);
+
+	TQGridLayout	*l0 = new TQGridLayout(this, 3, 2, 10, 10);
+	l0->setColStretch(1, 1);
+	l0->setRowStretch(2, 1);
+	l0->addWidget(m_resolutionlabel, 0, 0);
+	l0->addWidget(m_pagesizelabel, 1, 0);
+	l0->addWidget(m_resolution, 0, 1);
+	l0->addWidget(m_pagesize, 1, 1);
+}
+
+void ConfFax::load()
+{
+	KConfig	*conf = KGlobal::config();
+	conf->setGroup("Fax");
+	TQString	v = conf->readEntry("Page", KGlobal::locale()->pageSize() == TQPrinter::A4 ? "a4" : "letter");
+	if (v == "letter") m_pagesize->setCurrentItem(1);
+	else if (v == "legal") m_pagesize->setCurrentItem(2);
+	else m_pagesize->setCurrentItem(0);
+	v = conf->readEntry("Resolution", "High");
+	m_resolution->setCurrentItem((v == "Low" ? 1 : 0));
+}
+
+void ConfFax::save()
+{
+	KConfig	*conf = KGlobal::config();
+	conf->setGroup("Fax");
+	conf->writeEntry("Resolution", (m_resolution->currentItem() == 0 ? "High" : "Low"));
+	conf->writeEntry("Page", (m_pagesize->currentItem() == 0 ? "a4" : (m_pagesize->currentItem() == 1 ? "letter" : "legal")));
+}
diff --git a/tdeprint/tdeprintfax/conffax.h b/tdeprint/tdeprintfax/conffax.h
new file mode 100644
index 000000000..cf76f2b71
--- /dev/null
+++ b/tdeprint/tdeprintfax/conffax.h
@@ -0,0 +1,40 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef CONFFAX_H
+#define CONFFAX_H
+
+#include <tqwidget.h>
+
+class TQComboBox;
+
+class ConfFax : public TQWidget
+{
+public:
+	ConfFax(TQWidget *parent = 0, const char *name = 0);
+
+	void load();
+	void save();
+
+private:
+	TQComboBox	*m_resolution, *m_pagesize;
+};
+
+#endif
diff --git a/tdeprint/tdeprintfax/conffilters.cpp b/tdeprint/tdeprintfax/conffilters.cpp
new file mode 100644
index 000000000..d32f33ea8
--- /dev/null
+++ b/tdeprint/tdeprintfax/conffilters.cpp
@@ -0,0 +1,192 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include "conffilters.h"
+#include "filterdlg.h"
+
+#include <tqpushbutton.h>
+#include <tqlayout.h>
+#include <tqtooltip.h>
+#include <tqfile.h>
+#include <tqtextstream.h>
+#include <tqregexp.h>
+#include <tqheader.h>
+
+#include <klocale.h>
+#include <klistview.h>
+#include <kiconloader.h>
+#include <kstandarddirs.h>
+#include <kmessagebox.h>
+
+ConfFilters::ConfFilters(TQWidget *parent, const char *name)
+: TQWidget(parent, name)
+{
+	m_filters = new KListView(this);
+	m_filters->addColumn(i18n("Mime Type"));
+	m_filters->addColumn(i18n("Command"));
+	m_filters->setFrameStyle(TQFrame::WinPanel|TQFrame::Sunken);
+	m_filters->setLineWidth(1);
+	m_filters->setSorting(-1);
+	m_filters->header()->setStretchEnabled(true, 1);
+	connect(m_filters, TQT_SIGNAL(doubleClicked(TQListViewItem*)), TQT_SLOT(slotChange()));
+
+	m_add = new TQPushButton(this);
+	m_add->setPixmap(BarIcon("filenew"));
+	m_remove = new TQPushButton(this);
+	m_remove->setIconSet(BarIconSet("remove"));
+	m_change = new TQPushButton(this);
+	m_change->setIconSet(BarIconSet("filter"));
+	m_up = new TQPushButton(this);
+	m_up->setIconSet(BarIconSet("up"));
+	m_down = new TQPushButton(this);
+	m_down->setIconSet(BarIconSet("down"));
+	connect(m_add, TQT_SIGNAL(clicked()), TQT_SLOT(slotAdd()));
+	connect(m_change, TQT_SIGNAL(clicked()), TQT_SLOT(slotChange()));
+	connect(m_remove, TQT_SIGNAL(clicked()), TQT_SLOT(slotRemove()));
+	connect(m_up, TQT_SIGNAL(clicked()), TQT_SLOT(slotUp()));
+	connect(m_down, TQT_SIGNAL(clicked()), TQT_SLOT(slotDown()));
+	TQToolTip::add(m_add, i18n("Add filter"));
+	TQToolTip::add(m_change, i18n("Modify filter"));
+	TQToolTip::add(m_remove, i18n("Remove filter"));
+	TQToolTip::add(m_up, i18n("Move filter up"));
+	TQToolTip::add(m_down, i18n("Move filter down"));
+
+	TQHBoxLayout	*l0 = new TQHBoxLayout(this, 10, 10);
+	TQVBoxLayout	*l1 = new TQVBoxLayout(0, 0, 0);
+	l0->addWidget(m_filters, 1);
+	l0->addLayout(l1, 0);
+	l1->addWidget(m_add);
+	l1->addWidget(m_change);
+	l1->addWidget(m_remove);
+	l1->addSpacing(10);
+	l1->addWidget(m_up);
+	l1->addWidget(m_down);
+	l1->addStretch(1);
+	updateButton();
+	connect(m_filters, TQT_SIGNAL(selectionChanged ()),TQT_SLOT(updateButton()));
+}
+
+void ConfFilters::load()
+{
+	TQFile	f(locate("data","tdeprintfax/faxfilters"));
+	if (f.exists() && f.open(IO_ReadOnly))
+	{
+		TQTextStream	t(&f);
+		TQString		line;
+		int		p(-1);
+		TQListViewItem	*item(0);
+		while (!t.eof())
+		{
+			line = t.readLine().stripWhiteSpace();
+			if ((p=line.find(TQRegExp("\\s"))) != -1)
+			{
+				TQString	mime(line.left(p)), cmd(line.right(line.length()-p-1).stripWhiteSpace());
+				if (!mime.isEmpty() && !cmd.isEmpty())
+					item = new TQListViewItem(m_filters, item, mime, cmd);
+			}
+		}
+	}
+}
+
+void ConfFilters::save()
+{
+	TQListViewItem	*item = m_filters->firstChild();
+	TQFile	f(locateLocal("data","tdeprintfax/faxfilters"));
+	if (f.open(IO_WriteOnly))
+	{
+		TQTextStream	t(&f);
+		while (item)
+		{
+			t << item->text(0) << ' ' << item->text(1) << endl;
+			item = item->nextSibling();
+		}
+	}
+}
+
+void ConfFilters::slotAdd()
+{
+	TQString	mime, cmd;
+	if (FilterDlg::doIt(this, &mime, &cmd))
+		if (!mime.isEmpty() && !cmd.isEmpty())
+		  {
+		    new TQListViewItem(m_filters, m_filters->currentItem(), mime, cmd);
+		    updateButton();
+		  }
+		else
+			KMessageBox::error(this, i18n("Empty parameters."));
+}
+
+void ConfFilters::slotRemove()
+{
+	TQListViewItem	*item = m_filters->currentItem();
+	if (item)
+		delete item;
+	updateButton();
+}
+
+void ConfFilters::slotChange()
+{
+	TQListViewItem	*item = m_filters->currentItem();
+	if (item)
+	{
+		TQString	mime(item->text(0)), cmd(item->text(1));
+		if (FilterDlg::doIt(this, &mime, &cmd))
+		{
+			item->setText(0, mime);
+			item->setText(1, cmd);
+		}
+	}
+}
+
+void ConfFilters::slotUp()
+{
+	TQListViewItem	*item = m_filters->currentItem();
+	if (item && item->itemAbove())
+	{
+		m_filters->moveItem(item, 0, item->itemAbove()->itemAbove());
+		m_filters->setCurrentItem(item);
+		updateButton();
+	}
+}
+
+void ConfFilters::slotDown()
+{
+	TQListViewItem	*item = m_filters->currentItem();
+	if (item && item->itemBelow())
+	{
+		m_filters->moveItem(item, 0, item->itemBelow());
+		m_filters->setCurrentItem(item);
+		updateButton();
+	}
+}
+
+void ConfFilters::updateButton()
+{
+  TQListViewItem	*item = m_filters->currentItem();
+
+  bool state=item && item->itemBelow();
+  m_remove->setEnabled(item);
+  m_down->setEnabled(state);
+  state=item && item->itemAbove();
+  m_up->setEnabled(state);
+  m_change->setEnabled(item);
+}
+
+#include "conffilters.moc"
diff --git a/tdeprint/tdeprintfax/conffilters.h b/tdeprint/tdeprintfax/conffilters.h
new file mode 100644
index 000000000..871b44bec
--- /dev/null
+++ b/tdeprint/tdeprintfax/conffilters.h
@@ -0,0 +1,48 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef CONFFILTERS_H
+#define CONFFILTERS_H
+
+#include <tqwidget.h>
+#include <tqpushbutton.h>
+class KListView;
+
+class ConfFilters : public TQWidget
+{
+	Q_OBJECT
+public:
+	ConfFilters(TQWidget *parent = 0, const char *name = 0);
+
+	void load();
+	void save();
+protected slots:
+	void slotAdd();
+	void slotRemove();
+	void slotChange();
+	void slotUp();
+	void slotDown();
+	void updateButton();
+private:
+	KListView	*m_filters;
+	TQPushButton	*m_add,*m_remove,*m_up,*m_down,*m_change;
+};
+
+#endif
diff --git a/tdeprint/tdeprintfax/confgeneral.cpp b/tdeprint/tdeprintfax/confgeneral.cpp
new file mode 100644
index 000000000..db3ef916a
--- /dev/null
+++ b/tdeprint/tdeprintfax/confgeneral.cpp
@@ -0,0 +1,90 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include "confgeneral.h"
+
+#include <tqlineedit.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <tqcheckbox.h>
+
+#include <kglobal.h>
+#include <kconfig.h>
+#include <klocale.h>
+#include <kseparator.h>
+
+#include <stdlib.h>
+
+ConfGeneral::ConfGeneral(TQWidget *parent, const char *name)
+: TQWidget(parent, name)
+{
+	m_name = new TQLineEdit(this);
+	m_company = new TQLineEdit(this);
+	m_number = new TQLineEdit(this);
+	TQLabel	*m_namelabel = new TQLabel(i18n("&Name:"), this);
+	m_namelabel->setBuddy(m_name);
+	TQLabel	*m_companylabel = new TQLabel(i18n("&Company:"), this);
+	m_companylabel->setBuddy(m_company);
+	TQLabel	*m_numberlabel = new TQLabel(i18n("N&umber:"), this);
+        m_numberlabel->setBuddy(m_number);
+	KSeparator *sep = new KSeparator( this );
+	m_replace_int_char = new TQCheckBox( i18n( "Replace international prefix '+' with:" ), this );
+	m_replace_int_char_val = new TQLineEdit( this );
+	m_replace_int_char_val->setEnabled( false );
+
+	connect( m_replace_int_char, TQT_SIGNAL( toggled( bool ) ), m_replace_int_char_val, TQT_SLOT( setEnabled( bool ) ) );
+
+	TQGridLayout	*l0 = new TQGridLayout(this, 6, 2, 10, 10);
+	l0->setColStretch(1, 1);
+	l0->setRowStretch(5, 1);
+	l0->addWidget(m_namelabel, 0, 0);
+	l0->addWidget(m_companylabel, 1, 0);
+	l0->addWidget(m_numberlabel, 2, 0);
+	l0->addWidget(m_name, 0, 1);
+	l0->addWidget(m_company, 1, 1);
+	l0->addWidget(m_number, 2, 1);
+	l0->addMultiCellWidget( sep, 3, 3, 0, 1 );
+	TQHBoxLayout *l1 = new TQHBoxLayout( this, 0, 10 );
+	l0->addMultiCellLayout( l1, 4, 4, 0, 1 );
+	l1->addWidget( m_replace_int_char );
+	l1->addWidget( m_replace_int_char_val );
+}
+
+void ConfGeneral::load()
+{
+	KConfig	*conf = KGlobal::config();
+	conf->setGroup("Personal");
+	m_name->setText(conf->readEntry("Name", getenv("USER")));
+	m_number->setText(conf->readEntry("Number"));
+	m_company->setText(conf->readEntry("Company"));
+	m_replace_int_char->setChecked( conf->readBoolEntry( "ReplaceIntChar", false ) );
+	m_replace_int_char_val->setText( conf->readEntry( "ReplaceIntCharVal" ) );
+}
+
+void ConfGeneral::save()
+{
+	KConfig	*conf = KGlobal::config();
+	conf->setGroup("Personal");
+	conf->writeEntry("Name", m_name->text());
+	conf->writeEntry("Number", m_number->text());
+	conf->writeEntry("Company", m_company->text());
+	conf->writeEntry( "ReplaceIntChar", m_replace_int_char->isChecked() );
+	conf->writeEntry( "ReplaceIntCharVal", m_replace_int_char_val->text() );
+}
diff --git a/tdeprint/tdeprintfax/confgeneral.h b/tdeprint/tdeprintfax/confgeneral.h
new file mode 100644
index 000000000..2962b0b0b
--- /dev/null
+++ b/tdeprint/tdeprintfax/confgeneral.h
@@ -0,0 +1,43 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef CONFGENERAL_H
+#define CONFGENERAL_H
+
+#include <tqwidget.h>
+
+class TQLineEdit;
+class TQCheckBox;
+
+class ConfGeneral : public TQWidget
+{
+public:
+	ConfGeneral(TQWidget *parent = 0, const char *name = 0);
+
+	void load();
+	void save();
+
+private:
+	TQLineEdit	*m_name, *m_company, *m_number;
+	TQCheckBox   *m_replace_int_char;
+	TQLineEdit   *m_replace_int_char_val;
+};
+
+#endif
diff --git a/tdeprint/tdeprintfax/configdlg.cpp b/tdeprint/tdeprintfax/configdlg.cpp
new file mode 100644
index 000000000..526b767ff
--- /dev/null
+++ b/tdeprint/tdeprintfax/configdlg.cpp
@@ -0,0 +1,75 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include "configdlg.h"
+#include "confgeneral.h"
+#include "conffax.h"
+#include "confsystem.h"
+#include "conffilters.h"
+
+#include <tqvbox.h>
+#include <klocale.h>
+#include <kiconloader.h>
+
+ConfigDlg::ConfigDlg(TQWidget *parent, const char *name)
+: KDialogBase(IconList, i18n("Configuration"), Ok|Cancel, Ok, parent, name, true)
+{
+	TQVBox	*page1 = addVBoxPage(i18n("Personal"), i18n("Personal Settings"), DesktopIcon("kdmconfig"));
+	m_general = new ConfGeneral(page1, "Personal");
+
+	TQVBox	*page2 = addVBoxPage(i18n("Page setup"), i18n("Page Setup"), DesktopIcon("editcopy"));
+	m_fax = new ConfFax(page2, "Fax");
+
+	TQVBox	*page3 = addVBoxPage(i18n("System"), i18n("Fax System Selection"), DesktopIcon("tdeprintfax"));
+	m_system = new ConfSystem(page3, "System");
+
+	TQVBox	*page4 = addVBoxPage(i18n("Filters"), i18n("Filters Configuration"), DesktopIcon("filter"));
+	m_filters = new ConfFilters(page4, "Filters");
+
+	resize(450, 300);
+}
+
+void ConfigDlg::load()
+{
+	m_general->load();
+	m_fax->load();
+	m_system->load();
+	m_filters->load();
+}
+
+void ConfigDlg::save()
+{
+	m_general->save();
+	m_fax->save();
+	m_system->save();
+	m_filters->save();
+}
+
+bool ConfigDlg::configure(TQWidget *parent)
+{
+	ConfigDlg	dlg(parent);
+	dlg.load();
+	if (dlg.exec())
+	{
+		dlg.save();
+		return true;
+	}
+	return false;
+}
diff --git a/tdeprint/tdeprintfax/configdlg.h b/tdeprint/tdeprintfax/configdlg.h
new file mode 100644
index 000000000..6fabd2011
--- /dev/null
+++ b/tdeprint/tdeprintfax/configdlg.h
@@ -0,0 +1,48 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef CONFIGDLG_H
+#define CONFIGDLG_H
+
+#include <kdialogbase.h>
+
+class ConfGeneral;
+class ConfFax;
+class ConfSystem;
+class ConfFilters;
+
+class ConfigDlg : public KDialogBase
+{
+public:
+	static bool configure(TQWidget *parent = 0);
+
+protected:
+	ConfigDlg(TQWidget *parent = 0, const char *name = 0);
+	void load();
+	void save();
+
+private:
+	ConfGeneral	*m_general;
+	ConfFax		*m_fax;
+	ConfSystem	*m_system;
+	ConfFilters	*m_filters;
+};
+
+#endif
diff --git a/tdeprint/tdeprintfax/confsystem.cpp b/tdeprint/tdeprintfax/confsystem.cpp
new file mode 100644
index 000000000..91c23adb6
--- /dev/null
+++ b/tdeprint/tdeprintfax/confsystem.cpp
@@ -0,0 +1,199 @@
+/*
+ *   tdeprintfax - a small fax utility 
+ *   Copyright (C) 2001  Michael Goffioul 
+ * 
+ *   This program is free software; you can redistribute it and/or modify 
+ *   it under the terms of the GNU General Public License as published by 
+ *   the Free Software Foundation; either version 2 of the License, or 
+ *   (at your option) any later version. 
+ * 
+ *   This program is distributed in the hope that it will be useful, 
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
+ *   GNU General Public License for more details. 
+ * 
+ *   You should have received a copy of the GNU General Public License 
+ *   along with this program; if not, write to the Free Software 
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. 
+ * 
+ */ 
+ 
+#include "confsystem.h" 
+#include "defcmds.h" 
+ 
+#include <tqlineedit.h> 
+#include <tqlabel.h> 
+#include <tqlayout.h> 
+#include <tqcombobox.h>
+ 
+#include <kglobal.h> 
+#include <kconfig.h> 
+#include <klocale.h>
+#include <kseparator.h>
+
+#include <stdlib.h>
+ 
+#define	EFAX_ID		0 
+#define	HYLAFAX_ID	1
+#define	MGETTY_ID	2
+#define OTHER_ID    3
+ 
+ConfSystem::ConfSystem(TQWidget *parent, const char *name) 
+: TQWidget(parent, name) 
+{ 
+	m_system = new TQComboBox(this);
+	m_system->insertItem("EFax");
+	m_system->insertItem("HylaFax");
+	m_system->insertItem("Mgetty-sendfax");
+	m_system->insertItem( "Other" );
+	m_command = new TQLineEdit(this);
+	TQLabel	*syslabel = new TQLabel(i18n("F&ax system:"), this);
+	TQLabel	*cmdlabel = new TQLabel(i18n("Co&mmand:"), this);
+	syslabel->setBuddy(m_system);
+	cmdlabel->setBuddy(m_command);
+	connect(m_system, TQT_SIGNAL(activated(int)), TQT_SLOT(slotSystemChanged(int)));
+	m_current = 0;
+	m_system->setCurrentItem(m_current);
+
+	TQWidget	*m_dummy1 = new TQWidget(this), *m_dummy2 = new TQWidget(this);
+	m_server = new TQLineEdit(m_dummy1);
+	m_device = new TQComboBox(m_dummy2);
+	TQLabel	*srvlabel = new TQLabel(i18n("Fax &server (if any):"), m_dummy1);
+	TQLabel	*devlabel = new TQLabel(i18n("&Fax/Modem device:"), m_dummy2);
+	srvlabel->setBuddy(m_server);
+	devlabel->setBuddy(m_device);
+	m_device->insertItem(i18n("Standard Modem Port"));
+	for (int i=0; i<10; i++)
+		m_device->insertItem(TQString(i18n("Serial Port #%1").arg(i)));
+	m_device->insertItem( i18n( "Other" ) );
+	connect( m_device, TQT_SIGNAL( activated( int ) ), TQT_SLOT( slotDeviceChanged( int ) ) );
+	m_device_edit = new TQLineEdit( m_dummy2 );
+	slotDeviceChanged( 0 );
+
+	KSeparator	*sep = new KSeparator(this);
+	sep->setMinimumHeight(10);
+ 
+	TQVBoxLayout	*l0 = new TQVBoxLayout(this, 10, 10);
+	TQGridLayout	*l1 = new TQGridLayout(0, 2, 2, 0, 10);
+	l0->addLayout(TQT_TQLAYOUT(l1));
+	l1->setColStretch(1, 1);
+	l1->addWidget(syslabel, 0, 0);
+	l1->addWidget(cmdlabel, 1, 0);
+	l1->addWidget(m_system, 0, 1);
+	l1->addWidget(m_command, 1, 1);
+	l0->addWidget(sep);
+	l0->addWidget(m_dummy1);
+	l0->addWidget(m_dummy2);
+	l0->addStretch(1); 
+	TQHBoxLayout	*l4 = new TQHBoxLayout(m_dummy1, 0, 10);
+	l4->addWidget(srvlabel, 0);
+	l4->addWidget(m_server, 1);
+	TQGridLayout	*l5 = new TQGridLayout( m_dummy2, 2, 2, 0, 10 );
+	l5->setColStretch( 1, 1 );
+	l5->addWidget(devlabel, 0, 0);
+	l5->addWidget(m_device, 0, 1);
+	l5->addWidget( m_device_edit, 1, 1 );
+} 
+ 
+void ConfSystem::load() 
+{ 
+	KConfig	*conf = KGlobal::config(); 
+	conf->setGroup("System");
+	m_commands << conf->readPathEntry("EFax", defaultCommand(efax_default_cmd)); 
+	m_commands << conf->readPathEntry("HylaFax", defaultCommand(hylafax_default_cmd));
+	m_commands << conf->readPathEntry("Mgetty", defaultCommand(mgetty_default_cmd));
+	m_commands << conf->readPathEntry( "Other", TQString::null );
+	TQString	v = conf->readEntry("System", "efax");
+	if (v == "mgetty") m_current = MGETTY_ID;
+	else if (v == "hylafax") m_current = HYLAFAX_ID;
+	else if ( v == "other" ) m_current = OTHER_ID;
+	else m_current = EFAX_ID;
+	conf->setGroup("Fax");
+	m_server->setText(conf->readEntry("Server", getenv("FAXSERVER")));
+	v = conf->readEntry("Device", "modem");
+	if (v.startsWith("ttyS"))
+		m_device->setCurrentItem(v.right(v.length()-4).toInt()+1);
+	else if ( v == "modem" )
+		m_device->setCurrentItem(0);
+	else
+	{
+		m_device->setCurrentItem( m_device->count()-1 );
+		m_device_edit->setText( "/dev/" + v );
+		slotDeviceChanged( m_device->count()-1 );
+	}
+
+	m_system->setCurrentItem(m_current);
+	m_command->setText(m_commands[m_current]);
+	slotSystemChanged(m_current);
+}
+ 
+void ConfSystem::save()
+{
+	m_commands[ m_current ] = m_command->text();
+	KConfig	*conf = KGlobal::config();
+	conf->setGroup("System");
+	if (m_commands[EFAX_ID] != defaultCommand(efax_default_cmd))
+		conf->writePathEntry("EFax", m_commands[EFAX_ID]);
+	else
+		conf->deleteEntry("EFax");
+	if (m_commands[HYLAFAX_ID] != defaultCommand(hylafax_default_cmd))
+		conf->writePathEntry("HylaFax", m_commands[HYLAFAX_ID]);
+	else
+		conf->deleteEntry("HylaFax");
+	if (m_commands[MGETTY_ID] != defaultCommand(mgetty_default_cmd))
+		conf->writePathEntry("Mgetty", m_commands[MGETTY_ID]);
+	else
+		conf->deleteEntry("Mgetty");
+	if ( !m_commands[ OTHER_ID ].isEmpty() )
+		conf->writeEntry( "Other", m_commands[ OTHER_ID ] );
+	else
+		conf->deleteEntry( "Other" );
+	int	ID = m_system->currentItem();
+	switch (ID)
+	{
+		case EFAX_ID: conf->writeEntry("System", "efax"); break;
+		case HYLAFAX_ID: conf->writeEntry("System", "hylafax"); break;
+		case MGETTY_ID: conf->writeEntry("System", "mgetty"); break;
+		case OTHER_ID: conf->writeEntry( "System", "other" ); break;
+	}
+	conf->setGroup("Fax");
+	if ( m_device->currentItem() != ( m_device->count()-1 ) )
+		conf->writeEntry("Device", m_device->currentItem() == 0 ? TQString("modem") : TQString(TQString("ttyS%1").arg(m_device->currentItem()-1)));
+	else
+	{
+		TQString dev = m_device_edit->text();
+		// strip leading "/dev/"
+		if ( dev.startsWith( "/dev/" ) )
+			dev = dev.mid( 5 );
+		conf->writeEntry( "Device", dev );
+	}
+	if (m_server->text().isEmpty())
+		conf->deleteEntry("Server");
+	else
+		conf->writeEntry("Server", m_server->text());
+}
+
+void ConfSystem::slotSystemChanged(int ID)
+{
+	m_commands[m_current] = m_command->text();
+	m_current = ID;
+	if (ID == EFAX_ID)
+		m_device->parentWidget()->show();
+	else
+		m_device->parentWidget()->hide();
+	if (ID == HYLAFAX_ID)
+		m_server->parentWidget()->show();
+	else
+		m_server->parentWidget()->hide();
+	m_command->setText(m_commands[m_current]);
+}
+
+void ConfSystem::slotDeviceChanged( int ID )
+{
+	if ( ID != ( m_device->count()-1 ) )
+		m_device_edit->hide();
+	else
+		m_device_edit->show();
+}
+
+#include "confsystem.moc"
diff --git a/tdeprint/tdeprintfax/confsystem.h b/tdeprint/tdeprintfax/confsystem.h
new file mode 100644
index 000000000..0ce8971f0
--- /dev/null
+++ b/tdeprint/tdeprintfax/confsystem.h
@@ -0,0 +1,50 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef CONFSYSTEM_H
+#define CONFSYSTEM_H
+
+#include <tqwidget.h>
+#include <tqstringlist.h>
+
+class TQLineEdit;
+class TQComboBox;
+
+class ConfSystem : public TQWidget
+{
+	Q_OBJECT
+public:
+	ConfSystem(TQWidget *parent = 0, const char *name = 0);
+
+	void load();
+	void save();
+
+protected slots:
+	void slotSystemChanged(int);
+	void slotDeviceChanged(int);
+
+private:
+	TQComboBox	*m_system, *m_device;
+	TQLineEdit	*m_command, *m_server, *m_device_edit;
+	TQStringList	m_commands;
+	int		m_current;
+};
+
+#endif
diff --git a/tdeprint/tdeprintfax/cr16-action-abentry.png b/tdeprint/tdeprintfax/cr16-action-abentry.png
new file mode 100644
index 000000000..b6b1011f3
Binary files /dev/null and b/tdeprint/tdeprintfax/cr16-action-abentry.png differ
diff --git a/tdeprint/tdeprintfax/defcmds.cpp b/tdeprint/tdeprintfax/defcmds.cpp
new file mode 100644
index 000000000..a2d58c17e
--- /dev/null
+++ b/tdeprint/tdeprintfax/defcmds.cpp
@@ -0,0 +1,38 @@
+/*
+ *  This file is part of the KDE libraries
+ *  Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License version 2 as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public License
+ *  along with this library; see the file COPYING.LIB.  If not, write to
+ *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301, USA.
+ **/
+
+#include "defcmds.h"
+
+#include <tqregexp.h>
+#include <kstandarddirs.h>
+
+TQString defaultCommand(const TQString& cmd)
+{
+	TQString	str(cmd);
+	TQRegExp	r("%exe_(\\w+)");
+	int	p(-1);
+	if ((p=r.search(str)) != -1)
+	{
+		TQString	exe = KStandardDirs::findExe(r.cap(1));
+		if (exe.isEmpty())
+			exe = "/usr/bin/"+r.cap(1);
+		str.replace(p, r.matchedLength(), exe);
+	}
+	return str;
+}
diff --git a/tdeprint/tdeprintfax/defcmds.h b/tdeprint/tdeprintfax/defcmds.h
new file mode 100644
index 000000000..90d67b83f
--- /dev/null
+++ b/tdeprint/tdeprintfax/defcmds.h
@@ -0,0 +1,32 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef DEFCMDS_H
+#define DEFCMDS_H
+
+#include <tqstring.h>
+
+#define efax_default_cmd    "%exe_fax %user_{NAME=\"@@\"} %dev_{DEV=@@} PAGE=%page %from_{FROM=\"@@\"} %res_{?\?-l} send %number %files"
+#define hylafax_default_cmd "%exe_sendfax %cover_{?\?-n} %server_h %res_{-m?\?-l} %subject_r %time_a %enterprise_x %comment_c %email_f %from_W %page_s -d %name_{@@@}%number %files"
+#define mgetty_default_cmd  "%exe_faxspool %user_F %email_f %name_D %time_t %number %files %res_{?\?-n} %cover_{?\?-C -}"
+
+TQString defaultCommand(const TQString& cmd);
+
+#endif
diff --git a/tdeprint/tdeprintfax/faxab.cpp b/tdeprint/tdeprintfax/faxab.cpp
new file mode 100644
index 000000000..ad50ac9fb
--- /dev/null
+++ b/tdeprint/tdeprintfax/faxab.cpp
@@ -0,0 +1,212 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include "faxab.h"
+
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <kpushbutton.h>
+#include <klistview.h>
+#include <tqheader.h>
+#include <klocale.h>
+#include <kabc/stdaddressbook.h>
+#include <kmessagebox.h>
+#include <kiconloader.h>
+#include <krun.h>
+#include <kstdguiitem.h>
+#include <kglobal.h>
+#include <kconfig.h>
+
+FaxAB::FaxAB(TQWidget *parent, const char *name)
+: KDialog(parent, name, true)
+{
+	m_list = new KListView( this );
+	m_list->addColumn( i18n( "Name" ) );
+	m_list->addColumn( i18n( "Fax Number" ) );
+	m_list->header()->setStretchEnabled( true, 0 );
+	TQLabel	*m_listlabel = new TQLabel(i18n("Entries:"), this);
+	m_ok = new KPushButton(KStdGuiItem::ok(), this);
+	TQPushButton	*m_cancel = new KPushButton(KStdGuiItem::cancel(), this);
+	TQPushButton	*m_ab = new KPushButton(KGuiItem(i18n("&Edit Addressbook"), "contents"), this);
+	connect(m_ok, TQT_SIGNAL(clicked()), TQT_SLOT(accept()));
+	connect(m_cancel, TQT_SIGNAL(clicked()), TQT_SLOT(reject()));
+	connect(m_ab, TQT_SIGNAL(clicked()), TQT_SLOT(slotEditAb()));
+	m_ok->setDefault(true);
+
+	TQVBoxLayout	*l0 = new TQVBoxLayout(this, 10, 10);
+	l0->addWidget( m_listlabel );
+	l0->addWidget( m_list );
+	TQHBoxLayout	*l2 = new TQHBoxLayout(0, 0, 10);
+	l0->addLayout(l2, 0);
+	l2->addWidget(m_ab, 0);
+	l2->addStretch(1);
+	l2->addWidget(m_ok, 0);
+	l2->addWidget(m_cancel, 0);
+
+	KConfig *conf = KGlobal::config();
+	conf->setGroup( "General" );
+	TQSize defsize( 400, 200 );
+	resize( conf->readSizeEntry( "ABSize", &defsize ) );
+
+	initialize();
+	connect(KABC::StdAddressBook::self(), TQT_SIGNAL(addressBookChanged(AddressBook*)), TQT_SLOT(slotAbChanged(AddressBook*)));
+}
+
+FaxAB::~FaxAB()
+{
+	KConfig *conf = KGlobal::config();
+	conf->setGroup( "General" );
+	conf->writeEntry( "ABSize", size() );
+}
+
+void FaxAB::initialize()
+{
+	m_entries.clear();
+	m_list->clear();
+
+	KABC::AddressBook	*bk = KABC::StdAddressBook::self();
+	for (KABC::AddressBook::Iterator it=bk->begin(); it!=bk->end(); ++it)
+	{
+		KABC::PhoneNumber::List	numbers = (*it).phoneNumbers();
+		KABC::PhoneNumber::List faxNumbers;
+		for (TQValueList<KABC::PhoneNumber>::Iterator nit=numbers.begin(); nit!=numbers.end(); ++nit)
+		{
+			if (((*nit).type() & KABC::PhoneNumber::Fax) && !(*nit).number().isEmpty())
+				faxNumbers << ( *nit );
+		}
+		if (faxNumbers.count() > 0)
+		{
+			for ( KABC::PhoneNumber::List::ConstIterator nit = faxNumbers.begin(); nit != faxNumbers.end(); ++nit )
+			{
+				FaxABEntry entry;
+				entry.m_number = ( *nit );
+				entry.m_enterprise = ( *it ).organization();
+				if ( !( *it ).formattedName().isEmpty() )
+					entry.m_name = ( *it ).formattedName();
+				else
+				{
+					TQString key = ( *it ).familyName();
+					if ( !( *it ).givenName().isEmpty() )
+					{
+						if ( !key.isEmpty() )
+							key.append( " " );
+						key.append( ( *it ).givenName() );
+					}
+					entry.m_name = key;
+				}
+				entry.m_name += ( " (" + ( *nit ).typeLabel() + ")" );
+				m_entries[ entry.m_name ] = entry;
+			}
+		}
+	}
+
+	if (m_entries.count() > 0)
+	{
+		for (TQMap<TQString,FaxABEntry>::ConstIterator it=m_entries.begin(); it!=m_entries.end(); ++it)
+		{
+			TQCheckListItem *item = new TQCheckListItem( m_list, it.key(), TQCheckListItem::CheckBox );
+			item->setText( 1, ( *it ).m_number.number() );
+			item->setText( 2, ( *it ).m_enterprise );
+		}
+		m_list->sort();
+		m_ok->setEnabled(true);
+	}
+	else
+		m_ok->setDisabled(true);
+}
+
+void FaxAB::slotEditAb()
+{
+	KRun::runCommand("kaddressbook");
+}
+
+void FaxAB::slotAbChanged(AddressBook*)
+{
+	initialize();
+}
+
+bool FaxAB::getEntry(TQStringList& number, TQStringList& name, TQStringList& enterprise, TQWidget *parent)
+{
+	FaxAB	kab(parent);
+	if (!kab.isValid())
+	{
+		KMessageBox::error(parent, i18n("No fax number found in your address book."));
+		return false;
+	}
+	if (kab.exec())
+	{
+		TQListViewItemIterator it( kab.m_list, TQListViewItemIterator::Checked );
+		while ( it.current() )
+		{
+			number << it.current()->text( 1 );
+			name << it.current()->text( 0 );
+			enterprise << it.current()->text( 2 );
+			++it;
+		}
+		/*
+		number = kab.m_fax->currentText();
+		name = kab.m_name->currentText();
+		if (kab.m_entries.contains(name))
+		{
+			enterprise = kab.m_entries[name][0];
+		}
+		*/
+		return true;
+	}
+
+	return false;
+}
+
+bool FaxAB::getEntryByNumber(const TQString& number, TQString& name, TQString& enterprise)
+{
+	KABC::AddressBook *bk = KABC::StdAddressBook::self();
+	for (KABC::AddressBook::Iterator it=bk->begin(); it!=bk->end(); ++it)
+	{
+		KABC::PhoneNumber::List	numbers = (*it).phoneNumbers();
+		TQStringList	filteredNumbers;
+		for (TQValueList<KABC::PhoneNumber>::Iterator nit=numbers.begin(); nit!=numbers.end(); ++nit)
+		{
+			if (((*nit).type() & KABC::PhoneNumber::Fax) )
+			{
+				TQString strippedNumber;
+				for (uint i = 0; i < (*nit).number().length(); ++i)
+					if ((*nit).number()[i].isDigit() || ( *nit ).number()[ i ] == '+')
+						strippedNumber.append((*nit).number()[i]);
+
+				if ( strippedNumber == number)
+				{
+					enterprise = (*it).organization();
+					name = (*it).formattedName();
+					return true;
+				}
+			}
+		}
+	}
+
+	return false;
+}
+
+bool FaxAB::isValid()
+{
+	return true;
+	//return (m_name->count() > 0);
+}
+
+#include "faxab.moc"
diff --git a/tdeprint/tdeprintfax/faxab.h b/tdeprint/tdeprintfax/faxab.h
new file mode 100644
index 000000000..8b50c204a
--- /dev/null
+++ b/tdeprint/tdeprintfax/faxab.h
@@ -0,0 +1,64 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef FAXAB_H
+#define FAXAB_H
+
+#include <kdialog.h>
+#include <tqmap.h>
+#include <tqstringlist.h>
+#include <kabc/phonenumber.h>
+
+class KListView;
+class AddressBook;
+class TQPushButton;
+
+class FaxAB : public KDialog
+{
+	Q_OBJECT
+public:
+	FaxAB(TQWidget *parent = 0, const char *name = 0);
+	~FaxAB();
+	bool isValid();
+
+	static bool getEntry(TQStringList& number, TQStringList& name, TQStringList& enterprise, TQWidget *parent = 0);
+	static bool getEntryByNumber(const TQString& number, TQString& name, TQString& enterprise);
+
+protected slots:
+	void slotEditAb();
+	void slotAbChanged(AddressBook*);
+
+protected:
+	void initialize();
+
+private:
+	struct FaxABEntry
+	{
+		TQString           m_name;
+		KABC::PhoneNumber m_number;
+		TQString           m_enterprise;
+	};
+
+	KListView*                  m_list;
+	TQMap<TQString,FaxABEntry>    m_entries;
+	TQPushButton*                m_ok;
+};
+
+#endif
diff --git a/tdeprint/tdeprintfax/faxctrl.cpp b/tdeprint/tdeprintfax/faxctrl.cpp
new file mode 100644
index 000000000..c1b1b1a0d
--- /dev/null
+++ b/tdeprint/tdeprintfax/faxctrl.cpp
@@ -0,0 +1,669 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include "faxctrl.h"
+#include "tdeprintfax.h"
+#include "defcmds.h"
+
+#include <ktextedit.h>
+#include <tqfile.h>
+#include <tqtextstream.h>
+#include <kpushbutton.h>
+#include <tqlayout.h>
+#include <tqregexp.h>
+#include <kprinter.h>
+#include <tqsimplerichtext.h>
+#include <tqpainter.h>
+#include <tqpaintdevicemetrics.h>
+#include <tqvaluestack.h>
+#include <tqstylesheet.h>
+
+#include <kprocess.h>
+#include <kglobal.h>
+#include <kconfig.h>
+#include <klocale.h>
+#include <kdialogbase.h>
+#include <kmimetype.h>
+#include <kstandarddirs.h>
+#include <kapplication.h>
+#include <kwin.h>
+#include <kemailsettings.h>
+#include <kdebug.h>
+#include <kstdguiitem.h>
+#include <kfiledialog.h>
+#include <kmessagebox.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+
+#define quote(x) KProcess::quote(x)
+
+/** \brief Return a string for the page size.
+ *
+ * @param size the page size, which is actually of type @c TQPrinter::PageSize
+ * @return a pointer to a static string for the name of the page size.
+ */
+char const* pageSizeText(int size)
+{
+	switch(size)
+	{
+	case TQPrinter::A4:		return "a4";
+	case TQPrinter::Legal:	return "legal";
+	case TQPrinter::Letter:	return "letter";
+	default:				return "letter";
+	}
+}
+
+/** \brief Return the default page size.
+ */
+static TQString pageSize()
+{
+	KConfig	*conf = KGlobal::config();
+	conf->setGroup("Fax");
+	return conf->readEntry("Page", pageSizeText(KGlobal::locale()->pageSize()));
+}
+
+static TQString stripNumber( const TQString& s )
+{
+	KConfig *conf = KGlobal::config();
+	conf->setGroup( "Personal" );
+
+	// removes any non-numeric character, except ('+','*','#') (hope it's supported by faxing tools)
+	TQString strip_s = s;
+	strip_s.replace( TQRegExp( "[^\\d+*#]" ), "" );
+	if ( strip_s.find( '+' ) != -1 && conf->readBoolEntry( "ReplaceIntChar", false ) )
+		strip_s.replace( "+", conf->readEntry( "ReplaceIntCharVal" ) );
+	return strip_s;
+}
+
+static TQString tagList( int n, ... )
+{
+	TQString t;
+
+	va_list ap;
+	va_start( ap, n );
+	for ( int i=0; i<n; i++ )
+	{
+		TQString tag = va_arg( ap, const char* );
+		tag.append( "(_(\\w|\\{[^\\}]*\\}))?" );
+		if ( t.isEmpty() )
+			t = tag;
+		else
+			t.append( "|" ).append( tag );
+	}
+
+	return t;
+}
+
+/** Process a @c %variable that has a boolean value.
+ * The format is <tt>%name_{iftrue??iffalse}</tt>. Either
+ * @em iftrue or @em iffalse can be empty (or both, but that would
+ * be silly). For example, if the fax software uses the
+ * option @c -l for low resolution, you might use <tt>%res_{??-l}</tt>,
+ * and if it uses high resolution, use <tt>%res_{-h??}</tt>. As an
+ * abbreviation, omit the trailing <tt>?</tt>, e.g., <tt>%res_{-h}</tt>.
+ *
+ * By the way, when using multiple, adjacent question marks,
+ * always be careful about inadvertently using trigraphs.
+ * Always escape the second and subsequent question marks, to be safe.
+ * I suppose question marks are not the best string to use,
+ * but I think they work well for the end-user.
+ *
+ * @param match the string to process
+ * @param value the Boolean value to control the processing
+ * @return the new value of the tag
+ */
+static TQString processTag( const TQString& match, bool value)
+{
+	TQString v;
+	int p = match.find( '_' );
+	if ( p != -1 && match[ p+1 ] == '{' )
+	{
+		// Find the ?? that separates the iftrue from the iffalse parts.
+		int q = match.find( "?\?", p+2 );
+		if ( q == -1 )
+		{
+			// No iffalse part
+			if (value)
+				v = match.mid( p+2 );
+			// else value is false, so leave v empty.
+		}
+		else if ( value )
+			// Extract only the iftrue part
+			v = match.mid( p+2, q-p-2 );
+		else
+			// Extract only the iffalse part
+			v = match.mid( q+2, match.length()-q-3 );
+	}
+	// Else the string is malformed: no _ or no { after the _
+	// In either case, there isn't much the program can do,
+	// so just leave the result string empty.
+
+	return v;
+}
+
+static TQString processTag( const TQString& match, const TQString& value )
+{
+	TQString v;
+	int p = match.find( '_' );
+	if ( p != -1 )
+	{
+		if ( value.isEmpty() )
+			v = "";
+		else
+		{
+			if ( match[ p+1 ] == '{' )
+			{
+				v = match.mid( p+2, match.length()-p-3 );
+				v.replace( "@@", quote( value ) );
+			}
+			else
+				v = ( "-" + match.mid( p+1 ) + " " + quote( value ) );
+		}
+	}
+	else
+		v = quote( value );
+	return v;
+}
+
+static bool isTag( const TQString& m, const TQString& t )
+{
+	return ( m == t || m.startsWith( t+"_" ) );
+}
+
+static TQString replaceTags( const TQString& s, const TQString& tags, KdeprintFax *fax = NULL, const KdeprintFax::FaxItem& item = KdeprintFax::FaxItem() )
+{
+	// unquote variables (they will be replaced with quoted values later)
+
+	TQValueStack<bool> stack;
+	KConfig	*conf = KGlobal::config();
+
+	TQString cmd = s;
+
+	bool issinglequote=false;
+	bool isdoublequote=false;
+	TQRegExp re_noquote("(\\$\\(|\\)|\\(|\"|'|\\\\|`|"+tags+")");
+	TQRegExp re_singlequote("('|"+tags+")");
+	TQRegExp re_doublequote("(\\$\\(|\"|\\\\|`|"+tags+")");
+	for	( int i = re_noquote.search(cmd);
+		i != -1;
+		i = (issinglequote?re_singlequote.search(cmd,i)
+			:isdoublequote?re_doublequote.search(cmd,i)
+			:re_noquote.search(cmd,i))
+	)
+	{
+		if (cmd[i]=='(') // (...)
+		{
+			// assert(isdoublequote == false)
+			stack.push(isdoublequote);
+			i++;
+		}
+		else if (cmd[i]=='$') // $(...)
+		{
+			stack.push(isdoublequote);
+			isdoublequote = false;
+			i+=2;
+		}
+		else if (cmd[i]==')') // $(...) or (...)
+		{
+			if (!stack.isEmpty())
+				isdoublequote = stack.pop();
+			else
+				qWarning("Parse error.");
+			i++;
+		}
+		else if (cmd[i]=='\'')
+		{
+			issinglequote=!issinglequote;
+			i++;
+		}
+		else if (cmd[i]=='"')
+		{
+			isdoublequote=!isdoublequote;
+			i++;
+		}
+		else if (cmd[i]=='\\')
+			i+=2;
+		else if (cmd[i]=='`')
+		{
+			// Replace all `...` with safer $(...)
+			cmd.replace (i, 1, "$(");
+			TQRegExp re_backticks("(`|\\\\`|\\\\\\\\|\\\\\\$)");
+			for (	int i2=re_backticks.search(cmd,i+2);
+				i2!=-1;
+				i2=re_backticks.search(cmd,i2)
+			)
+			{
+				if (cmd[i2] == '`')
+				{
+					cmd.replace (i2, 1, ")");
+					i2=cmd.length(); // leave loop
+				}
+				else
+				{	// remove backslash and ignore following character
+					cmd.remove (i2, 1);
+					i2++;
+				}
+			}
+			// Leave i unchanged! We need to process "$("
+		}
+		else
+		{
+			TQString match, v;
+
+			// get match
+			if (issinglequote)
+				match=re_singlequote.cap();
+			else if (isdoublequote)
+				match=re_doublequote.cap();
+			else
+				match=re_noquote.cap();
+
+			// substitute %variables
+			// settings
+			if ( isTag( match, "%dev" ) )
+			{
+				conf->setGroup("Fax");
+				v = processTag( match, conf->readEntry("Device", "modem") );
+
+			}
+			else if (isTag( match, "%server" ))
+			{
+				conf->setGroup( "Fax" );
+				v = conf->readEntry("Server");
+				if (v.isEmpty())
+					v = getenv("FAXSERVER");
+				if (v.isEmpty())
+					v = TQString::tqfromLatin1("localhost");
+				v = processTag( match, v );
+			}
+			else if (isTag( match, "%page" ))
+			{
+				conf->setGroup( "Fax" );
+				v = processTag( match, pageSize() );
+			}
+			else if (isTag( match, "%res" ))
+			{
+				conf->setGroup( "Fax" );
+				v = processTag(match, conf->readEntry("Resolution", "High") == "High");
+			}
+			else if (isTag( match, "%user" ))
+			{
+				conf->setGroup("Personal");
+				v = processTag(match, conf->readEntry("Name", getenv("USER")));
+			}
+			else if (isTag( match, "%from" ))
+			{
+				conf->setGroup( "Personal" );
+				v = processTag(match, conf->readEntry("Number"));
+			}
+			else if (isTag( match, "%email" ))
+			{
+				KEMailSettings	e;
+				v = processTag(match, e.getSetting(KEMailSettings::EmailAddress));
+			}
+			// arguments
+			else if (isTag( match, "%number" ))
+				v = processTag( match, stripNumber( item.number) );
+			else if (isTag( match, "%rawnumber" ))
+				v = processTag( match, item.number );
+			else if (isTag( match, "%name" ))
+				v = processTag(match, item.name);
+			else if (isTag( match, "%comment" ))
+				v = processTag(match, fax->comment());
+			else if (isTag( match, "%enterprise" ))
+				v = processTag(match, item.enterprise);
+			else if ( isTag( match, "%time" ) )
+				v = processTag( match, fax->time() );
+			else if ( isTag( match, "%subject" ) )
+				v = processTag( match, fax->subject() );
+			else if (isTag( match, "%cover" ))
+				v = processTag(match, fax->cover());
+
+			// %variable inside of a quote?
+			if (isdoublequote)
+				v='"'+v+'"';
+			else if (issinglequote)
+				v="'"+v+"'";
+
+			cmd.replace (i, match.length(), v);
+			i+=v.length();
+		}
+	}
+
+	return cmd;
+}
+
+FaxCtrl::FaxCtrl(TQWidget *parent, const char *name)
+: TQObject(parent, name)
+{
+	m_process = new KProcess();
+	m_process->setUseShell(true);
+	connect(m_process, TQT_SIGNAL(receivedStdout(KProcess*,char*,int)), TQT_SLOT(slotReceivedStdout(KProcess*,char*,int)));
+	connect(m_process, TQT_SIGNAL(receivedStderr(KProcess*,char*,int)), TQT_SLOT(slotReceivedStdout(KProcess*,char*,int)));
+	connect(m_process, TQT_SIGNAL(processExited(KProcess*)), TQT_SLOT(slotProcessExited(KProcess*)));
+	connect(this, TQT_SIGNAL(faxSent(bool)), TQT_SLOT(cleanTempFiles()));
+	m_logview = 0;
+}
+
+FaxCtrl::~FaxCtrl()
+{
+	slotCloseLog();
+	delete m_process;
+}
+
+bool FaxCtrl::send(KdeprintFax *f)
+{
+	m_command = faxCommand();
+	if (m_command.isEmpty())
+		return false;
+
+	// replace tags common to all fax "operations"
+	m_command = replaceTags( m_command, tagList( 11, "%dev", "%server", "%page", "%res", "%user", "%from", "%email", "%comment", "%time", "%subject", "%cover" ), f );
+
+	m_log = TQString::null;
+	m_filteredfiles.clear();
+	cleanTempFiles();
+	m_files = f->files();
+	m_faxlist = f->faxList();
+
+	addLogTitle( i18n( "Converting input files to PostScript" ) );
+	filter();
+
+	return true;
+}
+
+void FaxCtrl::slotReceivedStdout(KProcess*, char *buffer, int len)
+{
+	TQCString	str(buffer, len);
+	kdDebug() << "Received stdout: " << str << endl;
+	addLog(TQString(str));
+}
+
+void FaxCtrl::slotProcessExited(KProcess*)
+{
+	// we exited a process: if there's still entries in m_files, this was a filter
+	// process, else this was the fax process
+	bool	ok = (m_process->normalExit() && ((m_process->exitStatus() & (m_files.count() > 0 ? 0x1 : 0xFFFFFFFF)) == 0));
+	if ( ok )
+	{
+		if ( m_files.count() > 0 )
+		{
+			// remove first element
+			m_files.remove(m_files.begin());
+			if (m_files.count() > 0)
+				filter();
+			else
+				sendFax();
+		}
+		else if ( !m_faxlist.isEmpty() )
+			sendFax();
+		else
+			faxSent( true );
+	}
+	else
+	{
+		emit faxSent(false);
+	}
+}
+
+TQString FaxCtrl::faxCommand()
+{
+	KConfig	*conf = KGlobal::config();
+	conf->setGroup("System");
+	TQString	sys = conf->readPathEntry("System", "efax");
+	TQString cmd;
+	if (sys == "hylafax")
+		cmd = conf->readPathEntry("HylaFax", hylafax_default_cmd);
+	else if (sys == "mgetty")
+		cmd = conf->readPathEntry("Mgetty", mgetty_default_cmd);
+	else if ( sys == "other" )
+		cmd = conf->readPathEntry( "Other", TQString::null );
+	else
+		cmd = conf->readPathEntry("EFax", efax_default_cmd);
+	if (cmd.startsWith("%exe_"))
+		cmd = defaultCommand(cmd);
+	return cmd;
+}
+
+void FaxCtrl::sendFax()
+{
+	if ( m_command.find( "%files" ) != -1 )
+	{
+		// replace %files tag
+		TQString	filestr;
+		for (TQStringList::ConstIterator it=m_filteredfiles.begin(); it!=m_filteredfiles.end(); ++it)
+			filestr += (quote(*it)+" ");
+		m_command.replace("%files", filestr);
+	}
+
+	if ( !m_faxlist.isEmpty() )
+	{
+		KdeprintFax::FaxItem item = m_faxlist.first();
+		m_faxlist.remove(m_faxlist.begin());
+
+		addLogTitle( i18n( "Sending fax to %1 (%2)" ).arg( item.number ).arg( item.name ) );
+
+		TQString cmd = replaceTags( m_command, tagList( 4, "%number", "%name", "%enterprise", "%rawnumber" ), NULL, item );
+		m_process->clearArguments();
+		*m_process << cmd;
+		addLog(i18n("Sending to fax using: %1").arg(cmd));
+		if (!m_process->start(KProcess::NotifyOnExit, KProcess::AllOutput))
+			emit faxSent(false);
+		else
+			emit message(i18n("Sending fax to %1...").arg( item.number ));
+	}
+}
+
+void FaxCtrl::filter()
+{
+	if (m_files.count() > 0)
+	{
+		TQString	mimeType = KMimeType::findByURL(KURL(m_files[0]), 0, true)->name();
+		if (mimeType == "application/postscript" || mimeType == "image/tiff")
+		{
+			emit message(i18n("Skipping %1...").arg(m_files[0]));
+			m_filteredfiles.prepend(m_files[0]);
+			m_files.remove(m_files.begin());
+			filter();
+		}
+		else
+		{
+			TQString	tmp = locateLocal("tmp","tdeprintfax_") + kapp->randomString(8);
+			m_filteredfiles.prepend(tmp);
+			m_tempfiles.append(tmp);
+			m_process->clearArguments();
+			*m_process << locate("data","tdeprintfax/anytops") << "-m" << KProcess::quote(locate("data","tdeprintfax/faxfilters"))
+				<< TQString::tqfromLatin1("--mime=%1").arg(mimeType)
+				<< "-p" << pageSize()
+				<<  KProcess::quote(m_files[0]) << KProcess::quote(tmp);
+			if (!m_process->start(KProcess::NotifyOnExit, KProcess::AllOutput))
+				emit faxSent(false);
+			else
+				emit message(i18n("Filtering %1...").arg(m_files[0]));
+		}
+	}
+	else
+	{
+		sendFax();
+	}
+}
+
+bool FaxCtrl::abort()
+{
+	if (m_process->isRunning())
+		return m_process->kill();
+	else
+		return false;
+}
+
+void FaxCtrl::viewLog(TQWidget *)
+{
+	if (!m_logview)
+	{
+		TQWidget	*topView = new TQWidget(0, "LogView", (WFlags)(WType_TopLevel|WStyle_DialogBorder|WDestructiveClose));
+		m_logview = new KTextEdit(topView);
+		m_logview->setTextFormat( TQt::LogText );
+		m_logview->setWordWrap( TQTextEdit::WidgetWidth );
+		m_logview->setPaper( Qt::white );
+		//m_logview->setReadOnly(true);
+		//m_logview->setWordWrap(TQTextEdit::NoWrap);
+		TQPushButton	*m_clear = new KPushButton(KStdGuiItem::clear(), topView);
+		TQPushButton	*m_close = new KPushButton(KStdGuiItem::close(), topView);
+		TQPushButton *m_print = new KPushButton( KStdGuiItem::print(), topView );
+		TQPushButton *m_save = new KPushButton( KStdGuiItem::saveAs(), topView );
+		m_close->setDefault(true);
+		connect(m_clear, TQT_SIGNAL(clicked()), TQT_SLOT(slotClearLog()));
+		connect(m_close, TQT_SIGNAL(clicked()), TQT_SLOT(slotCloseLog()));
+		connect(m_logview, TQT_SIGNAL(destroyed()), TQT_SLOT(slotCloseLog()));
+		connect( m_print, TQT_SIGNAL( clicked() ), TQT_SLOT( slotPrintLog() ) );
+		connect( m_save, TQT_SIGNAL( clicked() ), TQT_SLOT( slotSaveLog() ) );
+
+		TQVBoxLayout	*l0 = new TQVBoxLayout(topView, 10, 10);
+		l0->addWidget(m_logview);
+		TQHBoxLayout	*l1 = new TQHBoxLayout(0, 0, 10);
+		l0->addLayout(l1);
+		l1->addStretch(1);
+		l1->addWidget( m_save );
+		l1->addWidget( m_print );
+		l1->addWidget(m_clear);
+		l1->addWidget(m_close);
+
+		m_logview->setText(m_log);
+
+		topView->resize(450, 350);
+		topView->show();
+	}
+	else
+	{
+		KWin::activateWindow(m_logview->parentWidget()->winId());
+	}
+}
+
+void FaxCtrl::addLogTitle( const TQString& s )
+{
+	TQString t( s );
+	t.prepend( '\n' ).append( '\n' );
+	addLog( t, true );
+}
+
+void FaxCtrl::addLog(const TQString& s, bool isTitle)
+{
+	TQString t = TQStyleSheet::escape(s);
+	if ( isTitle )
+		t.prepend( "<font color=red><b>" ).append( "</b></font>" );
+	m_log.append( t + '\n' );
+	if (m_logview)
+		m_logview->append(t);
+}
+
+TQString FaxCtrl::faxSystem()
+{
+	KConfig	*conf = KGlobal::config();
+	conf->setGroup("System");
+	TQString	s = conf->readEntry("System", "efax");
+	s[0] = s[0].upper();
+	return s;
+}
+
+void FaxCtrl::cleanTempFiles()
+{
+	for (TQStringList::ConstIterator it=m_tempfiles.begin(); it!=m_tempfiles.end(); ++it)
+		TQFile::remove(*it);
+	m_tempfiles.clear();
+}
+
+void FaxCtrl::slotClearLog()
+{
+	m_log = TQString::null;
+	if (m_logview)
+		m_logview->clear();
+}
+
+void FaxCtrl::slotCloseLog()
+{
+	const TQObject	*obj = TQT_TQOBJECT_CONST(sender());
+	if (m_logview)
+	{
+		TQTextEdit	*view = m_logview;
+		m_logview = 0;
+		if (obj && obj->inherits(TQPUSHBUTTON_OBJECT_NAME_STRING))
+			delete view->parentWidget();
+kdDebug() << "slotClose()" << endl;
+	}
+}
+
+void FaxCtrl::slotPrintLog()
+{
+	if ( m_logview )
+	{
+		KPrinter printer;
+		printer.setDocName( i18n( "Fax log" ) );
+		printer.setDocFileName( "faxlog" );
+		if ( printer.setup( m_logview->tqtopLevelWidget(), i18n( "Fax Log" ) ) )
+		{
+			TQPainter painter( &printer );
+			TQPaintDeviceMetrics metric( &printer );
+			TQRect body( 0, 0, metric.width(), metric.height() ), view( body );
+			//TQString txt = m_logview->text();
+			TQString txt = m_log;
+
+			txt.replace( '\n', "<br>" );
+			txt.prepend( "<h2>" + i18n( "KDEPrint Fax Tool Log" ) + "</h2>" );
+
+			kdDebug() << "Log: " << txt << endl;
+			TQSimpleRichText richText( txt, m_logview->font() );
+
+			richText.setWidth( &painter, body.width() );
+			do
+			{
+				richText.draw( &painter, body.left(), body.top(), view, m_logview->tqcolorGroup() );
+				view.moveBy( 0, body.height() );
+				painter.translate( 0, -body.height() );
+				if ( view.top() >= richText.height() )
+					break;
+				printer.newPage();
+			} while ( true );
+		}
+	}
+}
+
+void FaxCtrl::slotSaveLog()
+{
+	if ( m_logview )
+	{
+		TQString filename = KFileDialog::getSaveFileName( TQString::null, TQString::null, m_logview );
+		if ( !filename.isEmpty() )
+		{
+			TQFile f( filename );
+			if ( f.open( IO_WriteOnly ) )
+			{
+				TQTextStream t( &f );
+				t << i18n( "KDEPrint Fax Tool Log" ) << endl;
+				t << m_logview->text() << endl;
+				f.close();
+			}
+			else
+				KMessageBox::error( m_logview, i18n( "Cannot open file for writing." ) );
+		}
+	}
+}
+
+#include "faxctrl.moc"
diff --git a/tdeprint/tdeprintfax/faxctrl.h b/tdeprint/tdeprintfax/faxctrl.h
new file mode 100644
index 000000000..a7e16a850
--- /dev/null
+++ b/tdeprint/tdeprintfax/faxctrl.h
@@ -0,0 +1,73 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef FAXCTRL_H
+#define FAXCTRL_H
+
+#include <tqobject.h>
+#include <tqstring.h>
+#include <tqstringlist.h>
+
+#include "tdeprintfax.h"
+
+class KProcess;
+class TQTextEdit;
+
+class FaxCtrl : public TQObject
+{
+	Q_OBJECT
+public:
+	FaxCtrl(TQWidget *parent = 0, const char *name = 0);
+	~FaxCtrl();
+
+	bool send(KdeprintFax *f);
+	bool abort();
+	void viewLog(TQWidget *parent = 0);
+	TQString faxSystem();
+	TQString faxCommand();
+
+signals:
+	void message(const TQString&);
+	void faxSent(bool);
+
+protected slots:
+	void slotReceivedStdout(KProcess*, char*, int);
+	void slotProcessExited(KProcess*);
+	void cleanTempFiles();
+	void slotClearLog();
+	void slotCloseLog();
+	void slotPrintLog();
+	void slotSaveLog();
+
+protected:
+	void filter();
+	void sendFax();
+	void addLog(const TQString&, bool = false);
+	void addLogTitle( const TQString& );
+
+private:
+	KProcess	*m_process;
+	TQString		m_log, m_command;
+	TQStringList	m_files, m_filteredfiles, m_tempfiles;
+	TQTextEdit	*m_logview;
+	KdeprintFax::FaxItemList m_faxlist;
+};
+
+#endif
diff --git a/tdeprint/tdeprintfax/faxfilters b/tdeprint/tdeprintfax/faxfilters
new file mode 100644
index 000000000..73e96a14e
--- /dev/null
+++ b/tdeprint/tdeprintfax/faxfilters
@@ -0,0 +1,3 @@
+text/* enscript -M %psu -E -p %out %in
+image/* imagetops -gray -noturn %in > %out
+*/* cat %in > %out
diff --git a/tdeprint/tdeprintfax/filterdlg.cpp b/tdeprint/tdeprintfax/filterdlg.cpp
new file mode 100644
index 000000000..0324863bc
--- /dev/null
+++ b/tdeprint/tdeprintfax/filterdlg.cpp
@@ -0,0 +1,72 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include "filterdlg.h"
+#include "filterdlg.moc"
+
+#include <tqlineedit.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+
+#include <klocale.h>
+
+FilterDlg::FilterDlg(TQWidget *parent, const char *name)
+: KDialogBase(parent, name, true, i18n("Filter Parameters"), Ok|Cancel, Ok)
+{
+	TQWidget	*w = new TQWidget(this);
+
+	m_mime = new TQLineEdit(w);
+	m_cmd = new TQLineEdit(w);
+	TQLabel	*m_mimelabel = new TQLabel(i18n("MIME type:"), w);
+	TQLabel	*m_cmdlabel = new TQLabel(i18n("Command:"), w);
+
+	TQGridLayout	*l0 = new TQGridLayout(w, 2, 2, 10, 5);
+	l0->setColStretch(1, 1);
+	l0->addWidget(m_mimelabel, 0, 0);
+	l0->addWidget(m_cmdlabel, 1, 0);
+	l0->addWidget(m_mime, 0, 1);
+	l0->addWidget(m_cmd, 1, 1);
+
+	setMainWidget(w);
+	m_mime->setFocus();
+	resize(300, 100);
+	connect(m_mime, TQT_SIGNAL(textChanged ( const TQString & )),this, TQT_SLOT(slotTextFilterChanged()));
+        connect(m_cmd, TQT_SIGNAL(textChanged ( const TQString & )),this, TQT_SLOT(slotTextFilterChanged()));
+        slotTextFilterChanged();
+}
+
+void FilterDlg::slotTextFilterChanged( )
+{
+    enableButtonOK(!m_mime->text().isEmpty() && !m_cmd->text().isEmpty());
+}
+
+bool FilterDlg::doIt(TQWidget *parent, TQString *mime, TQString *cmd)
+{
+	FilterDlg	dlg(parent);
+	if (mime) dlg.m_mime->setText(*mime);
+	if (cmd) dlg.m_cmd->setText(*cmd);
+	if (dlg.exec())
+	{
+		if (mime) *mime = dlg.m_mime->text();
+		if (cmd) *cmd = dlg.m_cmd->text();
+		return true;
+	}
+	return false;
+}
diff --git a/tdeprint/tdeprintfax/filterdlg.h b/tdeprint/tdeprintfax/filterdlg.h
new file mode 100644
index 000000000..ab4fd0406
--- /dev/null
+++ b/tdeprint/tdeprintfax/filterdlg.h
@@ -0,0 +1,41 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef FILTERDLG_H
+#define FILTERDLG_H
+
+#include <kdialogbase.h>
+
+class TQLineEdit;
+
+class FilterDlg : public KDialogBase
+{
+  	Q_OBJECT
+public:
+	FilterDlg(TQWidget *parent = 0, const char *name = 0);
+
+	static bool doIt(TQWidget *parent = 0, TQString* mime = 0, TQString *cmd = 0);
+protected slots:
+    void slotTextFilterChanged();
+private:
+	TQLineEdit	*m_mime, *m_cmd;
+};
+
+#endif
diff --git a/tdeprint/tdeprintfax/hi128-app-tdeprintfax.png b/tdeprint/tdeprintfax/hi128-app-tdeprintfax.png
new file mode 100644
index 000000000..ad29adba7
Binary files /dev/null and b/tdeprint/tdeprintfax/hi128-app-tdeprintfax.png differ
diff --git a/tdeprint/tdeprintfax/hi16-app-tdeprintfax.png b/tdeprint/tdeprintfax/hi16-app-tdeprintfax.png
new file mode 100644
index 000000000..bb676f8b7
Binary files /dev/null and b/tdeprint/tdeprintfax/hi16-app-tdeprintfax.png differ
diff --git a/tdeprint/tdeprintfax/hi22-app-tdeprintfax.png b/tdeprint/tdeprintfax/hi22-app-tdeprintfax.png
new file mode 100644
index 000000000..90fc64b0b
Binary files /dev/null and b/tdeprint/tdeprintfax/hi22-app-tdeprintfax.png differ
diff --git a/tdeprint/tdeprintfax/hi32-app-tdeprintfax.png b/tdeprint/tdeprintfax/hi32-app-tdeprintfax.png
new file mode 100644
index 000000000..7330eb41f
Binary files /dev/null and b/tdeprint/tdeprintfax/hi32-app-tdeprintfax.png differ
diff --git a/tdeprint/tdeprintfax/hi48-app-tdeprintfax.png b/tdeprint/tdeprintfax/hi48-app-tdeprintfax.png
new file mode 100644
index 000000000..3f58c3695
Binary files /dev/null and b/tdeprint/tdeprintfax/hi48-app-tdeprintfax.png differ
diff --git a/tdeprint/tdeprintfax/hi64-app-tdeprintfax.png b/tdeprint/tdeprintfax/hi64-app-tdeprintfax.png
new file mode 100644
index 000000000..47e156d5f
Binary files /dev/null and b/tdeprint/tdeprintfax/hi64-app-tdeprintfax.png differ
diff --git a/tdeprint/tdeprintfax/hisc-app-tdeprintfax.svgz b/tdeprint/tdeprintfax/hisc-app-tdeprintfax.svgz
new file mode 100644
index 000000000..f46fd4401
Binary files /dev/null and b/tdeprint/tdeprintfax/hisc-app-tdeprintfax.svgz differ
diff --git a/tdeprint/tdeprintfax/main.cpp b/tdeprint/tdeprintfax/main.cpp
new file mode 100644
index 000000000..4fe22a3b6
--- /dev/null
+++ b/tdeprint/tdeprintfax/main.cpp
@@ -0,0 +1,78 @@
+/*
+ *   tdeprintfax - a interface to fax-packages
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include "tdeprintfax.h"
+
+#include <tqfile.h>
+#include <kcmdlineargs.h>
+#include <kaboutdata.h>
+#include <klocale.h>
+#include <kapplication.h>
+
+TQString debugFlag;
+int oneShotFlag = false;
+
+static const char description[] =
+	I18N_NOOP("A small fax utility to be used with tdeprint.");
+// INSERT A DESCRIPTION FOR YOUR APPLICATION HERE
+
+
+static KCmdLineOptions options[] =
+{
+  { "phone ", I18N_NOOP("Phone number to fax to"), 0 },
+  { "immediate", I18N_NOOP("Send fax immediately"), 0 },
+  { "batch", I18N_NOOP("Exit after sending"), 0 },
+  { "+[file]", I18N_NOOP("File to fax (added to the file list)"), 0 },
+   KCmdLineLastOption
+  // INSERT YOUR COMMANDLINE OPTIONS HERE
+};
+
+int main(int argc, char *argv[])
+{
+
+  KAboutData aboutData( "tdeprintfax", I18N_NOOP("KdeprintFax"),
+    "1.0", description, KAboutData::License_GPL,
+    "(c), 2001 Michael Goffioul", 0, "http://printing.kde.org");
+  aboutData.addAuthor("Michael Goffioul",0, "tdeprint@swing.be");
+  KCmdLineArgs::init( argc, argv, &aboutData );
+  KCmdLineArgs::addCmdLineOptions( options ); // Add our own options.
+  KApplication::addCmdLineOptions();
+
+  KApplication a;
+  KCmdLineArgs	*args = KCmdLineArgs::parsedArgs();
+
+  KdeprintFax	*w = new KdeprintFax;
+  a.setMainWidget(w);
+  w->show();
+  for (int i=0;i<args->count();i++)
+  	w->addURL(args->url(i));
+
+	TQString phone = args->getOption( "phone" );
+	if( !phone.isEmpty() ) {
+		w->setPhone( phone );
+	}
+
+	if( args->isSet( "immediate" ) ) {
+		w->sendFax( args->isSet( "batch" ) );
+	}
+
+  args->clear();
+  return a.exec();
+}
diff --git a/tdeprint/tdeprintfax/tdeprintfax.cpp b/tdeprint/tdeprintfax/tdeprintfax.cpp
new file mode 100644
index 000000000..24ad58a0e
--- /dev/null
+++ b/tdeprint/tdeprintfax/tdeprintfax.cpp
@@ -0,0 +1,607 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include "tdeprintfax.h"
+#include "faxab.h"
+#include "faxctrl.h"
+#include "configdlg.h"
+
+#include <tqcheckbox.h>
+#include <tqlineedit.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <tqpushbutton.h>
+#include <tqtextedit.h>
+#include <tqdatetimeedit.h>
+#include <tqcombobox.h>
+#include <tqtooltip.h>
+
+#include <kapplication.h>
+#include <kstdaction.h>
+#include <kmenubar.h>
+#include <ktoolbar.h>
+#include <kaction.h>
+#include <klistbox.h>
+#include <klistview.h>
+#include <tqheader.h>
+#include <klocale.h>
+#include <kiconloader.h>
+#include <kio/netaccess.h>
+#include <kmessagebox.h>
+#include <kfiledialog.h>
+#include <kmimetype.h>
+#include <kseparator.h>
+#include <ksystemtray.h>
+#include <kstatusbar.h>
+#include <ksqueezedtextlabel.h>
+#include <krun.h>
+#include <kopenwith.h>
+#include <kpushbutton.h>
+#include <kurldrag.h>
+#include <kdebug.h>
+
+KdeprintFax::KdeprintFax(TQWidget *parent, const char *name)
+: KMainWindow(parent, name)
+{
+	m_faxctrl = new FaxCtrl(this);
+	m_quitAfterSend = false;
+	connect(m_faxctrl, TQT_SIGNAL(message(const TQString&)), TQT_SLOT(slotMessage(const TQString&)));
+	connect(m_faxctrl, TQT_SIGNAL(faxSent(bool)), TQT_SLOT(slotFaxSent(bool)));
+
+	TQWidget	*mainw = new TQWidget(this);
+	setCentralWidget(mainw);
+	m_files = new KListBox(mainw);
+	connect( m_files, TQT_SIGNAL( currentChanged( TQListBoxItem* ) ), TQT_SLOT( slotCurrentChanged() ) );
+	m_upbtn = new KPushButton( mainw );
+	m_upbtn->setIconSet( SmallIconSet( "up" ) );
+	TQToolTip::add( m_upbtn, i18n( "Move up" ) );
+	connect( m_upbtn, TQT_SIGNAL( clicked() ), TQT_SLOT( slotMoveUp() ) );
+	m_upbtn->setEnabled( false );
+	m_downbtn = new KPushButton( mainw );
+	m_downbtn->setIconSet( SmallIconSet( "down" ) );
+	TQToolTip::add( m_downbtn, i18n( "Move down" ) );
+	connect( m_downbtn, TQT_SIGNAL( clicked() ), TQT_SLOT( slotMoveDown() ) );
+	m_downbtn->setEnabled( false );
+	TQLabel	*m_filelabel = new TQLabel(i18n("F&iles:"), mainw);
+        m_filelabel->setBuddy(m_files);
+        KSeparator*m_line = new KSeparator( KSeparator::HLine, mainw);
+		KSeparator *m_line2 = new KSeparator( KSeparator::HLine, mainw );
+	m_numbers = new KListView( mainw );
+	m_numbers->addColumn( i18n("Fax Number") );
+	m_numbers->addColumn( i18n("Name") );
+	m_numbers->addColumn( i18n("Enterprise") );
+	m_numbers->header()->setStretchEnabled( true );
+	m_numbers->setSelectionMode( TQListView::Extended );
+	connect( m_numbers, TQT_SIGNAL( selectionChanged() ), TQT_SLOT( slotFaxSelectionChanged() ) );
+	connect( m_numbers, TQT_SIGNAL( executed( TQListViewItem* ) ), TQT_SLOT( slotFaxExecuted( TQListViewItem* ) ) );
+	m_newbtn = new KPushButton( mainw );
+	m_newbtn->setPixmap( SmallIcon( "edit" ) );
+	TQToolTip::add( m_newbtn, i18n( "Add fax number" ) );
+	connect( m_newbtn, TQT_SIGNAL( clicked() ), TQT_SLOT( slotFaxAdd() ) );
+	m_abbtn = new KPushButton( mainw );
+	m_abbtn->setPixmap( SmallIcon( "kaddressbook" ) );
+	TQToolTip::add( m_abbtn, i18n( "Add fax number from addressbook" ) );
+	connect( m_abbtn, TQT_SIGNAL( clicked() ), TQT_SLOT( slotKab() ) );
+	m_delbtn = new KPushButton( mainw );
+	m_delbtn->setIconSet( SmallIconSet( "edittrash" ) );
+	TQToolTip::add( m_delbtn, i18n( "Remove fax number" ) );
+	m_delbtn->setEnabled( false );
+	connect( m_delbtn, TQT_SIGNAL( clicked() ), TQT_SLOT( slotFaxRemove() ) );
+	TQLabel	*m_commentlabel = new TQLabel(i18n("&Comment:"), mainw);
+	KSystemTray	*m_tray = new KSystemTray(this);
+	m_tray->setPixmap(SmallIcon("tdeprintfax"));
+	m_tray->show();
+	m_comment = new TQTextEdit(mainw);
+// I don't understand why anyone would want to turn off word wrap. It makes
+// the text hard to read and write. It provides no benefit. Therefore,
+// I commented out the next line. [Ray Lischner]
+//	m_comment->setWordWrap(TQTextEdit::NoWrap);
+	m_comment->setLineWidth(1);
+	m_commentlabel->setBuddy(m_comment);
+	TQLabel	*m_timelabel = new TQLabel(i18n("Sched&ule:"), mainw);
+	m_timecombo = new TQComboBox(mainw);
+	m_timecombo->insertItem(i18n("Now"));
+	m_timecombo->insertItem(i18n("At Specified Time"));
+	m_timecombo->setCurrentItem(0);
+	m_timelabel->setBuddy(m_timecombo);
+	m_time = new TQTimeEdit(mainw);
+	m_time->setTime(TQTime::currentTime());
+	m_time->setEnabled(false);
+	connect(m_timecombo, TQT_SIGNAL(activated(int)), TQT_SLOT(slotTimeComboActivated(int)));
+	m_cover = new TQCheckBox(i18n("Send Co&ver Sheet"), mainw);
+	connect(m_cover, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotCoverToggled(bool)));
+	m_subject = new TQLineEdit( mainw );
+	TQLabel *m_subjectlabel = new TQLabel( i18n( "Su&bject:" ), mainw );
+	m_subjectlabel->setBuddy( m_subject );
+
+	TQGridLayout	*l0 = new TQGridLayout(mainw, 10, 2, 10, 5);
+	l0->setColStretch(1,1);
+	l0->addWidget(m_filelabel, 0, 0, Qt::AlignLeft|Qt::AlignTop);
+	TQHBoxLayout *l2 = new TQHBoxLayout( 0, 0, 10 );
+	TQVBoxLayout *l3 = new TQVBoxLayout( 0, 0, 5 );
+	l0->addLayout( l2, 0, 1 );
+	l2->addWidget( m_files );
+	l2->addLayout( l3 );
+	//l3->addStretch( 1 );
+	l3->addWidget( m_upbtn );
+	l3->addWidget( m_downbtn );
+	l3->addStretch( 1 );
+	l0->addMultiCellWidget(m_line, 1, 1, 0, 1);
+	l0->addRowSpacing(1, 10);
+	TQHBoxLayout *l5 = new TQHBoxLayout( 0, 0, 10 );
+	TQVBoxLayout *l6 = new TQVBoxLayout( 0, 0, 5 );
+	l0->addMultiCellLayout( l5, 2, 4, 0, 1 );
+	l5->addWidget( m_numbers );
+	l5->addLayout( l6 );
+	l6->addWidget( m_newbtn );
+	l6->addWidget( m_delbtn );
+	l6->addWidget( m_abbtn );
+	l6->addStretch( 1 );
+	l0->addMultiCellWidget( m_line2, 5, 5, 0, 1 );
+	l0->addRowSpacing( 5, 10 );
+	l0->addWidget( m_cover, 6, 1 );
+	l0->addWidget( m_subjectlabel, 7, 0 );
+	l0->addWidget( m_subject, 7, 1 );
+	l0->addWidget(m_commentlabel, 8, 0, Qt::AlignTop|Qt::AlignLeft);
+	l0->addWidget(m_comment, 8, 1);
+	l0->addWidget(m_timelabel, 9, 0);
+	TQHBoxLayout	*l1 = new TQHBoxLayout(0, 0, 5);
+	l0->addLayout(l1, 9, 1);
+	l1->addWidget(m_timecombo, 1);
+	l1->addWidget(m_time, 0);
+
+	m_msglabel = new KSqueezedTextLabel(statusBar());
+	statusBar()->addWidget(m_msglabel, 1);
+	statusBar()->insertFixedItem(i18n("Processing..."), 1);
+	statusBar()->changeItem(i18n("Idle"), 1);
+	statusBar()->insertFixedItem("hylafax/efax", 2);
+	initActions();
+	setAcceptDrops(true);
+	setCaption(i18n("Send to Fax"));
+	updateState();
+
+	resize(550,500);
+	TQWidget	*d = TQT_TQWIDGET(kapp->desktop());
+	move((d->width()-width())/2, (d->height()-height())/2);
+}
+
+KdeprintFax::~KdeprintFax()
+{
+}
+
+void KdeprintFax::initActions()
+{
+	new KAction(i18n("&Add File..."), "filenew", Qt::Key_Insert, TQT_TQOBJECT(this), TQT_SLOT(slotAdd()), actionCollection(), "file_add");
+	new KAction(i18n("&Remove File"), "remove", Qt::Key_Delete, TQT_TQOBJECT(this), TQT_SLOT(slotRemove()), actionCollection(), "file_remove");
+	new KAction(i18n("&Send Fax"), "connect_established", Qt::Key_Return, TQT_TQOBJECT(this), TQT_SLOT(slotFax()), actionCollection(), "fax_send");
+	new KAction(i18n("A&bort"), "stop", Qt::Key_Escape, TQT_TQOBJECT(this), TQT_SLOT(slotAbort()), actionCollection(), "fax_stop");
+	new KAction(i18n("A&ddress Book"), "kaddressbook", Qt::CTRL+Qt::Key_A, TQT_TQOBJECT(this), TQT_SLOT(slotKab()), actionCollection(), "fax_ab");
+	new KAction(i18n("V&iew Log"), "contents", Qt::CTRL+Qt::Key_L, TQT_TQOBJECT(this), TQT_SLOT(slotViewLog()), actionCollection(), "fax_log");
+	new KAction(i18n("Vi&ew File"), "filefind", Qt::CTRL+Qt::Key_O, TQT_TQOBJECT(this), TQT_SLOT(slotView()), actionCollection(), "file_view");
+	new KAction( i18n( "&New Fax Recipient..." ), "edit", Qt::CTRL+Qt::Key_N, TQT_TQOBJECT(this), TQT_SLOT( slotFaxAdd() ), actionCollection(), "fax_add" );
+
+	KStdAction::quit(TQT_TQOBJECT(this), TQT_SLOT(slotQuit()), actionCollection());
+	setStandardToolBarMenuEnabled(true);
+	KStdAction::showMenubar(TQT_TQOBJECT(this), TQT_SLOT(slotToggleMenuBar()), actionCollection());
+	KStdAction::preferences(TQT_TQOBJECT(this), TQT_SLOT(slotConfigure()), actionCollection());
+        KStdAction::keyBindings(guiFactory(), TQT_SLOT(configureShortcuts()), 
+actionCollection());
+	actionCollection()->action("fax_stop")->setEnabled(false);
+	connect(actionCollection()->action("file_remove"), TQT_SIGNAL(enabled(bool)), actionCollection()->action("file_view"), TQT_SLOT(setEnabled(bool)));
+	actionCollection()->action("file_remove")->setEnabled(false);
+
+	createGUI();
+}
+
+void KdeprintFax::slotToggleMenuBar()
+{
+	if (menuBar()->isVisible()) menuBar()->hide();
+	else menuBar()->show();
+}
+
+void KdeprintFax::slotAdd()
+{
+	KURL	url = KFileDialog::getOpenURL(TQString::null, TQString::null, this);
+	if (!url.isEmpty())
+		addURL(url);
+}
+
+void KdeprintFax::slotRemove()
+{
+	if (m_files->currentItem() >= 0)
+		m_files->removeItem(m_files->currentItem());
+	if (m_files->count() == 0)
+		actionCollection()->action("file_remove")->setEnabled(false);
+}
+
+void KdeprintFax::slotView()
+{
+	if (m_files->currentItem() >= 0)
+	{
+		new KRun(KURL( m_files->currentText() ));
+	}
+}
+
+void KdeprintFax::slotFax()
+{
+	if (m_files->count() == 0)
+		KMessageBox::error(this, i18n("No file to fax."));
+	else if ( m_numbers->childCount() == 0 )
+		KMessageBox::error(this, i18n("No fax number specified."));
+	else if (m_faxctrl->send(this))
+	{
+		actionCollection()->action("fax_send")->setEnabled(false);
+		actionCollection()->action("fax_stop")->setEnabled(true);
+		statusBar()->changeItem(i18n("Processing..."), 1);
+	}
+	else
+		KMessageBox::error(this, i18n("Unable to start Fax process."));
+}
+
+void KdeprintFax::slotAbort()
+{
+	if (!m_faxctrl->abort())
+		KMessageBox::error(this, i18n("Unable to stop Fax process."));
+}
+
+void KdeprintFax::slotKab()
+{
+	TQStringList	number, name, enterprise;
+	if (FaxAB::getEntry(number, name, enterprise, this))
+	{
+		for ( unsigned int i = 0; i<number.count(); i++ )
+			new TQListViewItem( m_numbers, number[ i ], name[ i ], enterprise[ i ] );
+	}
+}
+
+void KdeprintFax::addURL(KURL url)
+{
+	TQString	target;
+	if (KIO::NetAccess::download(url,target,this))
+	{
+		m_files->insertItem(KMimeType::pixmapForURL(url,0,KIcon::Small),target);
+		actionCollection()->action("file_remove")->setEnabled(true);
+		slotCurrentChanged();
+	}
+	else
+		KMessageBox::error(this, i18n("Unable to retrieve %1.").arg(url.prettyURL()));
+}
+
+void KdeprintFax::setPhone(TQString phone)
+{
+	TQString name, enterprise;
+	FaxAB::getEntryByNumber(phone, name, enterprise);
+	new TQListViewItem( m_numbers, phone, name, enterprise );
+}
+
+void KdeprintFax::sendFax( bool quitAfterSend )
+{
+	slotFax();
+	m_quitAfterSend = quitAfterSend;
+}
+
+void KdeprintFax::dragEnterEvent(TQDragEnterEvent *e)
+{
+	e->accept(KURLDrag::canDecode(e));
+}
+
+void KdeprintFax::dropEvent(TQDropEvent *e)
+{
+	KURL::List l;
+	if (KURLDrag::decode(e, l))
+	{
+		for (KURL::List::ConstIterator it = l.begin(); it != l.end(); ++it)
+			addURL(*it);
+	}
+}
+
+TQStringList KdeprintFax::files()
+{
+	TQStringList	l;
+	for (uint i=0; i<m_files->count(); i++)
+		l.append(m_files->text(i));
+	return l;
+}
+
+
+int KdeprintFax::faxCount() const
+{
+	return m_numbers->childCount();
+}
+
+/*
+TQListViewItem* KdeprintFax::faxItem( int i ) const
+{
+	TQListViewItem *item = m_numbers->firstChild();
+	while ( i && item && item->nextSibling() )
+	{
+		item = item->nextSibling();
+		i--;
+	}
+	if ( i || !item )
+		kdError() << "KdeprintFax::faxItem(" << i << ") => fax item index out of bound" << endl;
+	return item;
+}
+
+TQString KdeprintFax::number( int i ) const
+{
+	TQListViewItem *item = faxItem( i );
+	return ( item ? item->text( 0 ) : TQString::null );
+}
+
+TQString KdeprintFax::name( int i ) const
+{
+	TQListViewItem *item = faxItem( i );
+	return ( item ? item->text( 1 ) : TQString::null );
+}
+
+TQString KdeprintFax::enterprise( int i ) const
+{
+	TQListViewItem *item = faxItem( i );
+	return ( item ? item->text( 2 ) : TQString::null );
+}
+*/
+
+KdeprintFax::FaxItemList KdeprintFax::faxList() const
+{
+	FaxItemList list;
+	TQListViewItemIterator it( m_numbers );
+	while ( it.current() )
+	{
+		FaxItem item;
+		item.number = it.current()->text( 0 );
+		item.name = it.current()->text( 1 );
+		item.enterprise = it.current()->text( 2 );
+		list << item;
+		++it;
+	}
+	return list;
+}
+
+TQString KdeprintFax::comment() const
+{
+	return m_comment->text();
+}
+
+bool KdeprintFax::cover() const
+{
+	return m_cover->isChecked();
+}
+
+TQString KdeprintFax::subject() const
+{
+	return m_subject->text();
+}
+
+void KdeprintFax::slotMessage(const TQString& msg)
+{
+	m_msglabel->setText(msg);
+}
+
+void KdeprintFax::slotFaxSent(bool status)
+{
+	actionCollection()->action("fax_send")->setEnabled(true);
+	actionCollection()->action("fax_stop")->setEnabled(false);
+	statusBar()->changeItem(i18n("Idle"), 1);
+
+ 	if( m_quitAfterSend ) {
+		slotQuit();
+	}
+	else {
+		if (!status)
+			KMessageBox::error(this, i18n("Fax error: see log message for more information."));
+		slotMessage(TQString::null);
+	}
+}
+
+void KdeprintFax::slotViewLog()
+{
+	m_faxctrl->viewLog(this);
+}
+
+void KdeprintFax::slotConfigure()
+{
+	if (ConfigDlg::configure(this))
+		updateState();
+}
+
+void KdeprintFax::updateState()
+{
+	TQString	cmd = m_faxctrl->faxCommand();
+	m_cover->setEnabled(cmd.find("%cover") != -1);
+	if ( !m_cover->isEnabled() )
+		m_cover->setChecked(false);
+	m_comment->setEnabled(cmd.find("%comment") != -1 && m_cover->isChecked());
+	//m_comment->setPaper(m_comment->isEnabled() ? tqcolorGroup().brush(TQColorGroup::Base) : tqcolorGroup().brush(TQColorGroup::Background));
+	if (!m_comment->isEnabled())
+	{
+		m_comment->setText("");
+		m_comment->setPaper( tqcolorGroup().background() );
+	}
+	else
+		m_comment->setPaper( tqcolorGroup().base() );
+	/*
+	m_enterprise->setEnabled(cmd.find("%enterprise") != -1);
+	if (!m_enterprise->isEnabled())
+		m_enterprise->setText("");
+	*/
+	if (cmd.find("%time") == -1)
+	{
+		m_timecombo->setCurrentItem(0);
+		m_timecombo->setEnabled(false);
+		slotTimeComboActivated(0);
+	}
+	else
+		m_timecombo->setEnabled( true );
+	/*m_name->setEnabled( cmd.find( "%name" ) != -1 );*/
+	m_subject->setEnabled( cmd.find( "%subject" ) != -1 && m_cover->isChecked() );
+	statusBar()->changeItem(m_faxctrl->faxSystem(), 2);
+}
+
+void KdeprintFax::slotQuit()
+{
+	close(true);
+}
+
+void KdeprintFax::slotTimeComboActivated(int ID)
+{
+	m_time->setEnabled(ID == 1);
+}
+
+TQString KdeprintFax::time() const
+{
+	if (!m_time->isEnabled())
+		return TQString::null;
+	return m_time->time().toString("hh:mm");
+}
+
+void KdeprintFax::slotMoveUp()
+{
+	int index = m_files->currentItem();
+	if ( index > 0 )
+	{
+		TQListBoxItem *item = m_files->item( index );
+		m_files->takeItem( item );
+		m_files->insertItem( item, index-1 );
+		m_files->setCurrentItem( index-1 );
+	}
+}
+
+void KdeprintFax::slotMoveDown()
+{
+	int index = m_files->currentItem();
+	if ( index >= 0 && index < ( int )m_files->count()-1 )
+	{
+		TQListBoxItem *item = m_files->item( index );
+		m_files->takeItem( item );
+		m_files->insertItem( item, index+1 );
+		m_files->setCurrentItem( index+1 );
+	}
+}
+
+/** The user or program toggled the "Cover Sheet" check box.
+ * Update the state of the other controls to reflect the
+ * new status.
+ */
+void KdeprintFax::slotCoverToggled(bool)
+{
+	updateState();
+}
+
+void KdeprintFax::slotCurrentChanged()
+{
+	int index = m_files->currentItem();
+	m_upbtn->setEnabled( index > 0 );
+	m_downbtn->setEnabled( index >=0 && index < ( int )m_files->count()-1 );
+}
+
+void KdeprintFax::slotFaxSelectionChanged()
+{
+	TQListViewItemIterator it( m_numbers, TQListViewItemIterator::Selected );
+	m_delbtn->setEnabled( it.current() != NULL );
+}
+
+void KdeprintFax::slotFaxRemove()
+{
+	TQListViewItemIterator it( m_numbers, TQListViewItemIterator::Selected );
+	TQPtrList<TQListViewItem> items;
+	items.setAutoDelete( true );
+	while ( it.current() )
+	{
+		items.append( it.current() );
+		++it;
+	}
+	items.clear();
+	/* force this slot to be called, to update buttons state */
+	slotFaxSelectionChanged();
+}
+
+void KdeprintFax::slotFaxAdd()
+{
+	TQString number, name, enterprise;
+	if ( manualFaxDialog( number, name, enterprise ) )
+	{
+		new TQListViewItem( m_numbers, number, name, enterprise );
+	}
+}
+
+void KdeprintFax::slotFaxExecuted( TQListViewItem *item )
+{
+	if ( item )
+	{
+		TQString number = item->text( 0 ), name = item->text( 1 ), enterprise = item->text( 2 );
+		if ( manualFaxDialog( number, name, enterprise ) )
+		{
+			item->setText( 0, number );
+			item->setText( 1, name );
+			item->setText( 2, enterprise );
+		}
+	}
+}
+
+bool KdeprintFax::manualFaxDialog( TQString& number, TQString& name, TQString& enterprise )
+{
+	/* dialog construction */
+	KDialogBase dlg( this, "manualFaxDialog", true, i18n( "Fax Number" ), KDialogBase::Ok|KDialogBase::Cancel, KDialogBase::Ok, true );
+	TQWidget *mainw = new TQWidget( &dlg );
+	TQLabel *lab0 = new TQLabel( i18n( "Enter recipient fax properties." ), mainw );
+	TQLabel *lab1 = new TQLabel( i18n( "&Number:" ), mainw );
+	TQLabel *lab2 = new TQLabel( i18n( "N&ame:" ), mainw );
+	TQLabel *lab3 = new TQLabel( i18n( "&Enterprise:" ), mainw );
+	TQLineEdit *edit_number = new TQLineEdit( number, mainw );
+	TQLineEdit *edit_name = new TQLineEdit( name, mainw );
+	TQLineEdit *edit_enterprise = new TQLineEdit( enterprise, mainw );
+	lab1->setBuddy( edit_number );
+	lab2->setBuddy( edit_name );
+	lab3->setBuddy( edit_enterprise );
+	TQGridLayout *l0 = new TQGridLayout( mainw, 5, 2, 0, 5 );
+	l0->setColStretch( 1, 1 );
+	l0->addMultiCellWidget( lab0, 0, 0, 0, 1 );
+	l0->setRowSpacing( 1, 10 );
+	l0->addWidget( lab1, 2, 0 );
+	l0->addWidget( lab2, 3, 0 );
+	l0->addWidget( lab3, 4, 0 );
+	l0->addWidget( edit_number, 2, 1 );
+	l0->addWidget( edit_name, 3, 1 );
+	l0->addWidget( edit_enterprise, 4, 1 );
+	dlg.setMainWidget( mainw );
+	dlg.resize( 300, 10 );
+
+	/* dialog execution */
+	while ( 1 )
+		if ( dlg.exec() )
+		{
+			if ( edit_number->text().isEmpty() )
+			{
+				KMessageBox::error( this, i18n( "Invalid fax number." ) );
+			}
+			else
+			{
+				number = edit_number->text();
+				name = edit_name->text();
+				enterprise = edit_enterprise->text();
+				return true;
+			}
+		}
+		else
+			return false;
+}
+
+#include "tdeprintfax.moc"
diff --git a/tdeprint/tdeprintfax/tdeprintfax.desktop b/tdeprint/tdeprintfax/tdeprintfax.desktop
new file mode 100644
index 000000000..dc9c90bab
--- /dev/null
+++ b/tdeprint/tdeprintfax/tdeprintfax.desktop
@@ -0,0 +1,97 @@
+[Desktop Entry]
+Name=KdeprintFax
+Name[cy]=KdeargraffuFfacs
+Name[eo]=Presfakso
+Name[hi]=केडीई-प्रिंट-फ़ैक्स
+Name[lo]=ອິນເຕີເນັດ
+Name[ne]=Kdeprint फ्याक्स
+Name[nso]=Fax ya kgatiso ya kde
+Name[pa]=Kde ਫੈਕਸ ਛਾਪਣ
+Name[rw]=Kde-gucapaFagisi
+Name[sv]=KDE:s skriv ut fax
+Name[ta]=Kdeஅச்சுபாக்ஸ்
+Name[th]=KDEprintFax
+Name[vi]=In và Fax của KDE
+GenericName=Fax Utility
+GenericName[af]=Faks Program
+GenericName[ar]=أداة الفاكس
+GenericName[be]=Праграма працы з факсам
+GenericName[bg]=Програма за факс
+GenericName[bn]=ফ্যাক্স টুল
+GenericName[br]=Maveg ar faks
+GenericName[bs]=Alat za faxove
+GenericName[ca]=Utilitat de fax
+GenericName[cs]=Faxový nástroj
+GenericName[csb]=Faks
+GenericName[cy]=Cyfleuster Ffacs
+GenericName[da]=FAX-værktøj
+GenericName[de]=Fax-Programm
+GenericName[el]=Εργαλείο φαξ
+GenericName[eo]=Faxutilaĵo
+GenericName[es]=Aplicación de fax
+GenericName[et]=Faksimise utiliit
+GenericName[eu]=Fax tresna
+GenericName[fa]=برنامۀ سودمند دورنگار
+GenericName[fi]=Faksityökalu
+GenericName[fr]=Outil de fax
+GenericName[fy]=Faksprogramma
+GenericName[ga]=Uirlis Facs
+GenericName[gl]=Utilidade de Fax
+GenericName[he]=כלי פקסים
+GenericName[hi]=फ़ैक्स यूटिलिटी
+GenericName[hr]=Alat za fakseve
+GenericName[hu]=Faxprogram
+GenericName[is]=Faxtól
+GenericName[it]=Fax
+GenericName[ja]=ファクスユーティリティ
+GenericName[ka]=ფაქსთან სამუშაო უტილიტა
+GenericName[kk]=Факс утилитасы
+GenericName[km]=ឧបករណ៍​ទូរសារ
+GenericName[lo]=ເຄື່ອງມືໂທລະສານ
+GenericName[lt]=Pagalbinė fakso programėlė
+GenericName[lv]=Faksa utilīta
+GenericName[mk]=Алатка за факс
+GenericName[mn]=Fax-програм
+GenericName[ms]=Kemudahan Faks
+GenericName[mt]=Għodda tal-faks
+GenericName[nb]=Faksverktøy
+GenericName[nds]=Faxwarktüüch
+GenericName[ne]=फ्याक्स युटिलिटी
+GenericName[nl]=Faxprogramma
+GenericName[nn]=Faksverktøy
+GenericName[nso]=Sebereka sa Fax
+GenericName[pa]=ਫੈਕਸ ਸਹੂਲਤ
+GenericName[pl]=Faks
+GenericName[pt]=Utilitário de Fax
+GenericName[pt_BR]=Utilitário de Fax
+GenericName[ro]=Utilitar pentru FAX
+GenericName[ru]=Утилита работы с факсами
+GenericName[rw]=Nkemurabibazo Fagisi
+GenericName[se]=Fáksenreaidu
+GenericName[sk]=Faxový nástroj
+GenericName[sl]=Pripomoček za faks
+GenericName[sr]=Факс програм
+GenericName[sr@Latn]=Faks program
+GenericName[sv]=Faxverktyg
+GenericName[ta]=தொலைநகலி கருவி
+GenericName[tg]=Обзори дурнамо
+GenericName[th]=เครื่องมือโทรสาร
+GenericName[tr]=Faks Görüntüleyici
+GenericName[tt]=Faks Qoralı
+GenericName[uk]=Утиліта факсу
+GenericName[uz]=Faks vositasi
+GenericName[uz@cyrillic]=Факс воситаси
+GenericName[ven]=Tshishumiswa tsha Fax
+GenericName[vi]=Các tiện ích Fax
+GenericName[wa]=Usteye di facs
+GenericName[xh]=Uncedo lwe Fax
+GenericName[zh_CN]=传真工具
+GenericName[zh_TW]=傳真工具
+GenericName[zu]=Isisebenzi se-Fax
+
+Type=Application
+Exec=tdeprintfax -caption "%c" %i %m %u
+Icon=tdeprintfax
+Terminal=false
+X-DCOP-ServiceType=Multi
+Categories=Qt;KDE;Utility;X-KDE-Utilities-Peripherals;
diff --git a/tdeprint/tdeprintfax/tdeprintfax.h b/tdeprint/tdeprintfax/tdeprintfax.h
new file mode 100644
index 000000000..fc1a02f7f
--- /dev/null
+++ b/tdeprint/tdeprintfax/tdeprintfax.h
@@ -0,0 +1,115 @@
+/*
+ *   tdeprintfax - a small fax utility
+ *   Copyright (C) 2001  Michael Goffioul
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#ifndef KDEPRINTFAX_H
+#define KDEPRINTFAX_H
+
+#include <kmainwindow.h>
+#include <kurl.h>
+
+class KListBox;
+class KListView;
+class TQLineEdit;
+class TQTextEdit;
+class FaxCtrl;
+class TQCheckBox;
+class TQLabel;
+class TQTimeEdit;
+class TQComboBox;
+class TQPushButton;
+class TQListViewItem;
+
+class KdeprintFax : public KMainWindow
+{
+	Q_OBJECT
+public:
+	struct FaxItem
+	{
+		TQString number;
+		TQString name;
+		TQString enterprise;
+	};
+	typedef TQValueList<FaxItem> FaxItemList;
+	typedef TQValueList<FaxItem>::ConstIterator FaxItemListIterator;
+
+	KdeprintFax(TQWidget *parent = 0, const char *name = 0);
+	~KdeprintFax();
+
+	void addURL(KURL url);
+	void setPhone(TQString phone);
+	void sendFax( bool quitAfterSend );
+	TQStringList files();
+	int faxCount() const;
+	//TQString number( int i = 0 ) const;
+	//TQString name( int i = 0 ) const;
+	//TQString enterprise( int i = 0 ) const;
+	FaxItemList faxList() const;
+	TQString comment() const;
+	TQString time() const;
+	TQString subject() const;
+	bool cover() const;
+
+protected slots:
+	void slotToggleMenuBar();
+	void slotKab();
+	void slotAdd();
+	void slotRemove();
+	void slotFax();
+	void slotAbort();
+	void slotMessage(const TQString&);
+	void slotFaxSent(bool);
+	void slotViewLog();
+	void slotConfigure();
+	void slotQuit();
+	void slotView();
+	void slotTimeComboActivated(int);
+	void slotMoveUp();
+	void slotMoveDown();
+	void slotCurrentChanged();
+	void slotFaxSelectionChanged();
+	void slotFaxRemove();
+	void slotFaxAdd();
+	void slotFaxExecuted( TQListViewItem* );
+	void slotCoverToggled(bool toggle);
+
+protected:
+	void initActions();
+	void dragEnterEvent(TQDragEnterEvent*);
+	void dropEvent(TQDropEvent*);
+	void updateState();
+	bool manualFaxDialog( TQString& number, TQString& name, TQString& enterprise );
+	//TQListViewItem* faxItem( int i = 0 ) const;
+
+private:
+	KListBox	*m_files;
+	KListView   *m_numbers;
+	TQLineEdit	*m_subject;
+	TQTextEdit	*m_comment;
+	FaxCtrl		*m_faxctrl;
+	TQCheckBox	*m_cover;
+	TQLabel		*m_msglabel;
+	TQTimeEdit	*m_time;
+	TQComboBox	*m_timecombo;
+	TQPushButton *m_upbtn, *m_downbtn;
+	TQPushButton *m_newbtn, *m_abbtn, *m_delbtn;
+	bool m_quitAfterSend;
+};
+
+#endif
diff --git a/tdeprint/tdeprintfax/tdeprintfaxui.rc b/tdeprint/tdeprintfax/tdeprintfaxui.rc
new file mode 100644
index 000000000..ae233a6da
--- /dev/null
+++ b/tdeprint/tdeprintfax/tdeprintfaxui.rc
@@ -0,0 +1,31 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="tdeprintfax">
+<MenuBar>
+  <Menu name="file"><text>&amp;File</text>
+    <Action name="file_add" />
+    <Action name="file_remove" />
+    <Separator />
+    <Action name="file_view" />
+  </Menu>
+  <Menu name="fax"><text>Fa&amp;x</text>
+    <Action name="fax_send" />
+    <Action name="fax_stop" />
+    <Separator />
+    <Action name="fax_add" />
+    <Action name="fax_ab" />
+    <Separator />
+    <Action name="fax_log" />
+  </Menu>
+</MenuBar>
+<ToolBar name="mainToolBar">
+  <Action name="file_add" />
+  <Action name="file_remove" />
+  <Action name="file_view" />
+  <Separator />
+  <Action name="fax_send" />
+  <Action name="fax_stop" />
+  <Action name="fax_ab" />
+  <Separator />
+  <Action name="fax_log" />
+</ToolBar>
+</kpartgui>
diff --git a/tdesu/AUTHORS b/tdesu/AUTHORS
new file mode 100644
index 000000000..5cabd8892
--- /dev/null
+++ b/tdesu/AUTHORS
@@ -0,0 +1,2 @@
+Pietro Iglio <iglio@fub.it>
+Geert Jansen <g.t.jansen@stud.tue.nl>
diff --git a/tdesu/CMakeLists.txt b/tdesu/CMakeLists.txt
new file mode 100644
index 000000000..c1fef3ba8
--- /dev/null
+++ b/tdesu/CMakeLists.txt
@@ -0,0 +1,53 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+include( CheckCSourceCompiles )
+include( CheckFunctionExists )
+
+check_c_source_compiles( "
+  #define _GNU_SOURCE 1
+  #include <sys/socket.h>
+  int main(int argc, char *argv[]) { struct ucred red; return 0; } "
+  HAVE_STRUCT_UCRED )
+
+check_c_source_runs( "
+  #include <grp.h>
+  #include <sys/types.h>
+  int main() { struct group *grp = getgrnam(\"nogroup\"); if(grp) return 0; return 1; }"
+  HAVE_NOGROUP )
+
+if( HAVE_NOGROUP )
+  set( nogroup nogroup )
+else()
+  check_c_source_runs("
+  #include <grp.h>
+  #include <sys/types.h>
+  int main() { struct group *grp = getgrnam(\"nobody\"); if(grp) return 0; return 1; }"
+  HAVE_NOBODY )
+  if( HAVE_NOBODY )
+    set( nogroup nobody )
+  else()
+    set( nogroup 65534 )
+  endif()
+endif()
+
+check_function_exists( getpeereid HAVE_GETPEEREID )
+check_include_file( "sys/select.h" HAVE_SYS_SELECT_H )
+check_include_file( "sys/wait.h" HAVE_SYS_WAIT_H )
+
+if( WITH_SUDO_KDESU_BACKEND )
+  set( DEFAULT_SUPER_USER_COMMAND sudo CACHE INTERNAL "" FORCE )
+else()
+  set( DEFAULT_SUPER_USER_COMMAND su CACHE INTERNAL "" FORCE )
+endif()
+
+add_subdirectory( tdesu )
+add_subdirectory( tdesud )
diff --git a/tdesu/ChangeLog b/tdesu/ChangeLog
new file mode 100644
index 000000000..ad44b81a5
--- /dev/null
+++ b/tdesu/ChangeLog
@@ -0,0 +1,128 @@
+Wed, 26 Jan 00    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Build sycoca for target process.
+    * Use standard debug facilities.
+    * Use KCmdLineArgs for argument parsing.
+    * Dialog updated to use KDialogBase.
+
+Sat, 18 Dec 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Add DCOP authentication cookies.
+    * Fixed SMP install of tdesud.
+
+Sat, 23 Oct 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * STL -> QTL
+    * Use Qt's standard debug facilities.
+
+Tue, 28 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Integrating tdesu into kdebase
+
+Sat, 25 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * BIG change: su to other user than root. This required a different way
+      to pass X cookies and stuff to the target process. See
+      common/tdesu_stub.c for more info.
+    * Fixed a bug in tdesud/lexer.cpp
+
+Thu, 23 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Portability issues (root has a csh on FreeBSD ... is this just me?)
+    * The execution of processes is more efficient now: 2 processess instead
+      of 3 and 1 tempfile instead of 2. This way possible by setting the
+      XAUTHORITY env. var. to $HOME/.Xauthority instead of making a new one.
+    * Fixed a subtle bug in tdesud. tdesud catches SIGCHLD to handle child
+      exits but this is incompatible with "class RootProcess", which does a
+      waitpid() and depends on getting the exit code.
+    * Only connect to daemon when necessary.
+
+Wed, 22 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Changed WaitSlave() to open slave instead of master pty.
+    * Added French translation (Pierre Dorgueil).
+    * Updated German translation (Ludwig Nussel).
+    * If su has terminal output, feed it back to the user.
+
+Wed, 8 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * If started as root, tdesu does not ask for a password anymore.
+
+Wed, 1 Sep 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Deferred instantiation of kapp in tdesu.cpp.
+    * Finished porting to KDE2.
+
+Sun, 29 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Fixed a bug that would let you run only one program with the daemon.
+    * Adapted debug.h macros.
+
+Tue, 24 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Version 0.97
+    * Fixed the RedHat problem! See the function WaitSlave() in
+      common/process.cpp.
+    * Fixed a few GUI bugs.
+    * Improved password security. Passwords are not kept until
+      the root program exits, they are deleted right away.
+
+Fri, 20 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Fixed the glibc 2.1 compile problem (struct ucred test).
+
+Tue, 17 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Fixed debug.h macros.
+    * Some more source cleanups.
+
+Mon, 16 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Added "nogroup" check.
+    * Updated the HTML documentation.
+    * Updated the FAQ
+ 
+Sun, 15 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * KDE su now supports terminal mode apps! (-t switch, no password 
+      keeping, output only)
+
+Sat, 14 Aug 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Version 0.94
+    * PTY handling is improved. It should work on more systems now. 
+      (tested: Linux w & w/o  UNIX98 PTY's w & w/o GLIBC 2.1, Solaris 7)
+    * Changed behaviour of "Keep Password" setting.
+    * Added -n option: don't offer the choice to keep password.
+    * Added -q, -d options: Quit the daemon and delete a key.
+    * Source cleanups.
+    * Various small bugfixes.
+    * Merged most of the KDE2 fixes from the CVS version.
+    * KDE su now waits for child programs to finish. Use 'command &' to
+      exit right away.
+
+Wed, 02 Jun 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Version 0.91
+    * The password is passed to su with a pty/tty pair. This should fix the
+      problems redhat users are experiencing.
+    * Some portability issues (a.o. AF_LOCAL -> AF_UNIX)
+
+Thu, 20 May 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * I am finally able to release 0.9.
+
+Fri, 09 Apr 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Backport to KDE 1.1. Release as tdesu-0.9.tar.gz
+
+Mon, 22 Mar 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Major changes: password keeping, control module, UI changes
+    * Version 0.9
+
+Thu, 25 Feb 99    Geert Jansen <g.t.jansen@stud.tue.nl>
+
+    * Merge with Pietro Iglio's code.
+    * Version 0.4
+
diff --git a/tdesu/FAQ b/tdesu/FAQ
new file mode 100644
index 000000000..b7d1499c7
--- /dev/null
+++ b/tdesu/FAQ
@@ -0,0 +1,46 @@
+Q: On my SuSE system, KDE su does not compile. I get an error that some Qt
+   header files cannot be found.
+A: Install the package qtcompat.
+
+Q: Is KDE su safe?
+A: No program is 100% safe. However, KDE su is not setuid root and it
+   handles the password you enter with great care so it should be safe
+   enough.
+
+Q: How safe is password keeping?
+A: Enabling password keeping is less secure that disabling it. However, the
+   scheme tdesu uses to keep passwords prevents everyone (including you, the
+   user) from accessing them. Please see the HTML documentation for a full
+   description of this scheme.
+
+Q: Can I execute tty applications with tdesu?
+A: No. TTY application will probably never be supported. Use the Unix su for
+   those.
+   NOTE: As of version 0.94, tty _output_ _only_ is supported with the `-t'
+   switch. This disables password keeping, though.
+
+Q: What systems does KDE su support?
+A: Tested are:
+    * Linux 2.x (Redhat 6.x, Mandrake "Cooker", Debian potato, SuSE 6.1)
+    * Solaris 7 (intel)
+    * FreeBSD 3.2 (intel, w/ egcs 1.1.2)
+   It will probably work on more systems but I cannot test that.
+
+Q: Why doesn't it support every system that is out there.
+A: KDE su needs to setup a pty/tty pair for communicating with `su'. This is
+   because some `su' implementations refuse to read a password from stdin if 
+   that is not a tty.  Setting up a pty/tty pair is not completely portable.
+
+Q: A good debug tip?
+A: If tdesu doesn't fire up your application, use the '-t' switch.
+   This way, you'll get terminal output. Maybe there is something wrong with 
+   the program you're trying to run.
+
+Q: I always get the warning: "Terminal output not available on non-terminal".
+A: Maybe you're not logged on from a terminal but probably you're using
+   UNIX98 pty's without glibc 2.1 (Linux). The glibc 2.0 ttyname() function 
+   incorrectly reports that UNIX98 slave pty's are no tty's.
+
+Q: Why not use DCOP for the communications with the daemon?
+A: KDE su needs one instance of the daemon per host, instead of per desktop
+   session.
diff --git a/tdesu/LICENSE.readme b/tdesu/LICENSE.readme
new file mode 100644
index 000000000..234d3c1d8
--- /dev/null
+++ b/tdesu/LICENSE.readme
@@ -0,0 +1,125 @@
+tdesu - a KDE front end to su
+
+Copyright (c) 1998 by Pietro Iglio <iglio@fub.it>
+Copyright (c) 1999,2000 by Geert Jansen <jansen@kde.org>
+
+                               The "Artistic License"
+
+                                      Preamble
+
+        The intent of this document is to state the conditions under which a
+        Package may be copied, such that the Copyright Holder maintains some
+        semblance of artistic control over the development of the package,
+        while giving the users of the package the right to use and
+        distribute the Package in a more-or-less customary fashion, plus the
+        right to make reasonable modifications.
+
+        Definitions:
+
+           * "Package" refers to the collection of files distributed by the
+             Copyright Holder, and derivatives of that collection of files
+             created through textual modification.
+
+           * "Standard Version" refers to such a Package if it has not been
+             modified, or has been modified in accordance with the wishes of
+             the Copyright Holder.
+
+           * "Copyright Holder" is whoever is named in the copyright or
+             copyrights for the package.
+
+           * "You" is you, if you're thinking about copying or distributing
+             this Package.
+
+           * "Reasonable copying fee" is whatever you can justify on the
+             basis of media cost, duplication charges, time of people
+             involved, and so on. (You will not be required to justify it to
+             the Copyright Holder, but only to the computing community at
+             large as a market that must bear the fee.)
+
+           * "Freely Available" means that no fee is charged for the item
+             itself, though there may be fees involved in handling the item.
+             It also means that recipients of the item may redistribute it
+             under the same conditions they received it.
+
+        1. You may make and give away verbatim copies of the source form of
+        the Standard Version of this Package without restriction, provided
+        that you duplicate all of the original copyright notices and
+        associated disclaimers.
+
+        2. You may apply bug fixes, portability fixes and other
+        modifications derived from the Public Domain or from the Copyright
+        Holder. A Package modified in such a way shall still be considered
+        the Standard Version.
+
+        3. You may otherwise modify your copy of this Package in any way,
+        provided that you insert a prominent notice in each changed file
+        stating how and when you changed that file, and provided that you do
+        at least ONE of the following:
+
+             a) place your modifications in the Public Domain or
+             otherwise make them Freely Available, such as by posting
+             said modifications to Usenet or an equivalent medium, or
+             placing the modifications on a major archive site such as
+             ftp.uu.net, or by allowing the Copyright Holder to include
+             your modifications in the Standard Version of the Package.
+
+             b) use the modified Package only within your corporation
+             or organization.
+
+             c) rename any non-standard executables so the names do not
+             conflict with standard executables, which must also be
+             provided, and provide a separate manual page for each
+             non-standard executable that clearly documents how it
+             differs from the Standard Version.
+
+             d) make other distribution arrangements with the Copyright
+             Holder.
+
+        4. You may distribute the programs of this Package in object code or
+        executable form, provided that you do at least ONE of the following:
+
+             a) distribute a Standard Version of the executables and
+             library files, together with instructions (in the manual
+             page or equivalent) on where to get the Standard Version.
+
+             b) accompany the distribution with the machine-readable
+             source of the Package with your modifications.
+
+             c) accompany any non-standard executables with their
+             corresponding Standard Version executables, giving the
+             non-standard executables non-standard names, and clearly
+             documenting the differences in manual pages (or
+             equivalent), together with instructions on where to get
+             the Standard Version.
+
+             d) make other distribution arrangements with the Copyright
+             Holder.
+
+        5. You may charge a reasonable copying fee for any distribution of
+        this Package. You may charge any fee you choose for support of this
+        Package. You may not charge a fee for this Package itself. However,
+        you may distribute this Package in aggregate with other (possibly
+        commercial) programs as part of a larger (possibly commercial)
+        software distribution provided that you do not advertise this
+        Package as a product of your own.
+
+        6. The scripts and library files supplied as input to or produced as
+        output from the programs of this Package do not automatically fall
+        under the copyright of this Package, but belong to whomever
+        generated them, and may be sold commercially, and may be aggregated
+        with this Package.
+
+        7. C or perl subroutines supplied by you and linked into this
+        Package shall not be considered part of this Package.
+
+        8. The name of the Copyright Holder may not be used to endorse or
+        promote products derived from this software without specific prior
+        written permission.
+
+        9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+        IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+        WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+                                      The End
+
+
diff --git a/tdesu/Makefile.am b/tdesu/Makefile.am
new file mode 100644
index 000000000..a07d47884
--- /dev/null
+++ b/tdesu/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = tdesu tdesud
diff --git a/tdesu/README b/tdesu/README
new file mode 100644
index 000000000..caa2e0d48
--- /dev/null
+++ b/tdesu/README
@@ -0,0 +1,34 @@
+
+        KDESU: A KDE front end for `su'.
+
+What is it?
+
+    KDE su is a graphical front end to the Unix `su' utility. It allows you
+    to run programs as another user by entering their password.
+    It is _not_ a setuid root program, it runs completely unprivileged. 
+    The system's program `su' is used for acquiring privileges.
+
+Usage:
+
+    $ tdesu -h
+    $ tdesu -c konsole
+
+Please see the HTML documentation!
+
+Notes and Acknowledgements:
+
+    Credits go to Pietro Iglio. He was the original author of KDE su 
+    (until version 0.3). I was writing a similar program when I
+    found out that KDE su already existed. We decided to merge our
+    projects and that I would continue with it.
+
+    If you find any bug of have a suggestion, feel free to contact me
+    at <kde@geeksrus.net>.
+
+
+License:
+
+    KDE su comes under the "Artistic License". See the file LICENSE.readme
+    for the exact terms.
+
+Alan Eldridge	2002/10/12 <kde@geeksrus.net>
diff --git a/tdesu/TODO b/tdesu/TODO
new file mode 100644
index 000000000..1be1aec4b
--- /dev/null
+++ b/tdesu/TODO
@@ -0,0 +1,3 @@
+KDE su TODO list.
+
+* Currently nothing
diff --git a/tdesu/configure.in.in b/tdesu/configure.in.in
new file mode 100644
index 000000000..512825786
--- /dev/null
+++ b/tdesu/configure.in.in
@@ -0,0 +1,62 @@
+dnl Check for "struct ucred"
+AC_MSG_CHECKING("struct ucred")
+AC_TRY_COMPILE(
+[
+  #define _GNU_SOURCE 1
+  #include <sys/socket.h>
+],
+[
+  struct ucred red;
+],  have_ucred=yes
+  , have_ucred=no
+)
+if test "$have_ucred" = "yes"; then
+    AC_DEFINE(HAVE_STRUCT_UCRED, 1, [Define if you have the struct ucred])
+    AC_MSG_RESULT(yes)
+else
+    AC_MSG_RESULT(no)
+fi
+
+dnl Check for the group "nogroup" or "nobody" Use -2 otherwise.
+AC_MSG_CHECKING(nogroup)
+AC_TRY_RUN([
+    #include <grp.h>
+    #include <sys/types.h>
+
+    int main() 
+    {
+	struct group *grp = getgrnam("nogroup");
+	if (grp) return 0;
+	return 1;
+    }
+], nogroup=nogroup, 
+AC_TRY_RUN([
+    #include <grp.h>
+    #include <sys/types.h>
+
+    int main() 
+    {
+	struct group *grp = getgrnam("nobody");
+	if (grp) return 0;
+	return 1;
+    }
+], nogroup=nobody, 
+nogroup=65534, nogroup=65534), nogroup=65534)
+AC_MSG_RESULT($nogroup)
+AC_SUBST(nogroup)
+AC_CHECK_FUNCS(getpeereid)
+
+AC_ARG_WITH(sudo-tdesu-backend,
+	    AC_HELP_STRING([--with-sudo-tdesu-backend],
+			   [use sudo as backend for tdesu (default is su)]),
+[
+    if test x$withval = xyes; then
+        use_tdesu_backend="sudo"
+    else
+        use_tdesu_backend="su"
+    fi
+],
+    use_tdesu_backend="su"
+)
+
+AC_DEFINE_UNQUOTED(DEFAULT_SUPER_USER_COMMAND, "$use_tdesu_backend", [Use su or sudo])
diff --git a/tdesu/tdesu/CMakeLists.txt b/tdesu/tdesu/CMakeLists.txt
new file mode 100644
index 000000000..7eb878140
--- /dev/null
+++ b/tdesu/tdesu/CMakeLists.txt
@@ -0,0 +1,30 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+  ${CMAKE_CURRENT_BINARY_DIR}
+  ${CMAKE_BINARY_DIR}
+  ${TDE_INCLUDE_DIR}
+  ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+  ${TQT_LIBRARY_DIRS}
+)
+
+
+##### tdesu (executable) ########################
+
+tde_add_executable( tdesu AUTOMOC
+  SOURCES tdesu.cpp sudlg.cpp
+  LINK tdesu-shared kio-shared
+  DESTINATION ${BIN_INSTALL_DIR}
+)
diff --git a/tdesu/tdesu/Makefile.am b/tdesu/tdesu/Makefile.am
new file mode 100644
index 000000000..f322f0a6f
--- /dev/null
+++ b/tdesu/tdesu/Makefile.am
@@ -0,0 +1,15 @@
+## Makefile.am for tdesu by Geert Jansen
+
+INCLUDES= $(all_includes)
+
+## tdesu
+bin_PROGRAMS = 	tdesu
+tdesu_SOURCES = tdesu.cpp sudlg.cpp
+tdesu_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_KDECORE) $(LIB_KDEUI) -ltdefx $(LIB_KIO) -lktexteditor
+tdesu_LDADD   = $(LIB_KIO) -ltdesu
+tdesu_METASOURCES =  AUTO
+noinst_HEADERS = sudlg.h
+
+## Messages
+messages:
+	$(XGETTEXT) $(tdesu_SOURCES) -o $(podir)/tdesu.pot
diff --git a/tdesu/tdesu/sudlg.cpp b/tdesu/tdesu/sudlg.cpp
new file mode 100644
index 000000000..cfda9168c
--- /dev/null
+++ b/tdesu/tdesu/sudlg.cpp
@@ -0,0 +1,103 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 2000 Geert Jansen <jansen@kde.org>
+ */
+
+#include <config.h>
+#include <tqstring.h>
+#include <kconfig.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+
+#include <tdesu/su.h>
+#include "sudlg.h"
+
+KDEsuDialog::KDEsuDialog(TQCString user, TQCString auth_user, bool enableKeep,const TQString& icon, bool withIgnoreButton)
+     : KPasswordDialog(Password, enableKeep, (withIgnoreButton ? User1:NoDefault), icon)
+{
+    KConfig* config = KGlobal::config();
+    config->setGroup("super-user-command");
+    TQString superUserCommand = config->readEntry("super-user-command", DEFAULT_SUPER_USER_COMMAND);
+    if ( superUserCommand != "sudo" && superUserCommand != "su" ) {
+	kdWarning() << "unknown super user command" << endl;
+	superUserCommand = "su";
+    }
+
+    m_User = auth_user;
+    setCaption(i18n("Run as %1").arg(static_cast<const char *>(user)));
+
+    TQString prompt;
+    if (superUserCommand == "sudo" && m_User == "root") {
+	    prompt = i18n("Please enter your password." );
+    } else {
+        if (m_User == "root") {
+	    prompt = i18n("The action you requested needs root privileges. "
+	    "Please enter root's password below or click "
+	    "Ignore to continue with your current privileges.");
+        } else {
+	    prompt = i18n("The action you requested needs additional privileges. "
+		"Please enter the password for \"%1\" below or click "
+		"Ignore to continue with your current privileges.").arg(static_cast<const char *>(m_User));
+	}
+    }
+    setPrompt(prompt);
+
+    if( withIgnoreButton )
+	setButtonText(User1, i18n("&Ignore"));
+}
+
+
+KDEsuDialog::~KDEsuDialog()
+{
+}
+
+bool KDEsuDialog::checkPassword(const char *password)
+{
+    SuProcess proc;
+    proc.setUser(m_User);
+    int status = proc.checkInstall(password);
+    switch (status)
+    {
+    case -1:
+	KMessageBox::sorry(this, i18n("Conversation with su failed."));
+	done(Rejected);
+	return false;
+
+    case 0:
+	return true;
+
+    case SuProcess::SuNotFound:
+        KMessageBox::sorry(this,
+		i18n("The program 'su' is not found;\n"
+		     "make sure your PATH is set correctly."));
+	done(Rejected);
+	return false;
+
+    case SuProcess::SuNotAllowed:
+        KMessageBox::sorry(this,
+		i18n("You are not allowed to use 'su';\n"
+		     "on some systems, you need to be in a special "
+		     "group (often: wheel) to use this program."));
+	done(Rejected);
+	return false;
+
+    case SuProcess::SuIncorrectPassword:
+        KMessageBox::sorry(this, i18n("Incorrect password; please try again."));
+	return false;
+
+    default:
+        KMessageBox::error(this, i18n("Internal error: illegal return from "
+		"SuProcess::checkInstall()"));
+	done(Rejected);
+	return false;
+    }
+}
+
+void KDEsuDialog::slotUser1()
+{
+    done(AsUser);
+}
+
+#include "sudlg.moc"
diff --git a/tdesu/tdesu/sudlg.h b/tdesu/tdesu/sudlg.h
new file mode 100644
index 000000000..64a283a0e
--- /dev/null
+++ b/tdesu/tdesu/sudlg.h
@@ -0,0 +1,32 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 2000 Geert Jansen <jansen@kde.org>
+ */
+
+#ifndef __SuDlg_h_Included__
+#define __SuDlg_h_Included__
+
+#include <kpassdlg.h>
+
+class KDEsuDialog
+    : public KPasswordDialog
+{
+    Q_OBJECT
+
+public:
+    KDEsuDialog(TQCString user, TQCString auth_user, bool enableKeep, const TQString& icon , bool withIgnoreButton=false);
+    ~KDEsuDialog();
+
+    enum ResultCodes { AsUser = 10 };
+    
+protected:
+    bool checkPassword(const char *password);
+    void slotUser1();
+    
+private:
+    TQCString m_User;
+};
+    
+
+#endif // __SuDlg_h_Included__
diff --git a/tdesu/tdesu/tdesu.cpp b/tdesu/tdesu/tdesu.cpp
new file mode 100644
index 000000000..d6aeebc6f
--- /dev/null
+++ b/tdesu/tdesu/tdesu.cpp
@@ -0,0 +1,431 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 1998 Pietro Iglio <iglio@fub.it>
+ * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
+ */
+
+#include <config.h>
+
+#include <unistd.h>
+#include <errno.h>
+#include <string.h>
+#include <pwd.h>
+#include <stdlib.h>
+
+#include <sys/time.h>
+#include <sys/resource.h>
+#if defined(HAVE_SYS_WAIT_H)
+#include <sys/wait.h>
+#endif
+
+#include <tqstring.h>
+#include <tqfileinfo.h>
+#include <tqglobal.h>
+#include <tqfile.h>
+#include <tqdir.h>
+
+#include <dcopclient.h>
+
+#include <kdebug.h>
+#include <kglobal.h>
+#include <kapplication.h>
+#include <kstandarddirs.h>
+#include <kconfig.h>
+#include <klocale.h>
+#include <kaboutdata.h>
+#include <kcmdlineargs.h>
+#include <kmessagebox.h>
+#include <krun.h>
+#include <kuser.h>
+
+#include <tdesu/defaults.h>
+#include <tdesu/su.h>
+#include <tdesu/client.h>
+
+#include "sudlg.h"
+
+#define ERR strerror(errno)
+
+TQCString command;
+const char *Version = "1.0";
+
+// NOTE: if you change the position of the -u switch, be sure to adjust it
+// at the beginning of main()
+static KCmdLineOptions options[] = {
+    { "+command", I18N_NOOP("Specifies the command to run"), 0 },
+    { "c <command>", I18N_NOOP("Specifies the command to run"), "" },
+    { "f <file>", I18N_NOOP("Run command under target uid if <file> is not writable"), "" },
+    { "u <user>", I18N_NOOP("Specifies the target uid"), "root" },
+    { "n", I18N_NOOP("Do not keep password"), 0 },
+    { "s", I18N_NOOP("Stop the daemon (forgets all passwords)"), 0 },
+    { "t", I18N_NOOP("Enable terminal output (no password keeping)"), 0 },
+    { "p <prio>", I18N_NOOP("Set priority value: 0 <= prio <= 100, 0 is lowest"), "50" },
+    { "r", I18N_NOOP("Use realtime scheduling"), 0 },
+    { "newdcop", I18N_NOOP("Create a new dcopserver instance (this can break your current TDE session)"), 0 },
+    { "noignorebutton", I18N_NOOP("Do not display ignore button"), 0 },
+    { "i <icon name>", I18N_NOOP("Specify icon to use in the password dialog"), 0},
+    { "d", I18N_NOOP("Do not show the command to be run in the dialog"), 0},
+    KCmdLineLastOption
+};
+
+
+TQCString dcopNetworkId()
+{
+    TQCString result;
+    result.resize(1025);
+    TQFile file(DCOPClient::dcopServerFile());
+    if (!file.open(IO_ReadOnly))
+        return "";
+    int i = file.readLine(result.data(), 1024);
+    if (i <= 0)
+        return "";
+    result.data()[i-1] = '\0'; // strip newline
+    return result;
+}
+
+static int startApp();
+
+int main(int argc, char *argv[])
+{
+    // FIXME: this can be considered a poor man's solution, as it's not
+    // directly obvious to a gui user. :)
+    // anyway, i vote against removing it even when we have a proper gui
+    // implementation.  -- ossi
+    const char *duser = ::getenv("ADMIN_ACCOUNT");
+    if (duser && duser[0])
+        options[3].def = duser;
+
+    KAboutData aboutData("tdesu", I18N_NOOP("KDE su"),
+            Version, I18N_NOOP("Runs a program with elevated privileges."),
+            KAboutData::License_Artistic,
+            "Copyright (c) 1998-2000 Geert Jansen, Pietro Iglio");
+    aboutData.addAuthor("Geert Jansen", I18N_NOOP("Maintainer"),
+            "jansen@kde.org", "http://www.stack.nl/~geertj/");
+    aboutData.addAuthor("Pietro Iglio", I18N_NOOP("Original author"),
+            "iglio@fub.it");
+
+    KCmdLineArgs::init(argc, argv, &aboutData);
+    KCmdLineArgs::addCmdLineOptions(options);
+    KApplication::disableAutoDcopRegistration();
+    // tdesu doesn't process SM events, so don't even connect to ksmserver
+    TQCString session_manager = getenv( "SESSION_MANAGER" );
+    unsetenv( "SESSION_MANAGER" );
+    KApplication app;
+    // but propagate it to the started app
+    if (session_manager.data())
+    {
+        setenv( "SESSION_MANAGER", session_manager.data(), 1 );
+    }
+    
+    {
+        KStartupInfoId id;
+        id.initId( kapp->startupId());
+        id.setupStartupEnv(); // make DESKTOP_STARTUP_ID env. var. available again
+    }
+
+    int result = startApp();
+
+    if (result == 127)
+    {
+        KMessageBox::sorry(0, i18n("Command '%1' not found.").arg(static_cast<const char *>(command)));
+    }
+
+    return result;
+}
+
+static int startApp()
+{
+    KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+    // Stop daemon and exit?
+    if (args->isSet("s"))
+    {
+        KDEsuClient client;
+        if (client.ping() == -1)
+        {
+            kdError(1206) << "Daemon not running -- nothing to stop\n";
+            exit(1);
+        }
+        if (client.stopServer() != -1)
+        {
+            kdDebug(1206) << "Daemon stopped\n";
+            exit(0);
+        }
+        kdError(1206) << "Could not stop daemon\n";
+        exit(1);
+    }
+
+    TQString icon;
+    if ( args->isSet("i"))
+	icon = args->getOption("i");	
+
+    bool prompt = true;
+    if ( args->isSet("d"))
+	prompt = false;
+
+    // Get target uid
+    TQCString user = args->getOption("u");
+    TQCString auth_user = user;
+    struct passwd *pw = getpwnam(user);
+    if (pw == 0L)
+    {
+        kdError(1206) << "User " << user << " does not exist\n";
+        exit(1);
+    }
+    bool change_uid = (getuid() != pw->pw_uid);
+
+    // If file is writeable, do not change uid
+    TQString file = TQFile::decodeName(args->getOption("f"));
+    if (change_uid && !file.isEmpty())
+    {
+        if (file.tqat(0) != '/')
+        {
+            KStandardDirs dirs;
+            dirs.addKDEDefaults();
+            file = dirs.findResource("config", file);
+            if (file.isEmpty())
+            {
+                kdError(1206) << "Config file not found: " << file << "\n";
+                exit(1);
+            }
+        }
+        TQFileInfo fi(file);
+        if (!fi.exists())
+        {
+            kdError(1206) << "File does not exist: " << file << "\n";
+            exit(1);
+        }
+        change_uid = !fi.isWritable();
+    }
+
+    // Get priority/scheduler
+    TQCString tmp = args->getOption("p");
+    bool ok;
+    int priority = tmp.toInt(&ok);
+    if (!ok || (priority < 0) || (priority > 100))
+    {
+        KCmdLineArgs::usage(i18n("Illegal priority: %1").arg(static_cast<const char *>(tmp)));
+        exit(1);
+    }
+    int scheduler = SuProcess::SchedNormal;
+    if (args->isSet("r"))
+        scheduler = SuProcess::SchedRealtime;
+    if ((priority > 50) || (scheduler != SuProcess::SchedNormal))
+    {
+        change_uid = true;
+        auth_user = "root";
+    }
+
+    // Get command
+    if (args->isSet("c"))
+    {
+        command = args->getOption("c");
+        for (int i=0; i<args->count(); i++)
+        {
+            TQString arg = TQFile::decodeName(args->arg(i));
+            KRun::shellQuote(arg);
+            command += " ";
+            command += TQFile::encodeName(arg);
+        }
+    }
+    else 
+    {
+        if( args->count() == 0 )
+        {
+            KCmdLineArgs::usage(i18n("No command specified."));
+            exit(1);
+        }
+        command = args->arg(0);
+        for (int i=1; i<args->count(); i++)
+        {
+            TQString arg = TQFile::decodeName(args->arg(i));
+            KRun::shellQuote(arg);
+            command += " ";
+            command += TQFile::encodeName(arg);
+        }
+    }
+
+    // Don't change uid if we're don't need to.
+    if (!change_uid)
+    {
+        int result = system(command);
+        result = WEXITSTATUS(result);
+        return result;
+    }
+
+    // Check for daemon and start if necessary
+    bool just_started = false;
+    bool have_daemon = true;
+    KDEsuClient client;
+    if (!client.isServerSGID())
+    {
+        kdWarning(1206) << "Daemon not safe (not sgid), not using it.\n";
+        have_daemon = false;
+    }
+    else if (client.ping() == -1)
+    {
+        if (client.startServer() == -1)
+        {
+            kdWarning(1206) << "Could not start daemon, reduced functionality.\n";
+            have_daemon = false;
+        }
+        just_started = true;
+    }
+
+    // Try to exec the command with tdesud.
+    bool keep = !args->isSet("n") && have_daemon;
+    bool terminal = true;
+    bool new_dcop = args->isSet("newdcop");
+    bool withIgnoreButton = args->isSet("ignorebutton");
+    
+    QCStringList env;
+    TQCString options;
+    env << ( "DESKTOP_STARTUP_ID=" + kapp->startupId());
+    
+    if (pw->pw_uid)
+    {
+       // Only propagate KDEHOME for non-root users,
+       // root uses KDEROOTHOME
+       
+       // Translate the KDEHOME of this user to the new user.
+       TQString kdeHome = KGlobal::dirs()->relativeLocation("home", KGlobal::dirs()->localkdedir());
+       if (kdeHome[0] != '/')
+          kdeHome.prepend("~/"); 
+       else
+          kdeHome=TQString::null; // Use default
+
+       env << ("KDEHOME="+ TQFile::encodeName(kdeHome));
+    }
+
+    KUser u;
+    env << (TQCString) ("KDESU_USER=" + u.loginName().local8Bit());
+    
+    if (!new_dcop)
+    {
+        TQCString ksycoca = "KDESYCOCA="+TQFile::encodeName(locateLocal("cache", "ksycoca"));
+        env << ksycoca;
+
+        options += "xf"; // X-only, dcop forwarding enabled.
+    }
+
+    if (keep && !terminal && !just_started)
+    {
+        client.setPriority(priority);
+        client.setScheduler(scheduler);
+        int result = client.exec(command, user, options, env);
+        if (result == 0)
+        {
+           result = client.exitCode();
+           return result;
+        }
+    }
+
+    // Set core dump size to 0 because we will have
+    // root's password in memory.
+    struct rlimit rlim;
+    rlim.rlim_cur = rlim.rlim_max = 0;
+    if (setrlimit(RLIMIT_CORE, &rlim))
+    {
+        kdError(1206) << "rlimit(): " << ERR << "\n";
+        exit(1);
+    }
+
+    // Read configuration
+    KConfig *config = KGlobal::config();
+    config->setGroup("Passwords");
+    int timeout = config->readNumEntry("Timeout", defTimeout);
+
+    // Check if we need a password
+    SuProcess proc;
+    proc.setUser(auth_user);
+    int needpw = proc.checkNeedPassword();
+    if (needpw < 0)
+    {
+        TQString err = i18n("Su returned with an error.\n");
+        KMessageBox::error(0L, err);
+        exit(1);
+    }
+    if (needpw == 0)
+    {
+        keep = 0;
+        kdDebug() << "Don't need password!!\n";
+    }
+
+    // Start the dialog
+    TQCString password;
+    if (needpw)
+    {
+        KStartupInfoId id;
+        id.initId( kapp->startupId());
+        KStartupInfoData data;
+        data.setSilent( KStartupInfoData::Yes );
+        KStartupInfo::sendChange( id, data );
+        KDEsuDialog dlg(user, auth_user, keep && !terminal,icon, withIgnoreButton);
+	if (prompt)
+	    dlg.addLine(i18n("Command:"), command);
+        if ((priority != 50) || (scheduler != SuProcess::SchedNormal))
+        {
+            TQString prio;
+            if (scheduler == SuProcess::SchedRealtime)
+                prio += i18n("realtime: ");
+            prio += TQString("%1/100").arg(priority);
+	    if (prompt)
+		dlg.addLine(i18n("Priority:"), prio);
+        }
+        int ret = dlg.exec();
+        if (ret == KDEsuDialog::Rejected)
+        {
+            KStartupInfo::sendFinish( id );
+            exit(0);
+        }
+        if (ret == KDEsuDialog::AsUser)
+            change_uid = false;
+        password = dlg.password();
+        keep = dlg.keep();
+        KConfigGroup(config,"Passwords").writeEntry("Keep", keep);
+        data.setSilent( KStartupInfoData::No );
+        KStartupInfo::sendChange( id, data );
+    }
+
+    // Some events may need to be handled (like a button animation)
+    kapp->processEvents();
+
+    // Run command
+    if (!change_uid)
+    {
+        int result = system(command);
+        result = WEXITSTATUS(result);
+        return result;
+    }
+    else if (keep && have_daemon)
+    {
+        client.setPass(password, timeout);
+        client.setPriority(priority);
+        client.setScheduler(scheduler);
+        int result = client.exec(command, user, options, env);
+        if (result == 0)
+        {
+            result = client.exitCode();
+            return result;
+        }
+    } else
+    {
+        SuProcess proc;
+        proc.setTerminal(terminal);
+        proc.setErase(true);
+        proc.setUser(user);
+        if (!new_dcop)
+        {
+            proc.setXOnly(true);
+            proc.setDCOPForwarding(true);
+        }
+        proc.setEnvironment(env);
+        proc.setPriority(priority);
+        proc.setScheduler(scheduler);
+        proc.setCommand(command);
+        int result = proc.exec(password);
+        return result;
+    }
+    return -1;
+}
+
diff --git a/tdesu/tdesud/CMakeLists.txt b/tdesu/tdesud/CMakeLists.txt
new file mode 100644
index 000000000..2696a8197
--- /dev/null
+++ b/tdesu/tdesud/CMakeLists.txt
@@ -0,0 +1,35 @@
+#################################################
+#
+#  (C) 2010-2011 Serghei Amelian
+#  serghei (DOT) amelian (AT) gmail.com
+#
+#  Improvements and feedback are welcome
+#
+#  This file is released under GPL >= 2
+#
+#################################################
+
+# FIXME there is used KDE_USE_FPIE
+
+include_directories(
+  ${CMAKE_CURRENT_BINARY_DIR}
+  ${CMAKE_BINARY_DIR}
+  ${TDE_INCLUDE_DIR}
+  ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+  ${TQT_LIBRARY_DIRS}
+)
+
+
+##### tdesud (executable) #######################
+
+tde_add_executable( tdesud
+  SOURCES tdesud.cpp repo.cpp lexer.cpp handler.cpp secure.cpp
+  LINK tdesu-shared
+  DESTINATION ${BIN_INSTALL_DIR}
+)
+
+install( CODE "execute_process( COMMAND chown root:${nogroup} \$ENV{DESTDIR}${_destination}/tdesud )" )
+install( CODE "execute_process( COMMAND chmod 2755 \$ENV{DESTDIR}${_destination}/tdesud )" )
diff --git a/tdesu/tdesud/Makefile.am b/tdesu/tdesud/Makefile.am
new file mode 100644
index 000000000..140cbce06
--- /dev/null
+++ b/tdesu/tdesud/Makefile.am
@@ -0,0 +1,31 @@
+## Makefile.am for tdesud
+
+INCLUDES = $(all_includes)
+
+KDE_CXXFLAGS = $(KDE_USE_FPIE)
+
+bin_PROGRAMS = tdesud
+tdesud_SOURCES = tdesud.cpp repo.cpp lexer.cpp handler.cpp secure.cpp 
+tdesud_LDFLAGS = $(KDE_USE_PIE) $(all_libraries) $(KDE_RPATH)
+tdesud_LDADD = $(LIB_KDECORE) -ltdesu $(LIBSOCKET)
+noinst_HEADERS = repo.h handler.h lexer.h secure.h
+
+## tdesud needs to be suid or sgid something
+install-data-local:
+	@echo "********************************************************"
+	@echo ""
+	@echo "For security reasons, tdesud is installed setgid nogroup."
+	@echo "Kdesud is the daemon that implements the password caching."
+	@echo ""
+	@echo "You should NOT use the password caching feature if tdesud is"
+	@echo "not installed setgid nogroup."
+	@echo ""
+	@echo "********************************************************"
+
+install-exec-hook: 
+	@(chown root:@nogroup@ $(DESTDIR)$(bindir)/tdesud && chmod 2755  $(DESTDIR)$(bindir)/tdesud) \
+	|| echo "Error: Could not install tdesud as setgid nogroup!!\n" \
+	"The password caching feature is disabled."
+
+messages:
+	$(XGETTEXT) $(tdesud_SOURCES) -o $(podir)/tdesud.pot
diff --git a/tdesu/tdesud/handler.cpp b/tdesu/tdesud/handler.cpp
new file mode 100644
index 000000000..2a744b217
--- /dev/null
+++ b/tdesu/tdesud/handler.cpp
@@ -0,0 +1,512 @@
+/*
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
+ *
+ * handler.cpp: A connection handler for tdesud.
+ */
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <unistd.h>
+#include <signal.h>
+#include <errno.h>
+#include <string.h>
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+
+#include <tqcstring.h>
+
+#include <kdebug.h>
+#include <tdesu/su.h>
+#include <tdesu/ssh.h>
+
+#include "handler.h"
+#include "repo.h"
+#include "lexer.h"
+#include "secure.h"
+
+
+// Global repository
+extern Repository *repo;
+void tdesud_cleanup();
+
+ConnectionHandler::ConnectionHandler(int fd)
+        : SocketSecurity(fd), m_exitCode(0), m_hasExitCode(false), m_needExitCode(false), m_pid(0)
+{
+    m_Fd = fd;
+    m_Priority = 50;
+    m_Scheduler = SuProcess::SchedNormal;
+}
+
+ConnectionHandler::~ConnectionHandler()
+{
+    m_Buf.fill('x');
+    m_Pass.fill('x');
+    close(m_Fd);
+}
+
+/*
+ * Handle a connection: make sure we don't block
+ */
+
+int ConnectionHandler::handle()
+{
+    int ret, nbytes;
+
+    // Add max 100 bytes to connection buffer
+
+    char tmpbuf[100];
+    nbytes = recv(m_Fd, tmpbuf, 99, 0);
+
+    if (nbytes < 0)
+    {
+        if (errno == EINTR)
+            return 0;
+        // read error
+        return -1;
+    } else if (nbytes == 0)
+    {
+        // eof
+        return -1;
+    }
+    tmpbuf[nbytes] = '\000';
+
+    if (m_Buf.length()+nbytes > 1024)
+    {
+        kdWarning(1205) << "line too long";
+        return -1;
+    }
+
+    m_Buf.append(tmpbuf);
+    memset(tmpbuf, 'x', nbytes);
+
+    // Do we have a complete command yet?
+    int n;
+    TQCString newbuf;
+    while ((n = m_Buf.find('\n')) != -1)
+    {
+        newbuf = m_Buf.left(n+1);
+        m_Buf.fill('x', n+1);
+        m_Buf.remove(0, n+1);
+        ret = doCommand(newbuf);
+        if (ret < 0)
+            return ret;
+    }
+
+    return 0;
+}
+
+TQCString ConnectionHandler::makeKey(int _namespace, TQCString s1,
+        TQCString s2, TQCString s3)
+{
+    TQCString res;
+    res.setNum(_namespace);
+    res += "*";
+    res += s1 + "*" + s2 + "*" + s3;
+    return res;
+}
+
+void ConnectionHandler::sendExitCode()
+{
+    if (!m_needExitCode)
+       return;
+    TQCString buf;
+    buf.setNum(m_exitCode);
+    buf.prepend("OK ");
+    buf.append("\n");
+
+    send(m_Fd, buf.data(), buf.length(), 0);
+}
+
+void ConnectionHandler::respond(int ok, TQCString s)
+{
+    TQCString buf;
+
+    switch (ok) {
+    case Res_OK:
+        buf = "OK";
+        break;
+    case Res_NO:
+    default:
+        buf = "NO";
+        break;
+    }
+
+    if (!s.isEmpty())
+    {
+        buf += ' ';
+        buf += s;
+    }
+
+    buf += '\n';
+
+    send(m_Fd, buf.data(), buf.length(), 0);
+}
+
+/*
+ * Parse and do one command. On a parse error, return -1. This will
+ * close the socket in the main accept loop.
+ */
+
+int ConnectionHandler::doCommand(TQCString buf)
+{
+    if ((uid_t) peerUid() != getuid())
+    {
+        kdWarning(1205) << "Peer uid not equal to me\n";
+        kdWarning(1205) << "Peer: " << peerUid() << " Me: " << getuid() << endl;
+        return -1;
+    }
+
+    TQCString key, command, pass, name, user, value, env_check;
+    Data_entry data;
+
+    Lexer *l = new Lexer(buf);
+    int tok = l->lex();
+    switch (tok)
+    {
+    case Lexer::Tok_pass:  // "PASS password:string timeout:int\n"
+        tok = l->lex();
+        if (tok != Lexer::Tok_str)
+            goto parse_error;
+        m_Pass.fill('x');
+        m_Pass = l->lval();
+        tok = l->lex();
+        if (tok != Lexer::Tok_num)
+            goto parse_error;
+        m_Timeout = l->lval().toInt();
+        if (l->lex() != '\n')
+            goto parse_error;
+        if (m_Pass.isNull())
+           m_Pass = "";
+        kdDebug(1205) << "Password set!\n";
+        respond(Res_OK);
+        break;
+
+    case Lexer::Tok_host:  // "HOST host:string\n"
+        tok = l->lex();
+        if (tok != Lexer::Tok_str)
+            goto parse_error;
+        m_Host = l->lval();
+        if (l->lex() != '\n')
+            goto parse_error;
+        kdDebug(1205) << "Host set to " << m_Host << endl;
+        respond(Res_OK);
+        break;
+
+    case Lexer::Tok_prio:  // "PRIO priority:int\n"
+        tok = l->lex();
+        if (tok != Lexer::Tok_num)
+            goto parse_error;
+        m_Priority = l->lval().toInt();
+        if (l->lex() != '\n')
+            goto parse_error;
+        kdDebug(1205) << "priority set to " << m_Priority << endl;
+        respond(Res_OK);
+        break;
+
+    case Lexer::Tok_sched:  // "SCHD scheduler:int\n"
+        tok = l->lex();
+        if (tok != Lexer::Tok_num)
+            goto parse_error;
+        m_Scheduler = l->lval().toInt();
+        if (l->lex() != '\n')
+            goto parse_error;
+        kdDebug(1205) << "Scheduler set to " << m_Scheduler << endl;
+        respond(Res_OK);
+        break;
+
+    case Lexer::Tok_exec:  // "EXEC command:string user:string [options:string (env:string)*]\n"
+    {
+        TQCString options;
+        QCStringList env;
+        tok = l->lex();
+        if (tok != Lexer::Tok_str)
+            goto parse_error;
+        command = l->lval();
+        tok = l->lex();
+        if (tok != Lexer::Tok_str)
+            goto parse_error;
+        user = l->lval();
+        tok = l->lex();
+        if (tok != '\n')
+        {
+            if (tok != Lexer::Tok_str)
+                goto parse_error;
+            options = l->lval();
+            tok = l->lex();
+            while (tok != '\n')
+            {
+               if (tok != Lexer::Tok_str)
+                   goto parse_error;
+               TQCString env_str = l->lval();
+               env.append(env_str);
+               if (strncmp(env_str, "DESKTOP_STARTUP_ID=", strlen("DESKTOP_STARTUP_ID=")) != 0)
+                   env_check += "*"+env_str;
+               tok = l->lex();
+            }
+        }
+
+        TQCString auth_user;
+        if ((m_Scheduler != SuProcess::SchedNormal) || (m_Priority > 50))
+            auth_user = "root";
+        else
+            auth_user = user;
+        key = makeKey(2, m_Host, auth_user, command);
+        // We only use the command if the environment is the same.
+        if (repo->find(key) == env_check)
+        {
+           key = makeKey(0, m_Host, auth_user, command);
+           pass = repo->find(key);
+        }
+        if (pass.isNull()) // isNull() means no password, isEmpty() can mean empty password
+        {
+            if (m_Pass.isNull())
+            {
+                respond(Res_NO);
+                break;
+            }
+            data.value = env_check;
+            data.timeout = m_Timeout;
+            key = makeKey(2, m_Host, auth_user, command);
+            repo->add(key, data);
+            data.value = m_Pass;
+            data.timeout = m_Timeout;
+            key = makeKey(0, m_Host, auth_user, command);
+            repo->add(key, data);
+            pass = m_Pass;
+        }
+
+        // Execute the command asynchronously
+        kdDebug(1205) << "Executing command: " << command << endl;
+        pid_t pid = fork();
+        if (pid < 0)
+        {
+            kdDebug(1205) << "fork(): " << strerror(errno) << endl;
+            respond(Res_NO);
+            break;
+        } else if (pid > 0)
+        {
+            m_pid = pid;
+            respond(Res_OK);
+            break;
+        }
+
+        // Ignore SIGCHLD because "class SuProcess" needs waitpid()
+        signal(SIGCHLD, SIG_DFL);
+
+        int ret;
+        if (m_Host.isEmpty())
+        {
+            SuProcess proc;
+            proc.setCommand(command);
+            proc.setUser(user);
+            if (options.contains('x'))
+               proc.setXOnly(true);
+            if (options.contains('f'))
+               proc.setDCOPForwarding(true);
+            proc.setPriority(m_Priority);
+            proc.setScheduler(m_Scheduler);
+            proc.setEnvironment(env);
+            ret = proc.exec(pass.data());
+        } else
+        {
+            SshProcess proc;
+            proc.setCommand(command);
+            proc.setUser(user);
+            proc.setHost(m_Host);
+            ret = proc.exec(pass.data());
+        }
+
+        kdDebug(1205) << "Command completed: " << command << endl;
+        _exit(ret);
+    }
+
+    case Lexer::Tok_delCmd:  // "DEL command:string user:string\n"
+    tok = l->lex();
+    if (tok != Lexer::Tok_str)
+        goto parse_error;
+    command = l->lval();
+    tok = l->lex();
+    if (tok != Lexer::Tok_str)
+        goto parse_error;
+    user = l->lval();
+    if (l->lex() != '\n')
+        goto parse_error;
+    key = makeKey(0, m_Host, user, command);
+    if (repo->remove(key) < 0) {
+        kdDebug(1205) << "Unknown command: " << command << endl;
+        respond(Res_NO);
+    }
+    else {
+        kdDebug(1205) << "Deleted command: " << command << ", user = "
+                      << user << endl;
+        respond(Res_OK);
+    }
+    break;
+
+    case Lexer::Tok_delVar:  // "DELV name:string \n"
+    {
+    tok = l->lex();
+    if (tok != Lexer::Tok_str)
+        goto parse_error;
+    name = l->lval();
+    tok = l->lex();
+    if (tok != '\n')
+        goto parse_error;
+    key = makeKey(1, name);
+    if (repo->remove(key) < 0)
+    {
+        kdDebug(1205) << "Unknown name: " << name << endl;
+        respond(Res_NO);
+    }
+    else {
+        kdDebug(1205) << "Deleted name: " << name << endl;
+        respond(Res_OK);
+    }
+    break;
+    }
+
+    case Lexer::Tok_delGroup:  // "DELG group:string\n"
+    tok = l->lex();
+    if (tok != Lexer::Tok_str)
+        goto parse_error;
+    name = l->lval();
+    if (repo->removeGroup(name) < 0)
+    {
+        kdDebug(1205) << "No keys found under group: " << name << endl;
+        respond(Res_NO);
+    }
+    else
+    {
+        kdDebug(1205) << "Removed all keys under group: " << name << endl;
+        respond(Res_OK);
+    }
+    break;
+
+    case Lexer::Tok_delSpecialKey:  // "DELS special_key:string\n"
+    tok = l->lex();
+    if (tok != Lexer::Tok_str)
+        goto parse_error;
+    name = l->lval();
+    if (repo->removeSpecialKey(name) < 0)
+        respond(Res_NO);
+    else
+        respond(Res_OK);
+    break;
+
+    case Lexer::Tok_set:  // "SET name:string value:string group:string timeout:int\n"
+    tok = l->lex();
+    if (tok != Lexer::Tok_str)
+        goto parse_error;
+    name = l->lval();
+    tok = l->lex();
+    if (tok != Lexer::Tok_str)
+        goto parse_error;
+    data.value = l->lval();
+    tok = l->lex();
+    if (tok != Lexer::Tok_str)
+        goto parse_error;
+    data.group = l->lval();
+    tok = l->lex();
+    if (tok != Lexer::Tok_num)
+        goto parse_error;
+    data.timeout = l->lval().toInt();
+    if (l->lex() != '\n')
+        goto parse_error;
+    key = makeKey(1, name);
+    repo->add(key, data);
+    kdDebug(1205) << "Stored key: " << key << endl;
+    respond(Res_OK);
+    break;
+
+    case Lexer::Tok_get:  // "GET name:string\n"
+    tok = l->lex();
+    if (tok != Lexer::Tok_str)
+        goto parse_error;
+    name = l->lval();
+    if (l->lex() != '\n')
+        goto parse_error;
+    key = makeKey(1, name);
+    kdDebug(1205) << "Request for key: " << key << endl;
+    value = repo->find(key);
+    if (!value.isEmpty())
+        respond(Res_OK, value);
+    else
+        respond(Res_NO);
+    break;
+
+    case Lexer::Tok_getKeys:  // "GETK groupname:string\n"
+        tok = l->lex();
+        if (tok != Lexer::Tok_str)
+            goto parse_error;
+        name = l->lval();
+        if (l->lex() != '\n')
+            goto parse_error;
+        kdDebug(1205) << "Request for group key: " << name << endl;
+        value = repo->findKeys(name);
+        if (!value.isEmpty())
+            respond(Res_OK, value);
+        else
+            respond(Res_NO);
+        break;
+
+    case Lexer::Tok_chkGroup:  // "CHKG groupname:string\n"
+        tok = l->lex();
+        if (tok != Lexer::Tok_str)
+            goto parse_error;
+        name = l->lval();
+        if (l->lex() != '\n')
+            goto parse_error;
+        kdDebug(1205) << "Checking for group key: " << name << endl;
+        if ( repo->hasGroup( name ) < 0 )
+            respond(Res_NO);
+        else
+            respond(Res_OK);
+        break;
+
+    case Lexer::Tok_ping:  // "PING\n"
+        tok = l->lex();
+        if (tok != '\n')
+            goto parse_error;
+        respond(Res_OK);
+        break;
+
+    case Lexer::Tok_exit:  // "EXIT\n"
+        tok = l->lex();
+        if (tok != '\n')
+            goto parse_error;
+        m_needExitCode = true;
+        if (m_hasExitCode)
+           sendExitCode();
+        break;
+
+    case Lexer::Tok_stop:  // "STOP\n"
+        tok = l->lex();
+        if (tok != '\n')
+            goto parse_error;
+        kdDebug(1205) << "Stopping by command" << endl;
+        respond(Res_OK);
+        tdesud_cleanup();
+        exit(0);
+
+    default:
+        kdWarning(1205) << "Unknown command: " << l->lval() << endl;
+        respond(Res_NO);
+        goto parse_error;
+    }
+
+    delete l;
+    return 0;
+
+parse_error:
+    kdWarning(1205) << "Parse error" << endl;
+    delete l;
+    return -1;
+}
+
+
+
diff --git a/tdesu/tdesud/handler.h b/tdesu/tdesud/handler.h
new file mode 100644
index 000000000..8728efe78
--- /dev/null
+++ b/tdesu/tdesud/handler.h
@@ -0,0 +1,52 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
+ */
+
+#ifndef __Handler_h_included__
+#define __Handler_h_included__
+
+#include <sys/types.h>
+
+#include <tqcstring.h>
+#include "secure.h"
+
+/**
+ * A ConnectionHandler handles a client. It is called from the main program
+ * loop whenever there is data to read from a corresponding socket.
+ * It keeps reading data until a newline is read. Then, a command is parsed
+ * and executed.
+ */
+
+class ConnectionHandler: public SocketSecurity 
+{
+
+public:
+    ConnectionHandler(int fd);
+    ~ConnectionHandler();
+
+    /** Handle incoming data. */
+    int handle();
+
+    /* Send back exit code. */
+    void sendExitCode();
+
+private:
+    enum Results { Res_OK, Res_NO };
+
+    int doCommand(TQCString buf);
+    void respond(int ok, TQCString s=0);
+    TQCString makeKey(int namspace, TQCString s1, TQCString s2=0, TQCString s3=0);
+
+    int m_Fd, m_Timeout;
+    int m_Priority, m_Scheduler;
+    TQCString m_Buf, m_Pass, m_Host;
+public:
+    int m_exitCode;
+    bool m_hasExitCode;
+    bool m_needExitCode;
+    pid_t m_pid;
+};
+
+#endif
diff --git a/tdesu/tdesud/lexer.cpp b/tdesu/tdesud/lexer.cpp
new file mode 100644
index 000000000..f1932f07d
--- /dev/null
+++ b/tdesu/tdesud/lexer.cpp
@@ -0,0 +1,134 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
+ * 
+ * lexer.cpp: A lexer for the tdesud protocol. See tdesud.cpp for a
+ *            description of the protocol.
+ */
+
+#include <ctype.h>
+#include <tqcstring.h>
+#include "lexer.h"
+
+
+Lexer::Lexer(const TQCString &input)
+{
+    m_Input = input;
+    in = 0;
+}
+
+Lexer::~Lexer()
+{
+    // Erase buffers
+    m_Input.fill('x');
+    m_Output.fill('x');
+}
+
+TQCString &Lexer::lval()
+{
+    return m_Output;
+}
+
+/*
+ * lex() is the lexer. There is no end-of-input check here so that has to be
+ * done by the caller.
+ */
+
+int Lexer::lex()
+{
+    char c;
+
+    c = m_Input[in++];
+    m_Output.fill('x');
+    m_Output.resize(0);
+
+    while (1) 
+    {
+	// newline? 
+	if (c == '\n')
+	    return '\n';
+
+	// No control characters 
+	if (iscntrl(c))
+	    return Tok_none;
+
+	if (isspace(c))
+	    while (isspace(c = m_Input[in++]));
+
+	// number?
+	if (isdigit(c)) 
+	{
+	    m_Output += c;
+	    while (isdigit(c = m_Input[in++]))
+		m_Output += c;
+	    in--;
+	    return Tok_num;
+	}
+
+	// quoted string?
+	if (c == '"') 
+	{
+	    c = m_Input[in++];
+	    while ((c != '"') && !iscntrl(c)) {
+		// handle escaped characters
+		if (c == '\\')
+		    m_Output += m_Input[in++];
+		else
+		    m_Output += c;
+		c = m_Input[in++];
+	    }
+	    if (c == '"')
+		return Tok_str;
+	    return Tok_none;
+	}
+
+	// normal string
+	while (!isspace(c) && !iscntrl(c)) 
+	{
+	    m_Output += c;
+	    c = m_Input[in++];
+	}
+	in--;
+
+	// command? 
+	if (m_Output.length() <= 4) 
+	{
+	    if (m_Output == "EXEC")
+		return Tok_exec;
+	    if (m_Output == "PASS")
+		return Tok_pass;
+	    if (m_Output == "DEL")
+		return Tok_delCmd;
+	    if (m_Output == "PING")
+		return Tok_ping;
+	    if (m_Output == "EXIT")
+		return Tok_exit;
+	    if (m_Output == "STOP")
+		return Tok_stop;
+	    if (m_Output == "SET")
+		return Tok_set;
+	    if (m_Output == "GET")
+		return Tok_get;
+	    if (m_Output == "HOST")
+		return Tok_host;
+	    if (m_Output == "SCHD")
+		return Tok_sched;
+	    if (m_Output == "PRIO")
+		return Tok_prio;
+	    if (m_Output == "DELV")
+		return Tok_delVar;
+	    if (m_Output == "DELG")
+		return Tok_delGroup;
+	    if (m_Output == "DELS")
+		return Tok_delSpecialKey;
+        if (m_Output == "GETK")
+        return Tok_getKeys;
+        if (m_Output == "CHKG")
+        return Tok_chkGroup;
+	}
+
+	return Tok_str;
+    }
+}
+
diff --git a/tdesu/tdesud/lexer.h b/tdesu/tdesud/lexer.h
new file mode 100644
index 000000000..d8f529cd8
--- /dev/null
+++ b/tdesu/tdesud/lexer.h
@@ -0,0 +1,42 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
+ */
+
+#ifndef __Lexer_h_included__
+#define __Lexer_h_included__
+
+class TQCString;
+
+/**
+ * This is a lexer for the tdesud protocol.
+ */
+
+class Lexer {
+public:
+    Lexer(const TQCString &input);
+    ~Lexer();
+
+    /** Read next token. */
+    int lex();
+
+    /** Return the token's value. */
+    TQCString &lval();
+
+    enum Tokens { 
+    Tok_none, Tok_exec=256, Tok_pass, Tok_delCmd,
+    Tok_ping, Tok_str, Tok_num , Tok_stop,
+    Tok_set, Tok_get, Tok_delVar, Tok_delGroup,
+    Tok_host, Tok_prio, Tok_sched, Tok_getKeys,
+    Tok_chkGroup, Tok_delSpecialKey, Tok_exit
+    };
+
+private:
+    TQCString m_Input;
+    TQCString m_Output;
+
+    int in;
+};
+
+#endif
diff --git a/tdesu/tdesud/repo.cpp b/tdesu/tdesud/repo.cpp
new file mode 100644
index 000000000..e923d6411
--- /dev/null
+++ b/tdesu/tdesud/repo.cpp
@@ -0,0 +1,188 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 1999,2000 Geert Jansen <g.t.jansen@stud.tue.nl>
+ */
+
+#include <time.h>
+#include <assert.h>
+
+#include <tqcstring.h>
+#include <tqmap.h>
+#include <tqvaluestack.h>
+#include <kdebug.h>
+
+#include "repo.h"
+
+
+Repository::Repository()
+{
+    head_time = (unsigned) -1;
+}
+
+
+Repository::~Repository()
+{}
+
+
+void Repository::add(const TQCString &key, Data_entry &data)
+{
+    RepoIterator it = repo.find(key);
+    if (it != repo.end())
+        remove(key);
+    if (data.timeout == 0)
+        data.timeout = (unsigned) -1;
+    else
+        data.timeout += time(0L);
+    head_time = QMIN(head_time, data.timeout);
+    repo.insert(key, data);
+}
+
+int Repository::remove(const TQCString &key)
+{
+    if( key.isEmpty() )
+        return -1;
+
+     RepoIterator it = repo.find(key);
+     if (it == repo.end())
+        return -1;
+     it.data().value.fill('x');
+     it.data().group.fill('x');
+     repo.remove(it);
+     return 0;
+}
+
+int Repository::removeSpecialKey(const TQCString &key)
+{
+    int found = -1;
+    if ( !key.isEmpty() )
+    {
+        TQValueStack<TQCString> rm_keys;
+        for (RepoCIterator it=repo.begin(); it!=repo.end(); ++it)
+        {
+            if (  key.find( static_cast<const char *>(it.data().group) ) == 0 &&
+                  it.key().find( static_cast<const char *>(key) ) >= 0 )
+            {
+                rm_keys.push(it.key());
+                found = 0;
+            }
+        }
+        while (!rm_keys.isEmpty())
+        {
+            kdDebug(1205) << "Removed key: " << rm_keys.top() << endl;
+            remove(rm_keys.pop());
+        }
+    }
+    return found;
+}
+
+int Repository::removeGroup(const TQCString &group)
+{
+    int found = -1;
+    if ( !group.isEmpty() )
+    {
+        TQValueStack<TQCString> rm_keys;
+        for (RepoCIterator it=repo.begin(); it!=repo.end(); ++it)
+        {
+            if (it.data().group == group)
+            {
+                rm_keys.push(it.key());
+                found = 0;
+            }
+        }
+        while (!rm_keys.isEmpty())
+        {
+            kdDebug(1205) << "Removed key: " << rm_keys.top() << endl;
+            remove(rm_keys.pop());
+        }
+    }
+    return found;
+}
+
+int Repository::hasGroup(const TQCString &group) const
+{
+    if ( !group.isEmpty() )
+    {
+        RepoCIterator it;
+        for (it=repo.begin(); it!=repo.end(); ++it)
+        {
+            if (it.data().group == group)
+                return 0;
+        }
+    }
+    return -1;
+}
+
+TQCString Repository::findKeys(const TQCString &group, const char *sep ) const
+{
+    TQCString list="";
+    if( !group.isEmpty() )
+    {
+        kdDebug(1205) << "Looking for matching key with group key: " << group << endl;
+        int pos;
+        TQCString key;
+        RepoCIterator it;
+        for (it=repo.begin(); it!=repo.end(); ++it)
+        {
+            if (it.data().group == group)
+            {
+                key = it.key().copy();
+                kdDebug(1205) << "Matching key found: " << key << endl;
+                pos = key.findRev(sep);
+                key.truncate( pos );
+                key.remove(0, 2);
+                if (!list.isEmpty())
+                {
+                    // Add the same keys only once please :)
+                    if( !list.contains(static_cast<const char *>(key)) )
+                    {
+                        kdDebug(1205) << "Key added to list: " << key << endl;
+                        list += '\007'; // I do not know
+                        list.append(key);
+                    }
+                }
+                else
+                    list = key;
+            }
+        }
+    }
+    return list;
+}
+
+TQCString Repository::find(const TQCString &key) const
+{
+    if( key.isEmpty() )
+        return 0;
+
+    RepoCIterator it = repo.find(key);
+    if (it == repo.end())
+        return 0;
+    return it.data().value;
+}
+
+
+int Repository::expire()
+{
+    unsigned current = time(0L);
+    if (current < head_time)
+	return 0;
+
+    unsigned t;
+    TQValueStack<TQCString> keys;
+    head_time = (unsigned) -1;
+    RepoIterator it;
+    for (it=repo.begin(); it!=repo.end(); ++it)
+    {
+	t = it.data().timeout;
+	if (t <= current)
+	    keys.push(it.key());
+	else
+	    head_time = QMIN(head_time, t);
+    }
+
+    int n = keys.count();
+    while (!keys.isEmpty())
+	remove(keys.pop());
+    return n;
+}
+
diff --git a/tdesu/tdesud/repo.h b/tdesu/tdesud/repo.h
new file mode 100644
index 000000000..70027793f
--- /dev/null
+++ b/tdesu/tdesud/repo.h
@@ -0,0 +1,68 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
+ */
+
+#ifndef __Repo_h_included__
+#define __Repo_h_included__
+
+
+#include <tqmap.h>
+#include <tqcstring.h>
+
+
+/**
+ * Used internally.
+ */
+struct Data_entry 
+{
+    TQCString value;
+    TQCString group;
+    unsigned int timeout;
+};
+
+
+/**
+ * String repository.
+ *
+ * This class implements a string repository with expiration.
+ */
+class Repository {
+public:
+    Repository();
+    ~Repository();
+
+    /** Remove data elements which are expired. */
+    int expire();
+
+    /** Add a data element */
+    void add(const TQCString& key, Data_entry& data);
+
+    /** Delete a data element. */
+    int remove(const TQCString& key);
+
+    /** Delete all data entries having the given group.  */
+    int removeGroup(const TQCString& group);
+
+    /** Delete all data entries based on key. */
+    int removeSpecialKey(const TQCString& key );
+
+    /** Checks for the existence of the specified group. */
+    int hasGroup(const TQCString &group) const;
+
+    /** Return a data value.  */
+    TQCString find(const TQCString& key) const;
+
+    /** Returns the key values for the given group. */
+    TQCString findKeys(const TQCString& group, const char *sep= "-") const;
+
+private:
+
+    TQMap<TQCString,Data_entry> repo;
+    typedef TQMap<TQCString,Data_entry>::Iterator RepoIterator;
+    typedef TQMap<TQCString,Data_entry>::ConstIterator RepoCIterator;
+    unsigned head_time;
+};
+
+#endif
diff --git a/tdesu/tdesud/secure.cpp b/tdesu/tdesud/secure.cpp
new file mode 100644
index 000000000..9b30ab4ee
--- /dev/null
+++ b/tdesu/tdesud/secure.cpp
@@ -0,0 +1,80 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 1999,2000 Geert Jansen <g.t.jansen@stud.tue.nl>
+ *
+ * secure.cpp: Peer credentials for a UNIX socket.
+ */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <string.h>
+#include <errno.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/socket.h>
+
+#include <kdebug.h>
+#include <ksockaddr.h>
+#include "secure.h"
+
+
+/**
+ * Under Linux, Socket_security is supported.
+ */
+
+#if defined(SO_PEERCRED)
+
+SocketSecurity::SocketSecurity(int sockfd)
+{
+    ksocklen_t len = sizeof(struct ucred);
+    if (getsockopt(sockfd, SOL_SOCKET, SO_PEERCRED, &cred, &len) < 0) {
+	kdError() << "getsockopt(SO_PEERCRED) " << perror << endl;
+	return;
+    }
+
+    ok = true;
+}
+
+#else
+# if defined(HAVE_GETPEEREID)
+SocketSecurity::SocketSecurity(int sockfd)
+{
+    uid_t euid;
+    gid_t egid;
+    if (getpeereid(sockfd, &euid, &egid) == 0) {
+	cred.uid = euid;
+	cred.gid = egid;
+	cred.pid = -1;
+	ok = true;
+    }
+}
+
+# else
+
+
+/**
+ * The default version does nothing.
+ */
+
+SocketSecurity::SocketSecurity(int sockfd)
+{
+    static bool warned_him = FALSE;
+
+    if (!warned_him) {
+        kdWarning() << "Using void socket security. Please add support for your" << endl;
+        kdWarning() << "platform to tdesu/tdesud/secure.cpp" << endl;
+        warned_him = TRUE;
+    }
+
+    // This passes the test made in handler.cpp
+    cred.uid = getuid();
+    ok = true;
+}
+
+# endif
+#endif
diff --git a/tdesu/tdesud/secure.h b/tdesu/tdesud/secure.h
new file mode 100644
index 000000000..edf58d9c6
--- /dev/null
+++ b/tdesu/tdesud/secure.h
@@ -0,0 +1,52 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
+ */
+
+#ifndef __Secure_h_included__
+#define __Secure_h_included__
+
+#include "config.h"
+
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#ifndef HAVE_STRUCT_UCRED
+
+// `struct ucred' is not defined in glibc 2.0.
+
+struct ucred {
+    pid_t     pid;
+    uid_t     uid;
+    gid_t     gid;
+};
+
+#endif // HAVE_STRUCT_UCRED
+
+
+/**
+ * The Socket_security class autheticates the peer for you. It provides
+ * the process-id, user-id and group-id plus the MD5 sum of the connected
+ * binary.
+ */
+
+class SocketSecurity {
+public:
+    SocketSecurity(int fd);
+
+    /** Returns the peer's process-id. */
+    int peerPid() { if (!ok) return -1; return cred.pid; }
+
+    /** Returns the peer's user-id */
+    int peerUid() { if (!ok) return -1; return cred.uid; }
+
+    /** Returns the peer's group-id */
+    int peerGid() { if (!ok) return -1; return cred.gid; }
+
+private:
+    bool ok;
+    struct ucred cred;
+};
+
+#endif
diff --git a/tdesu/tdesud/tdesud.cpp b/tdesu/tdesud/tdesud.cpp
new file mode 100644
index 000000000..d369aaf9b
--- /dev/null
+++ b/tdesu/tdesud/tdesud.cpp
@@ -0,0 +1,418 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * This file is part of the KDE project, module tdesu.
+ * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
+ * 
+ *
+ * tdesud.cpp: KDE su daemon. Offers "keep password" functionality to kde su.
+ *
+ * The socket $KDEHOME/socket-$(HOSTNAME)/tdesud_$(display) is used for communication with
+ * client programs.
+ *
+ * The protocol: Client initiates the connection. All commands and responses
+ * are terminated by a newline.
+ *
+ *   Client                     Server     Description
+ *   ------                     ------     -----------
+ *
+ *   PASS <pass> <timeout>      OK         Set password for commands in
+ *                                         this session. Password is
+ *                                         valid for <timeout> seconds.
+ *
+ *   USER <user>                OK         Set the target user [required]
+ *
+ *   EXEC <command>             OK         Execute command <command>. If
+ *                              NO         <command> has been executed
+ *                                         before (< timeout) no PASS
+ *                                         command is needed.
+ *                                              
+ *   DEL <command>              OK         Delete password for command
+ *                              NO         <command>.
+ *
+ *   PING                       OK         Ping the server (diagnostics).
+ */
+
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <ctype.h>
+#include <string.h>
+#include <stdarg.h>
+#include <signal.h>
+#include <pwd.h>
+#include <errno.h>
+
+#include <sys/prctl.h>
+#include <sys/time.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <sys/resource.h>
+#include <sys/wait.h>
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>                // Needed on some systems.
+#endif
+
+#include <tqptrvector.h>
+#include <tqfile.h>
+#include <tqregexp.h>
+
+#include <kinstance.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include <kcmdlineargs.h>
+#include <kstandarddirs.h>
+#include <kaboutdata.h>
+#include <tdesu/client.h>
+#include <tdesu/defaults.h>
+#include <ksockaddr.h>
+
+#include "repo.h"
+#include "handler.h"
+
+#include <X11/X.h>
+#include <X11/Xlib.h>
+
+#ifndef SUN_LEN
+#define SUN_LEN(ptr) ((kde_socklen_t) (((struct sockaddr_un *) 0)->sun_path) \
+                     + strlen ((ptr)->sun_path))   
+#endif
+
+#define ERR strerror(errno)
+
+// Globals
+
+Repository *repo;
+const char *Version = "1.01";
+TQCString sock;
+Display *x11Display;
+int pipeOfDeath[2];
+
+
+void tdesud_cleanup()
+{
+    unlink(sock);
+}
+
+
+// Borrowed from kdebase/kaudio/kaudioserver.cpp
+
+extern "C" int xio_errhandler(Display *);
+
+int xio_errhandler(Display *)
+{
+    kdError(1205) << "Fatal IO error, exiting...\n";
+    tdesud_cleanup();
+    exit(1);
+    return 1;  //silence compilers
+}
+
+int initXconnection()
+{
+    x11Display = XOpenDisplay(NULL);
+    if (x11Display != 0L) 
+    {
+        XSetIOErrorHandler(xio_errhandler);
+        XCreateSimpleWindow(x11Display, DefaultRootWindow(x11Display), 
+                0, 0, 1, 1, 0,
+                BlackPixelOfScreen(DefaultScreenOfDisplay(x11Display)),
+                BlackPixelOfScreen(DefaultScreenOfDisplay(x11Display)));
+        return XConnectionNumber(x11Display);
+    } else 
+    {
+        kdWarning(1205) << "Can't connect to the X Server.\n";
+        kdWarning(1205) << "Might not terminate at end of session.\n";
+        return -1;
+    }
+}
+
+extern "C" {
+  void signal_exit(int);
+  void sigchld_handler(int);
+}
+
+void signal_exit(int sig)
+{
+    kdDebug(1205) << "Exiting on signal " << sig << "\n";
+    tdesud_cleanup();
+    exit(1);
+}
+
+void sigchld_handler(int)
+{
+    char c = ' ';
+    write(pipeOfDeath[1], &c, 1);
+}
+
+/**
+ * Creates an AF_UNIX socket in socket resource, mode 0600.
+ */
+
+int create_socket()
+{
+    int sockfd;
+    ksocklen_t addrlen;
+    struct stat s;
+
+    TQCString display(getenv("DISPLAY"));
+    if (display.isEmpty())
+    {
+        kdWarning(1205) << "$DISPLAY is not set\n";
+        return -1;
+    }
+
+    // strip the screen number from the display
+    display.replace(TQRegExp("\\.[0-9]+$"), "");
+
+    sock = TQFile::encodeName(locateLocal("socket", TQString("tdesud_%1").arg(static_cast<const char *>(display))));
+    int stat_err=lstat(sock, &s);
+    if(!stat_err && S_ISLNK(s.st_mode)) {
+        kdWarning(1205) << "Someone is running a symlink attack on you\n";
+        if(unlink(sock)) {
+            kdWarning(1205) << "Could not delete symlink\n";
+            return -1;
+        }
+    }
+
+    if (!access(sock, R_OK|W_OK)) 
+    {
+        KDEsuClient client;
+        if (client.ping() == -1) 
+        {
+            kdWarning(1205) << "stale socket exists\n";
+            if (unlink(sock)) 
+            {
+                kdWarning(1205) << "Could not delete stale socket\n";
+                return -1;
+            }
+        } else 
+        {
+            kdWarning(1205) << "tdesud is already running\n";
+            return -1;
+        }
+
+    }
+
+    sockfd = socket(PF_UNIX, SOCK_STREAM, 0);
+    if (sockfd < 0) 
+    {
+        kdError(1205) << "socket(): " << ERR << "\n";
+        return -1;
+    }
+
+    struct sockaddr_un addr;
+    addr.sun_family = AF_UNIX;
+    strncpy(addr.sun_path, sock, sizeof(addr.sun_path)-1);
+    addr.sun_path[sizeof(addr.sun_path)-1] = '\000';
+    addrlen = SUN_LEN(&addr);
+    if (bind(sockfd, (struct sockaddr *)&addr, addrlen) < 0) 
+    {
+        kdError(1205) << "bind(): " << ERR << "\n";
+        return -1;
+    }
+
+    struct linger lin;
+    lin.l_onoff = lin.l_linger = 0;
+    if (setsockopt(sockfd, SOL_SOCKET, SO_LINGER, (char *) &lin,
+                   sizeof(linger)) < 0) 
+    {
+        kdError(1205) << "setsockopt(SO_LINGER): " << ERR << "\n";
+        return -1;
+    }
+
+    int opt = 1;
+    if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *) &opt,
+                   sizeof(opt)) < 0) 
+    {
+        kdError(1205) << "setsockopt(SO_REUSEADDR): " << ERR << "\n";
+        return -1;
+    }
+    opt = 1;
+    if (setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, (char *) &opt,
+                   sizeof(opt)) < 0) 
+    {
+        kdError(1205) << "setsockopt(SO_KEEPALIVE): " << ERR << "\n";
+        return -1;
+    }
+    chmod(sock, 0600);
+    return sockfd;
+}
+
+
+/**
+ * Main program
+ */
+
+int main(int argc, char *argv[])
+{
+    prctl(PR_SET_DUMPABLE, 0);
+
+    KAboutData aboutData("tdesud", I18N_NOOP("KDE su daemon"),
+            Version, I18N_NOOP("Daemon used by tdesu"),
+            KAboutData::License_Artistic,
+            "Copyright (c) 1999,2000 Geert Jansen");
+    aboutData.addAuthor("Geert Jansen", I18N_NOOP("Author"),
+            "jansen@kde.org", "http://www.stack.nl/~geertj/");
+    KCmdLineArgs::init(argc, argv, &aboutData);
+    KInstance instance(&aboutData);
+
+    // Set core dump size to 0
+    struct rlimit rlim;
+    rlim.rlim_cur = rlim.rlim_max = 0;
+    if (setrlimit(RLIMIT_CORE, &rlim) < 0) 
+    {
+        kdError(1205) << "setrlimit(): " << ERR << "\n";
+        exit(1);
+    }
+
+    // Create the Unix socket.
+    int sockfd = create_socket();
+    if (sockfd < 0)
+        exit(1);
+    if (listen(sockfd, 1) < 0) 
+    {
+        kdError(1205) << "listen(): " << ERR << "\n";
+        tdesud_cleanup();
+        exit(1);
+    }
+    int maxfd = sockfd;
+
+    // Ok, we're accepting connections. Fork to the background.
+    pid_t pid = fork();
+    if (pid == -1) 
+    {
+        kdError(1205) << "fork():" << ERR << "\n";
+        tdesud_cleanup();
+        exit(1);
+    }
+    if (pid)
+        exit(0);
+
+    // Make sure we exit when the display gets closed.
+    int x11Fd = initXconnection();
+    maxfd = QMAX(maxfd, x11Fd);
+
+    repo = new Repository;
+    TQPtrVector<ConnectionHandler> handler;
+    handler.setAutoDelete(true);
+
+    pipe(pipeOfDeath);
+    maxfd = QMAX(maxfd, pipeOfDeath[0]);
+
+    // Signal handlers 
+    struct sigaction sa;
+    sa.sa_handler = signal_exit;
+    sigemptyset(&sa.sa_mask);
+    sa.sa_flags = 0;
+    sigaction(SIGHUP, &sa, 0L);
+    sigaction(SIGINT, &sa, 0L);
+    sigaction(SIGTERM, &sa, 0L);
+    sigaction(SIGQUIT, &sa, 0L);
+
+    sa.sa_handler = sigchld_handler;
+    sa.sa_flags = SA_NOCLDSTOP;
+    sigaction(SIGCHLD, &sa, 0L);
+    sa.sa_handler = SIG_IGN;
+    sigaction(SIGPIPE, &sa, 0L);
+
+    // Main execution loop 
+
+    ksocklen_t addrlen;
+    struct sockaddr_un clientname;
+
+    fd_set tmp_fds, active_fds;
+    FD_ZERO(&active_fds);
+    FD_SET(sockfd, &active_fds);
+    FD_SET(pipeOfDeath[0], &active_fds);
+    if (x11Fd != -1)
+        FD_SET(x11Fd, &active_fds);
+
+    while (1) 
+    {
+        tmp_fds = active_fds;
+        if(x11Display)
+            XFlush(x11Display);
+        if (select(maxfd+1, &tmp_fds, 0L, 0L, 0L) < 0) 
+        {
+            if (errno == EINTR) continue;
+            
+            kdError(1205) << "select(): " << ERR << "\n";
+            exit(1);
+        }
+        repo->expire();
+        for (int i=0; i<=maxfd; i++) 
+        {
+            if (!FD_ISSET(i, &tmp_fds)) 
+                continue;
+
+            if (i == pipeOfDeath[0])
+            {
+                char buf[101];
+                read(pipeOfDeath[0], buf, 100);
+                pid_t result;
+                do
+                {
+                    int status;
+                    result = waitpid((pid_t)-1, &status, WNOHANG);
+                    if (result > 0)
+                    {
+                        for(int j=handler.size(); j--;)
+                        {
+                            if (handler[j] && (handler[j]->m_pid == result))
+                            {
+                                handler[j]->m_exitCode = WEXITSTATUS(status);
+                                handler[j]->m_hasExitCode = true;
+                                handler[j]->sendExitCode();
+                                handler[j]->m_pid = 0;
+                                break;
+                            }
+                        }
+                    }
+                }
+                while(result > 0);
+            }
+
+            if (i == x11Fd) 
+            {
+                // Discard X events
+                XEvent event_return;
+                if (x11Display)
+                    while(XPending(x11Display))
+                        XNextEvent(x11Display, &event_return);
+                continue;
+            }
+
+            if (i == sockfd) 
+            {
+                // Accept new connection
+                int fd;
+                addrlen = 64;
+                fd = accept(sockfd, (struct sockaddr *) &clientname, &addrlen);
+                if (fd < 0) 
+                {
+                    kdError(1205) << "accept():" << ERR << "\n";
+                    continue;
+                }
+                if (fd+1 > (int) handler.size())
+                    handler.resize(fd+1);
+                handler.insert(fd, new ConnectionHandler(fd));
+                maxfd = TQMAX(maxfd, fd);
+                FD_SET(fd, &active_fds);
+                continue;
+            }
+
+            // handle alreay established connection
+            if (handler[i] && handler[i]->handle() < 0) 
+            {
+                handler.remove(i);
+                FD_CLR(i, &active_fds);
+            }
+        }
+    }
+    kdWarning(1205) << "???\n";
+}
+
-- 
cgit v1.2.3

