Ejemplo n.º 1
0
void HierarchyTreeController::ReturnNodeToScene(const HierarchyTreeNode::HIERARCHYTREENODESLIST& nodesToReturn)
{
	
	for (HierarchyTreeNode::HIERARCHYTREENODESLIST::const_iterator iter = nodesToReturn.begin();
		 iter != nodesToReturn.end(); iter ++)
	{
		HierarchyTreeNode* nodeToReturn = (*iter);
		if (nodeToReturn)
		{
			nodeToReturn->ReturnTreeNodeToScene();
			UnregisterNodeDeletedFromScene(nodeToReturn);
		}
	}

	emit HierarchyTreeUpdated();
	ResetSelectedControl();

	// Select the first one, if any.
	if (nodesToReturn.size() == 0 )
	{
		return;
	}

	HierarchyTreeControlNode* controlNode = dynamic_cast<HierarchyTreeControlNode*>(nodesToReturn.front());
	if (controlNode)
	{
		SelectControl(controlNode);
	}
}
Ejemplo n.º 2
0
bool HierarchyTreeController::Load(const QString& projectPath)
{
	CloseProject();
	
	bool res = hierarchyTree.Load(projectPath);
	if (res)
	{
		emit HierarchyTreeUpdated();
		emit ProjectLoaded();
	}
	return res;
}
Ejemplo n.º 3
0
HierarchyTreeWidget::HierarchyTreeWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::HierarchyTreeWidget)
{
    ui->setupUi(this);
	
	connect(HierarchyTreeController::Instance(), SIGNAL(HierarchyTreeUpdated()), this, SLOT(OnTreeUpdated()));
	connect(HierarchyTreeController::Instance(),
			SIGNAL(SelectedControlNodesChanged(const HierarchyTreeController::SELECTEDCONTROLNODES &)),
			this,
			SLOT(OnSelectedControlNodesChanged(const HierarchyTreeController::SELECTEDCONTROLNODES &)));
	
	connect(ui->treeWidget, SIGNAL(ShowCustomMenu(const QPoint&)), this, SLOT(OnShowCustomMenu(const QPoint&)));
	internalSelectionChanged = false;
}
Ejemplo n.º 4
0
void HierarchyTreeController::ReturnNodeToScene(HierarchyTreeNode* nodeToReturn)
{
	if (!nodeToReturn)
	{
		return;
	}

	nodeToReturn->ReturnTreeNodeToScene();
	UnregisterNodeDeletedFromScene(nodeToReturn);

	emit HierarchyTreeUpdated();
	ResetSelectedControl();
	
	HierarchyTreeControlNode* controlNode = dynamic_cast<HierarchyTreeControlNode*>(nodeToReturn);
	if (controlNode)
	{
		SelectControl(controlNode);
	}
}
Ejemplo n.º 5
0
HierarchyTreeNode::HIERARCHYTREENODEID HierarchyTreeController::CreateNewControl(const QString& strType, const QPoint& position)
{
	if (!activeScreen)
	{
		return HierarchyTreeNode::HIERARCHYTREENODEID_EMPTY;
	}
		
    // Create the control itself.
	String type = strType.toStdString();
	String newName = activeScreen->GetNewControlName(type);

	HierarchyTreeNode* parentNode = activeScreen;
	Vector2 parentDelta(0, 0);
	if (activeControlNodes.size() == 1)
	{
		HierarchyTreeControlNode* parentControlNode = (*activeControlNodes.begin());
		parentNode = parentControlNode;
		//parentDelta = parentControlNode->GetUIObject()->GetPosition();
		parentDelta = parentControlNode->GetParentDelta();
	}
	
	Vector2 point = Vector2(position.x(), position.y());
	DefaultScreen* screen = ScreenWrapper::Instance()->GetActiveScreen();
	if (screen)
		point = screen->LocalToInternal(point);
	point -= parentDelta;

    // Add the tree node - we need it before initializing control.
	HierarchyTreeControlNode* controlNode = LibraryController::Instance()->CreateNewControl(parentNode, strType, QString::fromStdString(newName), point);
	if (!controlNode)
		return HierarchyTreeNode::HIERARCHYTREENODEID_EMPTY;

	emit HierarchyTreeUpdated();
	ResetSelectedControl();
	SelectControl(controlNode);
	
	return controlNode->GetId();
}
Ejemplo n.º 6
0
void HierarchyTreeController::OnUnsavedChangesNumberChanged()
{
	emit HierarchyTreeUpdated();
}
Ejemplo n.º 7
0
void HierarchyTreeController::EmitHierarchyTreeUpdated(bool needRestoreSelection)
{
    emit HierarchyTreeUpdated(needRestoreSelection);
}