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

marble

  • sources
  • kde-4.12
  • 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  MeasureToolPlugin();
48  explicit MeasureToolPlugin( const MarbleModel *marbleModel );
49 
50  QStringList backendTypes() const;
51  QString renderPolicy() const;
52  QStringList renderPosition() const;
53  QString name() const;
54  QString guiString() const;
55  QString nameId() const;
56 
57  QString version() const;
58 
59  QString description() const;
60 
61  QString copyrightYears() const;
62 
63  QList<PluginAuthor> pluginAuthors() const;
64 
65  QIcon icon () const;
66 
67  void initialize ();
68 
69  bool isInitialized () const;
70 
71  bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 );
72 
73  QDialog *configDialog();
74  QHash<QString,QVariant> settings() const;
75  void setSettings( const QHash<QString,QVariant> &settings );
76 
77  Q_SIGNALS:
78  void numberOfMeasurePointsChanged( int newNumber );
79 
80  public Q_SLOTS:
81  bool eventFilter( QObject *object, QEvent *event );
82 
83  private:
84  void drawMeasurePoints( GeoPainter *painter );
85  void drawTotalDistanceLabel( GeoPainter *painter,
86  qreal totalDistance );
87  void drawSegments( GeoPainter *painter );
88  void addContextItems();
89  void removeContextItems();
90 
91  private Q_SLOTS:
92  void setNumberOfMeasurePoints( int number );
93  void addMeasurePointEvent();
94 
95  void addMeasurePoint( qreal lon, qreal lat );
96  void removeLastMeasurePoint();
97  void removeMeasurePoints();
98 
99  void writeSettings();
100 
101  private:
102  Q_DISABLE_COPY( MeasureToolPlugin )
103 
104  // The line strings in the distance path.
105  GeoDataLineString m_measureLineString;
106 
107  const QPixmap m_mark;
108  QFont m_font_regular;
109  int m_fontascent;
110 
111  QPen m_pen;
112 
113  QAction *m_addMeasurePointAction;
114  QAction *m_removeLastMeasurePointAction;
115  QAction *m_removeMeasurePointsAction;
116  QAction *m_separator;
117 
118  MarbleWidget* m_marbleWidget;
119 
120  QDialog * m_configDialog;
121  Ui::MeasureConfigWidget * m_uiConfigWidget;
122  bool m_showSegmentLabels;
123 };
124 
125 }
126 
127 #endif // MARBLE_MEASURETOOLPLUGIN_H
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:378
QDialog
Marble::MeasureToolPlugin::settings
QHash< QString, QVariant > settings() const
Settings of the plugin.
Definition: MeasureToolPlugin.cpp:150
Marble::GeoPainter
A painter that allows to draw geometric primitives on the map.
Definition: GeoPainter.h:98
Marble::MeasureToolPlugin::isInitialized
bool isInitialized() const
Definition: MeasureToolPlugin.cpp:127
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:61
Marble::MeasureToolPlugin::MeasureToolPlugin
MeasureToolPlugin()
Definition: MeasureToolPlugin.cpp:35
QObject
Marble::MeasureToolPlugin::copyrightYears
QString copyrightYears() const
Definition: MeasureToolPlugin.cpp:101
Marble::MarbleWidget
A widget class that displays a view of the earth.
Definition: MarbleWidget.h:102
Marble::MeasureToolPlugin::nameId
QString nameId() const
Returns the unique name of the plugin.
Definition: MeasureToolPlugin.cpp:86
Marble::MeasureToolPlugin::numberOfMeasurePointsChanged
void numberOfMeasurePointsChanged(int newNumber)
Marble::MeasureToolPlugin::version
QString version() const
Definition: MeasureToolPlugin.cpp:91
Marble::MeasureToolPlugin::pluginAuthors
QList< PluginAuthor > pluginAuthors() const
Definition: MeasureToolPlugin.cpp:106
Marble::GeoSceneLayer
Layer of a GeoScene document.
Definition: GeoSceneLayer.h:43
Marble::MeasureToolPlugin::renderPosition
QStringList renderPosition() const
Preferred level in the layer stack for the rendering.
Definition: MeasureToolPlugin.cpp:71
Marble::MeasureToolPlugin::initialize
void initialize()
Definition: MeasureToolPlugin.cpp:123
MarbleWidgetPopupMenu.h
GeoDataLineString.h
DialogConfigurationInterface.h
Marble::GeoDataLineString
A LineString that allows to store a contiguous set of line segments.
Definition: GeoDataLineString.h:75
Marble::MeasureToolPlugin
Definition: MeasureToolPlugin.h:38
Marble::ViewportParams
A public class that controls what is visible in the viewport of a Marble map.
Definition: ViewportParams.h:44
Marble::MeasureToolPlugin::description
QString description() const
Returns a user description of the plugin.
Definition: MeasureToolPlugin.cpp:96
Marble::MarbleModel
The data model (not based on QAbstractModel) for a MarbleWidget.
Definition: MarbleModel.h:96
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:174
RenderPlugin.h
Marble::MeasureToolPlugin::name
QString name() const
Returns the user-visible name of the plugin.
Definition: MeasureToolPlugin.cpp:76
Marble::MeasureToolPlugin::renderPolicy
QString renderPolicy() const
Return how the plugin settings should be used.
Definition: MeasureToolPlugin.cpp:66
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:81
Marble::RenderPlugin::marbleModel
const MarbleModel * marbleModel() const
Access to the MarbleModel.
Definition: RenderPlugin.cpp:81
Marble::MeasureToolPlugin::configDialog
QDialog * configDialog()
Returns a pointer to the configuration dialog of the plugin.
Definition: MeasureToolPlugin.cpp:132
Marble::MeasureToolPlugin::icon
QIcon icon() const
Returns an icon for the plugin.
Definition: MeasureToolPlugin.cpp:118
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
MARBLE_PLUGIN
#define MARBLE_PLUGIN(T)
Definition: RenderPlugin.h:337
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:51 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
  • kstars
  • libkdeedu
  •   keduvocdocument
  • 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