void OCamlSource::mousePressEvent ( QMouseEvent * e ) { QTextCursor current_cur = textCursor(); QTextCursor cur = cursorForPosition( e->pos() ); if ( current_cur.hasSelection() ) cur = current_cur; _breakpoint_line = cur.blockNumber() + 1; _breakpoint_column = cur.position() - cur.block().position() + 1; if ( ! cur.hasSelection() ) { cur.select(QTextCursor::WordUnderCursor); setTextCursor(cur); } _selected_text = cur.selectedText(); if ( e->button() == Qt::LeftButton ) { lineSearchArea->hide(); lineSearchArea->setEnabled(false); setFocus(); } if ( e->button() == Qt::MidButton ) { watchVar(); } else QPlainTextEdit::mousePressEvent(e); }
void VariableWidget::slotAddWatchExpression() { QString watchVar(watchVarEditor_->currentText()); if (!watchVar.isEmpty()) { slotAddWatchExpression(watchVar); } }
void OCamlSource::contextMenuEvent( QContextMenuEvent *event ) { QTextCursor current_cur = textCursor(); QTextCursor mouse_position = cursorForPosition( event->pos() ); QTextCursor cur = mouse_position; if ( current_cur.hasSelection() ) cur = current_cur; _breakpoint_line = mouse_position.blockNumber() + 1; _breakpoint_column = mouse_position.position() - mouse_position.block().position() + 1; if ( ! cur.hasSelection() ) { cur.select(QTextCursor::WordUnderCursor); setTextCursor(cur); } _selected_text = cur.selectedText(); QAction *breakAct = new QAction( tr( "&Set Breakpoint at line %1 column %2" ) .arg( QString::number(mouse_position.blockNumber()+1)) .arg( QString::number(mouse_position.columnNumber()+1)) , this ); breakAct->setStatusTip( tr( "Set a breakpoint to the current location" ) ); connect( breakAct, SIGNAL( triggered() ), this, SLOT( newBreakpoint() ) ); QAction *displayAct = NULL; if ( cur.hasSelection() ) { displayAct = new QAction( tr( "&Display '%1'" ) .arg( _selected_text ) , this ); connect( displayAct, SIGNAL( triggered() ), this, SLOT( displayVar() ) ); } QAction *printAct = NULL; if ( cur.hasSelection() ) { printAct = new QAction( tr( "&Print '%1'" ) .arg( _selected_text ) , this ); connect( printAct, SIGNAL( triggered() ), this, SLOT( printVar() ) ); } QAction *watchAct = NULL; if ( cur.hasSelection() ) { watchAct = new QAction( tr( "&Watch '%1'" ) .arg( _selected_text ) , this ); connect( watchAct, SIGNAL( triggered() ), this, SLOT( watchVar() ) ); } QMenu *menu = createStandardContextMenu(); menu->addAction( breakAct ); if (displayAct) menu->addAction( displayAct ); if (printAct) menu->addAction( printAct ); if (watchAct) menu->addAction( watchAct ); menu->exec( event->globalPos() ); delete breakAct; if (displayAct) delete displayAct; if (printAct) delete printAct; if (watchAct) delete watchAct; delete menu; }