Example #1
0
void QXmlTreeView::currentNodeChanged(const QModelIndex& current, const QModelIndex& previous)
{
	if (current.isValid() && current.internalPointer() != previous.internalPointer())
	{
		QXmlTreeNode* node(static_cast<QXmlTreeNode*>(current.internalPointer()));
		emit currentNodeChanged(node);
	}
	else if (!current.isValid() && previous.isValid())
	{
		emit currentNodeChanged(0);//qobject_cast<SceneTreeModel*>(model())->m_rootItem);
		clearSelection();
	}
}
void PipelineTreeView::currentNodeChanged(const QModelIndex& current, const QModelIndex& previous)
{
	if (current.isValid() && current.row() != previous.row())
	{
		QXmlTreeNode* node(static_cast<QXmlTreeNode*>(current.internalPointer()));
		emit currentNodeChanged(node);
	}
	else if (!current.isValid() && previous.isValid())
	{
		emit currentNodeChanged(0);
		clearSelection();
	}
}
Example #3
0
void QXmlTreeView::setModel(QAbstractItemModel *model)
{
	QTreeView::setModel(model);
	connect(selectionModel(), SIGNAL(currentChanged(const QModelIndex&, const QModelIndex&)), this, SLOT(currentNodeChanged(const QModelIndex&, const QModelIndex&)));
	currentNodeChanged(currentIndex(), QModelIndex());
}