28 #include <QStringList>
29 #include <QDomElement>
35 static const char *
const ident_ =
"$Id$";
43 int defaultValueIndex,
void ( *executePython )(
const QString & ) )
45 if ( index < 0 || index >=
size() )
65 QString expandedAction =
expandAction( action.
action(), attributes, defaultValueIndex );
70 executePython( expandedAction );
101 QString expanded_action;
102 if ( clickedOnValue >= 0 && attributes.contains( clickedOnValue ) )
103 expanded_action = action.replace(
"%%", attributes[clickedOnValue].toString() );
105 expanded_action = action;
109 for (
int i = 0; i < 4; i++ )
111 for ( QgsAttributeMap::const_iterator it = attributes.begin(); it != attributes.end(); it++ )
113 QgsFieldMap::const_iterator fit = fields.find( it.key() );
114 if ( fit == fields.constEnd() )
120 case 0: to_replace =
"[%" + fit->name() +
"]";
break;
122 case 2: to_replace =
"%" + fit->name();
break;
126 expanded_action = expanded_action.replace( to_replace, it.value().toString() );
130 return expanded_action;
135 QDomElement aActions = doc.createElement(
"attributeactions" );
137 for (
int i = 0; i <
mActions.size(); i++ )
139 QDomElement actionSetting = doc.createElement(
"actionsetting" );
140 actionSetting.setAttribute(
"type",
mActions[i].type() );
141 actionSetting.setAttribute(
"name",
mActions[i].name() );
142 actionSetting.setAttribute(
"action",
mActions[i].action() );
143 actionSetting.setAttribute(
"capture",
mActions[i].capture() );
144 aActions.appendChild( actionSetting );
146 layer_node.appendChild( aActions );
155 QDomNode aaNode = layer_node.namedItem(
"attributeactions" );
157 if ( !aaNode.isNull() )
159 QDomNodeList actionsettings = aaNode.childNodes();
160 for (
unsigned int i = 0; i < actionsettings.length(); ++i )
162 QDomElement setting = actionsettings.item( i ).toElement();
164 setting.attributeNode(
"name" ).value(),
165 setting.attributeNode(
"action" ).value(),
166 setting.attributeNode(
"capture" ).value().toInt() != 0 );