File indexing completed on 2025-01-05 03:59:01
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2007 Murad Tagirov <tmurad@gmail.com> 0004 // SPDX-FileCopyrightText: 2007 Inge Wallin <ingwa@kde.org> 0005 // 0006 0007 0008 #ifndef MARBLE_GEODATASTYLESELECTOR_H 0009 #define MARBLE_GEODATASTYLESELECTOR_H 0010 0011 #include "GeoDataObject.h" 0012 0013 #include "digikam_export.h" 0014 0015 namespace Marble 0016 { 0017 0018 class GeoDataStyleSelectorPrivate; 0019 0020 /** 0021 * @short an abstract base class for the style classes 0022 * 0023 * A GeoDataStyleSelector is a base class for the style classes Style 0024 * and StyleMap classes. The StyleMap class selects a style based on 0025 * the current mode of a Placemark (highlighted or normal). An element 0026 * derived from StyleSelector is uniquely identified by its id and its 0027 * url. 0028 * 0029 * @sa GeoDataStyle 0030 * @sa GeoDataStyleMap 0031 */ 0032 class DIGIKAM_EXPORT GeoDataStyleSelector : public GeoDataObject 0033 { 0034 public: 0035 ~GeoDataStyleSelector() override; 0036 0037 /** 0038 * @brief assignment operator 0039 */ 0040 GeoDataStyleSelector& operator=( const GeoDataStyleSelector& other ); 0041 0042 bool operator==( const GeoDataStyleSelector &other ) const; 0043 bool operator!=( const GeoDataStyleSelector &other ) const; 0044 0045 /** 0046 * @brief Serialize the styleselector to a stream 0047 * @param stream the stream 0048 */ 0049 void pack( QDataStream& stream ) const override; 0050 0051 /** 0052 * @brief Unserialize the styleselector from a stream 0053 * @param stream the stream 0054 */ 0055 void unpack( QDataStream& stream ) override; 0056 0057 protected: 0058 GeoDataStyleSelector(); 0059 GeoDataStyleSelector( const GeoDataStyleSelector& other ); 0060 0061 private: 0062 GeoDataStyleSelectorPrivate * const d; 0063 }; 0064 0065 } 0066 0067 #endif