[QGIS Commit] r13842 - in trunk/qgis/src: app python

svn_qgis at osgeo.org svn_qgis at osgeo.org
Tue Jun 29 10:04:34 EDT 2010


Author: jef
Date: 2010-06-29 14:04:34 +0000 (Tue, 29 Jun 2010)
New Revision: 13842

Modified:
   trunk/qgis/src/app/qgsattributedialog.cpp
   trunk/qgis/src/app/qgsattributedialog.h
   trunk/qgis/src/python/qgspythonutilsimpl.cpp
Log:
fix python feature form identifier in case of non-ascii layer ids

Modified: trunk/qgis/src/app/qgsattributedialog.cpp
===================================================================
--- trunk/qgis/src/app/qgsattributedialog.cpp	2010-06-29 10:17:13 UTC (rev 13841)
+++ trunk/qgis/src/app/qgsattributedialog.cpp	2010-06-29 14:04:34 UTC (rev 13842)
@@ -42,12 +42,15 @@
 #include <QVBoxLayout>
 #include <QLineEdit>
 
+int QgsAttributeDialog::smFormCounter = 0;
+
 QgsAttributeDialog::QgsAttributeDialog( QgsVectorLayer *vl, QgsFeature *thepFeature )
     : mDialog( 0 )
     , mSettingsPath( "/Windows/AttributeDialog/" )
     , mLayer( vl )
     , mpFeature( thepFeature )
     , mRubberBand( 0 )
+    , mFormNr( -1 )
 {
   if ( mpFeature == NULL || vl->dataProvider() == NULL )
     return;
@@ -227,9 +230,10 @@
       QgisApp::instance()->runPythonString( QString( "import %1" ).arg( module.left( pos ) ) );
     }
 
-    QgisApp::instance()->runPythonString( QString( "_qgis_featureform_%1 = wrapinstance( %2, QtGui.QDialog )" ).arg( mLayer->getLayerID() ).arg(( unsigned long ) mDialog ) );
+    mFormNr = smFormCounter++;
+    QgisApp::instance()->runPythonString( QString( "_qgis_featureform_%1 = wrapinstance( %2, QtGui.QDialog )" ).arg( mFormNr ).arg(( unsigned long ) mDialog ) );
 
-    QString expr = QString( "%1(_qgis_featureform_%2,'%2',%3)" ).arg( vl->editFormInit() ).arg( vl->getLayerID() ).arg( mpFeature->id() );
+    QString expr = QString( "%1(_qgis_featureform_%2,'%3',%4)" ).arg( vl->editFormInit() ).arg( mFormNr ).arg( vl->getLayerID() ).arg( mpFeature->id() );
     QgsDebugMsg( QString( "running featureForm init: %1" ).arg( expr ) );
     QgisApp::instance()->runPythonString( expr );
   }
@@ -331,8 +335,11 @@
   mLayer->setProperty( "featureForm.dialog", QVariant() );
   mLayer->setProperty( "featureForm.id", QVariant() );
 #endif
-  QString expr = QString( "if locals().has_key('_qgis_featureform_%1'): del _qgis_featureform_%1\n" ).arg( mLayer->getLayerID() );
-  QgisApp::instance()->runPythonString( expr );
+  if ( -1 < mFormNr )
+  {
+    QString expr = QString( "if locals().has_key('_qgis_featureform_%1'): del _qgis_featureform_%1\n" ).arg( mFormNr );
+    QgisApp::instance()->runPythonString( expr );
+  }
 
   mDialog = NULL;
   deleteLater();

Modified: trunk/qgis/src/app/qgsattributedialog.h
===================================================================
--- trunk/qgis/src/app/qgsattributedialog.h	2010-06-29 10:17:13 UTC (rev 13841)
+++ trunk/qgis/src/app/qgsattributedialog.h	2010-06-29 14:04:34 UTC (rev 13842)
@@ -68,6 +68,8 @@
     QgsVectorLayer *mLayer;
     QgsFeature *mpFeature;
     QgsRubberBand *mRubberBand;
+    int mFormNr;
+    static int smFormCounter;
 };
 
 #endif

Modified: trunk/qgis/src/python/qgspythonutilsimpl.cpp
===================================================================
--- trunk/qgis/src/python/qgspythonutilsimpl.cpp	2010-06-29 10:17:13 UTC (rev 13841)
+++ trunk/qgis/src/python/qgspythonutilsimpl.cpp	2010-06-29 14:04:34 UTC (rev 13842)
@@ -161,7 +161,7 @@
   evalString( "str(sys.path)", path );
   evalString( "sys.version", version );
 
-  QString str = "<font color=\"red\">" + msgOnError + "</font><br><br>" + traceback + "<br>"
+  QString str = "<font color=\"red\">" + msgOnError + "</font><br><pre>\n" + traceback + "\n</pre>"
                 + QObject::tr( "Python version:" ) + "<br>" + version + "<br><br>"
                 + QObject::tr( "QGIS version:" ) + "<br>" + QString( "%1 '%2', %3" ).arg( QGis::QGIS_VERSION ).arg( QGis::QGIS_RELEASE_NAME ).arg( QGis::QGIS_SVN_VERSION ) + "<br><br>"
                 + QObject::tr( "Python path:" ) + "<br>" + path;



More information about the QGIS-commit mailing list