void EdgeMenuDialogBase::PickPreviousSibling() { bool continueSearch = true; BrowserNode * previousNode = 0; BrowserNode * originalNode = GetCurrentNode(); int originalDepth = originalNode->depth(); BrowserNode * currentNode = originalNode; while (continueSearch) { QLOG_INFO() << "CurrentNode is: " << currentNode->get_name(); previousNode = dynamic_cast<BrowserNode *>(currentNode->itemBelow()); QLOG_INFO() << "Nodename is: " << previousNode->get_name() << " " << previousNode->depth(); if (!previousNode) break; QLOG_INFO() << "Previous Node is: "<< previousNode->get_name(); int previousDepth = previousNode->depth(); bool sameType = originalNode->get_stype() == previousNode->get_stype(); QLOG_INFO() << "PREVIOUS: " << "Origin level : " << originalDepth; QLOG_INFO() << "PREVIOUS: " << "Current level : " << previousDepth; bool sameLevel = originalDepth == previousDepth; if (sameLevel && sameType) continueSearch = false; currentNode = previousNode; } if (previousNode == 0) return; SaveData(); FillGuiElements(previousNode); }