X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=blobdiff_plain;f=src%2Fmouseeventfilter.cpp;fp=src%2Fmouseeventfilter.cpp;h=4f1ec8223f01882d9e6f00aac833e3fc4dd86f7d;hp=0000000000000000000000000000000000000000;hb=3d2e70c352736d809d6d0b705864ce17ffde68ae;hpb=10c141f631ec7e341e45045b574661b644c7dbe9 diff --git a/src/mouseeventfilter.cpp b/src/mouseeventfilter.cpp new file mode 100644 index 0000000..4f1ec82 --- /dev/null +++ b/src/mouseeventfilter.cpp @@ -0,0 +1,70 @@ +/* + * Copyright © 2022 Soren Stoutner . + * + * This file is part of Privacy Browser PC . + * + * Privacy Browser PC is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Privacy Browser PC is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Privacy Browser PC. If not, see . + */ + +// Application headers. +#include "mouseeventfilter.h" + +// Qt headers. +#include +#include + +// The primary constructor. +MouseEventFilter::MouseEventFilter(QWebEngineView *webEngineView) : QObject() +{ + // Save a handle to the WebEngine view. + webEngineViewPointer = webEngineView; +}; + +bool MouseEventFilter::eventFilter(QObject *objectPointer, QEvent *eventPointer) +{ + // Only process mouse button press events. + if (eventPointer->type() == QEvent::MouseButtonPress) + { + // Tell the compiler to ignore the unused object pointer. + (void)objectPointer; + + // Cast the event to a mouse event. + QMouseEvent *mouseEventPointer = static_cast(eventPointer); + + // Run the command according to the button that was pushed. + switch (mouseEventPointer->button()) + { + case (Qt::BackButton): + // Tell the WebEngine to go back. + webEngineViewPointer->back(); + + // Consume the event. + return true; + + case (Qt::ForwardButton): + // Tell the WebEngine to go forward. + webEngineViewPointer->forward(); + + // Consume the event. + return true; + + default: + // Do not consume the event. + return false; + } + } + + // Do not consume the event. + return false; +}