Skip to content

Commit d46d765

Browse files
committedNov 5, 2018
Restore handle bad layers dialog original behavior
1 parent 8493636 commit d46d765

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed
 

‎src/app/qgshandlebadlayers.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "qgsproviderregistry.h"
2727
#include "qgsmessagebar.h"
2828
#include "qgssettings.h"
29+
#include "qgslayertreeregistrybridge.h"
2930

3031
#include <QDomDocument>
3132
#include <QDomElement>
@@ -347,13 +348,17 @@ void QgsHandleBadLayers::editAuthCfg()
347348

348349
void QgsHandleBadLayers::apply()
349350
{
351+
QgsProject::instance()->layerTreeRegistryBridge()->setEnabled( true );
352+
350353
QList<QgsMapLayer *> toRemove;
351354
for ( const auto &l : QgsProject::instance()->mapLayers( ) )
352355
{
353356
if ( ! l->isValid() )
354357
toRemove << l;
355358
}
359+
356360
QgsProject::instance()->removeMapLayers( toRemove );
361+
357362
for ( int i = 0; i < mLayerList->rowCount(); i++ )
358363
{
359364
int idx = mLayerList->item( i, 0 )->data( Qt::UserRole ).toInt();
@@ -372,11 +377,15 @@ void QgsHandleBadLayers::apply()
372377
item->setForeground( QBrush( Qt::red ) );
373378
}
374379
}
380+
QgsProject::instance()->layerTreeRegistryBridge()->setEnabled( false );
381+
382+
if ( mLayerList->rowCount() == 0 )
383+
accept();
384+
375385
}
376386

377387
void QgsHandleBadLayers::accept()
378388
{
379-
apply();
380389

381390
if ( mLayerList->rowCount() > 0 &&
382391
QMessageBox::warning( this,
@@ -395,6 +404,9 @@ void QgsHandleBadLayers::accept()
395404
if ( ! l->isValid() )
396405
toRemove << l;
397406
}
407+
QgsProject::instance()->layerTreeRegistryBridge()->setEnabled( true );
408+
QgsProject::instance()->removeMapLayers( toRemove );
409+
QgsProject::instance()->layerTreeRegistryBridge()->setEnabled( false );
398410
mLayerList->clear();
399411

400412
QDialog::accept();
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)
Please sign in to comment.