ibus-qt 1.3.0
|
00001 #ifndef __Q_IBUS_COMPONENT_H_ 00002 #define __Q_IBUS_COMPONENT_H_ 00003 00004 #include <QFile> 00005 #include <QDebug> 00006 #include <QVector> 00007 #include <QProcess> 00008 #include <QXmlStreamWriter> 00009 #include <QtXml/QDomNode> 00010 #include "qibusserializable.h" 00011 #include "qibusenginedesc.h" 00012 #include "qibusobservedpath.h" 00013 00014 namespace IBus { 00015 00016 class Component; 00017 typedef Pointer<Component> ComponentPointer; 00018 00019 class Component : public Serializable 00020 { 00021 Q_OBJECT; 00022 00023 public: 00024 Component () {} 00025 Component (const QString & name, 00026 const QString & desc, 00027 const QString & vers, 00028 const QString & lics, 00029 const QString & auth, 00030 const QString & hmpg, 00031 const QString & exec, 00032 const QString & textdomain): 00033 m_name(name), 00034 m_description(desc), 00035 m_version(vers), 00036 m_license(lics), 00037 m_author(auth), 00038 m_homepage(hmpg), 00039 m_exec(exec), 00040 m_textdomain(textdomain) {} 00041 00042 virtual ~Component () {} 00043 00044 public: 00045 virtual bool serialize (QDBusArgument &argument); 00046 virtual bool deserialize (const QDBusArgument &argument); 00047 00048 void output (QString &output) const; 00049 bool parseXmlNode (const QDomNode &node); 00050 // bool parseEnginesNode (QDomNode &node); 00051 // bool parseObservedPaths (const QDomNode &node); 00052 00053 void addObservedPath (const ObservedPathPointer &obsPath); 00054 void addEngine (const EngineDescPointer &edp); 00055 00056 QVector<ObservedPathPointer> observedPaths () const; 00057 const QVector<EngineDescPointer> & engines () const; 00058 00059 #if 0 00060 00061 bool start (bool verbose) const; 00062 bool stop () const; 00063 bool isRunning () const; 00064 bool isComponentModified () const; 00065 const ComponentPointer getComponentFromEngine (EngineDescPointer edp) const; 00066 00067 00068 friend bool newComponentFromFile (Component &obj, const QString & filename); 00069 00070 private: 00071 const QDomDocument * parseXmlFile (const QString & filename) const; 00072 const QDomDocument * parseXmlBuffer (const QByteArray & buf); 00073 00074 #endif 00075 00076 private: 00077 QString m_name; 00078 QString m_description; 00079 QString m_version; 00080 QString m_license; 00081 QString m_author; 00082 QString m_homepage; 00083 QString m_exec; 00084 QString m_textdomain; 00085 00086 QVector<ObservedPathPointer> m_observedPaths; 00087 QVector<EngineDescPointer> m_engines; 00088 00089 IBUS_SERIALIZABLE 00090 }; 00091 00092 }; 00093 00094 #endif