You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/kdeprint/kmmanager.h

185 lines
5.8 KiB

/*
* This file is part of the KDE libraries
* Copyright (c) 2001 Michael Goffioul <kdeprint@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 KMMANAGER_H
#define KMMANAGER_H
#if !defined( _KDEPRINT_COMPILE ) && defined( __GNUC__ )
#warning internal header, do not use except if you are a KDEPrint developer
#endif
#include <kdeprint/kmprinter.h>
#include <tqobject.h>
#include <tqstring.h>
#include <tqptrlist.h>
class DrMain;
class KMDBEntry;
class KMVirtualManager;
class KMSpecialManager;
class TQWidget;
class KActionCollection;
class PrinterFilter;
/**
* @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 KDEPRINT_EXPORT KMManager : public TQObject
{
Q_OBJECT
friend class KMVirtualManager;
friend class KMSpecialManager;
friend class KMFactory;
public:
enum PrinterOperations {
PrinterEnabling = 0x01,
PrinterCreation = 0x02,
PrinterDefault = 0x04,
PrinterTesting = 0x08,
PrinterConfigure = 0x10,
PrinterRemoval = 0x20,
PrinterAll = 0xFF
};
enum ServerOperations {
ServerRestarting = 0x1,
ServerConfigure = 0x2,
ServerAll = 0xF
};
KMManager(TQObject *parent = 0, const char *name = 0);
virtual ~KMManager();
static KMManager* self();
// error management functions
TQString errorMsg() const { return m_errormsg; }
void setErrorMsg(const TQString& s) { m_errormsg = s; }
// support management ?
bool hasManagement() const { return m_hasmanagement; }
// printer management functions
virtual bool createPrinter(KMPrinter *p);
virtual bool removePrinter(KMPrinter *p);
virtual bool enablePrinter(KMPrinter *p, bool on);
virtual bool startPrinter(KMPrinter *p, bool on);
virtual bool completePrinter(KMPrinter *p);
virtual bool completePrinterShort(KMPrinter *p);
virtual bool setDefaultPrinter(KMPrinter *p);
virtual bool testPrinter(KMPrinter *p);
bool upPrinter(KMPrinter *p, bool state);
bool modifyPrinter(KMPrinter *oldp, KMPrinter *newp);
bool removePrinter(const TQString& name);
bool enablePrinter(const TQString& name, bool state);
bool startPrinter(const TQString& name, bool state);
bool completePrinter(const TQString& name);
bool setDefaultPrinter(const TQString& name);
int printerOperationMask() const { return m_printeroperationmask; }
int addPrinterWizard(TQWidget *parent = 0);
// special printer management functions
bool createSpecialPrinter(KMPrinter *p);
bool removeSpecialPrinter(KMPrinter *p);
// printer listing functions
KMPrinter* findPrinter(const TQString& name);
TQPtrList<KMPrinter>* printerList(bool reload = true);
TQPtrList<KMPrinter>* printerListComplete(bool reload = true);
KMPrinter* defaultPrinter();
void enableFilter(bool on);
bool isFilterEnabled() const;
// driver DB functions
virtual TQString driverDbCreationProgram();
virtual TQString driverDirectory();
// driver functions
virtual DrMain* loadPrinterDriver(KMPrinter *p, bool config = false);
virtual DrMain* loadDbDriver(KMDBEntry *entry);
virtual DrMain* loadFileDriver(const TQString& filename);
DrMain* loadDriver(KMPrinter *p, bool config = false);
virtual bool savePrinterDriver(KMPrinter *p, DrMain *d);
virtual bool validateDbDriver(KMDBEntry *entry);
// configuration functions
bool invokeOptionsDialog(TQWidget *parent = 0);
virtual TQString stateInformation();
// server functions
int serverOperationMask() const { return m_serveroperationmask; }
virtual bool restartServer();
virtual bool configureServer(TQWidget *parent = 0);
virtual TQStringList detectLocalPrinters();
// additional actions (for print manager)
virtual void createPluginActions(KActionCollection*);
virtual void validatePluginActions(KActionCollection*, KMPrinter*);
// utility function
void checkUpdatePossible();
signals:
void updatePossible(bool);
void printerListUpdated();
protected:
// the real printer listing job is done here
virtual void listPrinters();
// utility functions
void addPrinter(KMPrinter *p); // in any case, the pointer given MUST not be used after
// calling this function. Useful when listing printers.
void setHardDefault(KMPrinter*);
void setSoftDefault(KMPrinter*);
KMPrinter* softDefault() const;
KMPrinter* hardDefault() const;
// this function uncompress the given file (or does nothing
// if the file is not compressed). Returns wether the file was
// compressed or not.
bool uncompressFile(const TQString& srcname, TQString& destname);
bool notImplemented();
void setHasManagement(bool on) { m_hasmanagement = on; }
void setPrinterOperationMask(int m) { m_printeroperationmask = m; }
void setServerOperationMask(int m) { m_serveroperationmask = m; }
TQString testPage();
void discardAllPrinters(bool);
void setUpdatePossible( bool );
virtual void checkUpdatePossibleInternal();
protected:
QString m_errormsg;
KMPrinterList m_printers, m_fprinters; // filtered printers
bool m_hasmanagement;
int m_printeroperationmask;
int m_serveroperationmask;
KMSpecialManager *m_specialmgr;
KMVirtualManager *m_virtualmgr;
PrinterFilter *m_printerfilter;
bool m_updatepossible;
};
#endif