• 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
  • runner
  • cyclestreets
CycleStreetsPlugin.cpp
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 2013 Mihail Ivchenko <ematirov@gmail.com>
9 //
10 
11 #include "CycleStreetsPlugin.h"
12 #include "CycleStreetsRunner.h"
13 #include "MarbleGlobal.h"
14 #include "MarbleLocale.h"
15 
16 #include "ui_CycleStreetsConfigWidget.h"
17 
18 namespace Marble
19 {
20 
21 class CycleStreetsConfigWidget : public RoutingRunnerPlugin::ConfigWidget
22 {
23 public:
24  CycleStreetsConfigWidget();
25  virtual void loadSettings( const QHash<QString, QVariant> &settings );
26  virtual QHash<QString, QVariant> settings() const;
27 
28 private:
29  Ui::CycleStreetsConfigWidget *ui_configWidget;
30 };
31 
32 CycleStreetsConfigWidget::CycleStreetsConfigWidget()
33  : RoutingRunnerPlugin::ConfigWidget(),
34  ui_configWidget( new Ui::CycleStreetsConfigWidget )
35 {
36  ui_configWidget->setupUi( this );
37 
38  ui_configWidget->plan->addItem( tr( "balanced" ), "balanced" );
39  ui_configWidget->plan->addItem( tr( "fastest" ), "fastest" );
40  ui_configWidget->plan->addItem( tr( "quietest" ), "quietest" );
41  ui_configWidget->plan->addItem( tr( "shortest" ), "shortest" );
42 
43  if ( MarbleGlobal::getInstance()->locale()->measurementSystem() == MarbleLocale::MetricSystem ) {
44  ui_configWidget->speed->addItem( tr( "slow (16 km/h)" ), "16" );
45  ui_configWidget->speed->addItem( tr( "normal (20 km/h)" ), "20" );
46  ui_configWidget->speed->addItem( tr( "fast (24 km/h)") , "24" );
47  } else {
48  ui_configWidget->speed->addItem( tr( "slow (10 mph)" ), "16" );
49  ui_configWidget->speed->addItem( tr( "normal (12 mph)" ), "20" );
50  ui_configWidget->speed->addItem( tr( "fast (15 mph)") , "24" );
51  }
52 }
53 
54 void CycleStreetsConfigWidget::loadSettings( const QHash<QString, QVariant> &settings_ )
55 {
56  QHash<QString, QVariant> settings = settings_;
57 
58  // Check if all fields are filled and fill them with default values.
59  if ( !settings.contains( "plan" ) ) {
60  settings.insert( "plan", "balanced" );
61  }
62  if ( !settings.contains( "speed" ) ) {
63  settings.insert( "speed", "20" );
64  }
65  ui_configWidget->plan->setCurrentIndex(
66  ui_configWidget->plan->findData( settings.value( "plan" ) ));
67  ui_configWidget->speed->setCurrentIndex(
68  ui_configWidget->speed->findData( settings.value( "speed" ) ));
69 }
70 
71 QHash<QString, QVariant> CycleStreetsConfigWidget::settings() const
72 {
73  QHash<QString,QVariant> settings;
74  settings.insert( "plan",
75  ui_configWidget->plan->itemData( ui_configWidget->plan->currentIndex() ) );
76  settings.insert( "speed",
77  ui_configWidget->speed->itemData( ui_configWidget->speed->currentIndex() ) );
78  return settings;
79 }
80 
81 CycleStreetsPlugin::CycleStreetsPlugin( QObject *parent ) :
82  RoutingRunnerPlugin( parent )
83 {
84  setSupportedCelestialBodies( QStringList() << "earth" );
85  setCanWorkOffline( false );
86  setStatusMessage( tr ( "This service requires an Internet connection." ) );
87 }
88 
89 QString CycleStreetsPlugin::name() const
90 {
91  return tr( "CycleStreets Routing" );
92 }
93 
94 QString CycleStreetsPlugin::guiString() const
95 {
96  return tr( "CycleStreets" );
97 }
98 
99 QString CycleStreetsPlugin::nameId() const
100 {
101  return "cyclestreets";
102 }
103 
104 QString CycleStreetsPlugin::version() const
105 {
106  return "1.0";
107 }
108 
109 QString CycleStreetsPlugin::description() const
110 {
111  return tr( "Bicycle routing for the United Kingdom using cyclestreets.net" );
112 }
113 
114 QString CycleStreetsPlugin::copyrightYears() const
115 {
116  return "2013";
117 }
118 
119 QList<PluginAuthor> CycleStreetsPlugin::pluginAuthors() const
120 {
121  return QList<PluginAuthor>()
122  << PluginAuthor( QString::fromUtf8( "Mihail Ivchenko" ), "ematirov@gmail.com" );
123 }
124 
125 RoutingRunner *CycleStreetsPlugin::newRunner() const
126 {
127  return new CycleStreetsRunner;
128 }
129 
130 RoutingRunnerPlugin::ConfigWidget *CycleStreetsPlugin::configWidget()
131 {
132  return new CycleStreetsConfigWidget();
133 }
134 
135 bool CycleStreetsPlugin::supportsTemplate( RoutingProfilesModel::ProfileTemplate profileTemplate ) const
136 {
137  QSet<RoutingProfilesModel::ProfileTemplate> availableTemplates;
138  availableTemplates.insert( RoutingProfilesModel::BicycleTemplate );
139  return availableTemplates.contains( profileTemplate );
140 }
141 
142 }
143 
144 Q_EXPORT_PLUGIN2( CycleStreetsPlugin, Marble::CycleStreetsPlugin )
145 
146 #include "CycleStreetsPlugin.moc"
QHash::insert
iterator insert(const Key &key, const T &value)
Marble::CycleStreetsPlugin::CycleStreetsPlugin
CycleStreetsPlugin(QObject *parent=0)
Definition: CycleStreetsPlugin.cpp:81
Marble::PluginAuthor
Definition: PluginInterface.h:28
QSet::insert
const_iterator insert(const T &value)
QObject::tr
QString tr(const char *sourceText, const char *disambiguation, int n)
Marble::RoutingRunnerPlugin::ConfigWidget
Definition: RoutingRunnerPlugin.h:77
Marble::CycleStreetsPlugin::nameId
QString nameId() const
Returns the unique name of the plugin.
Definition: CycleStreetsPlugin.cpp:99
CycleStreetsRunner.h
Marble::CycleStreetsPlugin::description
QString description() const
Returns a user description of the plugin.
Definition: CycleStreetsPlugin.cpp:109
CycleStreetsPlugin.h
QString::fromUtf8
QString fromUtf8(const char *str, int size)
QHash< QString, QVariant >
QObject
Marble::CycleStreetsPlugin::guiString
QString guiString() const
Returns the string that should appear in the user interface.
Definition: CycleStreetsPlugin.cpp:94
QSet
QString
QList
MarbleLocale.h
Marble::CycleStreetsPlugin::version
QString version() const
Definition: CycleStreetsPlugin.cpp:104
MarbleGlobal.h
QStringList
QWidget::locale
QLocale locale() const
Q_EXPORT_PLUGIN2
#define Q_EXPORT_PLUGIN2(a, b)
Definition: marble_export.h:34
QHash::value
const T value(const Key &key) const
Marble::MarbleGlobal::getInstance
static MarbleGlobal * getInstance()
Definition: MarbleGlobal.cpp:37
QSet::contains
bool contains(const T &value) const
Marble::MarbleLocale::MetricSystem
Definition: MarbleLocale.h:38
Marble::RoutingProfilesModel::ProfileTemplate
ProfileTemplate
Definition: RoutingProfilesModel.h:35
Marble::RoutingRunnerPlugin::setSupportedCelestialBodies
void setSupportedCelestialBodies(const QStringList &celestialBodies)
Definition: RoutingRunnerPlugin.cpp:61
Marble::RoutingRunnerPlugin::setCanWorkOffline
void setCanWorkOffline(bool canWorkOffline)
Definition: RoutingRunnerPlugin.cpp:66
Marble::CycleStreetsPlugin::pluginAuthors
QList< PluginAuthor > pluginAuthors() const
Definition: CycleStreetsPlugin.cpp:119
Marble::RoutingProfilesModel::BicycleTemplate
Definition: RoutingProfilesModel.h:39
Marble::RoutingRunner
Definition: RoutingRunner.h:28
Marble::RoutingRunnerPlugin
A plugin for Marble to execute a routing task.
Definition: RoutingRunnerPlugin.h:33
Marble::RoutingRunnerPlugin::setStatusMessage
void setStatusMessage(const QString &message)
Definition: RoutingRunnerPlugin.cpp:101
Marble::CycleStreetsPlugin::name
QString name() const
Returns the user-visible name of the plugin.
Definition: CycleStreetsPlugin.cpp:89
Marble::CycleStreetsPlugin::configWidget
ConfigWidget * configWidget()
Method for getting a pointer to the configuration widget of the plugin.
Definition: CycleStreetsPlugin.cpp:130
Marble::CycleStreetsPlugin::copyrightYears
QString copyrightYears() const
Definition: CycleStreetsPlugin.cpp:114
QHash::contains
bool contains(const Key &key) const
Marble::CycleStreetsPlugin::supportsTemplate
virtual bool supportsTemplate(RoutingProfilesModel::ProfileTemplate profileTemplate) const
True if the plugin supports the given routing profile template.
Definition: CycleStreetsPlugin.cpp:135
Marble::CycleStreetsPlugin::newRunner
virtual RoutingRunner * newRunner() const
Plugin factory method to create a new runner instance.
Definition: CycleStreetsPlugin.cpp:125
Marble::CycleStreetsPlugin
Definition: CycleStreetsPlugin.h:20
Marble::CycleStreetsRunner
Definition: CycleStreetsRunner.h:23
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:38 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