Skip to content

Commit

Permalink
[settings] migrate QgsGpsDetector settings
Browse files Browse the repository at this point in the history
  • Loading branch information
3nids committed Jan 25, 2023
1 parent c513bad commit 56c388b
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 5 deletions.
3 changes: 3 additions & 0 deletions python/core/auto_generated/gps/qgsgpsdetector.sip.in
Expand Up @@ -11,6 +11,7 @@




class QgsGpsDetector : QObject
{
%Docstring(signature="appended")
Expand All @@ -22,6 +23,8 @@ Class to detect the GPS port
%End
public:
QgsGpsDetector( const QString &portName );


~QgsGpsDetector();

static QList< QPair<QString, QString> > availablePorts();
Expand Down
17 changes: 13 additions & 4 deletions src/core/gps/qgsgpsdetector.cpp
Expand Up @@ -21,6 +21,15 @@
#include "qgsnmeaconnection.h"
#include "qgsgpsdconnection.h"
#include "qgssettings.h"
#include "qgssettingsentryenumflag.h"


const QgsSettingsEntryEnumFlag<QSerialPort::FlowControl> *QgsGpsDetector::settingsGpsFlowControl = new QgsSettingsEntryEnumFlag<QSerialPort::FlowControl>( QStringLiteral( "flow-control" ), QgsSettings::sTreeGps, QSerialPort::NoFlowControl );
const QgsSettingsEntryEnumFlag<QSerialPort::StopBits> *QgsGpsDetector::settingsGpsStopBits = new QgsSettingsEntryEnumFlag<QSerialPort::StopBits>( QStringLiteral( "stop-bits" ), QgsSettings::sTreeGps, QSerialPort::OneStop );
const QgsSettingsEntryEnumFlag<QSerialPort::DataBits> *QgsGpsDetector::settingsGpsDataBits = new QgsSettingsEntryEnumFlag<QSerialPort::DataBits>( QStringLiteral( "data-bits" ), QgsSettings::sTreeGps, QSerialPort::Data8 );
const QgsSettingsEntryEnumFlag<QSerialPort::Parity> *QgsGpsDetector::settingsGpsParity = new QgsSettingsEntryEnumFlag<QSerialPort::Parity>( QStringLiteral( "parity" ), QgsSettings::sTreeGps, QSerialPort::NoParity );



#if defined(QT_POSITIONING_LIB)
#include "qgsqtlocationconnection.h"
Expand Down Expand Up @@ -123,10 +132,10 @@ void QgsGpsDetector::advance()

serial->setBaudRate( mBaudList[ mBaudIndex ] );

serial->setFlowControl( settings.enumValue( QStringLiteral( "gps/flow_control" ), QSerialPort::NoFlowControl, QgsSettings::Core ) );
serial->setParity( settings.enumValue( QStringLiteral( "gps/parity" ), QSerialPort::NoParity, QgsSettings::Core ) );
serial->setDataBits( settings.enumValue( QStringLiteral( "gps/data_bits" ), QSerialPort::Data8, QgsSettings::Core ) );
serial->setStopBits( settings.enumValue( QStringLiteral( "gps/stop_bits" ), QSerialPort::OneStop, QgsSettings::Core ) );
serial->setFlowControl( QgsGpsDetector::settingsGpsFlowControl->value() );
serial->setParity( QgsGpsDetector::settingsGpsParity->value() );
serial->setDataBits( QgsGpsDetector::settingsGpsDataBits->value() );
serial->setStopBits( QgsGpsDetector::settingsGpsStopBits->value() );

if ( serial->open( QIODevice::ReadOnly ) )
{
Expand Down
13 changes: 13 additions & 0 deletions src/core/gps/qgsgpsdetector.h
Expand Up @@ -21,9 +21,16 @@
#include <QObject>
#include <QList>
#include <QPair>
#include <QSerialPort>
#include <memory>

#include "qgis_core.h"
#include "qgis_sip.h"

#ifndef SIP_RUN
template<class T>
class QgsSettingsEntryEnumFlag;
#endif

class QgsGpsConnection;
class QgsGpsInformation;
Expand All @@ -37,6 +44,12 @@ class CORE_EXPORT QgsGpsDetector : public QObject
Q_OBJECT
public:
QgsGpsDetector( const QString &portName );

static const QgsSettingsEntryEnumFlag<QSerialPort::StopBits> *settingsGpsStopBits SIP_SKIP;
static const QgsSettingsEntryEnumFlag<QSerialPort::DataBits> *settingsGpsDataBits SIP_SKIP;
static const QgsSettingsEntryEnumFlag<QSerialPort::Parity> *settingsGpsParity SIP_SKIP;
static const QgsSettingsEntryEnumFlag<QSerialPort::FlowControl> *settingsGpsFlowControl SIP_SKIP;

~QgsGpsDetector() override;

static QList< QPair<QString, QString> > availablePorts();
Expand Down
11 changes: 10 additions & 1 deletion src/core/settings/qgssettingsregistrycore.cpp
Expand Up @@ -25,6 +25,7 @@
#include "qgsowsconnection.h"
#include "qgsprocessing.h"
#include "qgsvectortileconnection.h"
#include "qgsgpsdetector.h"


const QgsSettingsEntryEnumFlag<Qgis::SnappingMode> *QgsSettingsRegistryCore::settingsDigitizingDefaultSnapMode = new QgsSettingsEntryEnumFlag<Qgis::SnappingMode>( QStringLiteral( "default_snap_mode" ), QgsSettings::sTreeDigitizing, Qgis::SnappingMode::AllLayers );
Expand Down Expand Up @@ -129,6 +130,11 @@ void QgsSettingsRegistryCore::migrateOldSettings()

settingsLayerTreeShowFeatureCountForNewLayers->copyValueFromKey( QStringLiteral( "core/layer-tree/show_feature_count_for_new_layers" ) );

QgsGpsDetector::settingsGpsStopBits->copyValueFromKey( QStringLiteral( "core/gps/stop_bits" ) );
QgsGpsDetector::settingsGpsFlowControl->copyValueFromKey( QStringLiteral( "core/gps/flow_control" ) );
QgsGpsDetector::settingsGpsDataBits->copyValueFromKey( QStringLiteral( "core/gps/data_bits" ) );
QgsGpsDetector::settingsGpsParity->copyValueFromKey( QStringLiteral( "core/gps/parity" ) );

// locator filters - added in 3.30
{
QgsSettings settings;
Expand Down Expand Up @@ -265,7 +271,10 @@ void QgsSettingsRegistryCore::backwardCompatibility()

settingsLayerTreeShowFeatureCountForNewLayers->copyValueToKey( QStringLiteral( "core/layer-tree/show_feature_count_for_new_layers" ) );


QgsGpsDetector::settingsGpsStopBits->copyValueToKey( QStringLiteral( "core/gps/stop_bits" ) );
QgsGpsDetector::settingsGpsFlowControl->copyValueToKey( QStringLiteral( "core/gps/flow_control" ) );
QgsGpsDetector::settingsGpsDataBits->copyValueToKey( QStringLiteral( "core/gps/data_bits" ) );
QgsGpsDetector::settingsGpsParity->copyValueToKey( QStringLiteral( "core/gps/parity" ) );

// locator filters - added in 3.30
{
Expand Down

0 comments on commit 56c388b

Please sign in to comment.