On Sun, Apr 21, 2013 at 11:13 AM, Radim Blazek <[email protected]> wrote: > On Sat, Apr 20, 2013 at 9:03 PM, Olivier Dalang > <[email protected]> wrote: >> Is this a solution for http://hub.qgis.org/issues/7540 ? > > Probably.
Sorry, probably not. The problem could be that not edited layer keeps something in memory (shx - shapes index) and that is not updated (reloaded) when shx file is updated by second (edited) layer. But that should not result in crash. Simple adding of startEditing/commitChanges to provider cannot solve that. We need to update (reload) all layers using the same data source (files) after commitChanges. In fact, some formats must not be read while edited, so startEditing should disable all layers using the same file. I think that GRASS plugin is doing that. It may also happen that a file is modified by another application ... Radim > Radim > >> 2013/4/20 Radim Blazek <[email protected]> >>> >>> On Fri, Apr 19, 2013 at 12:07 PM, JVerholle <[email protected]> >>> wrote: >>> > Hi all, >>> > >>> > If I want to open the same shapefile in both softwares at the same time, >>> > the >>> > file is locked in ArcGis (even if the edition mode isn't used in QGis). >>> >>> QGIS opens layers (files) in update mode ("r+") if possible (file >>> permission + OGR driver support). It may (but also may not) be a >>> problem also for #6448 (slow shp over network) I am currently >>> struggling with. In general, I think that it is bad to open files >>> always in update mode even if in most cases they are not going to be >>> edited. >>> >>> Currently there are no QgsVectorDataProvider::startEditing() and >>> commitChanges() which may also be a problem for database providers >>> because QgsVectorLayerEditBuffer::commitChanges() calls more provider >>> methods changing >>> data (deleteAttributes, addAttributes, deleteFeatures, >>> addFeatures...). The commitChanges() should do everything in one >>> transaction IMO. >>> >>> My proposal is to: >>> 1) Add QgsVectorDataProvider::startEditing() and >>> QgsVectorDataProvider::commitChanges() >>> 2) In OGR provider try to open layer in update mode only to get >>> capabilities (get info if it can be modified when the provider is >>> constructed) but then to reopen in read only mode. >>> 3) Call QgsVectorDataProvider::startEditing() from >>> QgsVectorLayer::startEditing() to be sure that the layer is still >>> editable (permissions could change or it was opened by another >>> application for editing since the layer was opened) and to reopen >>> files in update mode (files based) or to start transaction (DB based). >>> 4) Call QgsVectorDataProvider::commitChanges() from >>> QgsVectorLayer::commitChanges() >>> 4) In QgsOgrProvider::startEditing() reopen the layer in update mode >>> 5) In QgsOgrProvider::commitChanges() reopen the layer in read only mode >>> >>> I am not sure if reopening of layers in OGR provider may be a >>> performance problem, but I hope that it should not be. >>> >>> We don't really have to implement startEditing() and commitChanges() >>> in all providers for 2.0, but it should be in the vector API. >>> >>> Radim >>> >>> PS: Unfortunately, according to my current knowledge, this is not full >>> solution for #6448. >>> >>> > ArcGis is enable to recognize the feature's type (we can see a "?" >>> > instead >>> > of polylign, polygon or point). >>> > This issue has been only noticed on Windows (and with ArcMap 9.2). >>> > >>> > Someone has already seen this problem ? Is it due to QGis or Gdal ? >>> > >>> > Thanks. >>> > >>> > Julien >>> > >>> > >>> > >>> > -- >>> > View this message in context: >>> > http://osgeo-org.1560.x6.nabble.com/Interaction-between-QGis-and-ArcGis-tp5048256.html >>> > Sent from the Quantum GIS - Developer mailing list archive at >>> > Nabble.com. >>> > _______________________________________________ >>> > Qgis-developer mailing list >>> > [email protected] >>> > http://lists.osgeo.org/mailman/listinfo/qgis-developer >>> _______________________________________________ >>> Qgis-developer mailing list >>> [email protected] >>> http://lists.osgeo.org/mailman/listinfo/qgis-developer >> >> _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
