@@ -72,7 +72,7 @@ QgsGpsInformationWidget::QgsGpsInformationWidget( QgsMapCanvas *thepCanvas, QWid
72
72
{
73
73
setupUi ( this );
74
74
connect ( mConnectButton , &QPushButton::toggled, this , &QgsGpsInformationWidget::mConnectButton_toggled );
75
- connect ( mBtnTrackColor , &QPushButton::clicked , this , &QgsGpsInformationWidget::mBtnTrackColor_clicked );
75
+ connect ( mBtnTrackColor , &QgsColorButton::colorChanged , this , &QgsGpsInformationWidget::trackColorChanged );
76
76
connect ( mSpinTrackWidth , static_cast < void ( QSpinBox::* )( int ) > ( &QSpinBox::valueChanged ), this , &QgsGpsInformationWidget::mSpinTrackWidth_valueChanged );
77
77
connect ( mBtnPosition , &QToolButton::clicked, this , &QgsGpsInformationWidget::mBtnPosition_clicked );
78
78
connect ( mBtnSignal , &QToolButton::clicked, this , &QgsGpsInformationWidget::mBtnSignal_clicked );
@@ -187,12 +187,14 @@ QgsGpsInformationWidget::QgsGpsInformationWidget( QgsMapCanvas *thepCanvas, QWid
187
187
#endif
188
188
mpPlot->replot ();
189
189
190
+ mBtnTrackColor ->setAllowOpacity ( true );
191
+ mBtnTrackColor ->setColorDialogTitle ( tr (" Track Color" ) );
190
192
// Restore state
191
193
QgsSettings mySettings;
192
194
mGroupShowMarker ->setChecked ( mySettings.value ( QStringLiteral ( " gps/showMarker" ), " true" ).toBool () );
193
195
mSliderMarkerSize ->setValue ( mySettings.value ( QStringLiteral ( " gps/markerSize" ), " 12" ).toInt () );
194
196
mSpinTrackWidth ->setValue ( mySettings.value ( QStringLiteral ( " gps/trackWidth" ), " 2" ).toInt () );
195
- mTrackColor = mySettings.value ( QStringLiteral ( " gps/trackColor" ), QColor ( Qt::red ) ).value <QColor>();
197
+ mBtnTrackColor -> setColor ( mySettings.value ( QStringLiteral ( " gps/trackColor" ), QColor ( Qt::red ) ).value <QColor>() );
196
198
QString myPortMode = mySettings.value ( QStringLiteral ( " gps/portMode" ), " scanPorts" ).toString ();
197
199
198
200
mSpinMapExtentMultiplier ->setValue ( mySettings.value ( QStringLiteral ( " gps/mapExtentMultiplier" ), " 50" ).toInt () );
@@ -311,7 +313,7 @@ QgsGpsInformationWidget::~QgsGpsInformationWidget()
311
313
QgsSettings mySettings;
312
314
mySettings.setValue ( QStringLiteral ( " gps/lastPort" ), mCboDevices ->currentData ().toString () );
313
315
mySettings.setValue ( QStringLiteral ( " gps/trackWidth" ), mSpinTrackWidth ->value () );
314
- mySettings.setValue ( QStringLiteral ( " gps/trackColor" ), mTrackColor );
316
+ mySettings.setValue ( QStringLiteral ( " gps/trackColor" ), mBtnTrackColor -> color () );
315
317
mySettings.setValue ( QStringLiteral ( " gps/markerSize" ), mSliderMarkerSize ->value () );
316
318
mySettings.setValue ( QStringLiteral ( " gps/showMarker" ), mGroupShowMarker ->isChecked () );
317
319
mySettings.setValue ( QStringLiteral ( " gps/autoAddVertices" ), mCbxAutoAddVertices ->isChecked () );
@@ -364,18 +366,18 @@ void QgsGpsInformationWidget::mSpinTrackWidth_valueChanged( int value )
364
366
if ( mpRubberBand )
365
367
{
366
368
mpRubberBand->setWidth ( value );
369
+ mpRubberBand->update ();
367
370
}
368
371
}
369
372
370
- void QgsGpsInformationWidget::mBtnTrackColor_clicked ( )
373
+ void QgsGpsInformationWidget::trackColorChanged ( const QColor& color )
371
374
{
372
- QColor myColor = QColorDialog::getColor ( mTrackColor , this );
373
- if ( myColor.isValid () ) // check that a color was picked
375
+ if ( color.isValid () ) // check that a color was picked
374
376
{
375
- mTrackColor = myColor;
376
377
if ( mpRubberBand )
377
378
{
378
- mpRubberBand->setColor ( myColor );
379
+ mpRubberBand->setColor ( color );
380
+ mpRubberBand->update ();
379
381
}
380
382
}
381
383
}
@@ -1096,7 +1098,7 @@ void QgsGpsInformationWidget::createRubberBand()
1096
1098
delete mpRubberBand;
1097
1099
}
1098
1100
mpRubberBand = new QgsRubberBand ( mpCanvas, QgsWkbTypes::LineGeometry );
1099
- mpRubberBand->setColor ( mTrackColor );
1101
+ mpRubberBand->setColor ( mBtnTrackColor -> color () );
1100
1102
mpRubberBand->setWidth ( mSpinTrackWidth ->value () );
1101
1103
mpRubberBand->show ();
1102
1104
}
0 commit comments