Skip to content

Commit 63ddb15

Browse files
committed
[GRASS] fixed crash in add/delete column
1 parent d70c854 commit 63ddb15

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/providers/grass/qgsgrassprovider.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ void QgsGrassProvider::thaw()
561561
#endif
562562
}
563563

564-
bool QgsGrassProvider::closeEdit( bool newMap )
564+
bool QgsGrassProvider::closeEdit( bool newMap, QgsVectorLayer *vectorLayer )
565565
{
566566
QgsDebugMsg( "entered" );
567567

@@ -576,6 +576,10 @@ bool QgsGrassProvider::closeEdit( bool newMap )
576576
if ( mLayer->map()->closeEdit( newMap ) )
577577
{
578578
loadMapInfo();
579+
if ( vectorLayer )
580+
{
581+
vectorLayer->updateFields();
582+
}
579583
return true;
580584
}
581585
return false;
@@ -1005,6 +1009,9 @@ void QgsGrassProvider::startEditing( QgsVectorLayer *vectorLayer )
10051009

10061010
connect( vectorLayer->undoStack(), SIGNAL( indexChanged( int ) ), this, SLOT( onUndoIndexChanged( int ) ) );
10071011

1012+
// let qgis know (attribute table etc.) that we added topo symbol field
1013+
vectorLayer->updateFields();
1014+
10081015
QgsDebugMsg( "edit started" );
10091016
}
10101017

@@ -1465,7 +1472,8 @@ void QgsGrassProvider::onBeforeRollBack()
14651472
void QgsGrassProvider::onEditingStopped()
14661473
{
14671474
QgsDebugMsg( "entered" );
1468-
closeEdit( false );
1475+
QgsVectorLayer *vectorLayer = qobject_cast<QgsVectorLayer *>( sender() );
1476+
closeEdit( false, vectorLayer );
14691477
}
14701478

14711479
// -------------------------------------------------------------------------------

src/providers/grass/qgsgrassprovider.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ class GRASS_LIB_EXPORT QgsGrassProvider : public QgsVectorDataProvider
178178
* @return true success
179179
* @return false failed to close vector or vector was not in update mode
180180
*/
181-
bool closeEdit( bool newMap = false );
181+
bool closeEdit( bool newMap = false, QgsVectorLayer *vectorLayer = 0 );
182182

183183
/** Get current number of lines.
184184
* @return number of lines

0 commit comments

Comments
 (0)