From 554029ac31a226878dd728fd4d6577f820a70a22 Mon Sep 17 00:00:00 2001 From: Florian Geyer Date: Fri, 27 Apr 2012 18:45:26 +0200 Subject: [PATCH] Select newly created groups and expand parent. --- src/gui/DatabaseWidget.cpp | 2 ++ src/gui/GroupView.cpp | 14 ++++++++++++-- src/gui/GroupView.h | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp index 007cca08d..66958e545 100644 --- a/src/gui/DatabaseWidget.cpp +++ b/src/gui/DatabaseWidget.cpp @@ -206,6 +206,8 @@ void DatabaseWidget::switchToView(bool accepted) if (m_newGroup) { if (accepted) { m_newGroup->setParent(m_newParent); + m_groupView->setCurrentGroup(m_newGroup); + m_groupView->expandGroup(m_newParent); } else { delete m_newGroup; diff --git a/src/gui/GroupView.cpp b/src/gui/GroupView.cpp index f739abdf5..5e312c9a7 100644 --- a/src/gui/GroupView.cpp +++ b/src/gui/GroupView.cpp @@ -72,14 +72,19 @@ void GroupView::expandedChanged(const QModelIndex& index) void GroupView::recInitExpanded(Group* group) { - QModelIndex index = m_model->index(group); - setExpanded(index, group->isExpanded()); + expandGroup(group, group->isExpanded()); Q_FOREACH (Group* child, group->children()) { recInitExpanded(child); } } +void GroupView::expandGroup(Group* group, bool expand) +{ + QModelIndex index = m_model->index(group); + setExpanded(index, expand); +} + void GroupView::emitGroupChanged(const QModelIndex& index) { Q_EMIT groupChanged(m_model->groupFromIndex(index)); @@ -95,3 +100,8 @@ void GroupView::emitGroupChanged() { Q_EMIT groupChanged(currentGroup()); } + +void GroupView::setCurrentGroup(Group* group) +{ + setCurrentIndex(m_model->index(group)); +} diff --git a/src/gui/GroupView.h b/src/gui/GroupView.h index 9157e95f0..f07cbf027 100644 --- a/src/gui/GroupView.h +++ b/src/gui/GroupView.h @@ -32,6 +32,8 @@ public: explicit GroupView(Database* db, QWidget* parent = 0); void setModel(QAbstractItemModel* model); Group* currentGroup(); + void setCurrentGroup(Group* group); + void expandGroup(Group* group, bool expand = true); Q_SIGNALS: void groupChanged(Group* group);