Skip to content

Commit a012770

Browse files
committed
Use a proper color button, fix width widget in gps panel
1 parent 6f9c956 commit a012770

File tree

3 files changed

+58
-39
lines changed

3 files changed

+58
-39
lines changed

src/app/gps/qgsgpsinformationwidget.cpp

+11-9
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ QgsGpsInformationWidget::QgsGpsInformationWidget( QgsMapCanvas *thepCanvas, QWid
7272
{
7373
setupUi( this );
7474
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 );
7676
connect( mSpinTrackWidth, static_cast < void ( QSpinBox::* )( int ) > ( &QSpinBox::valueChanged ), this, &QgsGpsInformationWidget::mSpinTrackWidth_valueChanged );
7777
connect( mBtnPosition, &QToolButton::clicked, this, &QgsGpsInformationWidget::mBtnPosition_clicked );
7878
connect( mBtnSignal, &QToolButton::clicked, this, &QgsGpsInformationWidget::mBtnSignal_clicked );
@@ -187,12 +187,14 @@ QgsGpsInformationWidget::QgsGpsInformationWidget( QgsMapCanvas *thepCanvas, QWid
187187
#endif
188188
mpPlot->replot();
189189

190+
mBtnTrackColor->setAllowOpacity( true );
191+
mBtnTrackColor->setColorDialogTitle( tr("Track Color") );
190192
// Restore state
191193
QgsSettings mySettings;
192194
mGroupShowMarker->setChecked( mySettings.value( QStringLiteral( "gps/showMarker" ), "true" ).toBool() );
193195
mSliderMarkerSize->setValue( mySettings.value( QStringLiteral( "gps/markerSize" ), "12" ).toInt() );
194196
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>() );
196198
QString myPortMode = mySettings.value( QStringLiteral( "gps/portMode" ), "scanPorts" ).toString();
197199

198200
mSpinMapExtentMultiplier->setValue( mySettings.value( QStringLiteral( "gps/mapExtentMultiplier" ), "50" ).toInt() );
@@ -311,7 +313,7 @@ QgsGpsInformationWidget::~QgsGpsInformationWidget()
311313
QgsSettings mySettings;
312314
mySettings.setValue( QStringLiteral( "gps/lastPort" ), mCboDevices->currentData().toString() );
313315
mySettings.setValue( QStringLiteral( "gps/trackWidth" ), mSpinTrackWidth->value() );
314-
mySettings.setValue( QStringLiteral( "gps/trackColor" ), mTrackColor );
316+
mySettings.setValue( QStringLiteral( "gps/trackColor" ), mBtnTrackColor->color() );
315317
mySettings.setValue( QStringLiteral( "gps/markerSize" ), mSliderMarkerSize->value() );
316318
mySettings.setValue( QStringLiteral( "gps/showMarker" ), mGroupShowMarker->isChecked() );
317319
mySettings.setValue( QStringLiteral( "gps/autoAddVertices" ), mCbxAutoAddVertices->isChecked() );
@@ -364,18 +366,18 @@ void QgsGpsInformationWidget::mSpinTrackWidth_valueChanged( int value )
364366
if ( mpRubberBand )
365367
{
366368
mpRubberBand->setWidth( value );
369+
mpRubberBand->update();
367370
}
368371
}
369372

370-
void QgsGpsInformationWidget::mBtnTrackColor_clicked()
373+
void QgsGpsInformationWidget::trackColorChanged( const QColor& color )
371374
{
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
374376
{
375-
mTrackColor = myColor;
376377
if ( mpRubberBand )
377378
{
378-
mpRubberBand->setColor( myColor );
379+
mpRubberBand->setColor( color );
380+
mpRubberBand->update();
379381
}
380382
}
381383
}
@@ -1096,7 +1098,7 @@ void QgsGpsInformationWidget::createRubberBand()
10961098
delete mpRubberBand;
10971099
}
10981100
mpRubberBand = new QgsRubberBand( mpCanvas, QgsWkbTypes::LineGeometry );
1099-
mpRubberBand->setColor( mTrackColor );
1101+
mpRubberBand->setColor( mBtnTrackColor->color() );
11001102
mpRubberBand->setWidth( mSpinTrackWidth->value() );
11011103
mpRubberBand->show();
11021104
}

src/app/gps/qgsgpsinformationwidget.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class QgsGpsInformationWidget: public QWidget, private Ui::QgsGpsInformationWidg
5757
void updateCloseFeatureButton( QgsMapLayer *lyr );
5858
void layerEditStateChanged();
5959
// void setTrackColor(); // no longer used
60-
void mBtnTrackColor_clicked();
60+
void trackColorChanged( const QColor &color );
6161
void mSpinTrackWidth_valueChanged( int value );
6262
void mBtnPosition_clicked();
6363
void mBtnSignal_clicked();
@@ -112,7 +112,6 @@ class QgsGpsInformationWidget: public QWidget, private Ui::QgsGpsInformationWidg
112112
QgsVectorLayer *mpLastLayer = nullptr;
113113
QFile *mLogFile = nullptr;
114114
QTextStream mLogFileTextStream;
115-
QColor mTrackColor;
116115
QIntValidator *mAcquisitionIntValidator = nullptr;
117116
QIntValidator *mDistanceThresholdValidator = nullptr;
118117
nmeaPOS mLastNmeaPosition;

src/ui/qgsgpsinformationwidgetbase.ui

+46-28
Original file line numberDiff line numberDiff line change
@@ -1031,46 +1031,59 @@ gray = no data
10311031
<property name="title">
10321032
<string>Track</string>
10331033
</property>
1034-
<layout class="QVBoxLayout" name="verticalLayout">
1035-
<property name="spacing">
1036-
<number>2</number>
1037-
</property>
1034+
<layout class="QGridLayout" name="gridLayout_16" columnstretch="0,1">
10381035
<property name="topMargin">
10391036
<number>2</number>
10401037
</property>
10411038
<property name="bottomMargin">
10421039
<number>4</number>
10431040
</property>
1044-
<item>
1041+
<item row="1" column="0">
1042+
<widget class="QLabel" name="label_6">
1043+
<property name="text">
1044+
<string>Line width</string>
1045+
</property>
1046+
</widget>
1047+
</item>
1048+
<item row="1" column="1">
1049+
<widget class="QSpinBox" name="mSpinTrackWidth">
1050+
<property name="toolTip">
1051+
<string>Track width in pixels</string>
1052+
</property>
1053+
<property name="suffix">
1054+
<string> px</string>
1055+
</property>
1056+
</widget>
1057+
</item>
1058+
<item row="0" column="0" colspan="2">
10451059
<widget class="QCheckBox" name="mCbxAutoAddVertices">
10461060
<property name="text">
10471061
<string>Automatically add points</string>
10481062
</property>
10491063
</widget>
10501064
</item>
1051-
<item>
1052-
<layout class="QHBoxLayout" name="horizontalLayout_7">
1053-
<item>
1054-
<widget class="QSpinBox" name="mSpinTrackWidth">
1055-
<property name="toolTip">
1056-
<string>Track width in pixels</string>
1057-
</property>
1058-
<property name="suffix">
1059-
<string> width</string>
1060-
</property>
1061-
</widget>
1062-
</item>
1063-
<item>
1064-
<widget class="QPushButton" name="mBtnTrackColor">
1065-
<property name="styleSheet">
1066-
<string/>
1067-
</property>
1068-
<property name="text">
1069-
<string>Color</string>
1070-
</property>
1071-
</widget>
1072-
</item>
1073-
</layout>
1065+
<item row="2" column="0">
1066+
<widget class="QLabel" name="label_7">
1067+
<property name="text">
1068+
<string>Line color</string>
1069+
</property>
1070+
</widget>
1071+
</item>
1072+
<item row="2" column="1">
1073+
<widget class="QgsColorButton" name="mBtnTrackColor">
1074+
<property name="sizePolicy">
1075+
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
1076+
<horstretch>0</horstretch>
1077+
<verstretch>0</verstretch>
1078+
</sizepolicy>
1079+
</property>
1080+
<property name="styleSheet">
1081+
<string/>
1082+
</property>
1083+
<property name="text">
1084+
<string/>
1085+
</property>
1086+
</widget>
10741087
</item>
10751088
</layout>
10761089
</widget>
@@ -1301,6 +1314,11 @@ gray = no data
13011314
<header>qgscollapsiblegroupbox.h</header>
13021315
<container>1</container>
13031316
</customwidget>
1317+
<customwidget>
1318+
<class>QgsColorButton</class>
1319+
<extends>QToolButton</extends>
1320+
<header>qgscolorbutton.h</header>
1321+
</customwidget>
13041322
</customwidgets>
13051323
<tabstops>
13061324
<tabstop>mBtnCloseFeature</tabstop>

0 commit comments

Comments
 (0)