mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -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
 |