/** ** ** @RDE_HEADER@ ** Event Dispatcher for Qt5 to delegate mouse and keyboard event to another event dispatcher ** $Id$ ** $HeadURL$ ** $Author$ ** ** ----------------------------------------------------------------------------------------------- ** ** Hardware-Environment: Intel-PC ** Software-Environment: Windows 7, Qt 5.4. ArcGIS 10.2.5 ** ** Language ........: C++ 11 ** ** ----------------------------------------------------------------------------------------------- ** ** Author ...........: Jörg Turla, SPD G, Tel. 3132 ** ** ----------------------------------------------------------------------------------------------- ** ** Notes .........: ** ** 15.04.2015, JT : first edition ** ** ----------------------------------------------------------------------------------------------- */ #pragma once #include #include "abstract_event_dispatcher.h" namespace SituationMap { namespace RB { /** @class EventDelegater event_delegater.h @brief Event filter that delegates events to another event filter Some Qt-Widgets have a special viewport widget. In this case keyboard and mouse events are sended to different widgets. To concentrate the event handling in one event filter for both types of events, it is necessary to forward events from event filter to another one. @see AbstractEventDispatcher, EventDispatcher, EventMouseNavigator */ class EventDelegater final : public AbstractEventDispatcher { Q_OBJECT public: EventDelegater( QWidget * getEventsFrom, AbstractEventDispatcher * delegateEventTo ); ~EventDelegater() = default; EventDelegater(const EventDelegater &) = delete; EventDelegater & operator = (const EventDelegater &) = delete; protected: QPointer _delegateEventTo; bool eventFilter(QObject*, QEvent*) override; void KickTheBucket() override; }; /* EventDelegater */ } } /* namespace SituationMap::RB */