Реимп QWebView. contextMenuEvent(QContextMenuEvent*)

Я реимп. QWebView::contextMenuEvent(QContextMenuEvent*) и не влияет на щелчок правой кнопкой мыши по виджету.

Вот мой код:

void ExtendedWebView::contextMenuEvent(QContextMenuEvent *event)
{
    qDebug() << "called";
    m_copyAction->setEnabled(!selectedHtml().isEmpty());
    m_contextMenu->setVisible(true);
    m_contextMenu->exec(event->globalPos());
}

Когда я щелкаю правой кнопкой мыши по виджету, он не действует - меню не отображается. Что я делаю не так?

UPD: http://paste.kde.org/640508/ - полный код


person Illya Kovalevskyy    schedule 08.01.2013    source источник
comment
Убедились ли вы, что ExtendedWebView::contextMenuPolicy — это Qt::DefaultContextMenu ??   -  person Theodore Lytras    schedule 08.01.2013
comment
Ага. В конструкторе этот вызов   -  person Illya Kovalevskyy    schedule 08.01.2013
comment
Вы также уверены, что m_contextMenu не пуст? Я попытался воспроизвести ваш код, и он работает нормально, если только m_contextMenu не пуст.   -  person Theodore Lytras    schedule 08.01.2013
comment
Я дам вам полную вставку кода.   -  person Illya Kovalevskyy    schedule 08.01.2013
comment
Ну, у меня работает полный код...   -  person Theodore Lytras    schedule 08.01.2013
comment
Кубунту 12.10 и Qt 4.8.3   -  person Illya Kovalevskyy    schedule 08.01.2013


Ответы (1)


Текущая версия PopupItem Marble, в которой работает этот QWebView, не пересылает contextMenuEvent. Измените его eventFilter, чтобы сделать это, и вы получите событие.

person Earthwings    schedule 08.01.2013
comment
Ух ты! Это было неясно... +1 - person Theodore Lytras; 08.01.2013