Skip to content

Commit f60ca59

Browse files
committed
Fix overview canvas background color not set (fix #11157)
1 parent 2021736 commit f60ca59

File tree

4 files changed

+27
-5
lines changed

4 files changed

+27
-5
lines changed

src/app/qgisapp.cpp

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -956,6 +956,7 @@ QgisApp::QgisApp()
956956
, mToolPopupOverviews( 0 )
957957
, mToolPopupDisplay( 0 )
958958
, mMapCanvas( 0 )
959+
, mOverviewCanvas( 0 )
959960
, mLayerTreeView( 0 )
960961
, mLayerTreeCanvasBridge( 0 )
961962
, mMapLayerOrder( 0 )
@@ -2463,25 +2464,33 @@ void QgisApp::createCanvasTools()
24632464
void QgisApp::createOverview()
24642465
{
24652466
// overview canvas
2466-
QgsMapOverviewCanvas* overviewCanvas = new QgsMapOverviewCanvas( NULL, mMapCanvas );
2467-
overviewCanvas->setWhatsThis( tr( "Map overview canvas. This canvas can be used to display a locator map that shows the current extent of the map canvas. The current extent is shown as a red rectangle. Any layer on the map can be added to the overview canvas." ) );
2467+
mOverviewCanvas = new QgsMapOverviewCanvas( NULL, mMapCanvas );
2468+
2469+
//set canvas color to default
2470+
QSettings settings;
2471+
int red = settings.value( "/qgis/default_canvas_color_red", 255 ).toInt();
2472+
int green = settings.value( "/qgis/default_canvas_color_green", 255 ).toInt();
2473+
int blue = settings.value( "/qgis/default_canvas_color_blue", 255 ).toInt();
2474+
mOverviewCanvas->setBackgroundColor( QColor( red, green, blue ) );
2475+
2476+
mOverviewCanvas->setWhatsThis( tr( "Map overview canvas. This canvas can be used to display a locator map that shows the current extent of the map canvas. The current extent is shown as a red rectangle. Any layer on the map can be added to the overview canvas." ) );
24682477

24692478
QBitmap overviewPanBmp = QBitmap::fromData( QSize( 16, 16 ), pan_bits );
24702479
QBitmap overviewPanBmpMask = QBitmap::fromData( QSize( 16, 16 ), pan_mask_bits );
24712480
mOverviewMapCursor = new QCursor( overviewPanBmp, overviewPanBmpMask, 0, 0 ); //set upper left corner as hot spot - this is better when extent marker is small; hand won't cover the marker
2472-
overviewCanvas->setCursor( *mOverviewMapCursor );
2481+
mOverviewCanvas->setCursor( *mOverviewMapCursor );
24732482
// QVBoxLayout *myOverviewLayout = new QVBoxLayout;
24742483
// myOverviewLayout->addWidget(overviewCanvas);
24752484
// overviewFrame->setLayout(myOverviewLayout);
24762485
mOverviewDock = new QDockWidget( tr( "Overview Panel" ), this );
24772486
mOverviewDock->setObjectName( "Overview" );
24782487
mOverviewDock->setAllowedAreas( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea );
2479-
mOverviewDock->setWidget( overviewCanvas );
2488+
mOverviewDock->setWidget( mOverviewCanvas );
24802489
addDockWidget( Qt::LeftDockWidgetArea, mOverviewDock );
24812490
// add to the Panel submenu
24822491
mPanelMenu->addAction( mOverviewDock->toggleViewAction() );
24832492

2484-
mMapCanvas->enableOverviewMode( overviewCanvas );
2493+
mMapCanvas->enableOverviewMode( mOverviewCanvas );
24852494

24862495
// moved here to set anti aliasing to both map canvas and overview
24872496
QSettings mySettings;
@@ -3864,6 +3873,7 @@ void QgisApp::fileNew( bool thePromptToSaveFlag, bool forceBlank )
38643873
prj->writeEntry( "Gui", "/CanvasColorGreenPart", myGreen );
38653874
prj->writeEntry( "Gui", "/CanvasColorBluePart", myBlue );
38663875
mMapCanvas->setCanvasColor( QColor( myRed, myGreen, myBlue ) );
3876+
mOverviewCanvas->setBackgroundColor( QColor( myRed, myGreen, myBlue ) );
38673877

38683878
prj->dirty( false );
38693879

@@ -4251,6 +4261,8 @@ bool QgisApp::addProject( const QString& projectFile )
42514261
int myBlueInt = QgsProject::instance()->readNumEntry( "Gui", "/CanvasColorBluePart", 255 );
42524262
QColor myColor = QColor( myRedInt, myGreenInt, myBlueInt );
42534263
mMapCanvas->setCanvasColor( myColor ); //this is fill color before rendering starts
4264+
mOverviewCanvas->setBackgroundColor( myColor );
4265+
42544266
QgsDebugMsg( "Canvas background color restored..." );
42554267
myRedInt = QgsProject::instance()->readNumEntry( "Gui", "/SelectionColorRedPart", 255 );
42564268
myGreenInt = QgsProject::instance()->readNumEntry( "Gui", "/SelectionColorGreenPart", 255 );

src/app/qgisapp.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class QgsMapLayer;
5656
class QgsMapTip;
5757
class QgsMapTool;
5858
class QgsMapToolAdvancedDigitizing;
59+
class QgsMapOverviewCanvas;
5960
class QgsPluginLayer;
6061
class QgsPoint;
6162
class QgsProviderRegistry;
@@ -450,6 +451,9 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
450451
//! return CAD dock widget
451452
QgsAdvancedDigitizingDockWidget *cadDockWidget() { return mAdvancedDigitizingDockWidget; }
452453

454+
//! Returns map overview canvas
455+
QgsMapOverviewCanvas* mapOverviewCanvas() { return mOverviewCanvas; }
456+
453457
//! show layer properties
454458
void showLayerProperties( QgsMapLayer *ml );
455459

@@ -1576,6 +1580,8 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
15761580
QMenu *mToolPopupDisplay;
15771581
//! Map canvas
15781582
QgsMapCanvas *mMapCanvas;
1583+
//! Overview map canvas
1584+
QgsMapOverviewCanvas *mOverviewCanvas;
15791585
//! Table of contents (legend) for the map
15801586
QgsLayerTreeView *mLayerTreeView;
15811587
//! Helper class that connects layer tree with map canvas

src/app/qgsprojectproperties.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
#include "qgssymbollayerv2utils.h"
5050
#include "qgscolordialog.h"
5151
#include "qgsexpressioncontext.h"
52+
#include "qgsmapoverviewcanvas.h"
5253

5354
//qt includes
5455
#include <QInputDialog>
@@ -683,6 +684,8 @@ void QgsProjectProperties::apply()
683684
QgsProject::instance()->writeEntry( "Gui", "/CanvasColorGreenPart", myColor.green() );
684685
QgsProject::instance()->writeEntry( "Gui", "/CanvasColorBluePart", myColor.blue() );
685686
mMapCanvas->setCanvasColor( myColor );
687+
QgisApp::instance()->mapOverviewCanvas()->setBackgroundColor( myColor );
688+
QgisApp::instance()->mapOverviewCanvas()->refresh();
686689

687690
//save project scales
688691
QStringList myScales;

src/gui/qgsmapoverviewcanvas.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ QgsMapOverviewCanvas::QgsMapOverviewCanvas( QWidget * parent, QgsMapCanvas* mapC
7474
, mMapCanvas( mapCanvas )
7575
, mJob( 0 )
7676
{
77+
setAutoFillBackground( true );
7778
setObjectName( "theOverviewCanvas" );
7879
mPanningWidget = new QgsPanningWidget( this );
7980

0 commit comments

Comments
 (0)