Skip to content

Commit

Permalink
migrate Babel Devices, OWS connections
Browse files Browse the repository at this point in the history
  • Loading branch information
3nids committed Jan 16, 2023
1 parent 44039d1 commit f4e4146
Show file tree
Hide file tree
Showing 13 changed files with 132 additions and 165 deletions.
8 changes: 4 additions & 4 deletions src/core/geocms/geonode/qgsgeonodeconnection.cpp
Expand Up @@ -24,18 +24,18 @@ const QString QgsGeoNodeConnectionUtils::sGeoNodeConnection = QStringLiteral( "G
QgsGeoNodeConnection::QgsGeoNodeConnection( const QString &name )
: mConnName( name )
{
mUri.setParam( QStringLiteral( "url" ), QgsOwsConnection::settingsConnectionUrl.value( {QgsGeoNodeConnectionUtils::sGeoNodeConnection.toLower(), mConnName} ) );
mUri.setParam( QStringLiteral( "url" ), QgsOwsConnection::settingsConnectionUrl->value( {QgsGeoNodeConnectionUtils::sGeoNodeConnection.toLower(), mConnName} ) );

// Check for credentials and prepend to the connection info
const QString username = QgsOwsConnection::settingsConnectionUsername.value( {QgsGeoNodeConnectionUtils::sGeoNodeConnection, mConnName} );
const QString password = QgsOwsConnection::settingsConnectionPassword.value( {QgsGeoNodeConnectionUtils::sGeoNodeConnection, mConnName} );
const QString username = QgsOwsConnection::settingsConnectionUsername->value( {QgsGeoNodeConnectionUtils::sGeoNodeConnection, mConnName} );
const QString password = QgsOwsConnection::settingsConnectionPassword->value( {QgsGeoNodeConnectionUtils::sGeoNodeConnection, mConnName} );
if ( !username.isEmpty() )
{
mUri.setUsername( username );
mUri.setPassword( password );
}

const QString authcfg = QgsOwsConnection::settingsConnectionAuthCfg.value( {QgsGeoNodeConnectionUtils::sGeoNodeConnection, mConnName} );
const QString authcfg = QgsOwsConnection::settingsConnectionAuthCfg->value( {QgsGeoNodeConnectionUtils::sGeoNodeConnection, mConnName} );
if ( !authcfg.isEmpty() )
{
mUri.setAuthConfigId( authcfg );
Expand Down
22 changes: 4 additions & 18 deletions src/core/gps/qgsbabelformatregistry.cpp
Expand Up @@ -264,28 +264,14 @@ void QgsBabelFormatRegistry::reloadFromSettings()
QStringLiteral( "%babel -t -i garmin -o gpx %in %out" ),
QStringLiteral( "%babel -t -i gpx -o garmin %in %out" ) );


bool useOldSettingPath = QgsBabelFormatRegistry::settingsBabelDeviceList.migrateFromKey( QStringLiteral( "Plugin-GPS/devicelist" ) );
QStringList deviceNames = QgsBabelFormatRegistry::settingsBabelDeviceList.value();

for ( const QString &device : std::as_const( deviceNames ) )
for ( const QString &device : sTreeBabelDevices->items() )
{
if ( useOldSettingPath )
{
settingsBabelWptDownload.migrateFromKey( QStringLiteral( "/Plugin-GPS/devices/%1/wptdownload" ), device );
settingsBabelWptUpload.migrateFromKey( QStringLiteral( "/Plugin-GPS/devices/%1/wptupload" ), device );
settingsBabelRteDownload.migrateFromKey( QStringLiteral( "/Plugin-GPS/devices/%1/rtedownload" ), device );
settingsBabelRteUpload.migrateFromKey( QStringLiteral( "/Plugin-GPS/devices/%1/rteupload" ), device );
settingsBabelTrkDownload.migrateFromKey( QStringLiteral( "/Plugin-GPS/devices/%1/trkdownload" ), device );
settingsBabelTrkUpload.migrateFromKey( QStringLiteral( "/Plugin-GPS/devices/%1/trkupload" ), device );
}

// don't leak memory if there's already a device with this name...
delete mDevices.value( device );

mDevices[device] = new QgsBabelGpsDeviceFormat( settingsBabelWptDownload.value( device ), settingsBabelWptUpload.value( device ),
settingsBabelRteDownload.value( device ), settingsBabelRteUpload.value( device ),
settingsBabelTrkDownload.value( device ), settingsBabelTrkUpload.value( device ) );
mDevices[device] = new QgsBabelGpsDeviceFormat( settingsBabelWptDownload->value( device ), settingsBabelWptUpload->value( device ),
settingsBabelRteDownload->value( device ), settingsBabelRteUpload->value( device ),
settingsBabelTrkDownload->value( device ), settingsBabelTrkUpload->value( device ) );
}
}

15 changes: 7 additions & 8 deletions src/core/gps/qgsbabelformatregistry.h
Expand Up @@ -38,16 +38,15 @@ class CORE_EXPORT QgsBabelFormatRegistry
public:

#ifndef SIP_RUN
static const inline QgsSettingsEntryStringList settingsBabelDeviceList = QgsSettingsEntryStringList( QStringLiteral( "babelDeviceList" ), QgsSettings::Prefix::GPS, QStringList() );

static const inline QgsSettingsEntryString settingsBabelWptDownload = QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/wptdownload" ), QgsSettings::Prefix::GPS );
static const inline QgsSettingsEntryString settingsBabelWptUpload = QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/wptupload" ), QgsSettings::Prefix::GPS );
static const inline QgsSettingsEntryString settingsBabelRteDownload = QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/rtedownload" ), QgsSettings::Prefix::GPS );
static const inline QgsSettingsEntryString settingsBabelRteUpload = QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/rteupload" ), QgsSettings::Prefix::GPS );
static const inline QgsSettingsEntryString settingsBabelTrkDownload = QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/trkdownload" ), QgsSettings::Prefix::GPS );
static const inline QgsSettingsEntryString settingsBabelTrkUpload = QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/trkupload" ), QgsSettings::Prefix::GPS );
static inline QgsSettingsTreeNamedListElement *sTreeBabelDevices = QgsSettings::sTreeGps->createNamedListElement( QStringLiteral( "babelDevices" ) );

static const inline QgsSettingsEntryGroup settingsBabelDeviceGroup = QgsSettingsEntryGroup( {&settingsBabelWptDownload, &settingsBabelWptUpload, &settingsBabelRteDownload, &settingsBabelRteUpload, &settingsBabelTrkDownload, &settingsBabelTrkUpload } );
static inline QgsSettingsEntryString *settingsBabelWptDownload = new QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/wptdownload" ), sTreeBabelDevices );
static inline QgsSettingsEntryString *settingsBabelWptUpload = new QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/wptupload" ), sTreeBabelDevices );
static inline QgsSettingsEntryString *settingsBabelRteDownload = new QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/rtedownload" ), sTreeBabelDevices );
static inline QgsSettingsEntryString *settingsBabelRteUpload = new QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/rteupload" ), sTreeBabelDevices );
static inline QgsSettingsEntryString *settingsBabelTrkDownload = new QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/trkdownload" ), sTreeBabelDevices );
static inline QgsSettingsEntryString *settingsBabelTrkUpload = new QgsSettingsEntryString( QStringLiteral( "babelDevices/%1/trkupload" ), sTreeBabelDevices );
#endif

/**
Expand Down
2 changes: 1 addition & 1 deletion src/core/network/qgsnewsfeedparser.cpp
Expand Up @@ -47,7 +47,7 @@ QgsNewsFeedParser::QgsNewsFeedParser( const QUrl &feedUrl, const QString &authcf
QString feedLanguage = settingsFeedLanguage.value( mSettingsKey );
if ( feedLanguage.isEmpty() )
{
feedLanguage = QgsApplication::settingsLocaleUserLocale.valueWithDefaultOverride( QStringLiteral( "en" ) );
feedLanguage = QgsApplication::settingsLocaleUserLocale->valueWithDefaultOverride( QStringLiteral( "en" ) );
}
if ( !feedLanguage.isEmpty() && feedLanguage != QLatin1String( "C" ) )
query.addQueryItem( QStringLiteral( "lang" ), feedLanguage.mid( 0, 2 ) );
Expand Down
2 changes: 1 addition & 1 deletion src/core/project/qgsproject.cpp
Expand Up @@ -1615,7 +1615,7 @@ bool QgsProject::readProjectFile( const QString &filename, Qgis::ProjectReadFlag
QgsApplication::profiler()->clear( QStringLiteral( "projectload" ) );
QgsScopedRuntimeProfile profile( tr( "Setting up translations" ), QStringLiteral( "projectload" ) );

const QString localeFileName = QStringLiteral( "%1_%2" ).arg( QFileInfo( projectFile.fileName() ).baseName(), QgsApplication::settingsLocaleUserLocale.value() );
const QString localeFileName = QStringLiteral( "%1_%2" ).arg( QFileInfo( projectFile.fileName() ).baseName(), QgsApplication::settingsLocaleUserLocale->value() );

if ( QFile( QStringLiteral( "%1/%2.qm" ).arg( QFileInfo( projectFile.fileName() ).absolutePath(), localeFileName ) ).exists() )
{
Expand Down
43 changes: 19 additions & 24 deletions src/core/qgsowsconnection.cpp
Expand Up @@ -22,8 +22,6 @@
#include "qgis.h" // GEO_EPSG_CRS_ID
#include "qgsdatasourceuri.h"
#include "qgslogger.h"
#include "qgsproject.h"
#include "qgsproviderregistry.h"
#include "qgsowsconnection.h"
#include "qgssettings.h"
#include "qgshttpheaders.h"
Expand All @@ -40,28 +38,28 @@ QgsOwsConnection::QgsOwsConnection( const QString &service, const QString &connN
{
QgsDebugMsgLevel( "theConnName = " + connName, 4 );

const QString url = settingsConnectionUrl.value( {mService.toLower(), mConnName} );
const QString url = settingsConnectionUrl->value( {mService.toLower(), mConnName} );
mConnectionInfo = url;
mUri.setParam( QStringLiteral( "url" ), url );

// Check for credentials and prepend to the connection info
const QString username = settingsConnectionUsername.value( {mService, mConnName} );
const QString password = settingsConnectionPassword.value( {mService, mConnName} );
const QString username = settingsConnectionUsername->value( {mService, mConnName} );
const QString password = settingsConnectionPassword->value( {mService, mConnName} );
if ( !username.isEmpty() )
{
// check for a password, if none prompt to get it
mUri.setUsername( username );
mUri.setPassword( password );
}

const QString authcfg = settingsConnectionAuthCfg.value( {mService, mConnName} );
const QString authcfg = settingsConnectionAuthCfg->value( {mService, mConnName} );
if ( !authcfg.isEmpty() )
{
mUri.setAuthConfigId( authcfg );
}
mConnectionInfo.append( ",authcfg=" + authcfg );

QgsHttpHeaders httpHeaders( QString( "%3/connections-%1/%2/" ).arg( mService.toLower(), mConnName, QgsSettings::Prefix::QGIS ) );
QgsHttpHeaders httpHeaders( settingsConnectionHeaders->value( {mService.toLower(), mConnName} ) );
mUri.setHttpHeaders( httpHeaders );
const QString referer = httpHeaders[QgsHttpHeaders::KEY_REFERER].toString();
if ( !referer.isEmpty() )
Expand Down Expand Up @@ -145,33 +143,31 @@ QgsDataSourceUri &QgsOwsConnection::addWmsWcsConnectionSettings( QgsDataSourceUr
{
addCommonConnectionSettings( uri, service, connName );

QString settingsKey = QString( "%3/connections-%1/%2/" ).arg( service.toLower(), connName, QgsSettings::Prefix::QGIS );
const QgsSettings settings;
uri.httpHeaders().setFromSettings( settings, settingsKey );
settingsConnectionHeaders->setValue( uri.httpHeaders().headers(), {service.toLower(), connName} );

if ( settingsConnectionIgnoreGetMapURI.value( {service.toLower(), connName} ) )
if ( settingsConnectionIgnoreGetMapURI->value( {service.toLower(), connName} ) )
{
uri.setParam( QStringLiteral( "IgnoreGetMapUrl" ), QStringLiteral( "1" ) );
}
if ( settingsConnectionIgnoreGetFeatureInfoURI.value( {service.toLower(), connName} ) )
if ( settingsConnectionIgnoreGetFeatureInfoURI->value( {service.toLower(), connName} ) )
{
uri.setParam( QStringLiteral( "IgnoreGetFeatureInfoUrl" ), QStringLiteral( "1" ) );
}
if ( settingsConnectionSmoothPixmapTransform.value( {service.toLower(), connName} ) )
if ( settingsConnectionSmoothPixmapTransform->value( {service.toLower(), connName} ) )
{
uri.setParam( QStringLiteral( "SmoothPixmapTransform" ), QStringLiteral( "1" ) );
}
if ( settingsConnectionReportedLayerExtents.value( {service.toLower(), connName} ) )
if ( settingsConnectionReportedLayerExtents->value( {service.toLower(), connName} ) )
{
uri.setParam( QStringLiteral( "IgnoreReportedLayerExtents" ), QStringLiteral( "1" ) );
}
if ( settingsConnectionDpiMode.exists( {service.toLower(), connName} ) )
if ( settingsConnectionDpiMode->exists( {service.toLower(), connName} ) )
{
uri.setParam( QStringLiteral( "dpiMode" ), QString::number( static_cast<int>( settingsConnectionDpiMode.value( {service.toLower(), connName} ) ) ) );
uri.setParam( QStringLiteral( "dpiMode" ), QString::number( static_cast<int>( settingsConnectionDpiMode->value( {service.toLower(), connName} ) ) ) );
}
if ( settingsConnectionTilePixelRatio.exists( {service.toLower(), connName} ) )
if ( settingsConnectionTilePixelRatio->exists( {service.toLower(), connName} ) )
{
uri.setParam( QStringLiteral( "tilePixelRatio" ), QString::number( static_cast<int>( settingsConnectionTilePixelRatio.value( {service.toLower(), connName} ) ) ) );
uri.setParam( QStringLiteral( "tilePixelRatio" ), QString::number( static_cast<int>( settingsConnectionTilePixelRatio->value( {service.toLower(), connName} ) ) ) );
}

return uri;
Expand Down Expand Up @@ -203,13 +199,13 @@ QgsDataSourceUri &QgsOwsConnection::addWfsConnectionSettings( QgsDataSourceUri &
{
addCommonConnectionSettings( uri, service, connName );

const QString version = settingsConnectionVersion.value( {service.toLower(), connName} );
const QString version = settingsConnectionVersion->value( {service.toLower(), connName} );
if ( !version.isEmpty() )
{
uri.setParam( QStringLiteral( "version" ), version );
}

const QString maxnumFeatures = settingsConnectionMaxNumFeatures.value( {service.toLower(), connName} );
const QString maxnumFeatures = settingsConnectionMaxNumFeatures->value( {service.toLower(), connName} );
if ( !maxnumFeatures.isEmpty() )
{
uri.setParam( QStringLiteral( "maxNumFeatures" ), maxnumFeatures );
Expand Down Expand Up @@ -254,18 +250,17 @@ void QgsOwsConnection::addCommonConnectionSettings( QgsDataSourceUri &uri, const
void QgsOwsConnection::addCommonConnectionSettings( QgsDataSourceUri &uri, const QString &service, const QString &connectionName )
{

if ( settingsConnectionIgnoreAxisOrientation.value( {service.toLower(), connectionName} ) )
if ( settingsConnectionIgnoreAxisOrientation->value( {service.toLower(), connectionName} ) )
{
uri.setParam( QStringLiteral( "IgnoreAxisOrientation" ), QStringLiteral( "1" ) );
}
if ( settingsConnectionInvertAxisOrientation.value( {service.toLower(), connectionName} ) )
if ( settingsConnectionInvertAxisOrientation->value( {service.toLower(), connectionName} ) )
{
uri.setParam( QStringLiteral( "InvertAxisOrientation" ), QStringLiteral( "1" ) );
}
}

void QgsOwsConnection::deleteConnection( const QString &service, const QString &name )
{
settingsServiceConnectionDetailsGroup.removeAllSettingsAtBaseKey( {service.toLower(), name} );
settingsServiceConnectionCredentialsGroup.removeAllSettingsAtBaseKey( {service, name} );
sTreeConnectionServices->deleteItem( service.toLower(), {name} );
}

0 comments on commit f4e4146

Please sign in to comment.