/usr/include/marble/GeoDataObject.h is in libmarble-dev 4:15.12.3-0ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | //
// This file is part of the Marble Virtual Globe.
//
// This program is free software licensed under the GNU LGPL. You can
// find a copy of this license in LICENSE.txt in the top directory of
// the source code.
//
// Copyright 2007 Murad Tagirov <tmurad@gmail.com>
// Copyright 2008 Jens-Michael Hoffmann <jensmh@gmx.de>
//
#ifndef MARBLE_GEODATAOBJECT_H
#define MARBLE_GEODATAOBJECT_H
#include "geodata_export.h"
#include "GeoDocument.h"
#include "Serializable.h"
#include <QMetaType>
namespace Marble
{
class GeoDataObjectPrivate;
/**
* @short A base class for all geodata objects
*
* GeoDataObject is the base class for all geodata classes. It is
* never instantiated by itself, but is always used as part of a
* derived object.
*
* The Geodata objects are all modeled after the Google KML files as
* defined in
* http://code.google.com/apis/kml/documentation/kml_tags_21.html.
*
* A GeoDataObject contains 2 properties, both corresponding directly
* to tags in the KML files: the <b>id</b>, which is a unique
* identifier of the object, and a <b>targetId</b> which is used to
* reference other objects that have already been loaded.
*
* The <b>id</b> property must only be set if the <b>Update</b>
* mechanism of KML is used, which is currently not supported by
* Marble.
*/
class GEODATA_EXPORT GeoDataObject : public GeoNode,
public Serializable
{
public:
GeoDataObject();
GeoDataObject( const GeoDataObject & );
GeoDataObject & operator=( const GeoDataObject & );
virtual ~GeoDataObject();
/// Provides type information for downcasting a GeoNode
virtual const char* nodeType() const = 0;
/// Provides the parent of the object in GeoDataContainers
virtual GeoDataObject *parent() const;
/// Sets the parent of the object
virtual void setParent(GeoDataObject *parent);
/**
* @brief Get the id of the object.
*/
QString id() const;
/**
* @brief Set the id of the object
* @param value the new id value
*/
void setId( const QString &value );
/**
* @brief Get the targetId of the object to be replaced
*/
QString targetId() const;
/**
* @brief set a new targetId of this object
* @param value the new targetId value
*/
void setTargetId( const QString &value );
QString resolvePath( const QString &relativePath ) const;
/// Reimplemented from Serializable
virtual void pack( QDataStream& stream ) const;
/// Reimplemented from Serializable
virtual void unpack( QDataStream& steam );
private:
GeoDataObjectPrivate * d;
protected:
/**
* @brief Compares the value of id and targetId of the two objects
* @return true if they these values are equal or false otherwise
*/
virtual bool equals(const GeoDataObject &other) const;
};
}
Q_DECLARE_METATYPE( Marble::GeoDataObject* )
#endif
|