Merged master fixed conflict.

This commit is contained in:
alisovenko 2017-01-10 14:52:16 +03:00
commit 33955c88ce
2053 changed files with 10260 additions and 24594 deletions

View File

@ -13,6 +13,7 @@ trans.cs = i18n/qgis_cs.ts
trans.da = i18n/qgis_da.ts trans.da = i18n/qgis_da.ts
trans.de = i18n/qgis_de.ts trans.de = i18n/qgis_de.ts
trans.el = i18n/qgis_el.ts trans.el = i18n/qgis_el.ts
trans.eo = i18n/qgis_eo.ts
trans.es = i18n/qgis_es.ts trans.es = i18n/qgis_es.ts
trans.et = i18n/qgis_et.ts trans.et = i18n/qgis_et.ts
trans.eu = i18n/qgis_eu.ts trans.eu = i18n/qgis_eu.ts

View File

@ -564,32 +564,15 @@ IF(COMMAND cmake_policy)
ENDIF(COMMAND cmake_policy) ENDIF(COMMAND cmake_policy)
IF (WIN32) IF (WIN32)
SET(DLLIMPORT "__declspec(dllimport)")
SET(DLLEXPORT "__declspec(dllexport)")
ELSE (WIN32)
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
SET(DLLEXPORT "__attribute__ ((visibility (\\\"default\\\")))")
ELSE()
SET(DLLEXPORT "")
ENDIF()
IF(PEDANTIC AND NOT APPLE) IF(PEDANTIC AND NOT APPLE)
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined") SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined")
ENDIF(PEDANTIC AND NOT APPLE) ENDIF(PEDANTIC AND NOT APPLE)
ENDIF(WIN32) ENDIF(WIN32)
ADD_DEFINITIONS("-DCORE_EXPORT=${DLLIMPORT}")
ADD_DEFINITIONS("-DGUI_EXPORT=${DLLIMPORT}")
ADD_DEFINITIONS("-DPYTHON_EXPORT=${DLLIMPORT}")
ADD_DEFINITIONS("-DANALYSIS_EXPORT=${DLLIMPORT}")
ADD_DEFINITIONS("-DAPP_EXPORT=${DLLIMPORT}")
ADD_DEFINITIONS("-DCUSTOMWIDGETS_EXPORT=${DLLIMPORT}")
ADD_DEFINITIONS("-DSERVER_EXPORT=${DLLIMPORT}")
SET(CMAKE_CXX_VISIBILITY_PRESET hidden) SET(CMAKE_CXX_VISIBILITY_PRESET hidden)
INCLUDE(GenerateExportHeader)
############################################################# #############################################################
# user-changeable settings which can be used to customize # user-changeable settings which can be used to customize

59
INSTALL
View File

@ -1,10 +1,10 @@
QGIS QGIS
Building QGIS from source - step by step Building QGIS from source - step by step
Monday November 07, 2016 Monday January 09, 2017
Last Updated: Monday November 07, 2016 Last Updated: Monday January 09, 2017
Last Change : Monday November 07, 2016 Last Change : Monday January 09, 2017
1. Introduction 1. Introduction
@ -87,7 +87,7 @@ source directory.
2. Overview 2. Overview
=========== ===========
QGIS, like a number of major projects (eg. KDE 4.0), uses CMake QGIS, like a number of major projects (e.g., KDE 4.0), uses CMake
(http://www.cmake.org) for building from source. (http://www.cmake.org) for building from source.
Following a summary of the required dependencies for building: Following a summary of the required dependencies for building:
@ -100,14 +100,17 @@ Required build tools:
Required build dependencies: Required build dependencies:
- Qt >= 4.8.0 - Qt >= 5.3.0
- Proj >= 4.4.x - Proj >= 4.4.x
- GEOS >= 3.4 - GEOS >= 3.4
- Sqlite3 >= 3.0.0 - Sqlite3 >= 3.0.0
- GDAL/OGR >= 1.4.x - SpatiaLite
- libspatialindex
- GDAL/OGR >= 2.0
- Qwt >= 5.0 & (< 6.1 with internal QwtPolar) - Qwt >= 5.0 & (< 6.1 with internal QwtPolar)
- expat >= 1.95 - expat >= 1.95
- QScintilla2 - QScintilla2
- QCA
Optional dependencies: Optional dependencies:
@ -118,14 +121,14 @@ Optional dependencies:
- for georeferencer - GSL >= 1.8 - for georeferencer - GSL >= 1.8
- for postgis support and SPIT plugin - PostgreSQL >= 8.0.x - for postgis support and SPIT plugin - PostgreSQL >= 8.0.x
- for gps plugin - gpsbabel - for gps plugin - gpsbabel
- for mapserver export and PyQGIS - Python >= 2.3 (2.5+ preferred) - for mapserver export and PyQGIS - Python >= 3.3
- for python support - SIP >= 4.12, PyQt >= 4.8.3 must match Qt version, Qscintilla2 - for python support - SIP >= 4.12, PyQt >= 5.3 must match Qt version, Qscintilla2
- for qgis mapserver - FastCGI - for qgis mapserver - FastCGI
- for oracle provider - Oracle OCI library - for oracle provider - Oracle OCI library
Indirect dependencies: Indirect dependencies:
Some proprietary formats (eg. ECW and MrSid) supported by GDAL require Some proprietary formats (e.g., ECW and MrSid) supported by GDAL require
proprietary third party libraries. QGIS doesn't need any of those itself to proprietary third party libraries. QGIS doesn't need any of those itself to
build, but will only support those formats if GDAL is built accordingly. Refer build, but will only support those formats if GDAL is built accordingly. Refer
to http://gdal.org/formats_list.html ff. for instructions how to include to http://gdal.org/formats_list.html ff. for instructions how to include
@ -262,27 +265,55 @@ interactive dialog.
Now on with the build: Now on with the build:
make make -jX
make install
It may take a little while to build depending on your platform. where X is the number of available cores. Depending on your platform,
this can speed up the build time considerably.
Then you can directly run from the build directory:
./output/bin/qgis
Another option is to install to your system:
make install
After that you can try to run QGIS: After that you can try to run QGIS:
$HOME/apps/bin/qgis $HOME/apps/bin/qgis
If all has worked properly the QGIS application should start up and appear If all has worked properly the QGIS application should start up and appear
on your screen. If you get the error message "error while loading shared libraries", on your screen. If you get the error message "error while loading shared libraries",
execute this command in your shell. execute this command in your shell.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HOME}/apps/lib/ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HOME}/apps/lib/
Optionally, if you already know what aspects you want in your custom build
then you can skip the interactive ccmake .. part by using the cmake -D
option for each aspect, e.g.:
cmake -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=${HOME}/apps ..
Also, if you want to speed your build times, you can easily do it with ninja,
an alternative to make with similar build options.
For example, to configure your build you can do either one of:
ccmake -G Ninja ..
cmake -G Ninja -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=${HOME}/apps ..
Build and install with ninja:
ninja (uses all cores by default; also supports the above described -jX option)
ninja install
3.8. Building Debian packages 3.8. Building Debian packages
============================= =============================
Instead of creating a personal installation as in the previous step you can Instead of creating a personal installation as in the previous step you can
also create debian package. This is done from the QGIS root directory, where also create debian package. This is done from the QGIS root directory, where
you'll find a debian directory. you'll find a debian directory.
First you need to install the debian packaging tools once: First you need to install the debian packaging tools once:

14
NEWS
View File

@ -1,6 +1,6 @@
QGIS News QGIS News
Change history for the QGIS Project Change history for the QGIS Project
Monday November 07, 2016 Monday January 09, 2017
------------------------------------------------------------------------ ------------------------------------------------------------------------
@ -39,12 +39,12 @@ Monday November 07, 2016
------------------------------------------------------------------------ ------------------------------------------------------------------------
Last Updated: Monday November 07, 2016 Last Updated: Monday January 09, 2017
Last Change : Wednesday July 27, 2016 Last Change : Sunday January 01, 2017
1. What's new in Version 2.16 'Nødebo'? 1. What's new in Version 2.16 'Nødebo'?
======================================== =======================================
This release has following new features: This release has following new features:
@ -814,7 +814,7 @@ changed so we will just provide a bullet list of key new features here.
- Optionally re-use entered attribute values for next digitized feature. - Optionally re-use entered attribute values for next digitized feature.
- Allow merging/assigning attribute values to a set of features.- - Allow merging/assigning attribute values to a set of features.-
- Allow OGR 'save as' without attributes (for eg. DGN/DXF). - Allow OGR 'save as' without attributes (e.g., DGN/DXF).
14.7. Api and Developer Centric 14.7. Api and Developer Centric
@ -908,7 +908,7 @@ as' option, you can now specify OGR creation options.
15.3. Labeling (New generation only) 15.3. Labeling (New generation only)
===================================== ====================================
- Data defined label position in labeling-ng. - Data defined label position in labeling-ng.
- Line wrapping, data defined font and buffer settings for labeling-ng. - Line wrapping, data defined font and buffer settings for labeling-ng.
@ -1055,7 +1055,7 @@ we recommend that you use a copy of QGIS from our Long Term Support (LTS)1.0.x
release series. In all other cases we recommend that you use this version. release series. In all other cases we recommend that you use this version.
This release includes around 200 bug fixes, nearly 30 new features and has had This release includes around 200 bug fixes, nearly 30 new features and has had
a lot of love and attention poured in to it to take our favourite desktop GIS a lot of love and attention poured in to it to take our favorite desktop GIS
application another step on the road to GIS nirvana! So much has happened in application another step on the road to GIS nirvana! So much has happened in
the 3 months since our last release that it is impossible to document the 3 months since our last release that it is impossible to document
everything here. Instead we will just highlight a couple of important new everything here. Instead we will just highlight a couple of important new

View File

@ -13,4 +13,6 @@
# # # #
########################################################################### ###########################################################################
ccache -s
[ -r /tmp/ctest-important.log ] && cat /tmp/ctest-important.log [ -r /tmp/ctest-important.log ] && cat /tmp/ctest-important.log

View File

@ -20,6 +20,7 @@ ln -s ${HOME}/osgeo4travis/bin/ccache ${HOME}/osgeo4travis/bin/clang++-${LLVM_VE
ln -s ${HOME}/osgeo4travis/bin/ccache ${HOME}/osgeo4travis/bin/clang-${LLVM_VERSION} ln -s ${HOME}/osgeo4travis/bin/ccache ${HOME}/osgeo4travis/bin/clang-${LLVM_VERSION}
ccache -s ccache -s
ccache -z
export CXX="clang++-${LLVM_VERSION}" export CXX="clang++-${LLVM_VERSION}"
export CC="clang-${LLVM_VERSION}" export CC="clang-${LLVM_VERSION}"
@ -38,21 +39,39 @@ CLANG_WARNINGS=""
# Include this line for debug reasons # Include this line for debug reasons
# -DCMAKE_BUILD_TYPE=RelWithDebInfo \ # -DCMAKE_BUILD_TYPE=RelWithDebInfo \
# #
cmake \ CMAKE_FLAGS="
-DCMAKE_PREFIX_PATH=/home/travis/osgeo4travis \ -DCMAKE_PREFIX_PATH=/home/travis/osgeo4travis
-DWITH_STAGED_PLUGINS=ON \ -DWITH_STAGED_PLUGINS=ON
-DWITH_GRASS=ON \ -DWITH_GRASS=ON
-DWITH_GRASS7=ON \ -DWITH_GRASS7=ON
-DGRASS_PREFIX7=/home/travis/osgeo4travis/grass-7.0.4 \ -DGRASS_PREFIX7=/home/travis/osgeo4travis/grass-7.0.4
-DSUPPRESS_QT_WARNINGS=ON \ -DSUPPRESS_QT_WARNINGS=ON
-DENABLE_MODELTEST=ON \ -DENABLE_MODELTEST=ON
-DENABLE_PGTEST=ON \ -DENABLE_PGTEST=ON
-DWITH_QSPATIALITE=ON \ -DWITH_QSPATIALITE=ON
-DWITH_QWTPOLAR=OFF \ -DWITH_QWTPOLAR=OFF
-DWITH_APIDOC=ON \ -DWITH_APIDOC=ON
-DWITH_ASTYLE=ON \ -DWITH_ASTYLE=ON
-DWITH_SERVER=ON \ -DWITH_INTERNAL_YAML=OFF
-DWITH_INTERNAL_YAML=OFF \ -DDISABLE_DEPRECATED=ON
-DDISABLE_DEPRECATED=ON \ -DCXX_EXTRA_FLAGS=${CLANG_WARNINGS}
-DCXX_EXTRA_FLAGS="$CLANG_WARNINGS" \ "
..
# The following options trigger a minimalized build to
# reduce the travis build time so we don't time out and
# have a chance of slowly filling the ccache.
if [ "$CACHE_WARMING" = true ] ; then
CMAKE_FLAGS="
${CMAKE_FLAGS}
-DWITH_DESKTOP=OFF
-DWITH_SERVER=OFF
"
else
CMAKE_FLAGS="
${CMAKE_FLAGS}
-DWITH_DESKTOP=ON
-DWITH_SERVER=ON
"
fi
cmake $CMAKE_FLAGS ..

View File

@ -18,6 +18,7 @@ export PATH=${HOME}/osgeo4travis/bin:${HOME}/osgeo4travis/sbin:${HOME}/OTB-5.6.0
export LD_LIBRARY_PATH=${HOME}/osgeo4travis/lib export LD_LIBRARY_PATH=${HOME}/osgeo4travis/lib
export CTEST_PARALLEL_LEVEL=1 export CTEST_PARALLEL_LEVEL=1
export CCACHE_TEMPDIR=/tmp export CCACHE_TEMPDIR=/tmp
ccache -M 2G
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@ -25,5 +26,11 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
export OTB_APPLICATION_PATH=${HOME}/OTB-5.6.0-Linux64/lib/otb/applications export OTB_APPLICATION_PATH=${HOME}/OTB-5.6.0-Linux64/lib/otb/applications
export LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so export LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
xvfb-run ctest -V -E "qgis_filedownloader|qgis_openstreetmaptest|qgis_wcsprovidertest|PyQgsWFSProviderGUI|qgis_ziplayertest|$(cat ${DIR}/blacklist.txt | paste -sd '|' -)" -S ./qgis-test-travis.ctest --output-on-failure
# xvfb-run ctest -V -E "qgis_openstreetmaptest|qgis_wcsprovidertest" -S ./qgis-test-travis.ctest --output-on-failure # xvfb-run ctest -V -E "qgis_openstreetmaptest|qgis_wcsprovidertest" -S ./qgis-test-travis.ctest --output-on-failure
if [ "$CACHE_WARMING" = true ] ; then
echo "WARNING: CACHE WARMING IS ACTIVE. SET CACHE_WARMING=false TO GET MEANINGFUL RESULTS."
xvfb-run ctest -V -R NOTESTS -S ./qgis-test-travis.ctest --output-on-failure
false
else
xvfb-run ctest -V -E "qgis_filedownloader|qgis_openstreetmaptest|qgis_wcsprovidertest|PyQgsWFSProviderGUI|qgis_ziplayertest|$(cat ${DIR}/blacklist.txt | paste -sd '|' -)" -S ./qgis-test-travis.ctest --output-on-failure
fi

View File

@ -61,13 +61,9 @@ ELSE(WIN32)
ENDIF (NOT GDAL_VERSION) ENDIF (NOT 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]+)" "\\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]+)" "\\2" GDAL_VERSION_MINOR "${GDAL_VERSION}")
IF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION EQUAL 1 AND GDAL_VERSION_MINOR LESS 4)) IF (GDAL_VERSION_MAJOR LESS 2)
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 1.4.0 or higher.") MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 2.0 or higher.")
ENDIF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION EQUAL 1 AND GDAL_VERSION_MINOR LESS 4)) ENDIF (GDAL_VERSION_MAJOR LESS 2)
IF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION_MAJOR EQUAL 1 AND GDAL_VERSION_MINOR LESS 11))
MESSAGE (WARNING "GDAL version is too old (${GDAL_VERSION}) to support GeoPackage. 1.11.0 or higher is recommended.")
ENDIF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION_MAJOR EQUAL 1 AND GDAL_VERSION_MINOR LESS 11))
ENDIF (GDAL_LIBRARY) ENDIF (GDAL_LIBRARY)
SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE) SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
@ -105,14 +101,10 @@ ELSE(WIN32)
# check for gdal version # check for gdal version
# version 1.2.5 is known NOT to be supported (missing CPL_STDCALL macro) # version 1.2.5 is known NOT to be supported (missing CPL_STDCALL macro)
# According to INSTALL, 1.4.0+ is required # According to INSTALL, 2.0+ is required
IF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION_MAJOR EQUAL 1 AND GDAL_VERSION_MINOR LESS 4)) IF (GDAL_VERSION_MAJOR LESS 2)
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 1.4.0 or higher.") MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 2.0 or higher.")
ENDIF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION_MAJOR EQUAL 1 AND GDAL_VERSION_MINOR LESS 4)) ENDIF (GDAL_VERSION_MAJOR LESS 2)
IF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION_MAJOR EQUAL 1 AND GDAL_VERSION_MINOR LESS 11))
MESSAGE (WARNING "GDAL version is too old (${GDAL_VERSION}) to support GeoPackage. 1.11.0 or higher is recommended.")
ENDIF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION_MAJOR EQUAL 1 AND GDAL_VERSION_MINOR LESS 11))
# set INCLUDE_DIR to prefix+include # set INCLUDE_DIR to prefix+include
EXEC_PROGRAM(${GDAL_CONFIG} EXEC_PROGRAM(${GDAL_CONFIG}

View File

@ -167,7 +167,7 @@ IF (UNIX)
IF (GRASS_FIND_VERSION EQUAL 6) IF (GRASS_FIND_VERSION EQUAL 6)
LIST(APPEND GRASS_PATHS /usr/lib64/grass64 /usr/lib/grass64) LIST(APPEND GRASS_PATHS /usr/lib64/grass64 /usr/lib/grass64)
ELSEIF (GRASS_FIND_VERSION EQUAL 7) ELSEIF (GRASS_FIND_VERSION EQUAL 7)
LIST(APPEND GRASS_PATHS /usr/lib64/grass70 /usr/lib/grass70 /usr/lib64/grass71 /usr/lib/grass71) LIST(APPEND GRASS_PATHS /usr/lib64/grass70 /usr/lib/grass70 /usr/lib64/grass71 /usr/lib/grass71 /usr/lib64/grass72 /usr/lib/grass72)
ENDIF () ENDIF ()
ENDIF (UNIX) ENDIF (UNIX)
@ -181,6 +181,7 @@ IF (APPLE)
LIST(APPEND GRASS_PATHS LIST(APPEND GRASS_PATHS
/Applications/GRASS-7.0.app/Contents/MacOS /Applications/GRASS-7.0.app/Contents/MacOS
/Applications/GRASS-7.1.app/Contents/MacOS /Applications/GRASS-7.1.app/Contents/MacOS
/Applications/GRASS-7.2.app/Contents/MacOS
) )
ENDIF () ENDIF ()
LIST(APPEND GRASS_PATHS /Applications/GRASS.app/Contents/Resources) LIST(APPEND GRASS_PATHS /Applications/GRASS.app/Contents/Resources)

View File

@ -92,7 +92,7 @@ function(FIND_QCATOOL TOOL_REQUIRED)
$ENV{OSGEO4W_ROOT}/bin $ENV{OSGEO4W_ROOT}/bin
) )
else() else()
find_program(QCATOOL_EXECUTABLE NAMES qcatool qcatool2) find_program(QCATOOL_EXECUTABLE NAMES qcatool qcatool2 qcatool-qt5)
endif() endif()
if(NOT QCATOOL_EXECUTABLE) if(NOT QCATOOL_EXECUTABLE)

View File

@ -42,7 +42,7 @@ MACRO(ADD_TXT2TAGS_FILES _sources)
ADD_CUSTOM_COMMAND( ADD_CUSTOM_COMMAND(
OUTPUT ${_out} OUTPUT ${_out}
COMMAND ${TXT2TAGS_EXECUTABLE} COMMAND ${TXT2TAGS_EXECUTABLE}
ARGS -o${_out} -t txt ${_in} ARGS --encoding=utf-8 -o${_out} -t txt ${_in}
DEPENDS ${_in} DEPENDS ${_in}
COMMENT "Building ${_out} from ${_in}" COMMENT "Building ${_out} from ${_in}"
) )

View File

@ -1448,7 +1448,7 @@ DOT_NUM_THREADS = 0
# By default doxygen will write a font called FreeSans.ttf to the output # By default doxygen will write a font called FreeSans.ttf to the output
# directory and reference it in all dot files that doxygen generates. This # directory and reference it in all dot files that doxygen generates. This
# font does not include all possible unicode characters however, so when you need # font does not include all possible Unicode characters however, so when you need
# these (or just want a differently looking font) you can specify the font name # these (or just want a differently looking font) you can specify the font name
# using DOT_FONTNAME. You need need to make sure dot is able to find the font, # using DOT_FONTNAME. You need need to make sure dot is able to find the font,
# which can be done by putting it in a standard location or by setting the # which can be done by putting it in a standard location or by setting the

2
debian/qgis.install vendored
View File

@ -1,8 +1,6 @@
usr/lib/qgis/plugins/libgeorefplugin.so usr/lib/qgis/plugins/libgeorefplugin.so
usr/lib/qgis/plugins/libgpsimporterplugin.so usr/lib/qgis/plugins/libgpsimporterplugin.so
usr/lib/qgis/plugins/libinterpolationplugin.so
usr/lib/qgis/plugins/libcoordinatecaptureplugin.so usr/lib/qgis/plugins/libcoordinatecaptureplugin.so
usr/lib/qgis/plugins/liboracleplugin.so
usr/lib/qgis/plugins/libevis.so usr/lib/qgis/plugins/libevis.so
usr/lib/qgis/plugins/libspatialqueryplugin.so usr/lib/qgis/plugins/libspatialqueryplugin.so
usr/lib/qgis/plugins/libofflineeditingplugin.so usr/lib/qgis/plugins/libofflineeditingplugin.so

View File

@ -53,6 +53,7 @@ IF(WITH_APIDOC)
${CMAKE_SOURCE_DIR}/src/core/diagram ${CMAKE_SOURCE_DIR}/src/core/diagram
${CMAKE_SOURCE_DIR}/src/core/dxf ${CMAKE_SOURCE_DIR}/src/core/dxf
${CMAKE_SOURCE_DIR}/src/core/effects ${CMAKE_SOURCE_DIR}/src/core/effects
${CMAKE_SOURCE_DIR}/src/core/fieldformatter
${CMAKE_SOURCE_DIR}/src/core/geometry ${CMAKE_SOURCE_DIR}/src/core/geometry
${CMAKE_SOURCE_DIR}/src/core/gps ${CMAKE_SOURCE_DIR}/src/core/gps
${CMAKE_SOURCE_DIR}/src/core/layertree ${CMAKE_SOURCE_DIR}/src/core/layertree

View File

@ -77,13 +77,13 @@ label{ background-color: #FFFFCC;
<DIV CLASS="header" ID="header"> <DIV CLASS="header" ID="header">
<H1>QGIS</H1> <H1>QGIS</H1>
<H2>Building QGIS from source - step by step</H2> <H2>Building QGIS from source - step by step</H2>
<H3>Monday November 07, 2016</H3> <H3>Monday January 09, 2017</H3>
</DIV> </DIV>
<DIV CLASS="body" ID="body"> <DIV CLASS="body" ID="body">
<P> <P>
Last Updated: Monday November 07, 2016 Last Updated: Monday January 09, 2017
Last Change : Monday November 07, 2016 Last Change : Monday January 09, 2017
</P> </P>
<DIV CLASS="toc"> <DIV CLASS="toc">
@ -186,7 +186,7 @@ source directory.
<H1>2. Overview</H1> <H1>2. Overview</H1>
<P> <P>
QGIS, like a number of major projects (eg. KDE 4.0), uses CMake QGIS, like a number of major projects (e.g., KDE 4.0), uses CMake
(<A HREF="http://www.cmake.org">http://www.cmake.org</A>) for building from source. (<A HREF="http://www.cmake.org">http://www.cmake.org</A>) for building from source.
</P> </P>
<P> <P>
@ -207,14 +207,17 @@ Required build dependencies:
</P> </P>
<UL> <UL>
<LI>Qt &gt;= 4.8.0 <LI>Qt &gt;= 5.3.0
<LI>Proj &gt;= 4.4.x <LI>Proj &gt;= 4.4.x
<LI>GEOS &gt;= 3.4 <LI>GEOS &gt;= 3.4
<LI>Sqlite3 &gt;= 3.0.0 <LI>Sqlite3 &gt;= 3.0.0
<LI>GDAL/OGR &gt;= 1.4.x <LI>SpatiaLite
<LI>libspatialindex
<LI>GDAL/OGR &gt;= 2.0
<LI>Qwt &gt;= 5.0 &amp; (&lt; 6.1 with internal QwtPolar) <LI>Qwt &gt;= 5.0 &amp; (&lt; 6.1 with internal QwtPolar)
<LI>expat &gt;= 1.95 <LI>expat &gt;= 1.95
<LI>QScintilla2 <LI>QScintilla2
<LI>QCA
</UL> </UL>
<P> <P>
@ -229,8 +232,8 @@ Optional dependencies:
<LI>for georeferencer - GSL &gt;= 1.8 <LI>for georeferencer - GSL &gt;= 1.8
<LI>for postgis support and SPIT plugin - PostgreSQL &gt;= 8.0.x <LI>for postgis support and SPIT plugin - PostgreSQL &gt;= 8.0.x
<LI>for gps plugin - gpsbabel <LI>for gps plugin - gpsbabel
<LI>for mapserver export and PyQGIS - Python &gt;= 2.3 (2.5+ preferred) <LI>for mapserver export and PyQGIS - Python &gt;= 3.3
<LI>for python support - SIP &gt;= 4.12, PyQt &gt;= 4.8.3 must match Qt version, Qscintilla2 <LI>for python support - SIP &gt;= 4.12, PyQt &gt;= 5.3 must match Qt version, Qscintilla2
<LI>for qgis mapserver - FastCGI <LI>for qgis mapserver - FastCGI
<LI>for oracle provider - Oracle OCI library <LI>for oracle provider - Oracle OCI library
</UL> </UL>
@ -239,7 +242,7 @@ Optional dependencies:
Indirect dependencies: Indirect dependencies:
</P> </P>
<P> <P>
Some proprietary formats (eg. ECW and MrSid) supported by GDAL require Some proprietary formats (e.g., ECW and MrSid) supported by GDAL require
proprietary third party libraries. QGIS doesn't need any of those itself to proprietary third party libraries. QGIS doesn't need any of those itself to
build, but will only support those formats if GDAL is built accordingly. Refer build, but will only support those formats if GDAL is built accordingly. Refer
to <A HREF="http://gdal.org/formats_list.html">http://gdal.org/formats_list.html</A> ff. for instructions how to include to <A HREF="http://gdal.org/formats_list.html">http://gdal.org/formats_list.html</A> ff. for instructions how to include
@ -434,13 +437,29 @@ Now on with the build:
</P> </P>
<div class="code"><PRE> <div class="code"><PRE>
make make -jX
make install
</PRE></div> </PRE></div>
<P> <P>
It may take a little while to build depending on your platform. where X is the number of available cores. Depending on your platform,
this can speed up the build time considerably.
</P> </P>
<P>
Then you can directly run from the build directory:
</P>
<div class="code"><PRE>
./output/bin/qgis
</PRE></div>
<P>
Another option is to install to your system:
</P>
<div class="code"><PRE>
make install
</PRE></div>
<P> <P>
After that you can try to run QGIS: After that you can try to run QGIS:
</P> </P>
@ -451,7 +470,7 @@ $HOME/apps/bin/qgis
<P> <P>
If all has worked properly the QGIS application should start up and appear If all has worked properly the QGIS application should start up and appear
on your screen. If you get the error message "error while loading shared libraries", on your screen. If you get the error message "error while loading shared libraries",
execute this command in your shell. execute this command in your shell.
</P> </P>
@ -459,12 +478,47 @@ execute this command in your shell.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HOME}/apps/lib/ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HOME}/apps/lib/
</PRE></div> </PRE></div>
<P>
Optionally, if you already know what aspects you want in your custom build
then you can skip the interactive ccmake .. part by using the cmake -D
option for each aspect, e.g.:
</P>
<div class="code"><PRE>
cmake -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=${HOME}/apps ..
</PRE></div>
<P>
Also, if you want to speed your build times, you can easily do it with ninja,
an alternative to make with similar build options.
</P>
<P>
For example, to configure your build you can do either one of:
</P>
<div class="code"><PRE>
ccmake -G Ninja ..
</PRE></div>
<div class="code"><PRE>
cmake -G Ninja -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=${HOME}/apps ..
</PRE></div>
<P>
Build and install with ninja:
</P>
<div class="code"><PRE>
ninja (uses all cores by default; also supports the above described -jX option)
ninja install
</PRE></div>
<A NAME="toc11"></A> <A NAME="toc11"></A>
<H2>3.8. Building Debian packages</H2> <H2>3.8. Building Debian packages</H2>
<P> <P>
Instead of creating a personal installation as in the previous step you can Instead of creating a personal installation as in the previous step you can
also create debian package. This is done from the QGIS root directory, where also create debian package. This is done from the QGIS root directory, where
you'll find a debian directory. you'll find a debian directory.
</P> </P>
<P> <P>
@ -549,7 +603,7 @@ subdirectory called `build` or `build-qt5` in it.
<H3>3.10.1. Install build dependencies</H3> <H3>3.10.1. Install build dependencies</H3>
<div class="code"><PRE> <div class="code"><PRE>
apt-get install git build-essential cmake flex bison pyqt5-dev qttools5-dev qtpositioning5-dev libqt5svg5-dev libqt5webkit5-dev libqt5gui5 libqt5scripttools5 qtscript5-dev libqca-qt5-2-dev grass-dev libgeos-dev libgdal-dev libqt5xmlpatterns5-dev libqt5scintilla2-dev pyqt5.qsci-dev python3-pyqt5.qsci libgsl-dev txt2tags libproj-dev libqwt-qt5-dev libspatialindex-dev pyqt5-dev-tools qttools5-dev-tools qt5-default python3-future python3-pyqt5.qtsql python3-psycopg2 apt-get install git build-essential cmake flex bison pyqt5-dev qttools5-dev qtpositioning5-dev libqt5svg5-dev libqt5webkit5-dev libqt5gui5 libqt5scripttools5 qtscript5-dev libqca-qt5-2-dev grass-dev libgeos-dev libgdal-dev libqt5xmlpatterns5-dev libqt5scintilla2-dev pyqt5.qsci-dev python3-pyqt5.qsci libgsl-dev txt2tags libproj-dev libqwt-qt5-dev libspatialindex-dev pyqt5-dev-tools qttools5-dev-tools qt5-default python3-future python3-pyqt5.qtsql python3-psycopg2 python3-sip-dev
</PRE></div> </PRE></div>
<P> <P>

View File

@ -50,14 +50,8 @@ Building QGIS from source - step by step
%apply vim formatting to the whole document as it screws up some formatting %apply vim formatting to the whole document as it screws up some formatting
%rather apply it selectively to paragraphs where needed. %rather apply it selectively to paragraphs where needed.
% To generate the text version of this document: % To generate output fies from this document:
% txt2tags -t txt -o INSTALL INSTALL.t2t % cmake --build $YOURBUILDDIR --target t2tdoc
% To generate the mediawiki version of this document:
% txt2tags -t wiki --no-enum-title -o INSTALL.wiki INSTALL.t2t
% To generate the html version of this document:
% txt2tags -t html -o INSTALL.html INSTALL.t2t
% To generate the LaTeX version of this document:
% txt2tags -t tex -o INSTALL.tex INSTALL.t2t; pdflatex INSTALL.tex
% End of comments % End of comments
% ------------------- % -------------------

View File

@ -37,4 +37,5 @@
<tr><td><img src="qrc:/images/flags/ar.png"></td><td>Arabic</td><td><div title="finished:9301 unfinished:130 untranslated:8807" class="bartodo"><div class="bardone" style="width:51px">51.4</div></div></td><td>Ichaouia Amine, Hosham Munier</td></tr> <tr><td><img src="qrc:/images/flags/ar.png"></td><td>Arabic</td><td><div title="finished:9301 unfinished:130 untranslated:8807" class="bartodo"><div class="bardone" style="width:51px">51.4</div></div></td><td>Ichaouia Amine, Hosham Munier</td></tr>
<tr><td><img src="qrc:/images/flags/lv.png"></td><td>Latvian</td><td><div title="finished:9178 unfinished:200 untranslated:8860" class="bartodo"><div class="bardone" style="width:50px">50.9</div></div></td><td>Maris Nartiss, Pēteris Brūns</td></tr> <tr><td><img src="qrc:/images/flags/lv.png"></td><td>Latvian</td><td><div title="finished:9178 unfinished:200 untranslated:8860" class="bartodo"><div class="bardone" style="width:50px">50.9</div></div></td><td>Maris Nartiss, Pēteris Brūns</td></tr>
<tr><td><img src="qrc:/images/flags/sk.png"></td><td>Slovak</td><td><div title="finished:7770 unfinished:806 untranslated:9662" class="bartodo"><div class="bardone" style="width:44px">44.8</div></div></td><td>Lubos Balazovic, Jana Kormanikova, Ivan Mincik</td></tr> <tr><td><img src="qrc:/images/flags/sk.png"></td><td>Slovak</td><td><div title="finished:7770 unfinished:806 untranslated:9662" class="bartodo"><div class="bardone" style="width:44px">44.8</div></div></td><td>Lubos Balazovic, Jana Kormanikova, Ivan Mincik</td></tr>
<tr><td><img src="qrc:/images/flags/hr.png"></td><td>Croatian</td><td><div title="finished:7298 unfinished:133 untranslated:10807" class="bartodo"><div class="bardone" style="width:40px">40.4</div></div></td><td>Zoran Jankovic</td></tr></table> <tr><td><img src="qrc:/images/flags/hr.png"></td><td>Croatian</td><td><div title="finished:7298 unfinished:133 untranslated:10807" class="bartodo"><div class="bardone" style="width:40px">40.4</div></div></td><td>Zoran Jankovic</td></tr>
<tr><td><img src="qrc:/images/flags/eo.png"></td><td>Esperanto</td><td><div title="finished:6918 unfinished:0 untranslated:12120" class="bartodo"><div class="bardone" style="width:36px">36.3</div></div></td><td>Augustin Roche, Nikolay Korotkiy</td></tr></table>

View File

@ -115,6 +115,9 @@ Renamed Classes {#qgis_api_break_3_0_renamed_classes}
<tr><td>QgsMultiLineStringV2<td>QgsMultiLineString <tr><td>QgsMultiLineStringV2<td>QgsMultiLineString
<tr><td>QgsMultiSurfaceV2<td>QgsMultiSurface <tr><td>QgsMultiSurfaceV2<td>QgsMultiSurface
<tr><td>QgsPointSequenceV2<td>QgsPointSequence <tr><td>QgsPointSequenceV2<td>QgsPointSequence
<tr><td>QgsProperty<td>QgsProjectProperty
<tr><td>QgsPropertyKey<td>QgsProjectPropertyKey
<tr><td>QgsPropertyValue<td>QgsProjectPropertyValue
<tr><td>QgsRandomColorsV2<td>QgsRandomColorRamp <tr><td>QgsRandomColorsV2<td>QgsRandomColorRamp
<tr><td>QgsRendererCategoryV2<td>QgsRendererCategory <tr><td>QgsRendererCategoryV2<td>QgsRendererCategory
<tr><td>QgsRendererRangeV2<td>QgsRendererRange <tr><td>QgsRendererRangeV2<td>QgsRendererRange
@ -202,6 +205,7 @@ Renamed Classes {#qgis_api_break_3_0_renamed_classes}
<tr><td>QgsApplication<td>userStyleV2Path<td>userStylePath <tr><td>QgsApplication<td>userStyleV2Path<td>userStylePath
<tr><td>QgsComposerShape<td>setUseSymbolV2<td>setUseSymbol <tr><td>QgsComposerShape<td>setUseSymbolV2<td>setUseSymbol
<tr><td>QgsIFeatureSelectionManager<td>selectedFeaturesIds<td>selectedFeatureIds <tr><td>QgsIFeatureSelectionManager<td>selectedFeaturesIds<td>selectedFeatureIds
<tr><td>QgsMapLayer<td>capitaliseLayerName<td>capitalizeLayerName
<tr><td>QgsSymbolLayerUtils<td>createSymbolLayerV2ListFromSld<td>createSymbolLayerListFromSld <tr><td>QgsSymbolLayerUtils<td>createSymbolLayerV2ListFromSld<td>createSymbolLayerListFromSld
<tr><td>QgsVectorLayer<td>editorWidgetV2Config<td>editorWidgetConfig <tr><td>QgsVectorLayer<td>editorWidgetV2Config<td>editorWidgetConfig
<tr><td>QgsVectorLayer<td>editorWidgetV2Text<td>editorWidgetText <tr><td>QgsVectorLayer<td>editorWidgetV2Text<td>editorWidgetText
@ -258,6 +262,7 @@ should now call QgsCoordinateReferenceSystem::invalidateCache() and QgsCoordinat
- QgsMapLayerRegistry. Its functionality has been moved to QgsProject. - QgsMapLayerRegistry. Its functionality has been moved to QgsProject.
- QgsMapRenderer. It has been replaced by QgsMapRendererJob with subclasses and QgsMapSettings. - QgsMapRenderer. It has been replaced by QgsMapRendererJob with subclasses and QgsMapSettings.
- QgsPseudoColorShader. This shader has been broken for some time and was replaced by QgsSingleBandPseudoColorRenderer. - QgsPseudoColorShader. This shader has been broken for some time and was replaced by QgsSingleBandPseudoColorRenderer.
- QgsProjectBadLayerGuiHandler was removed. It was unused in QGIS code and barely useful. Implement your own QgsProjectBadLayerHandler subclass if needed.
- QgsRendererV2DataDefinedMenus was removed. Use QgsDataDefinedButton instead. - QgsRendererV2DataDefinedMenus was removed. Use QgsDataDefinedButton instead.
- QgsLegacyHelpers. - QgsLegacyHelpers.
- QgsProviderCountCalcEvent and QgsProviderExtentCalcEvent. These classes were unused in QGIS core and unmaintained. - QgsProviderCountCalcEvent and QgsProviderExtentCalcEvent. These classes were unused in QGIS core and unmaintained.
@ -309,7 +314,7 @@ Data Providers {#qgis_api_break_3_0_DataProviders}
Qgis {#qgis_api_break_3_0_Qgis} Qgis {#qgis_api_break_3_0_Qgis}
---- ----
- The QGis class was renamed to Qgis for capitalisation consistency with other class names - The QGis class was renamed to Qgis for capitalization consistency with other class names
- permissiveToDouble() and permissiveToInt() where moved out of the QGis class and renamed to qgsPermissiveToDouble() and - permissiveToDouble() and permissiveToInt() where moved out of the QGis class and renamed to qgsPermissiveToDouble() and
qgsPermissiveToInt() qgsPermissiveToInt()
- The constants DEFAULT_IDENTIFY_RADIUS and MINIMUM_POINT_SIZE were removed - The constants DEFAULT_IDENTIFY_RADIUS and MINIMUM_POINT_SIZE were removed
@ -475,6 +480,12 @@ QgsColorRampShader {#qgis_api_break_3_0_QgsColorRampShader}
------------------ ------------------
- maximumColorCacheSize() and setMaximumColorCacheSize() were no longer used and are removed. - maximumColorCacheSize() and setMaximumColorCacheSize() were no longer used and are removed.
- ColorRamp_TYPE enum was renamed to Type, and its value names decapitalized
QgsColorSchemeRegistry {#qgis_api_break_3_0_QgsColorSchemeRegistry}
----------------------
- This class is no longer a singleton and instance() has been removed. Instead use QgsApplication::colorSchemeRegistry() to access an application-wide registry.
QgsComposerArrow {#qgis_api_break_3_0_QgsComposerArrow} QgsComposerArrow {#qgis_api_break_3_0_QgsComposerArrow}
@ -604,6 +615,7 @@ QgsComposerTableV2 {#qgis_api_break_3_0_QgsComposerTableV2}
QgsComposition {#qgis_api_break_3_0_QgsComposition} QgsComposition {#qgis_api_break_3_0_QgsComposition}
-------------- --------------
- constructor requires QgsProject instance as the second argument
- addItemsFromXML() has been renamed to addItemsFromXml() - addItemsFromXML() has been renamed to addItemsFromXml()
- Constructor with QgsMapRenderer parameter has been removed. Use the variant with QgsMapSettings parameter. - Constructor with QgsMapRenderer parameter has been removed. Use the variant with QgsMapSettings parameter.
- mapRenderer() has been removed. Use mapSettings() instead. - mapRenderer() has been removed. Use mapSettings() instead.
@ -680,6 +692,13 @@ QgsCptCitySelectionItem {#qgis_api_break_3_0_QgsCptCitySelectionItem}
- parseXML() has been renamed to parseXml() - parseXML() has been renamed to parseXml()
QgsCustomLayerOrderWidget {#qgis_api_break_3_0_QgsCustomLayerOrderWidget}
-------------------------
- the signature of the visibilityChanged() signal is changed to visibilityChanged( QgsLayerTreeNode *node )
QgsCRSCache {#qgis_api_break_3_0_QgsCRSCache} QgsCRSCache {#qgis_api_break_3_0_QgsCRSCache}
----------- -----------
@ -726,6 +745,12 @@ QgsDataItem {#qgis_api_break_3_0_QgsDataItem}
- emitBeginInsertItems(), emitEndInsertItems(), emitBeginRemoveItems(), emitEndRemoveItems(), emitDataChanged(), emitStateChanged() have been removed. - emitBeginInsertItems(), emitEndInsertItems(), emitBeginRemoveItems(), emitEndRemoveItems(), emitDataChanged(), emitStateChanged() have been removed.
- Favourites was renamed to Favorites - Favourites was renamed to Favorites
QgsDataItemProviderRegistry {#qgis_api_break_3_0_QgsDataItemProviderRegistry}
---------------------------
- This class is no longer a singleton and instance() has been removed. Instead use QgsApplication::dataItemProviderRegistry() to access an application-wide registry.
QgsDataProvider {#qgis_api_break_3_0_QgsDataProvider} QgsDataProvider {#qgis_api_break_3_0_QgsDataProvider}
--------------- ---------------
@ -756,11 +781,15 @@ Use renderDiagram( const QgsFeature& feature, QgsRenderContext& c, const QgsDiag
- The deprecated diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is ) method has been removed. - The deprecated diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is ) method has been removed.
Use diagramSize( const QgsFeature& feature, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is ) instead. Use diagramSize( const QgsFeature& feature, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is ) instead.
QgsDiagramInterpolationSettings {#qgis_api_break_3_0_QgsDiagramInterpolationSettings}
-------------------------------
- The classificationAttribute member variable was removed, and has been replaced by the classificationField variable which stores the string name.
QgsDiagramRenderer {#qgis_api_break_3_0_QgsDiagramRenderer} QgsDiagramRenderer {#qgis_api_break_3_0_QgsDiagramRenderer}
------------------ ------------------
- xform, fields were no longer required and are removed. - xform, fields were no longer required and are removed.
- referencedFields() no longer takes a QgsFields argument.
QgsDiagramLayerSettings {#qgis_api_break_3_0_QgsDiagramLayerSettings} QgsDiagramLayerSettings {#qgis_api_break_3_0_QgsDiagramLayerSettings}
@ -771,7 +800,15 @@ be returned in place of a null pointer.
- setCoordinateTransform() now takes a QgsCoordinateTransform object, not a pointer. Use an invalid QgsCoordinateTransform in - setCoordinateTransform() now takes a QgsCoordinateTransform object, not a pointer. Use an invalid QgsCoordinateTransform in
place of a null pointer. place of a null pointer.
- The ct member has been removed. Use coordinateTransform() and setCoordinateTransform() instead. - The ct member has been removed. Use coordinateTransform() and setCoordinateTransform() instead.
- The LinePlacementFlags enum was renamed to LinePlacementFlag
- The placement member variable was removed, and getPlacement() was renamed to placement()
- The placementFlags member variable was removed
- The priority member variable was removed, and getPriority() was renamed to priority()
- The zIndex member variable was removed, and getZIndex() was renamed to zIndex()
- The obstacle member variable was removed. setIsObstacle() and isObstacle() should be used instead.
- The dist member variable was removed. setDistance() and distance() should be used instead.
- The renderer member variable was removed, and getRenderer() was renamed to renderer()
- The showAll member variable was removed. setShowAllDiagrams() and showAllDiagrams() should be used instead.
QgsDiagramSettings {#qgis_api_break_3_0_QgsDiagramSettings} QgsDiagramSettings {#qgis_api_break_3_0_QgsDiagramSettings}
------------------ ------------------
@ -851,6 +888,12 @@ QgsExpression::Function {#qgis_api_break_3_0_QgsExpression_Function}
- `QgsExpression::Function::helptext()` has been renamed to `helpText()` - `QgsExpression::Function::helptext()` has been renamed to `helpText()`
QgsExpressionContextUtils {#qgis_api_break_3_0_QgsExpressionContextUtils}
-------------------------
- projectScope(), setProjectVariable() and setProjectVariables() require pointer to QgsProject as the first argument.
QgsFeature {#qgis_api_break_3_0_QgsFeature} QgsFeature {#qgis_api_break_3_0_QgsFeature}
---------- ----------
@ -923,6 +966,7 @@ method to determine if a geometry is valid.
- static bool compare( const QgsPolygon& p1, const QgsPolygon& p2, double epsilon ) has been renamed to comparePolygons - static bool compare( const QgsPolygon& p1, const QgsPolygon& p2, double epsilon ) has been renamed to comparePolygons
- static bool compare( const QgsMultiPolygon& p1, const QgsMultiPolygon& p2, double epsilon ) has been renamed to compareMultiPolygons - static bool compare( const QgsMultiPolygon& p1, const QgsMultiPolygon& p2, double epsilon ) has been renamed to compareMultiPolygons
- smoothLine and smoothPolygon are no longer public API (use smooth() instead) - smoothLine and smoothPolygon are no longer public API (use smooth() instead)
- avoidIntersections() got an extra argument: list of layers to include in the operation (previously read from active QgsProject)
QgsGeometryAnalyzer {#qgis_api_break_3_0_QgsGeometryAnalyzer} QgsGeometryAnalyzer {#qgis_api_break_3_0_QgsGeometryAnalyzer}
@ -985,6 +1029,11 @@ QgsEditorWidgetFactory {#qgis_api_break_3_0_QgsEditorWidgetFactory}
- `alignmentFlag` has been removed. Use QgsFieldFormatter::representValue() instead - `alignmentFlag` has been removed. Use QgsFieldFormatter::representValue() instead
- `createCache` has been removed. Use QgsFieldFormatter::representValue() instead - `createCache` has been removed. Use QgsFieldFormatter::representValue() instead
QgsGPSConnectionRegistry {#qgis_api_break_3_0_QgsGPSConnectionRegistry}
------------------------
- This class is no longer a singleton and instance() has been removed. Instead use QgsApplication::gpsConnectionRegistry() to access an application-wide registry.
QgsGraduatedRenderer {#qgis_api_break_3_0_QgsGraduatedRenderer} QgsGraduatedRenderer {#qgis_api_break_3_0_QgsGraduatedRenderer}
-------------------- --------------------
@ -1041,12 +1090,16 @@ QgsLayerTreeGroup {#qgis_api_break_3_0_QgsLayerTreeGroup}
----------------- -----------------
- readChildrenFromXML() has been renamed to readChildrenFromXml() - readChildrenFromXML() has been renamed to readChildrenFromXml()
- isVisible() is moved to QgsLayerTreeNode
- setVisible() is replaced by QgsLayerTreeNode::setItemVisibilityChecked()
- protected methods updateVisibilityFromChildren() and updateChildVisibility() removed
QgsLayerTreeLayer {#qgis_api_break_3_0_QgsLayerTreeLayer} QgsLayerTreeLayer {#qgis_api_break_3_0_QgsLayerTreeLayer}
----------------- -----------------
- setLayerName(), layerName() were renamed to setName(), name() - setLayerName(), layerName() were renamed to setName(), name()
- isVisible() is moved to QgsLayerTreeNode
- setVisible() is replaced by QgsLayerTreeNode::setItemVisibilityChecked()
QgsLayerTreeModel {#qgis_api_break_3_0_QgsLayerTreeMode} QgsLayerTreeModel {#qgis_api_break_3_0_QgsLayerTreeMode}
@ -1072,7 +1125,7 @@ QgsLayerTreeNode {#qgis_api_break_3_0_QgsLayerTreeNode}
- readCommonXML() has been renamed to readCommonXml() - readCommonXML() has been renamed to readCommonXml()
- writeCommonXML() has been renamed to writeCommonXml() - writeCommonXML() has been renamed to writeCommonXml()
- the signature of the visibilityChanged() signal is changed to visibilityChanged( QgsLayerTreeNode *node )
QgsLimitedRandomColorRampDialog {#qgis_api_break_3_0_QgsLimitedRandomRampDialog} QgsLimitedRandomColorRampDialog {#qgis_api_break_3_0_QgsLimitedRandomRampDialog}
------------------------------- -------------------------------
@ -1082,6 +1135,13 @@ and the new ramp can be retrieved after executing the dialog by calling ramp().
- Some internal methods which were previously public or protected were made private. - Some internal methods which were previously public or protected were made private.
QgsLinearlyInterpolatedDiagramRenderer {#qgis_api_break_3_0_QgsLinearlyInterpolatedDiagramRenderer}
--------------------------------------
- The classificationAttribute() and setClassificationAttribute() methods were replace by
classificationField() and setClassificationField() which use the field names instead of field
indexes.
QgsMapCanvas {#qgis_api_break_3_0_QgsMapCanvas} QgsMapCanvas {#qgis_api_break_3_0_QgsMapCanvas}
------------ ------------
@ -1129,6 +1189,7 @@ screenUpdateRequested() were removed. These members have had no effect for a num
- drawLabels() method was removed. It used old deprecated labeling. Replaced by labeling based on PAL library, see QgsLabelingEngine. - drawLabels() method was removed. It used old deprecated labeling. Replaced by labeling based on PAL library, see QgsLabelingEngine.
- readLayerXML() was renamed to readLayerXml() - readLayerXML() was renamed to readLayerXml()
- writeLayerXML() was renamed to writeLayerXml() - writeLayerXML() was renamed to writeLayerXml()
- capitaliseLayerName() was renamed to capitalizeLayerName()
QgsMapLayerRegistry {#qgis_api_break_3_0_QgsMapLayerRegistry} QgsMapLayerRegistry {#qgis_api_break_3_0_QgsMapLayerRegistry}
@ -1207,6 +1268,12 @@ QgsMarkerSymbolLayer {#qgis_api_break_3_0_QgsMarkerSymbolLayer}
- bounds() is now pure virtual and must be implemented in all subclasses. - bounds() is now pure virtual and must be implemented in all subclasses.
QgsMessageLog {#qgis_api_break_3_0_QgsMessageLog}
---------------------------
- This class is no longer a singleton and instance() has been removed. Instead use QgsApplication::messageLog() to access an application-wide log.
QgsMimeDataUtils {#qgis_api_break_3_0_QgsMimeDataUtils} QgsMimeDataUtils {#qgis_api_break_3_0_QgsMimeDataUtils}
---------------- ----------------
@ -1257,6 +1324,11 @@ QgsNumericSortTreeWidgetItem {#qgis_api_break_3_0_QgsNumericSortTreeWidge
has improved sort capabilities including the ability to set custom sort values for items has improved sort capabilities including the ability to set custom sort values for items
and for forcing certain items to always sort on top. and for forcing certain items to always sort on top.
QgsPaintEffectRegistry {#qgis_api_break_3_0_QgsPaintEffectRegistry}
----------------------
- This class is no longer a singleton and instance() has been removed. Instead use QgsApplication::paintEffectRegistry() to access an application-wide registry.
QgsPalettedRasterRenderer {#qgis_api_break_3_0_QgsPalettedRasterRenderer} QgsPalettedRasterRenderer {#qgis_api_break_3_0_QgsPalettedRasterRenderer}
------------------------- -------------------------
@ -1299,6 +1371,12 @@ QgsPluginLayer {#qgis_api_break_3_0_QgsPluginLayer}
- createMapRenderer(): default implementation (which called plugin's draw() method) has been removed. Plugin layers must implement createMapRenderer(). - createMapRenderer(): default implementation (which called plugin's draw() method) has been removed. Plugin layers must implement createMapRenderer().
QgsPluginLayerRegistry {#qgis_api_break_3_0_QgsPluginLayerRegistry}
----------------------
- This class is no longer a singleton and instance() has been removed. Instead use QgsApplication::pluginLayerRegistry() to access an application-wide registry.
QgsPointDisplacementRenderer {#qgis_api_break_3_0_QgsPointDisplacementRenderer} QgsPointDisplacementRenderer {#qgis_api_break_3_0_QgsPointDisplacementRenderer}
---------------------------- ----------------------------
@ -1323,8 +1401,16 @@ QgsProject {#qgis_api_break_3_0_QgsProject}
- title( const QString & title ) was removed. Use setTitle() instead. - title( const QString & title ) was removed. Use setTitle() instead.
- dirty( bool b ) was removed. Use setDirty() instead. - dirty( bool b ) was removed. Use setDirty() instead.
- clearProperties() was removed. Use clear() instead. - clearProperties() was removed. Use clear() instead.
- read( QDomNode& layerNode ) was renamed to readLayer( const QDomNode& layerNode ).
- read( const QFileInfo& file ) was replaced by read( const QString& filename ).
- write( const QFileInfo& file ) was replaced by write( const QString& filename ).
QgsProjectPropertyValue {#qgis_api_break_3_0_QgsProjectPropertyValue}
-----------------------
- The unused count() and entryList() methods were removed.
QgsRaster {#qgis_api_break_3_0_QgsRaster} QgsRaster {#qgis_api_break_3_0_QgsRaster}
--------- ---------
@ -1404,6 +1490,12 @@ be returned instead of a null pointer if no transformation is required.
- setCoordinateTransform() now takes a QgsCoordinateTransform reference, not a pointer. An invalid QgsCoordinateTransform should be used instead of a null pointer if no transformation is required. - setCoordinateTransform() now takes a QgsCoordinateTransform reference, not a pointer. An invalid QgsCoordinateTransform should be used instead of a null pointer if no transformation is required.
QgsRendererRegistry {#qgis_api_break_3_0_QgsRendererRegistry}
----------------------
- This class is no longer a singleton and instance() has been removed. Instead use QgsApplication::rendererRegistry() to access an application-wide registry.
QgsRendererWidget {#qgis_api_break_3_0_QgsRendererWidget} QgsRendererWidget {#qgis_api_break_3_0_QgsRendererWidget}
----------------- -----------------
@ -1465,6 +1557,7 @@ QgsSingleSymbolRendererWidget {#qgis_api_break_3_0_QgsSingleSymbolRendere
----------------------------- -----------------------------
- sizeScaleFieldChanged() and scaleMethodChanged() were removed. These settings are no longer exposed in the widget's GUI. - sizeScaleFieldChanged() and scaleMethodChanged() were removed. These settings are no longer exposed in the widget's GUI.
- The Mode enum was removed.
QgsSnapper {#qgis_api_break_3_0_QgsSnapper} QgsSnapper {#qgis_api_break_3_0_QgsSnapper}
@ -1484,6 +1577,7 @@ QgsSublayersDialog {#qgis_api_break_3_0_QgsSublayersDialog}
QgsSvgCache {#qgis_api_break_3_0_QgsSvgCache} QgsSvgCache {#qgis_api_break_3_0_QgsSvgCache}
----------- -----------
- This class is no longer a singleton and instance() has been removed. Instead use QgsApplication::svgCache() to access an application-wide cache.
- containsParamsV2() was removed. Use containsParamsV3() instead. - containsParamsV2() was removed. Use containsParamsV3() instead.
QgsStyle (renamed from QgsStyleV2) {#qgis_api_break_3_0_QgsStyle} QgsStyle (renamed from QgsStyleV2) {#qgis_api_break_3_0_QgsStyle}
@ -1517,6 +1611,11 @@ the variant which takes QgsSymbolRenderContext instead.
- evaluateDataDefinedProperty( const QString& property, const QgsFeature* feature ) was removed. Use the variant which takes QgsSymbolRenderContext instead. - evaluateDataDefinedProperty( const QString& property, const QgsFeature* feature ) was removed. Use the variant which takes QgsSymbolRenderContext instead.
- expression() was removed. Use getDataDefinedProperty or evaluateDataDefinedProperty instead. - expression() was removed. Use getDataDefinedProperty or evaluateDataDefinedProperty instead.
QgsSymbolLayerRegistry {#qgis_api_break_3_0_QgsSymbolLayerRegistry}
----------------------
- This class is no longer a singleton and instance() has been removed. Instead use QgsApplication::symbolLayerRegistry() to access an application-wide registry.
QgsSymbolLayerWidget {#qgis_api_break_3_0_QgsSymbolLayerWidget} QgsSymbolLayerWidget {#qgis_api_break_3_0_QgsSymbolLayerWidget}
-------------------- --------------------

View File

@ -177,6 +177,12 @@ div.header {
width: 80%; width: 80%;
} }
#main-nav {
width: 80%;
margin-left: auto;
margin-right: auto;
}
div.qindex, div.navpath { div.qindex, div.navpath {
width: 80%; width: 80%;
margin-left: auto; margin-left: auto;

View File

@ -1,21 +0,0 @@
#!/bin/bash
###########################################################################
# build.sh
# ---------------------
# Date : November 2010
# Copyright : (C) 2010 by Tim Sutton
# Email : tim at kartoza dot com
###########################################################################
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
###########################################################################
txt2tags -o ../INSTALL -t txt INSTALL.t2t
txt2tags -o INSTALL.html -t html INSTALL.t2t
txt2tags -o INSTALL.tex -t tex INSTALL.t2t
pdflatex INSTALL.tex
mv INSTALL.pdf ..

View File

@ -135,8 +135,8 @@ Now on with the build:
make -jX make -jX
``` ```
where X is the number of available cores. Without the -j option where X is the number of available cores. Depending on your platform,
it may take a little while to build depending on your platform. this can speed up the build time considerably.
Then you can directly run from the build directory: Then you can directly run from the build directory:
@ -164,6 +164,33 @@ execute this command in your shell.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HOME}/apps/lib/ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HOME}/apps/lib/
``` ```
Optionally, if you already know what aspects you want in your custom build
then you can skip the interactive ccmake .. part by using the cmake -D
option for each aspect, e.g.:
```
cmake -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=${HOME}/apps ..
```
Also, if you want to speed your build times, you can easily do it with ninja,
an alternative to make with similar build options.
For example, to configure your build you can do either one of:
```
ccmake -G Ninja ..
```
```
cmake -G Ninja -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=${HOME}/apps ..
```
Build and install with ninja:
```
ninja (uses all cores by default; also supports the above described -jX option)
ninja install
```
== Building Debian packages == == Building Debian packages ==

View File

@ -174,7 +174,7 @@ This release has following new features:
<LI>Map Composer: Parameterized svg support for composer svg images <LI>Map Composer: Parameterized svg support for composer svg images
<LI>Map Composer: Easier use of HTML in labels <LI>Map Composer: Easier use of HTML in labels
<LI>Map Composer: Relative links in composer labels <LI>Map Composer: Relative links in composer labels
<LI>Map Composer: Georeference outputs (eg PDF) from composer <LI>Map Composer: Georeference outputs (e.g., PDF) from composer
<LI>Map Composer: Composer maps now auto-update with presets <LI>Map Composer: Composer maps now auto-update with presets
<LI>Analysis tools: Named parameters in expressions <LI>Analysis tools: Named parameters in expressions
<LI>Analysis tools: More distance units <LI>Analysis tools: More distance units
@ -935,7 +935,7 @@ changed so we will just provide a bullet list of key new features here.
<UL> <UL>
<LI>Optionally re-use entered attribute values for next digitized feature. <LI>Optionally re-use entered attribute values for next digitized feature.
<LI>Allow merging/assigning attribute values to a set of features.- <LI>Allow merging/assigning attribute values to a set of features.-
<LI>Allow OGR 'save as' without attributes (for eg. DGN/DXF). <LI>Allow OGR 'save as' without attributes (e.g., DGN/DXF).
</UL> </UL>
</UL> </UL>

View File

@ -795,7 +795,7 @@ changed so we will just provide a bullet list of key new features here.
- Optionally re-use entered attribute values for next digitized feature. - Optionally re-use entered attribute values for next digitized feature.
- Allow merging/assigning attribute values to a set of features.- - Allow merging/assigning attribute values to a set of features.-
- Allow OGR 'save as' without attributes (for eg. DGN/DXF). - Allow OGR 'save as' without attributes (e.g., DGN/DXF).
- -
- -
@ -1023,7 +1023,7 @@ release series. In all other cases we recommend that you use this version.
This release includes around 200 bug fixes, nearly 30 new features and has had This release includes around 200 bug fixes, nearly 30 new features and has had
a lot of love and attention poured in to it to take our favourite desktop GIS a lot of love and attention poured in to it to take our favorite desktop GIS
application another step on the road to GIS nirvana! So much has happened in application another step on the road to GIS nirvana! So much has happened in
the 3 months since our last release that it is impossible to document the 3 months since our last release that it is impossible to document
everything here. Instead we will just highlight a couple of important new everything here. Instead we will just highlight a couple of important new

View File

@ -1,7 +1,7 @@
= Overview = = Overview =
QGIS, like a number of major projects (eg. KDE 4.0), uses CMake QGIS, like a number of major projects (e.g., KDE 4.0), uses CMake
(http://www.cmake.org) for building from source. (http://www.cmake.org) for building from source.
Following a summary of the required dependencies for building: Following a summary of the required dependencies for building:
@ -15,14 +15,17 @@ Required build tools:
Required build dependencies: Required build dependencies:
- Qt >= 4.8.0 - Qt >= 5.3.0
- Proj >= 4.4.x - Proj >= 4.4.x
- GEOS >= 3.4 - GEOS >= 3.4
- Sqlite3 >= 3.0.0 - Sqlite3 >= 3.0.0
- GDAL/OGR >= 1.4.x - SpatiaLite
- libspatialindex
- GDAL/OGR >= 2.0
- Qwt >= 5.0 & (< 6.1 with internal QwtPolar) - Qwt >= 5.0 & (< 6.1 with internal QwtPolar)
- expat >= 1.95 - expat >= 1.95
- QScintilla2 - QScintilla2
- QCA
- -
Optional dependencies: Optional dependencies:
@ -34,15 +37,15 @@ Optional dependencies:
- for georeferencer - GSL >= 1.8 - for georeferencer - GSL >= 1.8
- for postgis support and SPIT plugin - PostgreSQL >= 8.0.x - for postgis support and SPIT plugin - PostgreSQL >= 8.0.x
- for gps plugin - gpsbabel - for gps plugin - gpsbabel
- for mapserver export and PyQGIS - Python >= 2.3 (2.5+ preferred) - for mapserver export and PyQGIS - Python >= 3.3
- for python support - SIP >= 4.12, PyQt >= 4.8.3 must match Qt version, Qscintilla2 - for python support - SIP >= 4.12, PyQt >= 5.3 must match Qt version, Qscintilla2
- for qgis mapserver - FastCGI - for qgis mapserver - FastCGI
- for oracle provider - Oracle OCI library - for oracle provider - Oracle OCI library
- -
Indirect dependencies: Indirect dependencies:
Some proprietary formats (eg. ECW and MrSid) supported by GDAL require Some proprietary formats (e.g., ECW and MrSid) supported by GDAL require
proprietary third party libraries. QGIS doesn't need any of those itself to proprietary third party libraries. QGIS doesn't need any of those itself to
build, but will only support those formats if GDAL is built accordingly. Refer build, but will only support those formats if GDAL is built accordingly. Refer
to http://gdal.org/formats_list.html ff. for instructions how to include to http://gdal.org/formats_list.html ff. for instructions how to include

BIN
images/flags/eo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

View File

@ -8,6 +8,7 @@
<file>flags/de.png</file> <file>flags/de.png</file>
<file>flags/en_GB.png</file> <file>flags/en_GB.png</file>
<file>flags/en_US.png</file> <file>flags/en_US.png</file>
<file>flags/eo.png</file>
<file>flags/es.png</file> <file>flags/es.png</file>
<file>flags/fa.png</file> <file>flags/fa.png</file>
<file>flags/fi.png</file> <file>flags/fi.png</file>
@ -109,6 +110,7 @@
<file>themes/default/mActionEditNodesItem.svg</file> <file>themes/default/mActionEditNodesItem.svg</file>
<file>themes/default/mActionEditHelpContent.svg</file> <file>themes/default/mActionEditHelpContent.svg</file>
<file>themes/default/mActionIncreaseFont.svg</file> <file>themes/default/mActionIncreaseFont.svg</file>
<file>themes/default/mActionInterfaceCustomization.svg</file>
<file>themes/default/mActionDecreaseFont.svg</file> <file>themes/default/mActionDecreaseFont.svg</file>
<file>themes/default/mActionAddNodesItem.svg</file> <file>themes/default/mActionAddNodesItem.svg</file>
<file>themes/default/mActionAddPolygon.svg</file> <file>themes/default/mActionAddPolygon.svg</file>
@ -210,9 +212,9 @@
<file>themes/default/mActionIncreaseContrast.svg</file> <file>themes/default/mActionIncreaseContrast.svg</file>
<file>themes/default/mActionInOverview.svg</file> <file>themes/default/mActionInOverview.svg</file>
<file>themes/default/mActionInvertSelection.svg</file> <file>themes/default/mActionInvertSelection.svg</file>
<file>themes/default/mActionKeyboardShortcuts.svg</file>
<file>themes/default/mActionLabel.svg</file> <file>themes/default/mActionLabel.svg</file>
<file>themes/default/mActionLabeling.svg</file> <file>themes/default/mActionLabeling.svg</file>
<file>themes/default/mActionDiagramProperties.svg</file>
<file>themes/default/mActionLocalCumulativeCutStretch.svg</file> <file>themes/default/mActionLocalCumulativeCutStretch.svg</file>
<file>themes/default/mActionLocalHistogramStretch.svg</file> <file>themes/default/mActionLocalHistogramStretch.svg</file>
<file>themes/default/mActionLowerItems.svg</file> <file>themes/default/mActionLowerItems.svg</file>
@ -343,7 +345,6 @@
<file>themes/default/mIconExpand.png</file> <file>themes/default/mIconExpand.png</file>
<file>themes/default/mIconExpandSmall.svg</file> <file>themes/default/mIconExpandSmall.svg</file>
<file>themes/default/mIconExpression.svg</file> <file>themes/default/mIconExpression.svg</file>
<file>themes/default/mIconExpressionEditorOpen.svg</file>
<file>themes/default/mIconExpressionFilter.svg</file> <file>themes/default/mIconExpressionFilter.svg</file>
<file>themes/default/mIconExpressionPreview.svg</file> <file>themes/default/mIconExpressionPreview.svg</file>
<file>themes/default/mIconExpressionSelect.svg</file> <file>themes/default/mIconExpressionSelect.svg</file>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 KiB

After

Width:  |  Height:  |  Size: 463 KiB

View File

@ -1,7 +0,0 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<g stroke-linecap="round" stroke-linejoin="round" stroke-width=".75" transform="translate(0 -16)">
<path d="m8 16.5c-1.7024958 0-3.2724385.575419-4.53125 1.53125l4.53125 4.53125 4.53125-4.53125c-1.258812-.955831-2.828754-1.53125-4.53125-1.53125z" fill="#ef2929" overflow="visible" stroke="#a40000"/>
<path d="m2.03125 19.46875c-.9558315 1.258811-1.53125 2.828754-1.53125 4.53125 0 3.804875 2.8281132 6.950887 6.5 7.4375l0-7-4.96875-4.96875z" fill="#8ae234" overflow="visible" stroke="#4e9a06"/>
<path d="m13.96875 19.46875l-4.75 4.75a1.016466 1.016466 0 0 1 -.21875.15625l0 7.0625c3.671887-.486613 6.5-3.632625 6.5-7.4375 0-1.702496-.575419-3.272439-1.53125-4.53125z" fill="#fce94f" overflow="visible" stroke="#c4a000"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 797 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="24" viewBox="0 0 24 24" width="24"><defs><linearGradient id="b"><stop offset="0" stop-color="#888a85"/><stop offset="1" stop-color="#888a85" stop-opacity="0"/></linearGradient><linearGradient id="a"><stop offset="0" stop-color="#eeeeec"/><stop offset="1" stop-color="#eeeeec" stop-opacity="0"/></linearGradient><linearGradient xlink:href="#a" id="d" x1="17.474" y1="10.948" x2="22.004" y2="10.948" gradientUnits="userSpaceOnUse"/><linearGradient xlink:href="#b" id="c" x1="14.31" y1="5.519" x2="21.788" y2="5.519" gradientUnits="userSpaceOnUse"/></defs><path d="M2 5v13h20v-1H3V6h19V5H2z" fill="url(#c)"/><path fill="url(#d)" d="M3 6h19v11H3z"/><path fill="#fff" stroke="#c6c6c7" d="M5.5 8.5h3v6h-3z"/><path fill="#fcd94f" stroke="#d7b942" d="M10.5 8.5h3v6h-3z"/><path fill="#6c96c2" stroke="#5d7691" d="M15.5 8.5h3v6h-3z"/></svg>

After

Width:  |  Height:  |  Size: 921 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path fill="#eeeeec" stroke="#888a85" stroke-linecap="round" d="M7.5 1.5h9v9h-9zM1.5 13.5h9v9h-9zM13.5 13.5h9v9h-9z"/><path d="M8.513 10L8.5 2.5l7.5.02" fill="none" stroke="#fff" stroke-linecap="square"/><path fill="none" stroke="#888a85" stroke-linecap="round" d="M7.5 1.5h9v9h-9z"/><path d="M2.513 22L2.5 14.5c0-.287-.28 0 0 0l7.5.02" fill="none" stroke="#fff" stroke-linecap="square" stroke-linejoin="round"/><path fill="none" stroke="#888a85" stroke-linecap="round" d="M1.5 13.5h9v9h-9z"/><path d="M14.513 22l-.013-7.5c0-.287-.28 0 0 0l7.5.02" fill="none" stroke="#fff" stroke-linecap="square" stroke-linejoin="round"/><path fill="none" stroke="#888a85" stroke-linecap="round" d="M13.5 13.5h9v9h-9z"/></svg>

After

Width:  |  Height:  |  Size: 774 B

View File

@ -1,24 +1 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><linearGradient id="a" gradientTransform="matrix(-.10787 .8785 .87408 .10732 -1.812 758.658)" gradientUnits="userSpaceOnUse" x1="304.76" x2="335.3" y1="64.295" y2="81.926"><stop offset="0" stop-color="#d3d7cf"/><stop offset=".183" stop-color="#babdb6"/><stop offset=".319" stop-color="#fff"/><stop offset=".876" stop-color="#babdb6"/><stop offset="1" stop-color="#eeeeec"/></linearGradient><linearGradient id="b" gradientTransform="matrix(-.34112 .2669 .3471 .44633 7.386 1027.643)" gradientUnits="userSpaceOnUse" x1="-6.308" x2="-9.775" y1="44.229" y2="44.14"><stop offset="0"/><stop offset="1" stop-opacity="0"/></linearGradient><linearGradient id="c" gradientTransform="matrix(-.67482 .52737 .29432 .37836 77.718 981.122)" gradientUnits="userSpaceOnUse" x1="97.442" x2="90.221" y1="35.152" y2="35.079"><stop offset="0" stop-color="#f8e27e"/><stop offset="1" stop-color="#e3d189"/></linearGradient><path d="M10.457 1032.31c-.055-.857.634-.25.876 0 1.025.742 2.03 1.515 3.067 2.24.725.255 1.422-.313 1.905-.793.69-.772 1.365-1.77 1.24-2.855-.1-.55-.68-.756-1.06-1.087-.95-.7-1.906-1.394-2.85-2.1.05-.536.92-.43 1.352-.453 1.8.032 3.76.62 4.848 2.148.894 1.243 1.096 2.91.645 4.36.25 1.355.75 2.683 1.605 3.775l-3.165 2.326c-.744-.97-1.666-1.812-2.743-2.397-1.597.233-3.23-.52-4.194-1.792-.762-.974-1.327-2.143-1.526-3.366z" fill-rule="evenodd" stroke="#404040" stroke-width="1.027" stroke-linecap="round" stroke-linejoin="round" stroke-dashoffset=".361" fill="url(#a)" transform="rotate(-10 -5656.895 557.073) scale(.96642)"/><path d="M20.57 1038.954c-.378.295-.45.832-.16 1.204l5.275 7.727c.29.37 1.28.076 1.66-.22.377-.296.905-1.19.616-1.56l-6.18-7.015c-.29-.37-.826-.432-1.204-.136z" fill="url(#b)" opacity=".231" transform="rotate(-10 -5656.895 557.073) scale(.96642)"/><path d="M.827 6.872c.006.016.026.005.026-.004L4.38 8.61c.475.235 1.01.02 1.448-.317.442-.34.86-.852 1.172-1.507.313-.656.444-1.334.434-1.897-.01-.56-.197-1.078-.655-1.305l-3.554-1.74c-.002-.012 0-.03-.002-.028-.017.02.015.008.027-.004 1.502-.434 3.268-.343 4.46.248C9.344 2.87 10.2 4.69 9.97 6.547c-.23 1.85-1.736 3.5-3.227 3.97-.966.3-2.023.25-2.968-.22-1.19-.588-2.354-1.96-2.95-3.43z" fill="#f0f3f2" fill-rule="evenodd"/><path d="M21.97 1036.91l9.58 11.1c.572.735-.03 2.14-1.34 3.162-1.308 1.022-2.814 1.266-3.385.533l-8.4-12.025 3.547-2.77zm6.345 11.82c-.65.51-.786 1.433-.46 1.85.323.417 1.28.485 1.932-.023.65-.51.754-1.407.43-1.824-.325-.417-1.25-.51-1.902 0z" stroke="#404040" stroke-width=".867" stroke-linecap="round" stroke-linejoin="round" stroke-dashoffset=".7" fill="url(#c)" transform="rotate(-10 -5656.895 557.073) scale(.96642)"/><path d="M-679.108 874.67h3.57v.578h-3.57z" fill="#fff" fill-opacity=".578" stroke="#404040" stroke-width="1.289" transform="matrix(.68982 -.67685 .75588 .60218 -182.664 -973.85)"/></svg>
<linearGradient id="a" gradientTransform="matrix(-.10786508 .87849049 .87408031 .10732357 -1.811623 758.65836)" gradientUnits="userSpaceOnUse" x1="304.76001" x2="335.29999" y1="64.294998" y2="81.926003">
<stop offset="0" stop-color="#d3d7cf"/>
<stop offset=".18304" stop-color="#babdb6"/>
<stop offset=".31893" stop-color="#fff"/>
<stop offset=".87644" stop-color="#babdb6"/>
<stop offset="1" stop-color="#eeeeec"/>
</linearGradient>
<linearGradient id="b" gradientTransform="matrix(-.34112292 .26690344 .34708506 .44633485 7.3860378 1027.6433)" gradientUnits="userSpaceOnUse" x1="-6.3077998" x2="-9.7747002" y1="44.229" y2="44.139999">
<stop offset="0"/>
<stop offset="1" stop-opacity="0"/>
</linearGradient>
<linearGradient id="c" gradientTransform="matrix(-.67481701 .52736572 .29432462 .37835898 77.717559 981.12162)" gradientUnits="userSpaceOnUse" x1="97.442001" x2="90.221001" y1="35.152" y2="35.078999">
<stop offset="0" stop-color="#f8e27e"/>
<stop offset="1" stop-color="#e3d189"/>
</linearGradient>
<g transform="matrix(.95173995 -.16781744 .16781744 .95173995 -182.66392 -973.84964)">
<path d="m10.457382 1032.309c-.0557-.8562.634116-.2492.875491 0 1.024776.7434 2.030407 1.5156 3.067343 2.2407.725037.2552 1.421475-.3125 1.904389-.793.69153-.772 1.365424-1.7692 1.239142-2.855-.0999-.5511-.678194-.7556-1.060023-1.087-.948649-.7006-1.905189-1.3938-2.848652-2.099.0499-.5363.921102-.4312 1.352206-.4538 1.799481.032 3.760889.6193 4.847708 2.1483.893786 1.2432 1.095967 2.9098.645088 4.3593.248756 1.355.749129 2.6839 1.605411 3.7751-1.055028.7755-2.110005 1.5509-3.165032 2.3264-.74403-.9699-1.666431-1.8128-2.743678-2.3982-1.597268.2334-3.230567-.5195-4.193648-1.7921-.762442-.9748-1.327479-2.1438-1.525916-3.3671z" style="fill-rule:evenodd;stroke:#1f1b1e;stroke-width:1.0266068;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:.3612;fill:url(#a)"/>
<path d="m20.569654 1038.9536c-.377958.2957-.449831.8327-.161152 1.2039l5.276506 7.7275c.288677.3713 1.28112.076 1.659095-.2199.377957-.2957.905829-1.1891.617119-1.5603l-6.181727-7.0148c-.288677-.3712-.825389-.432-1.203364-.1363z" fill="url(#b)" opacity=".23106001"/>
<path d="m10.776308 1032.3503c.0041.017.02652.01.02736 0l3.280939 2.4093c.441955.3249 1.026164.2014 1.532663-.063.511499-.2667 1.030216-.7135 1.465827-1.3248.436534-.6127.691989-1.2801.782256-1.8547.09008-.5733-.0071-1.1337-.432392-1.4464l-3.308254-2.4126c-.000327-.012.0053-.029.0034-.028-.02145.016.01356.01.02736 0 1.60773-.1726 3.391001.2382 4.500933 1.0542 1.518297 1.1161 2.06238 3.1241 1.496172 4.9767-.567334 1.8439-2.398541 3.2549-4.002325 3.466-1.037771.1302-2.105965-.1107-2.984774-.7566-1.106711-.8138-2.046256-2.4203-2.389076-4.0275h-.000093z" fill="#f0f3f2" fill-rule="evenodd"/>
<path d="m21.969626 1036.9102l9.581585 11.1009c.570734.7337-.03271 2.1379-1.34119 3.1605-1.308483 1.0226-2.814237 1.2668-3.384954.5331l-8.399386-12.0247 3.546142-2.7701zm6.345662 11.8213c-.650481.5084-.785855 1.4312-.461469 1.8482.324412.4169 1.282238.4855 1.932707-.023.650479-.5084.754739-1.407.430357-1.8239-.324413-.417-1.251126-.5098-1.901595 0z" style="stroke:#1d1b21;stroke-width:.86699998;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:.7;fill:url(#c)"/>
<path d="m-679.10767 874.67072h3.5710487v.5771094h-3.5710487z" fill="#fff" fill-opacity=".57758622" stroke="#1f1b1e" stroke-width="1.28935945" transform="matrix(.82455744 -.56577825 .66205623 .74945417 0 0)"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -1,9 +0,0 @@
<svg enable-background="new 4 8 24 16" height="16" viewBox="4 8 24 16" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="m9.393 15.346c-1.628-.579-2.443-1.457-2.443-2.63 0-.927.43-1.667 1.289-2.222.868-.553 1.943-.831 3.224-.831 1.163 0 2.086.195 2.772.583.688.381 1.03.841 1.03 1.378 0 .281-.106.528-.323.744-.213.207-.462.311-.743.311-.463 0-.844-.323-1.142-.968-.411-.893-1.028-1.34-1.854-1.34-.652 0-1.191.215-1.613.645-.423.43-.634 1.03-.634 1.8 0 1.513.783 2.271 2.346 2.271.164 0 .354-.017.567-.05.372-.049.66-.073.867-.073.502 0 .755.144.755.434 0 .323-.256.483-.769.483-.181 0-.452-.028-.814-.086-.273-.05-.483-.074-.631-.074-1.655 0-2.481.84-2.481 2.524 0 .818.22 1.48.659 1.985.438.496 1.052.745 1.835.745.981 0 1.63-.51 1.954-1.527.165-.537.347-.91.545-1.117.208-.206.48-.31.82-.31.281 0 .531.104.756.31.232.199.348.455.348.77 0 .753-.422 1.378-1.266 1.875-.845.486-1.863.73-3.059.73-1.313 0-2.484-.313-3.508-.941-1.017-.63-1.526-1.47-1.526-2.52 0-1.316 1.013-2.28 3.039-2.899" fill="#5c3566"/>
<path d="m8.364 11.736c-1.534 1.657-1.185-.272-.266-.938.953-.688 1.487-.671 1.48-.461-.008.247-.73.878-1.214 1.399z" fill="#fff" opacity=".5"/>
<path d="m7.849 17.074c-1.536 1.655-1.272.124-.351-.537.951-.685 1.486-.669 1.479-.458-.009.245-.647.478-1.128.995z" fill="#fff" opacity=".5"/>
<path d="m14.591 18.925c-1.481 1.653-1.368.083-.417-.526.728-.464.942-.062.417.526z" fill="#fff" opacity=".5"/>
<circle cx="19.018" cy="20.257" fill="#1a1a1a" r=".689"/>
<circle cx="22.172" cy="20.257" fill="#1a1a1a" r=".689"/>
<circle cx="25.327" cy="20.257" fill="#1a1a1a" r=".689"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -91,10 +91,10 @@ set CMAKE_OPT=^
-D CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS=TRUE -D CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS=TRUE
:cmake :cmake
for /f "usebackq tokens=1" %%a in (`%OSGEO4W_ROOT%\bin\grass70 --config path`) do set GRASS70_PATH=%%a for /f "usebackq tokens=1" %%a in (`%OSGEO4W_ROOT%\bin\grass72 --config path`) do set GRASS72_PATH=%%a
for %%i in ("%GRASS70_PATH%") do set GRASS70_VERSION=%%~nxi for %%i in ("%GRASS72_PATH%") do set GRASS72_VERSION=%%~nxi
set GRASS70_VERSION=%GRASS70_VERSION:grass-=% set GRASS72_VERSION=%GRASS72_VERSION:grass-=%
set GRASS_VERSIONS=%GRASS6_VERSION% %GRASS70_VERSION% set GRASS_VERSIONS=%GRASS6_VERSION% %GRASS72_VERSION%
set PYTHONPATH= set PYTHONPATH=
path %PF86%\CMake\bin;%PATH%;c:\cygwin\bin path %PF86%\CMake\bin;%PATH%;c:\cygwin\bin
@ -168,7 +168,7 @@ cmake -G Ninja ^
-D WITH_GRASS6=TRUE ^ -D WITH_GRASS6=TRUE ^
-D WITH_GRASS7=TRUE ^ -D WITH_GRASS7=TRUE ^
-D GRASS_PREFIX=%O4W_ROOT%/apps/grass/grass-%GRASS6_VERSION% ^ -D GRASS_PREFIX=%O4W_ROOT%/apps/grass/grass-%GRASS6_VERSION% ^
-D GRASS_PREFIX7=%GRASS70_PATH:\=/% ^ -D GRASS_PREFIX7=%GRASS72_PATH:\=/% ^
-D WITH_GLOBE=TRUE ^ -D WITH_GLOBE=TRUE ^
-D WITH_TOUCH=TRUE ^ -D WITH_TOUCH=TRUE ^
-D WITH_ORACLE=TRUE ^ -D WITH_ORACLE=TRUE ^

View File

@ -85,10 +85,10 @@ set CMAKE_OPT=^
-D CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS=TRUE -D CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS=TRUE
:cmake :cmake
for /f "usebackq tokens=1" %%a in (`%OSGEO4W_ROOT%\bin\grass70 --config path`) do set GRASS70_PATH=%%a for /f "usebackq tokens=1" %%a in (`%OSGEO4W_ROOT%\bin\grass72 --config path`) do set GRASS72_PATH=%%a
for %%i in ("%GRASS70_PATH%") do set GRASS70_VERSION=%%~nxi for %%i in ("%GRASS72_PATH%") do set GRASS72_VERSION=%%~nxi
set GRASS70_VERSION=%GRASS70_VERSION:grass-=% set GRASS72_VERSION=%GRASS72_VERSION:grass-=%
set GRASS_VERSIONS=%GRASS6_VERSION% %GRASS70_VERSION% set GRASS_VERSIONS=%GRASS6_VERSION% %GRASS72_VERSION%
set PYTHONPATH= set PYTHONPATH=
path %PF86%\CMake\bin;%PATH%;c:\cygwin\bin path %PF86%\CMake\bin;%PATH%;c:\cygwin\bin
@ -159,7 +159,7 @@ cmake -G Ninja ^
-D WITH_GRASS6=TRUE ^ -D WITH_GRASS6=TRUE ^
-D WITH_GRASS7=TRUE ^ -D WITH_GRASS7=TRUE ^
-D GRASS_PREFIX=%O4W_ROOT%/apps/grass/grass-%GRASS6_VERSION% ^ -D GRASS_PREFIX=%O4W_ROOT%/apps/grass/grass-%GRASS6_VERSION% ^
-D GRASS_PREFIX7=%GRASS70_PATH:\=/% ^ -D GRASS_PREFIX7=%GRASS72_PATH:\=/% ^
-D WITH_GLOBE=TRUE ^ -D WITH_GLOBE=TRUE ^
-D WITH_TOUCH=TRUE ^ -D WITH_TOUCH=TRUE ^
-D WITH_ORACLE=TRUE ^ -D WITH_ORACLE=TRUE ^
@ -385,9 +385,7 @@ tar -C %OSGEO4W_ROOT% -cjf %ARCH%/release/qgis/%PACKAGENAME%/%PACKAGENAME%-%VERS
"apps/%PACKAGENAME%/plugins/evis.dll" ^ "apps/%PACKAGENAME%/plugins/evis.dll" ^
"apps/%PACKAGENAME%/plugins/georefplugin.dll" ^ "apps/%PACKAGENAME%/plugins/georefplugin.dll" ^
"apps/%PACKAGENAME%/plugins/gpsimporterplugin.dll" ^ "apps/%PACKAGENAME%/plugins/gpsimporterplugin.dll" ^
"apps/%PACKAGENAME%/plugins/interpolationplugin.dll" ^
"apps/%PACKAGENAME%/plugins/offlineeditingplugin.dll" ^ "apps/%PACKAGENAME%/plugins/offlineeditingplugin.dll" ^
"apps/%PACKAGENAME%/plugins/oracleplugin.dll" ^
"apps/%PACKAGENAME%/plugins/spatialqueryplugin.dll" ^ "apps/%PACKAGENAME%/plugins/spatialqueryplugin.dll" ^
"apps/%PACKAGENAME%/plugins/topolplugin.dll" ^ "apps/%PACKAGENAME%/plugins/topolplugin.dll" ^
"apps/%PACKAGENAME%/plugins/geometrycheckerplugin.dll" ^ "apps/%PACKAGENAME%/plugins/geometrycheckerplugin.dll" ^

View File

@ -14,9 +14,7 @@ WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "georefplugin" "true
WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "globeplugin" "false" WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "globeplugin" "false"
WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "gpsimporterplugin" "true" WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "gpsimporterplugin" "true"
WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "grassplugin" "true" WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "grassplugin" "true"
WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "interpolationplugin" "true"
WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "offlineeditingplugin" "true" WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "offlineeditingplugin" "true"
WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "oracleplugin" "true"
WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "spatialqueryplugin" "true" WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "spatialqueryplugin" "true"
WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "topolplugin" "true" WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "topolplugin" "true"

View File

@ -120,6 +120,8 @@ INCLUDE_DIRECTORIES(
sip_helpers sip_helpers
${CMAKE_BINARY_DIR} # qgsconfig.h, qgsversion.h ${CMAKE_BINARY_DIR} # qgsconfig.h, qgsversion.h
${CMAKE_BINARY_DIR}/src/core
${CMAKE_BINARY_DIR}/src/analysis
) )
IF(NOT ANDROID) IF(NOT ANDROID)

View File

@ -15,6 +15,7 @@ SET(PYQT_COMPAT_FILES
QtTest.py QtTest.py
QtSvg.py QtSvg.py
Qsci.py Qsci.py
Qt.py
uic/__init__.py uic/__init__.py
uic/pyuic.py uic/pyuic.py
uic/properties.py uic/properties.py

View File

@ -531,10 +531,10 @@ class Editor(QsciScintilla):
try: try:
## set creationflags for running command without shell window ## set creationflags for running command without shell window
if sys.platform.startswith('win'): if sys.platform.startswith('win'):
p = subprocess.Popen(['python', filename], shell=False, stdin=subprocess.PIPE, p = subprocess.Popen(['python3', filename], shell=False, stdin=subprocess.PIPE,
stderr=subprocess.PIPE, stdout=subprocess.PIPE, creationflags=0x08000000) stderr=subprocess.PIPE, stdout=subprocess.PIPE, creationflags=0x08000000)
else: else:
p = subprocess.Popen(['python', filename], shell=False, stdin=subprocess.PIPE, p = subprocess.Popen(['python3', filename], shell=False, stdin=subprocess.PIPE,
stderr=subprocess.PIPE, stdout=subprocess.PIPE) stderr=subprocess.PIPE, stdout=subprocess.PIPE)
out, _traceback = p.communicate() out, _traceback = p.communicate()

View File

@ -246,7 +246,7 @@ def fromFunction(description, function, *args, on_finished=None, flags=QgsTask.A
task = QgsTask.fromFunction('my task', calculate, task = QgsTask.fromFunction('my task', calculate,
on_finished=calculation_finished) on_finished=calculation_finished)
QgsTaskManager.instance().addTask(task) QgsApplication.taskManager().addTask(task)
""" """

View File

@ -76,7 +76,7 @@ class QgsComposerAttributeTableV2 : QgsComposerTableV2
*/ */
ContentSource source() const; ContentSource source() const;
/** Returns the source layer for the table, considering the table source mode. Eg, /** Returns the source layer for the table, considering the table source mode. For example,
* if the table is set to atlas feature mode, then the source layer will be the * if the table is set to atlas feature mode, then the source layer will be the
* atlas coverage layer. If the table is set to layer attributes mode, then * atlas coverage layer. If the table is set to layer attributes mode, then
* the source layer will be the user specified vector layer. * the source layer will be the user specified vector layer.

View File

@ -416,7 +416,7 @@ class QgsComposerItem : QgsComposerObject, QGraphicsRectItem
*/ */
void setTransparency( const int transparency ); void setTransparency( const int transparency );
/** Returns whether effects (eg blend modes) are enabled for the item /** Returns whether effects (e.g., blend modes) are enabled for the item
* @returns true if effects are enabled * @returns true if effects are enabled
* @see setEffectsEnabled * @see setEffectsEnabled
* @see transparency * @see transparency
@ -424,7 +424,7 @@ class QgsComposerItem : QgsComposerObject, QGraphicsRectItem
*/ */
bool effectsEnabled() const; bool effectsEnabled() const;
/** Sets whether effects (eg blend modes) are enabled for the item /** Sets whether effects (e.g., blend modes) are enabled for the item
* @param effectsEnabled set to true to enable effects * @param effectsEnabled set to true to enable effects
* @see effectsEnabled * @see effectsEnabled
* @see setTransparency * @see setTransparency
@ -508,7 +508,7 @@ class QgsComposerItem : QgsComposerObject, QGraphicsRectItem
/** Sets visibility for item. /** Sets visibility for item.
* @param visible set to true to show item, false to hide item * @param visible set to true to show item, false to hide item
* @note QGraphicsItem::setVisible should not be called directly * @note QGraphicsItem::setVisible should not be called directly
* on a QgsComposerItem, as some item types (eg groups) need to override * on a QgsComposerItem, as some item types (e.g., groups) need to override
* the visibility toggle. * the visibility toggle.
* @note added in version 2.5 * @note added in version 2.5
*/ */

View File

@ -1,6 +1,6 @@
/** \ingroup core /** \ingroup core
* \class QgsComposerMapItem * \class QgsComposerMapItem
* \brief An item which is drawn inside a QgsComposerMap, eg a grid or map overview. * \brief An item which is drawn inside a QgsComposerMap, e.g., a grid or map overview.
*/ */
class QgsComposerMapItem : QgsComposerObject class QgsComposerMapItem : QgsComposerObject
{ {

View File

@ -205,7 +205,7 @@ class QgsComposerMultiFrame: QgsComposerObject
/** Creates a new frame and adds it to the multi frame and composition. /** Creates a new frame and adds it to the multi frame and composition.
* @param currentFrame an existing QgsComposerFrame from which to copy the size * @param currentFrame an existing QgsComposerFrame from which to copy the size
* and general frame properties (eg frame style, background, rendering settings). * and general frame properties (e.g., frame style, background, rendering settings).
* @param pos position of top-left corner of the new frame * @param pos position of top-left corner of the new frame
* @param size size of the new frame * @param size size of the new frame
* @returns new QgsComposerFrame * @returns new QgsComposerFrame

View File

@ -40,7 +40,7 @@ class QgsComposition : QGraphicsScene, QgsExpressionContextGenerator
Landscape Landscape
}; };
explicit QgsComposition( const QgsMapSettings& mapSettings ); explicit QgsComposition( const QgsMapSettings& mapSettings, QgsProject* project );
/** Composition atlas modes*/ /** Composition atlas modes*/
enum AtlasMode enum AtlasMode
@ -52,6 +52,14 @@ class QgsComposition : QGraphicsScene, QgsExpressionContextGenerator
~QgsComposition(); ~QgsComposition();
/**
* The project associated with the composition. Used to get access to layers, map themes,
* relations and various other bits. It is never null.
*
* \note Added in QGIS 3.0
*/
QgsProject* project() const;
/** Changes size of paper item. /** Changes size of paper item.
* @param width page width in mm * @param width page width in mm
* @param height page height in mm * @param height page height in mm
@ -732,7 +740,7 @@ class QgsComposition : QGraphicsScene, QgsExpressionContextGenerator
/** Calculates the bounds of all non-gui items in the composition. Ignores snap lines and mouse handles. /** Calculates the bounds of all non-gui items in the composition. Ignores snap lines and mouse handles.
* @param ignorePages set to true to ignore page items * @param ignorePages set to true to ignore page items
* @param margin optional marginal (in percent, eg 0.05 = 5% ) to add around items * @param margin optional marginal (in percent, e.g., 0.05 = 5% ) to add around items
*/ */
QRectF compositionBounds( bool ignorePages = false, double margin = 0.0 ) const; QRectF compositionBounds( bool ignorePages = false, double margin = 0.0 ) const;

View File

@ -1,6 +1,6 @@
/** \ingroup core /** \ingroup core
* \class QgsColorEffect * \class QgsColorEffect
* \brief A paint effect which alters the colors (eg brightness, contrast) in a * \brief A paint effect which alters the colors (e.g., brightness, contrast) in a
* source picture. * source picture.
* *
* \note Added in version 2.9 * \note Added in version 2.9

View File

@ -245,7 +245,7 @@ class QgsPaintEffect
* *
* The draw source effect can be used to draw an unaltered copy of the original source * The draw source effect can be used to draw an unaltered copy of the original source
* picture. Minor changes like lowering the opacity and applying a blend mode are * picture. Minor changes like lowering the opacity and applying a blend mode are
* supported, however these changes will force the resultant output to be rasterised. * supported, however these changes will force the resultant output to be rasterized.
* If no alterations are performed then the original picture will be rendered as a vector. * If no alterations are performed then the original picture will be rendered as a vector.
* *
* \note Added in version 2.9 * \note Added in version 2.9

View File

@ -67,9 +67,8 @@ class QgsPaintEffectRegistry
public: public:
/** Returns a reference to the singleton instance of the paint effect registry. QgsPaintEffectRegistry();
*/ ~QgsPaintEffectRegistry();
static QgsPaintEffectRegistry* instance();
/** Returns the metadata for a specific effect. /** Returns the metadata for a specific effect.
* @param name unique string name for paint effect class * @param name unique string name for paint effect class
@ -120,10 +119,6 @@ class QgsPaintEffectRegistry
*/ */
static bool isDefaultStack( QgsPaintEffect* effect ); static bool isDefaultStack( QgsPaintEffect* effect );
protected:
QgsPaintEffectRegistry();
~QgsPaintEffectRegistry();
private: private:
QgsPaintEffectRegistry( const QgsPaintEffectRegistry& rh ); QgsPaintEffectRegistry( const QgsPaintEffectRegistry& rh );
}; };

View File

@ -398,7 +398,7 @@ class QgsAbstractGeometry
*/ */
virtual QgsRectangle calculateBoundingBox() const; virtual QgsRectangle calculateBoundingBox() const;
/** Clears any cached parameters associated with the geometry, eg bounding boxes /** Clears any cached parameters associated with the geometry, e.g., bounding boxes
*/ */
virtual void clearCache() const; virtual void clearCache() const;
}; };

View File

@ -54,8 +54,7 @@ class QgsCurve: public QgsAbstractGeometry
*/ */
virtual int numPoints() const = 0; virtual int numPoints() const = 0;
/** Calculates the area of the curve. Derived classes should override this /** Sums up the area of the curve by iterating over the vertices (shoelace formula).
* to return the correct area of the curve.
*/ */
virtual void sumUpArea( double& sum ) const = 0; virtual void sumUpArea( double& sum ) const = 0;

View File

@ -551,7 +551,7 @@ class QgsGeometry
/** /**
* Returns a point guaranteed to lie on the surface of a geometry. While the centroid() * Returns a point guaranteed to lie on the surface of a geometry. While the centroid()
* of a geometry may be located outside of the geometry itself (eg for concave shapes), * of a geometry may be located outside of the geometry itself (e.g., for concave shapes),
* the point on surface will always be inside the geometry. * the point on surface will always be inside the geometry.
* @see centroid() * @see centroid()
* @see poleOfInaccessibility() * @see poleOfInaccessibility()
@ -741,10 +741,11 @@ class QgsGeometry
* 1 if geometry is not of polygon type, * 1 if geometry is not of polygon type,
* 2 if avoid intersection would change the geometry type, * 2 if avoid intersection would change the geometry type,
* 3 other error during intersection removal * 3 other error during intersection removal
* @param avoidIntersectionsLayers list of layers to check for intersections
* @param ignoreFeatures possibility to give a list of features where intersections should be ignored (not available in python bindings) * @param ignoreFeatures possibility to give a list of features where intersections should be ignored (not available in python bindings)
* @note added in 1.5 * @note added in 1.5
*/ */
int avoidIntersections(); int avoidIntersections( const QList<QgsVectorLayer*>& avoidIntersectionsLayers );
class Error class Error
{ {
@ -892,7 +893,7 @@ class QgsGeometry
* @param iterations number of smoothing iterations to run. More iterations results * @param iterations number of smoothing iterations to run. More iterations results
* in a smoother geometry * in a smoother geometry
* @param offset fraction of line to create new vertices along, between 0 and 1.0 * @param offset fraction of line to create new vertices along, between 0 and 1.0
* eg the default value of 0.25 will create new vertices 25% and 75% along each line segment * For example, the default value of 0.25 will create new vertices 25% and 75% along each line segment
* of the geometry for each iteration. Smaller values result in "tighter" smoothing. * of the geometry for each iteration. Smaller values result in "tighter" smoothing.
* @param minimumDistance minimum segment length to apply smoothing to * @param minimumDistance minimum segment length to apply smoothing to
* @param maxAngle maximum angle at node (0-180) at which smoothing will be applied * @param maxAngle maximum angle at node (0-180) at which smoothing will be applied

View File

@ -25,7 +25,7 @@ class QgsPointV2: public QgsAbstractGeometry
*/ */
explicit QgsPointV2( QPointF p ); explicit QgsPointV2( QPointF p );
/** Construct a point with a specified type (eg PointZ, PointM) and initial x, y, z, and m values. /** Construct a point with a specified type (e.g., PointZ, PointM) and initial x, y, z, and m values.
* @param type point type * @param type point type
* @param x x-coordinate of point * @param x x-coordinate of point
* @param y y-coordinate of point * @param y y-coordinate of point
@ -140,8 +140,8 @@ class QgsPointV2: public QgsAbstractGeometry
/** /**
* Returns the distance between this point and a specified x, y coordinate. In certain * Returns the distance between this point and a specified x, y coordinate. In certain
* cases it may be more appropriate to call the faster distanceSquared() method, eg * cases it may be more appropriate to call the faster distanceSquared() method,
* when comparing distances. * e.g., when comparing distances.
* @note added in QGIS 3.0 * @note added in QGIS 3.0
* @see distanceSquared() * @see distanceSquared()
*/ */
@ -149,8 +149,8 @@ class QgsPointV2: public QgsAbstractGeometry
/** /**
* Returns the 2D distance between this point and another point. In certain * Returns the 2D distance between this point and another point. In certain
* cases it may be more appropriate to call the faster distanceSquared() method, eg * cases it may be more appropriate to call the faster distanceSquared() method,
* when comparing distances. * e.g., when comparing distances.
* @note added in QGIS 3.0 * @note added in QGIS 3.0
*/ */
double distance( const QgsPointV2& other ) const; double distance( const QgsPointV2& other ) const;

View File

@ -75,14 +75,14 @@ class QgsWkbTypes
NullGeometry NullGeometry
}; };
/** Returns the single type for a WKB type. Eg, for MultiPolygon WKB types the single type would be Polygon. /** Returns the single type for a WKB type. For example, for MultiPolygon WKB types the single type would be Polygon.
* @see isSingleType() * @see isSingleType()
* @see multiType() * @see multiType()
* @see flatType() * @see flatType()
*/ */
static Type singleType( Type type ); static Type singleType( Type type );
/** Returns the multi type for a WKB type. Eg, for Polygon WKB types the multi type would be MultiPolygon. /** Returns the multi type for a WKB type. For example, for Polygon WKB types the multi type would be MultiPolygon.
* @see isMultiType() * @see isMultiType()
* @see singleType() * @see singleType()
* @see flatType() * @see flatType()
@ -90,7 +90,7 @@ class QgsWkbTypes
static Type multiType( Type type ); static Type multiType( Type type );
/** Returns the flat type for a WKB type. This is the WKB type minus any Z or M dimensions. /** Returns the flat type for a WKB type. This is the WKB type minus any Z or M dimensions.
* Eg, for PolygonZM WKB types the single type would be Polygon. * For example, for PolygonZM WKB types the single type would be Polygon.
* @see singleType() * @see singleType()
* @see multiType() * @see multiType()
*/ */
@ -137,12 +137,12 @@ class QgsWkbTypes
*/ */
static int coordDimensions( Type type ); static int coordDimensions( Type type );
/** Returns the geometry type for a WKB type, eg both MultiPolygon and CurvePolygon would have a /** Returns the geometry type for a WKB type, e.g., both MultiPolygon and CurvePolygon would have a
* PolygonGeometry geometry type. * PolygonGeometry geometry type.
*/ */
static GeometryType geometryType( Type type ); static GeometryType geometryType( Type type );
/** Returns a display string type for a WKB type, eg the geometry name used in WKT geometry representations. /** Returns a display string type for a WKB type, e.g., the geometry name used in WKT geometry representations.
*/ */
static QString displayString( Type type ); static QString displayString( Type type );

View File

@ -6,7 +6,7 @@ class QgsGPSConnectionRegistry
#include <qgsgpsconnectionregistry.h> #include <qgsgpsconnectionregistry.h>
%End %End
public: public:
static QgsGPSConnectionRegistry* instance(); QgsGPSConnectionRegistry();
~QgsGPSConnectionRegistry(); ~QgsGPSConnectionRegistry();
/** Inserts a connection into the registry. The connection is owned by the registry class until it is unregistered again*/ /** Inserts a connection into the registry. The connection is owned by the registry class until it is unregistered again*/
@ -16,9 +16,6 @@ class QgsGPSConnectionRegistry
QList< QgsGPSConnection *> connectionList() const; QList< QgsGPSConnection *> connectionList() const;
protected:
QgsGPSConnectionRegistry();
private: private:
QgsGPSConnectionRegistry( const QgsGPSConnectionRegistry& rh ); QgsGPSConnectionRegistry( const QgsGPSConnectionRegistry& rh );

View File

@ -71,11 +71,6 @@ class QgsLayerTreeGroup : QgsLayerTreeNode
//! Return a clone of the group. The children are cloned too. //! Return a clone of the group. The children are cloned too.
virtual QgsLayerTreeGroup* clone() const /Factory/; virtual QgsLayerTreeGroup* clone() const /Factory/;
//! Return the check state of the group node
Qt::CheckState isVisible() const;
//! Set check state of the group node - will also update children
void setVisible( Qt::CheckState state );
//! Return whether the group is mutually exclusive (only one child can be checked at a time) //! Return whether the group is mutually exclusive (only one child can be checked at a time)
//! @note added in 2.12 //! @note added in 2.12
bool isMutuallyExclusive() const; bool isMutuallyExclusive() const;
@ -86,14 +81,10 @@ class QgsLayerTreeGroup : QgsLayerTreeNode
void setIsMutuallyExclusive( bool enabled, int initialChildIndex = -1 ); void setIsMutuallyExclusive( bool enabled, int initialChildIndex = -1 );
protected slots: protected slots:
void layerDestroyed();
void nodeVisibilityChanged( QgsLayerTreeNode* node ); void nodeVisibilityChanged( QgsLayerTreeNode* node );
protected: protected:
//! Set check state of this group from its children
void updateVisibilityFromChildren();
//! Set check state of children (when this group's check state changes) - if not mutually exclusive
void updateChildVisibility();
//! Set check state of children - if mutually exclusive //! Set check state of children - if mutually exclusive
void updateChildVisibilityMutuallyExclusive(); void updateChildVisibilityMutuallyExclusive();

View File

@ -38,9 +38,6 @@ class QgsLayerTreeLayer : QgsLayerTreeNode
//! @note added in 3.0 //! @note added in 3.0
void setName( const QString& n ); void setName( const QString& n );
Qt::CheckState isVisible() const;
void setVisible( Qt::CheckState visible );
static QgsLayerTreeLayer* readXml( QDomElement& element ) /Factory/; static QgsLayerTreeLayer* readXml( QDomElement& element ) /Factory/;
virtual void writeXml( QDomElement& parentElement ); virtual void writeXml( QDomElement& parentElement );

View File

@ -61,6 +61,7 @@ class QgsLayerTreeModel : QAbstractItemModel
AllowNodeRename, //!< Allow renaming of groups and layers AllowNodeRename, //!< Allow renaming of groups and layers
AllowNodeChangeVisibility, //!< Allow user to set node visibility with a check box AllowNodeChangeVisibility, //!< Allow user to set node visibility with a check box
AllowLegendChangeState, //!< Allow check boxes for legend nodes (if supported by layer's legend) AllowLegendChangeState, //!< Allow check boxes for legend nodes (if supported by layer's legend)
ActionHierarchical, //!< Check/uncheck action has consequences on children (or parents for leaf node)
}; };
typedef QFlags<QgsLayerTreeModel::Flag> Flags; typedef QFlags<QgsLayerTreeModel::Flag> Flags;

View File

@ -94,6 +94,34 @@ class QgsLayerTreeNode : QObject
//! Create a copy of the node. Returns new instance //! Create a copy of the node. Returns new instance
virtual QgsLayerTreeNode *clone() const = 0 /Factory/; virtual QgsLayerTreeNode *clone() const = 0 /Factory/;
//! Returns whether a node is really visible (ie checked and all its ancestors checked as well)
//! @note added in 3.0
bool isVisible() const;
//! Returns whether a node is checked (independantly of its ancestors or children)
//! @note added in 3.0
bool itemVisibilityChecked() const;
//! Check or uncheck a node (independantly of its ancestors or children)
//! @note added in 3.0
void setItemVisibilityChecked( bool checked );
//! Check or uncheck a node and all its children (taking into account exclusion rules)
//! @note added in 3.0
virtual void setItemVisibilityCheckedRecursive( bool checked );
//! Check or uncheck a node and all its parents
//! @note added in 3.0
void setItemVisibilityCheckedParentRecursive( bool checked );
//! Return whether this node is checked and all its children.
//! @note added in 3.0
bool isItemVisibilityCheckedRecursive() const;
//! Return whether this node is unchecked and all its children.
//! @note added in 3.0
bool isItemVisibilityUncheckedRecursive() const;
//! Return whether the node should be shown as expanded or collapsed in GUI //! Return whether the node should be shown as expanded or collapsed in GUI
bool isExpanded() const; bool isExpanded() const;
//! Set whether the node should be shown as expanded or collapsed in GUI //! Set whether the node should be shown as expanded or collapsed in GUI
@ -121,7 +149,7 @@ class QgsLayerTreeNode : QObject
//! Emitted when one or more nodes has been removed from a node within the tree //! Emitted when one or more nodes has been removed from a node within the tree
void removedChildren( QgsLayerTreeNode *node, int indexFrom, int indexTo ); void removedChildren( QgsLayerTreeNode *node, int indexFrom, int indexTo );
//! Emitted when check state of a node within the tree has been changed //! Emitted when check state of a node within the tree has been changed
void visibilityChanged( QgsLayerTreeNode *node, Qt::CheckState state ); void visibilityChanged( QgsLayerTreeNode *node );
//! Emitted when a custom property of a node within the tree has been changed or removed //! Emitted when a custom property of a node within the tree has been changed or removed
void customPropertyChanged( QgsLayerTreeNode *node, const QString& key ); void customPropertyChanged( QgsLayerTreeNode *node, const QString& key );
//! Emitted when the collapsed/expanded state of a node within the tree has been changed //! Emitted when the collapsed/expanded state of a node within the tree has been changed

View File

@ -104,7 +104,7 @@ class Qgis
static double SCALE_PRECISION; static double SCALE_PRECISION;
}; };
/** Converts a string to a double in a permissive way, eg allowing for incorrect /** Converts a string to a double in a permissive way, e.g., allowing for incorrect
* numbers of digits between thousand separators * numbers of digits between thousand separators
* @param string string to convert * @param string string to convert
* @param ok will be set to true if conversion was successful * @param ok will be set to true if conversion was successful
@ -114,7 +114,7 @@ class Qgis
*/ */
double qgsPermissiveToDouble( QString string, bool& ok ); double qgsPermissiveToDouble( QString string, bool& ok );
/** Converts a string to an integer in a permissive way, eg allowing for incorrect /** Converts a string to an integer in a permissive way, e.g., allowing for incorrect
* numbers of digits between thousand separators * numbers of digits between thousand separators
* @param string string to convert * @param string string to convert
* @param ok will be set to true if conversion was successful * @param ok will be set to true if conversion was successful

View File

@ -248,7 +248,7 @@ static void qtgui_UpdatePyArgv(PyObject *argvlist, int argc, char **argv)
*/ */
static QString osName(); static QString osName();
/** Returns the QGIS platform name, eg "desktop" or "server". /** Returns the QGIS platform name, e.g., "desktop" or "server".
* @note added in QGIS 2.14 * @note added in QGIS 2.14
* @see osName() * @see osName()
*/ */
@ -381,6 +381,62 @@ static void qtgui_UpdatePyArgv(PyObject *argvlist, int argc, char **argv)
*/ */
static QgsTaskManager* taskManager(); static QgsTaskManager* taskManager();
/**
* Returns the application's color scheme registry, used for managing color schemes.
* @note added in QGIS 3.0
*/
static QgsColorSchemeRegistry* colorSchemeRegistry();
/**
* Returns the application's paint effect registry, used for managing paint effects.
* @note added in QGIS 3.0
*/
static QgsPaintEffectRegistry* paintEffectRegistry();
/**
* Returns the application's renderer registry, used for managing vector layer renderers.
* @note added in QGIS 3.0
*/
static QgsRendererRegistry* rendererRegistry();
/**
* Returns the application's data item provider registry, which keeps a list of data item
* providers that may add items to the browser tree.
* @note added in QGIS 3.0
*/
static QgsDataItemProviderRegistry* dataItemProviderRegistry();
/**
* Returns the application's SVG cache, used for caching SVG images and handling parameter replacement
* within SVG files.
* @note added in QGIS 3.0
*/
static QgsSvgCache* svgCache();
/**
* Returns the application's symbol layer registry, used for managing symbol layers.
* @note added in QGIS 3.0
*/
static QgsSymbolLayerRegistry* symbolLayerRegistry();
/**
* Returns the application's GPS connection registry, used for managing GPS connections.
* @note added in QGIS 3.0
*/
static QgsGPSConnectionRegistry* gpsConnectionRegistry();
/**
* Returns the application's plugin layer registry, used for managing plugin layer types.
* @note added in QGIS 3.0
*/
static QgsPluginLayerRegistry* pluginLayerRegistry();
/**
* Returns the application's message log.
* @note added in QGIS 3.0
*/
static QgsMessageLog* messageLog();
%If(ANDROID) %If(ANDROID)
//dummy method to workaround sip generation issue issue //dummy method to workaround sip generation issue issue
bool x11EventFilter ( XEvent * event ); bool x11EventFilter ( XEvent * event );
@ -406,24 +462,13 @@ static void qtgui_UpdatePyArgv(PyObject *argvlist, int argc, char **argv)
static QgsFieldFormatterRegistry* fieldFormatterRegistry(); static QgsFieldFormatterRegistry* fieldFormatterRegistry();
static QString nullRepresentation(); static QString nullRepresentation();
static void setNullRepresentation( const QString& nullRepresentation ); static void setNullRepresentation( const QString& nullRepresentation );
public slots: static QVariantMap customVariables();
static void setCustomVariables( const QVariantMap& customVariables );
/** Causes the application instance to emit the settingsChanged() signal. This should static void setCustomVariable( const QString& name, const QVariant& value );
* be called whenever global, application-wide settings are altered to advise listeners
* that they may need to update their state.
* @see settingsChanged()
* @note added in QGIS 3.0
*/
void emitSettingsChanged();
signals: signals:
//! @note not available in python bindings //! @note not available in python bindings
// void preNotify( QObject * receiver, QEvent * event, bool * done ); // void preNotify( QObject * receiver, QEvent * event, bool * done );
/** Emitted whenever any global, application-wide settings are changed. void customVariablesChanged();
* @note added in QGIS 3.0
* @see emitSettingsChanged()
*/
void settingsChanged();
void nullRepresentationChanged(); void nullRepresentationChanged();
}; };

View File

@ -183,12 +183,12 @@ class QgsGradientColorRamp : QgsColorRamp
*/ */
QgsGradientStopsList stops() const; QgsGradientStopsList stops() const;
/** Returns any additional info attached to the gradient ramp (eg authorship notes) /** Returns any additional info attached to the gradient ramp (e.g., authorship notes)
* @see setInfo() * @see setInfo()
*/ */
QgsStringMap info() const; QgsStringMap info() const;
/** Sets additional info to attach to the gradient ramp (eg authorship notes) /** Sets additional info to attach to the gradient ramp (e.g., authorship notes)
* @param info map of string info to attach * @param info map of string info to attach
* @see info() * @see info()
*/ */

View File

@ -14,10 +14,6 @@ class QgsColorSchemeRegistry
%End %End
public: public:
/** Returns the global instance pointer, creating the object on the first call.
*/
static QgsColorSchemeRegistry * instance();
/** Constructor for an empty color scheme registry /** Constructor for an empty color scheme registry
*/ */
QgsColorSchemeRegistry(); QgsColorSchemeRegistry();

View File

@ -129,9 +129,9 @@
* Caveats * Caveats
* ======= * =======
* *
* There are two different flavours of WKT: one is defined by OGC, the other is the standard * There are two different flavors of WKT: one is defined by OGC, the other is the standard
* used by ESRI. They look very similar, but they are not the same. QGIS is able to consume * used by ESRI. They look very similar, but they are not the same. QGIS is able to consume
* both flavours. * both flavors.
* *
* \see QgsCoordinateTransform * \see QgsCoordinateTransform
*/ */
@ -186,7 +186,7 @@ class QgsCoordinateReferenceSystem
// static creators // static creators
/** Creates a CRS from a given OGC WMS-format Coordinate Reference System string. /** Creates a CRS from a given OGC WMS-format Coordinate Reference System string.
* @param ogcCrs OGR compliant CRS definition, eg "EPSG:4326" * @param ogcCrs OGR compliant CRS definition, e.g., "EPSG:4326"
* @returns matching CRS, or an invalid CRS if string could not be matched * @returns matching CRS, or an invalid CRS if string could not be matched
* @note added in QGIS 3.0 * @note added in QGIS 3.0
* @see createFromOgcWmsCrs() * @see createFromOgcWmsCrs()
@ -416,9 +416,9 @@ class QgsCoordinateReferenceSystem
/** Returns the authority identifier for the CRS. /** Returns the authority identifier for the CRS.
* *
* The identifier includes both the authority (eg EPSG) and the CRS number (eg 4326). * The identifier includes both the authority (e.g., EPSG) and the CRS number (e.g., 4326).
* This is the best method to use when showing a very short CRS identifier to a user, * This is the best method to use when showing a very short CRS identifier to a user,
* eg "EPSG:4326". * e.g., "EPSG:4326".
* *
* If CRS object is a custom CRS (not found in database), the method will return * If CRS object is a custom CRS (not found in database), the method will return
* internal QGIS CRS ID with "QGIS" authority, for example "QGIS:100005" * internal QGIS CRS ID with "QGIS" authority, for example "QGIS:100005"
@ -427,7 +427,7 @@ class QgsCoordinateReferenceSystem
*/ */
QString authid() const; QString authid() const;
/** Returns the descriptive name of the CRS, eg "WGS 84" or "GDA 94 / Vicgrid94". In most /** Returns the descriptive name of the CRS, e.g., "WGS 84" or "GDA 94 / Vicgrid94". In most
* cases this is the best method to use when showing a friendly identifier for the CRS to a * cases this is the best method to use when showing a friendly identifier for the CRS to a
* user. * user.
* @returns descriptive name of the CRS * @returns descriptive name of the CRS
@ -472,7 +472,7 @@ class QgsCoordinateReferenceSystem
*/ */
bool isGeographic() const; bool isGeographic() const;
/** Returns whether axis is inverted (eg. for WMS 1.3) for the CRS. /** Returns whether axis is inverted (e.g., for WMS 1.3) for the CRS.
* @returns true if CRS axis is inverted * @returns true if CRS axis is inverted
*/ */
bool hasAxisInverted() const; bool hasAxisInverted() const;

View File

@ -11,8 +11,7 @@ class QgsDataItemProviderRegistry
#include <qgsdataitemproviderregistry.h> #include <qgsdataitemproviderregistry.h>
%End %End
public: public:
static QgsDataItemProviderRegistry * instance(); QgsDataItemProviderRegistry();
~QgsDataItemProviderRegistry(); ~QgsDataItemProviderRegistry();
//! Get list of available providers //! Get list of available providers
@ -25,7 +24,7 @@ class QgsDataItemProviderRegistry
void removeProvider( QgsDataItemProvider* provider ); void removeProvider( QgsDataItemProvider* provider );
private: private:
QgsDataItemProviderRegistry();
QgsDataItemProviderRegistry( const QgsDataItemProviderRegistry& rh ); QgsDataItemProviderRegistry( const QgsDataItemProviderRegistry& rh );
}; };

View File

@ -37,13 +37,13 @@ class QgsDateTimeStatisticalSummary
QgsDateTimeStatisticalSummary( QgsDateTimeStatisticalSummary::Statistics stats = All ); QgsDateTimeStatisticalSummary( QgsDateTimeStatisticalSummary::Statistics stats = All );
/** Returns flags which specify which statistics will be calculated. Some statistics /** Returns flags which specify which statistics will be calculated. Some statistics
* are always calculated (eg count). * are always calculated (e.g., count).
* @see setStatistics * @see setStatistics
*/ */
Statistics statistics() const; Statistics statistics() const;
/** Sets flags which specify which statistics will be calculated. Some statistics /** Sets flags which specify which statistics will be calculated. Some statistics
* are always calculated (eg count). * are always calculated (e.g., count).
* @param stats flags for statistics to calculate * @param stats flags for statistics to calculate
* @see statistics * @see statistics
*/ */

View File

@ -25,13 +25,14 @@ class QgsDiagramLayerSettings
}; };
//! Line placement flags for controlling line based placements //! Line placement flags for controlling line based placements
enum LinePlacementFlags enum LinePlacementFlag
{ {
OnLine, OnLine,
AboveLine, AboveLine,
BelowLine, BelowLine,
MapOrientation, MapOrientation,
}; };
typedef QFlags<QgsDiagramLayerSettings::LinePlacementFlag> LinePlacementFlags;
QgsDiagramLayerSettings(); QgsDiagramLayerSettings();
@ -44,8 +45,7 @@ class QgsDiagramLayerSettings
* @see setPlacement() * @see setPlacement()
* @note added in QGIS 2.16 * @note added in QGIS 2.16
*/ */
//TODO QGIS 3.0 - rename getter to placement() Placement placement() const;
Placement getPlacement() const;
/** Sets the diagram placement. /** Sets the diagram placement.
* @param value placement value * @param value placement value
@ -54,16 +54,12 @@ class QgsDiagramLayerSettings
*/ */
void setPlacement( Placement value ); void setPlacement( Placement value );
//! Diagram placement
//TODO QGIS 3.0 - make private, rename to mPlacement
Placement placement;
/** Returns the diagram placement flags. These are only used if the diagram placement /** Returns the diagram placement flags. These are only used if the diagram placement
* is set to a line type. * is set to a line type.
* @see setLinePlacementFlags() * @see setLinePlacementFlags()
* @note added in QGIS 2.16 * @note added in QGIS 2.16
*/ */
unsigned int linePlacementFlags() const; LinePlacementFlags linePlacementFlags() const;
/** Sets the the diagram placement flags. These are only used if the diagram placement /** Sets the the diagram placement flags. These are only used if the diagram placement
* is set to a line type. * is set to a line type.
@ -71,11 +67,7 @@ class QgsDiagramLayerSettings
* @see getPlacement() * @see getPlacement()
* @note added in QGIS 2.16 * @note added in QGIS 2.16
*/ */
void setLinePlacementFlags( unsigned int flags ); void setLinePlacementFlags( LinePlacementFlags flags );
//! Diagram placement flags
// TODO QGIS 3.0 - make private, rename to mPlacementFlags, use QFlags
unsigned int placementFlags;
/** Returns the diagram priority. /** Returns the diagram priority.
* @returns diagram priority, where 0 = low and 10 = high * @returns diagram priority, where 0 = low and 10 = high
@ -84,8 +76,7 @@ class QgsDiagramLayerSettings
* @see setPriority() * @see setPriority()
* @note added in QGIS 2.16 * @note added in QGIS 2.16
*/ */
//TODO QGIS 3.0 - rename getter to priority() int priority() const;
int getPriority() const;
/** Sets the diagram priority. /** Sets the diagram priority.
* @param value priority, where 0 = low and 10 = high * @param value priority, where 0 = low and 10 = high
@ -94,12 +85,6 @@ class QgsDiagramLayerSettings
*/ */
void setPriority( int value ); void setPriority( int value );
//! Placement priority, where 0 = low and 10 = high
//! @note placement priority is shared with labeling, so diagrams with a high priority may displace labels
//! and vice-versa
// TODO QGIS 3.0 - make private, rename to mPriority
int priority;
/** Returns the diagram z-index. Diagrams (or labels) with a higher z-index are drawn over diagrams /** Returns the diagram z-index. Diagrams (or labels) with a higher z-index are drawn over diagrams
* with a lower z-index. * with a lower z-index.
* @note z-index ordering is shared with labeling, so diagrams with a high z-index may be drawn over labels * @note z-index ordering is shared with labeling, so diagrams with a high z-index may be drawn over labels
@ -107,8 +92,7 @@ class QgsDiagramLayerSettings
* @see setZIndex() * @see setZIndex()
* @note added in QGIS 2.16 * @note added in QGIS 2.16
*/ */
//TODO QGIS 3.0 - rename getter to zIndex() double zIndex() const;
double getZIndex() const;
/** Sets the diagram z-index. Diagrams (or labels) with a higher z-index are drawn over diagrams /** Sets the diagram z-index. Diagrams (or labels) with a higher z-index are drawn over diagrams
* with a lower z-index. * with a lower z-index.
@ -118,10 +102,6 @@ class QgsDiagramLayerSettings
*/ */
void setZIndex( double index ); void setZIndex( double index );
//! Z-index of diagrams, where diagrams with a higher z-index are drawn on top of diagrams with a lower z-index
// TODO QGIS 3.0 - rename to mZIndex, make private
double zIndex;
/** Returns whether the feature associated with a diagram acts as an obstacle for other labels or diagrams. /** Returns whether the feature associated with a diagram acts as an obstacle for other labels or diagrams.
* @see setIsObstacle() * @see setIsObstacle()
* @note added in QGIS 2.16 * @note added in QGIS 2.16
@ -135,10 +115,6 @@ class QgsDiagramLayerSettings
*/ */
void setIsObstacle( bool isObstacle ); void setIsObstacle( bool isObstacle );
//! Whether associated feature acts as an obstacle for other labels or diagrams
// TODO QGIS 3.0 - rename to mObstacle, make private
bool obstacle;
/** Returns the distance between the diagram and the feature (in mm). /** Returns the distance between the diagram and the feature (in mm).
* @see setDistance() * @see setDistance()
* @note added in QGIS 2.16 * @note added in QGIS 2.16
@ -152,35 +128,25 @@ class QgsDiagramLayerSettings
*/ */
void setDistance( double distance ); void setDistance( double distance );
//! Distance between diagram and the feature (in mm) /** Returns the diagram renderer associated with the layer.
// TODO QGIS 3.0 - make private, rename to mDistance * @see setRenderer()
double dist; * @note added in QGIS 2.16
*/
QgsDiagramRenderer* renderer();
/** Returns the diagram renderer associated with the layer. /** Returns the diagram renderer associated with the layer.
* @see setRenderer() * @see setRenderer()
* @note added in QGIS 2.16 * @note added in QGIS 2.16
*/ */
// TODO QGIS 3.0 - rename to renderer() //const QgsDiagramRenderer* renderer() const;
QgsDiagramRenderer* getRenderer();
/** Returns the diagram renderer associated with the layer.
* @see setRenderer()
* @note added in QGIS 2.16
*/
// TODO QGIS 3.0 - rename to renderer()
//const QgsDiagramRenderer* getRenderer() const;
/** Sets the diagram renderer associated with the layer. /** Sets the diagram renderer associated with the layer.
* @param diagramRenderer diagram renderer. Ownership is transferred to the object. * @param diagramRenderer diagram renderer. Ownership is transferred to the object.
* @see getRenderer() * @see renderer()
* @note added in QGIS 2.16 * @note added in QGIS 2.16
*/ */
void setRenderer( QgsDiagramRenderer* diagramRenderer /Transfer/ ); void setRenderer( QgsDiagramRenderer* diagramRenderer /Transfer/ );
//! Associated diagram renderer. Owned by this object.
// TODO QGIS 3.0 - make private, rename to mRenderer
QgsDiagramRenderer* renderer;
/** Returns the coordinate transform associated with the layer, or an /** Returns the coordinate transform associated with the layer, or an
* invalid transform if no transformation is required. * invalid transform if no transformation is required.
* @see setCoordinateTransform() * @see setCoordinateTransform()
@ -214,10 +180,6 @@ class QgsDiagramLayerSettings
*/ */
void setShowAllDiagrams( bool showAllDiagrams ); void setShowAllDiagrams( bool showAllDiagrams );
//! Whether to show all diagrams, including overlapping diagrams
// TODO QGIS 3.0 - make private, rename to mShowAll
bool showAll;
void readXml( const QDomElement& elem, const QgsVectorLayer* layer ); void readXml( const QDomElement& elem, const QgsVectorLayer* layer );
void writeXml( QDomElement& layerElem, QDomDocument& doc, const QgsVectorLayer* layer ) const; void writeXml( QDomElement& layerElem, QDomDocument& doc, const QgsVectorLayer* layer ) const;
@ -329,8 +291,8 @@ class QgsDiagramInterpolationSettings
QSizeF upperSize; QSizeF upperSize;
double lowerValue; double lowerValue;
double upperValue; double upperValue;
/** Index of the classification attribute*/ //! Name of the field for classification
int classificationAttribute; QString classificationField;
QString classificationAttributeExpression; QString classificationAttributeExpression;
bool classificationAttributeIsExpression; bool classificationAttributeIsExpression;
}; };
@ -368,8 +330,7 @@ class QgsDiagramRenderer
* @param fields layer fields * @param fields layer fields
* @note added in QGIS 2.16 * @note added in QGIS 2.16
*/ */
//TODO QGIS 3.0 - remove need for fields parameter virtual QSet< QString > referencedFields( const QgsExpressionContext& context = QgsExpressionContext() ) const;
virtual QSet< QString > referencedFields( const QgsExpressionContext& context = QgsExpressionContext(), const QgsFields& fields = QgsFields() ) const;
void renderDiagram( const QgsFeature& feature, QgsRenderContext& c, QPointF pos ); void renderDiagram( const QgsFeature& feature, QgsRenderContext& c, QPointF pos );
@ -511,7 +472,7 @@ class QgsLinearlyInterpolatedDiagramRenderer : QgsDiagramRenderer
QList<QString> diagramAttributes() const; QList<QString> diagramAttributes() const;
virtual QSet< QString > referencedFields( const QgsExpressionContext& context = QgsExpressionContext(), const QgsFields& fields = QgsFields() ) const; virtual QSet< QString > referencedFields( const QgsExpressionContext& context = QgsExpressionContext() ) const;
QString rendererName() const; QString rendererName() const;
@ -527,8 +488,19 @@ class QgsLinearlyInterpolatedDiagramRenderer : QgsDiagramRenderer
void setUpperSize( QSizeF s ); void setUpperSize( QSizeF s );
QSizeF upperSize() const; QSizeF upperSize() const;
int classificationAttribute() const; /**
void setClassificationAttribute( int index ); * Returns the field name used for interpolating the diagram size.
* @see setClassificationField()
* @note added in QGIS 3.0
*/
QString classificationField() const;
/**
* Sets the field name used for interpolating the diagram size.
* @see classificationField()
* @note added in QGIS 3.0
*/
void setClassificationField( const QString& field );
QString classificationAttributeExpression() const; QString classificationAttributeExpression() const;
void setClassificationAttributeExpression( const QString& expression ); void setClassificationAttributeExpression( const QString& expression );

View File

@ -167,7 +167,7 @@ class QgsDistanceArea
* @param distance distance to format * @param distance distance to format
* @param decimals number of decimal places to show * @param decimals number of decimal places to show
* @param unit unit of distance * @param unit unit of distance
* @param keepBaseUnit set to false to allow conversion of large distances to more suitable units, eg meters to * @param keepBaseUnit set to false to allow conversion of large distances to more suitable units, e.g., meters to
* kilometers * kilometers
* @returns formatted distance string * @returns formatted distance string
* @note added in QGIS 2.16 * @note added in QGIS 2.16
@ -179,7 +179,7 @@ class QgsDistanceArea
* @param area area to format * @param area area to format
* @param decimals number of decimal places to show * @param decimals number of decimal places to show
* @param unit unit of area * @param unit unit of area
* @param keepBaseUnit set to false to allow conversion of large areas to more suitable units, eg square meters to * @param keepBaseUnit set to false to allow conversion of large areas to more suitable units, e.g., square meters to
* square kilometers * square kilometers
* @returns formatted area string * @returns formatted area string
* @note added in QGIS 2.14 * @note added in QGIS 2.14

View File

@ -140,21 +140,21 @@ class QgsExpression
*/ */
void setGeomCalculator( const QgsDistanceArea* calc ); void setGeomCalculator( const QgsDistanceArea* calc );
/** Returns the desired distance units for calculations involving geomCalculator(), eg "$length" and "$perimeter". /** Returns the desired distance units for calculations involving geomCalculator(), e.g., "$length" and "$perimeter".
* @note distances are only converted when a geomCalculator() has been set * @note distances are only converted when a geomCalculator() has been set
* @note added in QGIS 2.14 * @note added in QGIS 2.14
* @see setDistanceUnits() * @see setDistanceUnits()
*/ */
QgsUnitTypes::DistanceUnit distanceUnits() const; QgsUnitTypes::DistanceUnit distanceUnits() const;
/** Sets the desired distance units for calculations involving geomCalculator(), eg "$length" and "$perimeter". /** Sets the desired distance units for calculations involving geomCalculator(), e.g., "$length" and "$perimeter".
* @note distances are only converted when a geomCalculator() has been set * @note distances are only converted when a geomCalculator() has been set
* @note added in QGIS 2.14 * @note added in QGIS 2.14
* @see distanceUnits() * @see distanceUnits()
*/ */
void setDistanceUnits( QgsUnitTypes::DistanceUnit unit ); void setDistanceUnits( QgsUnitTypes::DistanceUnit unit );
/** Returns the desired areal units for calculations involving geomCalculator(), eg "$area". /** Returns the desired areal units for calculations involving geomCalculator(), e.g., "$area".
* @note areas are only converted when a geomCalculator() has been set * @note areas are only converted when a geomCalculator() has been set
* @note added in QGIS 2.14 * @note added in QGIS 2.14
* @see setAreaUnits() * @see setAreaUnits()
@ -162,7 +162,7 @@ class QgsExpression
*/ */
QgsUnitTypes::AreaUnit areaUnits() const; QgsUnitTypes::AreaUnit areaUnits() const;
/** Sets the desired areal units for calculations involving geomCalculator(), eg "$area". /** Sets the desired areal units for calculations involving geomCalculator(), e.g., "$area".
* @note areas are only converted when a geomCalculator() has been set * @note areas are only converted when a geomCalculator() has been set
* @note added in QGIS 2.14 * @note added in QGIS 2.14
* @see areaUnits() * @see areaUnits()
@ -362,7 +362,7 @@ class QgsExpression
virtual bool usesGeometry( const QgsExpression::NodeFunction* node ) const; virtual bool usesGeometry( const QgsExpression::NodeFunction* node ) const;
/** Returns a list of possible aliases for the function. These include /** Returns a list of possible aliases for the function. These include
* other permissible names for the function, eg deprecated names. * other permissible names for the function, e.g., deprecated names.
* @return list of known aliases * @return list of known aliases
* @note added in QGIS 2.9 * @note added in QGIS 2.9
*/ */
@ -835,7 +835,7 @@ class QgsExpression
static QString group( const QString& group ); static QString group( const QString& group );
/** Formats an expression result for friendly display to the user. Truncates the result to a sensible /** Formats an expression result for friendly display to the user. Truncates the result to a sensible
* length, and presents text representations of non numeric/text types (eg geometries and features). * length, and presents text representations of non numeric/text types (e.g., geometries and features).
* @param value expression result to format * @param value expression result to format
* @returns formatted string, may contain HTML formatting characters * @returns formatted string, may contain HTML formatting characters
* @note added in QGIS 2.14 * @note added in QGIS 2.14

View File

@ -217,6 +217,12 @@ class QgsExpressionContext
QgsExpressionContext(); QgsExpressionContext();
/** Initializes the context with given list of scopes.
* Ownership of the scopes is transferred to the stack.
* @note added in QGIS 3.0
*/
explicit QgsExpressionContext( const QList<QgsExpressionContextScope*>& scopes /Transfer/ );
/** Copy constructor /** Copy constructor
*/ */
QgsExpressionContext( const QgsExpressionContext& other ); QgsExpressionContext( const QgsExpressionContext& other );
@ -359,6 +365,14 @@ class QgsExpressionContext
*/ */
void appendScope( QgsExpressionContextScope* scope /Transfer/ ); void appendScope( QgsExpressionContextScope* scope /Transfer/ );
/** Appends a list of scopes to the end of the context. This scopes will override
* any matching variables or functions provided by existing scopes within the
* context. Ownership of the scopes is transferred to the stack.
* @param scopes scopes to append to context
* @note added in QGIS 3.0
*/
void appendScopes( const QList<QgsExpressionContextScope*>& scopes /Transfer/ );
/** /**
* Removes the last scope from the expression context and return it. * Removes the last scope from the expression context and return it.
*/ */
@ -466,7 +480,7 @@ class QgsExpressionContext
/** \ingroup core /** \ingroup core
* \class QgsExpressionContextUtils * \class QgsExpressionContextUtils
* \brief Contains utilities for working with QgsExpressionContext objects, including methods * \brief Contains utilities for working with QgsExpressionContext objects, including methods
* for creating scopes for specific uses (eg project scopes, layer scopes). * for creating scopes for specific uses (e.g., project scopes, layer scopes).
* \note added in QGIS 2.12 * \note added in QGIS 2.12
*/ */
@ -482,52 +496,22 @@ class QgsExpressionContextUtils
* @see setGlobalVariable() * @see setGlobalVariable()
*/ */
static QgsExpressionContextScope* globalScope() /Factory/; static QgsExpressionContextScope* globalScope() /Factory/;
/** Sets a global context variable. This variable will be contained within scopes retrieved via
* globalScope().
* @param name variable name
* @param value variable value
* @see setGlobalVariable()
* @see globalScope()
*/
static void setGlobalVariable( const QString& name, const QVariant& value ); static void setGlobalVariable( const QString& name, const QVariant& value );
static void setGlobalVariables( const QVariantMap& variables );
/** Sets all global context variables. Existing global variables will be removed and replaced static QgsExpressionContextScope* projectScope( const QgsProject* project ) /Factory/;
* with the variables specified. static void setProjectVariable( QgsProject* project, const QString& name, const QVariant& value );
* @param variables new set of global variables static void setProjectVariables( QgsProject* project, const QVariantMap& variables );
* @see setGlobalVariable()
* @see globalScope()
*/
static void setGlobalVariables( const QgsStringMap& variables );
/** Creates a new scope which contains variables and functions relating to the current QGIS project.
* For instance, project path and title, and variables specified through the project properties.
* @see setProjectVariable()
*/
static QgsExpressionContextScope* projectScope() /Factory/;
/** Sets a project context variable. This variable will be contained within scopes retrieved via
* projectScope().
* @param name variable name
* @param value variable value
* @see setProjectVariables()
* @see projectScope()
*/
static void setProjectVariable( const QString& name, const QVariant& value );
/** Sets all project context variables. Existing project variables will be removed and replaced
* with the variables specified.
* @param variables new set of project variables
* @see setProjectVariable()
* @see projectScope()
*/
static void setProjectVariables( const QgsStringMap& variables );
/** Creates a new scope which contains variables and functions relating to a QgsMapLayer. /** Creates a new scope which contains variables and functions relating to a QgsMapLayer.
* For instance, layer name, id and fields. * For instance, layer name, id and fields.
*/ */
static QgsExpressionContextScope* layerScope( const QgsMapLayer *layer ) /Factory/; static QgsExpressionContextScope* layerScope( const QgsMapLayer *layer ) /Factory/;
/** Creates a list of three scopes: global, layer's project and layer.
* @note added in QGIS 3.0
*/
static QList<QgsExpressionContextScope*> globalProjectLayerScopes( const QgsMapLayer* layer ) /Factory/;
/** Sets a layer context variable. This variable will be contained within scopes retrieved via /** Sets a layer context variable. This variable will be contained within scopes retrieved via
* layerScope(). * layerScope().
* @param layer map layer * @param layer map layer
@ -537,15 +521,7 @@ class QgsExpressionContextUtils
* @see layerScope() * @see layerScope()
*/ */
static void setLayerVariable( QgsMapLayer* layer, const QString& name, const QVariant& value ); static void setLayerVariable( QgsMapLayer* layer, const QString& name, const QVariant& value );
static void setLayerVariables( QgsMapLayer* layer, const QVariantMap& variables );
/** Sets all layer context variables. Existing layer variables will be removed and replaced
* with the variables specified.
* @param layer map layer
* @param variables new set of layer variables
* @see setLayerVariable()
* @see layerScope()
*/
static void setLayerVariables( QgsMapLayer* layer, const QgsStringMap& variables );
/** Creates a new scope which contains variables and functions relating to a QgsMapSettings object. /** Creates a new scope which contains variables and functions relating to a QgsMapSettings object.
* For instance, map scale and rotation. * For instance, map scale and rotation.
@ -575,26 +551,8 @@ class QgsExpressionContextUtils
* @see compositionScope() * @see compositionScope()
*/ */
static void setCompositionVariable( QgsComposition* composition, const QString& name, const QVariant& value ); static void setCompositionVariable( QgsComposition* composition, const QString& name, const QVariant& value );
static void setCompositionVariables( QgsComposition* composition, const QVariantMap& variables );
/** Sets all composition context variables. Existing composition variables will be removed and replaced
* with the variables specified.
* @param composition target composition
* @param variables new set of layer variables
* @see setCompositionVariable()
* @see compositionScope()
*/
static void setCompositionVariables( QgsComposition* composition, const QgsStringMap& variables );
/** Creates a new scope which contains variables and functions relating to a QgsAtlasComposition.
* For instance, current page name and number.
* @param atlas source atlas. If null, a set of default atlas variables will be added to the scope.
*/
static QgsExpressionContextScope* atlasScope( const QgsAtlasComposition* atlas ) /Factory/; static QgsExpressionContextScope* atlasScope( const QgsAtlasComposition* atlas ) /Factory/;
/** Creates a new scope which contains variables and functions relating to a QgsComposerItem.
* For instance, item size and position.
* @param composerItem source composer item
*/
static QgsExpressionContextScope* composerItemScope( const QgsComposerItem *composerItem ) /Factory/; static QgsExpressionContextScope* composerItemScope( const QgsComposerItem *composerItem ) /Factory/;
/** Sets a composer item context variable. This variable will be contained within scopes retrieved via /** Sets a composer item context variable. This variable will be contained within scopes retrieved via
@ -606,20 +564,7 @@ class QgsExpressionContextUtils
* @see composerItemScope() * @see composerItemScope()
*/ */
static void setComposerItemVariable( QgsComposerItem* composerItem, const QString& name, const QVariant& value ); static void setComposerItemVariable( QgsComposerItem* composerItem, const QString& name, const QVariant& value );
static void setComposerItemVariables( QgsComposerItem* composerItem, const QVariantMap& variables );
/** Sets all composition context variables. Existing compositoin variables will be removed and replaced
* with the variables specified.
* @param composerItem target composer item
* @param variables new set of layer variables
* @see setComposerItemVariable()
* @see composerItemScope()
*/
static void setComposerItemVariables( QgsComposerItem* composerItem, const QgsStringMap& variables );
/** Helper function for creating an expression context which contains just a feature and fields
* collection. Generally this method should not be used as the created context does not include
* standard scopes such as the global and project scopes.
*/
static QgsExpressionContext createFeatureBasedContext( const QgsFeature& feature, const QgsFields& fields ); static QgsExpressionContext createFeatureBasedContext( const QgsFeature& feature, const QgsFields& fields );
/** Registers all known core functions provided by QgsExpressionContextScope objects. /** Registers all known core functions provided by QgsExpressionContextScope objects.

View File

@ -18,12 +18,12 @@ class QgsField
/** Constructor. Constructs a new QgsField object. /** Constructor. Constructs a new QgsField object.
* @param name Field name * @param name Field name
* @param type Field variant type, currently supported: String / Int / Double * @param type Field variant type, currently supported: String / Int / Double
* @param typeName Field type (eg. char, varchar, text, int, serial, double). * @param typeName Field type (e.g., char, varchar, text, int, serial, double).
* Field types are usually unique to the source and are stored exactly * Field types are usually unique to the source and are stored exactly
* as returned from the data store. * as returned from the data store.
* @param len Field length * @param len Field length
* @param prec Field precision. Usually decimal places but may also be * @param prec Field precision. Usually decimal places but may also be
* used in conjunction with other fields types (eg. variable character fields) * used in conjunction with other fields types (e.g., variable character fields)
* @param comment Comment for the field * @param comment Comment for the field
* @param subType If the field is a collection, its element's type. When * @param subType If the field is a collection, its element's type. When
* all the elements don't need to have the same type, leave * all the elements don't need to have the same type, leave

View File

@ -115,9 +115,9 @@ class QgsFontUtils
* @param font QFont to convert * @param font QFont to convert
* @param pointToPixelMultiplier scaling factor to apply to convert point sizes to pixel font sizes. * @param pointToPixelMultiplier scaling factor to apply to convert point sizes to pixel font sizes.
* The CSS returned by this function will always use pixels for font sizes, so this parameter * The CSS returned by this function will always use pixels for font sizes, so this parameter
* should be set to a suitable value to convert point sizes to pixels (eg taking into account * should be set to a suitable value to convert point sizes to pixels (e.g., taking into account
* desination DPI) * desination DPI)
* @returns partial CSS string, eg "font-family: Comic Sans; font-size: 12px;" * @returns partial CSS string, e.g., "font-family: Comic Sans; font-size: 12px;"
* @note added in QGIS 2.16 * @note added in QGIS 2.16
*/ */
static QString asCSS( const QFont& font, double pointToPixelMultiplier = 1.0 ); static QString asCSS( const QFont& font, double pointToPixelMultiplier = 1.0 );

View File

@ -395,8 +395,8 @@ class QgsMapLayer : QObject
/** Sets layer's spatial reference system */ /** Sets layer's spatial reference system */
void setCrs( const QgsCoordinateReferenceSystem& srs, bool emitSignal = true ); void setCrs( const QgsCoordinateReferenceSystem& srs, bool emitSignal = true );
/** A convenience function to (un)capitalise the layer name */ /** A convenience function to (un)capitalize the layer name */
static QString capitaliseLayerName( const QString& name ); static QString capitalizeLayerName( const QString& name );
/** Retrieve the style URI for this layer /** Retrieve the style URI for this layer
* (either as a .qml file on disk or as a * (either as a .qml file on disk or as a

View File

@ -5,7 +5,7 @@ class QgsMessageLog : QObject
%End %End
public: public:
static QgsMessageLog *instance(); QgsMessageLog();
enum MessageLevel enum MessageLevel
{ {
@ -20,8 +20,6 @@ class QgsMessageLog : QObject
signals: signals:
void messageReceived( const QString& message, const QString& tag, MessageLevel level ); void messageReceived( const QString& message, const QString& tag, MessageLevel level );
private:
QgsMessageLog();
}; };

View File

@ -128,7 +128,7 @@ class QgsPalLayerSettings
Curved, /** Arranges candidates following the curvature of a line feature. Applies to line layers only.*/ Curved, /** Arranges candidates following the curvature of a line feature. Applies to line layers only.*/
Horizontal, /**< Arranges horizontal candidates scattered throughout a polygon feature. Applies to polygon layers only.*/ Horizontal, /**< Arranges horizontal candidates scattered throughout a polygon feature. Applies to polygon layers only.*/
Free, /**< Arranges candidates scattered throughout a polygon feature. Candidates are rotated to respect the polygon's orientation. Applies to polygon layers only.*/ Free, /**< Arranges candidates scattered throughout a polygon feature. Candidates are rotated to respect the polygon's orientation. Applies to polygon layers only.*/
OrderedPositionsAroundPoint, /**< Candidates are placed in predefined positions around a point. Peference is given to positions with greatest cartographic appeal, eg top right, bottom right, etc. Applies to point layers only.*/ OrderedPositionsAroundPoint, /**< Candidates are placed in predefined positions around a point. Preference is given to positions with greatest cartographic appeal, e.g., top right, bottom right, etc. Applies to point layers only.*/
PerimeterCurved, /** Arranges candidates following the curvature of a polygon's boundary. Applies to polygon layers only.*/ PerimeterCurved, /** Arranges candidates following the curvature of a polygon's boundary. Applies to polygon layers only.*/
}; };
@ -173,7 +173,7 @@ class QgsPalLayerSettings
respects the direction of the line feature, so a line from right to left labels will have labels respects the direction of the line feature, so a line from right to left labels will have labels
placed placed above the line feature. */ placed placed above the line feature. */
MapOrientation, /**< Signifies that the AboveLine and BelowLine flags should respect the map's orientation rather MapOrientation, /**< Signifies that the AboveLine and BelowLine flags should respect the map's orientation rather
than the feature's orientation. Eg, AboveLine will always result in label's being placed than the feature's orientation. For example, AboveLine will always result in label's being placed
above a line, regardless of the line's direction. */ above a line, regardless of the line's direction. */
}; };
@ -209,7 +209,7 @@ class QgsPalLayerSettings
MultiLeft, MultiLeft,
MultiCenter, MultiCenter,
MultiRight, MultiRight,
MultiFollowPlacement /*!< Alignment follows placement of label, eg labels to the left of a feature MultiFollowPlacement /*!< Alignment follows placement of label, e.g., labels to the left of a feature
will be drawn with right alignment*/ will be drawn with right alignment*/
}; };
@ -366,7 +366,7 @@ class QgsPalLayerSettings
QString fieldName; QString fieldName;
/** Is this label made from a expression string eg FieldName || 'mm' /** Is this label made from a expression string, e.g., FieldName || 'mm'
*/ */
bool isExpression; bool isExpression;
@ -408,7 +408,7 @@ class QgsPalLayerSettings
bool centroidInside; // whether centroid-point calculated must be inside polygon bool centroidInside; // whether centroid-point calculated must be inside polygon
/** Ordered list of predefined label positions for points. Positions earlier /** Ordered list of predefined label positions for points. Positions earlier
* in the list will be prioritised over later positions. Only used when the placement * in the list will be prioritized over later positions. Only used when the placement
* is set to QgsPalLayerSettings::OrderedPositionsAroundPoint. * is set to QgsPalLayerSettings::OrderedPositionsAroundPoint.
* @note not available in Python bindings * @note not available in Python bindings
*/ */
@ -487,7 +487,7 @@ class QgsPalLayerSettings
* @param labelFeature if using QgsLabelingEngine, this will receive the label feature. Not available * @param labelFeature if using QgsLabelingEngine, this will receive the label feature. Not available
* in Python bindings. * in Python bindings.
* @param obstacleGeometry optional obstacle geometry, if a different geometry to the feature's geometry * @param obstacleGeometry optional obstacle geometry, if a different geometry to the feature's geometry
* should be used as an obstacle for labels (eg, if the feature has been rendered with an offset point * should be used as an obstacle for labels (e.g., if the feature has been rendered with an offset point
* symbol, the obstacle geometry should represent the bounds of the offset symbol). If not set, * symbol, the obstacle geometry should represent the bounds of the offset symbol). If not set,
* the feature's original geometry will be used as an obstacle for labels. Not available * the feature's original geometry will be used as an obstacle for labels. Not available
* in Python bindings. * in Python bindings.
@ -569,13 +569,13 @@ class QgsPalLayerSettings
*/ */
// QMap<QgsPalLayerSettings::DataDefinedProperties, QPair<QString, int> > dataDefinedNames() const; // QMap<QgsPalLayerSettings::DataDefinedProperties, QPair<QString, int> > dataDefinedNames() const;
/** Returns the label text formatting settings, eg font settings, buffer settings, etc. /** Returns the label text formatting settings, e.g., font settings, buffer settings, etc.
* @see setFormat() * @see setFormat()
* @note added in QGIS 3.0 * @note added in QGIS 3.0
*/ */
const QgsTextFormat& format() const; const QgsTextFormat& format() const;
/** Sets the label text formatting settings, eg font settings, buffer settings, etc. /** Sets the label text formatting settings, e.g., font settings, buffer settings, etc.
* @param format label text format * @param format label text format
* @see format() * @see format()
* @note added in QGIS 3.0 * @note added in QGIS 3.0
@ -727,7 +727,7 @@ class QgsPalLabeling
/** Splits a text string to a list of graphemes, which are the smallest allowable character /** Splits a text string to a list of graphemes, which are the smallest allowable character
* divisions in the string. This accounts for scripts were individual characters are not * divisions in the string. This accounts for scripts were individual characters are not
* allowed to be split apart (eg Arabic and Indic based scripts) * allowed to be split apart (e.g., Arabic and Indic based scripts)
* @param text string to split * @param text string to split
* @returns list of graphemes * @returns list of graphemes
* @note added in QGIS 2.10 * @note added in QGIS 2.10

View File

@ -37,8 +37,7 @@ class QgsPluginLayerRegistry
public: public:
/** Means of accessing canonical single instance */ QgsPluginLayerRegistry();
static QgsPluginLayerRegistry* instance();
~QgsPluginLayerRegistry(); ~QgsPluginLayerRegistry();
@ -62,8 +61,6 @@ class QgsPluginLayerRegistry
private: private:
/** Private since instance() creates it */
QgsPluginLayerRegistry();
QgsPluginLayerRegistry( const QgsPluginLayerRegistry& rh ); QgsPluginLayerRegistry( const QgsPluginLayerRegistry& rh );
}; };

View File

@ -185,10 +185,10 @@ class QgsPoint
* Its up to the calling function to ensure that this point can * Its up to the calling function to ensure that this point can
* be meaningfully represented in this form. * be meaningfully represented in this form.
* @param thePrecision number of decimal points to use for seconds * @param thePrecision number of decimal points to use for seconds
* @param useSuffix set to true to include a direction suffix (eg 'N'), * @param useSuffix set to true to include a direction suffix (e.g., 'N'),
* set to false to use a "-" prefix for west and south coordinates * set to false to use a "-" prefix for west and south coordinates
* @param padded set to true to force minutes and seconds to use two decimals, * @param padded set to true to force minutes and seconds to use two decimals,
* eg, '05' instead of '5'. * e.g., '05' instead of '5'.
*/ */
QString toDegreesMinutesSeconds( int thePrecision, const bool useSuffix = true, const bool padded = false ) const; QString toDegreesMinutesSeconds( int thePrecision, const bool useSuffix = true, const bool padded = false ) const;
@ -196,10 +196,10 @@ class QgsPoint
* Its up to the calling function to ensure that this point can * Its up to the calling function to ensure that this point can
* be meaningfully represented in this form. * be meaningfully represented in this form.
* @param thePrecision number of decimal points to use for minutes * @param thePrecision number of decimal points to use for minutes
* @param useSuffix set to true to include a direction suffix (eg 'N'), * @param useSuffix set to true to include a direction suffix (e.g., 'N'),
* set to false to use a "-" prefix for west and south coordinates * set to false to use a "-" prefix for west and south coordinates
* @param padded set to true to force minutes to use two decimals, * @param padded set to true to force minutes to use two decimals,
* eg, '05' instead of '5'. * e.g., '05' instead of '5'.
*/ */
QString toDegreesMinutes( int thePrecision, const bool useSuffix = true, const bool padded = false ) const; QString toDegreesMinutes( int thePrecision, const bool useSuffix = true, const bool padded = false ) const;

View File

@ -86,7 +86,7 @@ class QgsProject : QObject, QgsExpressionContextGenerator
void setCrs( const QgsCoordinateReferenceSystem& crs ); void setCrs( const QgsCoordinateReferenceSystem& crs );
/** /**
* Returns a proj string representing the project's ellipsoid setting, eg "WGS84". * Returns a proj string representing the project's ellipsoid setting, e.g., "WGS84".
* @see setEllipsoid() * @see setEllipsoid()
* @see crs() * @see crs()
* @note added in QGIS 2.18 * @note added in QGIS 2.18
@ -94,7 +94,7 @@ class QgsProject : QObject, QgsExpressionContextGenerator
QString ellipsoid() const; QString ellipsoid() const;
/** /**
* Sets the project's ellipsoid from a proj string representation, eg "WGS84". * Sets the project's ellipsoid from a proj string representation, e.g., "WGS84".
* @see ellipsoid() * @see ellipsoid()
* @see setCrs() * @see setCrs()
* @note added in QGIS 2.18 * @note added in QGIS 2.18
@ -106,52 +106,37 @@ class QgsProject : QObject, QgsExpressionContextGenerator
*/ */
void clear(); void clear();
/** Reads a project file. /** Reads given project file from the given file.
* @param file name of project file to read * @param filename name of project file to read
* @note Any current plug-in state is erased * @returns true if project file has been read successfully
* @note Calling read() performs the following operations:
*
* - Gets the extents
* - Creates maplayers
* - Registers maplayers
*
* @note it's presumed that the caller has already reset the map canvas, map registry, and legend
*/ */
bool read( const QFileInfo& file ); bool read( const QString& filename );
/** Reads the current project file. /** Reads the project from its currently associated file (see fileName() ).
* @note Any current plug-in state is erased * @returns true if project file has been read successfully
* @note Calling read() performs the following operations:
*
* - Gets the extents
* - Creates maplayers
* - Registers maplayers
*
* @note it's presumed that the caller has already reset the map canvas, map registry, and legend
*/ */
bool read(); bool read();
/** Reads the layer described in the associated DOM node. /** Reads the layer described in the associated DOM node.
*
* @note This method is mainly for use by QgsProjectBadLayerHandler subclasses
* that may fix definition of bad layers with the user's help in GUI. Calling
* this method with corrected DOM node adds the layer back to the project.
* *
* @param layerNode represents a QgsProject DOM node that encodes a specific layer. * @param layerNode represents a QgsProject DOM node that encodes a specific layer.
*
* QgsProject raises an exception when one of the QgsProject::read()
* implementations fails. Since the read()s are invoked from qgisapp,
* then qgisapp handles the exception. It prompts the user for the new
* location of the data, if any. If there is a new location, the DOM
* node associated with the layer has its datasource tag corrected.
* Then that node is passed to this member function to be re-opened.
*
*/ */
bool read( QDomNode& layerNode ); bool readLayer( const QDomNode& layerNode );
/** Writes the project to a file. /**
* @param file destination file * Writes the project to a file.
* @param filename destination file
* @note calling this implicitly sets the project's filename (see setFileName() ) * @note calling this implicitly sets the project's filename (see setFileName() )
* @note isDirty() will be set to false if project is successfully written * @note isDirty() will be set to false if project is successfully written
* @returns true if project was written successfully * @returns true if project was written successfully
*
* \note Added in QGIS 3.0
*/ */
bool write( const QFileInfo& file ); bool write( const QString& filename );
/** Writes the project to its current associated file (see fileName() ). /** Writes the project to its current associated file (see fileName() ).
* @note isDirty() will be set to false if project is successfully written * @note isDirty() will be set to false if project is successfully written
@ -411,33 +396,16 @@ class QgsProject : QObject, QgsExpressionContextGenerator
* *
* @note Added in QGIS 3.0 * @note Added in QGIS 3.0
*/ */
QStringList avoidIntersectionsList() const; QList<QgsVectorLayer*> avoidIntersectionsLayers() const;
/** /**
* A list of layers with which intersections should be avoided. * A list of layers with which intersections should be avoided.
* *
* @note Added in QGIS 3.0 * @note Added in QGIS 3.0
*/ */
void setAvoidIntersectionsList( const QStringList& avoidIntersectionsList ); void setAvoidIntersectionsLayers( const QList<QgsVectorLayer*>& layers );
QVariantMap customVariables() const;
/** void setCustomVariables( const QVariantMap& customVariables );
* A map of custom project variables.
* To get all available variables including generated ones
* use QgsExpressionContextUtils::projectScope() instead.
*/
QgsStringMap variables() const;
/**
* A map of custom project variables.
* Be careful not to set generated variables.
*/
void setVariables( const QgsStringMap& variables );
//
// Functionality from QgsMapLayerRegistry
//
//! Returns the number of registered layers.
int count() const; int count() const;
/** Retrieve a pointer to a registered layer by layer ID. /** Retrieve a pointer to a registered layer by layer ID.
@ -660,7 +628,7 @@ class QgsProject : QObject, QgsExpressionContextGenerator
/** Emitted whenever the expression variables stored in the project have been changed. /** Emitted whenever the expression variables stored in the project have been changed.
* @note added in QGIS 3.0 * @note added in QGIS 3.0
*/ */
void variablesChanged(); void customVariablesChanged();
/** /**
* Emitted whenever a new transaction group has been created or a * Emitted whenever a new transaction group has been created or a
@ -678,11 +646,11 @@ class QgsProject : QObject, QgsExpressionContextGenerator
void topologicalEditingChanged(); void topologicalEditingChanged();
/** /**
* Emitted whenever avoidIntersectionsList has changed. * Emitted whenever avoidIntersectionsLayers has changed.
* *
* @note Added in QGIS 3.0 * @note Added in QGIS 3.0
*/ */
void avoidIntersectionsListChanged(); void avoidIntersectionsLayersChanged();
/** /**
* Emitted when the map theme collection changes. * Emitted when the map theme collection changes.

View File

@ -32,7 +32,6 @@ class QgsProjectBadLayerHandler
* log. * log.
* *
* @note Added in QGIS 3.0 * @note Added in QGIS 3.0
* @see QgsProjectBadLayerGuiHandler
*/ */
virtual void handleBadLayers( const QList<QDomNode>& layers ); virtual void handleBadLayers( const QList<QDomNode>& layers );
virtual ~QgsProjectBadLayerHandler(); virtual ~QgsProjectBadLayerHandler();

View File

@ -1,12 +1,12 @@
class QgsProperty class QgsProjectProperty
{ {
%TypeHeaderCode %TypeHeaderCode
#include <qgsprojectproperty.h> #include <qgsprojectproperty.h>
%End %End
public: public:
QgsProperty(); QgsProjectProperty();
virtual ~QgsProperty(); virtual ~QgsProjectProperty();
/** Dumps out the keys and values /** Dumps out the keys and values
* *
@ -34,7 +34,7 @@ class QgsProperty
* *
* Used for restoring properties from project file * Used for restoring properties from project file
*/ */
virtual bool readXml( QDomNode & keyNode ) = 0; virtual bool readXml( const QDomNode& keyNode ) = 0;
/** /**
* adds property hierarchy to given Dom element * adds property hierarchy to given Dom element
@ -63,16 +63,16 @@ class QgsProperty
}; // class QgsProperty }; // class QgsProperty
class QgsPropertyValue : QgsProperty class QgsProjectPropertyValue : QgsProjectProperty
{ {
%TypeHeaderCode %TypeHeaderCode
#include <qgsprojectproperty.h> #include <qgsprojectproperty.h>
%End %End
public: public:
QgsPropertyValue(); QgsProjectPropertyValue();
QgsPropertyValue( const QVariant &value ); QgsProjectPropertyValue( const QVariant &value );
virtual ~QgsPropertyValue(); virtual ~QgsProjectPropertyValue();
/** Returns true if is a QgsPropertyKey */ /** Returns true if is a QgsPropertyKey */
virtual bool isKey() const; virtual bool isKey() const;
@ -91,30 +91,23 @@ class QgsPropertyValue : QgsProperty
void dump( int tabs = 0 ) const; void dump( int tabs = 0 ) const;
bool readXml( QDomNode & keyNode ); bool readXml( const QDomNode& keyNode );
bool writeXml( const QString & nodeName, bool writeXml( const QString & nodeName,
QDomElement & element, QDomElement & element,
QDomDocument & document ); QDomDocument & document );
int count() const;
/** Return keys that do not contain other keys
* Since QgsPropertyValue isn't a key, don't do anything.
*/
void entryList( QStringList & keyName, QStringList & entries ) const;
}; };
class QgsPropertyKey : QgsProperty class QgsProjectPropertyKey : QgsProjectProperty
{ {
%TypeHeaderCode %TypeHeaderCode
#include <qgsprojectproperty.h> #include <qgsprojectproperty.h>
%End %End
public: public:
QgsPropertyKey( const QString& name = QString() ); QgsProjectPropertyKey( const QString& name = QString() );
virtual ~QgsPropertyKey(); virtual ~QgsProjectPropertyKey();
/** /**
* The name of the property is used as identifier. * The name of the property is used as identifier.
@ -133,7 +126,7 @@ class QgsPropertyKey : QgsProperty
/// add the given property key /// add the given property key
QgsPropertyKey * addKey( const QString & keyName ); QgsProjectPropertyKey * addKey( const QString & keyName );
/// remove the given key /// remove the given key
void removeKey( const QString & keyName ); void removeKey( const QString & keyName );
@ -143,19 +136,19 @@ class QgsPropertyKey : QgsProperty
* @param value is the value to set * @param value is the value to set
* @return pointer to property value * @return pointer to property value
*/ */
QgsPropertyValue * setValue( const QString & name, const QVariant & value ); QgsProjectPropertyValue * setValue( const QString & name, const QVariant & value );
/** Set the value associated with this key /** Set the value associated with this key
* *
* @note that the single value node associated with each key is always * @note that the single value node associated with each key is always
* stored keyed by the current key name * stored keyed by the current key name
*/ */
QgsPropertyValue * setValue( const QVariant & value ); QgsProjectPropertyValue * setValue( const QVariant & value );
void dump( int tabs = 0 ) const; void dump( int tabs = 0 ) const;
bool readXml( QDomNode & keyNode ); bool readXml( const QDomNode& keyNode );
bool writeXml( const QString &nodeName, QDomElement & element, QDomDocument & document ); bool writeXml( const QString &nodeName, QDomElement & element, QDomDocument & document );
@ -189,5 +182,5 @@ class QgsPropertyKey : QgsProperty
/// delete any sub-nodes /// delete any sub-nodes
virtual void clearKeys(); virtual void clearKeys();
QgsProperty * find( QString & propertyName ); QgsProjectProperty * find( QString & propertyName );
}; // class QgsPropertyKey }; // class QgsPropertyKey

View File

@ -47,7 +47,8 @@ class QgsSnappingUtils : QObject
{ {
IndexAlwaysFull, //!< For all layers build index of full extent. Uses more memory, but queries are faster. IndexAlwaysFull, //!< For all layers build index of full extent. Uses more memory, but queries are faster.
IndexNeverFull, //!< For all layers only create temporary indexes of small extent. Low memory usage, slower queries. IndexNeverFull, //!< For all layers only create temporary indexes of small extent. Low memory usage, slower queries.
IndexHybrid //!< For "big" layers using IndexNeverFull, for the rest IndexAlwaysFull. Compromise between speed and memory usage. IndexHybrid, //!< For "big" layers using IndexNeverFull, for the rest IndexAlwaysFull. Compromise between speed and memory usage.
IndexExtent //!< For all layer build index of extent given in map settings
}; };
/** Set a strategy for indexing geometry data - determines how fast and memory consuming the data structures will be */ /** Set a strategy for indexing geometry data - determines how fast and memory consuming the data structures will be */

View File

@ -49,13 +49,13 @@ class QgsStatisticalSummary
virtual ~QgsStatisticalSummary(); virtual ~QgsStatisticalSummary();
/** Returns flags which specify which statistics will be calculated. Some statistics /** Returns flags which specify which statistics will be calculated. Some statistics
* are always calculated (eg sum, min and max). * are always calculated (e.g., sum, min and max).
* @see setStatistics * @see setStatistics
*/ */
QgsStatisticalSummary::Statistics statistics() const; QgsStatisticalSummary::Statistics statistics() const;
/** Sets flags which specify which statistics will be calculated. Some statistics /** Sets flags which specify which statistics will be calculated. Some statistics
* are always calculated (eg sum, min and max). * are always calculated (e.g., sum, min and max).
* @param stats flags for statistics to calculate * @param stats flags for statistics to calculate
* @see statistics * @see statistics
*/ */

View File

@ -42,13 +42,13 @@ class QgsStringStatisticalSummary
QgsStringStatisticalSummary( QgsStringStatisticalSummary::Statistics stats = All ); QgsStringStatisticalSummary( QgsStringStatisticalSummary::Statistics stats = All );
/** Returns flags which specify which statistics will be calculated. Some statistics /** Returns flags which specify which statistics will be calculated. Some statistics
* are always calculated (eg count). * are always calculated (e.g., count).
* @see setStatistics * @see setStatistics
*/ */
Statistics statistics() const; Statistics statistics() const;
/** Sets flags which specify which statistics will be calculated. Some statistics /** Sets flags which specify which statistics will be calculated. Some statistics
* are always calculated (eg count). * are always calculated (e.g., count).
* @param stats flags for statistics to calculate * @param stats flags for statistics to calculate
* @see statistics * @see statistics
*/ */

View File

@ -152,7 +152,7 @@ class QgsStringUtils
static int levenshteinDistance( const QString &string1, const QString &string2, bool caseSensitive = false ); static int levenshteinDistance( const QString &string1, const QString &string2, bool caseSensitive = false );
/** Returns the longest common substring between two strings. This substring is the longest /** Returns the longest common substring between two strings. This substring is the longest
* string that is a substring of the two input strings. Eg, the longest common substring * string that is a substring of the two input strings. For example, the longest common substring
* of "ABABC" and "BABCA" is "ABC". * of "ABABC" and "BABCA" is "ABC".
* @param string1 first string * @param string1 first string
* @param string2 second string * @param string2 second string
@ -178,7 +178,7 @@ class QgsStringUtils
*/ */
static QString soundex( const QString &string ); static QString soundex( const QString &string );
/** Returns a string with any URL (eg http(s)/ftp) and mailto: text converted to valid HTML <a ...> /** Returns a string with any URL (e.g., http(s)/ftp) and mailto: text converted to valid HTML <a ...>
* links. * links.
* @param string string to insert links into * @param string string to insert links into
* @param foundLinks if specified, will be set to true if any links were inserted into the string * @param foundLinks if specified, will be set to true if any links were inserted into the string

View File

@ -181,7 +181,7 @@ class QgsTask : QObject
/** /**
* Will be emitted by task if it has terminated for any reason * Will be emitted by task if it has terminated for any reason
* other then completion (eg when a task has been cancelled or encountered * other then completion (e.g., when a task has been cancelled or encountered
* an internal error). * an internal error).
* @note derived classes should not emit this signal directly, it will automatically * @note derived classes should not emit this signal directly, it will automatically
* be emitted * be emitted

View File

@ -215,12 +215,12 @@ class QgsTextBackgroundSettings
*/ */
void setEnabled( bool enabled ); void setEnabled( bool enabled );
/** Returns the type of background shape (eg square, ellipse, SVG). /** Returns the type of background shape (e.g., square, ellipse, SVG).
* @see setType() * @see setType()
*/ */
ShapeType type() const; ShapeType type() const;
/** Sets the type of background shape to draw (eg square, ellipse, SVG). /** Sets the type of background shape to draw (e.g., square, ellipse, SVG).
* @param type shape type * @param type shape type
* @see type() * @see type()
*/ */
@ -238,14 +238,14 @@ class QgsTextBackgroundSettings
*/ */
void setSvgFile( const QString& file ); void setSvgFile( const QString& file );
/** Returns the method used to determine the size of the background shape (eg fixed size or buffer /** Returns the method used to determine the size of the background shape (e.g., fixed size or buffer
* around text). * around text).
* @see setSizeType() * @see setSizeType()
* @see size() * @see size()
*/ */
SizeType sizeType() const; SizeType sizeType() const;
/** Sets the method used to determine the size of the background shape (eg fixed size or buffer /** Sets the method used to determine the size of the background shape (e.g., fixed size or buffer
* around text). * around text).
* @param type size method * @param type size method
* @see sizeType() * @see sizeType()
@ -253,8 +253,8 @@ class QgsTextBackgroundSettings
*/ */
void setSizeType( SizeType type ); void setSizeType( SizeType type );
/** Returns the size of the background shape. The meaning of the size depends on the current sizeType() /** Returns the size of the background shape. The meaning of the size depends on the current sizeType(),
* eg, for size types of QgsTextBackgroundSettings::SizeFixed the size will represent the actual width and * e.g., for size types of QgsTextBackgroundSettings::SizeFixed the size will represent the actual width and
* height of the shape, for QgsTextBackgroundSettings::SizeBuffer the size will represent the horizontal * height of the shape, for QgsTextBackgroundSettings::SizeBuffer the size will represent the horizontal
* and vertical margins to add to the text when calculating the size of the shape. * and vertical margins to add to the text when calculating the size of the shape.
* @see setSize() * @see setSize()
@ -262,8 +262,8 @@ class QgsTextBackgroundSettings
*/ */
QSizeF size() const; QSizeF size() const;
/** Sets the size of the background shape. The meaning of the size depends on the current sizeType() /** Sets the size of the background shape. The meaning of the size depends on the current sizeType(),
* eg, for size types of QgsTextBackgroundSettings::SizeFixed the size will represent the actual width and * e.g., for size types of QgsTextBackgroundSettings::SizeFixed the size will represent the actual width and
* height of the shape, for QgsTextBackgroundSettings::SizeBuffer the size will represent the horizontal * height of the shape, for QgsTextBackgroundSettings::SizeBuffer the size will represent the horizontal
* and vertical margins to add to the text when calculating the size of the shape. * and vertical margins to add to the text when calculating the size of the shape.
* @param size QSizeF representing horizontal and vertical size components for shape * @param size QSizeF representing horizontal and vertical size components for shape
@ -589,14 +589,14 @@ class QgsTextShadowSettings
void setEnabled( bool enabled ); void setEnabled( bool enabled );
/** Returns the placement for the drop shadow. The placement determines /** Returns the placement for the drop shadow. The placement determines
* both the z-order stacking position for the shadow and the what shape (eg text, * both the z-order stacking position for the shadow and the what shape (e.g., text,
* background shape) is used for casting the shadow. * background shape) is used for casting the shadow.
* @see setShadowPlacement() * @see setShadowPlacement()
*/ */
QgsTextShadowSettings::ShadowPlacement shadowPlacement() const; QgsTextShadowSettings::ShadowPlacement shadowPlacement() const;
/** Sets the placement for the drop shadow. The placement determines /** Sets the placement for the drop shadow. The placement determines
* both the z-order stacking position for the shadow and the what shape (eg text, * both the z-order stacking position for the shadow and the what shape (e.g., text,
* background shape) is used for casting the shadow. * background shape) is used for casting the shadow.
* @param placement shadow placement * @param placement shadow placement
* @see shadowPlacement() * @see shadowPlacement()
@ -874,14 +874,14 @@ class QgsTextFormat
*/ */
void setFont( const QFont& font ); void setFont( const QFont& font );
/** Returns the named style for the font used for rendering text (eg "bold"). /** Returns the named style for the font used for rendering text (e.g., "bold").
* @see setNamedStyle() * @see setNamedStyle()
* @see font() * @see font()
*/ */
QString namedStyle() const; QString namedStyle() const;
/** Sets the named style for the font used for rendering text. /** Sets the named style for the font used for rendering text.
* @param style named style, eg "bold" * @param style named style, e.g., "bold"
* @see namedStyle() * @see namedStyle()
* @see setFont() * @see setFont()
*/ */
@ -1115,7 +1115,7 @@ class QgsTextRenderer
* @param context render context * @param context render context
* @param format text format * @param format text format
* @param part component of text to draw. Note that Shadow parts cannot be drawn * @param part component of text to draw. Note that Shadow parts cannot be drawn
* individually and instead are drawn with their associated part (eg drawn together * individually and instead are drawn with their associated part (e.g., drawn together
* with the text or background parts) * with the text or background parts)
* @param drawAsOutlines set to false to render text as text. This allows outputs to * @param drawAsOutlines set to false to render text as text. This allows outputs to
* formats like SVG to maintain text as text objects, but at the cost of degraded * formats like SVG to maintain text as text objects, but at the cost of degraded

View File

@ -30,7 +30,7 @@ class QgsUnitTypes
enum DistanceUnitType enum DistanceUnitType
{ {
Standard, /*!< unit is a standard measurement unit */ Standard, /*!< unit is a standard measurement unit */
Geographic, /*!< unit is a geographic (eg degree based) unit */ Geographic, /*!< unit is a geographic (e.g., degree based) unit */
UnknownType, /*!< unknown unit type */ UnknownType, /*!< unknown unit type */
}; };
@ -67,8 +67,8 @@ class QgsUnitTypes
RenderMillimeters, //!< millimeters RenderMillimeters, //!< millimeters
RenderMapUnits, //!< map units RenderMapUnits, //!< map units
RenderPixels, //!< pixels RenderPixels, //!< pixels
RenderPercentage, //!< percentage of another measurement (eg canvas size, feature size) RenderPercentage, //!< percentage of another measurement (e.g., canvas size, feature size)
RenderPoints, //! points (eg for font sizes) RenderPoints, //! points (e.g., for font sizes)
RenderUnknownUnit, //!< mixed or unknown units RenderUnknownUnit, //!< mixed or unknown units
}; };
@ -153,7 +153,7 @@ class QgsUnitTypes
*/ */
static double fromUnitToUnitFactor( AreaUnit fromUnit, AreaUnit toUnit ); static double fromUnitToUnitFactor( AreaUnit fromUnit, AreaUnit toUnit );
/** Converts a distance unit to its corresponding area unit, eg meters to square meters /** Converts a distance unit to its corresponding area unit, e.g., meters to square meters
* @param distanceUnit distance unit to convert * @param distanceUnit distance unit to convert
* @return matching areal unit * @return matching areal unit
*/ */

View File

@ -49,6 +49,8 @@ class QgsVectorDataProvider : QgsDataProvider
ChangeFeatures, ChangeFeatures,
/** Supports renaming attributes (fields). Added in QGIS 2.16 */ /** Supports renaming attributes (fields). Added in QGIS 2.16 */
RenameAttributes, RenameAttributes,
//! Supports fast truncation of the layer (removing all features). Added in QGIS 3.0
FastTruncate,
}; };
typedef QFlags<QgsVectorDataProvider::Capability> Capabilities; typedef QFlags<QgsVectorDataProvider::Capability> Capabilities;
@ -191,11 +193,21 @@ class QgsVectorDataProvider : QgsDataProvider
virtual bool addFeatures( QList<QgsFeature> &flist /In,Out/ ); virtual bool addFeatures( QList<QgsFeature> &flist /In,Out/ );
/** /**
* Deletes one or more features * Deletes one or more features from the provider. This requires the DeleteFeatures capability.
* @param id list containing feature ids to delete * @param id list containing feature ids to delete
* @return true in case of success and false in case of failure * @return true in case of success and false in case of failure
* @see truncate()
*/ */
virtual bool deleteFeatures( const QSet<qint64> &id ); virtual bool deleteFeatures( const QgsFeatureIds &id );
/**
* Removes all features from the layer. This requires either the FastTruncate or DeleteFeatures capability.
* Providers with the FastTruncate capability will use an optimised method to truncate the layer.
* @returns true in case of success and false in case of failure.
* @note added in QGIS 3.0
* @see deleteFeatures()
*/
virtual bool truncate();
/** /**
* Adds new attributes * Adds new attributes
@ -241,8 +253,8 @@ class QgsVectorDataProvider : QgsDataProvider
* Returns any literal default values which are present at the provider for a specified * Returns any literal default values which are present at the provider for a specified
* field index. Important - this should ONLY be called when creating an attribute to insert * field index. Important - this should ONLY be called when creating an attribute to insert
* directly into the database. Do not call this method for non-feature creation or modification, * directly into the database. Do not call this method for non-feature creation or modification,
* eg when validating an attribute or to compare it against an existing value, as calling it * e.g., when validating an attribute or to compare it against an existing value, as calling it
* can cause changes to the underlying data source (eg Postgres provider where the default value * can cause changes to the underlying data source (e.g., Postgres provider where the default value
* is calculated as a result of a sequence). It is recommended that you instead use the methods * is calculated as a result of a sequence). It is recommended that you instead use the methods
* in QgsVectorLayerUtils such as QgsVectorLayerUtils::createFeature() * in QgsVectorLayerUtils such as QgsVectorLayerUtils::createFeature()
* so that default value handling and validation is automatically carried out. * so that default value handling and validation is automatically carried out.
@ -253,7 +265,7 @@ class QgsVectorDataProvider : QgsDataProvider
/** /**
* Returns any default value clauses which are present at the provider for a specified * Returns any default value clauses which are present at the provider for a specified
* field index. These clauses are usually SQL fragments which must be evaluated by the * field index. These clauses are usually SQL fragments which must be evaluated by the
* provider, eg sequence values. * provider, e.g., sequence values.
* @see defaultValue() * @see defaultValue()
* @note added in QGIS 3.0 * @note added in QGIS 3.0
*/ */
@ -268,7 +280,7 @@ class QgsVectorDataProvider : QgsDataProvider
QgsFieldConstraints::Constraints fieldConstraints( int fieldIndex ) const; QgsFieldConstraints::Constraints fieldConstraints( int fieldIndex ) const;
/** /**
* Returns true if a constraint check should be skipped for a specified field (eg if * Returns true if a constraint check should be skipped for a specified field (e.g., if
* the value returned by defaultValue() is trusted implicitly. An optional attribute value can be * the value returned by defaultValue() is trusted implicitly. An optional attribute value can be
* passed which can help refine the skip constraint check. * passed which can help refine the skip constraint check.
* @note added in QGIS 3.0 * @note added in QGIS 3.0

View File

@ -352,7 +352,7 @@ class QgsVectorLayer : QgsMapLayer, QgsExpressionContextGenerator
* @param path The path or url of the parameter. Typically this encodes * @param path The path or url of the parameter. Typically this encodes
* parameters used by the data provider as url query items. * parameters used by the data provider as url query items.
* @param baseName The name used to represent the layer in the legend * @param baseName The name used to represent the layer in the legend
* @param providerLib The name of the data provider, eg "memory", "postgres" * @param providerLib The name of the data provider, e.g., "memory", "postgres"
* @param loadDefaultStyleFlag whether to load the default style * @param loadDefaultStyleFlag whether to load the default style
* *
*/ */

View File

@ -38,7 +38,7 @@ class QgsVectorLayerUtils
/** /**
* Creates a new feature ready for insertion into a layer. Default values and constraints * Creates a new feature ready for insertion into a layer. Default values and constraints
* (eg unique constraints) will automatically be handled. An optional attribute map can be * (e.g., unique constraints) will automatically be handled. An optional attribute map can be
* passed for the new feature to copy as many attribute values as possible from the map, * passed for the new feature to copy as many attribute values as possible from the map,
* assuming that they respect the layer's constraints. Note that the created feature is not * assuming that they respect the layer's constraints. Note that the created feature is not
* automatically inserted into the layer. * automatically inserted into the layer.

View File

@ -5,7 +5,31 @@ class QgsColorRampShader : QgsRasterShaderFunction
%End %End
public: public:
QgsColorRampShader( double theMinimumValue = 0.0, double theMaximumValue = 255.0 ); //! Supported methods for color interpolation.
enum Type
{
Interpolated, //!< Interpolates the color between two class breaks linearly.
Discrete, //!< Assigns the color of the higher class for every pixel between two class breaks.
Exact //!< Assigns the color of the exact matching value in the color ramp item list
};
//! Classification modes used to create the color ramp shader
enum ClassificationMode
{
Continuous = 1, //!< Uses breaks from color palette
EqualInterval = 2, //!< Uses equal interval
Quantile = 3 //!< Uses quantile (i.e. equal pixel) count
};
/** Creates a new color ramp shader.
* @param theMinimumValue minimum value for the raster shader
* @param theMaximumValue maximum value for the raster shader
* @param theType interpolation type used
* @param theClassificationMode method used to classify the color ramp shader
* @param theColorRamp vector color ramp used to classify the color ramp shader
* @returns new QgsColorRampShader
*/
QgsColorRampShader( double theMinimumValue = 0.0, double theMaximumValue = 255.0, QgsColorRamp* theColorRamp = nullptr, Type theType = Interpolated, ClassificationMode theClassificationMode = Continuous );
~QgsColorRampShader(); ~QgsColorRampShader();
@ -28,19 +52,11 @@ class QgsColorRampShader : QgsRasterShaderFunction
bool operator<( const QgsColorRampShader::ColorRampItem& other ) const; bool operator<( const QgsColorRampShader::ColorRampItem& other ) const;
}; };
/** Supported methods for color interpolation. */
enum ColorRamp_TYPE
{
INTERPOLATED, //!< Interpolates the color between two class breaks linearly.
DISCRETE, //!< Assigns the color of the higher class for every pixel between two class breaks.
EXACT //!< Assigns the color of the exact matching value in the color ramp item list
};
/** \brief Get the custom colormap*/ /** \brief Get the custom colormap*/
QList<QgsColorRampShader::ColorRampItem> colorRampItemList() const; QList<QgsColorRampShader::ColorRampItem> colorRampItemList() const;
/** \brief Get the color ramp type */ /** \brief Get the color ramp type */
QgsColorRampShader::ColorRamp_TYPE colorRampType() const; Type colorRampType() const;
/** Get the source color ramp /** Get the source color ramp
* @note added in QGIS 3.0 * @note added in QGIS 3.0
@ -61,11 +77,27 @@ class QgsColorRampShader : QgsRasterShaderFunction
void setColorRampItemList( const QList<QgsColorRampShader::ColorRampItem>& theList ); //TODO: sort on set void setColorRampItemList( const QList<QgsColorRampShader::ColorRampItem>& theList ); //TODO: sort on set
/** \brief Set the color ramp type*/ /** \brief Set the color ramp type*/
void setColorRampType( QgsColorRampShader::ColorRamp_TYPE theColorRampType ); void setColorRampType( QgsColorRampShader::Type theColorRampType );
/** \brief Set the color ramp type*/ /** \brief Set the color ramp type*/
void setColorRampType( const QString& theType ); void setColorRampType( const QString& theType );
/** Classify color ramp shader
* @param classes number of classes
* @param band raster band used in classification (only used in quantile mode)
* @param extent extent used in classification (only used in quantile mode)
* @param input raster input used in classification (only used in quantile mode)
*/
void classifyColorRamp( const int classes = 0, const int band = -1, const QgsRectangle& extent = QgsRectangle(), QgsRasterInterface* input = nullptr );
/** Classify color ramp shader
* @param band raster band used in classification (only used in quantile mode)
* @param extent extent used in classification (only used in quantile mode)
* @param input raster input used in classification (only used in quantile mode)
*/
void classifyColorRamp( const int band = -1, const QgsRectangle& extent = QgsRectangle(), QgsRasterInterface* input = nullptr ) /PyName=classifyColorRampV2/;
/** \brief Generates and new RGB value based on one input value */ /** \brief Generates and new RGB value based on one input value */
bool shade( double, int* /Out/, int* /Out/, int* /Out/, int* /Out/ ); bool shade( double, int* /Out/, int* /Out/, int* /Out/, int* /Out/ );
@ -74,6 +106,12 @@ class QgsColorRampShader : QgsRasterShaderFunction
void legendSymbologyItems( QList< QPair< QString, QColor > >& symbolItems ) const; void legendSymbologyItems( QList< QPair< QString, QColor > >& symbolItems ) const;
//! Sets classification mode
void setClassificationMode( ClassificationMode classificationMode );
//! Returns the classification mode
ClassificationMode classificationMode() const;
/** Sets whether the shader should not render values out of range. /** Sets whether the shader should not render values out of range.
* @param clip set to true to clip values which are out of range. * @param clip set to true to clip values which are out of range.
* @see clip() * @see clip()

View File

@ -211,7 +211,7 @@ class QgsRasterInterface
/** \brief Get histogram. Histograms are cached in providers. /** \brief Get histogram. Histograms are cached in providers.
* @param theBandNo The band (number). * @param theBandNo The band (number).
* @param theBinCount Number of bins (intervals,buckets). If 0, the number of bins is decided automaticaly according to data type, raster size etc. * @param theBinCount Number of bins (intervals,buckets). If 0, the number of bins is decided automatically according to data type, raster size etc.
* @param theMinimum Minimum value, if NaN, raster minimum value will be used. * @param theMinimum Minimum value, if NaN, raster minimum value will be used.
* @param theMaximum Maximum value, if NaN, raster minimum value will be used. * @param theMaximum Maximum value, if NaN, raster minimum value will be used.
* @param theExtent Extent used to calc histogram, if empty, whole raster extent is used. * @param theExtent Extent used to calc histogram, if empty, whole raster extent is used.

View File

@ -4,6 +4,7 @@ class QgsSingleBandPseudoColorRenderer: QgsRasterRenderer
#include "qgssinglebandpseudocolorrenderer.h" #include "qgssinglebandpseudocolorrenderer.h"
%End %End
public: public:
/** Note: takes ownership of QgsRasterShader*/ /** Note: takes ownership of QgsRasterShader*/
QgsSingleBandPseudoColorRenderer( QgsRasterDataProvider* provider, int band, QgsRasterShader* shader /Transfer/ ); QgsSingleBandPseudoColorRenderer( QgsRasterDataProvider* provider, int band, QgsRasterShader* shader /Transfer/ );
~QgsSingleBandPseudoColorRenderer(); ~QgsSingleBandPseudoColorRenderer();
@ -15,10 +16,22 @@ class QgsSingleBandPseudoColorRenderer: QgsRasterRenderer
/** Takes ownership of the shader*/ /** Takes ownership of the shader*/
void setShader( QgsRasterShader* shader /Transfer/ ); void setShader( QgsRasterShader* shader /Transfer/ );
QgsRasterShader* shader(); QgsRasterShader* shader();
//! @note available in python as constShader //! @note available in python as constShader
const QgsRasterShader* shader() const /PyName=constShader/; const QgsRasterShader* shader() const /PyName=constShader/;
/** Creates a color ramp shader
* @param colorRamp vector color ramp
* @param colorRampType type of color ramp shader
* @param classificationMode classification mode
* @param classes number of classes
* @param clip clip out of range values
* @param extent extent used in classification (only used in quantile mode)
*/
void createShader( QgsColorRamp* colorRamp = nullptr, QgsColorRampShader::Type colorRampType = QgsColorRampShader::Interpolated, QgsColorRampShader::ClassificationMode classificationMode = QgsColorRampShader::Continuous, int classes = 0, bool clip = false, const QgsRectangle& extent = QgsRectangle() );
void writeXml( QDomDocument& doc, QDomElement& parentElem ) const; void writeXml( QDomDocument& doc, QDomElement& parentElem ) const;
void legendSymbologyItems( QList< QPair< QString, QColor > >& symbolItems ) const; void legendSymbologyItems( QList< QPair< QString, QColor > >& symbolItems ) const;

View File

@ -174,7 +174,7 @@ class QgsGradientFillSymbolLayer : QgsFillSymbolLayer
double estimateMaxBleed() const; double estimateMaxBleed() const;
/** Type of gradient, eg linear or radial*/ /** Type of gradient, e.g., linear or radial*/
GradientType gradientType() const; GradientType gradientType() const;
void setGradientType( GradientType gradientType ); void setGradientType( GradientType gradientType );

View File

@ -218,7 +218,7 @@ class QgsSimpleMarkerSymbolLayer : QgsSimpleMarkerSymbolLayerBase
*/ */
void setBorderColor( const QColor& color ); void setBorderColor( const QColor& color );
/** Returns the marker's outline style (eg solid, dashed, etc) /** Returns the marker's outline style (e.g., solid, dashed, etc)
* @note added in 2.4 * @note added in 2.4
* @see setOutlineStyle() * @see setOutlineStyle()
* @see borderColor() * @see borderColor()
@ -226,7 +226,7 @@ class QgsSimpleMarkerSymbolLayer : QgsSimpleMarkerSymbolLayerBase
*/ */
Qt::PenStyle outlineStyle() const; Qt::PenStyle outlineStyle() const;
/** Sets the marker's outline style (eg solid, dashed, etc) /** Sets the marker's outline style (e.g., solid, dashed, etc)
* @param outlineStyle style * @param outlineStyle style
* @note added in 2.4 * @note added in 2.4
* @see outlineStyle() * @see outlineStyle()
@ -235,7 +235,7 @@ class QgsSimpleMarkerSymbolLayer : QgsSimpleMarkerSymbolLayerBase
*/ */
void setOutlineStyle( Qt::PenStyle outlineStyle ); void setOutlineStyle( Qt::PenStyle outlineStyle );
/** Returns the marker's outline join style (eg miter, bevel, etc). /** Returns the marker's outline join style (e.g., miter, bevel, etc).
* @note added in 2.16 * @note added in 2.16
* @see setPenJoinStyle() * @see setPenJoinStyle()
* @see borderColor() * @see borderColor()
@ -243,7 +243,7 @@ class QgsSimpleMarkerSymbolLayer : QgsSimpleMarkerSymbolLayerBase
*/ */
Qt::PenJoinStyle penJoinStyle() const; Qt::PenJoinStyle penJoinStyle() const;
/** Sets the marker's outline join style (eg miter, bevel, etc). /** Sets the marker's outline join style (e.g., miter, bevel, etc).
* @param style join style * @param style join style
* @note added in 2.16 * @note added in 2.16
* @see penJoinStyle() * @see penJoinStyle()

View File

@ -1,6 +1,6 @@
/** \class QgsPointDistanceRenderer /** \class QgsPointDistanceRenderer
* \ingroup core * \ingroup core
* An abstract base class for distance based point renderers (eg clusterer and displacement renderers). * An abstract base class for distance based point renderers (e.g., clusterer and displacement renderers).
* QgsPointDistanceRenderer handles calculation of point clusters using a distance based threshold. * QgsPointDistanceRenderer handles calculation of point clusters using a distance based threshold.
* Subclasses must implement drawGroup() to handle the rendering of individual point clusters * Subclasses must implement drawGroup() to handle the rendering of individual point clusters
* in the desired style. * in the desired style.

View File

@ -100,13 +100,13 @@ class QgsRendererRegistry
public: public:
//! Returns a pointer to the QgsRendererRegistry singleton QgsRendererRegistry();
static QgsRendererRegistry* instance(); ~QgsRendererRegistry();
//! Adds a renderer to the registry. Takes ownership of the metadata object. //! Adds a renderer to the registry. Takes ownership of the metadata object.
//! @param metadata renderer metadata //! @param metadata renderer metadata
//! @returns true if renderer was added successfully, or false if renderer could not //! @returns true if renderer was added successfully, or false if renderer could not
//! be added (eg a renderer with a duplicate name already exists) //! be added (e.g., a renderer with a duplicate name already exists)
bool addRenderer( QgsRendererAbstractMetadata* metadata /Transfer/ ); bool addRenderer( QgsRendererAbstractMetadata* metadata /Transfer/ );
//! Removes a renderer from registry. //! Removes a renderer from registry.
@ -128,11 +128,6 @@ class QgsRendererRegistry
//! @note added in QGIS 2.16 //! @note added in QGIS 2.16
QStringList renderersList( const QgsVectorLayer* layer ) const; QStringList renderersList( const QgsVectorLayer* layer ) const;
protected:
//! protected constructor
QgsRendererRegistry();
~QgsRendererRegistry();
private: private:
QgsRendererRegistry( const QgsRendererRegistry& rh ); QgsRendererRegistry( const QgsRendererRegistry& rh );
//QgsRendererRegistry& operator=( const QgsRendererRegistry& rh ); //QgsRendererRegistry& operator=( const QgsRendererRegistry& rh );

View File

@ -65,7 +65,8 @@ class QgsSvgCache : QObject
public: public:
static QgsSvgCache* instance(); QgsSvgCache( QObject * parent /TransferThis/ = 0 );
~QgsSvgCache(); ~QgsSvgCache();
/** Get SVG as QImage. /** Get SVG as QImage.
@ -151,8 +152,6 @@ class QgsSvgCache : QObject
void statusChanged( const QString& theStatusQString ); void statusChanged( const QString& theStatusQString );
protected: protected:
//! protected constructor
QgsSvgCache( QObject * parent /TransferThis/ = 0 );
/** Creates new cache entry and returns pointer to it /** Creates new cache entry and returns pointer to it
* @param file Absolute or relative path to SVG file. If the path is relative the file is searched by QgsSymbolLayerUtils::symbolNameToPath() in SVG paths. * @param file Absolute or relative path to SVG file. If the path is relative the file is searched by QgsSymbolLayerUtils::symbolNameToPath() in SVG paths.

View File

@ -155,7 +155,7 @@ class QgsSymbol
void toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const; void toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
/** Returns the units to use for sizes and widths within the symbol. Individual /** Returns the units to use for sizes and widths within the symbol. Individual
* symbol layer definitions will interpret this in different ways, eg a marker symbol * symbol layer definitions will interpret this in different ways, e.g., a marker symbol
* may use it to specify the units for the marker size, while a line symbol * may use it to specify the units for the marker size, while a line symbol
* may use it to specify the units for the line width. * may use it to specify the units for the line width.
* @returns output unit, or QgsUnitTypes::RenderUnknownUnit if the symbol contains mixed units * @returns output unit, or QgsUnitTypes::RenderUnknownUnit if the symbol contains mixed units
@ -164,7 +164,7 @@ class QgsSymbol
QgsUnitTypes::RenderUnit outputUnit() const; QgsUnitTypes::RenderUnit outputUnit() const;
/** Sets the units to use for sizes and widths within the symbol. Individual /** Sets the units to use for sizes and widths within the symbol. Individual
* symbol definitions will interpret this in different ways, eg a marker symbol * symbol definitions will interpret this in different ways, e.g., a marker symbol
* may use it to specify the units for the marker size, while a line symbol * may use it to specify the units for the marker size, while a line symbol
* may use it to specify the units for the line width. * may use it to specify the units for the line width.
* @param unit output units * @param unit output units

View File

@ -148,13 +148,13 @@ class QgsSymbolLayer
bool isLocked() const; bool isLocked() const;
/** Returns the estimated maximum distance which the layer style will bleed outside /** Returns the estimated maximum distance which the layer style will bleed outside
the drawn shape. Eg, polygons drawn with an outline will draw half the width the drawn shape. For example, polygons drawn with an outline will draw half the width
of the outline outside of the polygon. This amount is estimated, since it may of the outline outside of the polygon. This amount is estimated, since it may
be affected by data defined symbology rules.*/ be affected by data defined symbology rules.*/
virtual double estimateMaxBleed() const; virtual double estimateMaxBleed() const;
/** Sets the units to use for sizes and widths within the symbol layer. Individual /** Sets the units to use for sizes and widths within the symbol layer. Individual
* symbol layer subclasses will interpret this in different ways, eg a marker symbol * symbol layer subclasses will interpret this in different ways, e.g., a marker symbol
* layer may use it to specify the units for the marker size, while a line symbol * layer may use it to specify the units for the marker size, while a line symbol
* layer may use it to specify the units for the line width. * layer may use it to specify the units for the line width.
* @param unit output units * @param unit output units
@ -163,7 +163,7 @@ class QgsSymbolLayer
virtual void setOutputUnit( QgsUnitTypes::RenderUnit unit ); virtual void setOutputUnit( QgsUnitTypes::RenderUnit unit );
/** Returns the units to use for sizes and widths within the symbol layer. Individual /** Returns the units to use for sizes and widths within the symbol layer. Individual
* symbol layer subclasses will interpret this in different ways, eg a marker symbol * symbol layer subclasses will interpret this in different ways, e.g., a marker symbol
* layer may use it to specify the units for the marker size, while a line symbol * layer may use it to specify the units for the marker size, while a line symbol
* layer may use it to specify the units for the line width. * layer may use it to specify the units for the line width.
* @returns output unit, or QgsUnitTypes::RenderUnknownUnit if the symbol layer contains mixed units * @returns output unit, or QgsUnitTypes::RenderUnknownUnit if the symbol layer contains mixed units

View File

@ -54,8 +54,8 @@ class QgsSymbolLayerRegistry
public: public:
//! return the single instance of this class (instantiate it if not exists) QgsSymbolLayerRegistry();
static QgsSymbolLayerRegistry* instance(); ~QgsSymbolLayerRegistry();
//! return metadata for specified symbol layer. Returns NULL if not found //! return metadata for specified symbol layer. Returns NULL if not found
QgsSymbolLayerAbstractMetadata* symbolLayerMetadata( const QString& name ) const; QgsSymbolLayerAbstractMetadata* symbolLayerMetadata( const QString& name ) const;
@ -75,10 +75,6 @@ class QgsSymbolLayerRegistry
//! create a new instance of symbol layer for specified symbol type with default settings //! create a new instance of symbol layer for specified symbol type with default settings
static QgsSymbolLayer* defaultSymbolLayer( QgsSymbol::SymbolType type ) /Factory/; static QgsSymbolLayer* defaultSymbolLayer( QgsSymbol::SymbolType type ) /Factory/;
protected:
QgsSymbolLayerRegistry();
~QgsSymbolLayerRegistry();
private: private:
QgsSymbolLayerRegistry( const QgsSymbolLayerRegistry& rh ); QgsSymbolLayerRegistry( const QgsSymbolLayerRegistry& rh );

View File

@ -82,13 +82,13 @@ class QgsSearchWidgetWrapper : QgsWidgetWrapper
}; };
typedef QFlags<QgsSearchWidgetWrapper::FilterFlag> FilterFlags; typedef QFlags<QgsSearchWidgetWrapper::FilterFlag> FilterFlags;
/** Returns a list of exclusive filter flags, which cannot be combined with other flags (eg EqualTo/NotEqualTo) /** Returns a list of exclusive filter flags, which cannot be combined with other flags (e.g., EqualTo/NotEqualTo)
* @note added in QGIS 2.16 * @note added in QGIS 2.16
* @see nonExclusiveFilterFlags() * @see nonExclusiveFilterFlags()
*/ */
static QList< QgsSearchWidgetWrapper::FilterFlag > exclusiveFilterFlags(); static QList< QgsSearchWidgetWrapper::FilterFlag > exclusiveFilterFlags();
/** Returns a list of non-exclusive filter flags, which can be combined with other flags (eg CaseInsensitive) /** Returns a list of non-exclusive filter flags, which can be combined with other flags (e.g., CaseInsensitive)
* @note added in QGIS 2.16 * @note added in QGIS 2.16
* @see exclusiveFilterFlags() * @see exclusiveFilterFlags()
*/ */

Some files were not shown because too many files have changed in this diff Show More