I change to contextMenuEvent:
{
if (this->textCursor().selectedText().isEmpty() == true) // if nothing selected
{
if (!cursor.selectedText().isEmpty())
{
QString strText
= cursor.
selectedText();
int iPos = cursor.position() - cursor.block().position(); // cursor.positionInBlock()
QString strBlock
= cursor.
selectedText().
trimmed();
// channel
if (strText.at(0) == '#')
{
...
...
menu->popup(event->globalPos());
return;
}
// nick
if ((iPos > 11) && (iPos < 11+2+strWord.length()))
{
...
...
menu->popup(event->globalPos());
return;
}
}
}
}
void MainTextEdit::contextMenuEvent(QContextMenuEvent *event)
{
if (this->textCursor().selectedText().isEmpty() == true) // if nothing selected
{
QTextCursor cursor = cursorForPosition(event->pos());
cursor.select(QTextCursor::WordUnderCursor);
if (!cursor.selectedText().isEmpty())
{
QString strText = cursor.selectedText();
int iPos = cursor.position() - cursor.block().position(); // cursor.positionInBlock()
cursor.select(QTextCursor::BlockUnderCursor);
QString strBlock = cursor.selectedText().trimmed();
QStringList strlBlock = strBlock.split(" ");
QString strWord = strlBlock[1];
// channel
if (strText.at(0) == '#')
{
...
QMenu *menu = new QMenu(strChannel);
...
menu->popup(event->globalPos());
return;
}
// nick
if ((iPos > 11) && (iPos < 11+2+strWord.length()))
{
...
QMenu *menu = new QMenu(strNick);
...
menu->popup(event->globalPos());
return;
}
}
}
QTextEdit::contextMenuEvent(event);
}
To copy to clipboard, switch view to plain text mode
but still sometimes vertical scroll bar stops ...
Bookmarks