Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/Rubberbands/event_delegater.h
T
2026-08-13 18:33:10 +02:00

73 lines
2.0 KiB
Objective-C
Executable File

/**
**
** @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 <QtCore/QPointer>
#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<AbstractEventDispatcher> _delegateEventTo;
bool eventFilter(QObject*, QEvent*) override;
void KickTheBucket() override;
}; /* EventDelegater */
} } /* namespace SituationMap::RB */