Глобально отслеживать активацию ссылки

Существует множество мест, где может появиться ссылка в приложении. Например, в QWebView при нажатии на ссылку в "браузере", в QML при активации ссылки из TextEdit, для QtWidgets в QTextEdit при нажатии на ссылку внутри виджета и т.д.

Вопрос: Есть ли способ глобально отслеживать нажатие ("переход", активацию) на ссылку по всему приложению?

Требуется отслеживать определенный тип ссылок во всех таких местах, и если ссылка подходит по определенному критерию (например, по регулярному выражению), то не открывать её в браузере, а выполнять внутреннее действие в приложении (например, открывать специальное окно). Так как таких мест, где может появиться эта ссылка много, то писать для каждого компонента свой обработчик нажатия на ссылку неудобно.

Например, псевдокод:

QGuiApplication::eventFilter(...event) {
    if (event->type() == QEvent::LinkActivated) {
         emit linkActivated(event->url());
    }
}

Заранее спасибо за любую помощь!


Ответы (0 шт):