[QGIS Commit] r13291 - in trunk/qgis: python/core src/app src/core
src/gui
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Fri Apr 9 03:42:48 EDT 2010
Author: mhugent
Date: 2010-04-09 03:42:30 -0400 (Fri, 09 Apr 2010)
New Revision: 13291
Modified:
trunk/qgis/python/core/qgsvectorlayer.sip
trunk/qgis/src/app/qgsformannotationdialog.cpp
trunk/qgis/src/core/qgsvectorlayer.cpp
trunk/qgis/src/core/qgsvectorlayer.h
trunk/qgis/src/gui/qgsformannotationitem.cpp
trunk/qgis/src/gui/qgsformannotationitem.h
Log:
Remember last annotation form for a layer and store it in project
Modified: trunk/qgis/python/core/qgsvectorlayer.sip
===================================================================
--- trunk/qgis/python/core/qgsvectorlayer.sip 2010-04-09 06:32:25 UTC (rev 13290)
+++ trunk/qgis/python/core/qgsvectorlayer.sip 2010-04-09 07:42:30 UTC (rev 13291)
@@ -444,6 +444,15 @@
*/
void setEditForm( QString ui );
+ /** get annotation form
+ @note added in 1.5*/
+ QString annotationForm() const;
+
+ /** set annotation form for layer
+ @note added in 1.5*/
+ void setAnnotationForm( const QString& ui );
+
+
/** get edit form init function
@note added in 1.4
*/
Modified: trunk/qgis/src/app/qgsformannotationdialog.cpp
===================================================================
--- trunk/qgis/src/app/qgsformannotationdialog.cpp 2010-04-09 06:32:25 UTC (rev 13290)
+++ trunk/qgis/src/app/qgsformannotationdialog.cpp 2010-04-09 07:42:30 UTC (rev 13291)
@@ -1,5 +1,6 @@
#include "qgsformannotationdialog.h"
#include "qgsannotationwidget.h"
+#include "qgsvectorlayer.h"
#include <QFileDialog>
#include <QFileInfo>
#include <QGraphicsScene>
@@ -40,6 +41,12 @@
if ( mItem )
{
mItem->setDesignerForm( mFileLineEdit->text() );
+ QgsVectorLayer* layer = mItem->vectorLayer();
+ if ( layer )
+ {
+ //set last used annotation form as default for the layer
+ layer->setAnnotationForm( mFileLineEdit->text() );
+ }
mItem->update();
}
}
Modified: trunk/qgis/src/core/qgsvectorlayer.cpp
===================================================================
--- trunk/qgis/src/core/qgsvectorlayer.cpp 2010-04-09 06:32:25 UTC (rev 13290)
+++ trunk/qgis/src/core/qgsvectorlayer.cpp 2010-04-09 07:42:30 UTC (rev 13291)
@@ -2797,6 +2797,13 @@
mEditFormInit = editFormInitNode.toElement().text();
}
+ QDomNode annotationFormNode = node.namedItem( "annotationform" );
+ if ( !annotationFormNode.isNull() )
+ {
+ QDomElement e = annotationFormNode.toElement();
+ mAnnotationForm = QgsProject::instance()->readPath( e.text() );
+ }
+
mAttributeAliasMap.clear();
QDomNode aliasesNode = node.namedItem( "aliases" );
if ( !aliasesNode.isNull() )
@@ -2943,6 +2950,11 @@
efiField.appendChild( efiText );
node.appendChild( efiField );
+ QDomElement afField = doc.createElement( "annotationform" );
+ QDomText afText = doc.createTextNode( QgsProject::instance()->writePath( mAnnotationForm ) );
+ afField.appendChild( afText );
+ node.appendChild( afField );
+
//attribute aliases
if ( mAttributeAliasMap.size() > 0 )
{
@@ -4142,6 +4154,11 @@
mEditForm = ui;
}
+void QgsVectorLayer::setAnnotationForm( const QString& ui )
+{
+ mAnnotationForm = ui;
+}
+
QString QgsVectorLayer::editFormInit()
{
return mEditFormInit;
Modified: trunk/qgis/src/core/qgsvectorlayer.h
===================================================================
--- trunk/qgis/src/core/qgsvectorlayer.h 2010-04-09 06:32:25 UTC (rev 13290)
+++ trunk/qgis/src/core/qgsvectorlayer.h 2010-04-09 07:42:30 UTC (rev 13291)
@@ -480,6 +480,12 @@
/** set edit form (added in 1.4) */
void setEditForm( QString ui );
+ /** get annotation form (added in 1.5)*/
+ QString annotationForm() const { return mAnnotationForm; }
+
+ /** set annotation form for layer (added in 1.5)*/
+ void setAnnotationForm( const QString& ui );
+
/** get python function for edit form initialization (added in 1.4) */
QString editFormInit();
@@ -775,6 +781,8 @@
QMap< QString, QPair<QString, QString> > mCheckedStates;
QString mEditForm, mEditFormInit;
+ //annotation form for this layer
+ QString mAnnotationForm;
bool mFetching;
QgsRectangle mFetchRect;
Modified: trunk/qgis/src/gui/qgsformannotationitem.cpp
===================================================================
--- trunk/qgis/src/gui/qgsformannotationitem.cpp 2010-04-09 06:32:25 UTC (rev 13290)
+++ trunk/qgis/src/gui/qgsformannotationitem.cpp 2010-04-09 07:42:30 UTC (rev 13291)
@@ -39,7 +39,7 @@
mWidgetContainer = new QGraphicsProxyWidget( this );
if ( mVectorLayer && mMapCanvas ) //default to the layers edit form
{
- mDesignerForm = mVectorLayer->editForm();
+ mDesignerForm = mVectorLayer->annotationForm();
QObject::connect( mVectorLayer, SIGNAL( layerModified( bool ) ), this, SLOT( setFeatureForMapPosition() ) );
QObject::connect( mMapCanvas, SIGNAL( renderComplete( QPainter* ) ), this, SLOT( setFeatureForMapPosition() ) );
QObject::connect( mMapCanvas, SIGNAL( layersChanged() ), this, SLOT( updateVisibility() ) );
Modified: trunk/qgis/src/gui/qgsformannotationitem.h
===================================================================
--- trunk/qgis/src/gui/qgsformannotationitem.h 2010-04-09 06:32:25 UTC (rev 13290)
+++ trunk/qgis/src/gui/qgsformannotationitem.h 2010-04-09 07:42:30 UTC (rev 13291)
@@ -49,6 +49,8 @@
void writeXML( QDomDocument& doc ) const;
void readXML( const QDomDocument& doc, const QDomElement& itemElem );
+ QgsVectorLayer* vectorLayer() const { return mVectorLayer; }
+
private slots:
/**Sets a feature for the current map position and updates the dialog*/
void setFeatureForMapPosition();
More information about the QGIS-commit
mailing list