87 lines
1.9 KiB
C++
Executable File
87 lines
1.9 KiB
C++
Executable File
/**
|
|
**
|
|
** @RDE_HEADER@
|
|
** Do all the work for complex selection operations.
|
|
** $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 .........:
|
|
**
|
|
** 05.07.2016, JT : First edition for use with Qt5
|
|
**
|
|
** -----------------------------------------------------------------------------------------------
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "plan_editor_internal.h"
|
|
#include "logging.h"
|
|
|
|
#include <QtCore/QObject>
|
|
|
|
|
|
namespace SituationMap
|
|
{
|
|
|
|
class Map;
|
|
|
|
namespace RB
|
|
{
|
|
class Rubberband;
|
|
}
|
|
}
|
|
|
|
|
|
namespace PlanEditor
|
|
{
|
|
class PlanEditor;
|
|
|
|
class SelectionWorker : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
SelectionWorker(PlanEditor *planEditor
|
|
, SituationMap::GeometryModel *geometryModel
|
|
, SituationMap::Map *map
|
|
, SelectionMode mode
|
|
, const QPointF &viewPortPosition);
|
|
|
|
virtual ~SelectionWorker();
|
|
|
|
private slots:
|
|
|
|
void onAbortSelect(SituationMap::RB::RubberbandBase *rubberband);
|
|
|
|
void onLineSelect(SituationMap::RB::RubberbandBase *rubberband);
|
|
void onLassoSelect(SituationMap::RB::RubberbandBase *rubberband);
|
|
void onRectSelect(SituationMap::RB::RubberbandBase *rubberband);
|
|
|
|
private:
|
|
|
|
PlanEditor *m_planEditor;
|
|
SituationMap::GeometryModel *m_geometryModel;
|
|
SituationMap::Map *m_map;
|
|
SituationMap::RB::Rubberband *m_rubberband;
|
|
|
|
Logger &m_logger;
|
|
}; // SelectionWorker
|
|
|
|
|
|
} // namespace PlanEditor
|