Mapper  0.9.0
API documentation
Public Slots | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
OpenOrienteering::PrintTool Class Reference

The PrintTool lets the user see and modify the print area on the map by dragging. More...

#include <print_tool.h>

Inheritance diagram for OpenOrienteering::PrintTool:
Inheritance graph
[legend]
Collaboration diagram for OpenOrienteering::PrintTool:
Collaboration graph
[legend]

Public Slots

void updatePrintArea ()
 Updates the print area visualization in the map editors. More...
 

Public Member Functions

 PrintTool (MapEditorController *editor, MapPrinter *map_printer)
 Constructs a new PrintTool to configure the given map printer in the context of the editor. More...
 
 ~PrintTool () override
 
void init () override
 Notifies the tool that it becomes active. More...
 
const QCursorgetCursor () const override
 Always returns the tool's default cursor. More...
 
bool mousePressEvent (QMouseEvent *event, const MapCoordF &map_coord, MapWidget *widget) override
 Starts a dragging interaction. More...
 
bool mouseMoveEvent (QMouseEvent *event, const MapCoordF &map_coord, MapWidget *widget) override
 Updates the state of a running dragging interaction. More...
 
bool mouseReleaseEvent (QMouseEvent *event, const MapCoordF &map_coord, MapWidget *widget) override
 Finishes dragging interactions. More...
 
void draw (QPainter *painter, MapWidget *widget) override
 Draws a visualization of the print area the map widget. More...
 
- Public Member Functions inherited from OpenOrienteering::MapEditorTool
 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 bool keyPressEvent (QKeyEvent *event)
 
virtual bool keyReleaseEvent (QKeyEvent *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)
 
virtual void gestureStarted ()
 This is called to signal the start of a gesture. More...
 
Type toolType () const
 Returns the type of this tool. More...
 
QActiontoolAction () const
 Returns the action which represents this tool. More...
 
bool usesTouchCursor () const
 Returns whether to use the touch helper cursor for this tool. More...
 
Mapmap () const
 Returns the map being edited. More...
 
MapWidgetmapWidget () const
 Returns the map widget being operated on. More...
 
MainWindowmainWindow () const
 Returns the main window the controller is attached to. More...
 
QWidgetwindow () 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...
 
virtual void finishEditing ()
 Finishes editing if it is currently in progress. More...
 
bool isDrawTool () const
 Returns true if the given tool is for drawing new objects. More...
 
const PointHandlespointHandles () 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...
 
- Public Member Functions inherited from QObject
virtual const QMetaObjectmetaObject () 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)
 
QThreadthread () 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)
 
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 &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectListchildren () 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< QByteArraydynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
 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 Types

enum  InteractionRegion {
  Inside = 0x00, Outside = 0x01, LeftBorder = 0x02, TopLeftCorner = 0x06,
  TopBorder = 0x04, TopRightCorner = 0x0c, RightBorder = 0x08, BottomRightCorner = 0x18,
  BottomBorder = 0x10, BottomLeftCorner = 0x12, Unknown = 0xFF
}
 Regions of interaction with the print area. More...
 

Protected Member Functions

void updateDragging (const MapCoordF &mouse_pos_map)
 Modifies the print area while dragging. More...
 
void mouseMoved (const MapCoordF &mouse_pos_map, MapWidget *widget)
 Updates the current interaction region. More...
 
- Protected Member Functions inherited from OpenOrienteering::MapEditorTool
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...
 
- Protected Member Functions inherited from QObject
QObjectsender () 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

MapPrinter *const map_printer
 The map printer this tool is operation on. More...
 
InteractionRegion region
 The region of the print area where the current interaction takes place. More...
 
bool dragging
 Indicates whether an interaction is taking place at the moment. More...
 
QPoint click_pos
 The screen position where the initial click was made. More...
 
MapCoordF click_pos_map
 The map position where the initial click was made. More...
 
- Protected Attributes inherited from OpenOrienteering::MapEditorTool
MapEditorController *const editor
 The map editor which uses this tool. More...
 

Additional Inherited Members

- Public Types inherited from OpenOrienteering::MapEditorTool
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...
 
- Static Public Member Functions inherited from QObject
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)
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Static Public Attributes inherited from OpenOrienteering::MapEditorTool
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 Protected Member Functions inherited from OpenOrienteering::MapEditorTool
static QCursor scaledToScreen (const QCursor &unscaled_cursor)
 Returns a cursor which is scaled to the screen's resolution. More...
 
- Properties inherited from QObject
 objectName
 

Detailed Description

The PrintTool lets the user see and modify the print area on the map by dragging.

It interacts with a MapEditorController and a PrintWidget which are set in the constructor.

Member Enumeration Documentation

◆ InteractionRegion

Regions of interaction with the print area.

Enumerator
Inside 
Outside 
LeftBorder 
TopLeftCorner 
TopBorder 
TopRightCorner 
RightBorder 
BottomRightCorner 
BottomBorder 
BottomLeftCorner 
Unknown 

Constructor & Destructor Documentation

◆ PrintTool()

OpenOrienteering::PrintTool::PrintTool ( MapEditorController editor,
MapPrinter map_printer 
)

Constructs a new PrintTool to configure the given map printer in the context of the editor.

The parameters must not be null.

◆ ~PrintTool()

OpenOrienteering::PrintTool::~PrintTool ( )
override

Member Function Documentation

◆ draw()

void OpenOrienteering::PrintTool::draw ( QPainter painter,
MapWidget widget 
)
overridevirtual

Draws a visualization of the print area the map widget.

Reimplemented from OpenOrienteering::MapEditorTool.

◆ getCursor()

const QCursor & OpenOrienteering::PrintTool::getCursor ( ) const
overridevirtual

Always returns the tool's default cursor.

Implements OpenOrienteering::MapEditorTool.

◆ init()

void OpenOrienteering::PrintTool::init ( )
overridevirtual

Notifies the tool that it becomes active.

Reimplemented from OpenOrienteering::MapEditorTool.

◆ mouseMoved()

void OpenOrienteering::PrintTool::mouseMoved ( const MapCoordF mouse_pos_map,
MapWidget widget 
)
protected

Updates the current interaction region.

This must not be called during dragging.

◆ mouseMoveEvent()

bool OpenOrienteering::PrintTool::mouseMoveEvent ( QMouseEvent event,
const MapCoordF map_coord,
MapWidget widget 
)
overridevirtual

Updates the state of a running dragging interaction.

When not dragging, it will update the cursor to indicate a possible interaction.

Reimplemented from OpenOrienteering::MapEditorTool.

◆ mousePressEvent()

bool OpenOrienteering::PrintTool::mousePressEvent ( QMouseEvent event,
const MapCoordF map_coord,
MapWidget widget 
)
overridevirtual

Starts a dragging interaction.

Reimplemented from OpenOrienteering::MapEditorTool.

◆ mouseReleaseEvent()

bool OpenOrienteering::PrintTool::mouseReleaseEvent ( QMouseEvent event,
const MapCoordF map_coord,
MapWidget widget 
)
overridevirtual

Finishes dragging interactions.

Reimplemented from OpenOrienteering::MapEditorTool.

◆ updateDragging()

void OpenOrienteering::PrintTool::updateDragging ( const MapCoordF mouse_pos_map)
protected

Modifies the print area while dragging.

This must not be called when the region is Outside.

◆ updatePrintArea

void OpenOrienteering::PrintTool::updatePrintArea ( )
slot

Updates the print area visualization in the map editors.

Member Data Documentation

◆ click_pos

QPoint OpenOrienteering::PrintTool::click_pos
protected

The screen position where the initial click was made.

◆ click_pos_map

MapCoordF OpenOrienteering::PrintTool::click_pos_map
protected

The map position where the initial click was made.

◆ dragging

bool OpenOrienteering::PrintTool::dragging
protected

Indicates whether an interaction is taking place at the moment.

◆ map_printer

MapPrinter* const OpenOrienteering::PrintTool::map_printer
protected

The map printer this tool is operation on.

◆ region

InteractionRegion OpenOrienteering::PrintTool::region
protected

The region of the print area where the current interaction takes place.


The documentation for this class was generated from the following files: