diff --git a/include/transport/localbuddy.h b/include/transport/localbuddy.h index c8f811748fc2b3d14cc91a5e6b5083f0a286ee2a..16bf12c14de6ff79d81fc601d048f6ff409c5e2d 100644 --- a/include/transport/localbuddy.h +++ b/include/transport/localbuddy.h @@ -51,10 +51,20 @@ class LocalBuddy : public Buddy { } std::string getIconHash() { return m_iconHash; } - void setIconHash(const std::string &iconHash) { m_iconHash = iconHash; } + void setIconHash(const std::string &iconHash) { + bool changed = m_iconHash != iconHash; + m_iconHash = iconHash; + if (changed) + getRosterManager()->storeBuddy(this); + } std::vector getGroups() { return m_groups; } - void setGroups(const std::vector &groups) { m_groups = groups; } + void setGroups(const std::vector &groups) { + bool changed = m_groups.size() != groups.size(); + m_groups = groups; + if (changed) + getRosterManager()->storeBuddy(this); + } private: std::string m_name;