00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef KMFACTORY_H
00022
#define KMFACTORY_H
00023
00024
#include <qstring.h>
00025
#include <qvaluelist.h>
00026
#include <qstringlist.h>
00027
#include <qptrlist.h>
00028
#include <qobject.h>
00029
#include <qpair.h>
00030
#include <dcopobject.h>
00031
00032
#include <sys/types.h>
00033
00034
class KMManager;
00035
class KMJobManager;
00036
class KMUiManager;
00037
class KMVirtualManager;
00038
class KXmlCommandManager;
00039
class KMSpecialManager;
00040
class KPrinterImpl;
00041
class KLibFactory;
00042
class KConfig;
00043
class KPReloadObject;
00044
00045
class KMFactory :
public QObject,
public DCOPObject
00046 {
00047 Q_OBJECT
00048 K_DCOP
00049
00050
public:
00051
struct PluginInfo
00052 {
00053
QString name;
00054
QString comment;
00055
QStringList detectUris;
00056
int detectPrecedence;
00057
QStringList mimeTypes;
00058
QString primaryMimeType;
00059 };
00060
00061
static KMFactory*
self();
00062
static bool exists();
00063
static void release();
00064
00065 KMFactory();
00066 ~KMFactory();
00067
00068 KMManager* manager();
00069 KMJobManager* jobManager();
00070 KMUiManager* uiManager();
00071 KMVirtualManager* virtualManager();
00072 KMSpecialManager* specialManager();
00073 KXmlCommandManager* commandManager();
00074 KPrinterImpl* printerImplementation();
00075 KConfig* printConfig(
const QString& group = QString::null);
00076
QString printSystem();
00077
QValueList<PluginInfo> pluginList();
00078 PluginInfo pluginInfo(
const QString& name);
00079
void saveConfig();
00080
00081
void reload(
const QString& syst,
bool saveSyst =
true);
00082
void registerObject(KPReloadObject*,
bool =
false);
00083
void unregisterObject(KPReloadObject*);
00084
00085
struct Settings
00086 {
00087
int application;
00088
int standardDialogPages;
00089
int pageSelection;
00090
int orientation;
00091
int pageSize;
00092 };
00093 Settings* settings()
const {
return m_settings; }
00094
00095
QPair<QString,QString> requestPassword(
int& seqNbr,
const QString& user,
const QString& host =
"localhost",
int port = 0 );
00096
void initPassword(
const QString& user,
const QString& password,
const QString& host =
"localhsot",
int port = 0 );
00097
00098 k_dcop:
00099 ASYNC slot_pluginChanged(pid_t);
00100 ASYNC slot_configChanged();
00101
00102 k_dcop_signals:
00103
void pluginChanged(pid_t);
00104
void configChanged();
00105
00106
private:
00107
void createManager();
00108
void createJobManager();
00109
void createUiManager();
00110
void createPrinterImpl();
00111
void loadFactory(
const QString& syst = QString::null);
00112
void unload();
00113
QString autoDetect();
00114
00115
private:
00116
static KMFactory *m_self;
00117
00118 KMManager *m_manager;
00119 KMJobManager *m_jobmanager;
00120 KMUiManager *m_uimanager;
00121 KPrinterImpl *m_implementation;
00122 KLibFactory *m_factory;
00123
00124 KConfig *m_printconfig;
00125 Settings *m_settings;
00126
QPtrList<KPReloadObject> m_objects;
00127 };
00128
00129
#endif