295 Commits

Author SHA1 Message Date
Germán Carrillo
cb8d1aacaa Refactor of GPS tools exposed via iface:
Introduce abstract QgsGpsToolsInterface and its subclass QgsAppGpsTools, which can be accessed via iface.gpsTools()
Deprecate existent GPS method in iface and move it to GPS tools.
2025-05-06 13:21:26 -05:00
Jan Caha
8850dd22bf add file 2025-05-01 14:53:23 +10:00
Nyall Dawson
c2ee323793 [feature] Add labeling setting to prevent duplicate labels within xx mm
Improves the appearance of labels in situations like road networks,
where things like dual carriageways, service roads, etc can result
in many labels of the exact same text appearing close to each other.

When active, removes any labels with the exact same text (case
sensitive!) which are closer then this minimum distance.

The setting applies across layers, so duplicate text from ANY
layer will be considered.
2025-04-22 11:45:25 +10:00
Nyall Dawson
9eb1ab27be Create common widget for scale method selection 2025-03-30 18:03:30 +10:00
Nyall Dawson
bb4827e9f9
Create a class for managing stored database queries
This class is designed to be compatible with DB Manager's storage
of queries in projects, but extended to allow storage within
the local profile too.
2025-02-26 10:54:25 +10:00
Matthias Kuhn
e76a5870fc Fix sip_include 2024-12-30 10:52:45 +01:00
Julien Cabieces
0a42c57a4b build(QSci): fix build when python QSci is missing 2024-12-17 09:05:46 +01:00
Nyall Dawson
40d41ddee3 Add GUI to edit tab stop distances 2024-11-10 09:52:14 +11:00
signedav
f022253095 expose model and delegate to the api 2024-09-26 15:28:18 +02:00
Nyall Dawson
3ec7665fec Add gui for configuring project advanced labeling rules 2024-09-11 02:06:41 +10:00
Juergen E. Fischer
f6799dba43 fix sip_check failure 2024-09-04 09:04:50 +10:00
Juergen E. Fischer
50c03ccf02 apply osgeo4w patches 2024-09-04 09:04:50 +10:00
Nyall Dawson
1128c909ee Move all gui map tools files into maptools/ subfolder
Previously only a few were in this subfolder, which made it
confusing to find the others...
2024-08-20 16:38:45 +02:00
Nyall Dawson
627263ec0f Implement widget for symbol buffer settings 2024-08-02 05:09:03 +10:00
Mathieu Pellerin
6994d1c680
[advanced digitizing] Add circles intersection digitizing tool (#57648) 2024-07-31 17:05:58 +07:00
Nyall Dawson
3f767337c3 Create QgsCalloutPanelWidget
This is a standalone, reusable widget for configuring callouts.
Designed for use outside of the standard labeling callout contexts.
2024-07-22 07:14:23 +10:00
Alexander Bruy
f0db0f247b address review 2024-07-04 07:30:51 +10:00
Alexander Bruy
5566473a1d add log for tracking Processing favorite algorithms 2024-07-04 07:30:51 +10:00
Nyall Dawson
d4f9914288 Create QgsGdalCredentialOptionsWidget
A resuable widget for configuration GDAL credential options
for vsi file systems
2024-06-25 06:07:58 +10:00
Nyall Dawson
21935668ba Move logic for connection item deletion to new class
Adds a new "QgsDataItemGuiProviderUtils" class, with a generic
function for handling deletion of browser connection items.

Replace all the duplicate connection deletion logic from the
different browser connection providers with calls to the
generic function.

In addition to removing a lot of duplicate code, the new
generic function correctly handles deletion of multiple
selected connections (previously, only the first connection
would actually be removed).

Fixes #26276
2024-06-19 16:59:00 +10:00
Nyall Dawson
e59c0df8a8 Port decorated scrollbar widget class from QtCreator
Allows decorating scrollbars with colored highlight bars
2024-05-10 06:10:59 +10:00
Nyall Dawson
1e8c00354f Move QgsCodeEditorWidget to a new file 2024-05-08 11:56:35 +10:00
Nyall Dawson
9b780c1d36 Create QgsElevationControllerWidget
A widget which allows configuring a slice of a 2d map canvas to show
2024-03-13 13:18:20 +10:00
Nyall Dawson
07470d4bd9 [api] Create QgsOverlayWidgetLayout
This custom QLayout class allows for overlaying child widgets on top
of their parent widget.

It can be used like this:

   layout = QgsOverlayWidgetLayout()
   parent_widget.setLayout(layout)

   layout.setContentsMargins(20,20,20,20)
   layout.addWidget(QGroupBox(), Qt.Edge.LeftEdge)
   layout.addWidget(QLabel('My label on top of a parent!'), Qt.Edge.TopEdge)
   layout.addWidget(QGroupBox(), Qt.Edge.TopEdge)
2024-03-07 06:32:28 +10:00
Nyall Dawson
7fcfd2b391 Create a basic model for recent coordinate reference systems 2024-01-17 10:16:32 +10:00
Nyall Dawson
fb1d3cc4bb Move all projection related gui files to src/gui/proj 2024-01-17 10:16:32 +10:00
Nyall Dawson
2262aee293 Add a simple widget for setting percentage values via spin and slider 2024-01-16 13:20:47 +10:00
Nyall Dawson
fe2df1441f Move playback controller buttons to reusable widget
Create QgsPlaybackControllerWidget as reusable
play/pause/rewind/next/... button bar
2023-11-30 13:54:02 +10:00
Nyall Dawson
c6a4a71bd9 Implement GUI infrastructure for 2d tiled scene renderers 2023-08-07 18:43:10 +10:00
Nyall Dawson
731123a425 Create a QAbstractItemModel and proxy model for displaying tree
view of coordinate reference systems
2023-07-19 10:47:47 +10:00
Nyall Dawson
2f7cf5dcdc Move to inheritance instead, using QgsLayerPropertiesDialog base class 2023-07-05 12:37:46 +10:00
Nyall Dawson
f86e46ed7a Add optional WITH_QTGAMEPAD cmake switch, and create 2d/3d gamepad
map controller classes which expose QGamepad functionality

Especially handy because the underlying QGamepad classes
are not accessible to Python
2023-06-27 14:49:20 +10:00
Nyall Dawson
eca6b7a409 Add framework for handling non-keyboard/mouse map controllers
This is the base API interface classes for creation of custom
2d or 3d map controllers, and registering them in a common
QgsInputControllerManager singleton class.
2023-06-27 14:49:20 +10:00
Mathieu Pellerin
37ebf9c5e2
[gui][editor widgets] Show value relation description when hovering the combobox (#53237) 2023-05-26 17:12:14 +02:00
jakimowb
4e49c9f17c added sip files 2023-05-12 13:09:14 +10:00
Denis Rouzaud
30a641111d
Merge pull request #52847 from 3nids/settings-treewidget
Settings editors
2023-05-02 21:31:35 +02:00
Nyall Dawson
8282b6631e Add QgsCodeEditorShell code editor subclass for Bash or Batch scripts 2023-04-24 15:26:50 +10:00
Nyall Dawson
45d891870a Port history dialog to c++ 2023-04-24 13:09:46 +10:00
Denis Rouzaud
9f3ac79b8b sipify + CMakeLists 2023-04-23 07:19:47 +02:00
Nyall Dawson
538cf4c61b Add QgsHistoryWidgetContext for future api flexibility 2023-04-22 20:55:59 +10:00
Nyall Dawson
34ce4d76f5 Create QgsHistoryWidget resuable widget for showing history entries 2023-04-22 20:55:59 +10:00
Nyall Dawson
a71671ce3e Create a model for QgsHistoryEntries
A dynamic tree item model showing the entries in date groupings
2023-04-22 20:55:59 +10:00
Nyall Dawson
dd25f39479 Create QgsHistoryEntryNode class
Used for representing information about of QgsHistoryEntry
in a hierarchical tree structure
2023-04-22 20:55:59 +10:00
Nyall Dawson
e84ce19706 Move QgsHistoryEntry to separate file 2023-04-22 20:55:59 +10:00
Mathieu Pellerin
95c57b134c [ui][sensors] Sensors GUI registry implementation 2023-03-30 10:39:43 +07:00
Nyall Dawson
1822998bda [feature][console] Allow Python console to be toggled between a dock
widget and a full main window dialog

Adds the same toggle button as we use for 3d map canvases and attribute
tables to make it super-easy to switch the Python console to a full
main window.
2023-03-30 12:40:06 +10:00
Nyall Dawson
18fd0bbbbf Create QgsGeometryWidget
A new widget which stores a referenced geometry value, and provides
handy methods for copying the value as WKT or GeoJSON, pasting
a WKT/GeoJSON value from the clipboard, or clearing the geometry
2023-02-21 06:01:44 +10:00
Nyall Dawson
04851d5b75 Sip updates 2023-02-06 09:45:26 +01:00
Mathieu Pellerin
7b102b9703 [gui] Brand new QgsMediaWidget to for playing audio or video files 2023-01-27 08:40:16 +10:00
Vincent Cloarec
3ca858af66
Global map terrain shading (#51535)
* QgsShadingRendering and pipe to render global elevation map

* gdal utils with datatype and resampling method enum

* raster layer elevation map

* optimize raster elevation map with rotation

* handle  no data value in the map elevation raster pipe

* mesh layer and some little fixes

* fix nodata and hillshading z factor

* render shading on layout

* activate/deactivate the shading from ui

* shading only for layer that have elevation

* apply Z scale and offset of layer elevation properties

* ui settings

* allow elevation from point cloud even edl is deactivate for pointcloud

* fix ui

* sipify

* Shading renderer widget in styling panel

* icone for shading renderer settings widget

* two methods to combin elevation

* rewording

* remove check box at the bottom of canvas

* use band of elevation properties

* fix styling pannel

* render shading in layout

* keep EDL point cloud shading individually

* add shading rendering tests

* add missing code for local EDL for point cloud

* shading inactive by default

* rework raster layer resampling

* improve nodata in elevation map

* don't allow elevation map with != size to be combined

* remove EDL from point cloud

* renaming

* sipify

* colorize tests

* renaming

* RGB32

* renaming leftover

* some ui fixes

* fix border for EDL alg

* fix EDL closed next to nodata value

* fix first shading when activated

* renaming and typo

* fixes for doc, doxygen, indentation and spelling

* remove leftover member

* fix clang-tidy

* fix edl tests

* fix dll export

* minor fixes

* adapt images of tests

* fix narrowing

* fix indentation

* sipify

* WIP

* minor ui changes
2023-01-26 15:02:16 +01:00