3546 Commits

Author SHA1 Message Date
Nyall Dawson
3f7fc069ae Annotation layers should return true to isEditable, supportsEditing 2021-08-18 12:32:41 +10:00
Sandro Mani
f67c071ed1 Remove unused include 2021-08-17 15:30:38 +02:00
Francesco Bursi
179cb1d951
[feature] virtual raster data provider (#44195)
* try to commit some changes in the branch

* addedd 3 file, cmake, vrp .h and .cpp

* updating VRP, no good results

* try to solve some issue to the virtual raster provider

* metadata class added, it should be developed

* registred in qgsproviderregistry the new VRP

* on line to test debug in the  new VRP

* chenge of 1_06

* minor change 2 06

* updating VRP, it can add some useless color to map canvas

* add baseclass test fro new provider

* Delete testqgsvirtualrasterprovider.cpp

* move VRP to src/providers

* Delete src/core/providers/virtualrasterprovider directory

* little change to cmake

* added as dynamic provider

* move the VRP to src/providers and let it work

* move the VRP to src/providers and let it work

* including qgis analysis

* updating block function with some calc tools

* delete block function, updating readblock function

* modified block method, used setValue --> to update with bits

* modified block method

* modified block method, adding takedata to the resultmatrix

* modified test for the new provider

* Add some checks in the block method, for raster entries

* tries for the calculator tool

* work on the hardcoded part and test

* work on the hardcoded test

* minor change in order to make the calc functionaltiy work

* minor change to the loop in which the computation occurs

* try to understand how qgsrastermatrixworks

* work on debugging new class

* work on debugging new class

* updating test and block method

* updating test and and block, now it works running in test mode

* updating test and and block, now it works running in test mode with bits

* updating test and and block, now it works running in test mode with bits

* update test

* update test and provider class

* add decodeuri and encodeui in metadata, at the moment they do nothing

* modify qgsrasterdataprovider by adding decoding and encoding uri methods

* workin on encode and decode funct

* work on encode/decode after Martin advices

* work on encode/decode after Martin advices, and update unit test

* work on encode/decode and update Cmakelist of provider test

* work on encode/decode and update Cmakelist and provider test

* work on encode/decode and update test + constructor

* work on encode/decode and constructor

* decode is now non trivial, he same as constructor

* working on encoding

* working on encoding/decoding

* change a little the code/decode mehods in order to return and get a struct as output/input

* change of decode method

* change the encode method, I should polish the code and optimize the encode for raster layers

* add flag ptr bool to decode mehod

* add flag ptr and modified the constructor of vrprovider

* work on the constructor and deconstructor, the flag does not work properly

* work on the constructor anf decoder

* work on the constructor and decoder

* work on the constructor and add some lines to popoluta mRasterEntries

* delete hardcoded data

* work on constructor and copy constructor 2

* add the parsing of the formula in the constructor, I should make a private var with calcnode

* add the parsing of the formula in the constructor, I should make a private var with calcnode2

* add some checks in the constructor2

* modify the copy constructor, add some code to adjust the qgsrasterdataprovider.sip

* modify checks in the constructor and in the decode method, in order to avoid nested if stat

* delete the logic in the decode method and add in the constructor

* delete the logic in the decode method and add in the constructor, add some redundant check in the constructor

* delete the logic in the decode method and add in the constructor, add some redundant check in the constructor 2

* test is now more general

* test is now more general2

* delete of a comment

* banned keywords check

* little error

* add copyright

* add copyright2

* add assignment operator= delete

* add documentation in qgsrasterprovider

* documentation

* modify qgsstringutils

* little modifications

* add the checkbox to the ui

* come back to old ui for raster calc

* adjust some qt::endl in the test of vrprovider

* start to work on the ui dialog

* layot of the code

* add some logic to the dialog of the raster calc

* add some test to qgisapp, need to modify the encoder and maybe put it in the qgrastercalcdialog

* modify some logic in rastercalcdialog and in the app, I should modify and move the encode method

* modify the comment

* add method to calcnode, modify the constructor of the provider and the open of the dialog

* add documentation

* some modifications according to the first review

* sadd some changes according to Martin's review

* change qgsrastercalcnode methods that returns raster names, small change to ui

* change the ui

* change the ui - using QString instead of QStringLiteral

* change the ui - using QString instead of QStringLiteral

* change name of subdirectory containing the virtual raster provider

* change name of subdirectory containing the virtual raster provider2

* change name of subdirectory containing the virtual raster provider3

* minor changes to makefiles

* minor change to dialog, to hide and show the output format and path

* provider key changed to the shorter virtualraster

* add some code to QgsRasterLayer::encodedSource and decodedSource

* delete some comments

* updating VRP, no good results

* made some change after the the second review

* delete the comments

* change some part of the code (delete of comments and cleaning the code)

* correct some layout errors

* change the mail contatct in my prvider

* change details on the method in qgsrastercalcnode

* change some method of the test class of my provider

* delete some leakage in the virtual raster provider

* modify some parts according to the review + change two lines of code for encoding/decoding methods

* modify a line of qgisapp.cpp

* small change according to the comments on th PR

* add a test method for second generation virtual raster and modify checks in qgisapp

* correction of the test method

Co-authored-by: franc <Franc-Brs>
2021-08-17 10:00:16 +02:00
Denis Rouzaud
a0507ee324
Merge pull request #44533 from troopa81/feat_dms_connexion_widget
[ExternalStorage] Add widget to configure/edit and visualize external storage
2021-08-16 12:05:26 +02:00
Julien Cabieces
53e16e85c0 add external storage display name 2021-08-16 09:18:14 +02:00
Julien Cabieces
a63551a4a7 [WFS] fix unknown expat encoding issues 2021-08-16 09:12:17 +02:00
Nyall Dawson
e6fa3ffd69 Add filepath to QgsMimeDataUtils::Uri 2021-08-12 12:54:21 +10:00
Nyall Dawson
a5261ff141 Better error reporting for aggregate calculation failures 2021-08-12 03:26:46 +10:00
Nyall Dawson
4d5014deae Add QgsExpression utility function to match an expression or field name string to a layer's field index 2021-08-12 03:26:46 +10:00
Nyall Dawson
66bd635454 repr for QgsDefaultValue 2021-08-11 16:41:49 +10:00
Nyall Dawson
155c76c91d Add some __repr__ methods for QgsLayerTreeNode classes 2021-08-11 13:35:59 +10:00
Nyall Dawson
1608547066 Add utility function QgsFileUtils.renameDataset
Renames a dataset file, including all its associated sidecar
files (and optionally the .qmd/.qml sidecars)
2021-08-11 08:21:04 +10:00
Nyall Dawson
ee0c050bbf Add QgsFileUtils.sidecarFilesForPath function, which returns all
sidecar files which exist for a given file path
2021-08-10 12:52:34 +10:00
Nyall Dawson
ff2f22f3a6 Raise IndexErrors instead of crashing when an invalid index is
passed to QgsAttributeTableConfig methods from Python
2021-08-10 11:47:23 +10:00
Nyall Dawson
1daccf6055 Fix doxygen command 2021-08-09 13:00:33 +10:00
Nyall Dawson
bf6af35382 Copy error message from aggregate calculator to expression when
aggregate function fails, so that we give more helpful error messages
for debugging aggregate based expressions
2021-08-09 13:00:33 +10:00
Nyall Dawson
17fa48250a Expand docs 2021-08-09 05:55:05 +10:00
Nyall Dawson
52dff0f2ef Add api to QgsProviderMetadata to return any possible sidecar
files which may exist for the provider given a layer path
2021-08-09 05:55:05 +10:00
Alexander Bruy
00dad40975
Merge pull request #44583 from alexbruy/processing-pointcloud
Point cloud parameter for Processing
2021-08-06 11:02:04 +03:00
Nyall Dawson
02b04fcd10 Spelling 2021-08-06 14:17:28 +10:00
Nyall Dawson
354d334e94 Add utility function QgsProjectUtils.updateLayerPath to bulk replace
a file path with a new path for all matching layers in a project
2021-08-06 14:17:28 +10:00
Nyall Dawson
a31a67401b Add utility QgsMapLayerUtils.updateLayerSourcePath for easy replacement
of file paths in the source of a file-based layer
2021-08-06 14:17:28 +10:00
Alexander Bruy
63952c1a37 [processing] add support for point clouds to map layer and multiple
layer parameters
2021-08-05 18:41:33 +03:00
Alexander Bruy
f801cb6816 [processing] new pont cloud parameter for processing 2021-08-05 16:03:50 +03:00
Nyall Dawson
2cab3bba72 Working distance within filter for vector layer cache 2021-08-05 14:24:07 +10:00
Nyall Dawson
f69ff2706a Implement distance within search for vector layer iterator 2021-08-05 14:24:07 +10:00
Nyall Dawson
686a6e5968 [api] Add option to QgsFeatureRequest to request features
within a certain distance of a reference geometry

E.g. this request will retrieve all features within 50 map units of the
provided linestring:

    QgsFeatureRequest().setDistanceWithin(QgsGeometry.fromWkt('LineString(0 0, 10 0, 12 1)'), 50)

A new enum Qgis::SpatialFilterType has been added to reflect whether
a request uses no spatial filter, a BoundingBox filter (via
setFilterRect), or the new DistanceWithin filter.

Distance within filters are treated like bounding box filters, in
that they are independant of any attribute/id filters (such as
feature ids or expressions).
2021-08-05 14:24:07 +10:00
Nyall Dawson
d01aa2826e Spelling fixes 2021-08-05 13:01:54 +10:00
Nyall Dawson
01e3e1dddc [api] Move QgsGeometry enums to Qgis, promote to enum classes 2021-08-04 09:54:32 +10:00
Sandro Mani
c2b48173c8
Merge pull request #44471 from qgis/links
Support CTRL+Click for opening links in attribute table
2021-08-03 01:35:21 +02:00
Nyall Dawson
41d98c82d7 Add a formal settings category for GPS settings 2021-08-03 09:22:31 +10:00
Sandro Mani
2a2899a87c Support CTRL+Click for opening links in attribute table 2021-08-02 23:44:58 +02:00
Nyall Dawson
47f7612004 Add flag to babel command generation methods to control whether
paths should be quoted
2021-08-02 13:36:46 +10:00
Nyall Dawson
377f1d42ec Make QgsBabelFormatRegistry responsible for generating a file
filter string for all import formats
2021-08-02 13:36:46 +10:00
Nyall Dawson
ebd7d0c50d Add file extensions for babel import formats 2021-08-02 13:36:46 +10:00
Nyall Dawson
3ee1f2b2b5 Rework QgsBabelSimpleImportFormat to avoid storing using keys
based on the format description, and instead use the (constant)
format name instead
2021-08-02 13:36:46 +10:00
Nyall Dawson
8f36cdfa44 [processing] Add API to allow a string parameter to show as a combobox
with preset choices in processing GUI

In some circumstances it is desirable to restrict the values available
when a user is asked to enter a string parameter to a list of predetermined
"valid" values, yet these values will vary installation by installation
(e.g. a "printer name" parameter, where you want users to pick from
printers installed on the system, but since the printer names will
vary install to install an enum parameter is not a valid choice)

This can now be done by setting the widget wrapper metadata
"value_hints" option, as demonstrated below. (While this provides a mechanism
for guiding users to select from valid string values when running a Processing
algorithm through the GUI, it does not place any limits on the string values
accepted via PyQGIS codes or when running the algorithm via other non-gui
means. Algorithms should gracefully handle other values accordingly.)

    param = QgsProcessingParameterString( 'PRINTER_NAME', 'Printer name')
    # show only printers which are available on the current system as options
    # for the string input.
    param.setMetadata( {'widget_wrapper':
      { 'value_hints': ['Inkjet printer', 'Laser printer'] }
    })
2021-08-01 05:33:51 +10:00
Nyall Dawson
612af1fb7b Add a registry for GPSbabel formats 2021-07-31 10:12:16 +10:00
Julien Cabieces
9d732a238a Fix SIP 2021-07-30 10:53:13 +02:00
Julien Cabieces
8c3f9cd3d0 constify externalStorageFromType 2021-07-30 10:18:38 +02:00
Julien Cabieces
deed238bc8 s/OnGoing/Running/g 2021-07-30 10:18:38 +02:00
Julien Cabieces
56acee931d Add enum ActionStart 2021-07-30 10:18:38 +02:00
Julien Cabieces
014a4aac3a Add StartLater / StartImmediately distinction 2021-07-30 10:18:36 +02:00
Julien Cabieces
ce6cc8d244 change comment singleton 2021-07-30 10:17:57 +02:00
Julien Cabieces
4bd9170f79 s/authentification/authentication 2021-07-30 10:17:57 +02:00
Julien Cabieces
5389c31b1e Add ContentStatus enum in Qgis class 2021-07-30 10:17:55 +02:00
Julien Cabieces
82e16cf38c [External Storage] Add QgsCopyFileTask 2021-07-30 10:16:45 +02:00
Julien Cabieces
6967b1cd2b [External Storage] Define API 2021-07-30 10:16:45 +02:00
Nyall Dawson
0a77401d1c Add python bindings 2021-07-30 16:07:36 +10:00
Nyall Dawson
f115db6950 Start vivisecting gps_importer plugin
Move the babel format classes to core, cleaning these up and
removing unused code and modernizing the API.
2021-07-30 16:07:36 +10:00