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); } }
bool HierarchyTreeController::Load(const QString& projectPath) { CloseProject(); bool res = hierarchyTree.Load(projectPath); if (res) { emit HierarchyTreeUpdated(); emit ProjectLoaded(); } return res; }
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; }
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); } }
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(); }
void HierarchyTreeController::OnUnsavedChangesNumberChanged() { emit HierarchyTreeUpdated(); }
void HierarchyTreeController::EmitHierarchyTreeUpdated(bool needRestoreSelection) { emit HierarchyTreeUpdated(needRestoreSelection); }