Skip to content

Commit d17011e

Browse files
committed
Show dock on error
1 parent 00fa3db commit d17011e

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

src/app/qgisapp.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -931,15 +931,14 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, bool skipVersionCh
931931
{
932932
mInfoBar->pushWarning( tr( "Geometry Validation" ), message );
933933
} );
934-
mGeometryValidationDock = new QgsGeometryValidationDock( tr( "Geometry Validation" ), mMapCanvas );
934+
mGeometryValidationDock = new QgsGeometryValidationDock( tr( "Geometry Validation" ), mMapCanvas, this );
935935
mGeometryValidationModel = new QgsGeometryValidationModel( mGeometryValidationService.get(), mGeometryValidationDock );
936936
connect( this, &QgisApp::activeLayerChanged, mGeometryValidationModel, [this]( QgsMapLayer * layer )
937937
{
938938
mGeometryValidationModel->setCurrentLayer( qobject_cast<QgsVectorLayer *>( layer ) );
939939
} );
940940
mGeometryValidationDock->setGeometryValidationModel( mGeometryValidationModel );
941941
mGeometryValidationDock->setGeometryValidationService( mGeometryValidationService.get() );
942-
addDockWidget( Qt::RightDockWidgetArea, mGeometryValidationDock );
943942
endProfile();
944943

945944
QgsApplication::annotationRegistry()->addAnnotationType( QgsAnnotationMetadata( QStringLiteral( "FormAnnotationItem" ), &QgsFormAnnotation::create ) );
@@ -1442,6 +1441,7 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, bool skipVersionCh
14421441
{
14431442
mCentralContainer->setCurrentIndex( 0 );
14441443
} );
1444+
mGeometryValidationDock->close();
14451445
} // QgisApp ctor
14461446

14471447
QgisApp::QgisApp()

src/app/qgsgeometryvalidationdock.cpp

+13-2
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,13 @@ email : matthias@opengis.ch
2828
#include "qgsgeometrycheckregistry.h"
2929
#include "qgsgeometryoptions.h"
3030
#include "qgsgeometrycheckfactory.h"
31+
#include "qgisapp.h"
3132

3233

33-
QgsGeometryValidationDock::QgsGeometryValidationDock( const QString &title, QgsMapCanvas *mapCanvas, QWidget *parent, Qt::WindowFlags flags )
34+
QgsGeometryValidationDock::QgsGeometryValidationDock( const QString &title, QgsMapCanvas *mapCanvas, QgisApp *parent, Qt::WindowFlags flags )
3435
: QgsDockWidget( title, parent, flags )
3536
, mMapCanvas( mapCanvas )
37+
, mApp( parent )
3638
{
3739
setupUi( this );
3840

@@ -84,7 +86,7 @@ void QgsGeometryValidationDock::setGeometryValidationModel( QgsGeometryValidatio
8486

8587
connect( mErrorListView->selectionModel(), &QItemSelectionModel::currentChanged, this, &QgsGeometryValidationDock::onCurrentErrorChanged );
8688
connect( mGeometryValidationModel, &QgsGeometryValidationModel::rowsRemoved, this, &QgsGeometryValidationDock::updateCurrentError );
87-
connect( mGeometryValidationModel, &QgsGeometryValidationModel::rowsInserted, this, &QgsGeometryValidationDock::raise );
89+
connect( mGeometryValidationModel, &QgsGeometryValidationModel::rowsInserted, this, &QgsGeometryValidationDock::onRowsInserted );
8890
}
8991

9092
void QgsGeometryValidationDock::gotoNextError()
@@ -139,6 +141,15 @@ void QgsGeometryValidationDock::updateLayerTransform()
139141
mLayerTransform = QgsCoordinateTransform( mMapCanvas->currentLayer()->crs(), mMapCanvas->mapSettings().destinationCrs(), mMapCanvas->mapSettings().transformContext() );
140142
}
141143

144+
void QgsGeometryValidationDock::onRowsInserted()
145+
{
146+
if ( !isVisible() )
147+
{
148+
mApp->addDockWidget( Qt::RightDockWidgetArea, this );
149+
}
150+
raise();
151+
}
152+
142153
QgsGeometryValidationService *QgsGeometryValidationDock::geometryValidationService() const
143154
{
144155
return mGeometryValidationService;

src/app/qgsgeometryvalidationdock.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class QgsMapCanvas;
2424
class QgsGeometryValidationModel;
2525
class QgsGeometryValidationService;
2626
class QgsRubberBand;
27+
class QgisApp;
2728

2829
/**
2930
* @brief The QgsGeometryValidationDock class
@@ -33,7 +34,7 @@ class QgsGeometryValidationDock : public QgsDockWidget, public Ui_QgsGeometryVal
3334
Q_OBJECT
3435

3536
public:
36-
QgsGeometryValidationDock( const QString &title, QgsMapCanvas *mapCanvas, QWidget *parent = nullptr, Qt::WindowFlags flags = nullptr );
37+
QgsGeometryValidationDock( const QString &title, QgsMapCanvas *mapCanvas, QgisApp *parent = nullptr, Qt::WindowFlags flags = nullptr );
3738

3839
QgsGeometryValidationModel *geometryValidationModel() const;
3940
void setGeometryValidationModel( QgsGeometryValidationModel *geometryValidationModel );
@@ -51,6 +52,7 @@ class QgsGeometryValidationDock : public QgsDockWidget, public Ui_QgsGeometryVal
5152
void zoomToFeature();
5253
void triggerTopologyChecks();
5354
void updateLayerTransform();
55+
void onRowsInserted();
5456

5557
private:
5658

@@ -67,6 +69,7 @@ class QgsGeometryValidationDock : public QgsDockWidget, public Ui_QgsGeometryVal
6769
QgsGeometryValidationService *mGeometryValidationService = nullptr;
6870
QButtonGroup *mZoomToButtonGroup = nullptr;
6971
QgsMapCanvas *mMapCanvas = nullptr;
72+
QgisApp *mApp = nullptr;
7073
QgsCoordinateTransform mLayerTransform;
7174
QModelIndex currentIndex() const;
7275
QgsRubberBand *mFeatureRubberband = nullptr;

0 commit comments

Comments
 (0)