87 Commits

Author SHA1 Message Date
Nyall Dawson
e4b201a414 Code shuffle 2020-05-12 10:33:30 +10:00
Matthias Kuhn
77318730a8 [workflows] Add code_layout tests 2020-05-09 13:30:30 +02:00
Martin Dobias
c7380612cd Correct SIP fix + add src/gui/vectortile to doxygen 2020-04-05 12:04:34 +02:00
Martin Dobias
53075848ce
Merge pull request #35341 from wonder-sk/vector-tile-layer
[FEATURE] Vector tile layer - part 1
2020-04-02 16:06:30 +02:00
Martin Dobias
bbc6af5ded Fixes to python bindings + some bits from code review 2020-03-26 19:31:00 +01:00
Nyall Dawson
bab86e9af3 Start on classes for dev tool widgets and dev tool widget factory 2020-03-25 20:03:18 +10:00
Nyall Dawson
cd6d51181b [processing] Port some model designer graphic item internals to c++
for stability and re-usability from c++ code
2020-03-01 19:12:25 +10:00
Nyall Dawson
591e1a28e0 Start on GUI work 2020-01-08 16:20:43 +13:00
Nyall Dawson
d0b5a01729 [api] Add registry and interface for QgsNumericFormats
QgsNumericFormat subclasses provide a means to format a numeric value
as a string, applying various formatting options. E.g. a default
string to value formatter (included here) includes settings for
controlling the number of decimal places, whether a thousands separator
should be shown, whether a leading + sign should be shown, whether
trailing zeros should be shown.

This PR also includes a formatter for bearings, allowing various
formats of numeric bearings to be applied (e.g. control over decimal
places, etc + control over whether direction E/W suffixes are shown,
or whether values should be limited to either the +/- 180 range or
0-360 degree range)

When formatting values, a QgsNumericFormatContext class is used
to provide context. Currently, this includes the thousands and
decimal separators to apply when formatting (which are taken by
default from the user's locale).

A registry of formatters is included to allow easy addition of
other formats in future (e.g. currencies, percentages, scientific
notation, etc...) and to allow plugin based formats.

The intention is to follow this up with gui configuration widgets
for the formats, and then expose them in various places through
the qgis ui (e.g. in the range editor widget for fields, in scalebar
numbers, as an option for formatting numeric labels, etc)
2020-01-08 16:20:43 +13:00
Nyall Dawson
03803b08c3 Also move app labeling files to dedicated subdirectory 2019-12-11 14:05:44 +10:00
Nyall Dawson
a8adb2d6c2 Code shuffle: move all labeling related code into src/core/labeling
So that these files are all grouped together, making it easier to locate
all the components of the labeling engine and hopefully making things
easier to navigate
2019-12-11 14:05:44 +10:00
Juergen E. Fischer
58932e8317 fix doc installation 2019-10-26 13:51:56 +02:00
Matthias Kuhn
46abf27fcc In source doc relative path magic 2019-10-26 08:28:51 +10:00
Matthias Kuhn
6b82fc94e3 https for qt docs 2019-10-26 08:28:51 +10:00
Matthias Kuhn
e6a06ec3b2 Also copy svg, icons and doc to build dir, into /data/ subdir 2019-10-26 08:28:51 +10:00
Sandro Santilli
3225f4911a Make apidoc installation optional when building it on demand
Fixes #31842
2019-09-17 15:18:14 +02:00
Denis Rouzaud
b3d52df67b
Merge pull request #31500 from 3nids/refactor_classification
Refactor graduated symbol renderer
2019-09-02 14:57:18 +02:00
Denis Rouzaud
180c605787
src/gui/processing/models does not exist (#31532) 2019-09-02 13:28:41 +02:00
Denis Rouzaud
734e99e1e0 add classification methods to API docs 2019-09-02 10:16:21 +02:00
Nyall Dawson
7d02545dc0 Add callout classes to doxygen 2019-07-11 13:03:12 +10:00
Peter Petrik
cd9a84e11c [feature] [mesh] Mesh Calculator
Similarly to raster calculator, mesh calculator can take dataset groups from current mesh layer and
combine them with various aritmentic/logical operators to new dataset group.
2019-01-14 12:32:36 +01:00
Denis Rouzaud
48db864836
add missing bits to API documentation (#8709)
* add missing bits to API documentation

* API docs

* mark function as deprecated

* Deprecate for Python

* Fix docstrings

* Fix see also link
2019-01-05 20:31:10 -05:00
Nyall Dawson
7ccaa3df32 [FEATURE][API] Add flexible framework for custom "validity checks"
Adds a new interface QgsAbstractValidityCheck which defines
a single "check" which can be performed on a given QgsValidityCheckContext.
A new application-wide QgsValidityCheckRegistry registers
and manages instances of all known checks, and allows running
of all registered checks of a specific type at once.

Initially the framework is focused toward print layout validity
checks, but the interface has been designed to be generic enough
to allow alternative types of validity checks (e.g. project save
validity checks, processing model validity checks, etc.).

The API is designed to be used both by internal validity checks
and also to be extended by custom, organisation-specific
validity checks. E.g., for print layout validity checks we could have:
2019-01-03 04:53:07 +10:00
Matthias Kuhn
1d1a668fb0
Add geometry check to API documentation 2018-12-21 16:24:40 +01:00
Denis Rouzaud
3663de9103 [API docs] add missing gui/layout 2018-10-24 07:54:06 -08:00
Mathieu Pellerin
f1fdbbbbf0 Fix references to contributors.json (#7722) 2018-08-27 23:12:40 +03:00
Blottiere Paul
395cd8492e Generate doc when server is enabled (not plugins) 2018-07-13 08:22:27 +01:00
Blottiere Paul
dd5ffb5cbc Update doc path for server 2018-07-13 08:22:27 +01:00
Peter Petrik
b1bf9b2809 [FEATURE] Introduction of QGIS Quick library
This pull request is a subset of #6490

This adds a new library for creation of applications based on Qt Quick
framework.
It contains reusable QML / Qt Quick components based on QGIS core
library.
The initial work introduces MapCanvas

To enable compilation of the library, use WITH_QUICK=TRUE

Further documentation of the library is located in doc/qgsquick.dox

For background information see the associated QEP:
qgis/QGIS-Enhancement-Proposals#109

The initial implementation is largely based on the work of Matthias Kuhn
and Marco Bernasocchi on QField probject - kudos to them for the great
job!
2018-04-26 13:33:48 +02:00
Peter Petrik
c42af60dfe use smart pointer internally and remove unnecessary code 2018-04-20 09:19:11 +02:00
Juergen E. Fischer
fcacb0db7c doxygen fixes 2018-04-02 22:48:40 +02:00
Juergen E. Fischer
03354eea09 INSTALL is a output file (followup 1dd6db384f) 2018-02-18 14:01:25 +01:00
Nyall Dawson
3e42f808c1 Add missing directories to dox 2018-02-01 08:41:15 +11:00
Nyall Dawson
d8402acee8 Remove composer from more code, port georeferencer reports to layouts 2018-01-18 09:21:45 +10:00
Nyall Dawson
e92e20e613 Move native c++ processing algorithms from core library to analysis
And split into separate files for each algorithm
2017-10-16 20:10:37 +11:00
Martin Dobias
ca0aa72bf1 [needs-docs] Remove OpenStreetMap integration in analysis lib + app
- unmaintained and barely working anymore
- clunky GUI
- not supporting .pbf
- there are other python plugins doing the same thing better
- nobody is using it anymore

https://lists.osgeo.org/pipermail/qgis-developer/2017-October/050103.html
2017-10-13 09:39:47 +02:00
Matthias Kuhn
7428516d20
Less executable files in codebase 2017-10-04 14:38:27 +02:00
Martin Dobias
9778e85159 Add 3d to doxygen, do not verify indentation of included poly2tri lib 2017-09-15 12:36:44 +02:00
Nyall Dawson
742f3e5b4d Merge pull request #5112 from nyalldawson/locator_core
Move locator non-gui classes to core
2017-09-13 18:50:28 +10:00
Nyall Dawson
d7fff83b38 Include geonode folder in doxyden search folders
Required to build the docs for this folder, and correctly
include the classes in the documentation coverage test
2017-09-13 05:47:53 +10:00
Nyall Dawson
a8e1d335bb Move locator non-gui classes to core
Allows reuse in projects which don't build QGIS gui, e.g.
QField
2017-09-03 16:15:20 +10:00
Denis Rouzaud
06f9842637 rename symbology-ng to symbology 2017-08-06 14:18:57 +02:00
Nyall Dawson
6a54130f0b [layout] Add layout measurement and size classes
These classes are used for storing measurements for a layout
(QgsLayoutMeasurement), sizes for a layout (QgsLayoutSize)
and points in a layout (QgsLayoutPoint)

They support storing a measurement unit alongside a measurement
length/size. A new class QgsLayoutMeasurementConverter handles
conversion between different units, including converting to and
from pixels via a specified DPI property.
2017-06-23 18:00:17 +10:00
Denis Rouzaud
fa5bd491fc run code_layout build from top CMakeLists
instead of adding an extra CMakeLists in .ci/travis/code_layout to build API doc, astyle and run tests (indentation, spelling, sip, doc coverage), the top CMakeLists has been adapted to allow not building core libraries and possibly just the static code layout
* astyle has been moved from /src/astyle to /lib/astyle (I would propose to move all external libraries, and possibly add git submodules)
2017-06-05 22:19:20 +02:00
Denis Rouzaud
281daee0ba run Doxygen and doc coverage test on static Travis config 2017-06-05 22:19:20 +02:00
Alexander Bruy
b8d369a79a Merge pull request #4575 from alexbruy/qgis-sponsors
remove QgsSponsors widget. Instead open sponsors page in the webbrowser (fix #16169)
2017-05-18 13:05:15 +03:00
Nyall Dawson
71f7872251 [FEATURE] Implement a QtCreator style locator bar in the QGIS status bar
This adds a new "locator" bar to the QGIS status bar. If you're not
familiar with QtCreator's locator, it's a quick search bar
(activated by Ctrl+K) which displays matching search results
from any number of registered search filters.

Search filters are subclassed from QgsLocatorFilter, and
added to the app's locator via iface.registerLocatorFilter(...)

Searching is handled using threads, so that results always
become available as quickly as possible, regardless of whether
any slow search filters may be installed. They also appear
as soon as each result is encountered by each filter, which means
that e.g. a file search filter will show results one by one
as the file tree is scanned. This ensures that the UI is always
responsive even if a very slow search filter is present (e.g.
one which uses an online service).

This framework is designed to be extended by plugins, such as
OSM nominatim searches, direct database searching (i.e. Discovery
plugin), layer catalog searches, etc...
2017-05-17 21:33:47 +10:00
Alexander Bruy
5112a0dc88 remove QgsSponsors widget. Instead open sponsors page in the webbrowser
(fix #16169)
2017-05-17 12:06:20 +03:00
Nyall Dawson
5511b07e40 Move memory provider to core
This commit introduces basic support for non-library based
data providers, and moves the memory provider from a library
based provider to a core provider.

The memory provider is used so frequently throughout QGIS that
it has become integral to QGIS functionality and must be
available wherever the QGIS core library is used.

The changes here (while not exposed yet to Python) could potentially
be built on to allow creation of pure Python data providers.
2017-05-06 12:05:12 +10:00
Nyall Dawson
998ca4a8ce Preparation for metadata directory 2017-05-04 07:29:56 +10:00