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 QString hotkeys = "",
00030 uint rank = 0):
00031 m_name(name),
00032 m_longname(lname),
00033 m_description(desc),
00034 m_language(lang),
00035 m_license(lics),
00036 m_author(auth),
00037 m_icon(icon),
00038 m_layout(layout),
00039 m_hotkeys(hotkeys),
00040 m_rank(rank)
00041 {
00042 m_engineInfo.insert("name", m_name);
00043 m_engineInfo.insert("longname", m_longname);
00044 m_engineInfo.insert("description", m_description);
00045 m_engineInfo.insert("language", m_language);
00046 m_engineInfo.insert("license", m_license);
00047 m_engineInfo.insert("author", m_author);
00048 m_engineInfo.insert("icon", m_icon);
00049 m_engineInfo.insert("layout", m_layout);
00050 m_engineInfo.insert("hotkeys", m_hotkeys);
00051
00052 QString stringRank;
00053 stringRank = stringRank.number(m_rank);
00054 m_engineInfo.insert("rank", stringRank);
00055 }
00056
00057 virtual ~EngineDesc() {}
00058
00059 public :
00060 virtual bool serialize (QDBusArgument &argument);
00061 virtual bool deserialize (const QDBusArgument &argument);
00062
00063 void output (QString & output) const;
00064 bool parseXmlNode (const QDomNode & node);
00065
00066 const QMap<QString, QString> & getEngineInfo() const
00067 {
00068 return m_engineInfo;
00069 }
00070
00071 private :
00072 QString m_name;
00073 QString m_longname;
00074 QString m_description;
00075 QString m_language;
00076 QString m_license;
00077 QString m_author;
00078 QString m_icon;
00079 QString m_layout;
00080 QString m_hotkeys;
00081 uint m_rank;
00082
00083 QMap<QString, QString> m_engineInfo;
00084
00085 IBUS_SERIALIZABLE
00086 };
00087
00088 };
00089
00090 #endif