X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fsyncableobject.h;h=dfe3887dce2a6a6c1a44c89f6fb374fc93f28521;hp=1eb8ed488e8b5d334dc58e2cf4f5ba9886838998;hb=3c2914faeb01f3bc32e29f40179ae88040fbcf59;hpb=1ed8c48b0e7d309e1a92c905a19fcb7128b73d3d diff --git a/src/common/syncableobject.h b/src/common/syncableobject.h index 1eb8ed48..dfe3887d 100644 --- a/src/common/syncableobject.h +++ b/src/common/syncableobject.h @@ -18,8 +18,8 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _SYNCABLEOBJECT_H_ -#define _SYNCABLEOBJECT_H_ +#ifndef SYNCABLEOBJECT_H +#define SYNCABLEOBJECT_H #include #include @@ -31,6 +31,7 @@ class SyncableObject : public QObject { public: SyncableObject(QObject *parent = 0); + SyncableObject(const QString &objectName, QObject *parent = 0); SyncableObject(const SyncableObject &other, QObject *parent = 0); //! Stores the object's state into a QVariantMap. @@ -45,29 +46,40 @@ public: * \return The object's state in a QVariantMap */ virtual QVariantMap toVariantMap(); - + //! Initialize the object's state from a given QVariantMap. /** \see toVariantMap() for important information concerning this method. */ - virtual void fromVariantMap(const QVariantMap &map); + virtual void fromVariantMap(const QVariantMap &properties); virtual bool isInitialized() const; + virtual const QMetaObject *syncMetaObject() const { return metaObject(); }; + + inline void setAllowClientUpdates(bool allow) { _allowClientUpdates = allow; } + inline bool allowClientUpdates() const { return _allowClientUpdates; } + public slots: virtual void setInitialized(); + void requestUpdate(const QVariantMap &properties); + virtual void update(const QVariantMap &properties); protected: void renameObject(const QString &newName); - + SyncableObject &operator=(const SyncableObject &other); + signals: void initDone(); void updatedRemotely(); + void updated(const QVariantMap &properties); + void updateRequested(const QVariantMap &properties); void objectRenamed(QString newName, QString oldName); private: bool setInitValue(const QString &property, const QVariant &value); - + bool _initialized; + bool _allowClientUpdates; };