![]() |
Mapper
0.9.0
API documentation
|
Provides a simple interface to base tools on. More...
#include <tool_base.h>
Classes | |
class | ObjectsRange |
An accessor to the active objects in a std::vector<EditedItem>. More... | |
Public Member Functions | |
MapEditorToolBase (const QCursor &cursor, MapEditorTool::Type type, MapEditorController *editor, QAction *tool_action) | |
~MapEditorToolBase () override | |
void | init () override |
Performs initialization when the tool becomes active. More... | |
const QCursor & | getCursor () const override |
Returns the cursor which should be used for the tool in the editor windows. More... | |
void | mousePositionEvent (QMouseEvent *event, const MapCoordF &map_coord, MapWidget *widget) |
Updates the saved current position (raw and constrained), map widget, and modifiers. More... | |
bool | mousePressEvent (QMouseEvent *event, const MapCoordF &map_coord, MapWidget *widget) override |
bool | mouseMoveEvent (QMouseEvent *event, const MapCoordF &map_coord, MapWidget *widget) override |
bool | mouseReleaseEvent (QMouseEvent *event, const MapCoordF &map_coord, MapWidget *widget) override |
bool | keyPressEvent (QKeyEvent *event) override |
bool | keyReleaseEvent (QKeyEvent *event) override |
void | draw (QPainter *painter, MapWidget *widget) override |
Draws the preview renderables. Should be overridden to draw custom elements. More... | |
void | finishEditing () override |
Finishes editing if it is currently in progress. More... | |
![]() | |
MapEditorTool (MapEditorController *editor, Type type, QAction *tool_action=nullptr) | |
Constructs a new MapEditorTool. More... | |
~MapEditorTool () override | |
Destructs the MapEditorTool. More... | |
virtual void | deactivate () |
Makes this tool inactive in the editor. More... | |
virtual void | switchToDefaultDrawTool (const Symbol *symbol) const |
Switch to a default draw tool for the given symbol. More... | |
virtual bool | mouseDoubleClickEvent (QMouseEvent *event, const MapCoordF &map_coord, MapWidget *widget) |
virtual void | leaveEvent (QEvent *event) |
virtual void | focusOutEvent (QFocusEvent *event) |
virtual bool | inputMethodEvent (QInputMethodEvent *event) |
virtual QVariant | inputMethodQuery (Qt::InputMethodQuery property, const QVariant &argument) const |
virtual bool | gestureEvent (QGestureEvent *event, MapWidget *widget) |
Type | toolType () const |
Returns the type of this tool. More... | |
QAction * | toolAction () const |
Returns the action which represents this tool. More... | |
bool | usesTouchCursor () const |
Returns whether to use the touch helper cursor for this tool. More... | |
Map * | map () const |
Returns the map being edited. More... | |
MapWidget * | mapWidget () const |
Returns the map widget being operated on. More... | |
MainWindow * | mainWindow () const |
Returns the main window the controller is attached to. More... | |
QWidget * | window () const |
Returns the main window the controller is attached to as a QWidget. More... | |
bool | drawOnRightClickEnabled () const |
Returns true if Mapper is configured to finish drawing on right click. More... | |
bool | editingInProgress () const |
Returns whether an editing operation is currently in progress. More... | |
bool | isDrawTool () const |
Returns true if the given tool is for drawing new objects. More... | |
const PointHandles & | pointHandles () const |
Returns the point handles utility for this tool. More... | |
unsigned int | scaleFactor () const |
The factor by which all drawing shall be scaled. More... | |
qreal | clickTolerance () const |
A value representing how close the user must click or hover to select a point. More... | |
int | startDragDistance () const |
The number of pixels the mouse has to be moved to start dragging. More... | |
![]() | |
virtual const QMetaObject * | metaObject () const const |
QObject (QObject *parent) | |
virtual | ~QObject () |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
QString | objectName () const const |
void | setObjectName (const QString &name) |
bool | isWidgetType () const const |
bool | isWindowType () const const |
bool | signalsBlocked () const const |
bool | blockSignals (bool block) |
QThread * | thread () const const |
void | moveToThread (QThread *targetThread) |
int | startTimer (int interval, Qt::TimerType timerType) |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType) |
void | killTimer (int id) |
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegExp ®Exp, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
const QObjectList & | children () const const |
void | setParent (QObject *parent) |
void | installEventFilter (QObject *filterObj) |
void | removeEventFilter (QObject *obj) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
bool | disconnect (const QObject *receiver, const char *method) const const |
void | dumpObjectTree () |
void | dumpObjectInfo () |
void | dumpObjectTree () const const |
void | dumpObjectInfo () const const |
bool | setProperty (const char *name, const QVariant &value) |
QVariant | property (const char *name) const const |
QList< QByteArray > | dynamicPropertyNames () const const |
void | destroyed (QObject *obj) |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const const |
bool | inherits (const char *className) const const |
void | deleteLater () |
Q_DISABLE_COPY (Class) | |
Q_DISABLE_MOVE (Class) | |
Q_DISABLE_COPY_MOVE (Class) | |
T | qobject_cast (QObject *object) |
T | qobject_cast (const QObject *object) |
T | qFindChild (const QObject *obj, const QString &name) |
QList< T > | qFindChildren (const QObject *obj, const QString &name) |
QList< T > | qFindChildren (const QObject *obj, const QRegExp ®Exp) |
Q_CLASSINFO (Name, Value) | |
Q_INTERFACES (...) | |
Q_PROPERTY (...) | |
Q_ENUMS (...) | |
Q_FLAGS (...) | |
Q_ENUM (...) | |
Q_FLAG (...) | |
Q_ENUM_NS (...) | |
Q_FLAG_NS (...) | |
Q_OBJECT Q_OBJECT | |
Q_GADGET Q_GADGET | |
Q_NAMESPACE Q_NAMESPACE | |
Q_SIGNALS Q_SIGNALS | |
Q_SIGNAL Q_SIGNAL | |
Q_SLOTS Q_SLOTS | |
Q_SLOT Q_SLOT | |
Q_EMIT Q_EMIT | |
Q_INVOKABLE Q_INVOKABLE | |
Q_REVISION Q_REVISION | |
Q_SET_OBJECT_NAME (Object) | |
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT | |
Protected Slots | |
void | updateDirtyRect () |
void | objectSelectionChanged () |
void | updatePreviewObjectsSlot () |
Protected Member Functions | |
virtual void | initImpl () |
Can do additional initializations at a time where no other tool is active (in contrast to the constructor) More... | |
virtual int | updateDirtyRectImpl (QRectF &rect) |
Must include the area of all custom drawings into the rect, which already contains the area of the selection preview and activated tool helpers when this method is called. More... | |
virtual void | drawImpl (QPainter *painter, MapWidget *widget) |
Must draw the tool's graphics. More... | |
virtual void | updateStatusText ()=0 |
Must update the status bar text. More... | |
virtual void | objectSelectionChangedImpl ()=0 |
Called when the object selection in the map is changed. More... | |
virtual void | clickPress () |
Called when the left mouse button is pressed. More... | |
virtual void | clickRelease () |
Called when the left mouse button is released without a drag operation before. More... | |
virtual void | mouseMove () |
Called when the mouse is moved without the left mouse button being pressed. More... | |
void | gestureStarted () override |
This is called to signal the start of a gesture. More... | |
void | startDragging () |
void | updateDragging () |
void | finishDragging () |
void | cancelDragging () |
bool | isDragging () const |
Is the left mouse button pressed and has a drag move been started (by moving the mouse a minimum amount of pixels)? More... | |
virtual void | dragStart () |
Called when a drag operation is started. More... | |
virtual void | dragMove () |
Called when the mouse is moved with the left mouse button being pressed. More... | |
virtual void | dragFinish () |
Called when a drag operation is finished. More... | |
virtual void | dragCanceled () |
virtual bool | keyPress (QKeyEvent *event) |
Called when a key is pressed down. Return true if the key was processed by the tool. More... | |
virtual bool | keyRelease (QKeyEvent *event) |
Called when a key is released. Return true if the key was processed by the tool. More... | |
void | reapplyConstraintHelpers () |
Applies the constraint helpers and generates a pointer event. More... | |
void | startEditing () |
Call this before editing the selected objects, and finish/abortEditing() afterwards. More... | |
void | startEditing (Object *object) |
void | startEditing (const std::set< Object *> &objects) |
void | abortEditing () |
ObjectsRange | editedObjects () |
bool | editedObjectsModified () const |
void | resetEditedObjects () |
virtual void | updatePreviewObjects () |
Call this to display changes to the preview objects between startEditing() and finish/abortEditing(). More... | |
void | updatePreviewObjectsAsynchronously () |
Call this to display changes to the preview objects between startEditing() and finish/abortEditing(). More... | |
void | drawSelectionOrPreviewObjects (QPainter *painter, MapWidget *widget, bool draw_opaque=false) |
If the tool created custom renderables (e.g. More... | |
void | activateAngleHelperWhileEditing (bool enable=true) |
Activates or deactivates the angle helper, recalculates (un-)constrained cursor position, and calls mouseMove() or dragMove() to update the tool. More... | |
void | activateSnapHelperWhileEditing (bool enable=true) |
Activates or deactivates the snap helper, recalculates (un-)constrained cursor position, and calls mouseMove() or dragMove() to update the tool. More... | |
void | updateConstrainedPositions () |
Calculates the constrained cursor position for the current position and map widget. More... | |
![]() | |
void | useTouchCursor (bool enabled) |
Sets the flag which indicates whether the touch cursor shall be used. More... | |
void | setEditingInProgress (bool state) |
Sets a flag which indicates an active editing operation. More... | |
void | setStatusBarText (const QString &text) |
Sends text to the window's status bar. More... | |
void | drawSelectionBox (QPainter *painter, MapWidget *widget, const MapCoordF &corner1, const MapCoordF &corner2) const |
Draws a selection box for the given corner points. More... | |
MapCoordVector::size_type | findHoverPoint (const QPointF &cursor, const MapWidget *widget, const Object *object, bool include_curve_handles, MapCoordF *out_handle_pos=nullptr) const |
Finds and returns the point of the given object over which the cursor hovers. More... | |
bool | containsDrawingButtons (Qt::MouseButtons buttons) const |
Checks if the given buttons contain one which controls drawing. More... | |
bool | isDrawingButton (Qt::MouseButton button) const |
Checks if the given event was triggered by press or release of a mouse button for drawing. More... | |
![]() | |
QObject * | sender () const const |
int | senderSignalIndex () const const |
int | receivers (const char *signal) const const |
bool | isSignalConnected (const QMetaMethod &signal) const const |
virtual void | timerEvent (QTimerEvent *event) |
virtual void | childEvent (QChildEvent *event) |
virtual void | customEvent (QEvent *event) |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
Protected Attributes | |
QPoint | click_pos |
Position where the left mouse button was pressed, with no constraints applied. More... | |
MapCoordF | click_pos_map |
QPointF | constrained_click_pos |
Position where the left mouse button was pressed, constrained by tool helpers, if active. More... | |
MapCoordF | constrained_click_pos_map |
QPoint | cur_pos |
Position where the cursor is currently. More... | |
MapCoordF | cur_pos_map |
QPointF | constrained_pos |
Position where the cursor is currently, constrained by tool helpers, if active. More... | |
MapCoordF | constrained_pos_map |
bool | snapped_to_pos |
This is set to true when constrained_pos(_map) is a snapped position. More... | |
int | effective_start_drag_distance |
The amount of pixels the mouse has to be moved to start dragging. More... | |
std::unique_ptr< ConstrainAngleToolHelper > | angle_helper |
Angle tool helper. If activated, it is included in the dirty rect and drawn automatically. More... | |
std::unique_ptr< SnappingToolHelper > | snap_helper |
Snapping tool helper. If a non-null filter is set, it is included in the dirty rect and drawn automatically. More... | |
Object * | snap_exclude_object = nullptr |
An object to exclude from snapping, or nullptr to snap to all objects. More... | |
Qt::KeyboardModifiers | active_modifiers |
Bitmask containing active modifiers. More... | |
MapWidget * | cur_map_widget |
The map widget in which the tool was last used. More... | |
QPointer< KeyButtonBar > | key_button_bar |
Must be set by derived classes if a key button bar is used. More... | |
![]() | |
MapEditorController *const | editor |
The map editor which uses this tool. More... | |
Additional Inherited Members | |
![]() | |
enum | Type { EditPoint = 1, EditLine = 2, DrawPoint = 3, DrawPath = 4, DrawCircle = 5, DrawRectangle = 6, DrawText = 7, DrawFreehand = 8, Pan = 9, Scribble = 10, Other = 0 } |
Types of tool. More... | |
![]() | |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
bool | disconnect (const QMetaObject::Connection &connection) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
![]() | |
typedef | QObjectList |
![]() | |
static const QRgb | inactive_color = qRgb(0, 0, 255) |
Color for normal (not active) elements. More... | |
static const QRgb | active_color = qRgb(255, 150, 0) |
Color for active elements (which are hovered over by the cursor) More... | |
static const QRgb | selection_color = qRgb(210, 0, 229) |
Color for selected elements. More... | |
![]() | |
static QCursor | scaledToScreen (const QCursor &unscaled_cursor) |
Returns a cursor which is scaled to the screen's resolution. More... | |
![]() | |
objectName | |
Provides a simple interface to base tools on.
Look at the top of the protected section for the methods to override, and below that for some helper methods.
OpenOrienteering::MapEditorToolBase::MapEditorToolBase | ( | const QCursor & | cursor, |
MapEditorTool::Type | type, | ||
MapEditorController * | editor, | ||
QAction * | tool_action | ||
) |
|
override |
|
protected |
|
protected |
Activates or deactivates the angle helper, recalculates (un-)constrained cursor position, and calls mouseMove() or dragMove() to update the tool.
|
protected |
Activates or deactivates the snap helper, recalculates (un-)constrained cursor position, and calls mouseMove() or dragMove() to update the tool.
|
protected |
|
protectedvirtual |
Called when the left mouse button is pressed.
Reimplemented in OpenOrienteering::DrawPointTool, OpenOrienteering::CutTool, OpenOrienteering::DrawTextTool, OpenOrienteering::EditPointTool, OpenOrienteering::FillTool, OpenOrienteering::EditLineTool, OpenOrienteering::RotatePatternTool, and OpenOrienteering::PanTool.
|
protectedvirtual |
Called when the left mouse button is released without a drag operation before.
Reimplemented in OpenOrienteering::CutoutTool, OpenOrienteering::DrawPointTool, OpenOrienteering::CutTool, OpenOrienteering::DrawTextTool, OpenOrienteering::EditPointTool, OpenOrienteering::DrawPointGPSTool, OpenOrienteering::EditLineTool, OpenOrienteering::RotateTool, OpenOrienteering::ScaleTool, and OpenOrienteering::RotatePatternTool.
|
protectedvirtual |
Reimplemented in OpenOrienteering::EditPointTool, OpenOrienteering::EditLineTool, and OpenOrienteering::PanTool.
|
protectedvirtual |
Called when a drag operation is finished.
There is no need to update the edit operation with the current cursor coordinates in this call as it is ensured that dragMove() is called before.
Reimplemented in OpenOrienteering::CutoutTool, OpenOrienteering::DrawPointTool, OpenOrienteering::CutTool, OpenOrienteering::DrawTextTool, OpenOrienteering::EditPointTool, OpenOrienteering::EditLineTool, OpenOrienteering::RotateTool, OpenOrienteering::ScaleTool, OpenOrienteering::RotatePatternTool, and OpenOrienteering::PanTool.
|
protectedvirtual |
Called when the mouse is moved with the left mouse button being pressed.
Reimplemented in OpenOrienteering::CutoutTool, OpenOrienteering::DrawPointTool, OpenOrienteering::CutTool, OpenOrienteering::DrawTextTool, OpenOrienteering::EditPointTool, OpenOrienteering::EditLineTool, OpenOrienteering::RotateTool, OpenOrienteering::ScaleTool, OpenOrienteering::RotatePatternTool, and OpenOrienteering::PanTool.
|
protectedvirtual |
Called when a drag operation is started.
This happens when dragging the mouse some pixels away from the mouse press position. The distance is determined by start_drag_distance. dragMove() is called immediately after this call to account for the already moved distance.
Reimplemented in OpenOrienteering::CutoutTool, OpenOrienteering::DrawPointTool, OpenOrienteering::CutTool, OpenOrienteering::EditPointTool, OpenOrienteering::EditLineTool, OpenOrienteering::RotateTool, OpenOrienteering::ScaleTool, OpenOrienteering::RotatePatternTool, and OpenOrienteering::PanTool.
|
overridevirtual |
Draws the preview renderables. Should be overridden to draw custom elements.
Reimplemented from OpenOrienteering::MapEditorTool.
|
protectedvirtual |
Must draw the tool's graphics.
The implementation draws the preview renderables. MapEditorToolBase::draw() draws the activated tool helpers afterwards. If this is not desired, you can override draw() directly.
Reimplemented in OpenOrienteering::CutTool, OpenOrienteering::EditPointTool, OpenOrienteering::DrawTextTool, OpenOrienteering::DrawPointTool, OpenOrienteering::EditLineTool, OpenOrienteering::CutoutTool, OpenOrienteering::DrawPointGPSTool, OpenOrienteering::RotateTool, OpenOrienteering::ScaleTool, and OpenOrienteering::RotatePatternTool.
|
protected |
If the tool created custom renderables (e.g.
with updatePreviewObjects()), draws the preview renderables, else draws the renderables of the selected map objects.
|
inlineprotected |
|
protected |
|
protected |
|
overridevirtual |
Finishes editing if it is currently in progress.
Deriving functions shall call this class' implementation (which calls setEditingInProgress(false)).
Reimplemented from OpenOrienteering::MapEditorTool.
|
overrideprotectedvirtual |
This is called to signal the start of a gesture.
Tools may reimplement this if they want to cancel ongoing interactions such as dragging.
Reimplemented from OpenOrienteering::MapEditorTool.
|
overridevirtual |
Returns the cursor which should be used for the tool in the editor windows.
Implements OpenOrienteering::MapEditorTool.
|
overridevirtual |
Performs initialization when the tool becomes active.
This method is called by the map editor when the tool shall become active. Reimplementations may make changes to the map editor or window (e.g. set status bar text) which are not allowed in the constructor.
Note that this method by call several times, without any deinitialization in between.
Reimplementations shall call parent implementations.
The implementation in this class marks the tool's action as checked.
Reimplemented from OpenOrienteering::MapEditorTool.
|
protectedvirtual |
Can do additional initializations at a time where no other tool is active (in contrast to the constructor)
Reimplemented in OpenOrienteering::EditPointTool, OpenOrienteering::CutoutTool, OpenOrienteering::EditLineTool, OpenOrienteering::CutTool, OpenOrienteering::DrawTextTool, OpenOrienteering::DrawPointGPSTool, OpenOrienteering::DrawPointTool, OpenOrienteering::RotatePatternTool, OpenOrienteering::RotateTool, and OpenOrienteering::ScaleTool.
|
inlineprotected |
Is the left mouse button pressed and has a drag move been started (by moving the mouse a minimum amount of pixels)?
Called when a key is pressed down. Return true if the key was processed by the tool.
Reimplemented in OpenOrienteering::EditPointTool, OpenOrienteering::DrawPointTool, OpenOrienteering::CutTool, OpenOrienteering::DrawTextTool, OpenOrienteering::CutoutTool, OpenOrienteering::DrawPointGPSTool, OpenOrienteering::EditLineTool, and OpenOrienteering::RotateTool.
Reimplemented from OpenOrienteering::MapEditorTool.
Called when a key is released. Return true if the key was processed by the tool.
Reimplemented in OpenOrienteering::EditPointTool, OpenOrienteering::DrawPointTool, OpenOrienteering::CutTool, OpenOrienteering::DrawTextTool, OpenOrienteering::EditLineTool, and OpenOrienteering::RotateTool.
Reimplemented from OpenOrienteering::MapEditorTool.
|
protectedvirtual |
Called when the mouse is moved without the left mouse button being pressed.
Reimplemented in OpenOrienteering::DrawPointTool, OpenOrienteering::CutTool, OpenOrienteering::DrawTextTool, OpenOrienteering::EditPointTool, OpenOrienteering::EditLineTool, and OpenOrienteering::RotateTool.
|
overridevirtual |
Reimplemented from OpenOrienteering::MapEditorTool.
void OpenOrienteering::MapEditorToolBase::mousePositionEvent | ( | QMouseEvent * | event, |
const MapCoordF & | map_coord, | ||
MapWidget * | widget | ||
) |
Updates the saved current position (raw and constrained), map widget, and modifiers.
This function is called by the other mouse*Event handlers of this class. Derived classes which override the handlers may wish to call this, too.
|
overridevirtual |
Reimplemented from OpenOrienteering::MapEditorTool.
|
overridevirtual |
Reimplemented from OpenOrienteering::MapEditorTool.
|
protectedslot |
|
protectedpure virtual |
Called when the object selection in the map is changed.
This can happen for example as result of an undo/redo operation.
Implemented in OpenOrienteering::EditPointTool, OpenOrienteering::DrawPointTool, OpenOrienteering::CutoutTool, OpenOrienteering::EditLineTool, OpenOrienteering::CutTool, OpenOrienteering::DrawPointGPSTool, OpenOrienteering::DrawTextTool, OpenOrienteering::RotateTool, OpenOrienteering::ScaleTool, OpenOrienteering::RotatePatternTool, OpenOrienteering::FillTool, and OpenOrienteering::PanTool.
|
protected |
Applies the constraint helpers and generates a pointer event.
This function re-applies the constraint helpers to the current pointer position. Then it calls either mouseMove() or dragMove(), depending on the current state.
|
protected |
|
protected |
|
protected |
Call this before editing the selected objects, and finish/abortEditing() afterwards.
Takes care of the preview renderables handling, map dirty flag, and objects edited signal.
|
protected |
|
protected |
|
protected |
Calculates the constrained cursor position for the current position and map widget.
Key event handlers which change constraint helper activation must call this to be able to visualize the effect of the change. Overrides of mouse*Event handlers shall call mousePositionEvent() instead. This is also done by the default implementation of these handlers. Thus it is not necessary to call this explicitly from clickPress(), clickRelease(), mouseMove(), dragStart(), dragMove(), or dragFinish() handlers.
|
protectedslot |
|
protectedvirtual |
Must include the area of all custom drawings into the rect, which already contains the area of the selection preview and activated tool helpers when this method is called.
Must return the size of the pixel border, or -1 to clear the drawing.
Reimplemented in OpenOrienteering::CutTool, OpenOrienteering::EditPointTool, OpenOrienteering::DrawTextTool, OpenOrienteering::DrawPointTool, OpenOrienteering::CutoutTool, OpenOrienteering::EditLineTool, OpenOrienteering::DrawPointGPSTool, OpenOrienteering::RotateTool, OpenOrienteering::ScaleTool, and OpenOrienteering::RotatePatternTool.
|
protected |
|
protectedvirtual |
Call this to display changes to the preview objects between startEditing() and finish/abortEditing().
Reimplemented in OpenOrienteering::EditPointTool, OpenOrienteering::CutTool, and OpenOrienteering::EditLineTool.
|
protected |
Call this to display changes to the preview objects between startEditing() and finish/abortEditing().
This method delays the actual redraw by a short amount of time to reduce the load when editing many objects.
|
protectedslot |
|
protectedpure virtual |
Must update the status bar text.
Implemented in OpenOrienteering::EditPointTool, OpenOrienteering::DrawTextTool, OpenOrienteering::DrawPointTool, OpenOrienteering::EditLineTool, OpenOrienteering::CutoutTool, OpenOrienteering::CutTool, OpenOrienteering::RotateTool, OpenOrienteering::DrawPointGPSTool, OpenOrienteering::RotatePatternTool, OpenOrienteering::FillTool, OpenOrienteering::ScaleTool, and OpenOrienteering::PanTool.
|
protected |
Bitmask containing active modifiers.
|
protected |
Angle tool helper. If activated, it is included in the dirty rect and drawn automatically.
|
protected |
Position where the left mouse button was pressed, with no constraints applied.
|
protected |
|
protected |
Position where the left mouse button was pressed, constrained by tool helpers, if active.
|
protected |
|
protected |
Position where the cursor is currently, constrained by tool helpers, if active.
|
protected |
|
protected |
The map widget in which the tool was last used.
|
protected |
Position where the cursor is currently.
|
protected |
|
protected |
The amount of pixels the mouse has to be moved to start dragging.
Defaults to Settings::getInstance().getStartDragDistancePx(), but can be modified.
|
protected |
Must be set by derived classes if a key button bar is used.
MapEditorToolBase will take care of including its modifiers into active_modifiers and destruct it when the tool is destructed.
|
protected |
An object to exclude from snapping, or nullptr to snap to all objects.
|
protected |
Snapping tool helper. If a non-null filter is set, it is included in the dirty rect and drawn automatically.
|
protected |
This is set to true when constrained_pos(_map) is a snapped position.