kxmlcommand.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KXMLCOMMAND_H
00021 #define KXMLCOMMAND_H
00022
00023 #include <qdom.h>
00024 #include <qmap.h>
00025 #include <qobject.h>
00026
00027 class DrMain;
00028 class DrGroup;
00029 class DrBase;
00030
00031 class KXmlCommand : public QObject
00032 {
00033 friend class KXmlCommandManager;
00034
00035 public:
00036 ~KXmlCommand();
00037
00038 QString name() const;
00039 void setName(const QString&);
00040 QString command();
00041 void setCommand(const QString&);
00042 DrMain* driver();
00043 DrMain* takeDriver();
00044 void setDriver(DrMain*);
00045 QString io(bool io_input = true, bool io_pipe = false);
00046 void setIo(const QString&, bool io_input = true, bool io_pipe = false);
00047 QString description();
00048 void setDescription(const QString&);
00049 QString mimeType();
00050 void setMimeType(const QString&);
00051 bool acceptMimeType(const QString&);
00052 QStringList inputMimeTypes();
00053 void setInputMimeTypes(const QStringList&);
00054 QStringList requirements();
00055 void setRequirements(const QStringList&);
00056 QString comment();
00057 void setComment( const QString& );
00058 bool isValid();
00059
00060 QString buildCommand(const QMap<QString,QString>& opts, bool pipein = true, bool pipeout = true);
00061 void setOptions(const QMap<QString,QString>& opts);
00062 void getOptions(QMap<QString,QString>& opts, bool incldef = false);
00063
00064 protected:
00065 void init();
00066 void loadXml();
00067 void saveXml();
00068 void loadDesktop();
00069 void saveDesktop();
00070 void check(bool use_xml = false);
00071 DrGroup* parseGroup(const QDomElement& e, DrGroup *grp = 0);
00072 DrBase* parseArgument(const QDomElement& e);
00073 void parseIO(const QDomElement& e, int n);
00074 QDomElement createIO(QDomDocument&, int, const QString&);
00075 QDomElement createGroup(QDomDocument&, DrGroup*);
00076 QDomElement createElement(QDomDocument&, DrBase*);
00077
00078
00079
00080 KXmlCommand(const QString& xmlId = QString::null);
00081
00082 private:
00083 class KXmlCommandPrivate;
00084 KXmlCommandPrivate *d;
00085 };
00086
00087 class KXmlCommandManager : public QObject
00088 {
00089 public:
00090 enum IO_CheckType { None = 0, Basic, Advanced };
00091
00092 KXmlCommandManager();
00093 ~KXmlCommandManager();
00094
00095 KXmlCommand* loadCommand(const QString& xmlId, bool check = false);
00096 void saveCommand(KXmlCommand *xmlCmd);
00097 QStringList commandList();
00098 QStringList commandListWithDescription();
00099 QString selectCommand(QWidget *parent = 0);
00100
00101 QStringList autoConvert(const QString& mimesrc, const QString& mimedest);
00102 int insertCommand(QStringList& list, const QString& filtername, bool defaultToStart = true);
00103 bool checkCommand(const QString&, int inputCheck = Advanced, int outputCheck = Advanced, QString *msg = 0);
00104 bool configure(KXmlCommand*, QWidget *parent = 0);
00105 void cleanUp();
00106
00107 static KXmlCommandManager* self();
00108
00109 protected:
00110 void preload();
00111 KXmlCommand* command(const QString&) const;
00112
00113 private:
00114 class KXmlCommandManagerPrivate;
00115 KXmlCommandManagerPrivate *d;
00116 static KXmlCommandManager *m_self;
00117 };
00118
00119 #endif
This file is part of the documentation for kdeprint Library Version 3.2.0.