On mardi 19 septembre 2017 18:30:50 CEST Sandro Mani wrote:
> On 11.07.2017 14:31, Even Rouault wrote:
> > We could potentially imagine to defer the repacking at
> > leaveUpdateMode() time, actually in the close() method which is called
> > when the reference counter of the update mode drops to zero (*),
> > instead of doing it at the end of each operation.
> 
> To come back to this, I was looking at moving replack() to close(), but
> noticed that syncToDisc() has the logic "for shapefiles, remove spatial
> index files and create a new index" which calls close. And syncToDisk is
> still called after every change. So should syncToDisk be also moved to
> close(), or at least blocked if an updateMode is active?
> 

Yes that would probably make sense to block syncToDisk() while in updateMode 
(so when 
mUpdateModeStackDepth > 0), but probably only if enterUpdateMode() is called by 
QgsVectorLayer::startEditing(), and not when called implicitly by 
doInitialActionsForEdition(), 
which might be the case if someone directly works at the provider level

bool QgsOgrProvider::doInitialActionsForEdition()
{
  if ( !mValid )
    return false;

  if ( !mWriteAccess && mWriteAccessPossible && mDynamicWriteAccess )
  {
    QgsDebugMsg( "Enter update mode implictly" );
    if ( !enterUpdateMode() )
      return false;
  }

  return true;
}

So probably a mImplicitUpdateMode flag should be set above near the 
QgsDebugMsg(), and 
the check to decide whether we can defer syncToDisk() would be ( 
!mImplicitUpdateMode && 
mUpdateModeStackDepth > 0)


> Thanks
> Sandro
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer@lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer


-- 
Spatialys - Geospatial professional services
http://www.spatialys.com
_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to