diff options
Diffstat (limited to 'Swiften/Roster')
-rw-r--r-- | Swiften/Roster/GroupRosterItem.cpp | 4 | ||||
-rw-r--r-- | Swiften/Roster/GroupRosterItem.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/Swiften/Roster/GroupRosterItem.cpp b/Swiften/Roster/GroupRosterItem.cpp index aa9fdd4..325c890 100644 --- a/Swiften/Roster/GroupRosterItem.cpp +++ b/Swiften/Roster/GroupRosterItem.cpp @@ -31,7 +31,11 @@ bool GroupRosterItem::isExpanded() const { to avoid a loop in this case. */ void GroupRosterItem::setExpanded(bool expanded) { + bool old = expanded_; expanded_ = expanded; + if (expanded != old) { + onExpandedChanged(expanded); + } } const std::vector<RosterItem*>& GroupRosterItem::getChildren() const { diff --git a/Swiften/Roster/GroupRosterItem.h b/Swiften/Roster/GroupRosterItem.h index 67ced97..b306b59 100644 --- a/Swiften/Roster/GroupRosterItem.h +++ b/Swiften/Roster/GroupRosterItem.h @@ -29,6 +29,7 @@ class GroupRosterItem : public RosterItem { static bool itemLessThanWithoutStatus(const RosterItem* left, const RosterItem* right); void setExpanded(bool expanded); bool isExpanded() const; + boost::signal<void (bool)> onExpandedChanged; private: void handleChildrenChanged(GroupRosterItem* group); void handleDataChanged(RosterItem* item); |