3227 Commits

Author SHA1 Message Date
Martin Dobias
74687cdabd
Merge pull request #48179 from nyalldawson/profile_feature
Add a tool to profile dock to generate an elevation profile for an existing line feature
2022-04-12 04:22:40 -07:00
Nyall Dawson
9001d8eccb Show a marker on the canvas corresponding to the hovered profile plot point 2022-04-12 02:29:11 -07:00
Nyall Dawson
4c31c81f13 Show a crosshairs over the profile plot as the mouse is moved around 2022-04-12 02:29:11 -07:00
Nyall Dawson
a4585e355e Move duplicated code for finding features from all layers on canvas to a common static function 2022-04-12 11:07:34 +10:00
Nyall Dawson
4eede35d55 Allow any symbol to be an animated symbol
Users can now indicate that a symbol should be treated as a animated
symbol, through the new "Animation Settings" option in the symbol
widget's Advanced menu.

This settings panel allows users to enable animation for the symbol
and set a specific frame rate at which the symbol should be redrawn.
When enabled, the @symbol_frame variable can be used in any
symbol data defined property in order to animate that property.

For instance, setting the symbol's rotation to the data defined
expression

    @symbol_frame % 360

will cause the symbol to rotate over time. (with rotation speed
dictated by the symbol's refresh rate)
2022-04-09 18:14:44 +10:00
Nyall Dawson
19c2c3d3e2 Add a dedicated x-axis zoom tool for elevation profile widget 2022-04-07 19:22:19 +10:00
Nyall Dawson
06087eebee Fix casting 2022-04-07 19:22:19 +10:00
Nyall Dawson
2ee10c1327 Rename QgsPlotToolPan file 2022-04-07 19:22:19 +10:00
Nyall Dawson
b779bfc44a Spelling 2022-04-07 19:22:19 +10:00
Nyall Dawson
d2e5186d56 Add action to export profile graph to PDF 2022-04-07 19:22:19 +10:00
Nyall Dawson
62450ec373 Move files to elevation directory 2022-04-07 19:22:19 +10:00
Nyall Dawson
60e8f87f93 Identation and sip 2022-04-07 19:22:19 +10:00
Nyall Dawson
cf5c82c400 Implement zooming actions and tools for plots 2022-04-07 19:22:19 +10:00
Nyall Dawson
6480b974d7 Implement plot panning and zoom
With all the usual interaction, e.g.

- middle mouse button + drag = pan
- hold space + drag = pan
- wheel = zoom
- ctrl + wheel = smooth zoom
2022-04-07 19:22:19 +10:00
Nyall Dawson
2653f5146f Implement plot panning by drag 2022-04-07 19:22:19 +10:00
Nyall Dawson
882cf7e58d Avoid initially clipped plot render 2022-04-07 19:22:19 +10:00
Nyall Dawson
52509be814 Condense excessive class heirarchy, fix unit test 2022-04-07 19:22:19 +10:00
Nyall Dawson
4c4293d9e5 Fix progress bar 2022-04-07 19:22:19 +10:00
Nyall Dawson
3efdad00ff Cleanup canvas destruction and job handling 2022-04-07 19:22:19 +10:00
Nyall Dawson
f886a4b947 Try to fix sip build 2022-04-07 19:22:19 +10:00
Nyall Dawson
0d88a6f834 Documentation 2022-04-07 19:22:19 +10:00
Nyall Dawson
915f5d30fc Show rubber band for profile curve 2022-04-07 19:22:19 +10:00
Nyall Dawson
9970782045 Use actual ranges of plot when rendering, use correct raster/mesh profile symbols 2022-04-07 19:22:19 +10:00
Nyall Dawson
6d4c2803f6 Start on profile renderer class 2022-04-07 19:22:19 +10:00
Nyall Dawson
9a6aad8de5 Stupid solution to sip build errors 2022-04-07 19:22:19 +10:00
Nyall Dawson
e98a52a017 Reintroduce sip casting 2022-04-07 19:22:19 +10:00
Nyall Dawson
141f7bf9f2 Plot wip 2022-04-07 19:22:19 +10:00
Nyall Dawson
78c8a670e3 [feature] New marker symbol type for "Animated Marker"
This new marker symbol type allows points to be rendered using
an animated marker, sourced from an animated gif, webp or mng
animation.

Options are present for marker file, size, angle and frame rate.

There are two ways in which animated symbols are handled:

1. If the map itself is considered an animation, then the frame
rendered for the animated marker is based on the map animation
frame and frame rate. This is the case when the temporal
controller is set to the Animation mode. In this case the
animated markers will follow the temporal controller animation,
e.g. pausing when the animation is paused, advancing frames
with the animation, etc. The map will also be redrawn using
the frame rate set for the temporal animation.

This mode also applies when exporting an animation from the
temporal controller.

It's also the mode used when a plugin specifically sets the
frame rate and current frame QgsMapSettings properties, so
e.g. @timlinux's QGIS Animation Workbench plugin will dictate
the marker animation frame to render.

2. If the map is NOT considered an animation (i.e. it's just
a plain old normal QGIS project), then the frame to render
will be based on the current timestamp alone.

Markers will be animated when their corresponding layer is set
to a temporal mode, and a temporal animation is playing.
2022-04-04 11:43:47 +10:00
Nyall Dawson
2b1318edff Add QgsAnimatedImageSourceLineEdit widget, for selection of animated
image files

Allows selection of animated images from formats supported by
QMovie, e.g. animated gif, webp and mng animations.
2022-04-04 11:43:47 +10:00
Nyall Dawson
f126339a82 Fix round trip of html content edit in the model designer help dialog
And use QgsRichTextEditor widget to give a nice editing experience
for the help components which support html content.
2022-03-30 15:41:53 +10:00
Germán Carrillo
603c5f645c Fix typo in qgspanelwidgetstack.h 2022-03-24 13:25:32 +10:00
Nyall Dawson
f9fe7e4311 Move method to a common place 2022-03-22 11:18:54 +10:00
Loïc Bartoletti
94a3744521
Merge pull request #46647 from Koyaani/advanced_snapping
[Feature] New soft constraints in the advanced digitizing dock
2022-03-18 10:11:49 +01:00
uclaros
94b13ba049 address review 2022-03-18 10:40:36 +10:00
uclaros
32672cf499 cleanup 2022-03-18 10:40:36 +10:00
uclaros
ca5fa59a92 remove unused method, add docstring 2022-03-18 10:40:36 +10:00
uclaros
280b7cc00c fail on missing attributes, remove unused functions, sip 2022-03-18 10:40:36 +10:00
Ismail Sunni
b665d0a368
Add copy to clipboard for preview expression. 2022-03-16 09:07:44 +10:00
Nyall Dawson
d660d6f861 Spelling 2022-03-15 13:16:25 +10:00
Nyall Dawson
b24ee8788b [feature] Support shift+wheel scrolling in attribute table to switch
to a horizontal scrolling action instead of vertical

This matches the same behaviour exposed by LibreOffice, and provides
a convenient way to quickly horizontally scroll tables when a mouse
doesn't have a dedicated horizontal scroll wheel.

Sponsored by the City of Canning
2022-03-15 13:16:25 +10:00
Nyall Dawson
b50232a5af Add QgsTableView subclass of QTableView for adding QGIS specific
tweaks on top of the base class
2022-03-15 13:16:25 +10:00
Nyall Dawson
092279e90d [feature] Run batch processing steps in tasks
Instead of forcing all steps in the batch processing dialog to execute
in the main thread, we now run each step as a separate task whenever
possible. This keeps the UI nice and responsive, and permits
responsive cancelation and progress reporting.

Individual steps are still run sequentially, not in parallel (yet!)
2022-03-15 11:44:08 +10:00
Denis Rouzaud
761a20cac6 manual monkeypatching core->gui 2022-03-11 07:47:46 +01:00
Denis Rouzaud
f32ecd4730 move QgsMapToolCapture::CaptureTechnique enum to Qgis 2022-03-11 07:47:46 +01:00
Antoine
2dc440f804 move enums to qgis.h 2022-03-10 13:37:19 +01:00
Antoine
556df9d4f6 3.24 to 3.26 2022-03-10 09:11:39 +01:00
Antoine
26125ba8b2 fix enable/disable of new constraints 2022-03-10 09:11:39 +01:00
Antoine
1b6294b701 add new constraints 2022-03-10 09:11:38 +01:00
Antoine
aa88d39f89 AdditionalConstraint to BetweenLineConstraint 2022-03-10 09:11:38 +01:00
Nyall Dawson
d62d0b82e3 Port model help editor dialog to c++ 2022-02-28 17:33:49 +10:00