diff --git a/resources/sample_projects/basemaps/buildings_laax.gpkg b/resources/sample_projects/basemaps/buildings_laax.gpkg deleted file mode 100755 index 36ec8655b6..0000000000 Binary files a/resources/sample_projects/basemaps/buildings_laax.gpkg and /dev/null differ diff --git a/resources/sample_projects/basemaps/laax.gpkg b/resources/sample_projects/basemaps/laax.gpkg index 35a2d2795f..61fd530328 100644 Binary files a/resources/sample_projects/basemaps/laax.gpkg and b/resources/sample_projects/basemaps/laax.gpkg differ diff --git a/resources/sample_projects/basemaps/landscape_laax.gpkg b/resources/sample_projects/basemaps/landscape_laax.gpkg deleted file mode 100755 index a26108843b..0000000000 Binary files a/resources/sample_projects/basemaps/landscape_laax.gpkg and /dev/null differ diff --git a/resources/sample_projects/basemaps/lines_laax.gpkg b/resources/sample_projects/basemaps/lines_laax.gpkg deleted file mode 100755 index d53c9b9cc8..0000000000 Binary files a/resources/sample_projects/basemaps/lines_laax.gpkg and /dev/null differ diff --git a/resources/sample_projects/datasets/qgep_reach.gpkg b/resources/sample_projects/datasets/qgep_reach.gpkg index c7e5130a73..b035b3adba 100644 Binary files a/resources/sample_projects/datasets/qgep_reach.gpkg and b/resources/sample_projects/datasets/qgep_reach.gpkg differ diff --git a/resources/sample_projects/datasets/qgep_wastewater_structure.gpkg b/resources/sample_projects/datasets/qgep_wastewater_structure.gpkg index eacc5a1c0d..4a6f83e29e 100644 Binary files a/resources/sample_projects/datasets/qgep_wastewater_structure.gpkg and b/resources/sample_projects/datasets/qgep_wastewater_structure.gpkg differ diff --git a/resources/sample_projects/wastewater.qgz b/resources/sample_projects/wastewater.qgz index c25c714ba0..bbd217ba36 100644 Binary files a/resources/sample_projects/wastewater.qgz and b/resources/sample_projects/wastewater.qgz differ diff --git a/src/core/localfilesmodel.cpp b/src/core/localfilesmodel.cpp index d3632f2d48..19c01c40e6 100644 --- a/src/core/localfilesmodel.cpp +++ b/src/core/localfilesmodel.cpp @@ -16,8 +16,8 @@ #include "localfilesmodel.h" #include "platformutilities.h" +#include "qfield.h" #include "qfieldcloudutils.h" -#include "qgismobileapp.h" #include "webdavconnection.h" #include @@ -289,7 +289,7 @@ void LocalFilesModel::reloadModel() { datasets << Item( ItemMetaType::Dataset, ItemType::RasterDataset, fi.completeBaseName(), suffix, fi.absoluteFilePath(), fi.size() ); } - else if ( suffix == QStringLiteral( "log" ) || suffix == QStringLiteral( "txt" ) ) + else if ( SUPPORTED_FILE_EXTENSIONS.contains( suffix ) ) { files << Item( ItemMetaType::File, ItemType::OtherFile, fi.completeBaseName(), suffix, fi.absoluteFilePath(), fi.size() ); } diff --git a/src/core/localfilesmodel.h b/src/core/localfilesmodel.h index 7aab08821f..4e0145b689 100644 --- a/src/core/localfilesmodel.h +++ b/src/core/localfilesmodel.h @@ -18,8 +18,6 @@ #include -#define SUPPORTED_DATASET_THUMBNAIL QStringList( { QStringLiteral( "zip" ), QStringLiteral( "tif" ), QStringLiteral( "tiff" ), QStringLiteral( "pdf" ), QStringLiteral( "jpg" ), QStringLiteral( "jpeg" ), QStringLiteral( "png" ), QStringLiteral( "jp2" ), QStringLiteral( "webp" ) } ) - /** * \ingroup core */ diff --git a/src/core/platforms/platformutilities.cpp b/src/core/platforms/platformutilities.cpp index b93285ec7d..70713c08eb 100644 --- a/src/core/platforms/platformutilities.cpp +++ b/src/core/platforms/platformutilities.cpp @@ -22,7 +22,6 @@ #include "projectsource.h" #include "qfield.h" #include "qfieldcloudconnection.h" -#include "qgismobileapp.h" #include "qgsmessagelog.h" #include "resourcesource.h" #include "stringutils.h" diff --git a/src/core/positioning/positioning.cpp b/src/core/positioning/positioning.cpp index a8e9b25c23..9f47f43264 100644 --- a/src/core/positioning/positioning.cpp +++ b/src/core/positioning/positioning.cpp @@ -475,8 +475,24 @@ void Positioning::setCoordinateTransformer( QgsQuickCoordinateTransformer *coord if ( mCoordinateTransformer == coordinateTransformer ) return; + if ( mCoordinateTransformer ) + { + disconnect( mCoordinateTransformer, &QgsQuickCoordinateTransformer::destinationCrsChanged, this, &Positioning::processProjectedPosition ); + disconnect( mCoordinateTransformer, &QgsQuickCoordinateTransformer::sourceCrsChanged, this, &Positioning::processProjectedPosition ); + disconnect( mCoordinateTransformer, &QgsQuickCoordinateTransformer::deltaZChanged, this, &Positioning::processProjectedPosition ); + disconnect( mCoordinateTransformer, &QgsQuickCoordinateTransformer::verticalGridChanged, this, &Positioning::processProjectedPosition ); + } + mCoordinateTransformer = coordinateTransformer; + if ( mCoordinateTransformer ) + { + connect( mCoordinateTransformer, &QgsQuickCoordinateTransformer::destinationCrsChanged, this, &Positioning::processProjectedPosition ); + connect( mCoordinateTransformer, &QgsQuickCoordinateTransformer::sourceCrsChanged, this, &Positioning::processProjectedPosition ); + connect( mCoordinateTransformer, &QgsQuickCoordinateTransformer::deltaZChanged, this, &Positioning::processProjectedPosition ); + connect( mCoordinateTransformer, &QgsQuickCoordinateTransformer::verticalGridChanged, this, &Positioning::processProjectedPosition ); + } + emit coordinateTransformerChanged(); } @@ -506,9 +522,28 @@ void Positioning::processGnssPositionInformation() else { mSourcePosition.clear(); + mProjectedPosition.clear(); } - if ( mCoordinateTransformer ) + if ( mPositionInformation.orientationValid() ) + { + mPositionInformation.setOrientation( adjustOrientation( mPositionInformation.orientation() ) ); + } + + if ( mCoordinateTransformer && !mSourcePosition.isEmpty() ) + { + // positionInformationChanged() will be emitted in this function + processProjectedPosition(); + } + else + { + emit positionInformationChanged(); + } +} + +void Positioning::processProjectedPosition() +{ + if ( !mSourcePosition.isEmpty() ) { mProjectedPosition = mCoordinateTransformer->transformPosition( mSourcePosition ); mProjectedHorizontalAccuracy = mPositionInformation.hacc(); @@ -526,10 +561,5 @@ void Positioning::processGnssPositionInformation() } } - if ( mPositionInformation.orientationValid() ) - { - mPositionInformation.setOrientation( adjustOrientation( mPositionInformation.orientation() ) ); - } - emit positionInformationChanged(); } diff --git a/src/core/positioning/positioning.h b/src/core/positioning/positioning.h index 6f537559db..26b282d55c 100644 --- a/src/core/positioning/positioning.h +++ b/src/core/positioning/positioning.h @@ -262,6 +262,7 @@ class Positioning : public QObject private slots: void onApplicationStateChanged( Qt::ApplicationState state ); void processGnssPositionInformation(); + void processProjectedPosition(); private: void setupSource(); diff --git a/src/core/qfield.h.in b/src/core/qfield.h.in index 7d4bb3def5..88dc5ebf2c 100644 --- a/src/core/qfield.h.in +++ b/src/core/qfield.h.in @@ -61,4 +61,10 @@ namespace qfield #define WITH_SENTRY @WITH_SENTRY@ #define QGIS_PREFIX_PATH "@QGIS_PREFIX_PATH@" +#define SUPPORTED_PROJECT_EXTENSIONS QStringList( { QStringLiteral( "qgs" ), QStringLiteral( "qgz" ) } ) +#define SUPPORTED_VECTOR_EXTENSIONS QStringList( { QStringLiteral( "gpkg" ), QStringLiteral( "shp" ), QStringLiteral( "kml" ), QStringLiteral( "kmz" ), QStringLiteral( "geojson" ), QStringLiteral( "json" ), QStringLiteral( "pdf" ), QStringLiteral( "gpx" ), QStringLiteral( "gml" ), QStringLiteral( "mif" ), QStringLiteral( "fgb" ), QStringLiteral( "db" ), QStringLiteral( "sqlite" ), QStringLiteral( "mbtiles" ), QStringLiteral( "vrt" ), QStringLiteral( "zip" ), QStringLiteral( "7z" ), QStringLiteral( "rar" ) } ) +#define SUPPORTED_RASTER_EXTENSIONS QStringList( { QStringLiteral( "tif" ), QStringLiteral( "tiff" ), QStringLiteral( "pdf" ), QStringLiteral( "jpg" ), QStringLiteral( "jpeg" ), QStringLiteral( "png" ), QStringLiteral( "gpkg" ), QStringLiteral( "jp2" ), QStringLiteral( "webp" ), QStringLiteral( "mbtiles" ), QStringLiteral( "vrt" ), QStringLiteral( "zip" ), QStringLiteral( "7z" ) } ) +#define SUPPORTED_FILE_EXTENSIONS QStringList( { QStringLiteral( "log" ), QStringLiteral( "txt" ), QStringLiteral( "mp4" ), QStringLiteral( "m4a" ), QStringLiteral( "ogg" ), QStringLiteral( "mp3" ) } ) +#define SUPPORTED_DATASET_THUMBNAIL QStringList( { QStringLiteral( "zip" ), QStringLiteral( "tif" ), QStringLiteral( "tiff" ), QStringLiteral( "pdf" ), QStringLiteral( "jpg" ), QStringLiteral( "jpeg" ), QStringLiteral( "png" ), QStringLiteral( "jp2" ), QStringLiteral( "webp" ) } ) + #endif // QFIELD_H diff --git a/src/core/qgismobileapp.h b/src/core/qgismobileapp.h index 63830a1e75..ae7cadd0c7 100644 --- a/src/core/qgismobileapp.h +++ b/src/core/qgismobileapp.h @@ -60,10 +60,6 @@ class QgsPrintLayout; #define REGISTER_SINGLETON( uri, _class, name ) qmlRegisterSingletonType<_class>( uri, 1, 0, name, []( QQmlEngine *engine, QJSEngine *scriptEngine ) -> QObject * { Q_UNUSED(engine); Q_UNUSED(scriptEngine); return new _class(); } ) -#define SUPPORTED_PROJECT_EXTENSIONS QStringList( { QStringLiteral( "qgs" ), QStringLiteral( "qgz" ) } ) -#define SUPPORTED_VECTOR_EXTENSIONS QStringList( { QStringLiteral( "gpkg" ), QStringLiteral( "shp" ), QStringLiteral( "kml" ), QStringLiteral( "kmz" ), QStringLiteral( "geojson" ), QStringLiteral( "json" ), QStringLiteral( "pdf" ), QStringLiteral( "gpx" ), QStringLiteral( "gml" ), QStringLiteral( "mif" ), QStringLiteral( "fgb" ), QStringLiteral( "db" ), QStringLiteral( "sqlite" ), QStringLiteral( "mbtiles" ), QStringLiteral( "vrt" ), QStringLiteral( "zip" ), QStringLiteral( "7z" ), QStringLiteral( "rar" ) } ) -#define SUPPORTED_RASTER_EXTENSIONS QStringList( { QStringLiteral( "tif" ), QStringLiteral( "tiff" ), QStringLiteral( "pdf" ), QStringLiteral( "jpg" ), QStringLiteral( "jpeg" ), QStringLiteral( "png" ), QStringLiteral( "gpkg" ), QStringLiteral( "jp2" ), QStringLiteral( "webp" ), QStringLiteral( "mbtiles" ), QStringLiteral( "vrt" ), QStringLiteral( "zip" ), QStringLiteral( "7z" ) } ) - /** * \defgroup core * \brief QField C++ classes diff --git a/src/core/recentprojectlistmodel.cpp b/src/core/recentprojectlistmodel.cpp index 1e938fd0ad..a0f4394bcd 100644 --- a/src/core/recentprojectlistmodel.cpp +++ b/src/core/recentprojectlistmodel.cpp @@ -15,8 +15,8 @@ ***************************************************************************/ #include "platformutilities.h" +#include "qfield.h" #include "qfieldcloudutils.h" -#include "qgismobileapp.h" #include "recentprojectlistmodel.h" #include