65106 Commits

Author SHA1 Message Date
rldhont
3372a9267d
Merge pull request #38240 from rldhont/server-dont-load-layouts
New QGIS Server setting environement to disable GetPrint and do not load layouts
2020-08-24 14:21:15 +02:00
Mathieu Pellerin
e433adafb5
[ui] Add save/load connections right click browser menu to a bunch of providers 2020-08-24 11:56:28 +07:00
Even Rouault
4e0f64f40a [OAPIF provider] Avoid crash when service description page lacks email or url in contact object
Found when investigating https://github.com/OSGeo/gdal/issues/2873
but doesn't address it
2020-08-23 07:32:32 +10:00
Denis Rouzaud
849680753f drop bionic, all images are now focal based 2020-08-22 21:19:40 +02:00
Nyall Dawson
bf13801251 Fix memory leak when no model point positions are available 2020-08-22 07:10:01 +10:00
Nyall Dawson
a27930c293 Don't store references to symbols in 3d symbol handlers
These references are to objects belonging to another thread, which
can cause crashes if the object on the main thread is deleted while
the handler is still active

Refs a asan report:

==677416==ERROR: AddressSanitizer: heap-use-after-free on address 0x6070029bc278 at pc 0x7f95719ccc45 bp 0x7f94bdd7a310 sp 0x7f94bdd7a300
READ of size 4 at 0x6070029bc278 thread T36 (Thread (pooled))
    #0 0x7f95719ccc44 in QgsLine3DSymbol::extrusionHeight() const /home/nyall/dev/qgis-asan/src/3d/symbols/qgsline3dsymbol.h:78
    #1 0x7f95674a7c01 in QgsBufferedLine3DSymbolHandler::processFeature(QgsFeature&, Qgs3DRenderContext const&) /home/nyall/dev/qgis-asan/src/3d/symbols/qgsline3dsymbol_p.cpp:126
    #2 0x7f9567457045 in operator() /home/nyall/dev/qgis-asan/src/3d/qgsvectorlayerchunkloader_p.cpp:97
    #3 0x7f95674597fd in runFunctor /usr/include/qt5/QtConcurrent/qtconcurrentstoredfunctioncall.h:70
    #4 0x7f956744acf7 in QtConcurrent::RunFunctionTask<void>::run() (/home/nyall/dev/build-QGIS-asan/output/lib/libqgis_3d.so.3.15.0+0x2adcf7)
    #5 0x7f956a275d59  (/usr/lib64/libQt5Core.so.5+0xc9d59)
    #6 0x7f956a27268f  (/usr/lib64/libQt5Core.so.5+0xc668f)
    #7 0x7f956a193431 in start_thread (/usr/lib64/libpthread.so.0+0x9431)
    #8 0x7f955ad59912 in __GI___clone (/usr/lib64/libc.so.6+0x101912)

0x6070029bc278 is located 56 bytes inside of 72-byte region [0x6070029bc240,0x6070029bc288)
freed by thread T0 here:
    #0 0x7f9572b86b87 in operator delete(void*) (/usr/lib64/libasan.so.6+0xb2b87)
    #1 0x7f956749c00b in QgsLine3DSymbol::~QgsLine3DSymbol() /home/nyall/dev/qgis-asan/src/3d/symbols/qgsline3dsymbol.cpp:30
    #2 0x7f95719664ca in std::default_delete<QgsAbstract3DSymbol>::operator()(QgsAbstract3DSymbol*) const /usr/include/c++/10/bits/unique_ptr.h:85
    #3 0x7f95674428ce in std::unique_ptr<QgsAbstract3DSymbol, std::default_delete<QgsAbstract3DSymbol> >::~unique_ptr() /usr/include/c++/10/bits/unique_ptr.h:361
    #4 0x7f9567459eb6 in QgsVectorLayerChunkLoaderFactory::~QgsVectorLayerChunkLoaderFactory() /home/nyall/dev/qgis-asan/src/3d/qgsvectorlayerchunkloader_p.h:53
    #5 0x7f9567459edd in QgsVectorLayerChunkLoaderFactory::~QgsVectorLayerChunkLoaderFactory() /home/nyall/dev/qgis-asan/src/3d/qgsvectorlayerchunkloader_p.h:53
    #6 0x7f956746e4db in QgsChunkedEntity::~QgsChunkedEntity() /home/nyall/dev/qgis-asan/src/3d/chunks/qgschunkedentity_p.cpp:122
    #7 0x7f9567459358 in QgsVectorLayerChunkedEntity::~QgsVectorLayerChunkedEntity() /home/nyall/dev/qgis-asan/src/3d/qgsvectorlayerchunkloader_p.cpp:164
    #8 0x7f9567459373 in QgsVectorLayerChunkedEntity::~QgsVectorLayerChunkedEntity() /home/nyall/dev/qgis-asan/src/3d/qgsvectorlayerchunkloader_p.cpp:168
    #9 0x7f956a42e960 in QObject::event(QEvent*) (/usr/lib64/libQt5Core.so.5+0x282960)
    #10 0x7f956ada2062 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib64/libQt5Widgets.so.5+0x172062)

previously allocated by thread T0 here:
    #0 0x7f9572b86067 in operator new(unsigned long) (/usr/lib64/libasan.so.6+0xb2067)
    #1 0x7f95674a3018 in qgis::_Unique_if<QgsLine3DSymbol>::_Single_object qgis::make_unique<QgsLine3DSymbol>() /home/nyall/dev/qgis-asan/src/core/qgis.h:425
    #2 0x7f956749c0b9 in QgsLine3DSymbol::clone() const /home/nyall/dev/qgis-asan/src/3d/symbols/qgsline3dsymbol.cpp:34
    #3 0x7f9567458b5f in QgsVectorLayerChunkLoaderFactory::QgsVectorLayerChunkLoaderFactory(Qgs3DMapSettings const&, QgsVectorLayer*, QgsAbstract3DSymbol*, int) /home/nyall/dev/qgis-asan/src/3d/qgsvectorlayerchunkloader_p.cpp:141
    #4 0x7f9567458d88 in QgsVectorLayerChunkedEntity::QgsVectorLayerChunkedEntity(QgsVectorLayer*, double, double, QgsVectorLayer3DTilingSettings const&, QgsAbstract3DSymbol*, Qgs3DMapSettings const&) /home/nyall/dev/qgis-asan/src/3d/qgsvectorlayerchunkloader_p.cpp:159
    #5 0x7f956745558f in QgsVectorLayer3DRenderer::createEntity(Qgs3DMapSettings const&) const /home/nyall/dev/qgis-asan/src/3d/qgsvectorlayer3drenderer.cpp:76
    #6 0x7f95673a71c0 in Qgs3DMapScene::addLayerEntity(QgsMapLayer*) /home/nyall/dev/qgis-asan/src/3d/qgs3dmapscene.cpp:693
    #7 0x7f95673a5523 in Qgs3DMapScene::onLayerRenderer3DChanged() /home/nyall/dev/qgis-asan/src/3d/qgs3dmapscene.cpp:598
    #8 0x7f95673c6c33 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (Qgs3DMapScene::*)()>::call(void (Qgs3DMapScene::*)(), Qgs3DMapScene*, void**) (/home/nyall/dev/build-QGIS-asan/output/lib/libqgis_3d.so.3.15.0+0x229c33)
    #9 0x7f95673c5468 in void QtPrivate::FunctionPointer<void (Qgs3DMapScene::*)()>::call<QtPrivate::List<>, void>(void (Qgs3DMapScene::*)(), Qgs3DMapScene*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
    #10 0x7f95673c1748 in QtPrivate::QSlotObject<void (Qgs3DMapScene::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
    #11 0x7f956a435f75  (/usr/lib64/libQt5Core.so.5+0x289f75)
    #12 0x7f956252106c in QgsMapLayer::renderer3DChanged() src/core/qgis_core_autogen/EWIEGA46WW/moc_qgsmaplayer.cpp:702
    #13 0x7f9563917a12 in QgsMapLayer::setRenderer3D(QgsAbstract3DRenderer*) /home/nyall/dev/qgis-asan/src/core/qgsmaplayer.cpp:1813
    #14 0x7f95719aaf52 in QgsApp3DSymbolWidgetWithPreview::updatePreview(QgsAbstract3DSymbol*) /home/nyall/dev/qgis-asan/src/app/3d/qgsapp3dsymbolwidget.cpp:243
    #15 0x7f95719a97af in operator() /home/nyall/dev/qgis-asan/src/app/3d/qgsapp3dsymbolwidget.cpp:175
    #16 0x7f95719ac2dd in call /usr/include/qt5/QtCore/qobjectdefs_impl.h:146
    #17 0x7f95719ac24f in call<QtPrivate::List<>, void> /usr/include/qt5/QtCore/qobjectdefs_impl.h:256
    #18 0x7f95719ac21e in impl /usr/include/qt5/QtCore/qobjectdefs_impl.h:443
    #19 0x7f956a435f75  (/usr/lib64/libQt5Core.so.5+0x289f75)
    #20 0x7f95708d15ec in QgsApp3DSymbolWidget::widgetChanged() src/app/qgis_app_autogen/6LADBHSVD5/moc_qgsapp3dsymbolwidget.cpp:144
    #21 0x7f95719ae1dd in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (QgsApp3DSymbolWidget::*)()>::call(void (QgsApp3DSymbolWidget::*)(), QgsApp3DSymbolWidget*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
    #22 0x7f95719add9c in void QtPrivate::FunctionPointer<void (QgsApp3DSymbolWidget::*)()>::call<QtPrivate::List<>, void>(void (QgsApp3DSymbolWidget::*)(), QgsApp3DSymbolWidget*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
    #23 0x7f95719adbfa in QtPrivate::QSlotObject<void (QgsApp3DSymbolWidget::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
    #24 0x7f956a435f75  (/usr/lib64/libQt5Core.so.5+0x289f75)
    #25 0x7f956c91c63e in Qgs3DSymbolWidget::changed() src/gui/qgis_gui_autogen/EWIEGA46WW/moc_qgs3dsymbolwidget.cpp:131
    #26 0x7f95719ce2ad in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (Qgs3DSymbolWidget::*)()>::call(void (Qgs3DSymbolWidget::*)(), Qgs3DSymbolWidget*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
    #27 0x7f95719ce014 in void QtPrivate::FunctionPointer<void (Qgs3DSymbolWidget::*)()>::call<QtPrivate::List<>, void>(void (Qgs3DSymbolWidget::*)(), Qgs3DSymbolWidget*, void**) /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
    #28 0x7f95719cdbfc in QtPrivate::QSlotObject<void (Qgs3DSymbolWidget::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
    #29 0x7f956a435f75  (/usr/lib64/libQt5Core.so.5+0x289f75)
2020-08-22 07:10:01 +10:00
Juergen E. Fischer
d411d66b3d windows: map python PATH changes to Add/RemoveDllDirectory (followup f17097b1a465c; fixes #38372) 2020-08-21 21:02:26 +02:00
Denis Rouzaud
d1c45f80e6 fix build arg 2020-08-21 15:41:50 +02:00
Denis Rouzaud
ef25ddff67 try to rename the workflow 2020-08-21 15:17:14 +02:00
vsklencar
2f0c935d77 [QgsQuick] Clean feature layer pair after deleting feature. 2020-08-21 15:02:55 +02:00
Denis Rouzaud
01f8b625c9 test to get cache with the focal one 2020-08-21 14:51:43 +02:00
Denis Rouzaud
422dd0aa77
Build with Qt 5.14 only when sources have changed (#38400) 2020-08-21 14:20:24 +02:00
Denis Rouzaud
b082f160d7 export vars 2020-08-21 14:19:17 +02:00
Denis Rouzaud
d0536542ec add missing focal 2020-08-21 13:54:43 +02:00
Martin Dobias
418bcf3d57
Fix transformCoordinates() for rasters with RPC georeferencing (#38350)
Unfortunately for raster with RPC georeferencing, the transform
used in GDAL provider's transformCoordinates() was using RPC_HEIGHT
at zero elevation, while rendering pipeline was using RPC_HEIGHT
at the correct elevation from HEIGHT_OFF metadata. This was causing
shift in what was rendered in map canvas vs what transform function
returned. This is now fixed by also the transform function using
the correct elevation.
2020-08-21 13:53:41 +02:00
Denis Rouzaud
b98cfe1389 fix base image not being focal 2020-08-21 13:14:19 +02:00
Denis Rouzaud
25c3138133 add dispatch 2020-08-21 12:41:28 +02:00
Denis Rouzaud
685d167bb6 fix env vars 2020-08-21 12:32:03 +02:00
Denis Rouzaud
d9e9513c85 remove DELETE_CACHE arg, it is never called 2020-08-21 12:30:43 +02:00
Denis Rouzaud
a2cdc4bc80 [Docker] use gcc to build 2020-08-21 12:26:45 +02:00
Juergen E. Fischer
5d897d8d88 Fix qt plugins directory setting (followup 736e3947d958fed) 2020-08-21 11:08:29 +02:00
vsklencar
75c2b511bd [QgsQuick] Photo panel path fix
Relative path should be handled in external resource handler. Photo panel should provide full path to taken image.
2020-08-21 11:01:59 +02:00
Nyall Dawson
7824c4c231 Fix range of date time values for animation export dialog
Fixes #38384
2020-08-21 16:20:33 +10:00
Nyall Dawson
500251ff80 Tweak fill offset label layout for better layout arrangement 2020-08-21 16:20:18 +10:00
signedav
ae359b6c56
Merge pull request #38385 from signedav/relref-filter
Make relation reference in filter work again
2020-08-21 07:17:55 +02:00
Harrissou Sant-anna
ae8ea31a0f More updates of expression help
- Expose default values of args
- Fix args name or description
- Fix/add more examples (to show various possibilities of a function or so
that functions that relate have examples that relate)
2020-08-21 13:02:35 +10:00
Harrissou Sant-anna
b743db7ace Ensure that not all the settings are displayed when opening dialog
but only the skybox type's
Clean group boxes use
Rely on combobox index instead of (translated) text for settings
2020-08-21 13:00:52 +10:00
Harrissou Sant-anna
8bffc6b5c3 Clean the skybox widget
Simplify dialog, no need to group features in boxes with title
Remove colon at the end of labels
Reorder widgets to ease use of tab key
2020-08-21 13:00:52 +10:00
Harrissou Sant-anna
d4972d75c5 Remove leftover skybox enabling settings 2020-08-21 13:00:52 +10:00
Harrissou Sant-anna
09844a7dab Move the skybox enabling checkbox to the groupbox widget
Whether skybox is enabled is now saved as part of the 3D Map settings
2020-08-21 13:00:52 +10:00
olivierdalang
7b91f79cbb [layout expressions] add Y page offset expression - tests 2020-08-21 11:33:58 +10:00
olivierdalang
6ac8f6158b [layout expressions] add Y page offset expression
this is useful for dynamically position items
relative to pages in multi-pages layouts
2020-08-21 11:33:58 +10:00
Nyall Dawson
a462a17ae5 Fix initial placement selection is empty 2020-08-21 09:48:47 +10:00
Nyall Dawson
f62c6d5d56 [feature][labeling] Expose option to allow users to control whether
anchor point for line labels is a hint or a strict requirement

Strict: Labels are placed exactly on the label anchor only, and no
other fallback placements are permitted.

Hint: The label anchor is treated as a hint for the preferred label
placement, but other placements close to the anchor point are permitted.
2020-08-21 09:48:47 +10:00
Denis Rouzaud
ae4d7699f4 fix python code formatting 2020-08-21 09:43:14 +10:00
Peter Petrik
736e3947d9
allow custom install location for QT plugins (#38389) 2020-08-20 15:35:41 +02:00
Denis Rouzaud
c942607f65
Run flake8 on python files only (#38392) 2020-08-20 15:11:25 +02:00
Denis Rouzaud
3dc8678b25 fix path 2020-08-20 15:00:46 +02:00
Denis Rouzaud
7960a9cf56 run every 5 minutes 2020-08-20 14:43:24 +02:00
Denis Rouzaud
5b2717c714 reset daemon 2020-08-20 14:40:25 +02:00
Denis Rouzaud
b2b2b7ffa1 save cache when building docker images 2020-08-20 14:39:15 +02:00
Denis Rouzaud
bc720c8ed0 sudo to restart docker 2020-08-20 14:01:08 +02:00
Matthias Kuhn
63dfae4314
Merge pull request #38348 from suricactus/fix_virt_csv2
Fix delimitedtext in virtual layers
2020-08-20 13:55:52 +02:00
Denis Rouzaud
d433f58756
Fix bash regex replace 2020-08-20 13:16:36 +02:00
Denis Rouzaud
d7e65124f3
Fix matrix 2020-08-20 12:56:51 +02:00
Denis Rouzaud
8bbecf6696
Rename manual.yml to build-docker.yml 2020-08-20 12:23:17 +02:00
Denis Rouzaud
5adcc9fa9f
Add Github workflow to build Docker images 2020-08-20 12:22:59 +02:00
signedav
cbad71c2cd clear expression on empty value and set expression when there is a value. this fixes #37843 2020-08-20 10:32:38 +02:00
Nyall Dawson
f496173bd7 Fix messy doxygen blocks which mess with sipify script
Fixes #38291
2020-08-20 17:01:35 +10:00
Alexander Bruy
a7a5d78c65
Merge pull request #38347 from alexbruy/browser-unhide
allow users to unhide paths directly from browser (fix #22290)
2020-08-20 07:51:16 +03:00