73 lines
2.0 KiB
Objective-C
Executable File
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 */
|