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.de = i18n/qgis_de.ts
trans.el = i18n/qgis_el.ts
trans.eo = i18n/qgis_eo.ts
trans.es = i18n/qgis_es.ts
trans.et = i18n/qgis_et.ts
trans.eu = i18n/qgis_eu.ts

View File

@ -564,32 +564,15 @@ IF(COMMAND cmake_policy)
ENDIF(COMMAND cmake_policy)
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)
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_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined")
ENDIF(PEDANTIC AND NOT APPLE)
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)
INCLUDE(GenerateExportHeader)
#############################################################
# user-changeable settings which can be used to customize

59
INSTALL
View File

@ -1,10 +1,10 @@
QGIS
Building QGIS from source - step by step
Monday November 07, 2016
Monday January 09, 2017
Last Updated: Monday November 07, 2016
Last Change : Monday November 07, 2016
Last Updated: Monday January 09, 2017
Last Change : Monday January 09, 2017
1. Introduction
@ -87,7 +87,7 @@ source directory.
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.
Following a summary of the required dependencies for building:
@ -100,14 +100,17 @@ Required build tools:
Required build dependencies:
- Qt >= 4.8.0
- Qt >= 5.3.0
- Proj >= 4.4.x
- GEOS >= 3.4
- Sqlite3 >= 3.0.0
- GDAL/OGR >= 1.4.x
- SpatiaLite
- libspatialindex
- GDAL/OGR >= 2.0
- Qwt >= 5.0 & (< 6.1 with internal QwtPolar)
- expat >= 1.95
- QScintilla2
- QCA
Optional dependencies:
@ -118,14 +121,14 @@ Optional dependencies:
- for georeferencer - GSL >= 1.8
- for postgis support and SPIT plugin - PostgreSQL >= 8.0.x
- for gps plugin - gpsbabel
- for mapserver export and PyQGIS - Python >= 2.3 (2.5+ preferred)
- for python support - SIP >= 4.12, PyQt >= 4.8.3 must match Qt version, Qscintilla2
- for mapserver export and PyQGIS - Python >= 3.3
- for python support - SIP >= 4.12, PyQt >= 5.3 must match Qt version, Qscintilla2
- for qgis mapserver - FastCGI
- for oracle provider - Oracle OCI library
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
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
@ -262,27 +265,55 @@ interactive dialog.
Now on with the build:
make
make install
make -jX
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:
$HOME/apps/bin/qgis
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.
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
=============================
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.
First you need to install the debian packaging tools once:

14
NEWS
View File

@ -1,6 +1,6 @@
QGIS News
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 Change : Wednesday July 27, 2016
Last Updated: Monday January 09, 2017
Last Change : Sunday January 01, 2017
1. What's new in Version 2.16 'Nødebo'?
========================================
=======================================
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.
- 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
@ -908,7 +908,7 @@ as' option, you can now specify OGR creation options.
15.3. Labeling (New generation only)
=====================================
====================================
- Data defined label position in 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.
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
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

View File

@ -13,4 +13,6 @@
# #
###########################################################################
ccache -s
[ -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}
ccache -s
ccache -z
export CXX="clang++-${LLVM_VERSION}"
export CC="clang-${LLVM_VERSION}"
@ -38,21 +39,39 @@ CLANG_WARNINGS=""
# Include this line for debug reasons
# -DCMAKE_BUILD_TYPE=RelWithDebInfo \
#
cmake \
-DCMAKE_PREFIX_PATH=/home/travis/osgeo4travis \
-DWITH_STAGED_PLUGINS=ON \
-DWITH_GRASS=ON \
-DWITH_GRASS7=ON \
-DGRASS_PREFIX7=/home/travis/osgeo4travis/grass-7.0.4 \
-DSUPPRESS_QT_WARNINGS=ON \
-DENABLE_MODELTEST=ON \
-DENABLE_PGTEST=ON \
-DWITH_QSPATIALITE=ON \
-DWITH_QWTPOLAR=OFF \
-DWITH_APIDOC=ON \
-DWITH_ASTYLE=ON \
-DWITH_SERVER=ON \
-DWITH_INTERNAL_YAML=OFF \
-DDISABLE_DEPRECATED=ON \
-DCXX_EXTRA_FLAGS="$CLANG_WARNINGS" \
..
CMAKE_FLAGS="
-DCMAKE_PREFIX_PATH=/home/travis/osgeo4travis
-DWITH_STAGED_PLUGINS=ON
-DWITH_GRASS=ON
-DWITH_GRASS7=ON
-DGRASS_PREFIX7=/home/travis/osgeo4travis/grass-7.0.4
-DSUPPRESS_QT_WARNINGS=ON
-DENABLE_MODELTEST=ON
-DENABLE_PGTEST=ON
-DWITH_QSPATIALITE=ON
-DWITH_QWTPOLAR=OFF
-DWITH_APIDOC=ON
-DWITH_ASTYLE=ON
-DWITH_INTERNAL_YAML=OFF
-DDISABLE_DEPRECATED=ON
-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 CTEST_PARALLEL_LEVEL=1
export CCACHE_TEMPDIR=/tmp
ccache -M 2G
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 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
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)
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}")
IF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION EQUAL 1 AND GDAL_VERSION_MINOR LESS 4))
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 1.4.0 or higher.")
ENDIF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION EQUAL 1 AND GDAL_VERSION_MINOR LESS 4))
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))
IF (GDAL_VERSION_MAJOR LESS 2)
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 2.0 or higher.")
ENDIF (GDAL_VERSION_MAJOR LESS 2)
ENDIF (GDAL_LIBRARY)
SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
@ -105,14 +101,10 @@ ELSE(WIN32)
# check for gdal version
# version 1.2.5 is known NOT to be supported (missing CPL_STDCALL macro)
# According to INSTALL, 1.4.0+ is required
IF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION_MAJOR EQUAL 1 AND GDAL_VERSION_MINOR LESS 4))
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 1.4.0 or higher.")
ENDIF (GDAL_VERSION_MAJOR LESS 1 OR (GDAL_VERSION_MAJOR EQUAL 1 AND GDAL_VERSION_MINOR LESS 4))
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))
# According to INSTALL, 2.0+ is required
IF (GDAL_VERSION_MAJOR LESS 2)
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 2.0 or higher.")
ENDIF (GDAL_VERSION_MAJOR LESS 2)
# set INCLUDE_DIR to prefix+include
EXEC_PROGRAM(${GDAL_CONFIG}

View File

@ -167,7 +167,7 @@ IF (UNIX)
IF (GRASS_FIND_VERSION EQUAL 6)
LIST(APPEND GRASS_PATHS /usr/lib64/grass64 /usr/lib/grass64)
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 (UNIX)
@ -181,6 +181,7 @@ IF (APPLE)
LIST(APPEND GRASS_PATHS
/Applications/GRASS-7.0.app/Contents/MacOS
/Applications/GRASS-7.1.app/Contents/MacOS
/Applications/GRASS-7.2.app/Contents/MacOS
)
ENDIF ()
LIST(APPEND GRASS_PATHS /Applications/GRASS.app/Contents/Resources)

View File

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

View File

@ -42,7 +42,7 @@ MACRO(ADD_TXT2TAGS_FILES _sources)
ADD_CUSTOM_COMMAND(
OUTPUT ${_out}
COMMAND ${TXT2TAGS_EXECUTABLE}
ARGS -o${_out} -t txt ${_in}
ARGS --encoding=utf-8 -o${_out} -t txt ${_in}
DEPENDS ${_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
# 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
# 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

2
debian/qgis.install vendored
View File

@ -1,8 +1,6 @@
usr/lib/qgis/plugins/libgeorefplugin.so
usr/lib/qgis/plugins/libgpsimporterplugin.so
usr/lib/qgis/plugins/libinterpolationplugin.so
usr/lib/qgis/plugins/libcoordinatecaptureplugin.so
usr/lib/qgis/plugins/liboracleplugin.so
usr/lib/qgis/plugins/libevis.so
usr/lib/qgis/plugins/libspatialqueryplugin.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/dxf
${CMAKE_SOURCE_DIR}/src/core/effects
${CMAKE_SOURCE_DIR}/src/core/fieldformatter
${CMAKE_SOURCE_DIR}/src/core/geometry
${CMAKE_SOURCE_DIR}/src/core/gps
${CMAKE_SOURCE_DIR}/src/core/layertree

View File

@ -77,13 +77,13 @@ label{ background-color: #FFFFCC;
<DIV CLASS="header" ID="header">
<H1>QGIS</H1>
<H2>Building QGIS from source - step by step</H2>
<H3>Monday November 07, 2016</H3>
<H3>Monday January 09, 2017</H3>
</DIV>
<DIV CLASS="body" ID="body">
<P>
Last Updated: Monday November 07, 2016
Last Change : Monday November 07, 2016
Last Updated: Monday January 09, 2017
Last Change : Monday January 09, 2017
</P>
<DIV CLASS="toc">
@ -186,7 +186,7 @@ source directory.
<H1>2. Overview</H1>
<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.
</P>
<P>
@ -207,14 +207,17 @@ Required build dependencies:
</P>
<UL>
<LI>Qt &gt;= 4.8.0
<LI>Qt &gt;= 5.3.0
<LI>Proj &gt;= 4.4.x
<LI>GEOS &gt;= 3.4
<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>expat &gt;= 1.95
<LI>QScintilla2
<LI>QCA
</UL>
<P>
@ -229,8 +232,8 @@ Optional dependencies:
<LI>for georeferencer - GSL &gt;= 1.8
<LI>for postgis support and SPIT plugin - PostgreSQL &gt;= 8.0.x
<LI>for gps plugin - gpsbabel
<LI>for mapserver export and PyQGIS - Python &gt;= 2.3 (2.5+ preferred)
<LI>for python support - SIP &gt;= 4.12, PyQt &gt;= 4.8.3 must match Qt version, Qscintilla2
<LI>for mapserver export and PyQGIS - Python &gt;= 3.3
<LI>for python support - SIP &gt;= 4.12, PyQt &gt;= 5.3 must match Qt version, Qscintilla2
<LI>for qgis mapserver - FastCGI
<LI>for oracle provider - Oracle OCI library
</UL>
@ -239,7 +242,7 @@ Optional dependencies:
Indirect dependencies:
</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
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
@ -434,13 +437,29 @@ Now on with the build:
</P>
<div class="code"><PRE>
make
make install
make -jX
</PRE></div>
<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>
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>
After that you can try to run QGIS:
</P>
@ -451,7 +470,7 @@ $HOME/apps/bin/qgis
<P>
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.
</P>
@ -459,12 +478,47 @@ execute this command in your shell.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HOME}/apps/lib/
</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>
<H2>3.8. Building Debian packages</H2>
<P>
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.
</P>
<P>
@ -549,7 +603,7 @@ subdirectory called `build` or `build-qt5` in it.
<H3>3.10.1. Install build dependencies</H3>
<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>
<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
%rather apply it selectively to paragraphs where needed.
% To generate the text version of this document:
% txt2tags -t txt -o INSTALL INSTALL.t2t
% 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
% To generate output fies from this document:
% cmake --build $YOURBUILDDIR --target t2tdoc
% 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/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/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>QgsMultiSurfaceV2<td>QgsMultiSurface
<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>QgsRendererCategoryV2<td>QgsRendererCategory
<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>QgsComposerShape<td>setUseSymbolV2<td>setUseSymbol
<tr><td>QgsIFeatureSelectionManager<td>selectedFeaturesIds<td>selectedFeatureIds
<tr><td>QgsMapLayer<td>capitaliseLayerName<td>capitalizeLayerName
<tr><td>QgsSymbolLayerUtils<td>createSymbolLayerV2ListFromSld<td>createSymbolLayerListFromSld
<tr><td>QgsVectorLayer<td>editorWidgetV2Config<td>editorWidgetConfig
<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.
- 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.
- 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.
- QgsLegacyHelpers.
- 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}
----
- 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
qgsPermissiveToInt()
- 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.
- 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}
@ -604,6 +615,7 @@ QgsComposerTableV2 {#qgis_api_break_3_0_QgsComposerTableV2}
QgsComposition {#qgis_api_break_3_0_QgsComposition}
--------------
- constructor requires QgsProject instance as the second argument
- addItemsFromXML() has been renamed to addItemsFromXml()
- Constructor with QgsMapRenderer parameter has been removed. Use the variant with QgsMapSettings parameter.
- mapRenderer() has been removed. Use mapSettings() instead.
@ -680,6 +692,13 @@ QgsCptCitySelectionItem {#qgis_api_break_3_0_QgsCptCitySelectionItem}
- 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}
-----------
@ -726,6 +745,12 @@ QgsDataItem {#qgis_api_break_3_0_QgsDataItem}
- emitBeginInsertItems(), emitEndInsertItems(), emitBeginRemoveItems(), emitEndRemoveItems(), emitDataChanged(), emitStateChanged() have been removed.
- 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}
---------------
@ -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.
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}
------------------
- xform, fields were no longer required and are removed.
- referencedFields() no longer takes a QgsFields argument.
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
place of a null pointer.
- 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}
------------------
@ -851,6 +888,12 @@ QgsExpression::Function {#qgis_api_break_3_0_QgsExpression_Function}
- `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}
----------
@ -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 QgsMultiPolygon& p1, const QgsMultiPolygon& p2, double epsilon ) has been renamed to compareMultiPolygons
- 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}
@ -985,6 +1029,11 @@ QgsEditorWidgetFactory {#qgis_api_break_3_0_QgsEditorWidgetFactory}
- `alignmentFlag` 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}
--------------------
@ -1041,12 +1090,16 @@ QgsLayerTreeGroup {#qgis_api_break_3_0_QgsLayerTreeGroup}
-----------------
- 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}
-----------------
- 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}
@ -1072,7 +1125,7 @@ QgsLayerTreeNode {#qgis_api_break_3_0_QgsLayerTreeNode}
- readCommonXML() has been renamed to readCommonXml()
- 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}
-------------------------------
@ -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.
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}
------------
@ -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.
- readLayerXML() was renamed to readLayerXml()
- writeLayerXML() was renamed to writeLayerXml()
- capitaliseLayerName() was renamed to capitalizeLayerName()
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.
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}
----------------
@ -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
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}
-------------------------
@ -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().
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}
----------------------------
@ -1323,8 +1401,16 @@ QgsProject {#qgis_api_break_3_0_QgsProject}
- title( const QString & title ) was removed. Use setTitle() instead.
- dirty( bool b ) was removed. Use setDirty() 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}
---------
@ -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.
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}
-----------------
@ -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.
- The Mode enum was removed.
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}
-----------
- 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.
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.
- 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}
--------------------

View File

@ -177,6 +177,12 @@ div.header {
width: 80%;
}
#main-nav {
width: 80%;
margin-left: auto;
margin-right: auto;
}
div.qindex, div.navpath {
width: 80%;
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
```
where X is the number of available cores. Without the -j option
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:
@ -164,6 +164,33 @@ execute this command in your shell.
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 ==

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: Easier use of HTML in 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>Analysis tools: Named parameters in expressions
<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>
<LI>Optionally re-use entered attribute values for next digitized feature.
<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>

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.
- 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
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
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

View File

@ -1,7 +1,7 @@
= 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.
Following a summary of the required dependencies for building:
@ -15,14 +15,17 @@ Required build tools:
Required build dependencies:
- Qt >= 4.8.0
- Qt >= 5.3.0
- Proj >= 4.4.x
- GEOS >= 3.4
- Sqlite3 >= 3.0.0
- GDAL/OGR >= 1.4.x
- SpatiaLite
- libspatialindex
- GDAL/OGR >= 2.0
- Qwt >= 5.0 & (< 6.1 with internal QwtPolar)
- expat >= 1.95
- QScintilla2
- QCA
-
Optional dependencies:
@ -34,15 +37,15 @@ Optional dependencies:
- for georeferencer - GSL >= 1.8
- for postgis support and SPIT plugin - PostgreSQL >= 8.0.x
- for gps plugin - gpsbabel
- for mapserver export and PyQGIS - Python >= 2.3 (2.5+ preferred)
- for python support - SIP >= 4.12, PyQt >= 4.8.3 must match Qt version, Qscintilla2
- for mapserver export and PyQGIS - Python >= 3.3
- for python support - SIP >= 4.12, PyQt >= 5.3 must match Qt version, Qscintilla2
- for qgis mapserver - FastCGI
- for oracle provider - Oracle OCI library
-
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
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

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

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
:cmake
for /f "usebackq tokens=1" %%a in (`%OSGEO4W_ROOT%\bin\grass70 --config path`) do set GRASS70_PATH=%%a
for %%i in ("%GRASS70_PATH%") do set GRASS70_VERSION=%%~nxi
set GRASS70_VERSION=%GRASS70_VERSION:grass-=%
set GRASS_VERSIONS=%GRASS6_VERSION% %GRASS70_VERSION%
for /f "usebackq tokens=1" %%a in (`%OSGEO4W_ROOT%\bin\grass72 --config path`) do set GRASS72_PATH=%%a
for %%i in ("%GRASS72_PATH%") do set GRASS72_VERSION=%%~nxi
set GRASS72_VERSION=%GRASS72_VERSION:grass-=%
set GRASS_VERSIONS=%GRASS6_VERSION% %GRASS72_VERSION%
set PYTHONPATH=
path %PF86%\CMake\bin;%PATH%;c:\cygwin\bin
@ -168,7 +168,7 @@ cmake -G Ninja ^
-D WITH_GRASS6=TRUE ^
-D WITH_GRASS7=TRUE ^
-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_TOUCH=TRUE ^
-D WITH_ORACLE=TRUE ^

View File

@ -85,10 +85,10 @@ set CMAKE_OPT=^
-D CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS=TRUE
:cmake
for /f "usebackq tokens=1" %%a in (`%OSGEO4W_ROOT%\bin\grass70 --config path`) do set GRASS70_PATH=%%a
for %%i in ("%GRASS70_PATH%") do set GRASS70_VERSION=%%~nxi
set GRASS70_VERSION=%GRASS70_VERSION:grass-=%
set GRASS_VERSIONS=%GRASS6_VERSION% %GRASS70_VERSION%
for /f "usebackq tokens=1" %%a in (`%OSGEO4W_ROOT%\bin\grass72 --config path`) do set GRASS72_PATH=%%a
for %%i in ("%GRASS72_PATH%") do set GRASS72_VERSION=%%~nxi
set GRASS72_VERSION=%GRASS72_VERSION:grass-=%
set GRASS_VERSIONS=%GRASS6_VERSION% %GRASS72_VERSION%
set PYTHONPATH=
path %PF86%\CMake\bin;%PATH%;c:\cygwin\bin
@ -159,7 +159,7 @@ cmake -G Ninja ^
-D WITH_GRASS6=TRUE ^
-D WITH_GRASS7=TRUE ^
-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_TOUCH=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/georefplugin.dll" ^
"apps/%PACKAGENAME%/plugins/gpsimporterplugin.dll" ^
"apps/%PACKAGENAME%/plugins/interpolationplugin.dll" ^
"apps/%PACKAGENAME%/plugins/offlineeditingplugin.dll" ^
"apps/%PACKAGENAME%/plugins/oracleplugin.dll" ^
"apps/%PACKAGENAME%/plugins/spatialqueryplugin.dll" ^
"apps/%PACKAGENAME%/plugins/topolplugin.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" "gpsimporterplugin" "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" "oracleplugin" "true"
WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "spatialqueryplugin" "true"
WriteRegStr HKEY_CURRENT_USER "Software\QGIS\QGIS3\Plugins" "topolplugin" "true"

View File

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

View File

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

View File

@ -531,10 +531,10 @@ class Editor(QsciScintilla):
try:
## set creationflags for running command without shell window
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)
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)
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,
on_finished=calculation_finished)
QgsTaskManager.instance().addTask(task)
QgsApplication.taskManager().addTask(task)
"""

View File

@ -76,7 +76,7 @@ class QgsComposerAttributeTableV2 : QgsComposerTableV2
*/
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
* atlas coverage layer. If the table is set to layer attributes mode, then
* 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 );
/** 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
* @see setEffectsEnabled
* @see transparency
@ -424,7 +424,7 @@ class QgsComposerItem : QgsComposerObject, QGraphicsRectItem
*/
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
* @see effectsEnabled
* @see setTransparency
@ -508,7 +508,7 @@ class QgsComposerItem : QgsComposerObject, QGraphicsRectItem
/** Sets visibility for item.
* @param visible set to true to show item, false to hide item
* @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.
* @note added in version 2.5
*/

View File

@ -1,6 +1,6 @@
/** \ingroup core
* \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
{

View File

@ -205,7 +205,7 @@ class QgsComposerMultiFrame: QgsComposerObject
/** Creates a new frame and adds it to the multi frame and composition.
* @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 size size of the new frame
* @returns new QgsComposerFrame

View File

@ -40,7 +40,7 @@ class QgsComposition : QGraphicsScene, QgsExpressionContextGenerator
Landscape
};
explicit QgsComposition( const QgsMapSettings& mapSettings );
explicit QgsComposition( const QgsMapSettings& mapSettings, QgsProject* project );
/** Composition atlas modes*/
enum AtlasMode
@ -52,6 +52,14 @@ class QgsComposition : QGraphicsScene, QgsExpressionContextGenerator
~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.
* @param width page width 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.
* @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;

View File

@ -1,6 +1,6 @@
/** \ingroup core
* \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.
*
* \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
* 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.
*
* \note Added in version 2.9

View File

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

View File

@ -398,7 +398,7 @@ class QgsAbstractGeometry
*/
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;
};

View File

@ -54,8 +54,7 @@ class QgsCurve: public QgsAbstractGeometry
*/
virtual int numPoints() const = 0;
/** Calculates the area of the curve. Derived classes should override this
* to return the correct area of the curve.
/** Sums up the area of the curve by iterating over the vertices (shoelace formula).
*/
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()
* 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.
* @see centroid()
* @see poleOfInaccessibility()
@ -741,10 +741,11 @@ class QgsGeometry
* 1 if geometry is not of polygon type,
* 2 if avoid intersection would change the geometry type,
* 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)
* @note added in 1.5
*/
int avoidIntersections();
int avoidIntersections( const QList<QgsVectorLayer*>& avoidIntersectionsLayers );
class Error
{
@ -892,7 +893,7 @@ class QgsGeometry
* @param iterations number of smoothing iterations to run. More iterations results
* in a smoother geometry
* @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.
* @param minimumDistance minimum segment length to apply smoothing to
* @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 );
/** 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 x x-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
* cases it may be more appropriate to call the faster distanceSquared() method, eg
* when comparing distances.
* cases it may be more appropriate to call the faster distanceSquared() method,
* e.g., when comparing distances.
* @note added in QGIS 3.0
* @see distanceSquared()
*/
@ -149,8 +149,8 @@ class QgsPointV2: public QgsAbstractGeometry
/**
* 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
* when comparing distances.
* cases it may be more appropriate to call the faster distanceSquared() method,
* e.g., when comparing distances.
* @note added in QGIS 3.0
*/
double distance( const QgsPointV2& other ) const;

View File

@ -75,14 +75,14 @@ class QgsWkbTypes
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 multiType()
* @see flatType()
*/
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 singleType()
* @see flatType()
@ -90,7 +90,7 @@ class QgsWkbTypes
static Type multiType( Type type );
/** 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 multiType()
*/
@ -137,12 +137,12 @@ class QgsWkbTypes
*/
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.
*/
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 );

View File

@ -6,7 +6,7 @@ class QgsGPSConnectionRegistry
#include <qgsgpsconnectionregistry.h>
%End
public:
static QgsGPSConnectionRegistry* instance();
QgsGPSConnectionRegistry();
~QgsGPSConnectionRegistry();
/** 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;
protected:
QgsGPSConnectionRegistry();
private:
QgsGPSConnectionRegistry( const QgsGPSConnectionRegistry& rh );

View File

@ -71,11 +71,6 @@ class QgsLayerTreeGroup : QgsLayerTreeNode
//! Return a clone of the group. The children are cloned too.
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)
//! @note added in 2.12
bool isMutuallyExclusive() const;
@ -86,14 +81,10 @@ class QgsLayerTreeGroup : QgsLayerTreeNode
void setIsMutuallyExclusive( bool enabled, int initialChildIndex = -1 );
protected slots:
void layerDestroyed();
void nodeVisibilityChanged( QgsLayerTreeNode* node );
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
void updateChildVisibilityMutuallyExclusive();

View File

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

View File

@ -61,6 +61,7 @@ class QgsLayerTreeModel : QAbstractItemModel
AllowNodeRename, //!< Allow renaming of groups and layers
AllowNodeChangeVisibility, //!< Allow user to set node visibility with a check box
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;

View File

@ -94,6 +94,34 @@ class QgsLayerTreeNode : QObject
//! Create a copy of the node. Returns new instance
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
bool isExpanded() const;
//! 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
void removedChildren( QgsLayerTreeNode *node, int indexFrom, int indexTo );
//! 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
void customPropertyChanged( QgsLayerTreeNode *node, const QString& key );
//! 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;
};
/** 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
* @param string string to convert
* @param ok will be set to true if conversion was successful
@ -114,7 +114,7 @@ class Qgis
*/
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
* @param string string to convert
* @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();
/** 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
* @see osName()
*/
@ -381,6 +381,62 @@ static void qtgui_UpdatePyArgv(PyObject *argvlist, int argc, char **argv)
*/
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)
//dummy method to workaround sip generation issue issue
bool x11EventFilter ( XEvent * event );
@ -406,24 +462,13 @@ static void qtgui_UpdatePyArgv(PyObject *argvlist, int argc, char **argv)
static QgsFieldFormatterRegistry* fieldFormatterRegistry();
static QString nullRepresentation();
static void setNullRepresentation( const QString& nullRepresentation );
public slots:
/** Causes the application instance to emit the settingsChanged() signal. This should
* 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();
static QVariantMap customVariables();
static void setCustomVariables( const QVariantMap& customVariables );
static void setCustomVariable( const QString& name, const QVariant& value );
signals:
//! @note not available in python bindings
// void preNotify( QObject * receiver, QEvent * event, bool * done );
/** Emitted whenever any global, application-wide settings are changed.
* @note added in QGIS 3.0
* @see emitSettingsChanged()
*/
void settingsChanged();
void customVariablesChanged();
void nullRepresentationChanged();
};

View File

@ -183,12 +183,12 @@ class QgsGradientColorRamp : QgsColorRamp
*/
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()
*/
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
* @see info()
*/

View File

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

View File

@ -129,9 +129,9 @@
* 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
* both flavours.
* both flavors.
*
* \see QgsCoordinateTransform
*/
@ -186,7 +186,7 @@ class QgsCoordinateReferenceSystem
// static creators
/** 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
* @note added in QGIS 3.0
* @see createFromOgcWmsCrs()
@ -416,9 +416,9 @@ class QgsCoordinateReferenceSystem
/** 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,
* eg "EPSG:4326".
* e.g., "EPSG:4326".
*
* 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"
@ -427,7 +427,7 @@ class QgsCoordinateReferenceSystem
*/
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
* user.
* @returns descriptive name of the CRS
@ -472,7 +472,7 @@ class QgsCoordinateReferenceSystem
*/
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
*/
bool hasAxisInverted() const;

View File

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

View File

@ -37,13 +37,13 @@ class QgsDateTimeStatisticalSummary
QgsDateTimeStatisticalSummary( QgsDateTimeStatisticalSummary::Statistics stats = All );
/** Returns flags which specify which statistics will be calculated. Some statistics
* are always calculated (eg count).
* are always calculated (e.g., count).
* @see setStatistics
*/
Statistics statistics() const;
/** 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
* @see statistics
*/

View File

@ -25,13 +25,14 @@ class QgsDiagramLayerSettings
};
//! Line placement flags for controlling line based placements
enum LinePlacementFlags
enum LinePlacementFlag
{
OnLine,
AboveLine,
BelowLine,
MapOrientation,
};
typedef QFlags<QgsDiagramLayerSettings::LinePlacementFlag> LinePlacementFlags;
QgsDiagramLayerSettings();
@ -44,8 +45,7 @@ class QgsDiagramLayerSettings
* @see setPlacement()
* @note added in QGIS 2.16
*/
//TODO QGIS 3.0 - rename getter to placement()
Placement getPlacement() const;
Placement placement() const;
/** Sets the diagram placement.
* @param value placement value
@ -54,16 +54,12 @@ class QgsDiagramLayerSettings
*/
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
* is set to a line type.
* @see setLinePlacementFlags()
* @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
* is set to a line type.
@ -71,11 +67,7 @@ class QgsDiagramLayerSettings
* @see getPlacement()
* @note added in QGIS 2.16
*/
void setLinePlacementFlags( unsigned int flags );
//! Diagram placement flags
// TODO QGIS 3.0 - make private, rename to mPlacementFlags, use QFlags
unsigned int placementFlags;
void setLinePlacementFlags( LinePlacementFlags flags );
/** Returns the diagram priority.
* @returns diagram priority, where 0 = low and 10 = high
@ -84,8 +76,7 @@ class QgsDiagramLayerSettings
* @see setPriority()
* @note added in QGIS 2.16
*/
//TODO QGIS 3.0 - rename getter to priority()
int getPriority() const;
int priority() const;
/** Sets the diagram priority.
* @param value priority, where 0 = low and 10 = high
@ -94,12 +85,6 @@ class QgsDiagramLayerSettings
*/
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
* 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
@ -107,8 +92,7 @@ class QgsDiagramLayerSettings
* @see setZIndex()
* @note added in QGIS 2.16
*/
//TODO QGIS 3.0 - rename getter to zIndex()
double getZIndex() const;
double zIndex() const;
/** Sets the diagram z-index. Diagrams (or labels) with a higher z-index are drawn over diagrams
* with a lower z-index.
@ -118,10 +102,6 @@ class QgsDiagramLayerSettings
*/
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.
* @see setIsObstacle()
* @note added in QGIS 2.16
@ -135,10 +115,6 @@ class QgsDiagramLayerSettings
*/
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).
* @see setDistance()
* @note added in QGIS 2.16
@ -152,35 +128,25 @@ class QgsDiagramLayerSettings
*/
void setDistance( double distance );
//! Distance between diagram and the feature (in mm)
// TODO QGIS 3.0 - make private, rename to mDistance
double dist;
/** Returns the diagram renderer associated with the layer.
* @see setRenderer()
* @note added in QGIS 2.16
*/
QgsDiagramRenderer* renderer();
/** Returns the diagram renderer associated with the layer.
* @see setRenderer()
* @note added in QGIS 2.16
*/
// TODO QGIS 3.0 - rename to renderer()
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;
//const QgsDiagramRenderer* renderer() const;
/** Sets the diagram renderer associated with the layer.
* @param diagramRenderer diagram renderer. Ownership is transferred to the object.
* @see getRenderer()
* @see renderer()
* @note added in QGIS 2.16
*/
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
* invalid transform if no transformation is required.
* @see setCoordinateTransform()
@ -214,10 +180,6 @@ class QgsDiagramLayerSettings
*/
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 writeXml( QDomElement& layerElem, QDomDocument& doc, const QgsVectorLayer* layer ) const;
@ -329,8 +291,8 @@ class QgsDiagramInterpolationSettings
QSizeF upperSize;
double lowerValue;
double upperValue;
/** Index of the classification attribute*/
int classificationAttribute;
//! Name of the field for classification
QString classificationField;
QString classificationAttributeExpression;
bool classificationAttributeIsExpression;
};
@ -368,8 +330,7 @@ class QgsDiagramRenderer
* @param fields layer fields
* @note added in QGIS 2.16
*/
//TODO QGIS 3.0 - remove need for fields parameter
virtual QSet< QString > referencedFields( const QgsExpressionContext& context = QgsExpressionContext(), const QgsFields& fields = QgsFields() ) const;
virtual QSet< QString > referencedFields( const QgsExpressionContext& context = QgsExpressionContext() ) const;
void renderDiagram( const QgsFeature& feature, QgsRenderContext& c, QPointF pos );
@ -511,7 +472,7 @@ class QgsLinearlyInterpolatedDiagramRenderer : QgsDiagramRenderer
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;
@ -527,8 +488,19 @@ class QgsLinearlyInterpolatedDiagramRenderer : QgsDiagramRenderer
void setUpperSize( QSizeF s );
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;
void setClassificationAttributeExpression( const QString& expression );

View File

@ -167,7 +167,7 @@ class QgsDistanceArea
* @param distance distance to format
* @param decimals number of decimal places to show
* @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
* @returns formatted distance string
* @note added in QGIS 2.16
@ -179,7 +179,7 @@ class QgsDistanceArea
* @param area area to format
* @param decimals number of decimal places to show
* @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
* @returns formatted area string
* @note added in QGIS 2.14

View File

@ -140,21 +140,21 @@ class QgsExpression
*/
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 added in QGIS 2.14
* @see setDistanceUnits()
*/
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 added in QGIS 2.14
* @see distanceUnits()
*/
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 added in QGIS 2.14
* @see setAreaUnits()
@ -162,7 +162,7 @@ class QgsExpression
*/
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 added in QGIS 2.14
* @see areaUnits()
@ -362,7 +362,7 @@ class QgsExpression
virtual bool usesGeometry( const QgsExpression::NodeFunction* node ) const;
/** 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
* @note added in QGIS 2.9
*/
@ -835,7 +835,7 @@ class QgsExpression
static QString group( const QString& group );
/** 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
* @returns formatted string, may contain HTML formatting characters
* @note added in QGIS 2.14

View File

@ -217,6 +217,12 @@ class 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
*/
QgsExpressionContext( const QgsExpressionContext& other );
@ -359,6 +365,14 @@ class QgsExpressionContext
*/
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.
*/
@ -466,7 +480,7 @@ class QgsExpressionContext
/** \ingroup core
* \class QgsExpressionContextUtils
* \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
*/
@ -482,52 +496,22 @@ class QgsExpressionContextUtils
* @see setGlobalVariable()
*/
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 );
/** Sets all global context variables. Existing global variables will be removed and replaced
* with the variables specified.
* @param variables new set of global 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 );
static void setGlobalVariables( const QVariantMap& variables );
static QgsExpressionContextScope* projectScope( const QgsProject* project ) /Factory/;
static void setProjectVariable( QgsProject* project, const QString& name, const QVariant& value );
static void setProjectVariables( QgsProject* project, const QVariantMap& variables );
/** Creates a new scope which contains variables and functions relating to a QgsMapLayer.
* For instance, layer name, id and fields.
*/
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
* layerScope().
* @param layer map layer
@ -537,15 +521,7 @@ class QgsExpressionContextUtils
* @see layerScope()
*/
static void setLayerVariable( QgsMapLayer* layer, const QString& name, const QVariant& value );
/** 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 );
static void setLayerVariables( QgsMapLayer* layer, const QVariantMap& variables );
/** Creates a new scope which contains variables and functions relating to a QgsMapSettings object.
* For instance, map scale and rotation.
@ -575,26 +551,8 @@ class QgsExpressionContextUtils
* @see compositionScope()
*/
static void setCompositionVariable( QgsComposition* composition, const QString& name, const QVariant& value );
/** 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 void setCompositionVariables( QgsComposition* composition, const QVariantMap& variables );
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/;
/** Sets a composer item context variable. This variable will be contained within scopes retrieved via
@ -606,20 +564,7 @@ class QgsExpressionContextUtils
* @see composerItemScope()
*/
static void setComposerItemVariable( QgsComposerItem* composerItem, const QString& name, const QVariant& value );
/** 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 void setComposerItemVariables( QgsComposerItem* composerItem, const QVariantMap& variables );
static QgsExpressionContext createFeatureBasedContext( const QgsFeature& feature, const QgsFields& fields );
/** Registers all known core functions provided by QgsExpressionContextScope objects.

View File

@ -18,12 +18,12 @@ class QgsField
/** Constructor. Constructs a new QgsField object.
* @param name Field name
* @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
* as returned from the data store.
* @param len Field length
* @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 subType If the field is a collection, its element's type. When
* 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 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
* 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)
* @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
*/
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 */
void setCrs( const QgsCoordinateReferenceSystem& srs, bool emitSignal = true );
/** A convenience function to (un)capitalise the layer name */
static QString capitaliseLayerName( const QString& name );
/** A convenience function to (un)capitalize the layer name */
static QString capitalizeLayerName( const QString& name );
/** Retrieve the style URI for this layer
* (either as a .qml file on disk or as a

View File

@ -5,7 +5,7 @@ class QgsMessageLog : QObject
%End
public:
static QgsMessageLog *instance();
QgsMessageLog();
enum MessageLevel
{
@ -20,8 +20,6 @@ class QgsMessageLog : QObject
signals:
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.*/
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.*/
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.*/
};
@ -173,7 +173,7 @@ class QgsPalLayerSettings
respects the direction of the line feature, so a line from right to left labels will have labels
placed placed above the line feature. */
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. */
};
@ -209,7 +209,7 @@ class QgsPalLayerSettings
MultiLeft,
MultiCenter,
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*/
};
@ -366,7 +366,7 @@ class QgsPalLayerSettings
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;
@ -408,7 +408,7 @@ class QgsPalLayerSettings
bool centroidInside; // whether centroid-point calculated must be inside polygon
/** 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.
* @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
* in Python bindings.
* @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,
* the feature's original geometry will be used as an obstacle for labels. Not available
* in Python bindings.
@ -569,13 +569,13 @@ class QgsPalLayerSettings
*/
// 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()
* @note added in QGIS 3.0
*/
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
* @see format()
* @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
* 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
* @returns list of graphemes
* @note added in QGIS 2.10

View File

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

View File

@ -185,10 +185,10 @@ class QgsPoint
* Its up to the calling function to ensure that this point can
* be meaningfully represented in this form.
* @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
* @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;
@ -196,10 +196,10 @@ class QgsPoint
* Its up to the calling function to ensure that this point can
* be meaningfully represented in this form.
* @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
* @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;

View File

@ -86,7 +86,7 @@ class QgsProject : QObject, QgsExpressionContextGenerator
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 crs()
* @note added in QGIS 2.18
@ -94,7 +94,7 @@ class QgsProject : QObject, QgsExpressionContextGenerator
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 setCrs()
* @note added in QGIS 2.18
@ -106,52 +106,37 @@ class QgsProject : QObject, QgsExpressionContextGenerator
*/
void clear();
/** Reads a project file.
* @param file name of project file to read
* @note Any current plug-in state is erased
* @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
/** Reads given project file from the given file.
* @param filename name of project file to read
* @returns true if project file has been read successfully
*/
bool read( const QFileInfo& file );
bool read( const QString& filename );
/** Reads the current project file.
* @note Any current plug-in state is erased
* @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
/** Reads the project from its currently associated file (see fileName() ).
* @returns true if project file has been read successfully
*/
bool read();
/** 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.
*
* 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 isDirty() will be set to false if project is successfully written
* @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() ).
* @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
*/
QStringList avoidIntersectionsList() const;
QList<QgsVectorLayer*> avoidIntersectionsLayers() const;
/**
* A list of layers with which intersections should be avoided.
*
* @note Added in QGIS 3.0
*/
void setAvoidIntersectionsList( const QStringList& avoidIntersectionsList );
/**
* 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.
void setAvoidIntersectionsLayers( const QList<QgsVectorLayer*>& layers );
QVariantMap customVariables() const;
void setCustomVariables( const QVariantMap& customVariables );
int count() const;
/** 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.
* @note added in QGIS 3.0
*/
void variablesChanged();
void customVariablesChanged();
/**
* Emitted whenever a new transaction group has been created or a
@ -678,11 +646,11 @@ class QgsProject : QObject, QgsExpressionContextGenerator
void topologicalEditingChanged();
/**
* Emitted whenever avoidIntersectionsList has changed.
* Emitted whenever avoidIntersectionsLayers has changed.
*
* @note Added in QGIS 3.0
*/
void avoidIntersectionsListChanged();
void avoidIntersectionsLayersChanged();
/**
* Emitted when the map theme collection changes.

View File

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

View File

@ -1,12 +1,12 @@
class QgsProperty
class QgsProjectProperty
{
%TypeHeaderCode
#include <qgsprojectproperty.h>
%End
public:
QgsProperty();
virtual ~QgsProperty();
QgsProjectProperty();
virtual ~QgsProjectProperty();
/** Dumps out the keys and values
*
@ -34,7 +34,7 @@ class QgsProperty
*
* 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
@ -63,16 +63,16 @@ class QgsProperty
}; // class QgsProperty
class QgsPropertyValue : QgsProperty
class QgsProjectPropertyValue : QgsProjectProperty
{
%TypeHeaderCode
#include <qgsprojectproperty.h>
%End
public:
QgsPropertyValue();
QgsPropertyValue( const QVariant &value );
virtual ~QgsPropertyValue();
QgsProjectPropertyValue();
QgsProjectPropertyValue( const QVariant &value );
virtual ~QgsProjectPropertyValue();
/** Returns true if is a QgsPropertyKey */
virtual bool isKey() const;
@ -91,30 +91,23 @@ class QgsPropertyValue : QgsProperty
void dump( int tabs = 0 ) const;
bool readXml( QDomNode & keyNode );
bool readXml( const QDomNode& keyNode );
bool writeXml( const QString & nodeName,
QDomElement & element,
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
#include <qgsprojectproperty.h>
%End
public:
QgsPropertyKey( const QString& name = QString() );
virtual ~QgsPropertyKey();
QgsProjectPropertyKey( const QString& name = QString() );
virtual ~QgsProjectPropertyKey();
/**
* The name of the property is used as identifier.
@ -133,7 +126,7 @@ class QgsPropertyKey : QgsProperty
/// add the given property key
QgsPropertyKey * addKey( const QString & keyName );
QgsProjectPropertyKey * addKey( const QString & keyName );
/// remove the given key
void removeKey( const QString & keyName );
@ -143,19 +136,19 @@ class QgsPropertyKey : QgsProperty
* @param value is the value to set
* @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
*
* @note that the single value node associated with each key is always
* stored keyed by the current key name
*/
QgsPropertyValue * setValue( const QVariant & value );
QgsProjectPropertyValue * setValue( const QVariant & value );
void dump( int tabs = 0 ) const;
bool readXml( QDomNode & keyNode );
bool readXml( const QDomNode& keyNode );
bool writeXml( const QString &nodeName, QDomElement & element, QDomDocument & document );
@ -189,5 +182,5 @@ class QgsPropertyKey : QgsProperty
/// delete any sub-nodes
virtual void clearKeys();
QgsProperty * find( QString & propertyName );
QgsProjectProperty * find( QString & propertyName );
}; // 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.
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 */

View File

@ -49,13 +49,13 @@ class QgsStatisticalSummary
virtual ~QgsStatisticalSummary();
/** 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
*/
QgsStatisticalSummary::Statistics statistics() const;
/** 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
* @see statistics
*/

View File

@ -42,13 +42,13 @@ class QgsStringStatisticalSummary
QgsStringStatisticalSummary( QgsStringStatisticalSummary::Statistics stats = All );
/** Returns flags which specify which statistics will be calculated. Some statistics
* are always calculated (eg count).
* are always calculated (e.g., count).
* @see setStatistics
*/
Statistics statistics() const;
/** 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
* @see statistics
*/

View File

@ -152,7 +152,7 @@ class QgsStringUtils
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
* 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".
* @param string1 first string
* @param string2 second string
@ -178,7 +178,7 @@ class QgsStringUtils
*/
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.
* @param string string to insert links into
* @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
* 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).
* @note derived classes should not emit this signal directly, it will automatically
* be emitted

View File

@ -215,12 +215,12 @@ class QgsTextBackgroundSettings
*/
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()
*/
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
* @see type()
*/
@ -238,14 +238,14 @@ class QgsTextBackgroundSettings
*/
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).
* @see setSizeType()
* @see size()
*/
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).
* @param type size method
* @see sizeType()
@ -253,8 +253,8 @@ class QgsTextBackgroundSettings
*/
void setSizeType( SizeType type );
/** 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
/** Returns the size of the background shape. The meaning of the size depends on the current sizeType(),
* 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
* and vertical margins to add to the text when calculating the size of the shape.
* @see setSize()
@ -262,8 +262,8 @@ class QgsTextBackgroundSettings
*/
QSizeF size() const;
/** 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
/** Sets the size of the background shape. The meaning of the size depends on the current sizeType(),
* 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
* 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
@ -589,14 +589,14 @@ class QgsTextShadowSettings
void setEnabled( bool enabled );
/** 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.
* @see setShadowPlacement()
*/
QgsTextShadowSettings::ShadowPlacement shadowPlacement() const;
/** 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.
* @param placement shadow placement
* @see shadowPlacement()
@ -874,14 +874,14 @@ class QgsTextFormat
*/
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 font()
*/
QString namedStyle() const;
/** 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 setFont()
*/
@ -1115,7 +1115,7 @@ class QgsTextRenderer
* @param context render context
* @param format text format
* @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)
* @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

View File

@ -30,7 +30,7 @@ class QgsUnitTypes
enum DistanceUnitType
{
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 */
};
@ -67,8 +67,8 @@ class QgsUnitTypes
RenderMillimeters, //!< millimeters
RenderMapUnits, //!< map units
RenderPixels, //!< pixels
RenderPercentage, //!< percentage of another measurement (eg canvas size, feature size)
RenderPoints, //! points (eg for font sizes)
RenderPercentage, //!< percentage of another measurement (e.g., canvas size, feature size)
RenderPoints, //! points (e.g., for font sizes)
RenderUnknownUnit, //!< mixed or unknown units
};
@ -153,7 +153,7 @@ class QgsUnitTypes
*/
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
* @return matching areal unit
*/

View File

@ -49,6 +49,8 @@ class QgsVectorDataProvider : QgsDataProvider
ChangeFeatures,
/** Supports renaming attributes (fields). Added in QGIS 2.16 */
RenameAttributes,
//! Supports fast truncation of the layer (removing all features). Added in QGIS 3.0
FastTruncate,
};
typedef QFlags<QgsVectorDataProvider::Capability> Capabilities;
@ -191,11 +193,21 @@ class QgsVectorDataProvider : QgsDataProvider
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
* @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
@ -241,8 +253,8 @@ class QgsVectorDataProvider : QgsDataProvider
* 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
* 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
* can cause changes to the underlying data source (eg Postgres provider where the default value
* 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 (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
* in QgsVectorLayerUtils such as QgsVectorLayerUtils::createFeature()
* 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
* 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()
* @note added in QGIS 3.0
*/
@ -268,7 +280,7 @@ class QgsVectorDataProvider : QgsDataProvider
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
* passed which can help refine the skip constraint check.
* @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
* parameters used by the data provider as url query items.
* @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
*
*/

View File

@ -38,7 +38,7 @@ class QgsVectorLayerUtils
/**
* 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,
* assuming that they respect the layer's constraints. Note that the created feature is not
* automatically inserted into the layer.

View File

@ -5,7 +5,31 @@ class QgsColorRampShader : QgsRasterShaderFunction
%End
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();
@ -28,19 +52,11 @@ class QgsColorRampShader : QgsRasterShaderFunction
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*/
QList<QgsColorRampShader::ColorRampItem> colorRampItemList() const;
/** \brief Get the color ramp type */
QgsColorRampShader::ColorRamp_TYPE colorRampType() const;
Type colorRampType() const;
/** Get the source color ramp
* @note added in QGIS 3.0
@ -61,11 +77,27 @@ class QgsColorRampShader : QgsRasterShaderFunction
void setColorRampItemList( const QList<QgsColorRampShader::ColorRampItem>& theList ); //TODO: sort on set
/** \brief Set the color ramp type*/
void setColorRampType( QgsColorRampShader::ColorRamp_TYPE theColorRampType );
void setColorRampType( QgsColorRampShader::Type theColorRampType );
/** \brief Set the color ramp type*/
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 */
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;
//! 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.
* @param clip set to true to clip values which are out of range.
* @see clip()

View File

@ -211,7 +211,7 @@ class QgsRasterInterface
/** \brief Get histogram. Histograms are cached in providers.
* @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 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.

View File

@ -4,6 +4,7 @@ class QgsSingleBandPseudoColorRenderer: QgsRasterRenderer
#include "qgssinglebandpseudocolorrenderer.h"
%End
public:
/** Note: takes ownership of QgsRasterShader*/
QgsSingleBandPseudoColorRenderer( QgsRasterDataProvider* provider, int band, QgsRasterShader* shader /Transfer/ );
~QgsSingleBandPseudoColorRenderer();
@ -15,10 +16,22 @@ class QgsSingleBandPseudoColorRenderer: QgsRasterRenderer
/** Takes ownership of the shader*/
void setShader( QgsRasterShader* shader /Transfer/ );
QgsRasterShader* shader();
//! @note available in python as 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 legendSymbologyItems( QList< QPair< QString, QColor > >& symbolItems ) const;

View File

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

View File

@ -218,7 +218,7 @@ class QgsSimpleMarkerSymbolLayer : QgsSimpleMarkerSymbolLayerBase
*/
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
* @see setOutlineStyle()
* @see borderColor()
@ -226,7 +226,7 @@ class QgsSimpleMarkerSymbolLayer : QgsSimpleMarkerSymbolLayerBase
*/
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
* @note added in 2.4
* @see outlineStyle()
@ -235,7 +235,7 @@ class QgsSimpleMarkerSymbolLayer : QgsSimpleMarkerSymbolLayerBase
*/
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
* @see setPenJoinStyle()
* @see borderColor()
@ -243,7 +243,7 @@ class QgsSimpleMarkerSymbolLayer : QgsSimpleMarkerSymbolLayerBase
*/
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
* @note added in 2.16
* @see penJoinStyle()

View File

@ -1,6 +1,6 @@
/** \class QgsPointDistanceRenderer
* \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.
* Subclasses must implement drawGroup() to handle the rendering of individual point clusters
* in the desired style.

View File

@ -100,13 +100,13 @@ class QgsRendererRegistry
public:
//! Returns a pointer to the QgsRendererRegistry singleton
static QgsRendererRegistry* instance();
QgsRendererRegistry();
~QgsRendererRegistry();
//! Adds a renderer to the registry. Takes ownership of the metadata object.
//! @param metadata renderer metadata
//! @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/ );
//! Removes a renderer from registry.
@ -128,11 +128,6 @@ class QgsRendererRegistry
//! @note added in QGIS 2.16
QStringList renderersList( const QgsVectorLayer* layer ) const;
protected:
//! protected constructor
QgsRendererRegistry();
~QgsRendererRegistry();
private:
QgsRendererRegistry( const QgsRendererRegistry& rh );
//QgsRendererRegistry& operator=( const QgsRendererRegistry& rh );

View File

@ -65,7 +65,8 @@ class QgsSvgCache : QObject
public:
static QgsSvgCache* instance();
QgsSvgCache( QObject * parent /TransferThis/ = 0 );
~QgsSvgCache();
/** Get SVG as QImage.
@ -151,8 +152,6 @@ class QgsSvgCache : QObject
void statusChanged( const QString& theStatusQString );
protected:
//! protected constructor
QgsSvgCache( QObject * parent /TransferThis/ = 0 );
/** 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.

View File

@ -155,7 +155,7 @@ class QgsSymbol
void toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
/** 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 line width.
* @returns output unit, or QgsUnitTypes::RenderUnknownUnit if the symbol contains mixed units
@ -164,7 +164,7 @@ class QgsSymbol
QgsUnitTypes::RenderUnit outputUnit() const;
/** 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 line width.
* @param unit output units

View File

@ -148,13 +148,13 @@ class QgsSymbolLayer
bool isLocked() const;
/** 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
be affected by data defined symbology rules.*/
virtual double estimateMaxBleed() const;
/** 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 line width.
* @param unit output units
@ -163,7 +163,7 @@ class QgsSymbolLayer
virtual void setOutputUnit( QgsUnitTypes::RenderUnit unit );
/** 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 line width.
* @returns output unit, or QgsUnitTypes::RenderUnknownUnit if the symbol layer contains mixed units

View File

@ -54,8 +54,8 @@ class QgsSymbolLayerRegistry
public:
//! return the single instance of this class (instantiate it if not exists)
static QgsSymbolLayerRegistry* instance();
QgsSymbolLayerRegistry();
~QgsSymbolLayerRegistry();
//! return metadata for specified symbol layer. Returns NULL if not found
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
static QgsSymbolLayer* defaultSymbolLayer( QgsSymbol::SymbolType type ) /Factory/;
protected:
QgsSymbolLayerRegistry();
~QgsSymbolLayerRegistry();
private:
QgsSymbolLayerRegistry( const QgsSymbolLayerRegistry& rh );

View File

@ -82,13 +82,13 @@ class QgsSearchWidgetWrapper : QgsWidgetWrapper
};
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
* @see nonExclusiveFilterFlags()
*/
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
* @see exclusiveFilterFlags()
*/

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