diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-05-25 14:10:34 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-05-25 14:10:34 (GMT) |
commit | de03e428157ee60c5d8a13ef121127203f455b3f (patch) | |
tree | ee46edb01f6f2cc078bdeab5230cd2e05d3430bb | |
parent | a6caf0f52dbb24577e3730d9c42415e89e18a99b (diff) | |
download | swift-de03e428157ee60c5d8a13ef121127203f455b3f.zip swift-de03e428157ee60c5d8a13ef121127203f455b3f.tar.bz2 |
Expand roster groups on a single click.
Resolves: #212
-rw-r--r-- | Swift/QtUI/Roster/QtTreeWidget.cpp | 10 | ||||
-rw-r--r-- | Swift/QtUI/Roster/QtTreeWidget.h | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/Swift/QtUI/Roster/QtTreeWidget.cpp b/Swift/QtUI/Roster/QtTreeWidget.cpp index ba57421..997c1f6 100644 --- a/Swift/QtUI/Roster/QtTreeWidget.cpp +++ b/Swift/QtUI/Roster/QtTreeWidget.cpp @@ -35,9 +35,9 @@ QtTreeWidget::QtTreeWidget(UIEventStream* eventStream, QWidget* parent) : QTreeV setRootIsDecorated(true); connect(this, SIGNAL(activated(const QModelIndex&)), this, SLOT(handleItemActivated(const QModelIndex&))); connect(model_, SIGNAL(itemExpanded(const QModelIndex&, bool)), this, SLOT(handleModelItemExpanded(const QModelIndex&, bool))); -// connect(model_, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)), this, SLOT(handleDataChanged(const QModelIndex&, const QModelIndex&))); connect(this, SIGNAL(expanded(const QModelIndex&)), this, SLOT(handleExpanded(const QModelIndex&))); connect(this, SIGNAL(collapsed(const QModelIndex&)), this, SLOT(handleCollapsed(const QModelIndex&))); + connect(this, SIGNAL(clicked(const QModelIndex&)), this, SLOT(handleClicked(const QModelIndex&))); } QtTreeWidget::~QtTreeWidget() { @@ -58,6 +58,14 @@ QtTreeWidgetItem* QtTreeWidget::getRoot() { return treeRoot_; } +void QtTreeWidget::handleClicked(const QModelIndex& index) { + GroupRosterItem* item = dynamic_cast<GroupRosterItem*>(static_cast<RosterItem*>(index.internalPointer())); + if (item) { + setExpanded(index, !isExpanded(index)); + } +} + + void QtTreeWidget::handleItemActivated(const QModelIndex& index) { RosterItem* item = static_cast<RosterItem*>(index.internalPointer()); ContactRosterItem* contact = dynamic_cast<ContactRosterItem*>(item); diff --git a/Swift/QtUI/Roster/QtTreeWidget.h b/Swift/QtUI/Roster/QtTreeWidget.h index b45701e..796afed 100644 --- a/Swift/QtUI/Roster/QtTreeWidget.h +++ b/Swift/QtUI/Roster/QtTreeWidget.h @@ -31,7 +31,7 @@ class QtTreeWidget : public QTreeView{ void handleModelItemExpanded(const QModelIndex&, bool expanded); void handleExpanded(const QModelIndex&); void handleCollapsed(const QModelIndex&); -// void handleDataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight); + void handleClicked(const QModelIndex&); protected: void contextMenuEvent(QContextMenuEvent* event); |