[QGIS Commit] r9111 - trunk/qgis/src/app

svn_qgis at osgeo.org svn_qgis at osgeo.org
Thu Aug 21 18:24:27 EDT 2008


Author: jef
Date: 2008-08-21 18:24:27 -0400 (Thu, 21 Aug 2008)
New Revision: 9111

Modified:
   trunk/qgis/src/app/qgsattributetabledisplay.cpp
Log:
fix attribute table search and delete table on close even when docked

Modified: trunk/qgis/src/app/qgsattributetabledisplay.cpp
===================================================================
--- trunk/qgis/src/app/qgsattributetabledisplay.cpp	2008-08-21 22:04:19 UTC (rev 9110)
+++ trunk/qgis/src/app/qgsattributetabledisplay.cpp	2008-08-21 22:24:27 UTC (rev 9111)
@@ -39,6 +39,20 @@
 #include <QToolButton>
 #include <QDockWidget>
 
+class QAttributeTableDock : public QDockWidget
+{
+public:
+  QAttributeTableDock( const QString & title, QWidget * parent = 0, Qt::WindowFlags flags = 0 )
+   : QDockWidget( title, parent, flags )
+  {
+  }
+
+  virtual void closeEvent ( QCloseEvent * ev )
+  {
+    deleteLater();
+  }
+};
+
 QgsAttributeTableDisplay::QgsAttributeTableDisplay(QgsVectorLayer* layer)
 : QDialog(0, Qt::Window),
   mLayer(layer),
@@ -107,7 +121,7 @@
   bool myDockFlag = mySettings.value("/qgis/dockAttributeTable",false).toBool();
   if (myDockFlag )
   {
-    mDock = new QDockWidget(tr("Attribute table - ") + layer->name(), QgisApp::instance());
+    mDock = new QAttributeTableDock(tr("Attribute table - ") + layer->name(), QgisApp::instance());
     mDock->setAllowedAreas(Qt::BottomDockWidgetArea | Qt::TopDockWidgetArea);
     mDock->setWidget(this);
     QgisApp::instance()->addDockWidget(Qt::BottomDockWidgetArea, mDock);
@@ -124,9 +138,11 @@
 
 void QgsAttributeTableDisplay::closeEvent(QCloseEvent *ev)
 {
-  saveWindowLocation();
+  if(mDock==NULL)
+    saveWindowLocation();
+
   ev->ignore();
-  delete this;
+  deleteLater();
 }
 
 void QgsAttributeTableDisplay::fillTable()
@@ -280,7 +296,7 @@
 
   mSearchIds.clear();
 
-  mLayer->select(mLayer->pendingAllAttributesList(), true, false);
+  mLayer->select(mLayer->pendingAllAttributesList(), QgsRect(), false);
 
   QgsFeature f;
   while( mLayer->getNextFeature(f) )



More information about the QGIS-commit mailing list