bool PickHandler::handleKeyDown( const osgGA::GUIEventAdapter& ea, GUIActionAdapter& aa) { if(ea.getKey() == osgGA::GUIEventAdapter::KEY_Control_R || ea.getKey() == osgGA::GUIEventAdapter::KEY_Control_L) { isCtrlPressed = true; } else if(ea.getKey() == osgGA::GUIEventAdapter::KEY_Shift_L || ea.getKey() == osgGA::GUIEventAdapter::KEY_Shift_R) { isShiftPressed = true; } else if(ea.getKey() == osgGA::GUIEventAdapter::KEY_Alt_L || ea.getKey() == osgGA::GUIEventAdapter::KEY_Alt_R) { isAltPressed = true; } else if(ea.getKey() == 'q') { Data::Graph * currentGraph = Manager::GraphManager::getInstance()->getActiveGraph(); Util::ElementSelector::randomElementSelector(currentGraph->getNodes(), currentGraph->getEdges(), appConf->getValue("Viewer.PickHandler.AutopickedNodes").toInt(), this); } else if(ea.getKey() == 'w') { Data::Graph * currentGraph = Manager::GraphManager::getInstance()->getActiveGraph(); Util::ElementSelector::weightedElementSelector(currentGraph->getNodes(), appConf->getValue("Viewer.PickHandler.AutopickedNodes").toInt(), this); } return false; }
bool PickHandler::handleKeyDown( const osgGA::GUIEventAdapter& ea, GUIActionAdapter& aa) { if(ea.getKey() == osgGA::GUIEventAdapter::KEY_Control_R || ea.getKey() == osgGA::GUIEventAdapter::KEY_Control_L) { isCtrlPressed = true; } else if(ea.getKey() == osgGA::GUIEventAdapter::KEY_Shift_L || ea.getKey() == osgGA::GUIEventAdapter::KEY_Shift_R) { isShiftPressed = true; } else if(ea.getKey() == osgGA::GUIEventAdapter::KEY_Alt_L || ea.getKey() == osgGA::GUIEventAdapter::KEY_Alt_R) { isAltPressed = true; } else if(ea.getKey() == 'q') { Data::Graph * currentGraph = Manager::GraphManager::getInstance()->getActiveGraph(); Util::ElementSelector::randomElementSelector(currentGraph->getNodes(), currentGraph->getEdges(), appConf->getValue("Viewer.PickHandler.AutopickedNodes").toInt(), this); } else if(ea.getKey() == 'w') { Data::Graph * currentGraph = Manager::GraphManager::getInstance()->getActiveGraph(); Util::ElementSelector::weightedElementSelector(currentGraph->getNodes(), appConf->getValue("Viewer.PickHandler.AutopickedNodes").toInt(), this); } // FULLSCREEN else if(ea.getKey() == 'l' || ea.getKey() == 'L') { bool hideToolbars = appConf->getValue("Viewer.Fullscreen").toInt(); if( AppCore::Core::getInstance()->getCoreWindow()->isFullScreen()){ AppCore::Core::getInstance()->getCoreWindow()->menuBar()->show(); AppCore::Core::getInstance()->getCoreWindow()->statusBar()->show(); AppCore::Core::getInstance()->getCoreWindow()->showNormal(); if(hideToolbars){ QList<QToolBar *> toolbars = AppCore::Core::getInstance()->getCoreWindow()->findChildren<QToolBar *>(); QListIterator<QToolBar *> i(toolbars); while (i.hasNext()){ i.next()->show(); } } } else { AppCore::Core::getInstance()->getCoreWindow()->menuBar()->hide(); AppCore::Core::getInstance()->getCoreWindow()->statusBar()->hide(); AppCore::Core::getInstance()->getCoreWindow()->showFullScreen(); if(hideToolbars){ QList<QToolBar *> toolbars = AppCore::Core::getInstance()->getCoreWindow()->findChildren<QToolBar *>(); QListIterator<QToolBar *> i(toolbars); while (i.hasNext()){ i.next()->hide(); } } } } // toolbars only else if(ea.getKey() == 't' || ea.getKey() == 'T') { static bool toolbars = true; if( toolbars ){ toolbars = !toolbars; QList<QToolBar *> toolbars = AppCore::Core::getInstance()->getCoreWindow()->findChildren<QToolBar *>(); QListIterator<QToolBar *> i(toolbars); while (i.hasNext()){ i.next()->show(); } } else { toolbars = !toolbars; QList<QToolBar *> toolbars = AppCore::Core::getInstance()->getCoreWindow()->findChildren<QToolBar *>(); QListIterator<QToolBar *> i(toolbars); while (i.hasNext()){ i.next()->hide(); } } } return false; }
bool CoreWindow::add_EdgeClick() { Data::Type *edgeType = NULL; Data::Type *nodeType = NULL; Data::Graph * currentGraph = Manager::GraphManager::getInstance()->getActiveGraph(); QLinkedList<osg::ref_ptr<Data::Node> > * selectedNodes = viewerWidget->getPickHandler()->getSelectedNodes(); QLinkedList<osg::ref_ptr<Data::Node> >::const_iterator ni = selectedNodes->constBegin(); if ( selectedNodes==NULL ) { AppCore::Core::getInstance()->messageWindows->showMessageBox("Upozornenie","Žiadny uzol oznaèený",false); return false; } osg::ref_ptr<Data::Node> node1, node2; int i=0; while (ni != selectedNodes->constEnd()) { osg::ref_ptr<Data::Node> existingNode = (* ni); ++ni;i++; } if ( i!=2 ) { AppCore::Core::getInstance()->messageWindows->showMessageBox("Upozornenie","Musite vybrat práve 2 vrcholy",false); return false; } ni = selectedNodes->constBegin(); node2=(* ni); ++ni; node1=(* ni); ++ni; QMap<qlonglong, osg::ref_ptr<Data::Edge> > *mapa = currentGraph->getEdges(); Data::Type* type = currentGraph->addType(Data::GraphLayout::META_EDGE_TYPE); for (QMap<qlonglong, osg::ref_ptr<Data::Edge> >::iterator it = mapa->begin (); it != mapa->end (); ++it) { osg::ref_ptr<Data::Edge> existingEdge = it.value (); if ( existingEdge->getSrcNode () ->getName () == node1 ->getName () && existingEdge->getDstNode () ->getName () == node2 ->getName () ) { AppCore::Core::getInstance()->messageWindows->showMessageBox("Hrana najdená","Medzi vrcholmi nesmie byt hrana",false); return false; } if ( existingEdge->getSrcNode () ->getName () == node2 ->getName () && existingEdge->getDstNode () ->getName () == node1 ->getName () ) { AppCore::Core::getInstance()->messageWindows->showMessageBox("Hrana najdená","Medzi vrcholmi nesmie byt hrana",false); return false; } } currentGraph->addEdge("GUI_edge", node1, node2, type, false); if (isPlaying) layout->play(); QString nodename1 = QString(node1->getName()); QString nodename2 = QString(node2->getName()); return true; //context.getGraph ().addEdge (QString (""), node1[1], node1[2], edgeType, true); }