summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-05-14 22:11:54 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-05-14 22:11:54 (GMT)
commit1f48a865bc052b12c3a156426bd1ebdd5955c74e (patch)
tree3cf40b78dab6364a4d00f925f66e9a6cbe7b596f /Swift/QtUI/Roster/RosterModel.cpp
parente10a0c0902b503bbffdc802aa238c8b6ac4fe210 (diff)
downloadswift-1f48a865bc052b12c3a156426bd1ebdd5955c74e.zip
swift-1f48a865bc052b12c3a156426bd1ebdd5955c74e.tar.bz2
Start roster groups expanded.
Resolves: #343
Diffstat (limited to 'Swift/QtUI/Roster/RosterModel.cpp')
-rw-r--r--Swift/QtUI/Roster/RosterModel.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/Swift/QtUI/Roster/RosterModel.cpp b/Swift/QtUI/Roster/RosterModel.cpp
index d5b4002..00a032d 100644
--- a/Swift/QtUI/Roster/RosterModel.cpp
+++ b/Swift/QtUI/Roster/RosterModel.cpp
@@ -38,10 +38,15 @@ void RosterModel::setRoster(Roster* roster) {
}
void RosterModel::handleGroupAdded(GroupRosterItem* group) {
- view_->setExpanded(index(group), true);
+ emit itemExpanded(index(group), group->isExpanded());
}
-void RosterModel::handleChildrenChanged(GroupRosterItem* /*group*/) {
+void RosterModel::handleChildrenChanged(GroupRosterItem* group) {
+ foreach (RosterItem* item, group->getDisplayedChildren()) {
+ GroupRosterItem* child = dynamic_cast<GroupRosterItem*>(item);
+ if (!child) continue;
+ emit itemExpanded(index(child), child->isExpanded());
+ }
emit layoutChanged();
}
@@ -49,7 +54,10 @@ void RosterModel::handleDataChanged(RosterItem* item) {
Q_ASSERT(item);
QModelIndex modelIndex = index(item);
if (modelIndex.isValid()) {
- //emit itemExpanded(modelIndex, item->isExpanded());
+ GroupRosterItem* group = dynamic_cast<GroupRosterItem*>(item);
+ if (group) {
+ emit itemExpanded(modelIndex, group->isExpanded());
+ }
emit dataChanged(modelIndex, modelIndex);
}
}