X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=blobdiff_plain;f=src%2Ffilters%2FMouseEventFilter.cpp;fp=src%2Ffilters%2FMouseEventFilter.cpp;h=51bbb09031be2536e7ae2c15fd3d641da946054e;hp=0000000000000000000000000000000000000000;hb=34816101e23ae2b489d64d540534125cf2c2e925;hpb=2e5db0d355267f5823610100947970af12ca6342;ds=sidebyside diff --git a/src/filters/MouseEventFilter.cpp b/src/filters/MouseEventFilter.cpp new file mode 100644 index 0000000..51bbb09 --- /dev/null +++ b/src/filters/MouseEventFilter.cpp @@ -0,0 +1,66 @@ +/* + * 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() : QObject() {}; + +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. + emit mouseBack(); + + // Consume the event. + return true; + + case (Qt::ForwardButton): + // Tell the WebEngine to go forward. + emit mouseForward(); + + // Consume the event. + return true; + + default: + // Do not consume the event. + return false; + } + } + + // Do not consume the event. + return false; +}