Skip to content

Commit 842753e

Browse files
committedNov 4, 2015
Initial implementation
1 parent 8c86aab commit 842753e

File tree

4 files changed

+118
-9
lines changed

4 files changed

+118
-9
lines changed
 

‎src/app/qgsfieldsproperties.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -843,6 +843,8 @@ void QgsFieldsProperties::apply()
843843
if ( mEditorLayoutComboBox->currentIndex() == QgsVectorLayer::UiFileLayout )
844844
mLayer->setEditForm( leEditForm->text() );
845845
mLayer->setEditFormInit( leEditFormInit->text() );
846+
mLayer->setEditFormInitUseCode( leEditFormInitUseCode->isChecked() );
847+
// TODO: mLayer->setEditFormInitCode( leEditFormInitCode->text() );
846848
mLayer->setFeatureFormSuppress(( QgsVectorLayer::FeatureFormSuppress )mFormSuppressCmbBx->currentIndex() );
847849

848850
mLayer->setExcludeAttributesWMS( excludeAttributesWMS );

‎src/core/qgsvectorlayer.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1781,6 +1781,18 @@ bool QgsVectorLayer::readSymbology( const QDomNode& node, QString& errorMessage
17811781
mEditFormInit = editFormInitNode.toElement().text();
17821782
}
17831783

1784+
QDomNode editFormInitCodeNode = node.namedItem( "editforminitcode" );
1785+
if ( !editFormInitCodeNode.isNull() )
1786+
{
1787+
mEditFormInitCode = editFormInitCodeNode.toElement().text();
1788+
}
1789+
1790+
QDomNode editFormInitUseCodeNode = node.namedItem( "editforminitusecode" );
1791+
if ( !editFormInitCodeNode.isNull() )
1792+
{
1793+
mEditFormInitUseCode = (bool) editFormInitUseCodeNode.toElement().text().toInt();
1794+
}
1795+
17841796
QDomNode fFSuppNode = node.namedItem( "featformsuppress" );
17851797
if ( fFSuppNode.isNull() )
17861798
{
@@ -2043,6 +2055,14 @@ bool QgsVectorLayer::writeSymbology( QDomNode& node, QDomDocument& doc, QString&
20432055
efiField.appendChild( doc.createTextNode( mEditFormInit ) );
20442056
node.appendChild( efiField );
20452057

2058+
QDomElement efiucField = doc.createElement( "editforminitusecode" );
2059+
efiucField.appendChild( doc.createTextNode( mEditFormInitUseCode ? "1" : "0") );
2060+
node.appendChild( efiucField );
2061+
2062+
QDomElement eficField = doc.createElement( "editforminitcode" );
2063+
eficField.appendChild( doc.createTextNode( mEditFormInitCode ) );
2064+
node.appendChild( eficField );
2065+
20462066
QDomElement fFSuppElem = doc.createElement( "featformsuppress" );
20472067
QDomText fFSuppText = doc.createTextNode( QString::number( featureFormSuppress() ) );
20482068
fFSuppElem.appendChild( fFSuppText );
@@ -2826,11 +2846,26 @@ QString QgsVectorLayer::editFormInit()
28262846
return mEditFormInit;
28272847
}
28282848

2849+
QString QgsVectorLayer::editFormInitCode()
2850+
{
2851+
return mEditFormInitCode;
2852+
}
2853+
28292854
void QgsVectorLayer::setEditFormInit( const QString& function )
28302855
{
28312856
mEditFormInit = function;
28322857
}
28332858

2859+
void QgsVectorLayer::setEditFormInitUseCode( const bool useCode )
2860+
{
2861+
mEditFormInitUseCode = useCode;
2862+
}
2863+
2864+
void QgsVectorLayer::setEditFormInitCode( const QString& code )
2865+
{
2866+
mEditFormInitCode = code;
2867+
}
2868+
28342869
QMap< QString, QVariant > QgsVectorLayer::valueMap( int idx )
28352870
{
28362871
return editorWidgetV2Config( idx );

‎src/core/qgsvectorlayer.h

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1628,9 +1628,21 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
16281628
/** Get python function for edit form initialization */
16291629
QString editFormInit();
16301630

1631+
/** Get python code for edit form initialization */
1632+
QString editFormInitCode();
1633+
1634+
/** Reeturn if python code has to be loaded for edit form initialization */
1635+
bool editFormInitUseCode();
1636+
16311637
/** Set python function for edit form initialization */
16321638
void setEditFormInit( const QString& function );
16331639

1640+
/** Set python code for edit form initialization */
1641+
void setEditFormInitCode( const QString& code);
1642+
1643+
/** Set python code for edit form initialization */
1644+
void setEditFormInitUseCode( const bool useCode);
1645+
16341646
/**
16351647
* Access value map
16361648
* @deprecated Use editorWidgetV2Config() instead
@@ -1789,7 +1801,7 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
17891801
*/
17901802
QgsConditionalLayerStyles *conditionalStyles() const;
17911803

1792-
public slots:
1804+
public slots:
17931805
/**
17941806
* Select feature by its ID
17951807
*
@@ -2141,7 +2153,8 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
21412153
/** Defines the default layout to use for the attribute editor (Drag and drop, UI File, Generated) */
21422154
EditorLayout mEditorLayout;
21432155

2144-
QString mEditForm, mEditFormInit;
2156+
QString mEditForm, mEditFormInit, mEditFormInitCode;
2157+
bool mEditFormInitUseCode;
21452158

21462159
/** Type of feature form suppression after feature creation
21472160
* @note added in 2.1 */

‎src/ui/qgsfieldspropertiesbase.ui

Lines changed: 66 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>613</width>
9+
<width>719</width>
1010
<height>634</height>
1111
</rect>
1212
</property>
@@ -113,6 +113,20 @@ MyForms.py must live on PYTHONPATH, .qgis/python, or inside the project folder.<
113113
</property>
114114
</spacer>
115115
</item>
116+
<item>
117+
<widget class="QCheckBox" name="leEditFormInitUseCode">
118+
<property name="text">
119+
<string>use code</string>
120+
</property>
121+
</widget>
122+
</item>
123+
<item>
124+
<widget class="QPushButton" name="leButtonOpenEditor">
125+
<property name="text">
126+
<string>Open editor</string>
127+
</property>
128+
</widget>
129+
</item>
116130
</layout>
117131
</item>
118132
<item row="2" column="0" colspan="7">
@@ -128,7 +142,16 @@ MyForms.py must live on PYTHONPATH, .qgis/python, or inside the project folder.<
128142
</sizepolicy>
129143
</property>
130144
<layout class="QGridLayout" name="gridLayout">
131-
<property name="margin">
145+
<property name="leftMargin">
146+
<number>0</number>
147+
</property>
148+
<property name="topMargin">
149+
<number>0</number>
150+
</property>
151+
<property name="rightMargin">
152+
<number>0</number>
153+
</property>
154+
<property name="bottomMargin">
132155
<number>0</number>
133156
</property>
134157
<item row="0" column="0">
@@ -254,7 +277,16 @@ MyForms.py must live on PYTHONPATH, .qgis/python, or inside the project folder.<
254277
</property>
255278
<widget class="QWidget" name="page">
256279
<layout class="QGridLayout" name="gridLayout_2">
257-
<property name="margin">
280+
<property name="leftMargin">
281+
<number>0</number>
282+
</property>
283+
<property name="topMargin">
284+
<number>0</number>
285+
</property>
286+
<property name="rightMargin">
287+
<number>0</number>
288+
</property>
289+
<property name="bottomMargin">
258290
<number>0</number>
259291
</property>
260292
<item row="0" column="1">
@@ -295,10 +327,19 @@ MyForms.py must live on PYTHONPATH, .qgis/python, or inside the project folder.<
295327
</widget>
296328
<widget class="QWidget" name="page_2">
297329
<layout class="QGridLayout" name="gridLayout_5">
298-
<property name="horizontalSpacing">
330+
<property name="leftMargin">
331+
<number>0</number>
332+
</property>
333+
<property name="topMargin">
334+
<number>0</number>
335+
</property>
336+
<property name="rightMargin">
299337
<number>0</number>
300338
</property>
301-
<property name="margin">
339+
<property name="bottomMargin">
340+
<number>0</number>
341+
</property>
342+
<property name="horizontalSpacing">
302343
<number>0</number>
303344
</property>
304345
<item row="0" column="0">
@@ -319,7 +360,16 @@ MyForms.py must live on PYTHONPATH, .qgis/python, or inside the project folder.<
319360
<property name="spacing">
320361
<number>6</number>
321362
</property>
322-
<property name="margin">
363+
<property name="leftMargin">
364+
<number>0</number>
365+
</property>
366+
<property name="topMargin">
367+
<number>0</number>
368+
</property>
369+
<property name="rightMargin">
370+
<number>0</number>
371+
</property>
372+
<property name="bottomMargin">
323373
<number>0</number>
324374
</property>
325375
<item>
@@ -415,7 +465,16 @@ MyForms.py must live on PYTHONPATH, .qgis/python, or inside the project folder.<
415465
<bool>true</bool>
416466
</property>
417467
<layout class="QGridLayout" name="mDesignerListLayout">
418-
<property name="margin">
468+
<property name="leftMargin">
469+
<number>0</number>
470+
</property>
471+
<property name="topMargin">
472+
<number>0</number>
473+
</property>
474+
<property name="rightMargin">
475+
<number>0</number>
476+
</property>
477+
<property name="bottomMargin">
419478
<number>0</number>
420479
</property>
421480
</layout>

0 commit comments

Comments
 (0)
Please sign in to comment.