Глобально отслеживать активацию ссылки
Существует множество мест, где может появиться ссылка в приложении. Например, в QWebView при нажатии на ссылку в "браузере", в QML при активации ссылки из TextEdit, для QtWidgets в QTextEdit при нажатии на ссылку внутри виджета и т.д.
Вопрос: Есть ли способ глобально отслеживать нажатие ("переход", активацию) на ссылку по всему приложению?
Требуется отслеживать определенный тип ссылок во всех таких местах, и если ссылка подходит по определенному критерию (например, по регулярному выражению), то не открывать её в браузере, а выполнять внутреннее действие в приложении (например, открывать специальное окно). Так как таких мест, где может появиться эта ссылка много, то писать для каждого компонента свой обработчик нажатия на ссылку неудобно.
Например, псевдокод:
QGuiApplication::eventFilter(...event) {
if (event->type() == QEvent::LinkActivated) {
emit linkActivated(event->url());
}
}
Заранее спасибо за любую помощь!