@@ -715,13 +715,49 @@ void QgsGpsInformationWidget::displayGPSInformation( const QgsGpsInformation &in
715
715
{
716
716
mTxtDateTime ->setText ( info.utcDateTime .toString ( mDateTimeFormat ) ); // user specified format string for testing the millisecond part of time
717
717
}
718
- mTxtSpeed ->setText ( tr ( " %1 km/h" ).arg ( info.speed , 0 , ' f' , 1 ) );
719
- mTxtDirection ->setText ( QString::number ( info.direction , ' f' , 1 ) + QStringLiteral ( " °" ) );
718
+ if ( std::isfinite ( info.speed ))
719
+ {
720
+ mTxtSpeed ->setEnabled ( true );
721
+ mTxtSpeed ->setText ( tr ( " %1 km/h" ).arg ( info.speed , 0 , ' f' , 1 ) );
722
+ }
723
+ else
724
+ {
725
+ mTxtSpeed ->setEnabled ( false );
726
+ mTxtSpeed ->setText ( tr ( " Not available" ) );
727
+ }
728
+ if ( std::isfinite ( info.direction ))
729
+ {
730
+ mTxtDirection ->setEnabled ( true );
731
+ mTxtDirection ->setText ( QString::number ( info.direction , ' f' , 1 ) + QStringLiteral ( " °" ) );
732
+ }
733
+ else
734
+ {
735
+ mTxtDirection ->setEnabled ( false );
736
+ mTxtDirection ->setText ( tr ( " Not available" ) );
737
+ }
720
738
mTxtHdop ->setText ( QString::number ( info.hdop , ' f' , 1 ) );
721
739
mTxtVdop ->setText ( QString::number ( info.vdop , ' f' , 1 ) );
722
740
mTxtPdop ->setText ( QString::number ( info.pdop , ' f' , 1 ) );
723
- mTxtHacc ->setText ( QString::number ( info.hacc , ' f' , 1 ) + " m" );
724
- mTxtVacc ->setText ( QString::number ( info.vacc , ' f' , 1 ) + " m" );
741
+ if ( std::isfinite ( info.hacc ))
742
+ {
743
+ mTxtHacc ->setEnabled ( true );
744
+ mTxtHacc ->setText ( QString::number ( info.hacc , ' f' , 1 ) + " m" );
745
+ }
746
+ else
747
+ {
748
+ mTxtHacc ->setEnabled ( false );
749
+ mTxtHacc ->setText ( tr ( " Not available" ) );
750
+ }
751
+ if ( std::isfinite ( info.vacc ))
752
+ {
753
+ mTxtVacc ->setEnabled ( true );
754
+ mTxtVacc ->setText ( QString::number ( info.vacc , ' f' , 1 ) + " m" );
755
+ }
756
+ else
757
+ {
758
+ mTxtVacc ->setEnabled ( false );
759
+ mTxtVacc ->setText ( tr ( " Not available" ) );
760
+ }
725
761
mTxtFixMode ->setText ( info.fixMode == ' A' ? tr ( " Automatic" ) : info.fixMode == ' M' ? tr ( " Manual" ) : QLatin1String ( " " ) ); // A=automatic 2d/3d, M=manual; allowing for anything else
726
762
mTxtFixType ->setText ( info.fixType == 3 ? tr ( " 3D" ) : info.fixType == 2 ? tr ( " 2D" ) : info.fixType == 1 ? tr ( " No fix" ) : QString::number ( info.fixType ) ); // 1=no fix, 2=2D, 3=3D; allowing for anything else
727
763
mTxtQuality ->setText ( info.quality == 2 ? tr ( " Differential" ) : info.quality == 1 ? tr ( " Non-differential" ) : info.quality == 0 ? tr ( " No position" ) : info.quality > 2 ? QString::number ( info.quality ) : QLatin1String ( " " ) ); // allowing for anything else
0 commit comments