void PipelineTreeView::showRenderTarget(const QModelIndex& index)
{
	if (index.isValid())
	{
		QXmlTreeNode* renderTarget = static_cast<QXmlTreeNode*>(index.internalPointer());
		if (renderTarget->property("Type").toInt() == QPipelineNode::PIPELINERENDERTARGETNODE)
		{
			RenderTargetView* view = new RenderTargetView(this, Qt::Window);
			view->setRenderTarget(renderTarget->xmlNode(), m_pipelineID);
			view->setVisible(true);
			connect(view, SIGNAL(closed(RenderTargetView*)), this, SLOT(removeView(RenderTargetView*)));
			m_renderTargetViews.push_back(view);
		}
void QXmlTreeNode::removeChild(int i)
{
    // Is index valid?
    if (child(i))
    {
        QXmlTreeNode* item = m_childItems.takeAt(i);
        m_xmlNode.removeChild(item->xmlNode());
        delete item;
        // Ensure valid row index of items
        for (int j=i; j<m_childItems.size(); ++j)
            m_childItems.at(j)->m_row = j;
    }
}
Example #3
0
QVariant ExtraTreeModel::data(const QModelIndex &index, int role) const
{
	if (!index.isValid()) return QVariant();

	QXmlTreeNode *item = static_cast<QXmlTreeNode*>(index.internalPointer());
	switch(role)
	{
	case Qt::ToolTipRole:
		return item->property("__ToolTip");
	case Qt::StatusTipRole:
		return item->property("__StatusTip");
	case Qt::DisplayRole:
	case Qt::EditRole:		
		{
			QGameEntityNode* node = qobject_cast<QGameEntityNode*>(item);
			if( node )
			{
				switch( index.column() )
				{
				case 0:
					return node->name();
				case 1:
					return item->xmlNode().tagName();
				case 2:
					return node->ID();
				}
			}
			else return item->xmlNode().tagName();
		}
	case Qt::CheckStateRole:		
		if( index.column() == 0 && item->property("Enabled").isValid() )
			return item->property("Enabled").toBool() ? Qt::Checked : Qt::Unchecked;
	default:
		return QVariant();
	};
}
Example #4
0
void QXmlTreeView::pasteNode()
{
	QXmlTreeModel* treeModel = static_cast<QXmlTreeModel*>(model());
	if( !treeModel ) return;

	QXmlTreeNode* xmlNode = treeModel->rootNode();
	if (currentIndex().isValid())
		xmlNode = static_cast<QXmlTreeNode*>(currentIndex().internalPointer());		

	const QMimeData* mime = QApplication::clipboard()->mimeData();;
	if (mime->hasFormat("text/plain"))
	{
		QDomDocument dom("Paste");
		if (dom.setContent(mime->data("text/plain")))
			treeModel->undoStack()->push(createAddUndoCommand(dom.documentElement(), xmlNode->xmlNode(), treeModel, tr("Paste nodes")));
	}
}
Example #5
0
void QXmlTreeView::copyCurrentNode()
{
	QXmlTreeModel* treeModel = static_cast<QXmlTreeModel*>(model());
	if (!treeModel)	return;
	QString data;
	QTextStream stream(&data);	
	QDomDocument document("Paste");		
	QXmlTreeNode* xmlNode = treeModel->rootNode();
	if (currentIndex().isValid())
		xmlNode = static_cast<QXmlTreeNode*>(currentIndex().internalPointer());		
	document.appendChild(xmlNode->xmlNode().cloneNode());					
	document.save(stream,4);
	QClipboard* clipboard = QApplication::clipboard();
	QMimeData* mime = new QMimeData();
	mime->setData("text/plain", data.toUtf8());	
	clipboard->setMimeData(mime);
}
	AddNodeUndoCommand(const QDomElement& node, const QDomElement& parent, AttachmentTreeModel* model, const QString& text) : QAddXmlNodeUndoCommand(node, parent, model, text)
	{
		QXmlTreeNode* sceneNode = model->sceneNodeParent();
		m_sceneXmlNode = sceneNode->xmlNode();
		m_model = static_cast<QXmlTreeModel*>(sceneNode->model());
	}
	RemoveNodeUndoCommand(QXmlTreeNode* node, const QString& text) : QRemoveXmlNodeUndoCommand(node, text)
	{
		QXmlTreeNode* sceneNode = qobject_cast<AttachmentTreeModel*>(node->model())->sceneNodeParent();
		m_sceneXmlNode = sceneNode->xmlNode();
		m_model = static_cast<QXmlTreeModel*>(sceneNode->model());
	}