MCPcopy Create free account
hub / github.com/KDAB/GammaRay / methodContextMenu

Method methodContextMenu

ui/tools/objectinspector/methodstab.cpp:86–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

84}
85
86void MethodsTab::methodContextMenu(const QPoint &pos)
87{
88 const QModelIndex index = m_ui->methodView->indexAt(pos);
89 if (!index.isValid() || !m_interface->hasObject())
90 return;
91
92 const QMetaMethod::MethodType methodType = index.data(ObjectMethodModelRole::MetaMethodType).value<QMetaMethod::MethodType>();
93 QMenu contextMenu;
94 QAction *invokeAction = nullptr, *connectToAction = nullptr;
95 if (methodType == QMetaMethod::Slot || methodType == QMetaMethod::Method) {
96 invokeAction = contextMenu.addAction(tr("Invoke"));
97 } else if (methodType == QMetaMethod::Signal) {
98 connectToAction = contextMenu.addAction(tr("Connect to"));
99 invokeAction = contextMenu.addAction(tr("Emit"));
100 } else {
101 return; // Can't do any action, so don't try to show an empty context menu.
102 }
103
104 QAction *action = contextMenu.exec(m_ui->methodView->viewport()->mapToGlobal(pos));
105 if (action == invokeAction)
106 methodActivated(index);
107 else if (action == connectToAction)
108 m_interface->connectToSignal();
109}

Callers

nothing calls this directly

Calls 4

isValidMethod · 0.45
hasObjectMethod · 0.45
dataMethod · 0.45
connectToSignalMethod · 0.45

Tested by

no test coverage detected