90 Commits

Author SHA1 Message Date
Nyall Dawson
acbd9d18f5 Merge pull request #5432 from Gustry/allow_pipe_filepath
allow pipe character in filepath in processing
2017-10-26 19:09:03 +11:00
Nyall Dawson
70361063d8 Rename QgsGeometry::geometry as QgsGeometry::get()
Because feature.geometry().geometry() is confusing, and impossible
to search for in python code (e.g. is input.geometry() a QgsGeometry
or a QgsAbstractGeometry?)

But more importantantly: also add a const version
QgsGeometry::constGet(). The non-const
version is slow, since it now forces a detach to avoid corrupting
geometries (since QgsGeometry is shared, it's not safe to directly
access its primitive QgsAbstractGeometry and start messing with
it without first detaching). This is a big risk in the 2.x API
which could potentially corrupt feature geometries with unexpected
outcomes.

Update all uses to constGet where possible.
2017-10-26 07:06:34 +10:00
Etienne Trimaille
fb4e84a052 allow pipe character in filepath in processing 2017-10-25 00:49:00 +02:00
Jachym Cepicky
28daa1a0e0 Adding more default SHP->GPKG changes 2017-10-19 15:45:04 +02:00
Nyall Dawson
54f8825350 Fix processing tests 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
Nyall Dawson
04a9cd9211 Add more consistency to doxygen formatting 2017-10-06 08:19:00 +10:00
Nyall Dawson
92af1dacaf Replace default constructors/destructors with = default 2017-10-01 06:52:14 +10:00
Nyall Dawson
a87d352bd7 Run clang-tidy modernize-use-default-member-init to move member
initialization to headers (c++11 style)
2017-09-27 05:02:34 +10:00
Nyall Dawson
700f9b2ef8 Condense qgstestutils.h and qgstest.h into a single file 2017-09-04 10:38:18 +10:00
Nyall Dawson
1fddfcf622 Flip Q_ENUMS to Q_ENUM
See https://woboq.com/blog/q_enum.html for rationale
2017-08-29 18:03:41 +10:00
Nyall Dawson
21a3b8a4f3 Use QGSCOMPARENEAR instead of QVERIFY( qgsDoubleNear(... ) )
QGSCOMPARENEAR gives better debugging output when the
test fails
2017-08-29 12:39:59 +10:00
Nyall Dawson
4b009f96ec Use std::round instead of qRound
Now that our minimum VS studio version allowed supports std::round,
we should use that in place of Qt's qRound method.

Because:
- it doesn't truncate to int, resulting in unpredictable
behaviour (refs #16925)
- better to stick to standard c++ methods wherever possible,
since they're likely better supported and optimised by the
compilers
- it's a tiny reduction to the barrier for entry to QGIS
development (I'm sick of pointing out the need to use
qRound during PR reviews!)
2017-08-25 02:35:27 +10:00
Nyall Dawson
0227bdc376 Remove QgsGeometryAnalyzer, QgsOverlayAnalyzer, QgsPointSample
These classes are unused in the master QGIS code, and are
unmaintained and with no unit tests or other QA, and
have inflexible API (e.g. always requiring writing outputs
to shapefiles)

They all have equivalent algorithms available via Processing
(where the algorithms are unit tested and maintained). We should
be pushing all QGIS api users to use the Processing algorithms
instead.
2017-08-11 04:48:11 +10:00
Denis Rouzaud
06f9842637 rename symbology-ng to symbology 2017-08-06 14:18:57 +02:00
nirvn
58f6f93cb6 [zonal statistics] add variance statistic 2017-06-29 11:53:04 +07:00
Matthias Kuhn
82455588c8 General include cleanup
This unifies the way the include directories are handled in the
CMakeLists.txt files.
Paths are now normally relative to the root of the source- or build dir.
They may still be relative for paths withing a plugin subdirectory but
should no longer be relative to paths outside of the current source- or
build-directory.

The previous approach had resultet in many different styles which are
hard to wrap ones head around if new to the build system.
It sometimes defined includes twice
By using relative paths, it was not possible to copy paste the paths
between different files.
2017-05-19 07:13:11 +02:00
Juergen E. Fischer
135882259c include metadata headers in install (followup 3a965e6d) 2017-05-08 13:21:23 +02:00
Nathan Woodrow
db8a14d496 Test cmake (#4343)
* Streamline cmake test file adding
2017-04-09 16:18:28 +10:00
Nyall Dawson
636e9c5ea3 [FEATURE] Add geometry snapper modes to only snap end points of lines
Allows snapping of end points only, or end point to end point only

Also update processing algorithm to match
2017-03-30 15:52:49 +10:00
Nyall Dawson
ece3991dbe [FEATURE] New class QgsInternalGeometrySnapper
Used for snapping geometries within a set of features to other
features from that same set.

Just like QgsGeometrySnapper, except that where QgsGeometrySnapper
requires a separate reference layer to snap to
QgsInternalGeometrySnapper snaps *within* a single layer. E.g.
allows you to close gaps within that layer.
2017-03-30 13:54:05 +10:00
Juergen E. Fischer
b9162dccdf scripts/astyle-all.sh run 2017-03-03 15:37:12 +01:00
Nyall Dawson
d19e70700f Ensure all pointer variables are initialized to nullptr 2017-02-18 20:23:18 +10:00
Nyall Dawson
f84508a35d Fix Coverity uninitialized member warnings 2017-02-03 07:11:12 +10:00
Alexander Bruy
278913b7ce use QgsRasterBlock instead of GDAL in zonal statistics (addresses #8736)
This should make zonal statistics usable rasters which come from
other providers, e.g. WCS.
2017-01-28 11:12:12 +02:00
Alexander Bruy
9378d20fe0 fix generation of unique field names 2017-01-27 15:19:56 +02:00
Alexander Bruy
8e3042286d extend zonal statistics tests 2017-01-27 15:19:47 +02:00
Martin Dobias
433d04b68e QgsRasterBlock::data() for efficient access to pixel data also in Python (#4009)
Also adds some unit tests and API cleanups
2017-01-18 09:52:45 +08:00
Denis Rouzaud
0a63d1f2c2 [spellcheck] properly look into various cases and add more fixes" 2017-01-16 16:39:20 +01:00
Matthias Kuhn
d006784ded Add qgis_analysis.h with ANALYSIS_EXPORT macro 2017-01-05 00:12:11 +01:00
Matthias Kuhn
0302719cf0 Add qgis_core.h to with CORE_EXPORT macro
This removes complexity from the compiler flags because defines
happen in a file.
2017-01-05 00:12:11 +01:00
Matthias Kuhn
dfd9833467 Let all tests work with a proper QgsApplication instance 2016-12-20 01:20:08 +01:00
Martin Dobias
d56a97d4fe Merge QgsMapLayerRegistry into QgsProject
All methods/signals of QgsMapLayerRegistry moved verbatim to QgsProject.
2016-12-10 15:18:12 +08:00
Nyall Dawson
8acc286b0f [FEATURE] Snap to layer algorithm accepts a mode parameter
With a new option to prefer to snap to closest point on geometry.
The old behaviour was to prefer to snap to nodes, even if a node
was further from the input geometry than a segment. The new option
allows you to snap geometries to the closest point, regardless
of whether it's a node or segment.
2016-11-07 12:20:59 +10:00
Nyall Dawson
dae0a01761 [FEATURE][processing] Snap geometries algorithm allows snapping
to other layer types, supports point/line layers

Fix #14791, #15313
2016-11-07 12:20:59 +10:00
Nyall Dawson
1367fd09fc Prepare commit converts single line doxygen block format
Flips single line doxygen comments to use the proper single line
format:

/*!< comment */   to   //!< Comment

and

/** comment */    to   //! Comment
2016-10-25 09:17:39 +10:00
Nyall Dawson
4166a3ea62 Fix most clazy qstring-unneeded-heap-allocations warnings
By flipping string literals to QStringLiteral/QLatin1String

see

https://woboq.com/blog/qstringliteral.html
2016-10-24 15:26:24 +10:00
Nyall Dawson
1a2231f10c Rename QGis class to Qgis, for capitalisation consistency 2016-07-21 22:01:38 +10:00
Nyall Dawson
c628c0f434 Rework includes to forward declare as much as possible
Should speed up recompilation when headers change
2016-07-18 19:10:19 +10:00
Nyall Dawson
156721b380 Use average mode for align raster downsample tests
GDAL 2.0 changed (fixed) the bilinear downsampling algorithm, so
switch to the average algorithm so that test results are the same
for GDAL versions >= 2.0 and < 2.0.
2016-04-09 09:48:47 +02:00
Even Rouault
2c6d4ba35e Add missing SQLITE3_INCLUDE_DIR in tests/src/analysis/CMakeLists.txt
For OSM test
2016-03-24 16:29:50 +01:00
Sandro Mani
060dca671e Destroy layers in TestQgsVectorAnalyzer::cleanupTestCase 2016-02-03 11:47:07 +01:00
Nyall Dawson
87c58f4541 Mark more includes as system includes 2016-01-08 16:43:27 +11:00
Juergen E. Fischer
8214608169 more nullptr updates (folloup 320c696) 2015-12-16 16:29:29 +01:00
Nyall Dawson
4f7509530a Remove some unnecessary trailing ;
(Gets rid of annoying squiggle warnings from Qt Creator!)
2015-11-02 18:07:04 +11:00
Nyall Dawson
b7e1cae4f0 Switch double quoted single character to single quotes for some
QString methods

Using single quotes is a significant performance boost. Rough
benchmarks indicate the QString single quote methods take
about 15% of the time the double quote variants take.
2015-11-02 17:55:08 +11:00
Nyall Dawson
9a94132fb4 Clazy issues:
- use at() instead of [] for temporary containers (at() returns
const reference, so it avoids the detach which occurs with [])
- use at( 0 ) rather than first() for containers, because first()
detaches (Qt5 introduced constFirst()/constLast() to overcome this)
2015-10-20 20:36:08 +11:00
Nyall Dawson
5ed3d1b73f Use QString::arg multi argument method to avoid extra heap allocations 2015-10-15 17:51:06 +11:00
Larry Shaffer
e65aa99ae7 [FEATURE] Authentication configuration system with master password
- Main C++ core and gui classes and desktop app integration
- Support for authentication method plugins
- Does not contain any integration with service connections
2015-09-21 08:51:18 -06:00
Nyall Dawson
46abe34b8c Fix leaks in tests 2015-08-26 22:53:38 +10:00