Skip to content

Commit 07a3f62

Browse files
author
mhugent
committed
Fix restoring selection color from project and allow alpha values for selection color
git-svn-id: http://svn.osgeo.org/qgis/trunk@14710 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent d1bb517 commit 07a3f62

File tree

3 files changed

+35
-8
lines changed

3 files changed

+35
-8
lines changed

src/app/qgisapp.cpp

+15-2
Original file line numberDiff line numberDiff line change
@@ -3163,10 +3163,12 @@ void QgisApp::fileNew( bool thePromptToSaveFlag )
31633163
int myRed = settings.value( "/qgis/default_selection_color_red", 255 ).toInt();
31643164
int myGreen = settings.value( "/qgis/default_selection_color_green", 255 ).toInt();
31653165
int myBlue = settings.value( "/qgis/default_selection_color_blue", 0 ).toInt();
3166+
int myAlpha = settings.value( "/qgis/default_selection_color_alpha", 255 ).toInt();
31663167
prj->writeEntry( "Gui", "/SelectionColorRedPart", myRed );
31673168
prj->writeEntry( "Gui", "/SelectionColorGreenPart", myGreen );
31683169
prj->writeEntry( "Gui", "/SelectionColorBluePart", myBlue );
3169-
QgsRenderer::setSelectionColor( QColor( myRed, myGreen, myBlue ) );
3170+
prj->writeEntry( "Gui", "/SelectionColorAlphaPart", myAlpha );
3171+
QgsRenderer::setSelectionColor( QColor( myRed, myGreen, myBlue, myAlpha ) );
31703172

31713173
//set the canvas to the default background color
31723174
//the default can be set in qgisoptions
@@ -3429,6 +3431,18 @@ bool QgisApp::addProject( QString projectFile )
34293431
mMapCanvas->setCanvasColor( myColor ); //this is fill color before rendering starts
34303432
QgsDebugMsg( "Canvas background color restored..." );
34313433

3434+
//set the color for selections
3435+
QSettings settings;
3436+
int defaultRed = settings.value( "/qgis/default_selection_color_red", 255 ).toInt();
3437+
int defaultGreen = settings.value( "/qgis/default_selection_color_green", 255 ).toInt();
3438+
int defaultBlue = settings.value( "/qgis/default_selection_color_blue", 0 ).toInt();
3439+
int defaultAlpha = settings.value( "/qgis/default_selection_color_alpha", 255 ).toInt();
3440+
int myRed = QgsProject::instance()->readNumEntry( "Gui", "/SelectionColorRedPart", defaultRed );
3441+
int myGreen = QgsProject::instance()->readNumEntry( "Gui", "/SelectionColorGreenPart", defaultGreen );
3442+
int myBlue = QgsProject::instance()->readNumEntry( "Gui", "/SelectionColorGreenPart", defaultBlue );
3443+
int myAlpha = QgsProject::instance()->readNumEntry( "Gui", "/SelectionColorAlphaPart", defaultAlpha );
3444+
QgsRenderer::setSelectionColor( QColor( myRed, myGreen, myBlue, myAlpha ) );
3445+
34323446
mMapCanvas->updateScale();
34333447
QgsDebugMsg( "Scale restored..." );
34343448

@@ -3437,7 +3451,6 @@ bool QgisApp::addProject( QString projectFile )
34373451
// specific plug-in state
34383452

34393453
// add this to the list of recently used project files
3440-
QSettings settings;
34413454
saveRecentProjectPath( projectFile, settings );
34423455

34433456
QApplication::restoreOverrideCursor();

src/app/qgsoptions.cpp

+9-2
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,8 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WFlags fl ) :
258258
int myRed = settings.value( "/qgis/default_selection_color_red", 255 ).toInt();
259259
int myGreen = settings.value( "/qgis/default_selection_color_green", 255 ).toInt();
260260
int myBlue = settings.value( "/qgis/default_selection_color_blue", 0 ).toInt();
261-
pbnSelectionColor->setColor( QColor( myRed, myGreen, myBlue ) );
261+
int myAlpha = settings.value( "/qgis/default_selection_color_alpha", 255 ).toInt();
262+
pbnSelectionColor->setColor( QColor( myRed, myGreen, myBlue, myAlpha ) );
262263

263264
//set the default color for canvas background
264265
myRed = settings.value( "/qgis/default_canvas_color_red", 255 ).toInt();
@@ -403,7 +404,12 @@ QgsOptions::~QgsOptions()
403404

404405
void QgsOptions::on_pbnSelectionColor_clicked()
405406
{
406-
QColor color = QColorDialog::getColor( pbnSelectionColor->color(), this );
407+
#if QT_VERSION >= 0x040500
408+
QColor color = QColorDialog::getColor( pbnSelectionColor->color(), 0, tr( "Selection color" ), QColorDialog::ShowAlphaChannel );
409+
#else
410+
QColor color = QColorDialog::getColor( pbnSelectionColor->color() );
411+
#endif
412+
407413
if ( color.isValid() )
408414
{
409415
pbnSelectionColor->setColor( color );
@@ -612,6 +618,7 @@ void QgsOptions::saveOptions()
612618
settings.setValue( "/qgis/default_selection_color_red", myColor.red() );
613619
settings.setValue( "/qgis/default_selection_color_green", myColor.green() );
614620
settings.setValue( "/qgis/default_selection_color_blue", myColor.blue() );
621+
settings.setValue( "/qgis/default_selection_color_alpha", myColor.alpha() );
615622

616623
//set the default color for canvas background
617624
myColor = pbnCanvasColor->color();

src/app/qgsprojectproperties.cpp

+11-4
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas* mapCanvas, QWidget *pa
7979
if ( automaticPrecision )
8080
{
8181
radAutomatic->setChecked( true );
82-
spinBoxDP->setDisabled( true );
83-
labelDP->setDisabled( true );
82+
spinBoxDP->setDisabled( true );
83+
labelDP->setDisabled( true );
8484
}
8585
else
8686
{
@@ -96,7 +96,8 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas* mapCanvas, QWidget *pa
9696
int myRedInt = QgsProject::instance()->readNumEntry( "Gui", "/SelectionColorRedPart", 255 );
9797
int myGreenInt = QgsProject::instance()->readNumEntry( "Gui", "/SelectionColorGreenPart", 255 );
9898
int myBlueInt = QgsProject::instance()->readNumEntry( "Gui", "/SelectionColorBluePart", 0 );
99-
QColor myColor = QColor( myRedInt, myGreenInt, myBlueInt );
99+
int myAlphaInt = QgsProject::instance()->readNumEntry( "Gui", "/SelectionColorAlphaPart", 255 );
100+
QColor myColor = QColor( myRedInt, myGreenInt, myBlueInt, myAlphaInt );
100101
pbnSelectionColor->setColor( myColor );
101102

102103
//get the color for map canvas background and set button color accordingly (default white)
@@ -315,6 +316,7 @@ void QgsProjectProperties::apply()
315316
QgsProject::instance()->writeEntry( "Gui", "/SelectionColorRedPart", myColor.red() );
316317
QgsProject::instance()->writeEntry( "Gui", "/SelectionColorGreenPart", myColor.green() );
317318
QgsProject::instance()->writeEntry( "Gui", "/SelectionColorBluePart", myColor.blue() );
319+
QgsProject::instance()->writeEntry( "Gui", "/SelectionColorAlphaPart", myColor.alpha() );
318320
QgsRenderer::setSelectionColor( myColor );
319321

320322
//set the color for canvas
@@ -366,7 +368,12 @@ void QgsProjectProperties::showProjectionsTab()
366368

367369
void QgsProjectProperties::on_pbnSelectionColor_clicked()
368370
{
369-
QColor color = QColorDialog::getColor( pbnSelectionColor->color(), this );
371+
#if QT_VERSION >= 0x040500
372+
QColor color = QColorDialog::getColor( pbnSelectionColor->color(), 0, tr( "Selection color" ), QColorDialog::ShowAlphaChannel );
373+
#else
374+
QColor color = QColorDialog::getColor( pbnSelectionColor->color() );
375+
#endif
376+
370377
if ( color.isValid() )
371378
{
372379
pbnSelectionColor->setColor( color );

0 commit comments

Comments
 (0)