359 Commits

Author SHA1 Message Date
Martin Dobias
8ffd91ea90 Propagate path resolver through renderers, annotations, diagrams
This is necessary in order to be able to correctly translate between absolute and relative paths
deeper in the code - e.g. paths to SVG files used in marker or fill symbols.

Until now, relative paths were translated to absolute paths on the fly.
This is now changed - paths to files should be always absolute within QGIS objects - and paths
only get turned into relative when saving projects. When loading a project, relative paths
are translated to absolute paths immediately.

This should lower the overall confusion about relative/absolute paths within QGIS, and also
allow having different base directories for relative paths (e.g. QML or QPT files may use relative paths
to their directory - rather than to the project directory)
2017-05-13 18:02:19 +08:00
Denis Rouzaud
85f3b81b55 remove double spaces in sip files
fix indentation
2017-05-03 08:02:14 +02:00
Denis Rouzaud
7d459149c7 [sip] align missing bits and replace nullptr by 0 2017-05-02 08:09:53 +02:00
Denis Rouzaud
7b60d89d6c align pointer and reference in sip files batch 2 2017-05-01 20:00:51 +02:00
Nyall Dawson
77e7693c48 Fix spelling errors in processing algorithm help 2017-03-25 16:23:29 +10:00
Matthias Kuhn
0170580019 Save QgsProperty related objects via QVariants 2017-03-09 20:54:44 +01:00
Nyall Dawson
47683fca4f [needs-docs] Rename Outline and Border -> Stroke
This change is being driven by:

- need for consistent terminology in the api. Currently there's
a confusing mix of border/outline used
- need for consistent terminology in the gui - we have a mix
of "border"/"outline"/"pen"
- bringing QGIS into line with the standard terminology used
in other graphic editing programs
2017-02-22 19:22:45 +10:00
Denis Rouzaud
7812d4fb17 remove the-prefix from source code
this might result in variables having the same name as some methods
2017-02-21 18:14:58 +01:00
Nyall Dawson
7daa4b591e Fix a bunch of suggestions from clang-tidy
And add a new CLANG_TIDY_EXE cmake option. If this is set to the
path to the clang_tidy executable then a bunch of clang-tidy
checks will be run during compilation.
2017-02-21 08:49:29 +10:00
Nyall Dawson
d47d31d13c Rename "Db"/"DB" in API to "Database"
Motivations:
- consistency - we generally use expanded names, and this also
matches Qt API which uses Database instead of Db
- avoids unpredictable capitalization throughout API (mix of "Db"
and "DB")
2017-02-07 09:32:05 +10:00
Nyall Dawson
54089ff710 Follow up 4a3871, fix broken data defined properties
(definitions are often accessed before a QgsSymboLayer/etc
is constructed)
2017-02-05 14:27:26 +10:00
Nyall Dawson
10c40dcaab Fix rendering offset lines as part of fill symbol (outside of
vector layers) results in broken offset outline
2017-01-30 19:58:08 +10:00
Nyall Dawson
dd51843e54 QgsSymbol estimateMaxBleed methods now use a QgsRenderContext
argument to correctly calculate bleed for mapunits/pixels/etc
2017-01-30 12:36:04 +10:00
Martin Dobias
0341478864 Remove code for reading of legacy (QGIS < 1.0) renderers
Also removes a bunch of unused old QMLs and upgrades one still in use
2017-01-27 16:02:48 +08:00
Nyall Dawson
39b89d1bac SIP sync 2017-01-23 12:45:22 +10:00
Nyall Dawson
ffaa40edc4 Refactor properties
Remove QgsAbstractProperty and subclasses, and instead use a single
QgsProperty class which covers the use of QgsAbstractProperty
and its subclasses. This simplifies the API and avoids pointer
handling. QgsProperty is implicitly shared for memory efficiency
and inexpensive copies.
2017-01-23 12:45:21 +10:00
Nyall Dawson
ad2324021d Port symbology and composer to properties framework 2017-01-23 12:45:21 +10:00
Nyall Dawson
b7d89a73af Consolidate all render context unit conversion to single methods
within QgsRenderContext

Fix invalid conversions, update unit tests
2017-01-22 21:29:23 +10:00
Denis Rouzaud
0a63d1f2c2 [spellcheck] properly look into various cases and add more fixes" 2017-01-16 16:39:20 +01:00
Nyall Dawson
3274e1926f Remove more unused raster scale factor handling 2017-01-16 16:50:54 +10:00
Nyall Dawson
8a722d2981 Move QgsSymbolLayerUtils::createRenderContext to QgsRenderContext::fromQPainter
This method is useful in many contexts outside of symbology
2017-01-16 15:52:19 +10:00
Nyall Dawson
b5480633e4 Standardise names for static variables
All non-const variables are prefixed with "s", all const
statics are ALL_CAPS
2017-01-14 16:40:24 +10:00
Nyall Dawson
231f6af0e1 Don't return const references to implicitly shared Qt classes
Instead return the inexpensive copies. Should provide extra safety
against issues like #14822

(refs #14822)
2017-01-14 15:53:45 +10:00
Denis Rouzaud
6c74e4ea5d spelling fixes 2017-01-12 22:01:50 +01:00
Nyall Dawson
b7706b358f Rename some static variables for consistency
Ensure non-const statics have "s" prefix and const statics
are in all caps
2017-01-12 15:17:47 +10:00
Denis Rouzaud
748be8de71 [spelling] replace behaviour by behavior 2017-01-11 11:35:19 +01:00
Nyall Dawson
8ebc73b495 Merge pull request #3914 from nyalldawson/bye_singletons
Remove some singletons by moving instances to QgsApplication
2017-01-02 09:00:58 +10:00
Harrissou Sant-anna
ef85cdcf83 Replace "eg" by "e.g." or "for example" 2016-12-30 00:03:22 +01:00
Nyall Dawson
9d4adc1c70 Remove some singletons by moving instances to QgsApplication
- QgsColorSchemeRegistry
- QgsDataItemProviderRegistry
- QgsGPSConnectionRegistry
- QgsMessageLog
- QgsPaintEffectRegistry
- QgsPluginLayerRegistry
- QgsRasterRendererRegistry
- QgsRendererRegistry
- QgsSvgCache
- QgsSymbolLayerRegistry
2016-12-28 16:59:03 +10:00
Denis Rouzaud
2ffe1a764b spelling fixes 2016-12-15 15:26:36 +01:00
nirvn
56c5534455 [symblogy] migrate heatmap renderer color ramp widget 2016-12-03 13:40:27 +07:00
Mathieu Pellerin
ae75e45d80 [symbology] migrate graduated renderer color ramp widget (#3815) 2016-11-30 16:47:23 +07:00
nirvn
deb18c40db color ramp button widget for gradiant fill and categorized renderer 2016-11-30 11:02:05 +07:00
nirvn
bc130be6cb [style] improve creation of default style db
Instead of copyign a pre-existing .db shipped with QGIS, create
a new .db and import an .xml file containing our default  symbols.

On the UX front, the main benefit is being able to ship with
pre-defined tags and favorite flags for the default symbols.

On the developer side, it means we get rid of the requirement
to maintain both an .xml and a binary .db in the source tree.
We also say aurevoir to the symbol_xml2db.py script and the
need to update the (obsolete) script every time we add a new
feature to QgsStyle.
2016-11-22 14:46:35 +07:00
nirvn
a958c8a798 [style] add createMemoryDB() to QgsStyle to create temporary db 2016-11-19 16:04:03 +07:00
nirvn
5f3ba72547 [style manager] sort displayed symbols, insure tags are added only once 2016-11-18 14:14:16 +07:00
nirvn
13a0e48a26 [style manager] improve UI
- create a dedicated set of buttons for addition of tags and smartgroups
to make those actions more visible as well as getting rid of th need to
select a tag/smartgroup to create those (turns out to be quite confusing
for newcomers)
- move UI elements around, regroup {add,remove,edit} symbol buttons to
harmonize with other parts of QGIS; the elements' placement feels much
more natural now
2016-11-18 10:15:40 +07:00
nirvn
a8a05ba751 [symbology] add padding value for symbol/coloramp preview 2016-11-17 11:43:53 +07:00
nirvn
5e487cfea4 [FEATURE] Style management re-work and upgrade
- A new favorite grouping system was added, which the symbols list
widget defaults to
- The selected tag / smartgroup in the symbols list widget now
persists when switching layers (and across sessions)
- The symbols list widget will update the tag / smartgroup combo
box when users add / rename / remove categories
- Users can now directly tag, as well as add to favorites, symbols
while saving those to the style database
- To streamline style management, groups have been removed and
fully replaced by tags
- Tags have been integrated into the import/export user interface
2016-11-16 14:12:19 +07:00
Nyall Dawson
1ef7ed53c9 Merge pull request #3703 from aaime/svg_params
Export parametric SVG, will fallback symbols for the systems that cannot understand them
2016-11-11 13:25:48 +10:00
Nyall Dawson
02ea2d7703 Fix typos 2016-11-08 09:05:47 +10:00
Andrea Aime
701d4440ac Export parametric SVG parameters, will fallback symbols for the system that cannot understand them 2016-11-05 11:48:31 +01:00
Nyall Dawson
47109d13b7 Flip some connects to new style 2016-11-01 11:10:40 +10:00
Nyall Dawson
4d5e7536d9 Flip QgsPalLayerSettings to use QgsTextRenderer classes 2016-10-24 12:02:00 +10:00
Nyall Dawson
44289084e9 Optimise passing of variables by ref/value 2016-10-24 10:36:23 +10:00
Nyall Dawson
a6148deb30 [FEATURE] Data defined symbol layer visibility
Adds a data defined override to control a symbol layer's
visibility. Allows users to disable drawing certain symbol layers
for matching features.
2016-10-18 13:22:22 +10:00
Nyall Dawson
b8c2e68fc5 [FEATURE] Allow symbol layers to be temporarily disabled
Adds a new checkbox at the bottom of each symbol layer's
properties which allows you to control whether the layer is
enabled or not.

Disabled layers are not drawn, but are saved and can be
enabled at a later stage.

This makes it easier to tweak symbol appearance without
having to totally delete a symbol layer.
2016-10-18 13:22:22 +10:00
Matthias Kuhn
8fa3127c66 Don't rely on RTTI to convert symbol layer to sip objects 2016-10-17 10:23:08 +02:00
Matthias Kuhn
722fdefe43 referencedColumns returns QSet<QString> instead of QStringList
The order of the elements is irrelevant and duplicate elements are unwanted. It
is therefore a perfect candidate for a set instead of a list. This prevents
filtering for duplicates manually be replacing some filer codes with (more
performant) builtin methods of QSet.
2016-10-05 14:33:38 +02:00
Nyall Dawson
ca7b504e5c Fix Travis warnings and missing docs/sip 2016-09-30 08:42:16 +10:00