/** * @RDE_HEADER@ * SymbolProperties * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include "advanced_symbology_export.h" #include "symbol_dictionary_types.h" // Qt #include //---------------------------------------------------------------------------- namespace AdvancedSymbology { /** * @brief The SymbolProperties class stores some symbol properties like name, keywords etc. */ class ADVANCED_SYMBOLOGY_EXPORT SymbolProperties { public: SymbolProperties() = default; // TODO: sidc: lowerCase vs. upperCase /*! \name Basic functions*/ //@{ QString key() const; void setKey(const QString &key); QString name() const; void setName(const QString &name); QString category() const; void setCategory(const QString &category); QString symbolClass() const; void setSymbolClass(const QString &symbolClass); QStringList tags() const; QString gctString() const; void setTags(const QStringList &tags); GeometryType geometryType() const; void setGeometryType(const GeometryType &geometryType); QString sidc() const; void setSidc(const QString &sidc); //@} QString originalKey() const; void setOriginalKey(const QString &originalKey); /*! \name Convenience functions*/ //@{ QString key_SymbolSet() const; QString key_Entity() const; QString key_SymbolSetEntity() const; //@} /*! \name ColorToBeReplaced * \note Some symbols (like ETS symbols) may have a certain color. * This is to be replaced by concrete partyColor */ //@{ /** * @brief colorToBeReplaced * @return colorToBeReplaced */ QColor colorToBeReplaced() const; /** * @brief setColorToBeReplaced * @param colorToBeReplaced */ void setColorToBeReplaced(const QColor &colorToBeReplaced); //@} // int minNumberOfPoints() const; /** * @brief operator== Compare two objects * @param other to be compared with * @return true if identical, otherwise false. */ bool operator==(const SymbolProperties &other) const { return ((this->m_key == other.m_key) && (this->m_name == other.m_name) && (this->m_category == other.m_category) && (this->m_symbolClass == other.m_symbolClass) && (this->m_tags == other.m_tags) && (this->m_geometryType == other.m_geometryType) && (this->m_sidc == other.m_sidc) && (this->m_originalKey == other.m_originalKey) && (this->m_colorToBeReplaced == other.m_colorToBeReplaced) ); } /** * @brief operator!= Compare two objects * @param other to be compared with * @return true if NOT identical, otherwise false. */ bool operator!=(const SymbolProperties &other) const { return !(*this == other); } private : QString m_key; QString m_name; QString m_category; QString m_symbolClass; QStringList m_tags; GeometryType m_geometryType = GeometryType::Undefined; QString m_sidc; QString m_originalKey; QColor m_colorToBeReplaced; // color of ETS symbols to be replaced by concrete partyColor }; //----------------------------------------------------------------------------- // output operator: //----------------------------------------------------------------------------- } // namespace AdvancedSymbology