kmlprmanager.h

00001 /*
00002  *  This file is part of the KDE libraries
00003  *  Copyright (c) 2001 Michael Goffioul <kdeprint@swing.be>
00004  *
00005  *  This library is free software; you can redistribute it and/or
00006  *  modify it under the terms of the GNU Library General Public
00007  *  License version 2 as published by the Free Software Foundation.
00008  *
00009  *  This library is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  *  Library General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU Library General Public License
00015  *  along with this library; see the file COPYING.LIB.  If not, write to
00016  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017  *  Boston, MA 02110-1301, USA.
00018  **/
00019 
00020 #ifndef KMLRMANAGER_H
00021 #define KMLRMANAGER_H
00022 
00023 #include "kmmanager.h"
00024 
00025 #include <qdict.h>
00026 #include <qptrlist.h>
00027 #include <qdatetime.h>
00028 #include <kurl.h>
00029 
00030 class LprHandler;
00031 class PrintcapEntry;
00032 class LpcHelper;
00033 class KPrinter;
00034 
00035 class KMLprManager : public KMManager
00036 {
00037     Q_OBJECT
00038 public:
00039     KMLprManager(QObject *parent, const char *name, const QStringList & /*args*/);
00040 
00041     bool completePrinter(KMPrinter*);
00042     bool completePrinterShort(KMPrinter*);
00043     bool enablePrinter(KMPrinter*, bool);
00044     bool startPrinter(KMPrinter*, bool);
00045     bool savePrinterDriver(KMPrinter*, DrMain*);
00046     DrMain* loadPrinterDriver(KMPrinter*, bool = false);
00047     DrMain* loadFileDriver(const QString&);
00048     bool createPrinter(KMPrinter*);
00049     bool removePrinter(KMPrinter*);
00050 
00051     QString driverDbCreationProgram();
00052     QString driverDirectory();
00053 
00054     LpcHelper* lpcHelper()  { return m_lpchelper; }
00055     QString printOptions(KPrinter*);
00056 
00057     void createPluginActions(KActionCollection*);
00058     void validatePluginActions(KActionCollection*, KMPrinter*);
00059     QString stateInformation();
00060 
00061 protected slots:
00062     void slotEditPrintcap();
00063 
00064 protected:
00065     void listPrinters();
00066     void initHandlers();
00067     void insertHandler(LprHandler*);
00068     PrintcapEntry* findEntry(KMPrinter*);
00069     LprHandler* findHandler(KMPrinter*);
00070     void checkPrinterState(KMPrinter*);
00071     bool savePrintcapFile();
00072 
00073 private:
00074     QDict<LprHandler>   m_handlers;
00075     QPtrList<LprHandler>    m_handlerlist;
00076     QDict<PrintcapEntry>    m_entries;
00077     QDateTime       m_updtime;
00078     LpcHelper       *m_lpchelper;
00079     KMPrinter       *m_currentprinter;
00080 };
00081 
00082 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys