• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • plugins
  • render
  • measure
MeasureToolPlugin.h
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2006-2007 Torsten Rahn <tackat@kde.org>
9 // Copyright 2007 Inge Wallin <ingwa@kde.org>
10 // Copyright 2011 Michael Henning <mikehenning@eclipse.net>
11 //
12 
13 //
14 // MeasureToolPlugin enables Marble to set and display measure points
15 //
16 
17 #ifndef MARBLE_MEASURETOOLPLUGIN_H
18 #define MARBLE_MEASURETOOLPLUGIN_H
19 
20 #include "DialogConfigurationInterface.h"
21 #include "GeoDataLineString.h"
22 #include "RenderPlugin.h"
23 #include "MarbleWidget.h"
24 #include "MarbleWidgetPopupMenu.h"
25 
26 #include <QObject>
27 #include <QFont>
28 #include <QPen>
29 #include <QAction>
30 
31 namespace Ui {
32  class MeasureConfigWidget;
33 }
34 
35 namespace Marble
36 {
37 
38 class MeasureToolPlugin : public RenderPlugin, public DialogConfigurationInterface
39 {
40  Q_OBJECT
41  Q_PLUGIN_METADATA( IID "org.kde.edu.marble.MeasureToolPlugin" )
42  Q_INTERFACES( Marble::RenderPluginInterface )
43  Q_INTERFACES( Marble::DialogConfigurationInterface )
44  MARBLE_PLUGIN( MeasureToolPlugin )
45 
46  public:
47  explicit MeasureToolPlugin( const MarbleModel *marbleModel = 0 );
48 
49  QStringList backendTypes() const;
50  QString renderPolicy() const;
51  QStringList renderPosition() const;
52  QString name() const;
53  QString guiString() const;
54  QString nameId() const;
55 
56  QString version() const;
57 
58  QString description() const;
59 
60  QString copyrightYears() const;
61 
62  QList<PluginAuthor> pluginAuthors() const;
63 
64  QIcon icon () const;
65 
66  void initialize ();
67 
68  bool isInitialized () const;
69 
70  bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 );
71 
72  QDialog *configDialog();
73  QHash<QString,QVariant> settings() const;
74  void setSettings( const QHash<QString,QVariant> &settings );
75 
76  Q_SIGNALS:
77  void numberOfMeasurePointsChanged( int newNumber );
78 
79  public Q_SLOTS:
80  bool eventFilter( QObject *object, QEvent *event );
81 
82  private:
83  void drawMeasurePoints( GeoPainter *painter ) const;
84  void drawTotalDistanceLabel( GeoPainter *painter,
85  qreal totalDistance ) const;
86  void drawSegments( GeoPainter *painter );
87  void addContextItems();
88  void removeContextItems();
89 
90  private Q_SLOTS:
91  void setNumberOfMeasurePoints( int number );
92  void addMeasurePointEvent();
93 
94  void addMeasurePoint( qreal lon, qreal lat );
95  void removeLastMeasurePoint();
96  void removeMeasurePoints();
97 
98  void writeSettings();
99 
100  private:
101  Q_DISABLE_COPY( MeasureToolPlugin )
102 
103  // The line strings in the distance path.
104  GeoDataLineString m_measureLineString;
105 
106  const QPixmap m_mark;
107  QFont m_font_regular;
108  int m_fontascent;
109 
110  QPen m_pen;
111 
112  QAction *m_addMeasurePointAction;
113  QAction *m_removeLastMeasurePointAction;
114  QAction *m_removeMeasurePointsAction;
115  QAction *m_separator;
116 
117  MarbleWidget* m_marbleWidget;
118 
119  QDialog * m_configDialog;
120  Ui::MeasureConfigWidget * m_uiConfigWidget;
121  bool m_showDistanceLabel;
122  bool m_showBearingLabel;
123 };
124 
125 }
126 
127 #endif // MARBLE_MEASURETOOLPLUGIN_H
QEvent
Marble::RenderPluginInterface
The class that specifies the Marble layer interface of a plugin.
Definition: RenderPluginInterface.h:30
Marble::DialogConfigurationInterface
This interface allows a plugin to provide a QWidget-based configuration dialog which is accessible wi...
Definition: DialogConfigurationInterface.h:31
Marble::MeasureToolPlugin::eventFilter
bool eventFilter(QObject *object, QEvent *event)
Definition: MeasureToolPlugin.cpp:402
Marble::MeasureToolPlugin::settings
QHash< QString, QVariant > settings() const
Settings of the plugin.
Definition: MeasureToolPlugin.cpp:149
Marble::GeoPainter
A painter that allows to draw geometric primitives on the map.
Definition: GeoPainter.h:98
QFont
Marble::MeasureToolPlugin::isInitialized
bool isInitialized() const
Definition: MeasureToolPlugin.cpp:125
Marble::MeasureToolPlugin::backendTypes
QStringList backendTypes() const
Returns the name(s) of the backend that the plugin can render This method should return the name of t...
Definition: MeasureToolPlugin.cpp:59
Marble::MeasureToolPlugin::MeasureToolPlugin
MeasureToolPlugin(const MarbleModel *marbleModel=0)
Definition: MeasureToolPlugin.cpp:35
Marble::MeasureToolPlugin::copyrightYears
QString copyrightYears() const
Definition: MeasureToolPlugin.cpp:99
Marble::MarbleWidget
A widget class that displays a view of the earth.
Definition: MarbleWidget.h:104
QObject::event
virtual bool event(QEvent *e)
Marble::MeasureToolPlugin::nameId
QString nameId() const
Returns the unique name of the plugin.
Definition: MeasureToolPlugin.cpp:84
Marble::MeasureToolPlugin::numberOfMeasurePointsChanged
void numberOfMeasurePointsChanged(int newNumber)
Marble::MeasureToolPlugin::version
QString version() const
Definition: MeasureToolPlugin.cpp:89
Marble::MeasureToolPlugin::pluginAuthors
QList< PluginAuthor > pluginAuthors() const
Definition: MeasureToolPlugin.cpp:104
Marble::GeoSceneLayer
Layer of a GeoScene document.
Definition: GeoSceneLayer.h:43
QHash< QString, QVariant >
QObject
Marble::MeasureToolPlugin::renderPosition
QStringList renderPosition() const
Preferred level in the layer stack for the rendering.
Definition: MeasureToolPlugin.cpp:69
Marble::MeasureToolPlugin::initialize
void initialize()
Definition: MeasureToolPlugin.cpp:121
MarbleWidgetPopupMenu.h
GeoDataLineString.h
DialogConfigurationInterface.h
QString
QList
Marble::GeoDataLineString
A LineString that allows to store a contiguous set of line segments.
Definition: GeoDataLineString.h:75
Marble::MeasureToolPlugin
Definition: MeasureToolPlugin.h:38
QStringList
Marble::ViewportParams
A public class that controls what is visible in the viewport of a Marble map.
Definition: ViewportParams.h:44
QPixmap
Marble::MeasureToolPlugin::description
QString description() const
Returns a user description of the plugin.
Definition: MeasureToolPlugin.cpp:94
Marble::MarbleModel
The data model (not based on QAbstractModel) for a MarbleWidget.
Definition: MarbleModel.h:97
Marble::MeasureToolPlugin::render
bool render(GeoPainter *painter, ViewportParams *viewport, const QString &renderPos, GeoSceneLayer *layer=0)
Renders the content provided by the layer on the viewport.
Definition: MeasureToolPlugin.cpp:176
RenderPlugin.h
QAction
Marble::MeasureToolPlugin::name
QString name() const
Returns the user-visible name of the plugin.
Definition: MeasureToolPlugin.cpp:74
Marble::MeasureToolPlugin::renderPolicy
QString renderPolicy() const
Return how the plugin settings should be used.
Definition: MeasureToolPlugin.cpp:64
QPen
QDialog
MarbleWidget.h
This file contains the headers for MarbleWidget.
Marble::MeasureToolPlugin::guiString
QString guiString() const
String that should be displayed in GUI.
Definition: MeasureToolPlugin.cpp:79
Marble::RenderPlugin::marbleModel
const MarbleModel * marbleModel() const
Access to the MarbleModel.
Definition: RenderPlugin.cpp:83
Marble::MeasureToolPlugin::configDialog
QDialog * configDialog()
Returns a pointer to the configuration dialog of the plugin.
Definition: MeasureToolPlugin.cpp:130
Marble::MeasureToolPlugin::icon
QIcon icon() const
Returns an icon for the plugin.
Definition: MeasureToolPlugin.cpp:116
Marble::MeasureToolPlugin::setSettings
void setSettings(const QHash< QString, QVariant > &settings)
Set the settings of the plugin.
Definition: MeasureToolPlugin.cpp:159
Marble::RenderPlugin
The abstract class that creates a renderable item.
Definition: RenderPlugin.h:43
QIcon
MARBLE_PLUGIN
#define MARBLE_PLUGIN(T)
Definition: RenderPlugin.h:340
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:40 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal