[QGIS Commit] r13551 - trunk/qgis/src/app/attributetable

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sat May 22 17:17:32 EDT 2010


Author: jef
Date: 2010-05-22 17:17:30 -0400 (Sat, 22 May 2010)
New Revision: 13551

Modified:
   trunk/qgis/src/app/attributetable/qgsattributetabledialog.cpp
   trunk/qgis/src/app/attributetable/qgsattributetablemodel.h
Log:
let attribute table follow canvas extent

Modified: trunk/qgis/src/app/attributetable/qgsattributetabledialog.cpp
===================================================================
--- trunk/qgis/src/app/attributetable/qgsattributetabledialog.cpp	2010-05-22 18:50:26 UTC (rev 13550)
+++ trunk/qgis/src/app/attributetable/qgsattributetabledialog.cpp	2010-05-22 21:17:30 UTC (rev 13551)
@@ -71,8 +71,7 @@
   mColumnBox = columnBox;
   columnBoxInit();
 
-  QSettings mySettings;
-  bool myDockFlag = mySettings.value( "/qgis/dockAttributeTable", false ).toBool();
+  bool myDockFlag = settings.value( "/qgis/dockAttributeTable", false ).toBool();
   if ( myDockFlag )
   {
     mDock = new QgsAttributeTableDock( tr( "Attribute table - %1 (%n Feature(s))", "feature count", mModel->rowCount() ).arg( mLayer->name() ), QgisApp::instance() );
@@ -122,6 +121,11 @@
   connect( mView->verticalHeader(), SIGNAL( sectionPressed( int ) ), this, SLOT( updateRowPressed( int ) ) );
   connect( mModel, SIGNAL( modelChanged() ), this, SLOT( updateSelection() ) );
 
+  if ( settings.value( "/qgis/attributeTableBehaviour", 0 ).toInt() == 2 )
+  {
+    connect( QgisApp::instance()->mapCanvas(), SIGNAL( extentsChanged() ), mModel, SLOT( layerModified() ) );
+  }
+
   mLastClickedHeaderIndex = 0;
   mSelectionModel = new QItemSelectionModel( mFilterModel );
   updateSelectionFromLayer();
@@ -221,7 +225,19 @@
 
 void QgsAttributeTableDialog::on_mZoomMapToSelectedRowsButton_clicked()
 {
+  QSettings settings;
+  bool canvasFeatures = settings.value( "/qgis/attributeTableBehaviour", 0 ).toInt() == 2;
+  if ( canvasFeatures )
+  {
+    disconnect( QgisApp::instance()->mapCanvas(), SIGNAL( extentsChanged() ), mModel, SLOT( layerModified() ) );
+  }
+
   QgisApp::instance()->mapCanvas()->zoomToSelected( mLayer );
+
+  if ( canvasFeatures )
+  {
+    connect( QgisApp::instance()->mapCanvas(), SIGNAL( extentsChanged() ), mModel, SLOT( layerModified() ) );
+  }
 }
 
 void QgsAttributeTableDialog::on_mInvertSelectionButton_clicked()

Modified: trunk/qgis/src/app/attributetable/qgsattributetablemodel.h
===================================================================
--- trunk/qgis/src/app/attributetable/qgsattributetablemodel.h	2010-05-22 18:50:26 UTC (rev 13550)
+++ trunk/qgis/src/app/attributetable/qgsattributetablemodel.h	2010-05-22 21:17:30 UTC (rev 13551)
@@ -163,7 +163,7 @@
      * Rebuilds the model
      * @param onlyGeometry true if only geometry has changed
      */
-    virtual void layerModified( bool onlyGeometry );
+    virtual void layerModified( bool onlyGeometry = false );
 
   protected slots:
 #if 0



More information about the QGIS-commit mailing list