All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions | Static Public Attributes | Protected Member Functions
QGpCoreTools::GoogleEarthKML::Document Class Reference

Brief description of class still missing. More...

#include <GoogleEarthKML.h>

Inheritance diagram for QGpCoreTools::GoogleEarthKML::Document:
QGpCoreTools::XMLClass

List of all members.

Public Member Functions

 Document ()
const FoldermainFolder () const
FoldermainFolder ()
const QString & name () const
QList< NamedPointpoints () const
void setName (const QString &n)
virtual const QString & xml_tagName () const

Static Public Attributes

static const QString xmlDocumentTag = "Document"

Protected Member Functions

virtual XMLMember xml_member (XML_MEMBER_ARGS)
virtual bool xml_setProperty (XML_SETPROPERTY_ARGS)
virtual void xml_writeChildren (XML_WRITECHILDREN_ARGS) const
virtual void xml_writeProperties (XML_WRITEPROPERTIES_ARGS) const

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

References TRACE.

    : XMLClass()
  {
    TRACE;
  }

Member Function Documentation

{return &_root;}
const QString& QGpCoreTools::GoogleEarthKML::Document::name ( ) const [inline]
{return _name;}

References TRACE.

Referenced by CoordReader::terminate().

  {
    TRACE;
    QList<NamedPoint> list;
    _root.collectPoints(list);
    return list;
  }
void QGpCoreTools::GoogleEarthKML::Document::setName ( const QString &  n) [inline]

Re-implement this function to offer XML restore (children and properties) support to your class.

From tag and map (with contains the attibute value) return a unique identifier under the format of a XMLMember. XMLMember is initialized with 3 types of contructors:

  • An integer: id number of a property
  • A XMLClass * : a child of this object identified by tag
  • Default constructor: error, unknow child or property

Map of attributes can be inspected in this way (can be achived also in xml_setProperty()):

    static const QString tmp("childrenName");
    XMLRestoreAttributeIterator it=map.find(tmp);
    if(it!=map.end()) {
      // found attribute "childrenName"
    }

If the map of attributes is not used:

    Q_UNUSED(attributes);
    if(tag=="x1") return XMLMember(0);
    else if(tag=="y1") return XMLMember(1);
    else if(tag=="x2") return XMLMember(2);
    else if(tag=="y2") return XMLMember(3);
    else return XMLMember(XMLMember::Unknown);

Arithmetic operations + and - apply to XMLMember to avoid confusion of property id numbers between inherited objects. Offset 3 corresponds to the number of properties defined in this object.

    if(tag=="anInteger") return XMLMember(0);
    else if(tag=="aString") return XMLMember(1);
    else if(tag=="aDouble") return XMLMember(2);
    return AbstractLine::xml_member(tag, attributes, context)+3;

For the arguments of this function use Macro XML_MEMBER_ARGS.

Reimplemented from QGpCoreTools::XMLClass.

References QGpCoreTools::XMLMember::Skip, TRACE, and QGpCoreTools::XMLMember::Unknown.

  {
    TRACE;
    Q_UNUSED(attributes);
    Q_UNUSED(context);
    if(tag=="Placemark") {
      Placemark * p=new Placemark;
      _root.addPlacemark(p);
      return XMLMember(p);
    } else if(tag=="Folder") {
      return XMLMember(&_root);
    } else if(tag=="name") return XMLMember(0);
    else if(tag=="StyleMap" || tag=="Style") {
      return XMLMember(XMLMember::Skip);
    } else return XMLMember(XMLMember::Unknown);
  }

Re-implement this function to offer XML restore properties support to your class.

From memberID set the corresponding property with value content. The map of attributes is given as a supplementary information (not useful in all cases).

For a general case:

  Q_UNUSED(attributes);
  double val=content.toDouble();
  switch (memberID) {
  case 0:
    _x1=val;
    return true;
  case 1:
    _y1=val;
    return true;
  case 2:
    _x2=val;
    return true;
  case 3:
    _y2=val;
    return true;
  default:
    return false;
  }

For classes inheriting other classes (see also xml_member())

  switch (memberID) {
  case 0:
    _anInteger=content.toString();
    return true;
  case 1:
    _aString=content.toInt();
    return true;
  case 2:
    _aDouble=content.toDouble();
    return true;
  default:
    return AbstractLine::xml_setProperty(memberID-3, map, content);

For the arguments of this function use Macro XML_SETPROPERTY_ARGS.

Reimplemented from QGpCoreTools::XMLClass.

References TRACE.

  {
    TRACE;
    Q_UNUSED(attributes);
    Q_UNUSED(context);
    Q_UNUSED(tag);
    switch (memberID) {
    case 0:
      _name=content.toString();
      return true;
    default:
      return false;
    }
  }
virtual const QString& QGpCoreTools::GoogleEarthKML::Document::xml_tagName ( ) const [inline, virtual]

Implements QGpCoreTools::XMLClass.

{return xmlDocumentTag;}

Reimplemented from QGpCoreTools::XMLClass.

References TRACE.

  {
    TRACE;
    _root.xml_save(s, context);
  }

Reimplemented from QGpCoreTools::XMLClass.

References TRACE, and QGpCoreTools::XMLClass::writeProperty().

  {
    TRACE;
    Q_UNUSED(context);
    writeProperty(s, "name", _name);
    // TODO: complete support for style customization
    s << s.indent() << "<StyleMap id=\"msn_ylw-pushpin\">\n";
    s.incrementIndent();
    s << s.indent() << "<Pair>\n";
    s.incrementIndent();
    s << s.indent() << "<key>normal</key>\n"
      << s.indent() << "<styleUrl>#sn_ylw-pushpin</styleUrl>\n";
    s.decrementIndent();
    s << s.indent() << "</Pair>\n"
      << s.indent() << "<Pair>\n";
    s.incrementIndent();
    s << s.indent() << "<key>normal</key>\n"
      << s.indent() << "<styleUrl>#sh_ylw-pushpin</styleUrl>\n";
    s.decrementIndent();
    s << s.indent() << "</Pair>\n";
    s.decrementIndent();
    s << s.indent() << "</StyleMap>\n"
      << s.indent() << "<Style id=\"sn_ylw-pushpin\">\n";
    s.incrementIndent();
    s << s.indent() << "<IconStyle>\n";
    s.incrementIndent();
    s << s.indent() << "<scale>1.1</scale>\n"
      << s.indent() << "<Icon>\n";
    s.incrementIndent();
    s << s.indent() << "<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>\n";
    s.decrementIndent();
    s << s.indent() << "</Icon>\n"
      << s.indent() << "<hotSpot x=\"20\" y=\"2\" xunits=\"pixels\" yunits=\"pixels\"/>\n";
    s.decrementIndent();
    s << s.indent() << "</IconStyle>\n";
    s.decrementIndent();
    s << s.indent() << "</Style>\n"
      << s.indent() << "<Style id=\"sh_ylw-pushpin\">\n";
    s.incrementIndent();
    s << s.indent() << "<IconStyle>\n";
    s.incrementIndent();
    s << s.indent() << "<scale>1.3</scale>\n"
      << s.indent() << "<Icon>\n";
    s.incrementIndent();
    s << s.indent() << "<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>\n";
    s.decrementIndent();
    s << s.indent() << "</Icon>\n"
      << s.indent() << "<hotSpot x=\"20\" y=\"2\" xunits=\"pixels\" yunits=\"pixels\"/>\n";
    s.decrementIndent();
    s << s.indent() << "</IconStyle>\n";
    s.decrementIndent();
    s << s.indent() << "</Style>\n";
  }

Member Data Documentation

const QString QGpCoreTools::GoogleEarthKML::Document::xmlDocumentTag = "Document" [static]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines