void GraphViewer::updateNodeLocations() { // set the initial locations for (int i = 0; i < availableNodes.size(); i++) { } rootNum = 0; // do initial layout for (int i = 0; i < availableNodes.size(); i++) { checkLayout(availableNodes[i]); } // check for overlap for (int i = 0; i < availableNodes.size(); i++) { for (int j = 0; j < availableNodes.size(); j++) { if (j != i) { if (availableNodes[j]->getLevel() == availableNodes[i]->getLevel() && availableNodes[j]->getHorzShift() == availableNodes[i]->getHorzShift()) { availableNodes[j]->setHorzShift(availableNodes[j]->getHorzShift()+1); } } } } repaint(); }
LayoutDesc newSpriteDialog::getLayout() { LayoutDesc ld; if (checkLayout()) { ld.namePrefix = findChild<QLineEdit*>("lineEdit_5")->text(); ld.indexValue = ld.namePrefix+"_indexer"; ld.leftValue = findChild<QComboBox*>("comboBox")->currentText(); ld.topValue = findChild<QComboBox*>("comboBox_2")->currentText(); ld.leftShift = findChild<QLineEdit*>("left_shift")->text(); ld.topShift = findChild<QLineEdit*>("top_shift")->text(); ld.setAnimation = findChild<QCheckBox*>("checkBox_3")->isChecked(); ld.type = findChild<QComboBox*>("sprite_types")->currentText(); ld.typePostFix = ""; } return ld; }
void GraphViewer::updateNodeLocations() { const int numAvailableNodes = availableNodes.size(); // If this was made just for future purpose it would be better to execute this only in debug mode #if JUCE_DEBUG // set the initial locations for (int i = 0; i < numAvailableNodes; ++i) { } #endif rootNum = 0; // do initial layout for (int i = 0; i < numAvailableNodes; ++i) { checkLayout (availableNodes[i]); } // check for overlap for (int i = 0; i < numAvailableNodes; ++i) { for (int j = 0; j < numAvailableNodes; ++j) { if (j != i) { if (availableNodes[j]->getLevel() == availableNodes[i]->getLevel() && availableNodes[j]->getHorzShift() == availableNodes[i]->getHorzShift()) { availableNodes[j]->setHorzShift (availableNodes[j]->getHorzShift() + 1); } } } } repaint(); }
void GraphViewer::checkLayout(GraphNode* gn) { if (gn != nullptr) { GraphNode* sourceNode; if (gn->isMerger()) { Array<GenericEditor*> editors = gn->getConnectedEditors(); int level1 = 0; int level2 = 0; if (editors[0] != nullptr) { level1 = getNodeForEditor(editors[0])->getLevel(); } if (editors[1] != nullptr) { level2 = getNodeForEditor(editors[1])->getLevel(); } // std::cout << "LEVEL1 = " << level1 << " LEVEL2 = " << level2 << std::endl; sourceNode = level1 > level2 ? getNodeForEditor(editors[0]) : getNodeForEditor(editors[1]); // choose the higher source } else { sourceNode = getNodeForEditor(gn->getSource()); } if (sourceNode == nullptr) { gn->setLevel(0); gn->setHorzShift(rootNum); rootNum++; } else if (sourceNode->isSplitter()) { Array<GenericEditor*> editors = sourceNode->getConnectedEditors(); if (gn->hasEditor(editors[1])) { gn->setLevel(sourceNode->getLevel()+1); // increase level gn->setHorzShift(sourceNode->getHorzShift()+1); // increase horz shift } else { gn->setLevel(sourceNode->getLevel()+1); // increase level gn->setHorzShift(sourceNode->getHorzShift()); // same horz shift } } else { gn->setLevel(sourceNode->getLevel()+1); // increase level gn->setHorzShift(sourceNode->getHorzShift()); // same horz shift } checkLayout(getNodeForEditor(gn->getDest())); } }
void UBKeyboardPalette::paintEvent( QPaintEvent* event) { checkLayout(); UBActionPalette::paintEvent(event); QRect r = this->geometry(); int lleft, ltop, lright, lbottom; getContentsMargins ( &lleft, <op, &lright, &lbottom ) ; //------------------------------------------------ // calculate start offset from left, and from top int ctrlButtonsId = 0; lleft = ( r.width() - btnWidth * 15 ) / 2; ltop = ( r.height() - btnHeight * 5 ) / 2; //------------------------------------------------ // set geometry (position) for row 1 int offX = lleft; int offY = ltop; //------------------- // buttons [`]..[+] for (int i = 0; i<13; i++) { buttons[i]->setGeometry(offX, offY, btnWidth, btnHeight); offX += btnWidth; } // button Backspace ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 2, btnHeight); offX += btnWidth * 2; //------------------------------------------------ // set geometry (position) for row 2 offX = lleft; offY += btnHeight; offX += btnWidth / 2; //------------------- // button Tab ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 2, btnHeight); offX += btnWidth * 2; // buttons [q]..[]] for (int i = 0; i<12; i++) { buttons[i + 13]->setGeometry(offX, offY, btnWidth, btnHeight); offX += btnWidth; } // // Row 2 Stub // ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 1.5, btnHeight); // offX += btnWidth * 1.5; //------------------------------------------------ // set geometry (position) for row 3 offX = lleft; offY += btnHeight; //------------------- // // Row 3 Stub // button Enter ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 1, btnHeight); offX += btnWidth*1; // buttons [a]..[\] for (int i = 0; i < 12; i++) { buttons[i + 12 + 13]->setGeometry(offX, offY, btnWidth, btnHeight); offX += btnWidth; } // button Enter ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 2, btnHeight); offX += btnWidth*2; //------------------------------------------------ // set geometry (position) for row 4 offX = lleft; offY += btnHeight; //------------------- // button LCapsLock ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth*2.5, btnHeight); offX += btnWidth*2.5; for (int i = 0; i < 10; i++) { buttons[i + 12 + 12 + 13]->setGeometry(offX, offY, btnWidth, btnHeight); offX += btnWidth; } // button RCapsLock ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth*2.5, btnHeight); offX += btnWidth*2.5; //------------------------------------------------ // set geometry (position) for row 5 offX = lleft; offY += btnHeight; //------------------- ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 1 , offY, btnWidth * 2, btnHeight); ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 3 , offY, btnWidth * 9, btnHeight); ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 12, offY, btnWidth * 2, btnHeight); //------------------------------------------------ }
void Applier::checkLayout(const DataSet* dataset) const { checkLayout(dataset->layout()); dataset->checkAllPointsShareSameLayout(); }