Detect back/forward mouse buttons to move back and forward through the browsing history

This commit is contained in:
Luis Ángel San Martín 2022-11-10 21:46:51 +01:00
parent 2b56945374
commit 0f9d782bb8
3 changed files with 27 additions and 0 deletions

View File

@ -139,6 +139,29 @@ void LibraryWindow::afterLaunchTasks()
} }
} }
bool LibraryWindow::eventFilter(QObject *object, QEvent *event)
{
if (this->isActiveWindow()) {
if (event->type() == QEvent::MouseButtonRelease) {
auto mouseEvent = static_cast<QMouseEvent *>(event);
if (mouseEvent->button() == Qt::ForwardButton) {
forwardAction->trigger();
event->accept();
return true;
}
if (mouseEvent->button() == Qt::BackButton) {
backAction->trigger();
event->accept();
return true;
}
}
}
return QMainWindow::eventFilter(object, event);
}
void LibraryWindow::createSettings() void LibraryWindow::createSettings()
{ {
settings = new QSettings(YACReader::getSettingsPath() + "/YACReaderLibrary.ini", QSettings::IniFormat); // TODO unificar la creación del fichero de config con el servidor settings = new QSettings(YACReader::getSettingsPath() + "/YACReaderLibrary.ini", QSettings::IniFormat); // TODO unificar la creación del fichero de config con el servidor

View File

@ -434,6 +434,8 @@ public slots:
void afterLaunchTasks(); void afterLaunchTasks();
bool eventFilter(QObject *object, QEvent *event) override;
private: private:
//! @brief Exits search mode if it is active. //! @brief Exits search mode if it is active.
//! @return true If the search mode was active when this function was called. //! @return true If the search mode was active when this function was called.

View File

@ -269,6 +269,8 @@ int main(int argc, char **argv)
} }
#endif #endif
app.installEventFilter(mw);
int ret = app.exec(); int ret = app.exec();
QLOG_INFO() << "YACReaderLibrary closed with exit code :" << ret; QLOG_INFO() << "YACReaderLibrary closed with exit code :" << ret;