25#include <QRegularExpression>
28using namespace Qt::StringLiterals;
195 qDeleteAll( mImporters );
196 qDeleteAll( mDevices );
201 return mImporters.keys();
206 return mImporters.value( name );
211 for (
auto it = mImporters.constBegin(); it != mImporters.constEnd(); ++it )
213 if ( it.value()->description().compare( description, Qt::CaseInsensitive ) == 0 )
217 const QString descriptionSquareBrackets = it.value()->description().replace(
'(',
'[' ).replace(
')',
']' );
218 if ( descriptionSquareBrackets.compare( description, Qt::CaseInsensitive ) == 0 )
227 QMap< QString, QString > descriptionToString;
228 for (
auto it = mImporters.constBegin(); it != mImporters.constEnd(); ++it )
230 const QStringList extensions = it.value()->extensions();
232 if ( !extensions.empty() )
235 for (
const QString &extension : extensions )
236 fileFilter.append( u
"*.%1"_s.arg( extension ) );
237 fileFilter.append(
')' );
241 fileFilter = u
"(*.*)"_s;
245 const QString description = it.value()->description().replace(
'(',
'[' ).replace(
')',
']' );
247 descriptionToString.insert( description.toLower(), u
"%1 %2"_s.arg( description, fileFilter ) );
251 for (
auto it = descriptionToString.constBegin(); it != descriptionToString.constEnd(); ++it )
254 return res.join(
";;"_L1 );
259 return mDevices.keys();
264 return mDevices.value( name );
274 qDeleteAll( mDevices );
277 mDevices[u
"Garmin serial"_s] =
279 u
"%babel -w -i gpx -o garmin %in %out"_s,
280 u
"%babel -r -i garmin -o gpx %in %out"_s,
281 u
"%babel -r -i gpx -o garmin %in %out"_s,
282 u
"%babel -t -i garmin -o gpx %in %out"_s,
283 u
"%babel -t -i gpx -o garmin %in %out"_s );
290 delete mDevices.value( device );
@ Tracks
Format supports tracks.
@ Waypoints
Format supports waypoints.
@ Routes
Format supports routes.
Custom exception class for settings related exceptions.
#define QgsDebugError(str)