QgsPropertyKey Class Reference

QgsPropertyKey node. More...

#include <qgsprojectproperty.h>

Inheritance diagram for QgsPropertyKey:

Inheritance graph
[legend]
Collaboration diagram for QgsPropertyKey:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 QgsPropertyKey (QString const name="")
virtual ~QgsPropertyKey ()
QVariant value () const
 if this key has a value, it will be stored by its name in its properties
QgsPropertyKeyaddKey (QString const &keyName)
 add the given property key
void removeKey (QString const &keyName)
 remove the given key
QgsPropertyValuesetValue (QString const &name, QVariant const &value)
 set the value associated with this key
QgsPropertyValuesetValue (QVariant const &value)
 set the value associated with this key
void dump (size_t tabs=0) const
 dumps out the keys and values
bool readXML (QDomNode &keyNode)
 restores property hierarchy to given Dom node
bool writeXML (QString const &nodeName, QDomElement &element, QDomDocument &document)
 Property keys will always create a Dom element for itself and then recursively call writeXML for any constituent properties.
size_t count () const
 how many elements are contained within this one?
bool isEmpty () const
 Does this property not have any subkeys or values?
virtual bool isKey () const
 returns true if is a QgsPropertyKey
virtual bool isValue () const
 returns true if is a QgsPropertyValue
void entryList (QStringList &entries) const
 return keys that do not contain other keys
void subkeyList (QStringList &entries) const
 return keys that contain other keys
bool isLeaf () const
 returns true if a leaf node
virtual void clear ()
 reset the QgsProperty key to prestine state
virtual void clearKeys ()
 delete any sub-nodes
QgsPropertyfind (QString &propertyName)
QString const & name () const
 every key has a name
QString & name ()

Private Attributes

QString mName
 every key has a name
QHash< QString, QgsProperty * > mProperties
 sub-keys


Detailed Description

QgsPropertyKey node.

Can, itself, contain QgsPropertyKeys and QgsPropertyValues.

The internal QHash, mProperties, maps key names to their respective QgsPropertyValue or next QgsPropertyKey in the key name sequence. The key with the current name should contain its QgsPropertyValue.

E.g., given the key sequence "/foo/bar", "foo" will have a corresponding QgsPropertyKey with a name "foo". It will contain an element in its mProperties that maps to "bar", which is another QgsPropertyKey. The "bar" QgsPropertyKey will, in turn, have an element that maps to itself, i.e. "bar", that will contain a QgsPropertyValue.

Definition at line 199 of file qgsprojectproperty.h.


Constructor & Destructor Documentation

QgsPropertyKey::QgsPropertyKey ( QString const   name = ""  ) 

Definition at line 273 of file qgsprojectproperty.cpp.

QgsPropertyKey::~QgsPropertyKey (  )  [virtual]

Definition at line 277 of file qgsprojectproperty.cpp.

References clearKeys().


Member Function Documentation

QString const& QgsPropertyKey::name (  )  const [inline]

every key has a name

Definition at line 209 of file qgsprojectproperty.h.

Referenced by addKey_(), dump(), findKey_(), QgsProject::Imp::Imp(), removeKey_(), and value().

QString& QgsPropertyKey::name (  )  [inline]

Definition at line 212 of file qgsprojectproperty.h.

QVariant QgsPropertyKey::value (  )  const [virtual]

if this key has a value, it will be stored by its name in its properties

Implements QgsProperty.

Definition at line 282 of file qgsprojectproperty.cpp.

References mProperties, name(), QgsDebugMsg, and QgsProperty::value().

QgsPropertyKey* QgsPropertyKey::addKey ( QString const &  keyName  )  [inline]

add the given property key

Definition at line 224 of file qgsprojectproperty.h.

Referenced by addKey_(), and readXML().

void QgsPropertyKey::removeKey ( QString const &  keyName  )  [inline]

remove the given key

Definition at line 234 of file qgsprojectproperty.h.

Referenced by removeKey_().

QgsPropertyValue* QgsPropertyKey::setValue ( QString const &  name,
QVariant const &  value 
) [inline]

set the value associated with this key

Parameters:
name is the key name
value is the value to set
Returns:
pointer to property value

Definition at line 244 of file qgsprojectproperty.h.

Referenced by addKey_().

QgsPropertyValue* QgsPropertyKey::setValue ( QVariant const &  value  )  [inline]

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

Definition at line 257 of file qgsprojectproperty.h.

void QgsPropertyKey::dump ( size_t  tabs = 0  )  const [virtual]

dumps out the keys and values

Parameters:
tabs is number of tabs to print; used for pretty-printing hierarchy

Implements QgsProperty.

Definition at line 299 of file qgsprojectproperty.cpp.

References QgsPropertyValue::dump(), mProperties, name(), QgsDebugMsg, and QgsPropertyValue::value().

Referenced by dump_().

bool QgsPropertyKey::readXML ( QDomNode &  keyNode  )  [virtual]

restores property hierarchy to given Dom node

Used for restoring properties from project file

Implements QgsProperty.

Definition at line 357 of file qgsprojectproperty.cpp.

References addKey(), mProperties, and QgsDebugMsg.

Referenced by _getProperties().

bool QgsPropertyKey::writeXML ( QString const &  nodeName,
QDomElement &  element,
QDomDocument &  document 
) [virtual]

Property keys will always create a Dom element for itself and then recursively call writeXML for any constituent properties.

Implements QgsProperty.

Definition at line 405 of file qgsprojectproperty.cpp.

References mProperties.

size_t QgsPropertyKey::count (  )  const [inline]

how many elements are contained within this one?

Definition at line 271 of file qgsprojectproperty.h.

Referenced by isLeaf().

bool QgsPropertyKey::isEmpty (  )  const [inline]

Does this property not have any subkeys or values?

Definition at line 275 of file qgsprojectproperty.h.

virtual bool QgsPropertyKey::isKey (  )  const [inline, virtual]

returns true if is a QgsPropertyKey

Implements QgsProperty.

Definition at line 279 of file qgsprojectproperty.h.

virtual bool QgsPropertyKey::isValue (  )  const [inline, virtual]

returns true if is a QgsPropertyValue

Implements QgsProperty.

Definition at line 283 of file qgsprojectproperty.h.

void QgsPropertyKey::entryList ( QStringList &  entries  )  const

return keys that do not contain other keys

Definition at line 434 of file qgsprojectproperty.cpp.

References mProperties.

Referenced by QgsProject::entryList().

void QgsPropertyKey::subkeyList ( QStringList &  entries  )  const

return keys that contain other keys

Definition at line 450 of file qgsprojectproperty.cpp.

References mProperties.

Referenced by QgsProject::subkeyList().

bool QgsPropertyKey::isLeaf (  )  const [virtual]

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.

Implements QgsProperty.

Definition at line 465 of file qgsprojectproperty.cpp.

References count(), and mProperties.

virtual void QgsPropertyKey::clear (  )  [inline, virtual]

reset the QgsProperty key to prestine state

Definition at line 300 of file qgsprojectproperty.h.

virtual void QgsPropertyKey::clearKeys (  )  [inline, virtual]

delete any sub-nodes

Definition at line 307 of file qgsprojectproperty.h.

Referenced by QgsProject::Imp::clear(), and ~QgsPropertyKey().

QgsProperty* QgsPropertyKey::find ( QString &  propertyName  )  [inline]

Definition at line 313 of file qgsprojectproperty.h.

Referenced by addKey_(), findKey_(), and removeKey_().


Member Data Documentation

QString QgsPropertyKey::mName [private]

every key has a name

Definition at line 321 of file qgsprojectproperty.h.

QHash< QString, QgsProperty* > QgsPropertyKey::mProperties [private]

sub-keys

Definition at line 324 of file qgsprojectproperty.h.

Referenced by dump(), entryList(), isLeaf(), readXML(), subkeyList(), value(), and writeXML().


The documentation for this class was generated from the following files:

Generated on Sat Feb 4 19:17:45 2012 for Quantum GIS API Documentation by  doxygen 1.5.6