22#ifndef QGSPROJECTPROPERTY_H
23#define QGSPROJECTPROPERTY_H
27#include <QCoreApplication>
60 virtual void dump(
int tabs = 0 )
const = 0;
91 virtual bool readXml(
const QDomNode &keyNode ) = 0;
102 virtual bool writeXml(
const QString &nodeName, QDomElement &element, QDomDocument &document ) = 0;
135 bool isKey()
const override {
return false; }
136 bool isValue()
const override {
return true; }
137 QVariant
value()
const override {
return mValue; }
140 bool isLeaf()
const override {
return true; }
142 void dump(
int tabs = 0 )
const override;
143 bool readXml(
const QDomNode &keyNode )
override;
144 bool writeXml(
const QString &nodeName, QDomElement &element, QDomDocument &document )
override;
186 QString
name()
const {
return mName; }
193 void setName(
const QString &name );
199 QVariant value()
const override;
206 if ( mProperties.contains( keyName ) )
207 delete mProperties.take( keyName );
210 mProperties.insert( keyName, p );
218 void removeKey(
const QString &keyName ) {
delete mProperties.take( keyName ); }
228 if ( mProperties.contains(
name ) )
229 delete mProperties.take(
name );
232 mProperties.insert(
name, p );
245 void dump(
int tabs = 0 )
const override;
246 bool readXml(
const QDomNode &keyNode )
override;
247 bool writeXml(
const QString &nodeName, QDomElement &element, QDomDocument &document )
override;
252 int count()
const {
return mProperties.count(); }
257 bool isEmpty()
const {
return mProperties.isEmpty(); }
259 bool isKey()
const override {
return true; }
260 bool isValue()
const override {
return false; }
261 bool isLeaf()
const override;
267 void entryList( QStringList &entries )
const;
273 void subkeyList( QStringList &entries )
const;
289 qDeleteAll( mProperties );
303 QHash< QString, QgsProjectProperty * > mProperties;
QString name() const
The name of the property is used as identifier.
QgsProjectPropertyKey(const QString &name=QString())
Create a new QgsProjectPropertyKey with the specified identifier.
QgsProjectProperty * find(const QString &propertyName) const
Attempts to find a property with a matching sub-key name.
void removeKey(const QString &keyName)
Removes the specified key.
bool isEmpty() const
Returns true if this property contains no sub-keys.
bool isKey() const override
Returns true if the property is a QgsProjectPropertyKey.
virtual void clearKeys()
Deletes any sub-nodes from the property.
virtual void clear()
Resets the property to a default, empty state.
QgsProjectPropertyKey * addKey(const QString &keyName)
Adds the specified property key as a sub-key.
bool isValue() const override
Returns true if the property is a QgsProjectPropertyValue.
QVariant value() const override
If this key has a value, it will be stored by its name in its properties.
QgsProjectPropertyValue * setValue(const QString &name, const QVariant &value)
Sets the value associated with this key.
int count() const
Returns the number of sub-keys contained by this property.
QgsProjectPropertyValue * setValue(const QVariant &value)
Set the value associated with this key.
Project property value node, contains a QgsProjectPropertyKey's value.
QgsProjectPropertyValue()=default
QVariant value() const override
Returns the node's value.
bool isValue() const override
Returns true if the property is a QgsProjectPropertyValue.
QgsProjectPropertyValue(const QVariant &value)
Constructor for QgsProjectPropertyValue, initialized to a specified value.
bool isKey() const override
Returns true if the property is a QgsProjectPropertyKey.
bool isLeaf() const override
Returns true if property is a leaf node.
virtual bool isLeaf() const =0
Returns true if property is a leaf node.
virtual void dump(int tabs=0) const =0
Dumps out the keys and values.
virtual bool readXml(const QDomNode &keyNode)=0
Restores the property hierarchy from a specified DOM node.
virtual bool isKey() const =0
Returns true if the property is a QgsProjectPropertyKey.
virtual bool writeXml(const QString &nodeName, QDomElement &element, QDomDocument &document)=0
Writes the property hierarchy to a specified DOM element.
virtual QVariant value() const =0
Returns the node's value.
virtual bool isValue() const =0
Returns true if the property is a QgsProjectPropertyValue.
virtual ~QgsProjectProperty()=default