summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-10-02 08:53:43 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-10-02 09:02:15 (GMT)
commit087bc243ffb53e3273580bce5ce66305841a3bff (patch)
treea09a7fd1d564f0e7164198c501d95c949f20b8dd /Swiften/Roster
parent2fb3d3266bd22d84604688dc9ee18b17b211b91d (diff)
downloadswift-087bc243ffb53e3273580bce5ce66305841a3bff.zip
swift-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.cpp4
-rw-r--r--Swiften/Roster/GroupRosterItem.h1
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);