25#include <QRegularExpression>
28using namespace Qt::StringLiterals;
48 mImporters[u
"alanwpr"_s]
56 mImporters[u
"compegps"_s]
74 mImporters[u
"g7towin"_s]
81 mImporters[u
"garmin_txt"_s]
87 mImporters[u
"geojson"_s]
92 mImporters[u
"ggv_ovl"_s]
107 mImporters[u
"gtrnctr"_s]
111 mImporters[u
"humminbird"_s]
113 mImporters[u
"humminbird_ht"_s]
123 mImporters[u
"itracku-bin"_s]
133 mImporters[u
"lowranceusr"_s]
135 mImporters[u
"m241-bin"_s]
137 mImporters[u
"magellan"_s]
139 mImporters[u
"magellanx"_s]
147 mImporters[u
"mapsend"_s]
152 mImporters[u
"mtk-bin"_s]
171 mImporters[u
"pocketfms_fp"_s]
175 mImporters[u
"raymarine"_s]
183 mImporters[u
"shape"_s]
185 mImporters[u
"skyforce"_s]
187 mImporters[u
"skytraq-bin"_s]
190 mImporters[u
"stmwpp"_s]
202 mImporters[u
"tpo3"_s]
204 mImporters[u
"unicsv"_s]
208 mImporters[u
"vitosmt"_s]
227 qDeleteAll( mImporters );
228 qDeleteAll( mDevices );
233 return mImporters.keys();
238 return mImporters.value( name );
243 for (
auto it = mImporters.constBegin(); it != mImporters.constEnd(); ++it )
245 if ( it.value()->description().compare( description, Qt::CaseInsensitive ) == 0 )
249 const QString descriptionSquareBrackets = it.value()->description().replace(
'(',
'[' ).replace(
')',
']' );
250 if ( descriptionSquareBrackets.compare( description, Qt::CaseInsensitive ) == 0 )
259 QMap< QString, QString > descriptionToString;
260 for (
auto it = mImporters.constBegin(); it != mImporters.constEnd(); ++it )
262 const QStringList extensions = it.value()->extensions();
264 if ( !extensions.empty() )
267 for (
const QString &extension : extensions )
268 fileFilter.append( u
"*.%1"_s.arg( extension ) );
269 fileFilter.append(
')' );
273 fileFilter = u
"(*.*)"_s;
277 const QString description = it.value()->description().replace(
'(',
'[' ).replace(
')',
']' );
279 descriptionToString.insert( description.toLower(), u
"%1 %2"_s.arg( description, fileFilter ) );
283 for (
auto it = descriptionToString.constBegin(); it != descriptionToString.constEnd(); ++it )
286 return res.join(
";;"_L1 );
291 return mDevices.keys();
296 return mDevices.value( name );
306 qDeleteAll( mDevices );
309 mDevices[u
"Garmin serial"_s]
310 =
new QgsBabelGpsDeviceFormat( u
"%babel -w -i garmin -o gpx %in %out"_s, u
"%babel -w -i gpx -o garmin %in %out"_s, u
"%babel -r -i garmin -o gpx %in %out"_s, u
"%babel -r -i gpx -o garmin %in %out"_s, u
"%babel -t -i garmin -o gpx %in %out"_s, u
"%babel -t -i gpx -o garmin %in %out"_s );
317 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)