59 Commits

Author SHA1 Message Date
Nyall Dawson
222f05edea Add API to overlay widgets over the map canvas
E.g.

  iface.mapCanvas().addOverlayWidget(w, Qt.Edge.LeftEdge)

will float the `w` widget over the left edge of the map canvas
2024-03-07 06:32:28 +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
Even Rouault
a68422b982 Various typo fixes
Including 3 public methods, which are deprecated by this commit and replaced by a typo-fixed version
2024-02-29 06:03:03 +10:00
Nyall Dawson
12dd3b293c [feature] Add layer tree filter for "Show Broken Layers Only"
When checked, only layers with broken sources will be shown in the
tree. This allows users to easily find broken layers in large complex
projects, where they may otherwise escape notice!
2024-02-27 10:15:26 +10:00
Even Rouault
c61231f67f
[WFS provider] Change feature paging enabled option to be tri-state (default, enabled, disabled), to allow a user to effectively override server capabilities 2024-02-19 20:09:14 +01:00
Even Rouault
f3ef66d073
Header files: remove all mentions of '\since QGIS 3.0' 2024-02-19 11:35:07 +01:00
Even Rouault
15ea5c46bc
Header files: remove all mentions of '\since QGIS 3.0' 2024-02-18 20:57:23 +01:00
Even Rouault
02caeb9db7
Header files: remove all mentions of '\since QGIS 2.' 2024-02-18 20:46:01 +01:00
Even Rouault
a5c8f01003
Header files: remove all mentions of '\since QGIS 1.' 2024-02-18 20:46:00 +01:00
Nyall Dawson
2357d80d25 Avoid sip property code for old api compatibility
This causes crashes on Qt6. Use Python monkey patching instead.
2024-02-17 05:38:14 +10:00
Nyall Dawson
926d6f90bd Support load/save sensor things connections 2024-02-15 12:39:11 +10:00
Nyall Dawson
0096246afe Sipify 2024-02-13 20:51:03 +10:00
Nyall Dawson
814e6db3b4 Don't map non-list of QVariantMaps to QMap<QString,QVariant>
The original workaround was only supposed to apply to QList/
QVector of QVariantMaps. By replacing them all in sip we
break mapping of signals defined in c++ which are emitted
by Python code.

Fixes exceptions after running processing algorithms in Qt6
builds.
2024-02-12 12:16:14 +10:00
Nyall Dawson
09dc6838a7 Upgrade another enum to get filtering working in processing toolbox 2024-02-10 17:25:22 +10:00
Nyall Dawson
ee53b9ae48 Port processing enums to enum class
A step towards a Qt6 compatible Processing framework
2024-02-10 17:25:22 +10:00
signedav
28706256be
Merge pull request #56189 from signedav/fix-apply-on
Fix double apply on update default values on volatile functions
2024-02-09 12:32:35 +01:00
jmkerloch
8e9267f584 feat(QgsLocatorWidget): define anchors for result container 2024-02-07 11:49:35 +10:00
Mathieu Pellerin
b6c7889f35
[attribute form] Insure that a field features multiple times in a feature form has its constraint properly reflected (#56163) 2024-02-06 20:27:38 +07:00
Stefanos Natsis
4dc4bff923
Don't open layer properties when toggling visibility (#56190) 2024-02-06 21:23:24 +10:00
Nyall Dawson
ac2f1179c8 More item data role enum to enum class conversions 2024-02-06 21:04:43 +10:00
signedav
3d28ce1b39 remove static function to return volatile function, since it's not needed anymore 2024-02-05 15:40:29 +01:00
Nyall Dawson
f2c74f377d Sipify 2024-01-31 17:16:18 +10:00
Nyall Dawson
078fd4f2ea Make IntFlag enum type opt-in, rather than opt-out
And make sipify handle this nicely. This means that all our non-flag
style enums correctly map across to IntFlag python enums on Qt 6,
fixing issues with negative enum values for these and providing
a better match for the original c++ enum.
2024-01-31 17:16:18 +10:00
Nyall Dawson
f1e3ba9e2d Use correct sip method
And use INDENT-OFF annotations to avoid astyle messing up
formatting of enum with inline macros
2024-01-31 13:48:49 +10:00
Nyall Dawson
23f3af4290 Use enum classes for QgsProperty property keys
Should fix usage on Qt 6 builds
2024-01-31 13:48:49 +10:00
Nyall Dawson
b85db241c7 Sipify 2024-01-30 19:10:43 +10:00
Nyall Dawson
26798b84f4 Promote QgsFeatureRequest enums to enum class, move to Qgis 2024-01-30 19:10:43 +10:00
Nyall Dawson
38cff47c9e Fix flags bool operator on qt6 2024-01-30 14:49:54 +10:00
Nyall Dawson
c1a47b2aa9 Sipify 2024-01-29 04:23:44 +10:00
Nyall Dawson
85b7a2c411 [sipify] Patch support for int based enum operations on non-enum class ints
sip6 converts all enums to python Enums, but ONLY creates
Enums with IntFlags types when the c++ type is an enum class : int.
Accordingly we need to patch back in all the operations which treat
enum values as ints, like |, &, bool, etc.

The long term solution here is to move all our c++ enums to enum
class, but that's not always straightforward and can break API
for plugins if it involves the signature of virtual methods.
2024-01-29 04:23:44 +10:00
jmkerloch
0c0ffc818f feat(QgsLocatorWidget): add setPlaceholderText for lineedit 2024-01-26 08:42:01 +01:00
signedav
0fbdbc1255
Merge pull request #55633 from signedav/defaultsfix
Fix apply default values on update behavior
2024-01-25 15:02:19 +01:00
signedav
70ba909484 Add version information 2024-01-25 10:52:45 +01:00
Mathieu Pellerin
51648deda1 Fix documentation of QgsDateEdit and QgsTimeEdit classes (fixes #55758) 2024-01-25 13:41:37 +10:00
signedav
6219271c05 Static function for volatile functions like rand, randf, now and uuid.
As well fixed, that widgets are considered that have no dependencies at all when they do have volantile functions.
2024-01-24 16:17:33 +01:00
Nyall Dawson
4654ad3db5 Sipify 2024-01-23 08:32:38 +01:00
Nyall Dawson
e1965014f0 Use .exec() in example code 2024-01-22 05:46:15 +10:00
Nyall Dawson
b5a706ff13 Fix seealso links 2024-01-20 12:11:30 +10:00
Nyall Dawson
cf0e101664 Remove broken see also links 2024-01-20 12:11:30 +10:00
Nyall Dawson
9f877df4d6 Use proper model for recent CRS in QgsProjectionSelectionTreeWidget
This ensures that we correctly apply filters to recent projections
too, eg so that a widget showing only vertical crs will ONLY show
recent VERTICAL crs, not every recent crs.
2024-01-20 12:11:30 +10:00
uclaros
d8996ae33b Add 3D map canvas handling methods to QgisInterface 2024-01-19 06:51:53 -08:00
uclaros
7656c7585a fix sip 2024-01-19 02:23:10 -08:00
Nyall Dawson
585123a883 Add dox 2024-01-18 09:35:09 +10:00
Nyall Dawson
3e05a423d5 Refactor QgsProjectionSelectionWidget
Cleanup QgsProjectionSelectionWidget to use proper models to
drive the combo box. This removes a bunch of very fragile
logic regarding showing and hiding entries on demand, as it
allows us to move all the filtering logic to a single place
in a QSortFilterProxyModel subclass.

This has a few side benefits:
- The combos now dynamically respond to changes like recent
CRS being used in other places in QGIS
- The widget correctly respects horizontal/vertical crs filters
for all entries, including recent crs
2024-01-18 09:35:09 +10:00
Nyall Dawson
e53e078bca Add proxy model for recent crs model 2024-01-17 10:16:32 +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
ddcc42ca85 Add filter options for all crs selection widgets
This is a partial implementation -- we also should be filtering
the lists of recent crs to matching ones
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
Julien Cabieces
3e27ac5985 [PyQt6] Build PyQt6 2024-01-16 12:18:11 +10:00