ProjectTree: Use signals to communicate change from FlatModel to view

Better encapsulation and potentially more than one view on the model.

Change-Id: I45657484a68eba61b3987d324cf1542704ffd61c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2017-03-01 13:19:51 +01:00
parent f7a778690d
commit aabdc242d5
3 changed files with 11 additions and 15 deletions

View File

@@ -175,7 +175,6 @@ ProjectTreeWidget::ProjectTreeWidget(QWidget *parent) : QWidget(parent)
m_view->setItemDelegate(new ProjectTreeItemDelegate(this));
setFocusProxy(m_view);
m_view->installEventFilter(this);
m_model->setView(m_view);
auto layout = new QVBoxLayout();
layout->addWidget(ItemViewFind::createSearchableWrapper(
@@ -198,12 +197,18 @@ ProjectTreeWidget::ProjectTreeWidget(QWidget *parent) : QWidget(parent)
// connections
connect(m_model, &FlatModel::renamed,
this, &ProjectTreeWidget::renamed);
connect(m_model, &FlatModel::requestExpansion,
m_view, &QTreeView::expand);
connect(m_view, &QAbstractItemView::activated,
this, &ProjectTreeWidget::openItem);
connect(m_view->selectionModel(), &QItemSelectionModel::currentChanged,
this, &ProjectTreeWidget::handleCurrentItemChange);
connect(m_view, &QWidget::customContextMenuRequested,
this, &ProjectTreeWidget::showContextMenu);
connect(m_view, &QTreeView::expanded,
m_model, &FlatModel::onExpanded);
connect(m_view, &QTreeView::collapsed,
m_model, &FlatModel::onCollapsed);
m_toggleSync = new QToolButton;
m_toggleSync->setIcon(Utils::Icons::LINK.icon());