Skip to content

Commit

Permalink
Merge branch 'qgis:master' into gdal-tiff-use-tags-for-name
Browse files Browse the repository at this point in the history
  • Loading branch information
oparkins authored May 1, 2024
2 parents 6644c0e + 56f962b commit d91b780
Show file tree
Hide file tree
Showing 244 changed files with 11,837 additions and 2,686 deletions.
3 changes: 0 additions & 3 deletions .github/workflows/build_artifact_comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ on:
workflows: [🪟 MingW64 Windows 64bit Build]
types:
- completed
branches-ignore:
- 'master'
- 'release*'

permissions:
contents: read
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/macos-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ env:
jobs:
mac_os_build:
if: github.repository == 'qgis/QGIS'
runs-on: macos-latest
runs-on: macos-13
steps:
- uses: actions/checkout@v4

Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/write_failure_comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ on:
workflows: [🧪 QGIS tests]
types:
- completed
branches-ignore:
- 'master'
- 'release*'

permissions:
contents: read
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,7 @@ if(WITH_CORE)
# get the Qt plugins directory
get_target_property(QMAKE_EXECUTABLE ${QT_VERSION_BASE}::qmake LOCATION)

EXEC_PROGRAM(${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_PLUGINS" RETURN_VALUE return_code OUTPUT_VARIABLE DEFAULT_QT_PLUGINS_DIR )
execute_process(COMMAND ${QMAKE_EXECUTABLE} -query QT_INSTALL_PLUGINS RESULT_VARIABLE return_code OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE DEFAULT_QT_PLUGINS_DIR )
set (QT_PLUGINS_DIR ${DEFAULT_QT_PLUGINS_DIR} CACHE STRING "Path to installation directory for Qt Plugins. Defaults to Qt native plugin directory")

if (BUILD_WITH_QT6)
Expand Down Expand Up @@ -1102,7 +1102,7 @@ if (WITH_CORE AND WITH_BINDINGS)
include(SIPMacros)

set(SIP_INCLUDES ${PYQT_SIP_DIR} ${CMAKE_SOURCE_DIR}/python)
set(SIP_CONCAT_PARTS 25)
set(SIP_CONCAT_PARTS 26)

if (NOT BINDINGS_GLOBAL_INSTALL)
set(Python_SITEARCH ${QGIS_DATA_DIR}/python)
Expand Down
10 changes: 6 additions & 4 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -561,14 +561,16 @@ dnf5 install -y --setopt=install_weak_deps=False proj-devel

Installation of all needed build dependencies:

```bash
dnf5 install qt6-qtbase-private-devel qt6-qtwebkit-devel qt6-qtlocation-devel qt6-qtmultimedia-devel qt6-qttools-static qca-qt6-devel qca-qt6-ossl qt6-qt3d-devel python3-qt6-devel python3-qscintilla-qt6-devel qscintilla-qt6-devel python3-qscintilla-qt6 clang flex bison geos-devel gdal gdal-devel hdf5-devel sqlite-devel libspatialite-devel qt6-qtsvg-devel spatialindex-devel expat-devel netcdf-devel proj-devel qwt-qt6-devel gsl-devel PDAL PDAL-devel postgresql-devel cmake python3-gdal gdal-python-tools python3-psycopg2 python3-PyYAML python3-pygments python3-jinja2 python3-OWSLib qca-qt6-ossl qwt-qt6-devel qtkeychain-qt6-devel libzip-devel exiv2-devel PyQt-builder protobuf-lite protobuf-lite-devel libzstd-devel qt6-qtserialport-devel draco-devel python3-devel qt6-qt5compat-devel
```
|Distribution|Install command for packages|
|------------|----------------------------|
| Fedora 40 Workstation | ``dnf install qt6-qtbase-private-devel qt6-qtlocation-devel qt6-qtmultimedia-devel qt6-qttools-static qca-qt6-devel qca-qt6-ossl qt6-qt3d-devel qt6-qtwebengine-devel python3-pyqt6-devel python3-qscintilla-qt6-devel qscintilla-qt6-devel python3-qscintilla-qt6 clang flex bison geos-devel gdal gdal-devel hdf5-devel sqlite-devel libspatialite-devel qt6-qtsvg-devel spatialindex-devel expat-devel netcdf-devel proj-devel qwt-qt6-devel gsl-devel PDAL PDAL-devel postgresql-devel cmake python3-gdal gdal-python-tools python3-psycopg2 python3-PyYAML python3-pygments python3-jinja2 python3-OWSLib qca-qt6-ossl qwt-qt6-devel qtkeychain-qt6-devel libzip-devel exiv2-devel PyQt-builder protobuf-lite protobuf-lite-devel libzstd-devel qt6-qtserialport-devel draco-devel python3-devel qt6-qt5compat-devel python3-pyqt6-webengine`` |
| Fedora 39 Workstation | ``dnf install qt6-qtbase-private-devel qt6-qtwebkit-devel qt6-qtlocation-devel qt6-qtmultimedia-devel qt6-qttools-static qca-qt6-devel qt6-qtwebengine-devel qca-qt6-ossl qt6-qt3d-devel python3-qt6-devel python3-qscintilla-qt6-devel qscintilla-qt6-devel python3-qscintilla-qt6 clang flex bison geos-devel gdal gdal-devel hdf5-devel sqlite-devel libspatialite-devel qt6-qtsvg-devel spatialindex-devel expat-devel netcdf-devel proj-devel qwt-qt6-devel gsl-devel PDAL PDAL-devel postgresql-devel cmake python3-gdal gdal-python-tools python3-psycopg2 python3-PyYAML python3-pygments python3-jinja2 python3-OWSLib qca-qt6-ossl qwt-qt6-devel qtkeychain-qt6-devel libzip-devel exiv2-devel PyQt-builder protobuf-lite protobuf-lite-devel libzstd-devel qt6-qtserialport-devel draco-devel python3-devel qt6-qt5compat-devel`` |


To build,

```bash
cmake .. -DBUILD_WITH_QT5=OFF -DBUILD_WITH_QT6=ON -DWITH_QTWEBKIT=OFF
cmake .. -DBUILD_WITH_QT6=ON -DWITH_QTWEBKIT=OFF -DWITH_QTWEBENGINE=ON
```

# 4. Building on Windows
Expand Down
15 changes: 6 additions & 9 deletions cmake/FindGDAL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,8 @@ if(NOT GDAL_FOUND)
IF (GDAL_CONFIG)

## extract gdal version
EXEC_PROGRAM(${GDAL_CONFIG}
ARGS --version
OUTPUT_VARIABLE GDAL_VERSION )
execute_process(COMMAND ${GDAL_CONFIG} --version
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE GDAL_VERSION )
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" GDAL_VERSION_MAJOR "${GDAL_VERSION}")
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" GDAL_VERSION_MINOR "${GDAL_VERSION}")
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" GDAL_VERSION_MICRO "${GDAL_VERSION}")
Expand All @@ -123,9 +122,8 @@ if(NOT GDAL_FOUND)
ENDIF( (GDAL_VERSION_MAJOR EQUAL 3) AND (GDAL_VERSION_MINOR EQUAL 0) AND (GDAL_VERSION_MICRO LESS 3) )

# set INCLUDE_DIR to prefix+include
EXEC_PROGRAM(${GDAL_CONFIG}
ARGS --prefix
OUTPUT_VARIABLE GDAL_PREFIX)
execute_process(COMMAND ${GDAL_CONFIG} --prefix
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE GDAL_PREFIX)
#SET(GDAL_INCLUDE_DIR ${GDAL_PREFIX}/include CACHE STRING INTERNAL)
FIND_PATH(GDAL_INCLUDE_DIR
gdal.h
Expand All @@ -136,9 +134,8 @@ if(NOT GDAL_FOUND)
)

## extract link dirs for rpath
EXEC_PROGRAM(${GDAL_CONFIG}
ARGS --libs
OUTPUT_VARIABLE GDAL_CONFIG_LIBS )
execute_process(COMMAND ${GDAL_CONFIG} --libs
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE GDAL_CONFIG_LIBS )

## split off the link dirs (for rpath)
## use regular expression to match wildcard equivalent "-L*<endchar>"
Expand Down
15 changes: 6 additions & 9 deletions cmake/FindGEOS.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,8 @@ if(NOT GEOS_FOUND)

IF (GEOS_CONFIG)

EXEC_PROGRAM(${GEOS_CONFIG}
ARGS --version
OUTPUT_VARIABLE GEOS_VERSION)
execute_process(COMMAND ${GEOS_CONFIG} --version
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE GEOS_VERSION)
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" GEOS_VERSION_MAJOR "${GEOS_VERSION}")
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" GEOS_VERSION_MINOR "${GEOS_VERSION}")

Expand All @@ -97,9 +96,8 @@ if(NOT GEOS_FOUND)
ENDIF (GEOS_VERSION_MAJOR LESS 3 OR (GEOS_VERSION_MAJOR EQUAL 3 AND GEOS_VERSION_MINOR LESS 9) )

# set INCLUDE_DIR to prefix+include
EXEC_PROGRAM(${GEOS_CONFIG}
ARGS --prefix
OUTPUT_VARIABLE GEOS_PREFIX)
execute_process(COMMAND ${GEOS_CONFIG} --prefix
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE GEOS_PREFIX)

FIND_PATH(GEOS_INCLUDE_DIR
geos_c.h
Expand All @@ -109,9 +107,8 @@ if(NOT GEOS_FOUND)
)

## extract link dirs for rpath
EXEC_PROGRAM(${GEOS_CONFIG}
ARGS --libs
OUTPUT_VARIABLE GEOS_CONFIG_LIBS )
execute_process(COMMAND ${GEOS_CONFIG} --libs
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE GEOS_CONFIG_LIBS )

## split off the link dirs (for rpath)
## use regular expression to match wildcard equivalent "-L*<endchar>"
Expand Down
5 changes: 2 additions & 3 deletions cmake/FindPDAL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,8 @@ ENDIF (PDAL_INCLUDE_DIR AND PDAL_CPP_LIBRARY AND PDAL_UTIL_LIBRARY AND PDAL_BIN)

IF (PDAL_FOUND)
# extract PDAL version
EXEC_PROGRAM(${PDAL_BIN}
ARGS --version
OUTPUT_VARIABLE PDAL_VERSION_OUT )
execute_process(COMMAND ${PDAL_BIN} --version
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE PDAL_VERSION_OUT )
STRING(REGEX REPLACE "^.*([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\1" PDAL_VERSION_MAJOR "${PDAL_VERSION_OUT}")
STRING(REGEX REPLACE "^.*([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\2" PDAL_VERSION_MINOR "${PDAL_VERSION_OUT}")
STRING(REGEX REPLACE "^.*([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\3" PDAL_VERSION_PATCH "${PDAL_VERSION_OUT}")
Expand Down
15 changes: 6 additions & 9 deletions cmake/FindPostgres.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -68,21 +68,18 @@ ELSE(WIN32)

IF (POSTGRES_CONFIG)
# set INCLUDE_DIR
EXEC_PROGRAM(${POSTGRES_CONFIG}
ARGS --includedir
OUTPUT_VARIABLE PG_TMP)
execute_process(COMMAND ${POSTGRES_CONFIG} --includedir
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE PG_TMP)
SET(POSTGRES_INCLUDE_DIR ${PG_TMP} CACHE STRING INTERNAL)

# set LIBRARY_DIR
EXEC_PROGRAM(${POSTGRES_CONFIG}
ARGS --libdir
OUTPUT_VARIABLE PG_TMP)
execute_process(COMMAND ${POSTGRES_CONFIG} --libdir
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE PG_TMP)
IF (APPLE)
SET(POSTGRES_LIBRARY ${PG_TMP}/libpq.dylib CACHE STRING INTERNAL)
ELSEIF (CYGWIN)
EXEC_PROGRAM(${POSTGRES_CONFIG}
ARGS --libs
OUTPUT_VARIABLE PG_TMP)
execute_process(COMMAND ${POSTGRES_CONFIG} --libs
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE PG_TMP)

STRING(REGEX MATCHALL "[-][L]([^ ;])+" _LDIRS "${PG_TMP}")
STRING(REGEX MATCHALL "[-][l]([^ ;])+" _LLIBS "${PG_TMP}")
Expand Down
4 changes: 2 additions & 2 deletions cmake/FindPyQt5.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ ELSE(EXISTS PYQT5_VERSION_STR)
ENDIF(_pyqt5_metadata)

IF(PYQT5_VERSION_STR)
SET(PYQT5_MOD_DIR "${Python_SITEARCH}/PyQt5")
SET(PYQT5_SIP_DIR "${Python_SITEARCH}/PyQt5/bindings")
EXECUTE_PROCESS(COMMAND ${Python_EXECUTABLE} -c "import os; import PyQt5; print(os.path.dirname(PyQt5.__file__), end='')" OUTPUT_VARIABLE PYQT5_MOD_DIR)
SET(PYQT5_SIP_DIR "${PYQT5_MOD_DIR}/bindings")
FIND_PROGRAM(__pyuic5 "pyuic5")
GET_FILENAME_COMPONENT(PYQT5_BIN_DIR ${__pyuic5} DIRECTORY)

Expand Down
4 changes: 2 additions & 2 deletions cmake/FindPyQt6.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ ELSE(EXISTS PYQT6_VERSION_STR)
ENDIF(_pyqt6_metadata)

IF(PYQT6_VERSION_STR)
SET(PYQT6_MOD_DIR "${Python_SITEARCH}/PyQt6")
SET(PYQT6_SIP_DIR "${Python_SITEARCH}/PyQt6/bindings")
EXECUTE_PROCESS(COMMAND ${Python_EXECUTABLE} -c "import os; import PyQt6; print(os.path.dirname(PyQt6.__file__), end='')" OUTPUT_VARIABLE PYQT6_MOD_DIR)
SET(PYQT6_SIP_DIR "${PYQT6_MOD_DIR}/bindings")
FIND_PROGRAM(__pyuic6 "pyuic6")
GET_FILENAME_COMPONENT(PYQT6_BIN_DIR ${__pyuic6} DIRECTORY)

Expand Down
8 changes: 4 additions & 4 deletions cmake_templates/cmake_uninstall.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ STRING(REGEX REPLACE "\n" ";" files "${files}")
FOREACH(file ${files})
MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
IF(EXISTS "$ENV{DESTDIR}${file}")
EXEC_PROGRAM(
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VALUE rm_retval
execute_process(
COMMAND "@CMAKE_COMMAND@" -E remove "$ENV{DESTDIR}${file}"
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE rm_out
RESULT_VARIABLE rm_retval
)
IF("${rm_retval}" STREQUAL 0)
ELSE("${rm_retval}" STREQUAL 0)
Expand Down
6 changes: 3 additions & 3 deletions external/nmea/parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -415,14 +415,14 @@ int nmea_parse_GPRMC( const char *buff, int buff_sz, nmeaGPRMC *pack )
nmea_trace_buff( buff, buff_sz );

nsen = nmea_scanf( buff, buff_sz,
"$G%CRMC,%s,%C,%f,%C,%f,%C,%f,%f,%2d%2d%2d,%f,%C,%C*",
"$G%CRMC,%s,%C,%f,%C,%f,%C,%f,%f,%2d%2d%2d,%f,%C,%C,%C*",
&( type ), &( time_buff[0] ),
&( pack->status ), &( pack->lat ), &( pack->ns ), &( pack->lon ), &( pack->ew ),
&( pack->speed ), &( pack->direction ),
&( pack->utc.day ), &( pack->utc.mon ), &( pack->utc.year ),
&( pack->declination ), &( pack->declin_ew ), &( pack->mode ) );
&( pack->declination ), &( pack->declin_ew ), &( pack->mode ), &( pack->navstatus ) );

if ( nsen != 14 && nsen != 15 )
if ( nsen < 14 || nsen > 16 )
{
nmea_error( "G?RMC parse error!" );
return 0;
Expand Down
2 changes: 1 addition & 1 deletion external/nmea/sentence.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ typedef struct _nmeaGPRMC
double declination; //!< Magnetic variation degrees (Easterly var. subtracts from true course)
char declin_ew; //!< [E]ast or [W]est
char mode; //!< Mode indicator of fix type (A = autonomous, D = differential, E = estimated, N = not valid, S = simulator)

char navstatus; //!< NMEA v4.1 - Navigation Status type (S = Safe, C = Caution, U = Unsafe, V = Navigational status not valid)
} nmeaGPRMC;

/**
Expand Down
7 changes: 7 additions & 0 deletions python/PyQt6/core/auto_additions/qgis.py
Original file line number Diff line number Diff line change
Expand Up @@ -3165,6 +3165,13 @@
Qgis.ProcessingModelChildParameterSource.__doc__ = "Processing model child parameter sources.\n\n.. versionadded:: 3.34\n\n" + '* ``ModelParameter``: ' + Qgis.ProcessingModelChildParameterSource.ModelParameter.__doc__ + '\n' + '* ``ChildOutput``: ' + Qgis.ProcessingModelChildParameterSource.ChildOutput.__doc__ + '\n' + '* ``StaticValue``: ' + Qgis.ProcessingModelChildParameterSource.StaticValue.__doc__ + '\n' + '* ``Expression``: ' + Qgis.ProcessingModelChildParameterSource.Expression.__doc__ + '\n' + '* ``ExpressionText``: ' + Qgis.ProcessingModelChildParameterSource.ExpressionText.__doc__ + '\n' + '* ``ModelOutput``: ' + Qgis.ProcessingModelChildParameterSource.ModelOutput.__doc__
# --
Qgis.ProcessingModelChildParameterSource.baseClass = Qgis
# monkey patching scoped based enum
Qgis.ProcessingModelChildAlgorithmExecutionStatus.NotExecuted.__doc__ = "Child has not been executed"
Qgis.ProcessingModelChildAlgorithmExecutionStatus.Success.__doc__ = "Child was successfully executed"
Qgis.ProcessingModelChildAlgorithmExecutionStatus.Failed.__doc__ = "Child encountered an error while executing"
Qgis.ProcessingModelChildAlgorithmExecutionStatus.__doc__ = "Reflects the status of a child algorithm in a Processing model.\n\n.. versionadded:: 3.38\n\n" + '* ``NotExecuted``: ' + Qgis.ProcessingModelChildAlgorithmExecutionStatus.NotExecuted.__doc__ + '\n' + '* ``Success``: ' + Qgis.ProcessingModelChildAlgorithmExecutionStatus.Success.__doc__ + '\n' + '* ``Failed``: ' + Qgis.ProcessingModelChildAlgorithmExecutionStatus.Failed.__doc__
# --
Qgis.ProcessingModelChildAlgorithmExecutionStatus.baseClass = Qgis
QgsProcessingParameterTinInputLayers.Type = Qgis.ProcessingTinInputLayerType
# monkey patching scoped based enum
QgsProcessingParameterTinInputLayers.Vertices = Qgis.ProcessingTinInputLayerType.Vertices
Expand Down
1 change: 1 addition & 0 deletions python/PyQt6/core/auto_additions/qgsdxfexport.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# The following has been generated automatically from src/core/dxf/qgsdxfexport.h
QgsDxfExport.FlagNoMText = QgsDxfExport.Flag.FlagNoMText
QgsDxfExport.FlagOnlySelectedFeatures = QgsDxfExport.Flag.FlagOnlySelectedFeatures
QgsDxfExport.FlagHairlineWidthExport = QgsDxfExport.Flag.FlagHairlineWidthExport
QgsDxfExport.Flags = lambda flags=0: QgsDxfExport.Flag(flags)
# monkey patching scoped based enum
QgsDxfExport.ExportResult.Success.__doc__ = "Successful export"
Expand Down
10 changes: 9 additions & 1 deletion python/PyQt6/core/auto_generated/dxf/qgsdxfexport.sip.in
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Exports QGIS layers to the DXF format.

struct DxfLayer
{
DxfLayer( QgsVectorLayer *vl, int layerOutputAttributeIndex = -1, bool buildDDBlocks = true, int ddBlocksMaxNumberOfClasses = -1 );
DxfLayer( QgsVectorLayer *vl, int layerOutputAttributeIndex = -1, bool buildDDBlocks = DEFAULT_DXF_DATA_DEFINED_BLOCKS, int ddBlocksMaxNumberOfClasses = -1, QString overriddenName = QString() );

QgsVectorLayer *layer() const;
%Docstring
Expand Down Expand Up @@ -66,6 +66,13 @@ Returns the maximum number of data defined symbol classes for which blocks are c

:return:

.. versionadded:: 3.38
%End

QString overriddenName() const;
%Docstring
Returns the overridden layer name to be used in the exported DXF.

.. versionadded:: 3.38
%End

Expand All @@ -75,6 +82,7 @@ Returns the maximum number of data defined symbol classes for which blocks are c
{
FlagNoMText,
FlagOnlySelectedFeatures,
FlagHairlineWidthExport
};
typedef QFlags<QgsDxfExport::Flag> Flags;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,9 @@ onto a scene with custom composition modes.
%End
public:

QgsLayoutEffect() /Deprecated/;
QgsLayoutEffect();
%Docstring
Constructor for QgsLayoutEffect.

.. deprecated:: QGIS 3.34
-- this class should not be used, it is non-stable and results in crashes. See https://bugreports.qt.io/browse/QTBUG-58501.
%End

void setCompositionMode( QPainter::CompositionMode mode ) /Deprecated/;
Expand Down
Loading

0 comments on commit d91b780

Please sign in to comment.