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