00001 #ifndef __Q_IBUS_ENGINE_DESC_H_ 00002 #define __Q_IBUS_ENGINE_DESC_H_ 00003 00004 #include <QDebug> 00005 #include <QXmlStreamWriter> 00006 #include <QtXml/QDomNode> 00007 #include "qibusserializable.h" 00008 00009 namespace IBus { 00010 00011 class EngineDesc; 00012 typedef Pointer<EngineDesc> EngineDescPointer; 00013 00014 class EngineDesc : public Serializable 00015 { 00016 Q_OBJECT; 00017 00018 public: 00019 EngineDesc (): m_rank(0) 00020 {} 00021 EngineDesc (QString name, 00022 QString lname, 00023 QString desc, 00024 QString lang, 00025 QString lics, 00026 QString auth, 00027 QString icon, 00028 QString layout): 00029 m_name(name), 00030 m_longname(lname), 00031 m_description(desc), 00032 m_language(lang), 00033 m_license(lics), 00034 m_author(auth), 00035 m_icon(icon), 00036 m_layout(layout) 00037 { 00038 m_engineInfo.insert("name", m_name); 00039 m_engineInfo.insert("longname", m_longname); 00040 m_engineInfo.insert("description", m_description); 00041 m_engineInfo.insert("language", m_language); 00042 m_engineInfo.insert("license", m_license); 00043 m_engineInfo.insert("author", m_author); 00044 m_engineInfo.insert("icon", m_icon); 00045 m_engineInfo.insert("layout", m_layout); 00046 m_engineInfo.insert("rank", 0); 00047 } 00048 00049 virtual ~EngineDesc() {} 00050 00051 public : 00052 virtual bool serialize (QDBusArgument &argument); 00053 virtual bool deserialize (const QDBusArgument &argument); 00054 00055 void output (QString & output) const; 00056 bool parseXmlNode (const QDomNode & node); 00057 00058 const QMap<QString, QString> & getEngineInfo() const 00059 { 00060 return m_engineInfo; 00061 } 00062 00063 private : 00064 QString m_name; 00065 QString m_longname; 00066 QString m_description; 00067 QString m_language; 00068 QString m_license; 00069 QString m_author; 00070 QString m_icon; 00071 QString m_layout; 00072 uint m_rank; 00073 00074 QMap<QString, QString> m_engineInfo; 00075 00076 IBUS_SERIALIZABLE 00077 }; 00078 00079 }; 00080 00081 #endif