void NepomukWidget::showTagContextMenu(const QString& tag) { m_currentTag = tag; KMenu *popup = new KMenu(this); if (m_nepHandler->tags().contains(tag)) { QAction *removeAction = popup->addAction(KIcon("list-remove"), i18n("Remove Tag")); connect(removeAction, SIGNAL(triggered()), SLOT(removeCurrentTag())); popup->popup(QCursor::pos()); } else { QAction *addAction = popup->addAction(KIcon("list-add"), i18n("Add Tag")); connect(addAction, SIGNAL(triggered()), SLOT(addCurrentTag())); popup->popup(QCursor::pos()); } }
void KBookmarkBar::contextMenu(const QPoint & pos) { KBookmarkActionInterface * action = dynamic_cast<KBookmarkActionInterface *>( m_toolBar->actionAt(pos) ); if(!action) { //Show default (ktoolbar) menu m_toolBar->setContextMenuPolicy( Qt::DefaultContextMenu ); //Recreate event with the same position QContextMenuEvent evt( QContextMenuEvent::Other, pos ); QCoreApplication::sendEvent( m_toolBar, &evt ); //Reassign custom context menu m_toolBar->setContextMenuPolicy( Qt::CustomContextMenu ); } else { KMenu * menu = new KonqBookmarkContextMenu(action->bookmark(), m_pManager, m_pOwner); menu->setAttribute(Qt::WA_DeleteOnClose); menu->popup(m_toolBar->mapToGlobal(pos)); } }
void mousePressEvent(QMouseEvent *) { menu->popup(QCursor::pos()); }