@@ -515,20 +515,6 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, QWidget * parent,
515
515
legendLayerSelectionChanged ();
516
516
activateDeactivateLayerRelatedActions ( NULL );
517
517
518
- // create the notification widget for macros
519
- mMacrosWarn = QgsMessageBar::createMessage ( tr ( " Security warning:" ),
520
- tr ( " macros have been disabled." ),
521
- QgsApplication::getThemeIcon ( " /mIconWarn.png" ),
522
- mInfoBar );
523
-
524
- QToolButton *btnEnableMacros = new QToolButton ( mMacrosWarn );
525
- btnEnableMacros->setText ( tr ( " Enable" ) );
526
- btnEnableMacros->setStyleSheet ( " background-color: rgba(255, 255, 255, 0); color: black; text-decoration: underline;" );
527
- btnEnableMacros->setCursor ( Qt::PointingHandCursor );
528
- connect ( btnEnableMacros, SIGNAL ( clicked () ), mInfoBar , SLOT ( popWidget () ) );
529
- connect ( btnEnableMacros, SIGNAL ( clicked () ), this , SLOT ( enableProjectMacros () ) );
530
- mMacrosWarn ->layout ()->addWidget ( btnEnableMacros );
531
-
532
518
addDockWidget ( Qt::LeftDockWidgetArea, mUndoWidget );
533
519
mUndoWidget ->hide ();
534
520
@@ -3368,8 +3354,24 @@ bool QgisApp::addProject( QString projectFile )
3368
3354
}
3369
3355
else if ( enableMacros == 1 ) // ask
3370
3356
{
3357
+ // create the notification widget for macros
3358
+
3359
+ QWidget *macroMsg = QgsMessageBar::createMessage ( tr ( " Security warning:" ),
3360
+ tr ( " project macros have been disabled." ),
3361
+ QgsApplication::getThemeIcon ( " /mIconWarn.png" ),
3362
+ mInfoBar );
3363
+
3364
+ QToolButton *btnEnableMacros = new QToolButton ( macroMsg );
3365
+ btnEnableMacros->setText ( tr ( " Enable macros" ) );
3366
+ btnEnableMacros->setStyleSheet ( " background-color: rgba(255, 255, 255, 0); color: black; text-decoration: underline;" );
3367
+ btnEnableMacros->setCursor ( Qt::PointingHandCursor );
3368
+ btnEnableMacros->setSizePolicy ( QSizePolicy::Maximum, QSizePolicy::Preferred );
3369
+ connect ( btnEnableMacros, SIGNAL ( clicked () ), mInfoBar , SLOT ( popWidget () ) );
3370
+ connect ( btnEnableMacros, SIGNAL ( clicked () ), this , SLOT ( enableProjectMacros () ) );
3371
+ macroMsg->layout ()->addWidget ( btnEnableMacros );
3372
+
3371
3373
// display the macros notification widget
3372
- mInfoBar ->pushWidget ( mMacrosWarn , 1 );
3374
+ mInfoBar ->pushWidget ( macroMsg , 1 );
3373
3375
}
3374
3376
}
3375
3377
}
@@ -5386,6 +5388,7 @@ void QgisApp::duplicateLayers( QList<QgsMapLayer *> lyrList )
5386
5388
mMapCanvas ->freeze ();
5387
5389
QgsMapLayer *dupLayer;
5388
5390
QString layerDupName, unSppType;
5391
+ QList<QWidget *> msgBars;
5389
5392
5390
5393
foreach ( QgsMapLayer * selectedLyr, selectedLyrs )
5391
5394
{
@@ -5437,19 +5440,23 @@ void QgisApp::duplicateLayers( QList<QgsMapLayer *> lyrList )
5437
5440
5438
5441
if ( unSppType.isEmpty () && dupLayer && !dupLayer->isValid () )
5439
5442
{
5440
- QMessageBox::information ( this ,
5441
- tr ( " Invalid Layer" ),
5442
- tr ( " %1\n\n Duplication resulted in invalid layer." ).arg ( selectedLyr->name () ) );
5443
+ msgBars.append ( QgsMessageBar::createMessage (
5444
+ tr ( " Duplicate layer: " ),
5445
+ tr ( " %1 (duplication resulted in invalid layer)" ).arg ( selectedLyr->name () ) ,
5446
+ QgsApplication::getThemeIcon ( " /mIconWarn.png" ),
5447
+ mInfoBar ) );
5443
5448
continue ;
5444
5449
}
5445
5450
5446
5451
if ( !unSppType.isEmpty () || !dupLayer )
5447
5452
{
5448
- QMessageBox::information ( this ,
5449
- tr ( " Unsupported Layer" ),
5450
- tr ( " %1\n %2\n\n Duplication of layer type is unsupported." )
5451
- .arg ( selectedLyr->name () )
5452
- .arg ( !unSppType.isEmpty () ? QString ( " (" ) + unSppType + QString ( " )" ) : " " ) );
5453
+ msgBars.append ( QgsMessageBar::createMessage (
5454
+ tr ( " Duplicate layer: " ),
5455
+ tr ( " %1 (%2type unsupported)" )
5456
+ .arg ( selectedLyr->name () )
5457
+ .arg ( !unSppType.isEmpty () ? QString ( " '" ) + unSppType + " ' " : " " ),
5458
+ QgsApplication::getThemeIcon ( " /mIconWarn.png" ),
5459
+ mInfoBar ) );
5453
5460
continue ;
5454
5461
}
5455
5462
@@ -5478,6 +5485,13 @@ void QgisApp::duplicateLayers( QList<QgsMapLayer *> lyrList )
5478
5485
qApp->processEvents ();
5479
5486
5480
5487
mMapCanvas ->freeze ( false );
5488
+
5489
+ // display errors in message bar after duplication of layers
5490
+ foreach ( QWidget * msgBar, msgBars )
5491
+ {
5492
+ mInfoBar ->pushWidget ( msgBar, 1 );
5493
+ }
5494
+
5481
5495
}
5482
5496
5483
5497
void QgisApp::setLayerCRS ()
@@ -6096,8 +6110,8 @@ void QgisApp::closeProject()
6096
6110
QgsPythonRunner::run ( " qgis.utils.unloadProjectMacros();" );
6097
6111
}
6098
6112
6099
- // remove the warning message from the bar if present
6100
- mInfoBar ->popWidget ( mMacrosWarn );
6113
+ // remove any message widgets from the message bar
6114
+ mInfoBar ->clearWidgets ( );
6101
6115
6102
6116
mTrustedMacros = false ;
6103
6117
0 commit comments