diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-10-02 08:53:43 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-10-02 09:02:15 (GMT) |
commit | 087bc243ffb53e3273580bce5ce66305841a3bff (patch) | |
tree | a09a7fd1d564f0e7164198c501d95c949f20b8dd /Swiften/Roster | |
parent | 2fb3d3266bd22d84604688dc9ee18b17b211b91d (diff) | |
download | swift-contrib-087bc243ffb53e3273580bce5ce66305841a3bff.zip swift-contrib-087bc243ffb53e3273580bce5ce66305841a3bff.tar.bz2 |
Persist roster group expandiness.
Release-Notes: Whether roster groups are expanded or collapsed is now persisted between sessions.
Resolves: #399
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); |