23 #include <QRegularExpression>
178 qDeleteAll( mImporters );
179 qDeleteAll( mDevices );
184 return mImporters.keys();
189 return mImporters.value( name );
194 for (
auto it = mImporters.constBegin(); it != mImporters.constEnd(); ++it )
196 if ( it.value()->description().compare( description, Qt::CaseInsensitive ) == 0 )
200 const QString descriptionSquareBrackets = it.value()->
description().replace(
'(',
'[' ).replace(
')',
']' );
201 if ( descriptionSquareBrackets.compare( description, Qt::CaseInsensitive ) == 0 )
210 QMap< QString, QString > descriptionToString;
211 for (
auto it = mImporters.constBegin(); it != mImporters.constEnd(); ++it )
213 const QStringList extensions = it.value()->extensions();
215 if ( !extensions.empty() )
218 for (
const QString &extension : extensions )
219 fileFilter.append( QStringLiteral(
"*.%1" ).arg( extension ) );
220 fileFilter.append(
')' );
224 fileFilter = QStringLiteral(
"(*.*)" );
228 const QString description = it.value()->description().replace(
'(',
'[' ).replace(
')',
']' );
230 descriptionToString.insert( description.toLower(), QStringLiteral(
"%1 %2" ).arg( description, fileFilter ) );
234 for (
auto it = descriptionToString.constBegin(); it != descriptionToString.constEnd(); ++it )
237 return res.join( QLatin1String(
";;" ) );
242 return mDevices.keys();
247 return mDevices.value( name );
257 qDeleteAll( mDevices );
260 mDevices[QStringLiteral(
"Garmin serial" )] =
262 QStringLiteral(
"%babel -w -i gpx -o garmin %in %out" ),
263 QStringLiteral(
"%babel -r -i garmin -o gpx %in %out" ),
264 QStringLiteral(
"%babel -r -i gpx -o garmin %in %out" ),
265 QStringLiteral(
"%babel -t -i garmin -o gpx %in %out" ),
266 QStringLiteral(
"%babel -t -i gpx -o garmin %in %out" ) );
270 bool useOldPath =
false;
275 deviceNames = settings.
value( QStringLiteral(
"Plugin-GPS/devicelist" ) ).toStringList();
278 for (
const QString &device : std::as_const(
deviceNames ) )
283 baseKey = QStringLiteral(
"babelDevices/%1" ).arg( device );
286 baseKey = QStringLiteral(
"/Plugin-GPS/devices/%1" ).arg( device );
290 const QString wptDownload = settings.
value( QStringLiteral(
"%1/wptdownload" ).arg( baseKey ), QVariant(), section ).toString();
291 const QString wptUpload = settings.
value( QStringLiteral(
"%1/wptupload" ).arg( baseKey ), QVariant(), section ).toString();
292 const QString rteDownload = settings.
value( QStringLiteral(
"%1/rtedownload" ).arg( baseKey ), QVariant(), section ).toString();
293 const QString rteUpload = settings.
value( QStringLiteral(
"%1/rteupload" ).arg( baseKey ), QVariant(), section ).toString();
294 const QString trkDownload = settings.
value( QStringLiteral(
"%1/trkdownload" ).arg( baseKey ), QVariant(), section ).toString();
295 const QString trkUpload = settings.
value( QStringLiteral(
"%1/trkupload" ).arg( baseKey ), QVariant(), section ).toString();
298 delete mDevices.value( device );
@ Tracks
Format supports tracks.
@ Waypoints
Format supports waypoints.
@ Routes
Format supports routes.
This class is a composition of two QSettings instances:
QVariant value(const QString &key, const QVariant &defaultValue=QVariant(), Section section=NoSection) const
Returns the value for setting key.
Section
Sections for namespaced settings.
@ Gps
GPS section, since QGIS 3.22.