From eb4dfd12d072d051191b54bcad989ae710bb8681 Mon Sep 17 00:00:00 2001 From: gsherman Date: Thu, 5 Jun 2003 02:56:32 +0000 Subject: [PATCH] fix attribute table display bug git-svn-id: http://svn.osgeo.org/qgis/trunk@223 c8812cc2-4d05-0410-92ff-de0c093fc19c --- src/qgisapp.cpp | 6 ++++-- src/qgsshapefilelayer.cpp | 20 ++++++++++++++------ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/qgisapp.cpp b/src/qgisapp.cpp index 5f1e8aa2a8e..9f6b3ec547b 100644 --- a/src/qgisapp.cpp +++ b/src/qgisapp.cpp @@ -74,7 +74,7 @@ #include // version -static const char *qgisVersion = "0.0.11pre1 June 2, 2003"; +static const char *qgisVersion = "0.0.11pre2 June 4, 2003"; static const int qgisVersionInt = 10; // cursors static unsigned char zoom_in_bits[] = { @@ -210,7 +210,9 @@ void QgisApp::about() "*Version check under tools menu\n" "*Fix for PostGIS bug when srid != -1\n" "*Database Connections can now be deleted\n" - "*Fixes to Database Connection dialog\n"; + "*Fixes to Database Connection dialog\n" + "*Improved detection of invalid layers when loading\n" + ; abt->setWhatsNew(watsNew); diff --git a/src/qgsshapefilelayer.cpp b/src/qgsshapefilelayer.cpp index 27b11867246..537994e85da 100644 --- a/src/qgsshapefilelayer.cpp +++ b/src/qgsshapefilelayer.cpp @@ -41,7 +41,7 @@ QgsShapeFileLayer::QgsShapeFileLayer(QString vectorLayerPath, QString baseName) ogrDataSource = OGRSFDriverRegistrar::Open((const char *) dataSource); if (ogrDataSource != NULL) { - + std::cout << "Adding " << dataSource << std::endl; ogrLayer = ogrDataSource->GetLayer(0); OGREnvelope *ext = new OGREnvelope(); ogrLayer->GetExtent(ext); @@ -51,11 +51,18 @@ QgsShapeFileLayer::QgsShapeFileLayer(QString vectorLayerPath, QString baseName) layerExtent.setYmin(ext->MinY); // get the feature type OGRFeature *feat = ogrLayer->GetNextFeature(); - OGRGeometry *geom = feat->GetGeometryRef(); - feature = geom->getGeometryType(); - ogrLayer->ResetReading(); - delete feat; - + if(feat){ + OGRGeometry *geom = feat->GetGeometryRef(); + if(geom){ + feature = geom->getGeometryType(); + ogrLayer->ResetReading(); + }else{ + valid = false; + } + delete feat; + }else{ + valid = false; + } } else { valid = false; } @@ -351,6 +358,7 @@ void QgsShapeFileLayer::table() fet = ogrLayer->GetNextFeature(); } + ogrLayer->ResetReading(); at->table()->setSorting(true);