• 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
  • lib
  • marble
  • geodata
  • writers
  • kml
KmlListStyleTagWriter.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 2012 Mayank Madan <maddiemadan@gmail.com>
9 // Copyright 2013 Dennis Nienhüser <earthwings@gentoo.org>
10 //
11 
12 #include "KmlListStyleTagWriter.h"
13 
14 #include "GeoDataListStyle.h"
15 #include "GeoDataItemIcon.h"
16 #include "GeoDataTypes.h"
17 #include "GeoWriter.h"
18 #include "KmlElementDictionary.h"
19 #include "KmlColorStyleTagWriter.h"
20 
21 namespace Marble
22 {
23 
24 static GeoTagWriterRegistrar s_writerListStyle( GeoTagWriter::QualifiedName(GeoDataTypes::GeoDataListStyleType,
25  kml::kmlTag_nameSpaceOgc22),
26  new KmlListStyleTagWriter() );
27 
28 bool KmlListStyleTagWriter::write( const GeoNode *node,
29  GeoWriter& writer ) const
30 {
31  const GeoDataListStyle *listStyle = static_cast<const GeoDataListStyle*>( node );
32  writer.writeStartElement( kml::kmlTag_ListStyle );
33 
34  QString const itemType = itemTypeToString( listStyle->listItemType() );
35  writer.writeOptionalElement( kml::kmlTag_listItemType, itemType, "check" );
36  QString const color = KmlColorStyleTagWriter::formatColor( listStyle->backgroundColor() );
37  writer.writeOptionalElement( kml::kmlTag_bgColor, color, "ffffffff" );
38 
39  foreach( GeoDataItemIcon* icon, listStyle->itemIconList() ) {
40  writer.writeStartElement(kml::kmlTag_ItemIcon);
41  QString const state = iconStateToString( icon->state() );
42  writer.writeOptionalElement( kml::kmlTag_state, state, "open" );
43  writer.writeOptionalElement( kml::kmlTag_href, icon->iconPath() );
44  writer.writeEndElement();
45  }
46 
47  writer.writeEndElement();
48  return true;
49 }
50 
51 QString KmlListStyleTagWriter::itemTypeToString( GeoDataListStyle::ListItemType itemType )
52 {
53  switch ( itemType )
54  {
55  case GeoDataListStyle::CheckOffOnly: return "checkOffOnly";
56  case GeoDataListStyle::CheckHideChildren: return "checkHideChildren";
57  case GeoDataListStyle::RadioFolder: return "radioFolder";
58  default: return "check";
59  }
60 }
61 
62 QString KmlListStyleTagWriter::iconStateToString( GeoDataItemIcon::ItemIconStates state )
63 {
64  QStringList stateList;
65  if ( state & GeoDataItemIcon::Open ) {
66  stateList << "open";
67  }
68  if ( state & GeoDataItemIcon::Closed ) {
69  stateList << "closed";
70  }
71  if ( state & GeoDataItemIcon::Error ) {
72  stateList << "error";
73  }
74  if ( state & GeoDataItemIcon::Fetching0 ) {
75  stateList << "fetching0";
76  }
77  if ( state & GeoDataItemIcon::Fetching1 ) {
78  stateList << "fetching1";
79  }
80  if ( state & GeoDataItemIcon::Fetching2 ) {
81  stateList << "fetching2";
82  }
83 
84  return stateList.join(" ");
85 }
86 
87 }
GeoDataListStyle.h
Marble::GeoDataListStyle::RadioFolder
Definition: GeoDataListStyle.h:47
Marble::GeoWriter::writeOptionalElement
void writeOptionalElement(const QString &key, const QString &value, const QString &defaultValue=QString())
Convenience method to write value if value is not equal to defaultValue.
Definition: GeoWriter.cpp:98
Marble::kml::kmlTag_listItemType
const char * kmlTag_listItemType
Definition: KmlElementDictionary.cpp:106
Marble::s_writerListStyle
static GeoTagWriterRegistrar s_writerListStyle(GeoTagWriter::QualifiedName(GeoDataTypes::GeoDataListStyleType, kml::kmlTag_nameSpaceOgc22), new KmlListStyleTagWriter())
Marble::kml::kmlTag_href
const char * kmlTag_href
Definition: KmlElementDictionary.cpp:82
Marble::GeoNode
A shared base class for all classes that are mapped to a specific tag (ie.
Definition: GeoDocument.h:60
Marble::GeoDataItemIcon
Definition: GeoDataItemIcon.h:24
Marble::GeoDataItemIcon::Fetching2
Definition: GeoDataItemIcon.h:47
QStringList::join
QString join(const QString &separator) const
GeoWriter.h
GeoDataItemIcon.h
Marble::kml::kmlTag_ItemIcon
const char * kmlTag_ItemIcon
Definition: KmlElementDictionary.cpp:89
KmlColorStyleTagWriter.h
Marble::KmlColorStyleTagWriter::formatColor
static QString formatColor(const QColor &color)
Definition: KmlColorStyleTagWriter.cpp:43
Marble::kml::kmlTag_bgColor
const char * kmlTag_bgColor
Definition: KmlElementDictionary.cpp:44
Marble::GeoDataListStyle::itemIconList
QVector< GeoDataItemIcon * > itemIconList() const
Definition: GeoDataListStyle.cpp:110
Marble::kml::kmlTag_ListStyle
const char * kmlTag_ListStyle
Definition: KmlElementDictionary.cpp:107
Marble::GeoDataItemIcon::Fetching1
Definition: GeoDataItemIcon.h:46
KmlElementDictionary.h
Marble::kml::kmlTag_state
const char * kmlTag_state
Definition: KmlElementDictionary.cpp:174
Marble::GeoDataListStyle::backgroundColor
QColor backgroundColor() const
Definition: GeoDataListStyle.cpp:100
Marble::GeoWriter
Standard Marble way of writing XML This class is intended to be a standardised way of writing XML for...
Definition: GeoWriter.h:29
Marble::GeoDataListStyle::ListItemType
ListItemType
Definition: GeoDataListStyle.h:45
Marble::GeoTagWriter::QualifiedName
QPair< QString, QString > QualifiedName
Object Name and Namespace Pair This type is intended to be used in a similar way to.
Definition: GeoTagWriter.h:48
Marble::GeoDataListStyle::CheckOffOnly
Definition: GeoDataListStyle.h:48
QString
Marble::GeoDataItemIcon::Error
Definition: GeoDataItemIcon.h:44
QStringList
Marble::kml::kmlTag_nameSpaceOgc22
const char * kmlTag_nameSpaceOgc22
Definition: KmlElementDictionary.cpp:34
Marble::GeoDataItemIcon::Fetching0
Definition: GeoDataItemIcon.h:45
Marble::GeoDataListStyle::CheckHideChildren
Definition: GeoDataListStyle.h:49
Marble::GeoDataListStyle::listItemType
ListItemType listItemType() const
Definition: GeoDataListStyle.cpp:90
Marble::GeoDataTypes::GeoDataListStyleType
const char * GeoDataListStyleType
Definition: GeoDataTypes.cpp:90
KmlListStyleTagWriter.h
GeoDataTypes.h
Marble::GeoDataItemIcon::iconPath
QString iconPath() const
Definition: GeoDataItemIcon.cpp:89
Marble::GeoDataItemIcon::Closed
Definition: GeoDataItemIcon.h:43
Marble::GeoDataItemIcon::state
ItemIconStates state() const
Definition: GeoDataItemIcon.cpp:74
Marble::GeoDataItemIcon::Open
Definition: GeoDataItemIcon.h:42
Marble::KmlListStyleTagWriter::write
virtual bool write(const GeoNode *node, GeoWriter &writer) const
Definition: KmlListStyleTagWriter.cpp:28
Marble::GeoDataListStyle
Definition: GeoDataListStyle.h:28
QXmlStreamWriter::writeEndElement
void writeEndElement()
QXmlStreamWriter::writeStartElement
void writeStartElement(const QString &qualifiedName)
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