File indexing completed on 2024-05-12 03:50:11

0001 /*
0002     SPDX-FileCopyrightText: 2007 Nikolas Zimmermann <zimmermann@kde.org>
0003     SPDX-FileCopyrightText: 2007 Murad Tagirov <tmurad@gmail.com>
0004     SPDX-FileCopyrightText: 2007 Inge Wallin <inge@lysator.liu.se>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #ifndef MARBLE_GEODATAFOLDER_H
0010 #define MARBLE_GEODATAFOLDER_H
0011 
0012 
0013 #include "GeoDataContainer.h"
0014 
0015 #include "geodata_export.h"
0016 
0017 namespace Marble
0018 {
0019 
0020 class GeoDataFolderPrivate;
0021 
0022 /**
0023  * @short A container that is used to arrange other GeoDataFeatures.
0024  *
0025  * A GeoDataFolder is used to arrange other GeoDataFeatures
0026  * hierarchically (Folders, Placemarks, NetworkLinks, or Overlays). A
0027  * GeoDataFeature is visible only if it and all its ancestors are
0028  * visible.
0029  *
0030  * @see GeoDataFeature
0031  * @see GeoDataContainer
0032  */
0033 class GEODATA_EXPORT GeoDataFolder : public GeoDataContainer
0034 {
0035  public:
0036     GeoDataFolder();
0037     GeoDataFolder( const GeoDataFolder& other );
0038     ~GeoDataFolder() override;
0039 
0040     GeoDataFolder& operator=(const GeoDataFolder& other);
0041 
0042     bool operator==( const GeoDataFolder &other ) const;
0043     bool operator!=( const GeoDataFolder &other ) const;
0044 
0045     const char* nodeType() const override;
0046 
0047     GeoDataFeature * clone() const override;
0048 
0049  private:
0050     Q_DECLARE_PRIVATE(GeoDataFolder)
0051 };
0052 
0053 }
0054 
0055 Q_DECLARE_METATYPE(Marble::GeoDataFolder*)
0056 
0057 #endif