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