mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
- update methods of existing classes - add comment to methods missing in the sip bindings - split up collective sip files into single files and use same directory structure in python/ as in src/ - add a lot of missing classes (some might not make sense because of missing python methods in those classes) - remove some non-existing methods from the header files - add scripts/sipdiff - replace some usages of std::vector and std::set with QVector/QSet
190 lines
5.0 KiB
Plaintext
190 lines
5.0 KiB
Plaintext
class QgsProperty
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsprojectproperty.h>
|
|
%End
|
|
|
|
public:
|
|
QgsProperty();
|
|
virtual ~QgsProperty();
|
|
|
|
/** dumps out the keys and values
|
|
|
|
@param tabs is number of tabs to print; used for pretty-printing
|
|
hierarchy
|
|
*/
|
|
virtual void dump( size_t tabs = 0 ) const = 0;
|
|
|
|
/** returns true if is a QgsPropertyKey */
|
|
virtual bool isKey() const = 0;
|
|
|
|
/** returns true if is a QgsPropertyValue */
|
|
virtual bool isValue() const = 0;
|
|
|
|
/** returns true if a leaf node
|
|
|
|
A leaf node is a key node that has either no value or a single value.
|
|
A non-leaf node would be a key node with key sub-nodes.
|
|
|
|
This is used for entryList() and subkeyList() implementation.
|
|
*/
|
|
virtual bool isLeaf() const = 0;
|
|
|
|
/**
|
|
restores property hierarchy to given Dom node
|
|
|
|
Used for restoring properties from project file
|
|
*/
|
|
virtual bool readXML( QDomNode & keyNode ) = 0;
|
|
|
|
/**
|
|
adds property hierarchy to given Dom element
|
|
|
|
Used for saving properties to project file.
|
|
|
|
@param nodeName the tag name associated with this element
|
|
@param element the parent (or encompassing) property element
|
|
@param document the overall project file Dom document
|
|
*/
|
|
virtual bool writeXML( const QString & nodeName,
|
|
QDomElement & element,
|
|
QDomDocument & document ) = 0;
|
|
|
|
/** return the node's value
|
|
|
|
For QgsPropertyValue nodes, this is straightforward -- just return the
|
|
embedded QVariant, _value. For QgsPropertyKey, this means returning
|
|
the QgsPropertyValue _value that is keyed by its name, if it exists;
|
|
i.e., QgsPropertyKey "foo" will return the property value mapped to its
|
|
name, "foo", in its QHash of QProperties.
|
|
|
|
*/
|
|
virtual QVariant value() const = 0;
|
|
|
|
}; // class QgsProperty
|
|
|
|
|
|
class QgsPropertyValue : QgsProperty
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsprojectproperty.h>
|
|
%End
|
|
|
|
public:
|
|
QgsPropertyValue();
|
|
QgsPropertyValue( const QVariant &value );
|
|
virtual ~QgsPropertyValue();
|
|
|
|
/** returns true if is a QgsPropertyKey */
|
|
virtual bool isKey() const;
|
|
|
|
/** returns true if is a QgsPropertyValue */
|
|
virtual bool isValue() const;
|
|
|
|
QVariant value() const;
|
|
|
|
/** returns true if is a leaf node
|
|
|
|
@note I suppose, in a way, value nodes can also be qualified as leaf
|
|
nodes even though we're only counting key nodes.
|
|
*/
|
|
bool isLeaf() const;
|
|
|
|
void dump( size_t tabs = 0 ) const;
|
|
|
|
bool readXML( QDomNode & keyNode );
|
|
|
|
bool writeXML( const QString & nodeName,
|
|
QDomElement & element,
|
|
QDomDocument & document );
|
|
|
|
size_t count() const;
|
|
|
|
/** return keys that do not contain other keys
|
|
|
|
Since QgsPropertyValue isn't a key, don't do anything.
|
|
*/
|
|
void entryList( QStringList & keyName, QStringList & entries ) const;
|
|
|
|
};
|
|
|
|
class QgsPropertyKey : QgsProperty
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsprojectproperty.h>
|
|
%End
|
|
|
|
public:
|
|
QgsPropertyKey( const QString name = "" );
|
|
virtual ~ QgsPropertyKey();
|
|
|
|
/// every key has a name
|
|
QString & name();
|
|
|
|
/** if this key has a value, it will be stored by its name in its
|
|
* properties
|
|
*/
|
|
QVariant value() const;
|
|
|
|
|
|
/// add the given property key
|
|
QgsPropertyKey * addKey( const QString & keyName );
|
|
|
|
/// remove the given key
|
|
void removeKey( const QString & keyName );
|
|
|
|
/** set the value associated with this key
|
|
@param name is the key name
|
|
@param value is the value to set
|
|
@return pointer to property value
|
|
*/
|
|
QgsPropertyValue * setValue( const QString & name, const QVariant & value );
|
|
|
|
/** set the value associated with this key
|
|
|
|
@note that the single value node associated with each key is always
|
|
stored keyed by the current key name
|
|
*/
|
|
QgsPropertyValue * setValue( const QVariant & value );
|
|
|
|
|
|
void dump( size_t tabs = 0 ) const;
|
|
|
|
bool readXML( QDomNode & keyNode );
|
|
|
|
bool writeXML( const QString &nodeName, QDomElement & element, QDomDocument & document );
|
|
|
|
/// how many elements are contained within this one?
|
|
size_t count() const;
|
|
|
|
/// Does this property not have any subkeys or values?
|
|
/* virtual */ bool isEmpty() const;
|
|
|
|
/** returns true if is a QgsPropertyKey */
|
|
virtual bool isKey() const;
|
|
|
|
/** returns true if is a QgsPropertyValue */
|
|
virtual bool isValue() const;
|
|
|
|
/// return keys that do not contain other keys
|
|
void entryList( QStringList & entries ) const;
|
|
|
|
/// return keys that contain other keys
|
|
void subkeyList( QStringList & entries ) const;
|
|
|
|
/** returns true if a leaf node
|
|
|
|
A leaf node is a key node that has either no value or a single value. A
|
|
non-leaf node would be a key node with key sub-nodes.
|
|
*/
|
|
bool isLeaf() const;
|
|
|
|
/// reset the QgsProperty key to prestine state
|
|
virtual void clear();
|
|
|
|
/// delete any sub-nodes
|
|
virtual void clearKeys();
|
|
|
|
QgsProperty * find( QString & propertyName );
|
|
}; // class QgsPropertyKey
|