diff --git a/src/app/browser/qgsinbuiltdataitemproviders.cpp b/src/app/browser/qgsinbuiltdataitemproviders.cpp index e0e2b4a50df7..716ceb842cec 100644 --- a/src/app/browser/qgsinbuiltdataitemproviders.cpp +++ b/src/app/browser/qgsinbuiltdataitemproviders.cpp @@ -2104,6 +2104,8 @@ void QgsDatabaseItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu * } else if ( context.messageBar() ) { + if ( item->parent() ) + item->parent()->refresh(); context.messageBar()->pushMessage( tr( "Edited comment on %1" ).arg( fullName ), Qgis::MessageLevel::Success ); } } ); diff --git a/src/providers/postgres/qgspostgresdataitems.cpp b/src/providers/postgres/qgspostgresdataitems.cpp index 49c402bd1721..244934ce1425 100644 --- a/src/providers/postgres/qgspostgresdataitems.cpp +++ b/src/providers/postgres/qgspostgresdataitems.cpp @@ -124,6 +124,17 @@ QString QgsPGLayerItem::comments() const return mLayerProperty.tableComment; } +bool QgsPGLayerItem::equal( const QgsDataItem *other ) +{ + // Call parent class first + if ( !QgsLayerItem::equal( other ) ) + return false; + + // Also compare tooltips (which contain table comments) + const QgsPGLayerItem *o = qobject_cast( other ); + return o && toolTip() == o->toolTip(); +} + QString QgsPGLayerItem::createUri() { QgsPGConnectionItem *connItem = qobject_cast( parent() ? parent()->parent() : nullptr ); diff --git a/src/providers/postgres/qgspostgresdataitems.h b/src/providers/postgres/qgspostgresdataitems.h index f04f297acb96..a8ebe906c164 100644 --- a/src/providers/postgres/qgspostgresdataitems.h +++ b/src/providers/postgres/qgspostgresdataitems.h @@ -112,6 +112,8 @@ class QgsPGLayerItem : public QgsLayerItem QString comments() const override; + bool equal( const QgsDataItem *other ) override; + const QgsPostgresLayerProperty &layerInfo() const { return mLayerProperty; } QVector createChildren() override;