![]() |
Mapper
0.9.0
API documentation
|
Tool to make map cutouts. More...
#include <cutout_tool.h>
Public Member Functions | |
CutoutTool (MapEditorController *editor, QAction *tool_action, bool cut_away) | |
Constructs a CutoutTool. More... | |
CutoutTool (const CutoutTool &)=delete | |
~CutoutTool () override | |
![]() | |
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 | |
Static Public Member Functions | |
static void | apply (Map *map, PathObject *cutout_object, bool cut_away) |
Applies the tool to cut all selected objects in map, or to all objects if there is no selection. 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) |
Protected Member Functions | |
void | drawImpl (QPainter *painter, MapWidget *widget) override |
Must draw the tool's graphics. More... | |
bool | keyPress (QKeyEvent *event) override |
Called when a key is pressed down. Return true if the key was processed by the tool. More... | |
void | finishEditing () override |
Finishes editing if it is currently in progress. More... | |
void | initImpl () override |
Can do additional initializations at a time where no other tool is active (in contrast to the constructor) More... | |
int | updateDirtyRectImpl (QRectF &rect) override |
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... | |
void | updateStatusText () override |
Must update the status bar text. More... | |
void | objectSelectionChangedImpl () override |
Called when the object selection in the map is changed. More... | |
void | clickRelease () override |
Called when the left mouse button is released without a drag operation before. More... | |
void | dragStart () override |
Called when a drag operation is started. More... | |
void | dragMove () override |
Called when the mouse is moved with the left mouse button being pressed. More... | |
void | dragFinish () override |
Called when a drag operation is finished. More... | |
![]() | |
virtual void | clickPress () |
Called when the left mouse button is pressed. 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 | dragCanceled () |
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) |
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... | |
![]() | |
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... | |
![]() | |
void | updateDirtyRect () |
void | objectSelectionChanged () |
void | updatePreviewObjectsSlot () |
![]() | |
static QCursor | scaledToScreen (const QCursor &unscaled_cursor) |
Returns a cursor which is scaled to the screen's resolution. More... | |
![]() | |
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... | |
![]() | |
objectName | |
Tool to make map cutouts.
OpenOrienteering::CutoutTool::CutoutTool | ( | MapEditorController * | editor, |
QAction * | tool_action, | ||
bool | cut_away | ||
) |
Constructs a CutoutTool.
Setting cut_away to true inverts the tool's effect, cutting the part inside the cut shape away instead of the part outside.
|
delete |
|
overridedefault |
|
static |
Applies the tool to cut all selected objects in map, or to all objects if there is no selection.
cutout_object itself must not be selected!
Can also be used without constructing a tool object.
Setting cut_away to true inverts the effect, cutting the part inside the cut shape away instead of the part outside.
|
overrideprotectedvirtual |
Called when the left mouse button is released without a drag operation before.
Reimplemented from OpenOrienteering::MapEditorToolBase.
|
overrideprotectedvirtual |
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 from OpenOrienteering::MapEditorToolBase.
|
overrideprotectedvirtual |
Called when the mouse is moved with the left mouse button being pressed.
Reimplemented from OpenOrienteering::MapEditorToolBase.
|
overrideprotectedvirtual |
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 from OpenOrienteering::MapEditorToolBase.
|
overrideprotectedvirtual |
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 from OpenOrienteering::MapEditorToolBase.
|
overrideprotectedvirtual |
Finishes editing if it is currently in progress.
Deriving functions shall call this class' implementation (which calls setEditingInProgress(false)).
Reimplemented from OpenOrienteering::MapEditorTool.
|
overrideprotectedvirtual |
Can do additional initializations at a time where no other tool is active (in contrast to the constructor)
Reimplemented from OpenOrienteering::MapEditorToolBase.
Called when a key is pressed down. Return true if the key was processed by the tool.
Reimplemented from OpenOrienteering::MapEditorToolBase.
|
overrideprotectedvirtual |
Called when the object selection in the map is changed.
This can happen for example as result of an undo/redo operation.
Implements OpenOrienteering::MapEditorToolBase.
|
overrideprotectedvirtual |
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 from OpenOrienteering::MapEditorToolBase.
|
overrideprotectedvirtual |
Must update the status bar text.
Implements OpenOrienteering::MapEditorToolBase.