void RKObjectListView::contextMenuEvent (QContextMenuEvent* event) { RK_TRACE (APP); menu_object = objectAtIndex (indexAt (event->pos ())); bool suppress = false; emit (aboutToShowContextMenu (menu_object, &suppress)); if (!suppress) menu->popup (event->globalPos ()); }
void PopupMenu::showContextMenu(const QPoint &pos) { _highlightedAction = activeAction(); if(!_highlightedAction) { PopupMenuSetActionData(_contextMenu, 0, 0); return; } emit aboutToShowContextMenu(this, _highlightedAction, _contextMenu); PopupMenuSetActionData(_contextMenu, this, _highlightedAction); if(QMenu* subMenu = _highlightedAction->menu()) QTimer::singleShot(100, subMenu, SLOT(hide())); _contextMenu->popup(mapToGlobal(pos)); }
QPopupMenu *KRomajiEdit::createPopupMenu() { QPopupMenu *popup = KLineEdit::createPopupMenu(); popup->insertSeparator(); popup->insertItem(i18n("English"), 0); popup->insertItem(i18n("Kana"), 1); if (kana == "english") popup->setItemChecked(0, true); else if (kana == "hiragana") popup->setItemChecked(1, true); connect(popup, SIGNAL(activated(int)), SLOT(setKana(int))); emit aboutToShowContextMenu(popup); return popup; }
void GolangEdit::editorCreated(LiteApi::IEditor *editor) { if (!editor || editor->mimeType() != "text/x-gosrc") { return; } //editor->widget()->addAction(m_commentAct); QMenu *menu = LiteApi::getEditMenu(editor); if (menu) { menu->addSeparator(); menu->addAction(m_viewGodocAct); menu->addSeparator(); menu->addAction(m_findInfoAct); menu->addAction(m_jumpDeclAct); menu->addAction(m_findUseAct); menu->addSeparator(); menu->addAction(m_renameSymbolAct); menu->addSeparator(); menu->addAction(m_commentAct); } menu = LiteApi::getContextMenu(editor); if (menu) { menu->addSeparator(); menu->addAction(m_viewGodocAct); menu->addSeparator(); menu->addAction(m_findInfoAct); menu->addAction(m_jumpDeclAct); menu->addAction(m_findUseAct); menu->addSeparator(); QMenu *sub = menu->addMenu(tr("Refactor")); sub->addAction(m_renameSymbolAct); menu->addSeparator(); menu->addAction(m_commentAct); connect(menu,SIGNAL(aboutToShow()),this,SLOT(aboutToShowContextMenu())); } m_editor = LiteApi::getLiteEditor(editor); if (m_editor) { m_editor->setTextLexer(new GolangTextLexer()); connect(m_editor,SIGNAL(updateLink(QTextCursor)),this,SLOT(updateLink(QTextCursor))); } }
void DDateTable::mousePressEvent(QMouseEvent *e) { if (e->type() != QEvent::MouseButtonPress) { // the KDatePicker only reacts on mouse press events: return; } if (!isEnabled()) { QApplication::beep(); return; } int row, col, pos; QPoint mouseCoord = e->pos(); row = mouseCoord.y() * d->numWeekRows / height(); if (layoutDirection() == Qt::RightToLeft) { col = d->numDayColumns - (mouseCoord.x() * d->numDayColumns / width()) - 1; } else { col = mouseCoord.x() * d->numDayColumns / width(); } if (row < 1 || col < 0) { // the user clicked on the frame of the table return; } // Rows and columns are zero indexed. The (row - 1) below is to avoid counting // the row with the days of the week in the calculation. // new position and date pos = (d->numDayColumns * (row - 1)) + col; QDate clickedDate = dateFromPos(pos); // set the new date. If it is in the previous or next month, the month will // automatically be changed, no need to do that manually... // validity checking done inside setDate setDate(clickedDate); // This could be optimized to only call update over the regions // of old and new cell, but 99% of times there is also a call to // setDate that already calls update() so no need to optimize that // much here update(); emit tableClicked(); if (e->button() == Qt::RightButton && d->popupMenuEnabled) { QMenu* const menu = new QMenu(); menu->addSection(locale().toString(d->date)); emit aboutToShowContextMenu(menu, clickedDate); menu->popup(e->globalPos()); } }