summaryrefslogtreecommitdiffstats
path: root/kdeprint/lpr
diff options
context:
space:
mode:
Diffstat (limited to 'kdeprint/lpr')
-rw-r--r--kdeprint/lpr/CMakeLists.txt80
-rw-r--r--kdeprint/lpr/Makefile.am40
-rw-r--r--kdeprint/lpr/apsdriver184
-rw-r--r--kdeprint/lpr/apsdriver283
-rw-r--r--kdeprint/lpr/apshandler.cpp405
-rw-r--r--kdeprint/lpr/apshandler.h57
-rw-r--r--kdeprint/lpr/editentrydialog.cpp157
-rw-r--r--kdeprint/lpr/editentrydialog.h62
-rw-r--r--kdeprint/lpr/klprfactory.cpp29
-rw-r--r--kdeprint/lpr/klprprinterimpl.cpp59
-rw-r--r--kdeprint/lpr/klprprinterimpl.h38
-rw-r--r--kdeprint/lpr/kmconfiglpr.cpp66
-rw-r--r--kdeprint/lpr/kmconfiglpr.h39
-rw-r--r--kdeprint/lpr/kmlprjobmanager.cpp90
-rw-r--r--kdeprint/lpr/kmlprjobmanager.h44
-rw-r--r--kdeprint/lpr/kmlprmanager.cpp492
-rw-r--r--kdeprint/lpr/kmlprmanager.h82
-rw-r--r--kdeprint/lpr/kmlpruimanager.cpp67
-rw-r--r--kdeprint/lpr/kmlpruimanager.h37
-rw-r--r--kdeprint/lpr/lpchelper.cpp320
-rw-r--r--kdeprint/lpr/lpchelper.h59
-rw-r--r--kdeprint/lpr/lpqhelper.cpp117
-rw-r--r--kdeprint/lpr/lpqhelper.h44
-rw-r--r--kdeprint/lpr/lpr.print86
-rw-r--r--kdeprint/lpr/lprhandler.cpp270
-rw-r--r--kdeprint/lpr/lprhandler.h88
-rw-r--r--kdeprint/lpr/lprngtooldriver185
-rw-r--r--kdeprint/lpr/lprngtoolhandler.cpp393
-rw-r--r--kdeprint/lpr/lprngtoolhandler.h54
-rw-r--r--kdeprint/lpr/lprsettings.cpp146
-rw-r--r--kdeprint/lpr/lprsettings.h67
-rw-r--r--kdeprint/lpr/make_driver_db_lpr.c192
-rw-r--r--kdeprint/lpr/matichandler.cpp481
-rw-r--r--kdeprint/lpr/matichandler.h57
-rw-r--r--kdeprint/lpr/matichelper.cpp38
-rw-r--r--kdeprint/lpr/matichelper.h29
-rw-r--r--kdeprint/lpr/printcapentry.cpp82
-rw-r--r--kdeprint/lpr/printcapentry.h81
-rw-r--r--kdeprint/lpr/printcapreader.cpp176
-rw-r--r--kdeprint/lpr/printcapreader.h43
40 files changed, 0 insertions, 4919 deletions
diff --git a/kdeprint/lpr/CMakeLists.txt b/kdeprint/lpr/CMakeLists.txt
deleted file mode 100644
index c893411b1..000000000
--- a/kdeprint/lpr/CMakeLists.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-#################################################
-#
-# (C) 2010 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(
- ${TQT_INCLUDE_DIRS}
- ${CMAKE_CURRENT_BINARY_DIR}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_BINARY_DIR}/tdecore
- ${CMAKE_SOURCE_DIR}
- ${CMAKE_SOURCE_DIR}/dcop
- ${CMAKE_SOURCE_DIR}/tdecore
- ${CMAKE_SOURCE_DIR}/tdeui
- ${CMAKE_SOURCE_DIR}/tdeprint
- ${CMAKE_SOURCE_DIR}/tdeprint/management
-)
-
-link_directories(
- ${TQT_LIBRARY_DIRS}
-)
-
-
-##### headers ###################################
-
-install( FILES
- printcapentry.h lprhandler.h lprsettings.h
- DESTINATION ${INCLUDE_INSTALL_DIR}/tdeprint/lpr )
-
-
-##### other data ################################
-
-install( FILES lpr.print DESTINATION ${DATA_INSTALL_DIR}/tdeprint/plugins )
-install( FILES apsdriver1 apsdriver2 lprngtooldriver1 DESTINATION ${DATA_INSTALL_DIR}/tdeprint )
-
-
-#### tdeprint_lpr ###############################
-
-set( target tdeprint_lpr )
-
-set( ${target}_SRCS
- printcapreader.cpp lprhandler.cpp matichandler.cpp
- klprfactory.cpp kmlprmanager.cpp kmlpruimanager.cpp
- lpchelper.cpp lpqhelper.cpp kmlprjobmanager.cpp
- matichelper.cpp klprprinterimpl.cpp printcapentry.cpp
- lprsettings.cpp kmconfiglpr.cpp apshandler.cpp
- lprngtoolhandler.cpp editentrydialog.cpp
-)
-
-tde_add_kpart( ${target} AUTOMOC
- SOURCES ${${target}_SRCS}
- LINK tdeprint_management-shared
- DESTINATION ${PLUGIN_INSTALL_DIR}
-)
-
-
-#### make_driver_db_lpr #########################
-
-set( target make_driver_db_lpr )
-
-set( ${target}_SRCS
- make_driver_db_lpr.c
-)
-
-tde_add_executable( ${target}
- SOURCES ${${target}_SRCS}
- LINK driverparse-static tdefakes-shared ${DL_LIBRARIES}
- DESTINATION ${BIN_INSTALL_DIR}
-)
diff --git a/kdeprint/lpr/Makefile.am b/kdeprint/lpr/Makefile.am
deleted file mode 100644
index a9039888f..000000000
--- a/kdeprint/lpr/Makefile.am
+++ /dev/null
@@ -1,40 +0,0 @@
-AM_CPPFLAGS = -D_KDEPRINT_COMPILE
-
-INCLUDES= -I$(top_srcdir) -I$(top_srcdir)/tdeprint -I$(top_srcdir)/tdeprint/management $(all_includes)
-
-kde_module_LTLIBRARIES = tdeprint_lpr.la
-
-tdeprint_lpr_la_SOURCES = printcapreader.cpp lprhandler.cpp \
- matichandler.cpp klprfactory.cpp kmlprmanager.cpp \
- kmlpruimanager.cpp lpchelper.cpp lpqhelper.cpp \
- kmlprjobmanager.cpp matichelper.cpp \
- klprprinterimpl.cpp printcapentry.cpp \
- lprsettings.cpp kmconfiglpr.cpp apshandler.cpp \
- lprngtoolhandler.cpp \
- editentrydialog.cpp
-tdeprint_lpr_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined
-tdeprint_lpr_la_LIBADD = $(top_builddir)/tdeprint/management/libtdeprint_management.la \
- $(LIB_QT) $(LIB_KDEPRINT) $(LIB_KDEUI) $(LIB_KDECORE)
-tdeprint_lpr_la_METASOURCES = AUTO
-
-noinst_HEADERS = printcapreader.h \
- matichandler.h kmlprmanager.h \
- kmlpruimanager.h lpchelper.h lpqhelper.h \
- kmlprjobmanager.h matichelper.h klprprinterimpl.h \
- kmconfiglpr.h apshandler.h \
- lprngtoolhandler.h \
- editentrydialog.h
-
-tdeprintlpr_HEADERS = printcapentry.h lprhandler.h lprsettings.h
-tdeprintlprdir = $(includedir)/tdeprint/lpr
-
-bin_PROGRAMS = make_driver_db_lpr
-make_driver_db_lpr_SOURCES = make_driver_db_lpr.c
-make_driver_db_lpr_LDFLAGS = $(all_libraries)
-make_driver_db_lpr_LDADD = $(top_builddir)/tdecore/libtdefakes.la ../libdriverparse.a $(LIBDL)
-
-entry_DATA = lpr.print
-entrydir = $(kde_datadir)/tdeprint/plugins
-
-miscdata_DATA = apsdriver1 apsdriver2 lprngtooldriver1
-miscdatadir = $(kde_datadir)/tdeprint
diff --git a/kdeprint/lpr/apsdriver1 b/kdeprint/lpr/apsdriver1
deleted file mode 100644
index fa6bbde0e..000000000
--- a/kdeprint/lpr/apsdriver1
+++ /dev/null
@@ -1,84 +0,0 @@
-GROUP|general|General
-OPTION|PAPERSIZE|Page Size
-CHOICE|a3|A3
-CHOICE|a4|A4
-CHOICE|legal|US Legal
-CHOICE|letter|US Letter
-CHOICE|ledger|Ledger
-CHOICE|tabloid|Tabloid
-DEFAULT|a4
-OPTION|COLOR|Color Mode
-CHOICE|full|Color
-CHOICE|gray|Grayscale
-CHOICE|mono|Monochrome
-DEFAULT|full
-OPTION|QUALITY|Print Quality
-CHOICE|draft|Draft
-CHOICE|low|Low
-CHOICE|medium|Medium
-CHOICE|high|High
-CHOICE|photo|Photo
-DEFAULT|medium
-OPTION|RESOLUTION|Print Resolution
-CHOICE|150x150|150 DPI
-CHOICE|180x180|180 DPI
-CHOICE|300x300|300 DPI
-CHOICE|360x180|360x180 DPI
-CHOICE|360x360|360 DPI
-CHOICE|600x600|600 DPI
-CHOICE|720x720|720 DPI
-CHOICE|1200x1200|1200 DPI
-DEFAULT|300x300
-OPTION|METHOD|Print Method
-CHOICE|auto|Automatic file conversion
-CHOICE|ascii|Treat everything as text
-CHOICE|raw|Pass-through mode
-DEFAULT|auto
-ENDGROUP|
-GROUP|advanced|Advanced Settings
-GROUP|paper|Paper Settings
-OPTION|MEDIA|paper Type
-CHOICE|plain|Plain paper
-CHOICE|coated|Coated (InkJet) paper
-CHOICE|glossy|Glossy paper
-CHOICE|premium|Premium (Photo) paper
-CHOICE|trans|Transparencies
-CHOICE|(empty)|Default printer setting
-DEFAULT|(empty)
-OPTION|PAPERTRAY|Input Slot
-CHOICE|tray0|Tray 0
-CHOICE|tray1|Tray 1
-CHOICE|tray2|Tray 2
-CHOICE|tray3|Tray 3
-CHOICE|tray4|Tray 4
-CHOICE|tray5|Tray 5
-CHOICE|(empty)|Default printer setting
-DEFAULT|(empty)
-OPTION|DUPLEX|Duplex Printing|BOOLEAN
-CHOICE|true|Enabled
-CHOICE|false|Disabled
-DEFAULT|false
-OPTION|BINDING|Paper Binding Edge
-CHOICE|short|Short edge
-CHOICE|long|Long edge
-CHOICE|(empty)|Default printer setting
-DEFAULT|(empty)
-ENDGROUP|
-GROUP|text|File Conversion Settings
-OPTION|ASCII_HEADER|Text Header|BOOLEAN
-CHOICE|true|Enabled
-CHOICE|false|Disabled
-DEFAULT|false
-OPTION|ASCII_BORDER|Text Border|BOOLEAN
-CHOICE|true|Enabled
-CHOICE|false|Disabled
-DEFAULT|false
-OPTION|PRINT_DVI|DVI file converter|STRING
-ENDGROUP|
-GROUP|gs|Ghostscript Settings
-OPTION|GS_FEATURES|Ghostscript options|STRING
-OPTION|PS_INIT|Initialisation file|STRING
-OPTION|PS_EXIT|Cleanup file|STRING
-OPTION|POST_FILTER_OPTS|Post-Ghostscript filter options|STRING
-ENDGROUP|
-ENDGROUP|
diff --git a/kdeprint/lpr/apsdriver2 b/kdeprint/lpr/apsdriver2
deleted file mode 100644
index 69d355f6c..000000000
--- a/kdeprint/lpr/apsdriver2
+++ /dev/null
@@ -1,83 +0,0 @@
-GROUP|general|General
-OPTION|PageSize|Page Size
-CHOICE|a3|A3
-CHOICE|a4|A4
-CHOICE|legal|US Legal
-CHOICE|letter|US Letter
-CHOICE|ledger|Ledger
-CHOICE|tabloid|Tabloid
-DEFAULT|a4
-OPTION|MEDIA|Paper Type
-CHOICE|plain|Plain paper
-CHOICE|coated|Coated (InkJet) paper
-CHOICE|glossy|Glossy paper
-CHOICE|premium|Premium (Photo) paper
-CHOICE|trans|Transparencies
-CHOICE|(empty)|Default setting
-DEFAULT|(empty)
-OPTION|PAPERTRAY|Input Tray
-CHOICE|tray0|Tray 0
-CHOICE|tray1|Tray 1
-CHOICE|tray2|Tray 2
-CHOICE|tray3|Tray 3
-CHOICE|tray4|Tray 4
-CHOICE|tray5|Tray 5
-CHOICE|(empty)|Default setting
-DEFAULT|(empty)
-ENDGROUP|
-GROUP|others|Others
-OPTION|COLOR|Color Mode
-CHOICE|color|Color
-CHOICE|gray|Grayscale
-CHOICE|mono|Monochrome
-CHOICE|(empty)|Default setting
-DEFAULT|(empty)
-OPTION|DUPLEX|Duplex Printing
-CHOICE|duplex|Enabled
-CHOICE|simplex|Disabled
-CHOICE|(empty)|Default setting
-DEFAULT|(empty)
-OPTION|BINDING|Paper Binding Edge
-CHOICE|shortbind|Short edge
-CHOICE|longbind|Long edge
-CHOICE|(empty)|Default setting
-DEFAULT|(empty)
-OPTION|QUALITY|Printing Quality
-CHOICE|draft|Draft
-CHOICE|low|Low
-CHOICE|medium|Medium
-CHOICE|high|High
-CHOICE|photo|Photo
-CHOICE|(empty)|Default setting
-DEFAULT|(empty)
-OPTION|PS_NUP|Pages per Sheet
-CHOICE|1pps|1
-CHOICE|2pps|2
-CHOICE|4pps|4
-CHOICE|8pps|8
-DEFAULT|1pps
-OPTION|SWEEP|Communication Type
-CHOICE|uni|Unidirectional
-CHOICE|bi|Bidirectional
-CHOICE|(empty)|Default setting
-DEFAULT|(empty)
-ENDGROUP|
-GROUP|text|Text Printing
-OPTION|ASCII_FILTER|Text Converter
-CHOICE|a2ps|a2ps
-CHOICE|mpage|mpage
-CHOICE|enscript|enscript
-CHOICE|recode|recode
-CHOICE|(empty)|Default setting
-DEFAULT|(empty)
-OPTION|ASCII_HEADER|Header
-CHOICE|header|Enabled
-CHOICE|noheader|Disabled
-CHOICE|(empty)|Default setting
-DEFAULT|(empty)
-OPTION|ASCII_BORDER|Border
-CHOICE|border|Enabled
-CHOICE|noborder|Disabled
-CHOICE|(empty)|Default setting
-DEFAULT|(empty)
-ENDGROUP|
diff --git a/kdeprint/lpr/apshandler.cpp b/kdeprint/lpr/apshandler.cpp
deleted file mode 100644
index d4107d7c7..000000000
--- a/kdeprint/lpr/apshandler.cpp
+++ /dev/null
@@ -1,405 +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 "apshandler.h"
-#include "driver.h"
-#include "printcapentry.h"
-#include "kmprinter.h"
-#include "lprsettings.h"
-#include "kmmanager.h"
-#include "util.h"
-#include "kprinter.h"
-
-#include <tqfile.h>
-#include <tqdir.h>
-#include <tqtextstream.h>
-#include <tqvaluestack.h>
-#include <kstandarddirs.h>
-#include <klocale.h>
-#include <kdebug.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-ApsHandler::ApsHandler(KMManager *mgr)
-: LprHandler("apsfilter", mgr)
-{
- m_counter = 1;
-}
-
-bool ApsHandler::validate(PrintcapEntry *entry)
-{
- return (entry->field("if").right(9) == "apsfilter");
-}
-
-KMPrinter* ApsHandler::createPrinter(PrintcapEntry *entry)
-{
- entry->comment = TQString::tqfromLatin1("# APS%1_BEGIN:printer%2").arg(m_counter).arg(m_counter);
- entry->postcomment = TQString::tqfromLatin1("# APS%1_END - don't delete this").arg(m_counter);
- m_counter++;
- return LprHandler::createPrinter(entry);
-}
-
-bool ApsHandler::completePrinter(KMPrinter *prt, PrintcapEntry *entry, bool shortmode)
-{
- if (LprHandler::completePrinter(prt, entry, shortmode))
- {
- if (!shortmode)
- {
- TQMap<TQString,TQString> opts = loadResources(entry);
- if (opts.contains("PRINTER"))
- {
- prt->setDescription(i18n("APS Driver (%1)").arg(opts["PRINTER"]));
- prt->setDriverInfo(prt->description());
- }
- }
- if (prt->device().isEmpty())
- {
- TQString prot;
- TQString smbname(sysconfDir() + "/" + prt->printerName() + "/smbclient.conf");
- TQString ncpname(sysconfDir() + "/" + prt->printerName() + "/netware.conf");
- if (TQFile::exists(smbname))
- {
- TQMap<TQString,TQString> opts = loadVarFile(smbname);
- if (opts.count() == 0)
- prt->setDevice("smb://<unknown>/<unknown>");
- else
- {
- prt->setDevice(buildSmbURI(
- opts[ "SMB_WORKGROUP" ],
- opts[ "SMB_SERVER" ],
- opts[ "SMB_PRINTER" ],
- opts[ "SMB_USER" ],
- opts[ "SMB_PASSWD" ] ) );
- }
- prot = "smb";
- }
- else if (TQFile::exists(ncpname))
- {
- TQMap<TQString,TQString> opts = loadVarFile(ncpname);
- if (opts.count() == 0)
- prt->setDevice("ncp://<unknown>/<unknown>");
- else
- {
- TQString uri = buildSmbURI(
- TQString::null,
- opts[ "NCP_SERVER" ],
- opts[ "NCP_PRINTER" ],
- opts[ "NCP_USER" ],
- opts[ "NCP_PASSWD" ] );
- uri.replace( 0, 3, "ncp" );
- prt->setDevice(uri);
- }
- prot = "ncp";
- }
- if (!prt->device().isEmpty())
- prt->setLocation(i18n("Network printer (%1)").arg(prot));
- }
- return true;
- }
- return false;
-}
-
-TQString ApsHandler::sysconfDir()
-{
- return TQFile::encodeName("/etc/apsfilter");
-}
-
-TQString ApsHandler::shareDir()
-{
- return driverDirectory();
-}
-
-TQString ApsHandler::driverDirInternal()
-{
- return locateDir("apsfilter/setup", "/usr/share:/usr/local/share:/opt/share");
-}
-
-TQMap<TQString,TQString> ApsHandler::loadResources(PrintcapEntry *entry)
-{
- return loadVarFile(sysconfDir() + "/" + (entry ? entry->name : TQString::null) + "/apsfilterrc");
-}
-
-TQMap<TQString,TQString> ApsHandler::loadVarFile(const TQString& filename)
-{
- TQMap<TQString,TQString> opts;
- TQFile f(filename);
- if (f.open(IO_ReadOnly))
- {
- TQTextStream t(&f);
- TQString line;
- int p(-1);
- while (!t.atEnd())
- {
- line = t.readLine().stripWhiteSpace();
- if (line.isEmpty() || line[0] == '#' || (p = line.find('=')) == -1)
- continue;
- TQString variable = line.left(p).stripWhiteSpace();
- TQString value = line.mid(p+1).stripWhiteSpace();
- if (!value.isEmpty() && value[0] == '\'')
- value = value.mid(1, value.length()-2);
- opts[variable] = value;
- }
- }
- return opts;
-}
-
-DrMain* ApsHandler::loadDriver(KMPrinter *prt, PrintcapEntry *entry, bool config)
-{
- DrMain *driver = loadApsDriver(config);
- if (driver /* && config */ ) // Load resources in all case, to get the correct page size
- {
- TQMap<TQString,TQString> opts = loadResources(entry);
- if ( !config && opts.contains( "PAPERSIZE" ) )
- {
- // this is needed to keep applications informed
- // about the current selected page size
- opts[ "PageSize" ] = opts[ "PAPERSIZE" ];
-
- // default page size needs to be set to the actual
- // value of the printer driver, otherwise it's blocked
- // to A4
- DrBase *opt = driver->findOption( "PageSize" );
- if ( opt )
- opt->set( "default", opts[ "PageSize" ] );
- }
- driver->setOptions(opts);
- driver->set("gsdriver", opts["PRINTER"]);
- }
- return driver;
-}
-
-DrMain* ApsHandler::loadDbDriver(const TQString& s)
-{
- int p = s.find('/');
- DrMain *driver = loadApsDriver(true);
- if (driver)
- driver->set("gsdriver", s.mid(p+1));
- return driver;
-}
-
-DrMain* ApsHandler::loadApsDriver(bool config)
-{
- DrMain *driver = loadToolDriver(locate("data", (config ? "tdeprint/apsdriver1" : "tdeprint/apsdriver2")));
- if (driver)
- driver->set("text", "APS Common Driver");
- return driver;
-}
-
-void ApsHandler::reset()
-{
- m_counter = 1;
-}
-
-PrintcapEntry* ApsHandler::createEntry(KMPrinter *prt)
-{
- TQString prot = prt->deviceProtocol();
- if (prot != "parallel" && prot != "lpd" && prot != "smb" && prot != "ncp")
- {
- manager()->setErrorMsg(i18n("Unsupported backend: %1.").arg(prot));
- return NULL;
- }
- TQString path = sysconfDir() + "/" + prt->printerName();
- if (!KStandardDirs::makeDir(path, 0755))
- {
- manager()->setErrorMsg(i18n("Unable to create directory %1.").arg(path));
- return NULL;
- }
- if (prot == "smb" || prot == "ncp")
- {
- // either "smb" or "ncp"
- TQFile::remove(path + "/smbclient.conf");
- TQFile::remove(path + "/netware.conf");
- TQFile f;
- if (prot == "smb")
- {
- f.setName(path + "/smbclient.conf");
- if (f.open(IO_WriteOnly))
- {
- TQTextStream t(&f);
- TQString work, server, printer, user, passwd;
- if ( splitSmbURI( prt->device(), work, server, printer, user, passwd ) )
- {
- if (work.isEmpty())
- {
- manager()->setErrorMsg(i18n("Missing element: %1.").arg("Workgroup"));
- return NULL;
- }
- t << "SMB_SERVER='" << server << "'" << endl;
- t << "SMB_PRINTER='" << printer << "'" << endl;
- t << "SMB_IP=''" << endl;
- t << "SMB_WORKGROUP='" << work << "'" << endl;
- t << "SMB_BUFFER=1400" << endl;
- t << "SMB_FLAGS='-N'" << endl;
- if (!user.isEmpty())
- {
- t << "SMB_USER='" << user << "'" << endl;
- t << "SMB_PASSWD='" << passwd << "'" << endl;
- }
- }
- else
- {
- manager()->setErrorMsg( i18n( "Invalid printer backend specification: %1" ).arg( prt->device() ) );
- return NULL;
- }
- }
- else
- {
- manager()->setErrorMsg(i18n("Unable to create the file %1.").arg(f.name()));
- return NULL;
- }
- }
- else
- {
- f.setName(path + "/netware.conf");
- if (f.open(IO_WriteOnly))
- {
- TQString work, server, printer, user, passwd;
- TQString uri = prt->device();
- uri.replace( 0, 3, "smb" );
- if ( splitSmbURI( uri, work, server, printer, user, passwd ) )
- {
- TQTextStream t(&f);
- t << "NCP_SERVER='" << server << "'" << endl;
- t << "NCP_PRINTER='" << printer << "'" << endl;
- if (!user.isEmpty())
- {
- t << "NCP_USER='" << user << "'" << endl;
- t << "NCP_PASSWD='" << passwd << "'" << endl;
- }
- }
- else
- {
- manager()->setErrorMsg( i18n( "Invalid printer backend specification: %1" ).arg( prt->device() ) );
- return NULL;
- }
- }
- else
- {
- manager()->setErrorMsg(i18n("Unable to create the file %1.").arg(f.name()));
- return NULL;
- }
- }
- // change file permissions
- ::chmod(TQFile::encodeName(f.name()).data(), S_IRUSR|S_IWUSR);
- }
- PrintcapEntry *entry = LprHandler::createEntry(prt);
- if (!entry)
- {
- entry = new PrintcapEntry;
- entry->addField("lp", Field::String, "/dev/null");
- }
- TQString sd = LprSettings::self()->baseSpoolDir() + "/" + prt->printerName();
- entry->addField("af", Field::String, sd + "/acct");
- entry->addField("lf", Field::String, sd + "/log");
- entry->addField("if", Field::String, sysconfDir() + "/basedir/bin/apsfilter");
- entry->comment = TQString::tqfromLatin1("# APS%1_BEGIN:printer%2").arg(m_counter).arg(m_counter);
- entry->postcomment = TQString::tqfromLatin1("# APS%1_END").arg(m_counter);
- m_counter++;
- return entry;
-}
-
-bool ApsHandler::savePrinterDriver(KMPrinter *prt, PrintcapEntry *entry, DrMain *driver, bool*)
-{
- if (driver->get("gsdriver").isEmpty())
- {
- manager()->setErrorMsg(i18n("The APS driver is not defined."));
- return false;
- }
- TQFile f(sysconfDir() + "/" + prt->printerName() + "/apsfilterrc");
- if (f.open(IO_WriteOnly))
- {
- TQTextStream t(&f);
- t << "# File generated by KDEPrint" << endl;
- t << "PRINTER='" << driver->get("gsdriver") << "'" << endl;
- TQValueStack<DrGroup*> stack;
- stack.push(driver);
- while (stack.count() > 0)
- {
- DrGroup *grp = stack.pop();
- TQPtrListIterator<DrGroup> git(grp->groups());
- for (; git.current(); ++git)
- stack.push(git.current());
- TQPtrListIterator<DrBase> oit(grp->options());
- TQString value;
- for (; oit.current(); ++oit)
- {
- value = oit.current()->valueText();
- switch (oit.current()->type())
- {
- case DrBase::Boolean:
- if (value == "true")
- t << oit.current()->name() << "='" << value << "'" << endl;
- break;
- case DrBase::List:
- if (value != "(empty)")
- t << oit.current()->name() << "='" << value << "'" << endl;
- break;
- case DrBase::String:
- if (!value.isEmpty())
- t << oit.current()->name() << "='" << value << "'" << endl;
- break;
- default:
- break;
- }
- }
- }
- return true;
- }
- else
- {
- manager()->setErrorMsg(i18n("Unable to create the file %1.").arg(f.name()));
- return false;
- }
-}
-
-bool ApsHandler::removePrinter(KMPrinter*, PrintcapEntry *entry)
-{
- TQString path(sysconfDir() + "/" + entry->name);
- TQFile::remove(path + "/smbclient.conf");
- TQFile::remove(path + "/netware.conf");
- TQFile::remove(path + "/apsfilterrc");
- if (!TQDir(path).rmdir(path))
- {
- manager()->setErrorMsg(i18n("Unable to remove directory %1.").arg(path));
- return false;
- }
- return true;
-}
-
-TQString ApsHandler::printOptions(KPrinter *printer)
-{
- TQString optstr;
- TQMap<TQString,TQString> opts = printer->options();
- for (TQMap<TQString,TQString>::ConstIterator it=opts.begin(); it!=opts.end(); ++it)
- {
- if (it.key().startsWith("kde-") || it.key().startsWith("_kde-") || it.key().startsWith( "app-" ))
- continue;
- optstr.append((*it)).append(":");
- }
- if (!optstr.isEmpty())
- {
- optstr = optstr.left(optstr.length()-1);
- if (LprSettings::self()->mode() == LprSettings::LPR)
- optstr.prepend("-C '").append("'");
- else
- optstr.prepend("-Z '").append("'");
- }
- return optstr;
-}
diff --git a/kdeprint/lpr/apshandler.h b/kdeprint/lpr/apshandler.h
deleted file mode 100644
index db213d194..000000000
--- a/kdeprint/lpr/apshandler.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 APSHANDLER_H
-#define APSHANDLER_H
-
-#include "lprhandler.h"
-
-#include <tqmap.h>
-
-class ApsHandler : public LprHandler
-{
-public:
- ApsHandler(KMManager*);
-
- bool validate(PrintcapEntry*);
- KMPrinter* createPrinter(PrintcapEntry*);
- bool completePrinter(KMPrinter*, PrintcapEntry*, bool = true);
- DrMain* loadDriver(KMPrinter*, PrintcapEntry*, bool = false);
- DrMain* loadDbDriver(const TQString&);
- void reset();
- PrintcapEntry* createEntry(KMPrinter*);
- bool savePrinterDriver(KMPrinter*, PrintcapEntry*, DrMain*, bool* = 0);
- bool removePrinter(KMPrinter*, PrintcapEntry*);
- TQString printOptions(KPrinter*);
-
-protected:
- TQString driverDirInternal();
-
-private:
- TQMap<TQString,TQString> loadResources(PrintcapEntry*);
- TQMap<TQString,TQString> loadVarFile(const TQString&);
- TQString sysconfDir();
- TQString shareDir();
- DrMain* loadApsDriver(bool = false);
-
-private:
- int m_counter;
-};
-
-#endif
diff --git a/kdeprint/lpr/editentrydialog.cpp b/kdeprint/lpr/editentrydialog.cpp
deleted file mode 100644
index 6c4ecc30c..000000000
--- a/kdeprint/lpr/editentrydialog.cpp
+++ /dev/null
@@ -1,157 +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 "editentrydialog.h"
-
-#include <tqlineedit.h>
-#include <tqcheckbox.h>
-#include <tqspinbox.h>
-#include <tqcombobox.h>
-#include <tqlabel.h>
-#include <tqheader.h>
-#include <klistview.h>
-#include <tqlayout.h>
-#include <tqwidgetstack.h>
-#include <klocale.h>
-#include <kiconloader.h>
-
-EditEntryDialog::EditEntryDialog(PrintcapEntry *entry, TQWidget *parent, const char *name)
-: KDialogBase(parent, name, true, TQString::null, Ok|Cancel)
-{
- TQWidget *w = new TQWidget(this);
- setMainWidget(w);
-
- TQLabel *lab0 = new TQLabel(i18n("Aliases:"), w);
- m_aliases = new TQLineEdit(w);
- m_view = new KListView(w);
- m_view->addColumn("");
- m_view->header()->hide();
- m_type = new TQComboBox(w);
- m_type->insertItem(i18n("String"));
- m_type->insertItem(i18n("Number"));
- m_type->insertItem(i18n("Boolean"));
- m_stack = new TQWidgetStack(w);
- m_boolean = new TQCheckBox(i18n("Enabled"), m_stack);
- m_string = new TQLineEdit(m_stack);
- m_number = new TQSpinBox(0, 9999, 1, m_stack);
- m_stack->addWidget(m_string, 0);
- m_stack->addWidget(m_boolean, 2);
- m_stack->addWidget(m_number, 1);
- m_name = new TQLineEdit(w);
-
- TQVBoxLayout *l0 = new TQVBoxLayout(w, 0, 10);
- TQHBoxLayout *l1 = new TQHBoxLayout(0, 0, 10);
- TQHBoxLayout *l2 = new TQHBoxLayout(0, 0, 5);
- l0->addLayout(l1);
- l1->addWidget(lab0);
- l1->addWidget(m_aliases);
- l0->addWidget(m_view);
- l0->addLayout(l2);
- l2->addWidget(m_name, 0);
- l2->addWidget(m_type, 0);
- l2->addWidget(m_stack, 1);
-
- if (entry)
- {
- setCaption(i18n("Printcap Entry: %1").arg(entry->name));
- m_fields = entry->fields;
- m_aliases->setText(entry->aliases.join("|"));
- TQListViewItem *root = new TQListViewItem(m_view, entry->name), *item = 0;
- root->setSelectable(false);
- root->setOpen(true);
- root->setPixmap(0, SmallIcon("fileprint"));
- for (TQMap<TQString,Field>::ConstIterator it=m_fields.begin(); it!=m_fields.end(); ++it)
- item = new TQListViewItem(root, item, (*it).toString(), it.key());
- }
-
- m_block = true;
- enableButton(Ok, false);
- slotItemSelected(NULL);
- slotTypeChanged(0);
- m_block = false;
-
- connect(m_view, TQT_SIGNAL(selectionChanged(TQListViewItem*)), TQT_SLOT(slotItemSelected(TQListViewItem*)));
- connect(m_string, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(slotChanged()));
- connect(m_boolean, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotChanged()));
- connect(m_number, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotChanged()));
- connect(m_type, TQT_SIGNAL(activated(int)), TQT_SLOT(slotTypeChanged(int)));
- connect(m_name, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(slotChanged()));
-
- resize(500,400);
-}
-
-Field EditEntryDialog::createField()
-{
- Field f;
- f.name = m_name->text();
- f.type = (Field::Type)(m_type->currentItem());
- switch (f.type)
- {
- case Field::String: f.value = m_string->text(); break;
- case Field::Integer: f.value = m_number->cleanText(); break;
- case Field::Boolean: f.value = (m_boolean->isChecked() ? "1" : "0"); break;
- }
- return f;
-}
-
-void EditEntryDialog::slotChanged()
-{
- if (!m_block && m_view->currentItem())
- {
- Field f = createField();
- if (f.name != m_current)
- m_fields.remove(m_current);
- m_fields[f.name] = f;
- m_view->currentItem()->setText(0, f.toString());
- }
-}
-
-void EditEntryDialog::slotItemSelected(TQListViewItem *item)
-{
- m_stack->setEnabled(item);
- m_name->setEnabled(item);
- m_type->setEnabled(item);
- if (item)
- {
- m_block = true;
- m_current = item->text(1);
- Field f = m_fields[m_current];
- m_name->setText(f.name);
- m_type->setCurrentItem(f.type);
- slotTypeChanged(f.type);
- m_string->setText(f.value);
- m_number->setValue(f.value.toInt());
- m_boolean->setChecked(f.value.toInt() == 1);
- m_block = false;
- }
-}
-
-void EditEntryDialog::fillEntry(PrintcapEntry *entry)
-{
- entry->aliases = TQStringList::split('|', m_aliases->text(), false);
- entry->fields = m_fields;
-}
-
-void EditEntryDialog::slotTypeChanged(int ID)
-{
- m_stack->raiseWidget(ID);
- slotChanged();
-}
-
-#include "editentrydialog.moc"
diff --git a/kdeprint/lpr/editentrydialog.h b/kdeprint/lpr/editentrydialog.h
deleted file mode 100644
index f4359dd89..000000000
--- a/kdeprint/lpr/editentrydialog.h
+++ /dev/null
@@ -1,62 +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 EDITENTRYDIALOG_H
-#define EDITENTRYDIALOG_H
-
-#include <kdialogbase.h>
-#include "printcapentry.h"
-
-class TQLineEdit;
-class TQCheckBox;
-class TQSpinBox;
-class TQComboBox;
-class TQListView;
-class TQListviewItem;
-class TQWidgetStack;
-
-class EditEntryDialog : public KDialogBase
-{
- Q_OBJECT
-public:
- EditEntryDialog(PrintcapEntry *entry, TQWidget *parent = 0, const char *name = 0);
-
- void fillEntry(PrintcapEntry *entry);
-
-protected slots:
- void slotItemSelected(TQListViewItem*);
- void slotChanged();
- void slotTypeChanged(int);
-
-protected:
- Field createField();
-
-private:
- TQMap<TQString,Field> m_fields;
- TQLineEdit *m_name, *m_string, *m_aliases;
- TQCheckBox *m_boolean;
- TQComboBox *m_type;
- TQSpinBox *m_number;
- TQListView *m_view;
- TQWidgetStack *m_stack;
- TQString m_current;
- bool m_block;
-};
-
-#endif
diff --git a/kdeprint/lpr/klprfactory.cpp b/kdeprint/lpr/klprfactory.cpp
deleted file mode 100644
index 4764dfc6a..000000000
--- a/kdeprint/lpr/klprfactory.cpp
+++ /dev/null
@@ -1,29 +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 "kmlprmanager.h"
-#include "kmlpruimanager.h"
-#include "kmlprjobmanager.h"
-#include "klprprinterimpl.h"
-
-#include <kgenericfactory.h>
-
-typedef K_TYPELIST_4( KMLprManager, KMLprUiManager, KMLprJobManager, KLprPrinterImpl ) Products;
-K_EXPORT_COMPONENT_FACTORY( tdeprint_lpr, KGenericFactory< Products > )
-
diff --git a/kdeprint/lpr/klprprinterimpl.cpp b/kdeprint/lpr/klprprinterimpl.cpp
deleted file mode 100644
index 70356f23c..000000000
--- a/kdeprint/lpr/klprprinterimpl.cpp
+++ /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.
- **/
-
-#include "klprprinterimpl.h"
-#include "kprinter.h"
-#include "kmlprmanager.h"
-
-#include <kstandarddirs.h>
-#include <tqfile.h>
-#include <stdlib.h>
-
-KLprPrinterImpl::KLprPrinterImpl(TQObject *parent, const char *name, const TQStringList & /*args*/)
-: KPrinterImpl(parent,name)
-{
- m_exepath = KStandardDirs::findExe("lpr");
-}
-
-KLprPrinterImpl::~KLprPrinterImpl()
-{
-}
-
-bool KLprPrinterImpl::setupCommand(TQString& cmd, KPrinter *printer)
-{
- // check printer object
- if (!printer || m_exepath.isEmpty())
- return false;
-
- cmd = TQString::tqfromLatin1("%1 -P %1 '-#%1'").arg(m_exepath).arg(quote(printer->printerName())).arg( printer->numCopies() );
- QString opts = static_cast<KMLprManager*>(KMManager::self())->printOptions(printer);
- if (!opts.isEmpty())
- cmd += (" " + opts);
- return true;
-}
-
-void KLprPrinterImpl::broadcastOption(const TQString& key, const TQString& value)
-{
- KPrinterImpl::broadcastOption(key,value);
- if (key == "kde-pagesize")
- {
- QString pagename = TQString::tqfromLatin1(pageSizeToPageName((KPrinter::PageSize)value.toInt()));
- KPrinterImpl::broadcastOption("PageSize",pagename);
- }
-}
diff --git a/kdeprint/lpr/klprprinterimpl.h b/kdeprint/lpr/klprprinterimpl.h
deleted file mode 100644
index 508173f1d..000000000
--- a/kdeprint/lpr/klprprinterimpl.h
+++ /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.
- **/
-
-#ifndef KLPRPRINTERIMPL_H
-#define KLPRPRINTERIMPL_H
-
-#include "kprinterimpl.h"
-
-class KLprPrinterImpl : public KPrinterImpl
-{
-public:
- KLprPrinterImpl(TQObject *parent, const char *name, const TQStringList & /*args*/);
- ~KLprPrinterImpl();
-
- bool setupCommand(TQString&, KPrinter*);
- void broadcastOption(const TQString& key, const TQString& value);
-
-private:
- QString m_exepath;
-};
-
-#endif
diff --git a/kdeprint/lpr/kmconfiglpr.cpp b/kdeprint/lpr/kmconfiglpr.cpp
deleted file mode 100644
index f43a8da2d..000000000
--- a/kdeprint/lpr/kmconfiglpr.cpp
+++ /dev/null
@@ -1,66 +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 "kmconfiglpr.h"
-#include "lprsettings.h"
-
-#include <tqcombobox.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqgroupbox.h>
-#include <klocale.h>
-#include <kconfig.h>
-
-KMConfigLpr::KMConfigLpr(TQWidget *parent, const char *name)
-: KMConfigPage(parent, name)
-{
- setPageName(i18n("Spooler"));
- setPageHeader(i18n("Spooler Settings"));
- setPagePixmap("gear");
-
- TQGroupBox *m_modebox = new TQGroupBox(1, Qt::Vertical, i18n("Spooler"), this);
-
- m_mode = new TQComboBox(m_modebox);
- m_mode->insertItem("LPR (BSD compatible)");
- m_mode->insertItem("LPRng");
-
- TQVBoxLayout *l0 = new TQVBoxLayout(this, 5, 10);
- l0->addWidget(m_modebox);
- l0->addStretch(1);
-}
-
-void KMConfigLpr::loadConfig(KConfig*)
-{
- m_mode->setCurrentItem(LprSettings::self()->mode());
-}
-
-void KMConfigLpr::saveConfig(KConfig *conf)
-{
- LprSettings::self()->setMode((LprSettings::Mode)(m_mode->currentItem()));
-
- TQString modestr;
- switch (m_mode->currentItem())
- {
- default:
- case 0: modestr = "LPR"; break;
- case 1: modestr = "LPRng"; break;
- }
- conf->setGroup("LPR");
- conf->writeEntry("Mode", modestr);
-}
diff --git a/kdeprint/lpr/kmconfiglpr.h b/kdeprint/lpr/kmconfiglpr.h
deleted file mode 100644
index 7f3d50857..000000000
--- a/kdeprint/lpr/kmconfiglpr.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 KMCONFIGLPR_H
-#define KMCONFIGLPR_H
-
-#include "kmconfigpage.h"
-
-class TQComboBox;
-
-class KMConfigLpr : public KMConfigPage
-{
-public:
- KMConfigLpr(TQWidget *parent = 0, const char *name = 0);
-
- void loadConfig(KConfig*);
- void saveConfig(KConfig*);
-
-private:
- TQComboBox *m_mode;
-};
-
-#endif
diff --git a/kdeprint/lpr/kmlprjobmanager.cpp b/kdeprint/lpr/kmlprjobmanager.cpp
deleted file mode 100644
index 851663664..000000000
--- a/kdeprint/lpr/kmlprjobmanager.cpp
+++ /dev/null
@@ -1,90 +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 "kmlprjobmanager.h"
-#include "kmlprmanager.h"
-#include "lpqhelper.h"
-#include "lpchelper.h"
-#include "kmjob.h"
-#include "lprsettings.h"
-
-#include <tqptrlist.h>
-#include <klocale.h>
-
-KMLprJobManager::KMLprJobManager(TQObject *parent, const char *name, const TQStringList & /*args*/)
-: KMJobManager(parent, name)
-{
- m_lpqhelper = new LpqHelper(this, "LpqHelper");
-}
-
-bool KMLprJobManager::listJobs(const TQString& prname, JobType, int limit)
-{
- TQPtrList<KMJob> jobList;
- jobList.setAutoDelete(false);
- m_lpqhelper->listJobs(jobList, prname, limit);
- TQPtrListIterator<KMJob> it(jobList);
- for (; it.current(); ++it)
- addJob(it.current());
- return false;
-}
-
-LpcHelper* KMLprJobManager::lpcHelper()
-{
- return static_cast<KMLprManager*>(KMManager::self())->lpcHelper();
-}
-
-int KMLprJobManager::actions()
-{
- if (LprSettings::self()->mode() == LprSettings::LPR)
- return KMJob::Remove;
- else
- // some additional actions to be added here
- return (KMJob::Remove | KMJob::Hold | KMJob::Resume);
-}
-
-bool KMLprJobManager::sendCommandSystemJob(const TQPtrList<KMJob>& jobs, int action, const TQString& arg)
-{
- TQString msg;
- TQPtrListIterator<KMJob> it(jobs);
- bool status(true);
- LpcHelper *helper = lpcHelper();
-
- for (; it.current() && status; ++it)
- {
- switch (action)
- {
- case KMJob::Remove:
- status = helper->removeJob(it.current(), msg);
- break;
- case KMJob::Hold:
- status = helper->changeJobState(it.current(), KMJob::Held, msg);
- break;
- case KMJob::Resume:
- status = helper->changeJobState(it.current(), KMJob::Queued, msg);
- break;
- default:
- status = false;
- msg = i18n("Unsupported operation.");
- break;
- }
- }
- if (!status && !msg.isEmpty())
- KMManager::self()->setErrorMsg(msg);
- return status;
-}
diff --git a/kdeprint/lpr/kmlprjobmanager.h b/kdeprint/lpr/kmlprjobmanager.h
deleted file mode 100644
index d9a8eae3f..000000000
--- a/kdeprint/lpr/kmlprjobmanager.h
+++ /dev/null
@@ -1,44 +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 KMLPRJOBMANAGER_H
-#define KMLPRJOBMANAGER_H
-
-#include "kmjobmanager.h"
-
-class LpqHelper;
-class LpcHelper;
-
-class KMLprJobManager : public KMJobManager
-{
-public:
- KMLprJobManager(TQObject *parent, const char *name, const TQStringList & /*args*/);
-
- int actions();
-
-protected:
- bool listJobs(const TQString&, JobType, int = 0);
- LpcHelper* lpcHelper();
- bool sendCommandSystemJob(const TQPtrList<KMJob>&, int, const TQString& = TQString::null);
-
-private:
- LpqHelper *m_lpqhelper;
-};
-
-#endif
diff --git a/kdeprint/lpr/kmlprmanager.cpp b/kdeprint/lpr/kmlprmanager.cpp
deleted file mode 100644
index cf4dbbb94..000000000
--- a/kdeprint/lpr/kmlprmanager.cpp
+++ /dev/null
@@ -1,492 +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 "kmlprmanager.h"
-#include "printcapreader.h"
-#include "printcapentry.h"
-#include "lpchelper.h"
-#include "matichandler.h"
-#include "apshandler.h"
-#include "lprngtoolhandler.h"
-#include "lprsettings.h"
-#include "driver.h"
-#include "editentrydialog.h"
-
-#include <tqfileinfo.h>
-#include <tqptrlist.h>
-#include <klocale.h>
-#include <kstandarddirs.h>
-#include <kdebug.h>
-#include <kprinter.h>
-#include <kprocess.h>
-#include <kaction.h>
-#include <kmessagebox.h>
-#include <klibloader.h>
-
-#include <stdlib.h>
-#include <unistd.h>
-
-KMLprManager::KMLprManager(TQObject *parent, const char *name, const TQStringList & /*args*/)
-: KMManager(parent,name)
-{
- m_handlers.setAutoDelete(true);
- m_handlerlist.setAutoDelete(false);
- m_entries.setAutoDelete(true);
-
- m_lpchelper = new LpcHelper(this);
- m_currentprinter = 0;
-
- setHasManagement(getuid() == 0);
- setPrinterOperationMask(
- KMManager::PrinterEnabling |
- KMManager::PrinterConfigure |
- KMManager::PrinterTesting |
- KMManager::PrinterCreation |
- KMManager::PrinterRemoval |
- KMManager::PrinterTesting
- );
-
- initHandlers();
-}
-
-void KMLprManager::listPrinters()
-{
- TQFileInfo fi(LprSettings::self()->printcapFile());
-
- if (m_lpchelper)
- m_lpchelper->updateStates();
-
- // update only if needed
- if (!m_updtime.isValid() || m_updtime < fi.lastModified())
- {
- // cleanup previous entries
- m_entries.clear();
- // notify handlers
- TQPtrListIterator<LprHandler> hit(m_handlerlist);
- for (; hit.current(); ++hit)
- hit.current()->reset();
-
- // try to open the printcap file and parse it
- PrintcapReader reader;
- TQFile f(fi.absFilePath());
- PrintcapEntry *entry;
- if (f.exists() && f.open(IO_ReadOnly))
- {
- reader.setPrintcapFile(&f);
- while ((entry = reader.nextEntry()) != NULL)
- {
- TQPtrListIterator<LprHandler> it(m_handlerlist);
- for (; it.current(); ++it)
- if (it.current()->validate(entry))
- {
- KMPrinter *prt = it.current()->createPrinter(entry);
- checkPrinterState(prt);
- prt->setOption("kde-lpr-handler", it.current()->name());
- addPrinter(prt);
- break;
- }
- m_entries.insert(entry->name, entry);
- }
- }
-
- // save update time
- m_updtime = fi.lastModified();
- }
- else
- {
- TQPtrListIterator<KMPrinter> it(m_printers);
- for (; it.current(); ++it)
- if (!it.current()->isSpecial())
- {
- it.current()->setDiscarded(false);
- checkPrinterState(it.current());
- }
- }
-}
-
-void KMLprManager::insertHandler(LprHandler *handler)
-{
- m_handlers.insert(handler->name(), handler);
- m_handlerlist.append(handler);
- kdDebug() << "Handler: " << handler->name() << endl;
-}
-
-void KMLprManager::initHandlers()
-{
- m_handlers.clear();
- m_handlerlist.clear();
-
- insertHandler(new MaticHandler(this));
- insertHandler(new ApsHandler(this));
- insertHandler(new LPRngToolHandler(this));
-
- // now load external handlers
- TQStringList l = KGlobal::dirs()->findAllResources("data", "tdeprint/lpr/*.la");
- for (TQStringList::ConstIterator it=l.begin(); it!=l.end(); ++it)
- {
- KLibrary *library = KLibLoader::self()->library(TQFile::encodeName(*it));
- if (library)
- {
- kdDebug() << "loading external handler from " << *it << endl;
- LprHandler*(*func)(KMManager*) = (LprHandler*(*)(KMManager*))(library->symbol("create_handler"));
- if (func)
- insertHandler(func(this));
- else
- kdDebug() << "couldn't find the symbol 'create_handler'" << endl;
- }
- }
-
- // default handler
- insertHandler(new LprHandler("default", this));
-}
-
-LprHandler* KMLprManager::findHandler(KMPrinter *prt)
-{
- TQString handlerstr(prt->option("kde-lpr-handler"));
- LprHandler *handler(0);
- if (handlerstr.isEmpty() || (handler = m_handlers.find(handlerstr)) == NULL)
- {
- return NULL;
- }
- return handler;
-}
-
-PrintcapEntry* KMLprManager::findEntry(KMPrinter *prt)
-{
- PrintcapEntry *entry = m_entries.find(prt->printerName());
- if (!entry)
- {
- return NULL;
- }
- return entry;
-}
-
-bool KMLprManager::completePrinter(KMPrinter *prt)
-{
- LprHandler *handler = findHandler(prt);
- PrintcapEntry *entry = findEntry(prt);
- if (handler && entry)
- return handler->completePrinter(prt, entry, false);
- return false;
-}
-
-bool KMLprManager::completePrinterShort(KMPrinter *prt)
-{
- LprHandler *handler = findHandler(prt);
- PrintcapEntry *entry = findEntry(prt);
- if (!handler || !entry)
- return false;
-
- return handler->completePrinter(prt, entry, true);
-}
-
-void KMLprManager::checkPrinterState(KMPrinter *prt)
-{
- if (m_lpchelper)
- {
- KMPrinter::PrinterState st = m_lpchelper->state(prt);
- prt->setState(st);
- prt->setAcceptJobs(!(st & KMPrinter::Rejecting));
- }
- else
- {
- prt->setState(KMPrinter::Idle);
- prt->setAcceptJobs(true);
- }
-}
-
-DrMain* KMLprManager::loadPrinterDriver(KMPrinter *prt, bool config)
-{
- if (!prt)
- return NULL;
-
- LprHandler *handler = findHandler(prt);
- PrintcapEntry *entry = findEntry(prt);
- if (handler && entry)
- {
- DrMain *driver = handler->loadDriver(prt, entry, config);
- if (driver)
- driver->set("handler", handler->name());
- return driver;
- }
- return NULL;
-}
-
-DrMain* KMLprManager::loadFileDriver(const TQString& filename)
-{
- int p = filename.find('/');
- TQString handler_str = (p != -1 ? filename.left(p) : TQString::tqfromLatin1("default"));
- LprHandler *handler = m_handlers.find(handler_str);
- if (handler)
- {
- DrMain *driver = handler->loadDbDriver(filename);
- if (driver)
- driver->set("handler", handler->name());
- return driver;
- }
- return NULL;
-}
-
-bool KMLprManager::enablePrinter(KMPrinter *prt, bool state)
-{
- TQString msg;
- if (!m_lpchelper->enable(prt, state, msg))
- {
- setErrorMsg(msg);
- return false;
- }
- return true;
-}
-
-bool KMLprManager::startPrinter(KMPrinter *prt, bool state)
-{
- TQString msg;
- if (!m_lpchelper->start(prt, state, msg))
- {
- setErrorMsg(msg);
- return false;
- }
- return true;
-}
-
-bool KMLprManager::savePrinterDriver(KMPrinter *prt, DrMain *driver)
-{
- LprHandler *handler = findHandler(prt);
- PrintcapEntry *entry = findEntry(prt);
- if (handler && entry)
- {
- bool mustSave(false);
- if (handler->savePrinterDriver(prt, entry, driver, &mustSave))
- {
- if (mustSave)
- return savePrintcapFile();
- return true;
- }
- }
- return false;
-}
-
-bool KMLprManager::savePrintcapFile()
-{
- if (!LprSettings::self()->isLocalPrintcap())
- {
- setErrorMsg(i18n("The printcap file is a remote file (NIS). It cannot be written."));
- return false;
- }
- TQFile f(LprSettings::self()->printcapFile());
- if (f.open(IO_WriteOnly))
- {
- TQTextStream t(&f);
- TQDictIterator<PrintcapEntry> it(m_entries);
- for (; it.current(); ++it)
- {
- it.current()->writeEntry(t);
- }
- return true;
- }
- else
- {
- setErrorMsg(i18n("Unable to save printcap file. Check that "
- "you have write permissions for that file."));
- return false;
- }
-}
-
-bool KMLprManager::createPrinter(KMPrinter *prt)
-{
- // remove existing printcap entry
- PrintcapEntry *oldEntry = m_entries.find(prt->printerName());
-
- // look for the handler and re-create entry
- LprHandler *handler(0);
- // To look for the handler, either we base ourselves
- // on the driver (1: new printer, 2: modifying driver)
- // or we use the handler of the existing printer
- // (modifying something else, handler stays the same)
- if (prt->driver())
- handler = m_handlers.find(prt->driver()->get("handler"));
- else if (oldEntry)
- handler = findHandler(prt);
- else
- handler = m_handlers.find("default");
- if (!handler)
- {
- setErrorMsg(i18n("Internal error: no handler defined."));
- return false;
- }
- prt->setOption("kde-lpr-handler", handler->name());
-
- // we reload the driver if the printer object doesn't have one
- // and there's an old entry (sometimes needed to keep the backend
- // like in Foomatic)
- if (!prt->driver() && oldEntry)
- prt->setDriver(handler->loadDriver(prt, oldEntry, true));
-
- TQString sd = LprSettings::self()->baseSpoolDir();
- if (sd.isEmpty())
- {
- setErrorMsg(i18n("Couldn't determine spool directory. See options dialog."));
- return false;
- }
- sd.append("/").append(prt->printerName());
- if (!KStandardDirs::makeDir(sd, 0755))
- {
- setErrorMsg(i18n("Unable to create the spool directory %1. Check that you "
- "have the required permissions for that operation.").arg(sd));
- return false;
- }
- PrintcapEntry *entry = handler->createEntry(prt);
- if (!entry)
- return false; // error should be set in the handler
- // old entry can be removed now
- m_entries.remove(prt->printerName());
- entry->name = prt->printerName();
- entry->addField("sh", Field::Boolean);
- entry->addField("mx", Field::Integer, "0");
- entry->addField("sd", Field::String, sd);
- if (!prt->option("kde-aliases").isEmpty())
- entry->aliases += TQStringList::split("|", prt->option("kde-aliases"), false);
-
- // insert the new entry and save printcap file
- m_entries.insert(prt->printerName(), entry);
- bool result = savePrintcapFile();
- if (result)
- {
- if (prt->driver())
- {
- result = handler->savePrinterDriver(prt, entry, prt->driver());
- }
-
- // in case of LPRng, we need to tell the daemon about new printer
- if (LprSettings::self()->mode() == LprSettings::LPRng)
- {
- TQString msg;
- if (!m_lpchelper->restart(msg))
- {
- setErrorMsg(i18n("The printer has been created but the print daemon "
- "could not be restarted. %1").arg(msg));
- return false;
- }
- }
- }
- return result;
-}
-
-bool KMLprManager::removePrinter(KMPrinter *prt)
-{
- LprHandler *handler = findHandler(prt);
- PrintcapEntry *entry = findEntry(prt);
- if (handler && entry)
- {
- if (handler->removePrinter(prt, entry))
- {
- TQString sd = entry->field("sd");
- // first try to save the printcap file, and if
- // successful, remove the spool directory
- m_entries.take(prt->printerName());
- bool status = savePrintcapFile();
- if (status)
- {
- // printcap file saved, entry can be deleted now
- delete entry;
- status = (::system(TQFile::encodeName("rm -rf " + KProcess::quote(sd))) == 0);
- if (!status)
- setErrorMsg(i18n("Unable to remove spool directory %1. "
- "Check that you have write permissions "
- "for that directory.").arg(sd));
- return status;
- }
- else
- // push back the non-removed entry
- m_entries.insert(prt->printerName(), entry);
- }
- }
- return false;
-}
-
-TQString KMLprManager::driverDbCreationProgram()
-{
- return TQString::tqfromLatin1("make_driver_db_lpr");
-}
-
-TQString KMLprManager::driverDirectory()
-{
- TQPtrListIterator<LprHandler> it(m_handlerlist);
- TQString dbDirs;
- for (; it.current(); ++it)
- {
- TQString dir = it.current()->driverDirectory();
- if (!dir.isEmpty())
- dbDirs.append(dir).append(":");
- }
- if (!dbDirs.isEmpty())
- dbDirs.truncate(dbDirs.length()-1);
- return dbDirs;
-}
-
-TQString KMLprManager::printOptions(KPrinter *prt)
-{
- KMPrinter *mprt = findPrinter(prt->printerName());
- TQString opts;
- if (mprt)
- {
- LprHandler *handler = findHandler(mprt);
- if (handler)
- return handler->printOptions(prt);
- }
- return TQString::null;
-}
-
-void KMLprManager::createPluginActions(KActionCollection *coll)
-{
- KAction *act = new KAction(i18n("&Edit printcap Entry..."), "tdeprint_report", 0, this, TQT_SLOT(slotEditPrintcap()), coll, "plugin_editprintcap");
- act->setGroup("plugin");
-}
-
-void KMLprManager::validatePluginActions(KActionCollection *coll, KMPrinter *prt)
-{
- m_currentprinter = prt;
- // FIXME: disabled until completion
- coll->action("plugin_editprintcap")->setEnabled(0 && hasManagement() && prt && !prt->isSpecial());
-}
-
-void KMLprManager::slotEditPrintcap()
-{
- if (!m_currentprinter ||
- KMessageBox::warningContinueCancel(NULL,
- i18n("Editing a printcap entry manually should only be "
- "done by confirmed system administrator. This may "
- "prevent your printer from working. Do you want to "
- "continue?"), TQString::null, KStdGuiItem::cont(),
- "editPrintcap") == KMessageBox::Cancel)
- return;
-
- PrintcapEntry *entry = findEntry(m_currentprinter);
- EditEntryDialog dlg(entry, NULL);
- if (dlg.exec())
- {
- }
-}
-
-TQString KMLprManager::stateInformation()
-{
- return i18n("Spooler type: %1").arg(LprSettings::self()->mode() == LprSettings::LPR ? "LPR (BSD compatible)" : "LPRng");
-}
-
-#include "kmlprmanager.moc"
diff --git a/kdeprint/lpr/kmlprmanager.h b/kdeprint/lpr/kmlprmanager.h
deleted file mode 100644
index 34d38340f..000000000
--- a/kdeprint/lpr/kmlprmanager.h
+++ /dev/null
@@ -1,82 +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 KMLRMANAGER_H
-#define KMLRMANAGER_H
-
-#include "kmmanager.h"
-
-#include <tqdict.h>
-#include <tqptrlist.h>
-#include <tqdatetime.h>
-#include <kurl.h>
-
-class LprHandler;
-class PrintcapEntry;
-class LpcHelper;
-class KPrinter;
-
-class KMLprManager : public KMManager
-{
- Q_OBJECT
-public:
- KMLprManager(TQObject *parent, const char *name, const TQStringList & /*args*/);
-
- bool completePrinter(KMPrinter*);
- bool completePrinterShort(KMPrinter*);
- bool enablePrinter(KMPrinter*, bool);
- bool startPrinter(KMPrinter*, bool);
- bool savePrinterDriver(KMPrinter*, DrMain*);
- DrMain* loadPrinterDriver(KMPrinter*, bool = false);
- DrMain* loadFileDriver(const TQString&);
- bool createPrinter(KMPrinter*);
- bool removePrinter(KMPrinter*);
-
- TQString driverDbCreationProgram();
- TQString driverDirectory();
-
- LpcHelper* lpcHelper() { return m_lpchelper; }
- TQString printOptions(KPrinter*);
-
- void createPluginActions(KActionCollection*);
- void validatePluginActions(KActionCollection*, KMPrinter*);
- TQString stateInformation();
-
-protected slots:
- void slotEditPrintcap();
-
-protected:
- void listPrinters();
- void initHandlers();
- void insertHandler(LprHandler*);
- PrintcapEntry* findEntry(KMPrinter*);
- LprHandler* findHandler(KMPrinter*);
- void checkPrinterState(KMPrinter*);
- bool savePrintcapFile();
-
-private:
- TQDict<LprHandler> m_handlers;
- TQPtrList<LprHandler> m_handlerlist;
- TQDict<PrintcapEntry> m_entries;
- TQDateTime m_updtime;
- LpcHelper *m_lpchelper;
- KMPrinter *m_currentprinter;
-};
-
-#endif
diff --git a/kdeprint/lpr/kmlpruimanager.cpp b/kdeprint/lpr/kmlpruimanager.cpp
deleted file mode 100644
index 655309e0c..000000000
--- a/kdeprint/lpr/kmlpruimanager.cpp
+++ /dev/null
@@ -1,67 +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 "kmlpruimanager.h"
-#include "kmpropertypage.h"
-#include "kprinterpropertydialog.h"
-#include "kpqtpage.h"
-#include "kmconfigdialog.h"
-
-#include "kmpropdriver.h"
-#include "kmpropbackend.h"
-#include "kmwizard.h"
-#include "kmwbackend.h"
-#include "kmconfiglpr.h"
-
-#include <klocale.h>
-
-KMLprUiManager::KMLprUiManager(TQObject *parent, const char *name, const TQStringList & /*args*/)
-: KMUiManager(parent,name)
-{
-}
-
-KMLprUiManager::~KMLprUiManager()
-{
-}
-
-void KMLprUiManager::setupPropertyPages(KMPropertyPage *pages)
-{
- pages->addPropPage(new KMPropBackend(pages, "Backend"));
- pages->addPropPage(new KMPropDriver(pages, "Driver"));
-}
-
-void KMLprUiManager::setupPrinterPropertyDialog(KPrinterPropertyDialog *dlg)
-{
- dlg->addPage(new KPQtPage(dlg->driver(), dlg, "QtPage"));
-}
-
-void KMLprUiManager::setupWizard(KMWizard *wizard)
-{
- KMWBackend *backend = wizard->backendPage();
-
- backend->addBackend(KMWizard::Local, true);
- backend->addBackend(KMWizard::LPD, true);
- backend->addBackend(KMWizard::TCP, true);
- backend->addBackend(KMWizard::SMB, true, KMWizard::Password);
-}
-
-void KMLprUiManager::setupConfigDialog(KMConfigDialog *dlg)
-{
- dlg->addConfigPage(new KMConfigLpr(dlg));
-}
diff --git a/kdeprint/lpr/kmlpruimanager.h b/kdeprint/lpr/kmlpruimanager.h
deleted file mode 100644
index 561f93500..000000000
--- a/kdeprint/lpr/kmlpruimanager.h
+++ /dev/null
@@ -1,37 +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 KMLPRUIMANAGER_H
-#define KMLPRUIMANAGER_H
-
-#include "kmuimanager.h"
-
-class KMLprUiManager : public KMUiManager
-{
-public:
- KMLprUiManager(TQObject *parent, const char *name, const TQStringList & /*args*/);
- ~KMLprUiManager();
-
- void setupPropertyPages(KMPropertyPage*);
- void setupPrinterPropertyDialog(KPrinterPropertyDialog*);
- void setupWizard(KMWizard*);
- void setupConfigDialog(KMConfigDialog*);
-};
-
-#endif
diff --git a/kdeprint/lpr/lpchelper.cpp b/kdeprint/lpr/lpchelper.cpp
deleted file mode 100644
index c921a803c..000000000
--- a/kdeprint/lpr/lpchelper.cpp
+++ /dev/null
@@ -1,320 +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 "lpchelper.h"
-#include "kpipeprocess.h"
-#include "kmjob.h"
-#include "lprsettings.h"
-
-#include <kstandarddirs.h>
-#include <tqtextstream.h>
-#include <tqregexp.h>
-#include <kdebug.h>
-#include <klocale.h>
-#include <kprocess.h>
-#include <stdlib.h>
-
-static TQString execute(const TQString& cmd)
-{
- KPipeProcess proc;
- TQString output;
- if (proc.open(cmd))
- {
- TQTextStream t(&proc);
- while (!t.atEnd())
- output.append(t.readLine()).append("\n");
- proc.close();
- }
- return output;
-}
-
-LpcHelper::LpcHelper(TQObject *parent, const char *name)
-: TQObject(parent, name)
-{
- // look for the "lpc" executable. Use the PATH variable and
- // add some specific dirs.
- TQString PATH = getenv("PATH");
- PATH.append(":/usr/sbin:/usr/local/sbin:/sbin:/opt/sbin:/opt/local/sbin");
- m_exepath = KStandardDirs::findExe("lpc", PATH);
- m_checkpcpath = KStandardDirs::findExe("checkpc", PATH);
- m_lprmpath = KStandardDirs::findExe("lprm");
-}
-
-LpcHelper::~LpcHelper()
-{
-}
-
-KMPrinter::PrinterState LpcHelper::state(const TQString& prname) const
-{
- if (m_state.contains(prname))
- return m_state[prname];
- return KMPrinter::Unknown;
-}
-
-KMPrinter::PrinterState LpcHelper::state(KMPrinter *prt) const
-{
- return state(prt->printerName());
-}
-
-void LpcHelper::parseStatusLPR(TQTextStream &t)
-{
- TQString printer, line;
- int p(-1);
-
- while (!t.atEnd())
- {
- line = t.readLine();
- if (line.isEmpty())
- continue;
- else if (!line[0].isSpace() && (p = line.find(':')) != -1)
- {
- printer = line.left(p);
- m_state[printer] = KMPrinter::Idle;
- }
- else if (line.find("printing is disabled") != -1)
- {
- if (!printer.isEmpty())
- m_state[printer] = KMPrinter::PrinterState((KMPrinter::Stopped) | (m_state[printer] & ~KMPrinter::StateMask));
- }
- else if (line.find("queuing is disabled") != -1)
- {
- if (!printer.isEmpty())
- m_state[printer] = KMPrinter::PrinterState((KMPrinter::Rejecting) | (m_state[printer] & KMPrinter::StateMask));
- }
- else if (line.find("entries") != -1)
- {
- if (!printer.isEmpty() &&
- (m_state[printer] & KMPrinter::StateMask) != KMPrinter::Stopped &&
- line.find("no entries") == -1)
- m_state[printer] = KMPrinter::PrinterState((m_state[printer] & ~KMPrinter::StateMask) | KMPrinter::Processing);
- }
- }
-}
-
-void LpcHelper::parseStatusLPRng(TQTextStream& t)
-{
- TQStringList l;
- int p(-1);
- TQString printer;
-
- while (!t.atEnd())
- if (t.readLine().stripWhiteSpace().startsWith("Printer"))
- break;
- while (!t.atEnd())
- {
- l = TQStringList::split(TQRegExp("\\s"), t.readLine(), false);
- if (l.count() < 4)
- continue;
- p = l[0].find('@');
- if (p == 0)
- printer = l[0];
- else
- printer = l[0].left(p);
- int st(0);
- if (l[1] == "disabled")
- st = KMPrinter::Stopped;
- else if (l[3] != "0")
- st = KMPrinter::Processing;
- else
- st = KMPrinter::Idle;
- if (l[2] == "disabled")
- st |= KMPrinter::Rejecting;
- m_state[printer] = KMPrinter::PrinterState(st);
- }
-}
-
-void LpcHelper::updateStates()
-{
- KPipeProcess proc;
-
- m_state.clear();
- if (!m_exepath.isEmpty() && proc.open(m_exepath + " status all"))
- {
- TQTextStream t(&proc);
-
- switch (LprSettings::self()->mode())
- {
- default:
- case LprSettings::LPR:
- parseStatusLPR(t);
- break;
- case LprSettings::LPRng:
- parseStatusLPRng(t);
- break;
- }
- proc.close();
- }
-
-}
-
-bool LpcHelper::enable(KMPrinter *prt, bool state, TQString& msg)
-{
- int st = m_state[prt->printerName()] & KMPrinter::StateMask;
- if (changeState(prt->printerName(), (state ? "enable" : "disable"), msg))
- {
- m_state[prt->printerName()] = KMPrinter::PrinterState((state ? KMPrinter::Rejecting : 0) | st);
- return true;
- }
- return false;
-}
-
-bool LpcHelper::start(KMPrinter *prt, bool state, TQString& msg)
-{
- int rej = m_state[prt->printerName()] & ~KMPrinter::StateMask;
- if (changeState(prt->printerName(), (state ? "start" : "stop"), msg))
- {
- m_state[prt->printerName()] = KMPrinter::PrinterState((state ? KMPrinter::Idle : KMPrinter::Stopped) | rej);
- return true;
- }
- return false;
-}
-
-// status
-// 0 : success
-// -1 : permission denied
-// -2 : unknown printer
-// 1 : unknown error
-int LpcHelper::parseStateChangeLPR(const TQString& result, const TQString& printer)
-{
- if (result.startsWith(printer + ":"))
- return 0;
- else if (result.startsWith("?Privileged"))
- return -1;
- else if (result.startsWith("unknown"))
- return -2;
- else
- return 1;
-}
-
-static TQString lprngAnswer(const TQString& result, const TQString& printer)
-{
- int p, q;
-
- p = result.find("\n" + printer);
- if (p != -1)
- {
- q = result.find(':', p)+2;
- p = result.find('\n', q);
- TQString answer = result.mid(q, p-q).stripWhiteSpace();
- return answer;
- }
- return TQString::null;
-}
-
-int LpcHelper::parseStateChangeLPRng(const TQString& result, const TQString& printer)
-{
- TQString answer = lprngAnswer(result, printer);
- if (answer == "no")
- return -1;
- else if (answer == "disabled" || answer == "enabled" || answer == "started" || answer == "stopped")
- return 0;
- else
- return 1;
-}
-
-bool LpcHelper::changeState(const TQString& printer, const TQString& op, TQString& msg)
-{
- if (m_exepath.isEmpty())
- {
- msg = i18n("The executable %1 couldn't be found in your PATH.").arg("lpc");
- return false;
- }
- TQString result = execute(m_exepath + " " + op + " " + KProcess::quote(printer));
- int status;
-
- switch (LprSettings::self()->mode())
- {
- default:
- case LprSettings::LPR:
- status = parseStateChangeLPR(result, printer);
- break;
- case LprSettings::LPRng:
- status = parseStateChangeLPRng(result, printer);
- break;
- }
- switch (status)
- {
- case 0:
- break;
- case -1:
- msg = i18n("Permission denied.");
- break;
- case -2:
- msg = i18n("Printer %1 does not exist.").arg(printer);
- break;
- default:
- case 1:
- msg = i18n("Unknown error: %1").arg(result.replace(TQRegExp("\\n"), " "));
- break;
- }
- return (status == 0);
-}
-
-bool LpcHelper::removeJob(KMJob *job, TQString& msg)
-{
- if (m_lprmpath.isEmpty())
- {
- msg = i18n("The executable %1 couldn't be found in your PATH.").arg("lprm");
- return false;
- }
- TQString result = execute(m_lprmpath + " -P " + KProcess::quote(job->printer()) + " " + TQString::number(job->id()));
- if (result.find("dequeued") != -1)
- return true;
- else if (result.find("Permission denied") != -1 || result.find("no permissions") != -1)
- msg = i18n("Permission denied.");
- else
- msg = i18n("Execution of lprm failed: %1").arg(result);
- return false;
-}
-
-// LPRng only
-bool LpcHelper::changeJobState(KMJob *job, int state, TQString& msg)
-{
- if (m_lprmpath.isEmpty())
- {
- msg = i18n("The executable %1 couldn't be found in your PATH.").arg("lpc");
- return false;
- }
- TQString result = execute(m_exepath + (state == KMJob::Held ? " hold " : " release ") + KProcess::quote(job->printer()) + " " + TQString::number(job->id()));
- TQString answer = lprngAnswer(result, job->printer());
- if (answer == "no")
- {
- msg = i18n("Permission denied.");
- return false;
- }
- else
- return true;
-}
-
-bool LpcHelper::restart(TQString& msg)
-{
- TQString s;
- if (m_exepath.isEmpty())
- s = "lpc";
- else if (m_checkpcpath.isEmpty())
- s = "checkpc";
- if (!s.isEmpty())
- {
- msg = i18n("The executable %1 couldn't be found in your PATH.").arg(s);
- return false;
- }
- ::system(TQFile::encodeName(m_exepath + " reread"));
- ::system(TQFile::encodeName(m_checkpcpath + " -f"));
- return true;
-}
diff --git a/kdeprint/lpr/lpchelper.h b/kdeprint/lpr/lpchelper.h
deleted file mode 100644
index b1e20f089..000000000
--- a/kdeprint/lpr/lpchelper.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 LPCHELPER_H
-#define LPCHELPER_H
-
-#include <tqobject.h>
-#include <tqmap.h>
-#include <tqtextstream.h>
-#include "kmprinter.h"
-
-class KMJob;
-
-class LpcHelper : public TQObject
-{
-public:
- LpcHelper(TQObject *parent = 0, const char *name = 0);
- ~LpcHelper();
-
- KMPrinter::PrinterState state(const TQString&) const;
- KMPrinter::PrinterState state(KMPrinter*) const;
- void updateStates();
-
- bool enable(KMPrinter*, bool, TQString&);
- bool start(KMPrinter*, bool, TQString&);
- bool removeJob(KMJob*, TQString&);
- bool changeJobState(KMJob*, int, TQString&);
-
- bool restart(TQString&);
-
-protected:
- bool changeState(const TQString&, const TQString&, TQString&);
- void parseStatusLPR(TQTextStream&);
- void parseStatusLPRng(TQTextStream&);
- int parseStateChangeLPR(const TQString&, const TQString&);
- int parseStateChangeLPRng(const TQString&, const TQString&);
-
-private:
- TQMap<TQString, KMPrinter::PrinterState> m_state;
- TQString m_exepath, m_lprmpath, m_checkpcpath;
-};
-
-#endif
diff --git a/kdeprint/lpr/lpqhelper.cpp b/kdeprint/lpr/lpqhelper.cpp
deleted file mode 100644
index 30348f591..000000000
--- a/kdeprint/lpr/lpqhelper.cpp
+++ /dev/null
@@ -1,117 +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 "lpqhelper.h"
-#include "kmjob.h"
-#include "kpipeprocess.h"
-#include "lprsettings.h"
-
-#include <kstandarddirs.h>
-#include <kprocess.h>
-#include <kdebug.h>
-
-LpqHelper::LpqHelper(TQObject *parent, const char *name)
-: TQObject(parent, name)
-{
- m_exepath = KStandardDirs::findExe("lpq");
-}
-
-LpqHelper::~LpqHelper()
-{
-}
-
-KMJob* LpqHelper::parseLineLpr(const TQString& line)
-{
- TQString rank = line.left(7);
- if (!rank[0].isDigit() && rank != "active")
- return NULL;
- KMJob *job = new KMJob;
- job->setState((rank[0].isDigit() ? KMJob::Queued : KMJob::Printing));
- job->setOwner(line.mid(7, 11).stripWhiteSpace());
- job->setId(line.mid(18, 5).toInt());
- job->setName(line.mid(23, 38).stripWhiteSpace());
- int p = line.find(' ', 61);
- if (p != -1)
- {
- job->setSize(line.mid(61, p-61).toInt() / 1000);
- }
- return job;
-}
-
-KMJob* LpqHelper::parseLineLPRng(const TQString& line)
-{
- TQString rank = line.left(7).stripWhiteSpace();
- if (!rank[0].isDigit() && rank != "active" && rank != "hold")
- return NULL;
- KMJob *job = new KMJob;
- job->setState((rank[0].isDigit() ? KMJob::Queued : (rank == "hold" ? KMJob::Held : KMJob::Printing)));
- int p = line.find('@', 7), q = line.find(' ', 7);
- job->setOwner(line.mid(7, TQMIN(p,q)-7));
- while (line[q].isSpace())
- q++;
- q++;
- while (line[q].isSpace())
- q++;
- p = line.find(' ', q);
- job->setId(line.mid(q, p-q).toInt());
- while (line[p].isSpace())
- p++;
- q = p+25;
- while (line[q].isDigit())
- q--;
- job->setName(line.mid(p, q-p).stripWhiteSpace());
- job->setSize(line.mid(q+1, p+26-q).toInt() / 1000);
- return job;
-}
-
-void LpqHelper::listJobs(TQPtrList<KMJob>& jobs, const TQString& prname, int limit)
-{
- KPipeProcess proc;
- if (!m_exepath.isEmpty() && proc.open(m_exepath + " -P " + KProcess::quote(prname)))
- {
- TQTextStream t(&proc);
- TQString line;
- bool lprng = (LprSettings::self()->mode() == LprSettings::LPRng);
- int count = 0;
-
- while (!t.atEnd())
- {
- line = t.readLine().stripWhiteSpace();
- if (line.startsWith("Rank"))
- break;
- }
- while (!t.atEnd())
- {
- line = t.readLine();
- if ( limit > 0 && count >= limit )
- continue;
- KMJob *job = (lprng ? parseLineLPRng(line) : parseLineLpr(line));
- if (job)
- {
- job->setPrinter(prname);
- job->setUri("lpd://"+prname+"/"+TQString::number(job->id()));
- jobs.append(job);
- count++;
- }
- else
- break;
- }
- proc.close();
- }
-}
diff --git a/kdeprint/lpr/lpqhelper.h b/kdeprint/lpr/lpqhelper.h
deleted file mode 100644
index 2c38566c5..000000000
--- a/kdeprint/lpr/lpqhelper.h
+++ /dev/null
@@ -1,44 +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 LPQHELPER_H
-#define LPQHELPER_H
-
-#include <tqobject.h>
-#include <tqptrlist.h>
-
-class KMJob;
-
-class LpqHelper : public TQObject
-{
-public:
- LpqHelper(TQObject *parent = 0, const char *name = 0);
- ~LpqHelper();
-
- void listJobs(TQPtrList<KMJob>& jobs, const TQString& prname, int limit = 0);
-
-protected:
- KMJob* parseLineLpr(const TQString&);
- KMJob* parseLineLPRng(const TQString&);
-
-private:
- TQString m_exepath;
-};
-
-#endif
diff --git a/kdeprint/lpr/lpr.print b/kdeprint/lpr/lpr.print
deleted file mode 100644
index e8cd8a3d7..000000000
--- a/kdeprint/lpr/lpr.print
+++ /dev/null
@@ -1,86 +0,0 @@
-[KDE Print Entry]
-PrintSystem=lpr
-Comment=LPR/LPRng Print System
-Comment[af]= lpr /Lprng Druk Stelsel
-Comment[ar]=نظام طباعة LPR/LPRng
-Comment[az]=LPR/LPRng Çap Sistemi
-Comment[be]=Сістэма друку LPR/LPRng
-Comment[bn]=এল-পি-আর/এল-পি-আর-এন-জি মুদ্রণ ব্যবস্থা
-Comment[br]=Reizhiad moulañ LPR/LPRng
-Comment[bs]=LPR/LPRng sistem štampe
-Comment[ca]=Sistema d'impressió LPR/LPRng
-Comment[cs]=Tiskový systém LPR/LPRng
-Comment[csb]=Systema drëkù LPR/LPRng
-Comment[cy]=Cysawd Argraffu LPR/LPRng
-Comment[da]=LPR/LPRng-udskriftssystem
-Comment[de]=LPR/LPRng-Drucksystem
-Comment[el]=LPR/LPRng σύστημα εκτύπωσης
-Comment[eo]=LPR/LPRng-presosistemo
-Comment[es]=Sistema de impresión LPR/LPRNg
-Comment[et]=LPR/LPRng trükkimise süsteem
-Comment[eu]=LPR/LPRng inprimatze-sistema
-Comment[fa]=سیستم چاپ LPR/LPRng
-Comment[fi]=LPR/LPRng-tulostusjärjestelmä
-Comment[fr]=Système d'impression LPR / LPRng
-Comment[fy]=LPR-/LPRNG-ôfdruksysteem
-Comment[ga]=Córas Priontála LPR/LPRng
-Comment[gl]=Sistema de Impresión LPR/LPRng
-Comment[he]=מערכת ההדפסה LPR/LPRng
-Comment[hi]=LPR/LPRng छपाई पद्धत्ति
-Comment[hr]=LPR/LPRng sustav za ispis
-Comment[hu]=LPR/LPRng
-Comment[id]=Sistem Pencetakan LPR/LPRng
-Comment[is]=LPR/LPRng prentkerfið
-Comment[it]=Sistema di stampa LPR/LPRng
-Comment[ja]=LPR/LPRng 印刷システム
-Comment[ka]=LPR/LPRng ბეჭდვის სისტემა
-Comment[kk]=LPR/LPRng басып шығару жүйесі
-Comment[km]=ប្រព័ន្ធ​បោះពុម្ព LPR/LPRng
-Comment[ko]=LPR/LPRng 인쇄 시스템
-Comment[lb]=LPR/LPRng-Drécksystem
-Comment[lt]=LPR/LPRng spausdinimo sistema
-Comment[lv]=LPR/LPRng drukas sistēma
-Comment[mk]=LPR/LPRng системот за печатење
-Comment[mn]=LPR/LPRng-Хэвлэх систем
-Comment[ms]=Sistem Cetak LPR/LPRng
-Comment[mt]=Sistema tal-ipprintjar LPR/LPRng
-Comment[nb]=Utskriftssystemet LPR/LPRng
-Comment[nds]=Dat Drucksysteem LPR/LPRng
-Comment[ne]=LPR/LPRng मुद्रण प्रणाली
-Comment[nl]=LPR-/LPRNG-afdruksysteem
-Comment[nn]=Utskriftssystemet LPR/LPRng
-Comment[nso]=System ya Kgatiso ya LPR/LPRng
-Comment[pa]=LPR/LPRng ਪ੍ਰਿੰਟਰ ਸਿਸਟਮ
-Comment[pl]=System druku LPR/LPRng
-Comment[pt]=O sistema de impressão LPR/LPRng
-Comment[pt_BR]=Sistema de Impressão LPR/LPRng
-Comment[ro]=Sistem de tipărire LPR/LPRng
-Comment[ru]=Система печати LPR/LPRng
-Comment[rw]=Sisitemu yo Gucapa LPR/LPRng
-Comment[se]=LPR/LPRng čálihanvuogádat
-Comment[sk]=Tlačový systém LPR/LPRng
-Comment[sl]=Tiskalniški sistem za LPR/LPRng
-Comment[sq]=Sistem Shtypi për LPR/LPRng
-Comment[sr]=LPR/LPRng систем за штампање
-Comment[sr@Latn]=LPR/LPRng sistem za štampanje
-Comment[ss]=LPR/LPRng umhini wekushivelela
-Comment[sv]=LPR/LPRNG-skrivarsystem
-Comment[ta]=LPR/LPRng அச்சுத் தொகுதி
-Comment[te]=ఎల్ పి ఆర్/ఎల్ పి ఆర్ ఎన్ జి ప్రచురణ వ్యవస్థ
-Comment[tg]=Системаи чопи LPR/LPRng
-Comment[th]=ระบบการพิมพ์ LPR/LPRng
-Comment[tr]=LPR/LPRng Yazdırma Sistemi
-Comment[tt]=LPR/LPRng Bastıru Sisteme
-Comment[uk]=Система друку LPR/LPRng
-Comment[uz]=LPR/LPRng bosib chiqarish tizimi
-Comment[uz@cyrillic]=LPR/LPRng босиб чиқариш тизими
-Comment[ven]=LPR/Maitele au phirintha a LPRng
-Comment[vi]=Hệ thống in LPR/LPRng
-Comment[wa]=Sistinme d' imprimaedje LPR/LPRng
-Comment[xh]=LPR/LPRng Indlela Yokushicilela
-Comment[zh_CN]=LPR/LPRng 打印系统
-Comment[zh_HK]=LPR/LPRng 列印系統
-Comment[zh_TW]=LPR/LPRng 列印系統
-Comment[zu]=Isistimu Yokushicilela ye-LPR/LRng
-DetectUris=service:/printer
-DetectPrecedence=0
diff --git a/kdeprint/lpr/lprhandler.cpp b/kdeprint/lpr/lprhandler.cpp
deleted file mode 100644
index fcb838bb9..000000000
--- a/kdeprint/lpr/lprhandler.cpp
+++ /dev/null
@@ -1,270 +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 "lprhandler.h"
-#include "kmprinter.h"
-#include "printcapentry.h"
-#include "kmmanager.h"
-#include "lprsettings.h"
-#include "driver.h"
-
-#include <tqfile.h>
-#include <tqtextstream.h>
-#include <tqvaluestack.h>
-#include <klocale.h>
-
-#include <unistd.h>
-
-LprHandler::LprHandler(const TQString& name, KMManager *mgr)
-: m_name(name), m_manager(mgr)
-{
-}
-
-LprHandler::~LprHandler()
-{
-}
-
-bool LprHandler::validate(PrintcapEntry*)
-{
- return true;
-}
-
-KMPrinter* LprHandler::createPrinter(PrintcapEntry *entry)
-{
- KMPrinter *prt = new KMPrinter;
- prt->setPrinterName(entry->name);
- prt->setName(entry->name);
- prt->setType(KMPrinter::Printer);
- return prt;
-}
-
-bool LprHandler::completePrinter(KMPrinter *prt, PrintcapEntry *entry, bool)
-{
- prt->setDescription(i18n("Unknown (unrecognized entry)"));
- TQString val = entry->field("lp");
- KURL uri;
- if (!val.isEmpty() && val != "/dev/null")
- {
- int p = val.find('@');
- if (p != -1)
- {
- prt->setLocation(i18n("Remote queue (%1) on %2").arg(val.left(p)).arg(val.mid(p+1)));
- uri.setProtocol("lpd");
- uri.setHost(val.mid(p+1));
- uri.setPath("/" + val.left(p));
- }
- else if ((p = val.find('%')) != -1)
- {
- prt->setLocation(i18n("Network printer (%1)").arg("socket"));
- uri.setProtocol("socket");
- uri.setHost(val.left(p));
- uri.setPort(val.mid(p+1).toInt());
- }
- else
- {
- prt->setLocation(i18n("Local printer on %1").arg(val));
- uri.setProtocol("parallel");
- uri.setPath(val);
- }
- }
- else if (!(val = entry->field("rp")).isEmpty())
- {
- TQString rm = entry->has("rm") ?
- entry->field("rm") :
- LprSettings::self()->defaultRemoteHost();
- prt->setLocation(i18n("Remote queue (%1) on %2").arg(val).arg(rm));
- uri.setProtocol("lpd");
- uri.setHost(rm);
- uri.setPath("/" + val);
- }
- else
- prt->setLocation(i18n("Unknown (unrecognized entry)"));
- prt->setDevice(uri.url());
- return true;
-}
-
-DrMain* LprHandler::loadDriver(KMPrinter*, PrintcapEntry*, bool)
-{
- manager()->setErrorMsg(i18n("Unrecognized entry."));
- return NULL;
-}
-
-bool LprHandler::savePrinterDriver(KMPrinter*, PrintcapEntry*, DrMain*, bool*)
-{
- manager()->setErrorMsg(i18n("Unrecognized entry."));
- return false;
-}
-
-DrMain* LprHandler::loadDbDriver(const TQString&)
-{
- manager()->setErrorMsg(i18n("Unrecognized entry."));
- return NULL;
-}
-
-PrintcapEntry* LprHandler::createEntry(KMPrinter *prt)
-{
- // this default handler only supports local parallel and remote lpd URIs
- KURL uri ( prt->device() );
- TQString prot = uri.protocol();
- if (!prot.isEmpty() && prot != "parallel" && prot != "file" && prot != "lpd" && prot != "socket")
- {
- manager()->setErrorMsg(i18n("Unsupported backend: %1.").arg(prot));
- return NULL;
- }
- PrintcapEntry *entry = new PrintcapEntry;
- entry->comment = "# Default handler";
- if (prot == "lpd")
- {
- entry->addField("rm", Field::String, uri.host());
- TQString rp = uri.path();
- if (rp[0] == '/')
- rp = rp.mid(1);
- entry->addField("rp", Field::String, rp);
- // force this entry to null (otherwise it seems it's redirected
- // to /dev/lp0 by default)
- entry->addField("lp", Field::String, TQString::null);
- }
- else if ( prot == "socket" )
- {
- TQString lp = uri.host();
- if ( uri.port() == 0 )
- lp.append( "%9100" );
- else
- lp.append( "%" ).append( TQString::number( uri.port() ) );
- entry->addField("lp", Field::String, lp);
- }
- else
- {
- entry->addField("lp", Field::String, uri.path());
- }
- return entry;
-}
-
-bool LprHandler::removePrinter(KMPrinter*, PrintcapEntry*)
-{
- return true;
-}
-
-TQString LprHandler::printOptions(KPrinter*)
-{
- return TQString::null;
-}
-
-void LprHandler::reset()
-{
-}
-
-DrMain* LprHandler::loadToolDriver(const TQString& filename)
-{
- TQFile f(filename);
- if (f.open(IO_ReadOnly))
- {
- DrMain *driver = new DrMain;
- TQValueStack<DrGroup*> groups;
- TQTextStream t(&f);
- TQStringList l;
- DrListOption *lopt(0);
- DrBase *opt(0);
-
- groups.push(driver);
- driver->set("text", "Tool Driver");
- while (!t.atEnd())
- {
- l = TQStringList::split('|', t.readLine().stripWhiteSpace(), false);
- if (l.count() == 0)
- continue;
- if (l[0] == "GROUP")
- {
- DrGroup *grp = new DrGroup;
- grp->setName(l[1]);
- grp->set("text", l[2]);
- groups.top()->addGroup(grp);
- groups.push(grp);
- }
- else if (l[0] == "ENDGROUP")
- {
- groups.pop();
- }
- else if (l[0] == "OPTION")
- {
- opt = 0;
- lopt = 0;
- if (l.count() > 3)
- {
- if (l[3] == "STRING")
- opt = new DrStringOption;
- else if (l[3] == "BOOLEAN")
- {
- lopt = new DrBooleanOption;
- opt = lopt;
- }
- }
- else
- {
- lopt = new DrListOption;
- opt = lopt;
- }
- if (opt)
- {
- opt->setName(l[1]);
- opt->set("text", l[2]);
- groups.top()->addOption(opt);
- }
- }
- else if (l[0] == "CHOICE" && lopt)
- {
- DrBase *ch = new DrBase;
- ch->setName(l[1]);
- ch->set("text", l[2]);
- lopt->addChoice(ch);
- }
- else if (l[0] == "DEFAULT" && opt)
- {
- opt->setValueText(l[1]);
- opt->set("default", l[1]);
- }
- }
- return driver;
- }
- return NULL;
-}
-
-TQString LprHandler::driverDirectory()
-{
- if (m_cacheddriverdir.isEmpty())
- m_cacheddriverdir = driverDirInternal();
- return m_cacheddriverdir;
-}
-
-TQString LprHandler::driverDirInternal()
-{
- return TQString::null;
-}
-
-TQString LprHandler::locateDir(const TQString& dirname, const TQString& paths)
-{
- TQStringList pathlist = TQStringList::split(':', paths, false);
- for (TQStringList::ConstIterator it=pathlist.begin(); it!=pathlist.end(); ++it)
- {
- TQString testpath = *it + "/" + dirname;
- if (::access(TQFile::encodeName(testpath), F_OK) == 0)
- return testpath;
- }
- return TQString::null;
-}
diff --git a/kdeprint/lpr/lprhandler.h b/kdeprint/lpr/lprhandler.h
deleted file mode 100644
index e0e66e146..000000000
--- a/kdeprint/lpr/lprhandler.h
+++ /dev/null
@@ -1,88 +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 LPRHANDLER_H
-#define LPRHANDLER_H
-
-#if !defined( _KDEPRINT_COMPILE ) && defined( __GNUC__ )
-#warning internal header, do not use except if you are a KDEPrint developer
-#endif
-
-#include <tqstring.h>
-
-class PrintcapEntry;
-class KMPrinter;
-class DrMain;
-class KMManager;
-class KPrinter;
-
-/**
- * @internal
- * This class is internal to KDEPrint and is not intended to be
- * used outside it. Please do not make use of this header, except
- * if you're a KDEPrint developer. The API might change in the
- * future and binary compatibility might be broken.
- */
-class LprHandler
-{
-public:
- LprHandler(const TQString& name, KMManager *mgr = 0);
- virtual ~LprHandler();
-
- virtual bool validate(PrintcapEntry*);
- virtual KMPrinter* createPrinter(PrintcapEntry*);
- virtual bool completePrinter(KMPrinter*, PrintcapEntry*, bool shortmode = true);
- virtual DrMain* loadDriver(KMPrinter*, PrintcapEntry*, bool = false);
- virtual DrMain* loadDbDriver(const TQString&);
- virtual bool savePrinterDriver(KMPrinter*, PrintcapEntry*, DrMain*, bool* = 0);
- virtual PrintcapEntry* createEntry(KMPrinter*);
- virtual bool removePrinter(KMPrinter*, PrintcapEntry*);
- virtual TQString printOptions(KPrinter*);
- virtual void reset();
-
- TQString name() const;
- KMManager* manager() const;
- TQString driverDirectory();
-
-protected:
- DrMain* loadToolDriver(const TQString&);
- TQString locateDir(const TQString& dirname, const TQString& paths);
- TQString cachedDriverDir() const;
- void setCachedDriverDir(const TQString&);
- virtual TQString driverDirInternal();
-
-protected:
- TQString m_name;
- KMManager *m_manager;
- TQString m_cacheddriverdir;
-};
-
-inline TQString LprHandler::name() const
-{ return m_name; }
-
-inline KMManager* LprHandler::manager() const
-{ return m_manager; }
-
-inline TQString LprHandler::cachedDriverDir() const
-{ return m_cacheddriverdir; }
-
-inline void LprHandler::setCachedDriverDir(const TQString& s)
-{ m_cacheddriverdir = s; }
-
-#endif
diff --git a/kdeprint/lpr/lprngtooldriver1 b/kdeprint/lpr/lprngtooldriver1
deleted file mode 100644
index 11636403c..000000000
--- a/kdeprint/lpr/lprngtooldriver1
+++ /dev/null
@@ -1,85 +0,0 @@
-GROUP|general|General
-OPTION|PageSize|Page Size
-CHOICE|letter|US Letter
-CHOICE|legal|US Legal
-CHOICE|ledger|Ledger
-CHOICE|11x17|11x17
-CHOICE|tabloid|Tabloid
-CHOICE|oversize|Oversize
-CHOICE|executive|Executive
-CHOICE|envelope|Envelope
-CHOICE|a0|A0
-CHOICE|a1|A1
-CHOICE|a2|A2
-CHOICE|a3|A3
-CHOICE|a4|A4
-DEFAULT|a4
-OPTION|MediaType|Media Type
-CHOICE|bond|Bond paper
-CHOICE|cardstock|Card stock
-CHOICE|color|Color paper
-CHOICE|glossy|Glossy paper
-CHOICE|heavy|Heavy paper
-CHOICE|labels|Labels
-CHOICE|letterhead|Letter head
-CHOICE|plain|Plain paper
-CHOICE|preprinted|Preprinted paper
-CHOICE|prepunched|Prepunched paper
-CHOICE|recycle|Recycled paper
-CHOICE|transparency|Transparencies
-CHOICE|default|Default setting
-DEFAULT|default
-OPTION|InputSlot|Input Slot
-CHOICE|manual|Manual tray
-CHOICE|inupper|Upper tray
-CHOICE|inmiddle|Middle tray
-CHOICE|inlower|Lower tray
-CHOICE|inlarge|Large tray
-CHOICE|inright|Right tray
-CHOICE|intray1|Tray 1
-CHOICE|intray2|Tray 2
-CHOICE|intray3|Tray 3
-CHOICE|intray4|Tray 4
-CHOICE|intray5|Tray 5
-CHOICE|intray6|Tray 6
-CHOICE|intray7|Tray 7
-CHOICE|intray8|Tray 8
-CHOICE|intray9|Tray 9
-CHOICE|intray10|Tray 10
-CHOICE|inlargecapacity|Large capacity tray
-CHOICE|inhighcapacity|High capacity tray
-CHOICE|default|Default setting
-DEFAULT|default
-OPTION|OutputBin|Output Tray
-CHOICE|outupper|Upper tray
-CHOICE|outlower|Lower tray
-CHOICE|outbin2|Tray 2
-CHOICE|outbin3|Tray 3
-CHOICE|outbin4|Tray 4
-CHOICE|outbin5|Tray 5
-CHOICE|outbin6|Tray 6
-CHOICE|outbin7|Tray 7
-CHOICE|outbin8|Tray 8
-CHOICE|outbin9|Tray 9
-CHOICE|default|Default setting
-DEFAULT|default
-ENDGROUP
-GROUP|others|Others
-OPTION|Duplex|Duplex
-CHOICE|simplex|Simplex
-CHOICE|duplex|Duplex
-CHOICE|duplexshort|Duplex (short edge)
-CHOICE|tumble|Tumble
-CHOICE|default|Default setting
-DEFAULT|default
-OPTION|Resolution|Printing Resolution
-CHOICE|300|300 DPI
-CHOICE|600|600 DPI
-CHOICE|1200|1200 DPI
-CHOICE|default|Default setting
-DEFAULT|default
-ENDGROUP
-GROUP|advanced|Advanced Settings
-OPTION|filter|Filter options (comma sepatared)|STRING
-OPTION|lpr|LPR options (comma separated)|STRING
-ENDGROUP
diff --git a/kdeprint/lpr/lprngtoolhandler.cpp b/kdeprint/lpr/lprngtoolhandler.cpp
deleted file mode 100644
index 1d76cf2f5..000000000
--- a/kdeprint/lpr/lprngtoolhandler.cpp
+++ /dev/null
@@ -1,393 +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 "lprngtoolhandler.h"
-#include "printcapentry.h"
-#include "kmprinter.h"
-#include "util.h"
-#include "lprsettings.h"
-#include "driver.h"
-#include "kmmanager.h"
-#include "kprinter.h"
-
-#include <tqfile.h>
-#include <tqtextstream.h>
-#include <klocale.h>
-#include <kdebug.h>
-#include <kstandarddirs.h>
-
-LPRngToolHandler::LPRngToolHandler(KMManager *mgr)
-: LprHandler("lprngtool", mgr)
-{
-}
-
-bool LPRngToolHandler::validate(PrintcapEntry *entry)
-{
- if (entry->comment.startsWith("##LPRNGTOOL##") &&
- entry->comment.find("UNKNOWN") == -1)
- return true;
- return false;
-}
-
-bool LPRngToolHandler::completePrinter(KMPrinter *prt, PrintcapEntry *entry, bool shortmode)
-{
- TQString str, lp;
-
- // look for type in comment
- TQStringList l = TQStringList::split(' ', entry->comment, false);
- lp = entry->field("lp");
- if (l.count() < 1)
- return false;
-
- if (l[1] == "DEVICE" || l[1] == "SOCKET" || l[1] == "QUEUE")
- LprHandler::completePrinter(prt, entry, shortmode);
- else if (l[1] == "SMB")
- {
- TQMap<TQString,TQString> opts = parseXferOptions(entry->field("xfer_options"));
- TQString user, pass;
- loadAuthFile(LprSettings::self()->baseSpoolDir() + "/" + entry->name + "/" + opts["authfile"], user, pass);
- TQString uri = buildSmbURI(
- opts[ "workgroup" ],
- opts[ "host" ],
- opts[ "printer" ],
- user,
- pass );
- prt->setDevice( uri );
- prt->setLocation(i18n("Network printer (%1)").arg("smb"));
- }
-
- // look for comment
- if (!(str=entry->field("cm")).isEmpty())
- prt->setDescription(str);
-
- // driver
- //if (!shortmode)
- //{
- if (!(str=entry->field("ifhp")).isEmpty())
- {
- TQString model;
- int p = str.find("model");
- if (p != -1)
- {
- p = str.find('=', p);
- if (p != -1)
- {
- p++;
- int q = str.find(',', p);
- if (q == -1)
- model = str.mid(p);
- else
- model = str.mid(p, q-p);
- }
- }
- prt->setDriverInfo(i18n("IFHP Driver (%1)").arg((model.isEmpty() ? i18n("unknown") : model)));
- prt->setOption("driverID", model);
- }
- //}
- return true;
-}
-
-TQMap<TQString,TQString> LPRngToolHandler::parseXferOptions(const TQString& str)
-{
- uint p(0), q;
- TQMap<TQString,TQString> opts;
- TQString key, val;
-
- while (p < str.length())
- {
- key = val = TQString::null;
- // skip spaces
- while (p < str.length() && str[p].isSpace())
- p++;
- q = p;
- while (q < str.length() && str[q] != '=')
- q++;
- key = str.mid(p, q-p);
- p = q+2;
- while (p < str.length() && str[p] != '"')
- p++;
- val = str.mid(q+2, p-q-2);
- if (!key.isEmpty())
- opts[key] = val;
- p++;
- }
- return opts;
-}
-
-void LPRngToolHandler::loadAuthFile(const TQString& filename, TQString& user, TQString& pass)
-{
- TQFile f(filename);
- if (f.open(IO_ReadOnly))
- {
- TQTextStream t(&f);
- TQString line;
- while (!t.atEnd())
- {
- line = t.readLine().stripWhiteSpace();
- if (line.isEmpty())
- continue;
- int p = line.find('=');
- if (p != -1)
- {
- TQString key = line.left(p);
- if (key == "username")
- user = line.mid(p+1);
- else if (key == "password")
- pass = line.mid(p+1);
- }
- }
- }
-}
-
-DrMain* LPRngToolHandler::loadDriver(KMPrinter *prt, PrintcapEntry *entry, bool config)
-{
- if (entry->field("lprngtooloptions").isEmpty())
- {
- manager()->setErrorMsg(i18n("No driver defined for that printer. It might be a raw printer."));
- return NULL;
- }
-
- DrMain* driver = loadToolDriver(locate("data", "tdeprint/lprngtooldriver1"));
- if (driver)
- {
- TQString model = prt->option("driverID");
- driver->set("text", i18n("LPRngTool Common Driver (%1)").arg((model.isEmpty() ? i18n("unknown") : model)));
- if (!model.isEmpty())
- driver->set("driverID", model);
- TQMap<TQString,TQString> opts = parseZOptions(entry->field("prefix_z"));
- opts["lpr"] = entry->field("lpr");
- driver->setOptions(opts);
- // if not configuring, don't show the "lpr" options
- if (!config)
- driver->removeOptionGlobally("lpr");
- }
- return driver;
-}
-
-DrMain* LPRngToolHandler::loadDbDriver(const TQString& s)
-{
- int p = s.find('/');
- DrMain* driver = loadToolDriver(locate("data", "tdeprint/lprngtooldriver1"));
- if (driver)
- driver->set("driverID", s.mid(p+1));
- return driver;
-}
-
-TQValueList< TQPair<TQString,TQStringList> > LPRngToolHandler::loadChoiceDict(const TQString& filename)
-{
- TQFile f(filename);
- TQValueList< TQPair<TQString,TQStringList> > dict;
- if (f.open(IO_ReadOnly))
- {
- TQTextStream t(&f);
- TQString line, key;
- TQStringList l;
- while (!t.atEnd())
- {
- line = t.readLine().stripWhiteSpace();
- if (line.startsWith("OPTION"))
- {
- if (l.count() > 0 && !key.isEmpty())
- dict << TQPair<TQString,TQStringList>(key, l);
- l.clear();
- key = TQString::null;
- if (line.contains('|') == 2 || line.right(7) == "BOOLEAN")
- {
- int p = line.find('|', 7);
- key = line.mid(7, p-7);
- }
- }
- else if (line.startsWith("CHOICE"))
- {
- int p = line.find('|', 7);
- l << line.mid(7, p-7);
- }
- }
- }
- return dict;
-}
-
-TQMap<TQString,TQString> LPRngToolHandler::parseZOptions(const TQString& optstr)
-{
- TQMap<TQString,TQString> opts;
- TQStringList l = TQStringList::split(',', optstr, false);
- if (l.count() == 0)
- return opts;
-
- if (m_dict.count() == 0)
- m_dict = loadChoiceDict(locate("data", "tdeprint/lprngtooldriver1"));
-
- TQString unknown;
- for (TQStringList::ConstIterator it=l.begin(); it!=l.end(); ++it)
- {
- bool found(false);
- for (TQValueList< TQPair<TQString,TQStringList> >::ConstIterator p=m_dict.begin(); p!=m_dict.end() && !found; ++p)
- {
- if ((*p).second.find(*it) != (*p).second.end())
- {
- opts[(*p).first] = (*it);
- found = true;
- }
- }
- if (!found)
- {
- unknown.append(*it).append(',');
- }
- }
- if (!unknown.isEmpty())
- {
- unknown.truncate(unknown.length()-1);
- opts["filter"] = unknown;
- }
- return opts;
-}
-
-TQString LPRngToolHandler::filterDir()
-{
- return driverDirectory();
-}
-
-TQString LPRngToolHandler::driverDirInternal()
-{
- return locateDir("filters", "/usr/lib:/usr/local/lib:/opt/lib:/usr/libexec:/usr/local/libexec:/opt/libexec");
-}
-
-PrintcapEntry* LPRngToolHandler::createEntry(KMPrinter *prt)
-{
- TQString prot = prt->deviceProtocol();
- if (prot != "parallel" && prot != "lpd" && prot != "smb" && prot != "socket")
- {
- manager()->setErrorMsg(i18n("Unsupported backend: %1.").arg(prot));
- return NULL;
- }
- PrintcapEntry *entry = new PrintcapEntry;
- entry->addField("cm", Field::String, prt->description());
- TQString lp, comment("##LPRNGTOOL## ");
- if (prot == "parallel")
- {
- comment.append("DEVICE ");
- lp = prt->device().mid( 9 );
- entry->addField("rw@", Field::Boolean);
- }
- else if (prot == "socket")
- {
- comment.append("SOCKET ");
- KURL url( prt->device() );
- lp = url.host();
- if (url.port() == 0)
- lp.append("%9100");
- else
- lp.append("%").append(TQString::number(url.port()));
- }
- else if (prot == "lpd")
- {
- comment.append("QUEUE ");
- KURL url( prt->device() );
- lp = url.path().mid(1) + "@" + url.host();
- }
- else if (prot == "smb")
- {
- comment.append("SMB ");
- lp = "| " + filterDir() + "/smbprint";
- TQString work, server, printer, user, passwd;
- if ( splitSmbURI( prt->device(), work, server, printer, user, passwd ) )
- {
- entry->addField("xfer_options", Field::String, TQString::tqfromLatin1("authfile=\"auth\" crlf=\"0\" hostip=\"\" host=\"%1\" printer=\"%2\" remote_mode=\"SMB\" share=\"//%3/%4\" workgroup=\"%5\"").arg(server).arg(printer).arg(server).arg(printer).arg(work));
- TQFile authfile(LprSettings::self()->baseSpoolDir() + "/" + prt->printerName() + "/auth");
- if (authfile.open(IO_WriteOnly))
- {
- TQTextStream t(&authfile);
- t << "username=" << user << endl;
- t << "password=" << passwd << endl;
- authfile.close();
- }
- }
- else
- {
- manager()->setErrorMsg( i18n( "Invalid printer backend specification: %1" ).arg( prt->device() ) );
- delete entry;
- return NULL;
- }
- }
-
- if (prt->driver())
- {
- DrMain *driver = prt->driver();
- comment.append("filtertype=IFHP ifhp_options=status@,sync@,pagecount@,waitend@ printerdb_entry=");
- comment.append(driver->get("driverID"));
- entry->addField("ifhp", Field::String, TQString::tqfromLatin1("model=%1,status@,sync@,pagecount@,waitend@").arg(driver->get("driverID")));
- entry->addField("lprngtooloptions", Field::String, TQString::tqfromLatin1("FILTERTYPE=\"IFHP\" IFHP_OPTIONS=\"status@,sync@,pagecount@,waitend@\" PRINTERDB_ENTRY=\"%1\"").arg(driver->get("driverID")));
- TQMap<TQString,TQString> opts;
- TQString optstr;
- driver->getOptions(opts, false);
- for (TQMap<TQString,TQString>::ConstIterator it=opts.begin(); it!=opts.end(); ++it)
- if (it.key() != "lpr")
- optstr.append(*it).append(",");
- if (!optstr.isEmpty())
- {
- optstr.truncate(optstr.length()-1);
- entry->addField("prefix_z", Field::String, optstr);
- }
- if (!opts["lpr"].isEmpty())
- entry->addField("lpr", Field::String, opts["lpr"]);
- }
-
- entry->addField("lp", Field::String, lp);
- entry->comment = comment;
-
- return entry;
-}
-
-bool LPRngToolHandler::savePrinterDriver(KMPrinter*, PrintcapEntry *entry, DrMain *driver, bool *mustSave)
-{
- // save options in the "prefix_z" field and tell the manager to save the printcap file
- TQMap<TQString,TQString> opts;
- TQString optstr;
- driver->getOptions(opts, false);
- for (TQMap<TQString,TQString>::ConstIterator it=opts.begin(); it!=opts.end(); ++it)
- if (it.key() != "lpr")
- optstr.append(*it).append(",");
- if (!optstr.isEmpty())
- optstr.truncate(optstr.length()-1);
- // save options in any case, otherwise nothing will happen whn
- // options are reset to their default value
- entry->addField("prefix_z", Field::String, optstr);
- entry->addField("lpr", Field::String, opts["lpr"]);
- if (mustSave)
- *mustSave = true;
- return true;
-}
-
-TQString LPRngToolHandler::printOptions(KPrinter *printer)
-{
- TQString optstr;
- TQMap<TQString,TQString> opts = printer->options();
- for (TQMap<TQString,TQString>::ConstIterator it=opts.begin(); it!=opts.end(); ++it)
- {
- if (it.key().startsWith("kde-") || it.key().startsWith("_kde-") || it.key() == "lpr" || it.key().startsWith( "app-" ))
- continue;
- optstr.append(*it).append(",");
- }
- if (!optstr.isEmpty())
- {
- optstr.truncate(optstr.length()-1);
- optstr.prepend("-Z '").append("'");
- }
- return optstr;
-}
diff --git a/kdeprint/lpr/lprngtoolhandler.h b/kdeprint/lpr/lprngtoolhandler.h
deleted file mode 100644
index 49641ca3a..000000000
--- a/kdeprint/lpr/lprngtoolhandler.h
+++ /dev/null
@@ -1,54 +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 LPRNGTOOLHANDLER_H
-#define LPRNGTOOLHANDLER_H
-
-#include "lprhandler.h"
-#include <tqmap.h>
-#include <tqstringlist.h>
-#include <tqpair.h>
-
-class LPRngToolHandler : public LprHandler
-{
-public:
- LPRngToolHandler(KMManager *mgr = 0);
-
- bool validate(PrintcapEntry*);
- bool completePrinter(KMPrinter*, PrintcapEntry*, bool = true);
- DrMain* loadDriver(KMPrinter*, PrintcapEntry*, bool = false);
- DrMain* loadDbDriver(const TQString&);
- PrintcapEntry* createEntry(KMPrinter*);
- bool savePrinterDriver(KMPrinter*, PrintcapEntry*, DrMain*, bool* = 0);
- TQString printOptions(KPrinter*);
-
-protected:
- TQMap<TQString,TQString> parseXferOptions(const TQString&);
- void loadAuthFile(const TQString&, TQString&, TQString&);
- TQValueList< TQPair<TQString,TQStringList> > loadChoiceDict(const TQString&);
- TQMap<TQString,TQString> parseZOptions(const TQString&);
- TQString filterDir();
- TQString driverDirInternal();
-
-
-private:
- TQValueList< TQPair<TQString,TQStringList> > m_dict;
-};
-
-#endif
diff --git a/kdeprint/lpr/lprsettings.cpp b/kdeprint/lpr/lprsettings.cpp
deleted file mode 100644
index 0c1cec2a9..000000000
--- a/kdeprint/lpr/lprsettings.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * This file is part of the KDE libraries
- * Copyright (c) 2001,2002 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 "lprsettings.h"
-#include "kmmanager.h"
-#include "kmfactory.h"
-
-#include <kconfig.h>
-#include <tqfile.h>
-#include <tqtextstream.h>
-
-#define LPDCONF "/etc/lpd.conf"
-#define PRINTCAP "/etc/printcap"
-
-LprSettings* LprSettings::m_self = 0;
-
-LprSettings::LprSettings(TQObject *parent, const char *name)
-: TQObject(parent, name), KPReloadObject(true)
-{
- init();
-}
-
-LprSettings::~LprSettings()
-{
- m_self = 0;
-}
-
-LprSettings* LprSettings::self()
-{
- if (!m_self)
- {
- m_self = new LprSettings(KMManager::self(), "LprSettings");
- }
- return m_self;
-}
-
-void LprSettings::init()
-{
- // LPR/LPRng mode
- KConfig *conf = KMFactory::self()->printConfig();
- conf->setGroup("LPR");
- TQString modestr = conf->readEntry("Mode");
- if (modestr == "LPRng")
- m_mode = LPRng;
- else if (modestr == "LPR")
- m_mode = LPR;
- else
- {
- // try to guess
- if (TQFile::exists(LPDCONF))
- m_mode = LPRng;
- else
- m_mode = LPR;
- }
-
- // Printcap file
- m_printcapfile = TQString();
- m_local = true;
-
- // Spool directory
- m_spooldir = "/var/spool/lpd";
-}
-
-TQString LprSettings::printcapFile()
-{
- if (m_printcapfile.isEmpty())
- {
- // default value
- m_printcapfile = PRINTCAP;
- if (m_mode == LPRng)
- {
- // look into /etc/lpd/conf file
- TQFile cf(LPDCONF);
- if (cf.open(IO_ReadOnly))
- {
- TQTextStream t(&cf);
- TQString line;
- while (!t.atEnd())
- {
- line = t.readLine().stripWhiteSpace();
- if (line.startsWith("printcap_path"))
- {
- TQString filename = line.mid(14).stripWhiteSpace();
- if (filename[0] != '|')
- m_printcapfile = filename;
- else
- {
- // should download the printcap file
- // and set m_local to false
- }
- }
- }
- }
- }
- }
- return m_printcapfile;
-}
-
-TQString LprSettings::defaultRemoteHost()
-{
- if (m_defaultremotehost.isEmpty())
- {
- m_defaultremotehost = "localhost";
- TQFile cf(LPDCONF);
- if (cf.open(IO_ReadOnly))
- {
- TQTextStream t(&cf);
- TQString line;
- while (!t.atEnd())
- {
- line = t.readLine().stripWhiteSpace();
- if (line.startsWith("default_remote_host"))
- {
- TQString hostname = line.mid(20).stripWhiteSpace();
- m_defaultremotehost = hostname;
- }
- }
- }
- }
- return m_defaultremotehost;
-}
-
-void LprSettings::reload()
-{
-}
-
-void LprSettings::configChanged()
-{
- init();
-}
diff --git a/kdeprint/lpr/lprsettings.h b/kdeprint/lpr/lprsettings.h
deleted file mode 100644
index 01abbeeb3..000000000
--- a/kdeprint/lpr/lprsettings.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * This file is part of the KDE libraries
- * Copyright (c) 2001,2002 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 LPRSETTINGS_H
-#define LPRSETTINGS_H
-
-#if !defined( _KDEPRINT_COMPILE ) && defined( __GNUC__ )
-#warning internal header, do not use except if you are a KDEPrint developer
-#endif
-
-#include <tqobject.h>
-#include <tdeprint/kpreloadobject.h>
-
-/**
- * @internal
- * This class is internal to KDEPrint and is not intended to be
- * used outside it. Please do not make use of this header, except
- * if you're a KDEPrint developer. The API might change in the
- * future and binary compatibility might be broken.
- */
-class LprSettings : public TQObject, public KPReloadObject
-{
-public:
- LprSettings(TQObject *parent = 0, const char *name = 0);
- ~LprSettings();
-
- static LprSettings* self();
-
- enum Mode { LPR, LPRng };
- Mode mode() const { return m_mode; }
- void setMode(Mode m) { m_mode = m; }
- TQString printcapFile();
- TQString defaultRemoteHost();
- bool isLocalPrintcap() { return m_local; }
- TQString baseSpoolDir() { return m_spooldir; }
-
-protected:
- void init();
- void reload();
- void configChanged();
-
-private:
- static LprSettings* m_self;
- Mode m_mode;
- QString m_printcapfile;
- bool m_local;
- QString m_spooldir;
- TQString m_defaultremotehost;
-};
-
-#endif
diff --git a/kdeprint/lpr/make_driver_db_lpr.c b/kdeprint/lpr/make_driver_db_lpr.c
deleted file mode 100644
index fabbcb2fe..000000000
--- a/kdeprint/lpr/make_driver_db_lpr.c
+++ /dev/null
@@ -1,192 +0,0 @@
-#include <config.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dirent.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <ctype.h>
-
-#include "driverparse.h"
-
-void simplifyModel(const char *modelname)
-{
- char *g;
-
- if ((g=strchr(modelname, ',')) != NULL)
- *g = 0;
- else if ((g=strchr(modelname, '(')) != NULL || (g=strchr(modelname, '{')) != NULL)
- {
- if (g != modelname)
- {
- if (isspace(*(g-1)))
- g--;
- *g = 0;
- }
- }
-}
-
-int parseApsFile(const char *filename, FILE *output)
-{
- FILE *apsfile;
- char buf[256], modelname[256];
- char *c, *d;
-
- apsfile = fopen(filename, "r");
- if (apsfile == NULL)
- return 0;
- while (fgets(buf, 255, apsfile) != NULL)
- {
- if ((c = strchr(buf, '\n')) != NULL)
- *c = 0;
- if (strlen(buf) == 0 || buf[0] == '#' || (c = strchr(buf, '|')) == NULL)
- continue;
- *c = 0;
- fprintf(output, "FILE=apsfilter/%s\n", c+1);
- d = strchr(buf, ' ');
- if (d)
- {
- *d = 0;
- strlcpy(modelname, d+1, 255);
- simplifyModel(modelname);
- fprintf(output, "MANUFACTURER=%s\n", buf);
- fprintf(output, "MODELNAME=%s\n", modelname);
- fprintf(output, "MODEL=%s\n", modelname);
- fprintf(output, "DESCRIPTION=%s %s (APSFilter + %s)\n", buf, d+1, c+1);
- }
- else
- {
- strlcpy(modelname, buf, 255);
- simplifyModel(modelname);
- fprintf(output, "MANUFACTURER=Unknown\n");
- fprintf(output, "MODELNAME=%s\n", modelname);
- fprintf(output, "MODEL=%s\n", modelname);
- fprintf(output, "DESCRIPTION=%s (APSFilter + %s)\n", buf, c+1);
- }
- fprintf(output, "\n");
- }
- fclose(apsfile);
- return 1;
-}
-
-void initAps(const char *base)
-{
- char drFile[256];
- DIR *apsdir;
- struct dirent *d;
- int gsversion = 0;
-
- if (strstr(base, "apsfilter") == NULL)
- return;
-
- apsdir = opendir(base);
- if (apsdir == NULL)
- return;
- while ((d = readdir(apsdir)) != NULL)
- {
- if (strncmp(d->d_name, "printer-", 8) != 0)
- continue;
- if (isdigit(d->d_name[8]))
- {
- if (gsversion)
- continue;
- gsversion = 1;
- }
- snprintf(drFile, 256, "apsfilter:%s/%s", base, d->d_name);
- addFile(drFile);
- }
- closedir(apsdir);
-}
-
-char* nextWord(char *c)
-{
- char *d = c;
- while (*d && isspace(*d))
- d++;
- return d;
-}
-
-int parseIfhpFile(const char *filename, FILE *output)
-{
- char buf[1024];
- FILE *in;
- char model[32], desc[256];
-
- in = fopen(filename, "r");
- if (in == NULL)
- return 0;
- while (fgets(buf, 1023, in))
- {
- char *c;
- if ((c = strchr(buf, '\n')) != NULL)
- *c = 0;
- c = buf;
- while (*c && isspace(*c))
- c++;
- if (*c == '#')
- continue;
- if (strncmp(c, "IfhpModel:", 10) == 0)
- strlcpy(model, nextWord(c+11), 31);
- else if (strncmp(c, "Description:", 12) == 0)
- strlcpy(desc, nextWord(c+13), 255);
- else if (strncmp(c, "EndEntry", 8) == 0)
- {
- char *d = desc, *e, make[32] = {0};
- int first_time = 1;
- do
- {
- e = strchr(d, ',');
- if (e)
- *e = 0;
- if (first_time)
- {
- char *f = strchr(d, ' ');
- if (f)
- strlcpy(make, d, f-d);
- first_time = 0;
- }
- if (strstr(d, "Family") == NULL)
- {
- char modelname[256] = {0};
-
- strlcpy(modelname, d, 255);
- simplifyModel(modelname);
- fprintf(output, "FILE=lprngtool/%s\n", model);
- fprintf(output, "MANUFACTURER=%s\n", make);
- fprintf(output, "MODEL=%s\n", modelname);
- fprintf(output, "MODELNAME=%s\n", modelname);
- fprintf(output, "DESCRIPTION=%s (IFHP + %s)\n", d, model);
- fprintf(output, "\n");
- }
- if (e)
- {
- d = e+1;
- while (*d && isspace(*d))
- d++;
- }
- } while (e);
- }
- }
- fclose(in);
- return 1;
-}
-
-void initIfhp(const char *base)
-{
- char path[256];
-
- snprintf(path, 255, "lprngtool:%s/printerdb", base);
- if (access(path+10, R_OK) == 0)
- {
- addFile(path);
- }
-}
-
-int main(int argc, char **argv)
-{
- initFoomatic();
- registerHandler("apsfilter:", initAps, parseApsFile);
- registerHandler("lprngtool:", initIfhp, parseIfhpFile);
- return execute(argc, argv);
-}
diff --git a/kdeprint/lpr/matichandler.cpp b/kdeprint/lpr/matichandler.cpp
deleted file mode 100644
index ef2f1584b..000000000
--- a/kdeprint/lpr/matichandler.cpp
+++ /dev/null
@@ -1,481 +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 "matichandler.h"
-#include "printcapentry.h"
-#include "kmprinter.h"
-#include "matichelper.h"
-#include "driver.h"
-#include "kpipeprocess.h"
-#include "kmmanager.h"
-#include "kprinter.h"
-#include "lprsettings.h"
-#include "util.h"
-#include "foomatic2loader.h"
-
-#include <klocale.h>
-#include <kstandarddirs.h>
-#include <kapplication.h>
-#include <kdebug.h>
-#include <kprocess.h>
-#include <tqfile.h>
-#include <tqtextstream.h>
-#include <tqregexp.h>
-
-#include <stdlib.h>
-#include <sys/wait.h>
-
-MaticHandler::MaticHandler(KMManager *mgr)
-: LprHandler("foomatic", mgr)
-{
- TQString PATH = getenv("PATH");
- PATH.append(":/usr/sbin:/usr/local/sbin:/opt/sbin:/opt/local/sbin");
- m_exematicpath = KStandardDirs::findExe("lpdomatic", PATH);
- m_ncpath = KStandardDirs::findExe("nc");
- m_smbpath = KStandardDirs::findExe("smbclient");
- m_rlprpath = KStandardDirs::findExe("rlpr");
-}
-
-bool MaticHandler::validate(PrintcapEntry *entry)
-{
- if (entry)
- return (entry->field("if").right(9) == "lpdomatic");
- return false;
-}
-
-KMPrinter* MaticHandler::createPrinter(PrintcapEntry *entry)
-{
- if (entry && validate(entry))
- {
- KMPrinter *prt = new KMPrinter;
- prt->setName(entry->name);
- prt->setPrinterName(entry->name);
- prt->setType(KMPrinter::Printer);
- //if (entry->field("lp") == "/dev/null" || entry->field("lp").isEmpty())
- // prt->addType(KMPrinter::Remote);
- return prt;
- }
- return NULL;
-}
-
-bool MaticHandler::completePrinter(KMPrinter *prt, PrintcapEntry *entry, bool shortmode)
-{
- TQString val = entry->field("lp");
- if (val == "/dev/null" || val.isEmpty())
- {
- prt->setLocation(i18n("Network printer"));
- }
- else
- {
- prt->setLocation(i18n("Local printer on %1").arg(val));
- KURL url(val);
- if (val.find("usb") != -1)
- url.setProtocol("usb");
- else
- url.setProtocol("parallel");
- prt->setDevice(url.url());
- }
- prt->setDescription(entry->aliases.join(", "));
-
- if (!shortmode)
- {
- Foomatic2Loader loader;
- if ( loader.readFromFile( maticFile( entry ) ) )
- {
- TQString postpipe = loader.data()[ "POSTPIPE" ].toString();
- if (!postpipe.isEmpty())
- {
- KURL url ( parsePostpipe(postpipe) );
- if (!url.isEmpty())
- {
- TQString ds = TQString::tqfromLatin1("%1 (%2)").arg(prt->location()).arg(url.protocol());
- prt->setDevice(url.url());
- prt->setLocation(ds);
- }
- }
-
- TQMap<TQString,TQVariant> m = loader.data()[ "VAR" ].toMap();
- if ( !m.isEmpty() )
- {
- prt->setManufacturer(m["make"].toString());
- prt->setModel(m["model"].toString());
- prt->setDriverInfo(TQString::tqfromLatin1("%1 %2 (%3)").arg(prt->manufacturer()).arg(prt->model()).arg(m["driver"].toString()));
- }
- }
- }
-
- return true;
-}
-
-TQString MaticHandler::parsePostpipe(const TQString& s)
-{
- TQString url;
- int p = s.findRev('|');
- TQStringList args = TQStringList::split(" ", s.right(s.length()-p-1));
-
- if (args.count() != 0)
- {
- // socket printer
- if (args[0].right(3) == "/nc")
- {
- url = "socket://" + args[ 1 ];
- if ( args.count() > 2 )
- url += ":" + args[ 2 ];
- else
- url += ":9100";
- }
- // smb printer
- else if (args[0].right(10) == "/smbclient")
- {
- TQStringList host_components = TQStringList::split(TQRegExp("/|\\\\\""), args[1], false);
- TQString workgrp, user, pass;
- for (uint i=2; i<args.count(); i++)
- {
- if (args[i] == "-U")
- user = args[++i];
- else if (args[i] == "-W")
- workgrp = args[++i];
- else if (args[i][0] != '-' && i == 2)
- pass = args[i];
- }
- url = buildSmbURI( workgrp, host_components[ 0 ], host_components[ 1 ], user, pass );
- }
- // remote printer
- else if (args[0].right(5) == "/rlpr")
- {
- uint i=1;
- while (i < args.count())
- {
- if (args[i].left(2) != "-P")
- i++;
- else
- {
- TQString host = (args[i].length() == 2 ? args[i+1] : args[i].right(args[i].length()-2));
- int p = host.find("\\@");
- if (p != -1)
- {
- url = "lpd://" + host.right(host.length()-p-2) + "/" + host.left(p);
- }
- break;
- }
- }
- }
- }
-
- return url;
-}
-
-TQString MaticHandler::createPostpipe(const TQString& _url)
-{
- KURL url( _url );
- TQString prot = url.protocol();
- TQString str;
- if (prot == "socket")
- {
- str += ("| " + m_ncpath);
- str += (" " + url.host());
- if (url.port() != 0)
- str += (" " + TQString::number(url.port()));
- }
- else if (prot == "lpd")
- {
- str += ("| " + m_rlprpath + " -q -h");
- TQString h = url.host(), p = url.path().mid(1);
- str += (" -P " + p + "\\@" + h);
- }
- else if (prot == "smb")
- {
- TQString work, server, printer, user, passwd;
- if ( splitSmbURI( _url, work, server, printer, user, passwd ) )
- {
- str += ("| (\\n echo \\\"print -\\\"\\n cat \\n) | " + m_smbpath);
- str += (" \\\"//" + server + "/" + printer + "\\\"");
- if (!passwd.isEmpty())
- str += (" " + passwd);
- if (!user.isEmpty())
- str += (" -U " + user);
- if (!work.isEmpty())
- str += (" -W " + work);
- str += " -N -P";
- }
- }
- return str;
-}
-
-DrMain* MaticHandler::loadDriver(KMPrinter*, PrintcapEntry *entry, bool)
-{
- // we need to use a copy of the driver, as the driver
- // is not self-contained. If the printer is removed (when
- // changing printer name), the template would be also removed
- TQString origfilename = maticFile(entry);
- TQString filename = locateLocal("tmp", "foomatic_" + kapp->randomString(8));
- ::system(TQFile::encodeName("cp " + KProcess::quote(origfilename) + " " + KProcess::quote(filename)));
- DrMain *driver = Foomatic2Loader::loadDriver(filename);
- if (driver)
- {
- driver->set("template", filename);
- driver->set("temporary", "true");
- return driver;
- }
- else
- return NULL;
-}
-
-DrMain* MaticHandler::loadDbDriver(const TQString& path)
-{
- TQStringList comps = TQStringList::split('/', path, false);
- if (comps.count() < 3 || comps[0] != "foomatic")
- {
- manager()->setErrorMsg(i18n("Internal error."));
- return NULL;
- }
-
- TQString tmpFile = locateLocal("tmp", "foomatic_" + kapp->randomString(8));
- TQString PATH = getenv("PATH") + TQString::tqfromLatin1(":/usr/sbin:/usr/local/sbin:/opt/sbin:/opt/local/sbin");
- TQString exe = KStandardDirs::findExe("foomatic-datafile", PATH);
- if (exe.isEmpty())
- {
- manager()->setErrorMsg(i18n("Unable to find the executable foomatic-datafile "
- "in your PATH. Check that Foomatic is correctly installed."));
- return NULL;
- }
-
- KPipeProcess in;
- TQFile out(tmpFile);
- TQString cmd = KProcess::quote(exe);
- cmd += " -t lpd -d ";
- cmd += KProcess::quote(comps[2]);
- cmd += " -p ";
- cmd += KProcess::quote(comps[1]);
- if (in.open(cmd) && out.open(IO_WriteOnly))
- {
- TQTextStream tin(&in), tout(&out);
- TQString line;
- while (!tin.atEnd())
- {
- line = tin.readLine();
- tout << line << endl;
- }
- in.close();
- out.close();
-
- DrMain *driver = Foomatic2Loader::loadDriver(tmpFile);
- if (driver)
- {
- driver->set("template", tmpFile);
- driver->set("temporary", tmpFile);
- return driver;
- }
- }
- manager()->setErrorMsg(i18n("Unable to create the Foomatic driver [%1,%2]. "
- "Either that driver does not exist, or you don't have "
- "the required permissions to perform that operation.").arg(comps[1]).arg(comps[2]));
- return NULL;
-}
-
-bool MaticHandler::savePrinterDriver(KMPrinter *prt, PrintcapEntry *entry, DrMain *driver, bool*)
-{
- TQFile tmpFile(locateLocal("tmp", "foomatic_" + kapp->randomString(8)));
- TQFile inFile(driver->get("template"));
- TQString outFile = maticFile(entry);
- bool result(false);
- TQString postpipe = createPostpipe(prt->device());
-
- if (inFile.open(IO_ReadOnly) && tmpFile.open(IO_WriteOnly))
- {
- TQTextStream tin(&inFile), tout(&tmpFile);
- TQString line, optname;
- int p(-1), q(-1);
- if (!postpipe.isEmpty())
- tout << "$postpipe = \"" << postpipe << "\";" << endl;
- while (!tin.atEnd())
- {
- line = tin.readLine();
- if (line.stripWhiteSpace().startsWith("$postpipe"))
- continue;
- else if ((p = line.find("'name'")) != -1)
- {
- p = line.find('\'', p+6)+1;
- q = line.find('\'', p);
- optname = line.mid(p, q-p);
- }
- else if ((p = line.find("'default'")) != -1)
- {
- DrBase *opt = driver->findOption(optname);
- if (opt)
- {
- tout << line.left(p+9) << " => '" << opt->valueText() << "'," << endl;
- continue;
- }
- }
- tout << line << endl;
- }
- inFile.close();
- tmpFile.close();
-
- TQString cmd = "mv " + KProcess::quote(tmpFile.name()) + " " + KProcess::quote(outFile);
- int status = ::system(TQFile::encodeName(cmd).data());
- TQFile::remove(tmpFile.name());
- result = (status != -1 && WEXITSTATUS(status) == 0);
- }
-
- if (!result)
- manager()->setErrorMsg(i18n("You probably don't have the required permissions "
- "to perform that operation."));
- TQFile::remove(tmpFile.name());
- if (!result || entry->field("ppdfile").isEmpty())
- return result;
- else
- return savePpdFile(driver, entry->field("ppdfile"));
-}
-
-bool MaticHandler::savePpdFile(DrMain *driver, const TQString& filename)
-{
- TQString mdriver(driver->get("matic_driver")), mprinter(driver->get("matic_printer"));
- if (mdriver.isEmpty() || mprinter.isEmpty())
- return true;
-
- TQString PATH = getenv("PATH") + TQString::tqfromLatin1(":/usr/sbin:/usr/local/sbin:/opt/sbin:/opt/local/sbin");
- TQString exe = KStandardDirs::findExe("foomatic-datafile", PATH);
- if (exe.isEmpty())
- {
- manager()->setErrorMsg(i18n("Unable to find the executable foomatic-datafile "
- "in your PATH. Check that Foomatic is correctly installed."));
- return false;
- }
-
- KPipeProcess in;
- TQFile out(filename);
- if (in.open(exe + " -t cups -d " + mdriver + " -p " + mprinter) && out.open(IO_WriteOnly))
- {
- TQTextStream tin(&in), tout(&out);
- TQString line, optname;
- TQRegExp re("^\\*Default(\\w+):"), foo("'name'\\s+=>\\s+'(\\w+)'"), foo2("'\\w+'\\s*,\\s*$");
- while (!tin.atEnd())
- {
- line = tin.readLine();
- if (line.startsWith("*% COMDATA #"))
- {
- if (line.find("'default'") != -1)
- {
- DrBase *opt = (optname.isEmpty() ? NULL : driver->findOption(optname));
- if (opt)
- {
- line.replace(foo2, "'"+opt->valueText()+"',");
- }
- }
- else if (foo.search(line) != -1)
- optname = foo.cap(1);
- }
- else if (re.search(line) != -1)
- {
- DrBase *opt = driver->findOption(re.cap(1));
- if (opt)
- {
- TQString val = opt->valueText();
- if (opt->type() == DrBase::Boolean)
- val = (val == "1" ? "True" : "False");
- tout << "*Default" << opt->name() << ": " << val << endl;
- continue;
- }
- }
- tout << line << endl;
- }
- in.close();
- out.close();
-
- return true;
- }
- manager()->setErrorMsg(i18n("Unable to create the Foomatic driver [%1,%2]. "
- "Either that driver does not exist, or you don't have "
- "the required permissions to perform that operation.").arg(mdriver).arg(mprinter));
-
- return false;
-}
-
-PrintcapEntry* MaticHandler::createEntry(KMPrinter *prt)
-{
- KURL url( prt->device() );
- TQString prot = url.protocol();
- if ((prot != "lpd" || m_rlprpath.isEmpty()) &&
- (prot != "socket" || m_ncpath.isEmpty()) &&
- (prot != "smb" || m_smbpath.isEmpty()) &&
- prot != "parallel")
- {
- manager()->setErrorMsg(i18n("Unsupported backend: %1.").arg(prot));
- return NULL;
- }
- if (m_exematicpath.isEmpty())
- {
- manager()->setErrorMsg(i18n("Unable to find executable lpdomatic. "
- "Check that Foomatic is correctly installed "
- "and that lpdomatic is installed in a standard "
- "location."));
- return NULL;
- }
- PrintcapEntry *entry = new PrintcapEntry;
- entry->addField("lf", Field::String, "/var/log/lp-errs");
- entry->addField("lp", Field::String, (prot != "parallel" ? "/dev/null" : url.path()));
- entry->addField("if", Field::String, m_exematicpath);
- if (LprSettings::self()->mode() == LprSettings::LPRng)
- {
- entry->addField("filter_options", Field::String, " --lprng $Z /etc/foomatic/lpd/"+prt->printerName()+".lom");
- entry->addField("force_localhost", Field::Boolean);
- entry->addField("ppdfile", Field::String, "/etc/foomatic/"+prt->printerName()+".ppd");
- }
- else
- entry->addField("af", Field::String, "/etc/foomatic/lpd/"+prt->printerName()+".lom");
- if (!prt->description().isEmpty())
- entry->aliases << prt->description();
- return entry;
-}
-
-bool MaticHandler::removePrinter(KMPrinter *prt, PrintcapEntry *entry)
-{
- // remove Foomatic driver
- TQString af = entry->field("af");
- if (af.isEmpty())
- return true;
- if (!TQFile::remove(af))
- {
- manager()->setErrorMsg(i18n("Unable to remove driver file %1.").arg(af));
- return false;
- }
- return true;
-}
-
-TQString MaticHandler::printOptions(KPrinter *printer)
-{
- TQMap<TQString,TQString> opts = printer->options();
- TQString str;
- for (TQMap<TQString,TQString>::Iterator it=opts.begin(); it!=opts.end(); ++it)
- {
- if (it.key().startsWith("kde-") || it.key().startsWith("_kde-") || it.key().startsWith( "app-" ))
- continue;
- str += (" " + it.key() + "=" + (*it));
- }
- if (!str.isEmpty())
- str.prepend("-J '").append("'");
- return str;
-}
-
-TQString MaticHandler::driverDirInternal()
-{
- return locateDir("foomatic/db/source", "/usr/share:/usr/local/share:/opt/share");
-}
diff --git a/kdeprint/lpr/matichandler.h b/kdeprint/lpr/matichandler.h
deleted file mode 100644
index e30eee39e..000000000
--- a/kdeprint/lpr/matichandler.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 MATICHANDLER_H
-#define MATICHANDLER_H
-
-#include "lprhandler.h"
-
-#include <kurl.h>
-
-class MaticBlock;
-
-class MaticHandler : public LprHandler
-{
-public:
- MaticHandler(KMManager *mgr = 0);
-
- bool validate(PrintcapEntry*);
- KMPrinter* createPrinter(PrintcapEntry*);
- bool completePrinter(KMPrinter*, PrintcapEntry*, bool = true);
- DrMain* loadDriver(KMPrinter*, PrintcapEntry*, bool = false);
- DrMain* loadDbDriver(const TQString&);
- bool savePrinterDriver(KMPrinter*, PrintcapEntry*, DrMain*, bool* = 0);
- PrintcapEntry* createEntry(KMPrinter*);
- bool removePrinter(KMPrinter*, PrintcapEntry*);
- TQString printOptions(KPrinter*);
-
-protected:
- TQString driverDirInternal();
-
-private:
- TQString parsePostpipe(const TQString&);
- TQString createPostpipe(const TQString&);
- bool savePpdFile(DrMain*, const TQString&);
-
-private:
- TQString m_exematicpath;
- TQString m_ncpath, m_smbpath, m_rlprpath;
-};
-
-#endif
diff --git a/kdeprint/lpr/matichelper.cpp b/kdeprint/lpr/matichelper.cpp
deleted file mode 100644
index ec0041b7c..000000000
--- a/kdeprint/lpr/matichelper.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * This file is part of the KDE libraries
- * Copyright (c) 2002 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 "matichelper.h"
-#include "printcapentry.h"
-#include "driver.h"
-
-TQString maticFile(PrintcapEntry *entry)
-{
- TQString s(entry->field("af"));
- if (s.isEmpty())
- {
- s = entry->field("filter_options");
- if (!s.isEmpty())
- {
- int p = s.findRev(' ');
- if (p != -1)
- s = s.mid(p+1);
- }
- }
- return s;
-}
diff --git a/kdeprint/lpr/matichelper.h b/kdeprint/lpr/matichelper.h
deleted file mode 100644
index 5a2b64fe3..000000000
--- a/kdeprint/lpr/matichelper.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * This file is part of the KDE libraries
- * Copyright (c) 2002 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 MATICHELPER_H
-#define MATICHELPER_H
-
-#include <tqstring.h>
-
-class PrintcapEntry;
-
-TQString maticFile(PrintcapEntry*);
-
-#endif
diff --git a/kdeprint/lpr/printcapentry.cpp b/kdeprint/lpr/printcapentry.cpp
deleted file mode 100644
index 9c83537e4..000000000
--- a/kdeprint/lpr/printcapentry.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * This file is part of the KDE libraries
- * Copyright (c) 2001,2002 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 "printcapentry.h"
-
-TQString Field::toString() const
-{
- TQString s = name;
- switch (type)
- {
- case String:
- s += ("=" + value);
- break;
- case Integer:
- s += ("#" + value);
- break;
- case Boolean:
- if (!value.toInt())
- s += "@";
- break;
- }
- return s;
-}
-
-bool PrintcapEntry::writeEntry(TQTextStream& t)
-{
- t << comment << endl;
- t << name;
- if (aliases.count() > 0)
- t << '|' << aliases.join("|");
- t << ':';
- for (TQMap<TQString,Field>::ConstIterator it=fields.begin(); it!=fields.end(); ++it)
- {
- t << '\\' << endl << " :";
- t << (*it).name;
- switch ((*it).type)
- {
- case Field::String:
- t << '=' << (*it).value << ':';
- break;
- case Field::Integer:
- t << '#' << (*it).value << ':';
- break;
- case Field::Boolean:
- t << ':';
- break;
- default:
- t << endl << endl;
- return false;
- }
- }
- t << endl;
- if (!postcomment.isEmpty())
- t << postcomment << endl;
- t << endl;
- return true;
-}
-
-void PrintcapEntry::addField(const TQString& name, Field::Type type, const TQString& value)
-{
- Field f;
- f.name = name;
- f.type = type;
- f.value = value;
- fields[name] = f;
-}
diff --git a/kdeprint/lpr/printcapentry.h b/kdeprint/lpr/printcapentry.h
deleted file mode 100644
index f8ba99197..000000000
--- a/kdeprint/lpr/printcapentry.h
+++ /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.
- **/
-
-#ifndef PRINTCAPENTRY_H
-#define PRINTCAPENTRY_H
-
-#if !defined( _KDEPRINT_COMPILE ) && defined( __GNUC__ )
-#warning internal header, do not use except if you are a KDEPrint developer
-#endif
-
-#include <tqstring.h>
-#include <tqmap.h>
-#include <tqstringlist.h>
-#include <tqtextstream.h>
-
-/**
- * @internal
- * This class is internal to KDEPrint and is not intended to be
- * used outside it. Please do not make use of this header, except
- * if you're a KDEPrint developer. The API might change in the
- * future and binary compatibility might be broken.
- */
-class Field
-{
-public:
- enum Type { String, Integer, Boolean };
- Field() : type(String) {}
- Field(const Field &f) : type(f.type), name(f.name), value(f.value) {}
- Field& operator= (const Field& f)
- {
- type = f.type;
- name = f.name;
- value = f.value;
- return (*this);
- }
- TQString toString() const;
-
- Type type;
- TQString name;
- TQString value;
-};
-
-/**
- * @internal
- * This class is internal to KDEPrint and is not intended to be
- * used outside it. Please do not make use of this header, except
- * if you're a KDEPrint developer. The API might change in the
- * future and binary compatibility might be broken.
- */
-class PrintcapEntry
-{
-public:
- TQString name;
- TQStringList aliases;
- TQString comment;
- TQMap<TQString,Field> fields;
- TQString postcomment;
-
- bool has(const TQString& f) const { return fields.contains(f); }
- TQString field(const TQString& f) const { return fields[f].value; }
- bool writeEntry(TQTextStream&);
- void addField(const TQString& name, Field::Type type = Field::Boolean, const TQString& value = TQString::null);
-};
-
-#endif
diff --git a/kdeprint/lpr/printcapreader.cpp b/kdeprint/lpr/printcapreader.cpp
deleted file mode 100644
index 00016c14f..000000000
--- a/kdeprint/lpr/printcapreader.cpp
+++ /dev/null
@@ -1,176 +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 "printcapreader.h"
-#include "printcapentry.h"
-
-#include <tqfile.h>
-#include <kdebug.h>
-
-void PrintcapReader::setPrintcapFile(TQFile *f)
-{
- if (f->isOpen())
- {
- m_stream.setDevice(TQT_TQIODEVICE(f));
- m_buffer = TQString::null;
- }
-}
-
-bool PrintcapReader::nextLine(TQString& line)
-{
- if (m_stream.atEnd() && m_buffer.isEmpty())
- return false;
- else if (!m_buffer.isEmpty())
- {
- line = m_buffer;
- m_buffer = TQString::null;
- }
- else
- line = m_stream.readLine().stripWhiteSpace();
- // strip any '\' at the end
- if (line[line.length()-1] == '\\')
- line = line.left(line.length()-1).stripWhiteSpace();
- return true;
-}
-
-void PrintcapReader::unputLine(const TQString& s)
-{
- m_buffer = s;
-}
-
-PrintcapEntry* PrintcapReader::nextEntry()
-{
- if (!m_stream.tqdevice())
- return NULL;
-
- TQString line, comment, name, fields, buf;
- // skip comments, keep last one
- while (1)
- {
- if (!nextLine(line))
- return NULL;
- else if (line.isEmpty())
- continue;
- else if (line[0] == '#')
- comment = line;
- else
- {
- buf = line;
- break;
- }
- }
-
- // look for the complete entry
- while (1)
- {
- // we found the entry if we reached the end of file or
- // found an empty line
- if (!nextLine(line) || line.isEmpty())
- break;
- // just skip comments
- else if (line[0] == '#')
- continue;
- // lines starting with ':' or '|' are appended
- else if (line[0] == ':' || line[0] == '|')
- buf += line;
- // otherwise it's another entry, put it back in the
- // buffer
- else
- {
- unputLine(line);
- break;
- }
- }
-
- // now parse the entry
- kdDebug() << "COMMENT: " << comment << endl;
- kdDebug() << "LINE: " << buf << endl;
- int p = buf.find(':');
- if (p == -1)
- name = buf;
- else
- {
- name = buf.left(p);
- fields = buf.right(buf.length()-p-1);
- }
-
- // construct the printcap entry
- if (!name.isEmpty())
- {
- PrintcapEntry *entry = new PrintcapEntry;
- TQStringList l = TQStringList::split('|', name, false);
- entry->name = l[0];
- entry->comment = comment;
- // kdDebug() << "Printer: " << entry->name << endl;
- // kdDebug() << "Aliases:" << endl;
- for (uint i=1; i<l.count(); i++)
- {
- entry->aliases << l[i];
- // kdDebug() << " " << l[i] << endl;
- }
- if (!fields.isEmpty())
- {
- // kdDebug() << "Fields:" << endl;
- // kdDebug() << "(" << fields << ")" << endl;
- l = TQStringList::split(':', fields, false);
- for (TQStringList::ConstIterator it=l.begin(); it!=l.end(); ++it)
- {
- Field f;
- int p = (*it).find('=');
- if (p == -1)
- {
- p = (*it).find('#');
- if (p == -1)
- {
- f.type = Field::Boolean;
- p = (*it).find('@');
- if (p == -1)
- {
- f.name = (*it);
- f.value = "1";
- }
- else
- {
- f.name = (*it).left(p);
- f.value = "0";
- }
- }
- else
- {
- f.type = Field::Integer;
- f.name = (*it).left(p);
- f.value = (*it).mid(p+1);
- }
- }
- else
- {
- f.type = Field::String;
- f.name = (*it).left(p);
- f.value = (*it).mid(p+1);
- if (f.value.startsWith("\""))
- f.value = f.value.mid(1, f.value.length()-2);
- }
- entry->fields[f.name] = f;
- }
- }
- // kdDebug() << endl;
- return entry;
- }
- return NULL;
-}
diff --git a/kdeprint/lpr/printcapreader.h b/kdeprint/lpr/printcapreader.h
deleted file mode 100644
index 2236e5068..000000000
--- a/kdeprint/lpr/printcapreader.h
+++ /dev/null
@@ -1,43 +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 PRINTCAPREADER_H
-#define PRINTCAPREADER_H
-
-#include <tqstring.h>
-#include <tqtextstream.h>
-
-class TQFile;
-class PrintcapEntry;
-
-class PrintcapReader
-{
-public:
- void setPrintcapFile(TQFile*);
- PrintcapEntry* nextEntry();
-
-private:
- TQString m_buffer;
- TQTextStream m_stream;
-
- bool nextLine(TQString&);
- void unputLine(const TQString&);
-};
-
-#endif