00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef QIMSYSABSTRACTPLUGINOBJECT_H
00022 #define QIMSYSABSTRACTPLUGINOBJECT_H
00023
00024 #include "qimsysglobal.h"
00025 #include <QObject>
00026 #include <QIcon>
00027
00028 class QimsysSettingsWidget;
00029
00030 class QIMSYS_EXPORT QimsysAbstractPluginObject : public QObject
00031 {
00032 Q_OBJECT
00033 Q_PROPERTY(QIcon icon READ icon WRITE setIcon NOTIFY iconChanged)
00034 Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
00035 Q_PROPERTY(QString description READ description WRITE setDescription NOTIFY descriptionChanged)
00036 Q_PROPERTY(QString author READ author WRITE setAuthor NOTIFY authorChanged)
00037 Q_PROPERTY(QString url READ url WRITE setUrl NOTIFY urlChanged)
00038 Q_PROPERTY(QString translator READ translator WRITE setTranslator NOTIFY translatorChanged)
00039 Q_PROPERTY(QString license READ license WRITE setLicense NOTIFY licenseChanged)
00040 Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged)
00041 Q_PROPERTY(QStringList groups READ groups WRITE setGroups)
00042 Q_PROPERTY(CategoryType categoryType READ categoryType WRITE setCategoryType)
00043 Q_PROPERTY(QString categoryName READ categoryName WRITE setCategoryName)
00044 public:
00045 enum CategoryType {
00046 Hidden = 0x00,
00047 CanBeNone = 0x01,
00048 AlwaysOne = 0x02,
00049 MoreThanOne = 0x04,
00050 OneOrNone = 0x08,
00051 All = 0x10,
00052 };
00053 QimsysAbstractPluginObject(QObject *parent = 0);
00054 ~QimsysAbstractPluginObject();
00055
00056 virtual const QIcon &icon() const;
00057 virtual const QString &name() const;
00058 virtual const QString &description() const;
00059 virtual const QString &author() const;
00060 virtual const QString &url() const;
00061 virtual const QString &translator() const;
00062 virtual const QString &license() const;
00063
00064 bool isEnabled() const;
00065
00066 virtual const QStringList &groups() const;
00067 virtual CategoryType categoryType() const;
00068 virtual const QString &categoryName() const;
00069 virtual QimsysSettingsWidget *settings(const QString &hint, QWidget *parent = 0);
00070
00071 public slots:
00072 void setEnabled(bool enabled);
00073
00074 signals:
00075 void iconChanged(const QIcon &icon);
00076 void nameChanged(const QString &name);
00077 void descriptionChanged(const QString &description);
00078 void authorChanged(const QString &author);
00079 void urlChanged(const QString &url);
00080 void translatorChanged(const QString &translator);
00081 void licenseChanged(const QString &license);
00082
00083 protected slots:
00084 virtual void setIcon(const QIcon &icon);
00085 virtual void setName(const QString &name);
00086 virtual void setDescription(const QString &description);
00087 virtual void setAuthor(const QString &author);
00088 virtual void setUrl(const QString &url);
00089 virtual void setTranslator(const QString &translator);
00090 virtual void setLicense(const QString &license);
00091 virtual void setGroups(const QStringList &groups);
00092 virtual void setCategoryType(CategoryType categoryType);
00093 virtual void setCategoryName(const QString &categoryName);
00094
00095 signals:
00096 void enabledChanged(bool enabled);
00097
00098 private:
00099 class Private;
00100 Private *d;
00101 };
00102
00103 #endif//QIMSYSABSTRACTPLUGINOBJECT_H