/** * Shows a list of function calls from the current node. * The list is displayed in a query dialogue. The user can the select which * calls should be displayed in the graph. * This slot is connected to the "List Called Functions" popup menu * action. */ void GraphWidget::slotListCalled() { GraphNode* pNode; // Make sure the menu item is a node pNode = dynamic_cast<GraphNode*>(m_pMenuItem); if (pNode == NULL) return; QueryViewDlg dlg(0, (QWidget*)parent()); // Show the query view dialogue dlg.query(CscopeFrontend::Called, pNode->getFunc()); if (dlg.exec() != QDialog::Accepted) return; // The OK button was clicked, replace current calls with the listed ones pNode->removeOutEdges(); QueryView::Iterator itr; CallData data; data.m_sCaller = pNode->getFunc(); // Add all listed calls for (itr = dlg.getIterator(); !itr.isEOF(); itr.next()) { data.m_sCallee = itr.getFunc(); data.m_sFile = itr.getFile(); data.m_sLine = itr.getLine(); data.m_sText = itr.getText(); addCall(data); } // Clean-up and redraw the graph removeDisconnected(pNode); draw(); }