38 Commits

Author SHA1 Message Date
Nyall Dawson
3f6b490218 Sipify 2025-04-02 11:11:10 +10:00
Nyall Dawson
4a10066b69 Fix grammar errors in class docstrings 2025-04-01 09:44:00 +10:00
Nyall Dawson
afd2e4f42d Fix doxygen class briefs which aren't full sentences 2025-04-01 09:44:00 +10:00
Nyall Dawson
b81e0d83f6 Fix non-compliant class brief documentation 2025-03-30 20:48:07 +10:00
Nyall Dawson
b39f760cbc
Correctly handle multiline SIP_OUT param documentation 2024-09-10 11:11:25 +10:00
Nyall Dawson
d23c3c52b1 Remove unnecessary method 2024-08-29 13:27:23 +10:00
Nyall Dawson
16e05a207b [feature] Add 'Custom Expression' numeric format
This numeric format allows users to craft a custom QGIS expression
to format numbers. The expression can use the @value variable
to retrieve the value to be formatted, and then use any standard
QGIS expression function to format this as desired.

It can be used anywhere QgsNumericFormat is accepted, eg layout
scalebars, elevation plots, layout tables, and color ramp
legends

Sponsored by the Swiss QGIS User Group
2024-08-29 13:27:23 +10:00
Nyall Dawson
3a578d6712 Header update 2024-08-13 20:28:55 +10:00
Nyall Dawson
28943f9c1b Remove a bunch of useless default constructor doxygen 2024-07-23 02:08:28 +10:00
Julien Cabieces
29f4b0ed6f remove exclude skipped-base-class for numeric format classes 2022-05-10 08:27:47 +10:00
Nyall Dawson
ee5cbe93a9 Add a numeric format for geographic coordinates 2022-04-21 19:05:38 +10:00
Juergen E. Fischer
c6008b7ee1 fix MSVC build: reverts fee62e4, dff05dd and e3a77b9484c effectivly
reverting 3fb0f66 (followup #45348)

Using --no-public-is-protected (default on Windows) also works on Linux
and fixes #45331 too
2021-10-21 23:03:48 +02:00
nirvn
ef84e48a09 Run sipify_all.sh 2021-10-12 16:34:05 +10:00
Denis Rouzaud
ec16736306 run sipify 2021-10-12 16:34:05 +10:00
Denis Rouzaud
ba8a445850 run sipify 2021-03-22 21:13:52 +01:00
Nyall Dawson
50b9beaad6 [sipify] Catch more class references and insert :py:class: annotations 2021-01-31 05:41:22 +10:00
Nyall Dawson
4ee9feb56b Sipify 2020-10-09 11:20:09 +10:00
Nyall Dawson
81a9db9f57 [sipify] Fix creation of cross references 2020-06-15 13:43:58 +10:00
Nyall Dawson
78d445ee65 [FEATURE] Add numeric formatter "fraction" style
This style represents decimal numbers as vulgar fractions, e.g.
"3/4" instead of 0.75.

Options include using Unicode superscript and subscript characters
for nicer typography, e.g. ¹⁷/₂₃ (this is the default mode, disabling
this option uses the "17/23" format). An option also exists for
using dedicated unicode characters for specific fractions (where
a unicode character exists), e.g. ½ or ¾

Ultimately this allows for creation of scalebars with fractional
representations of distances, e.g. 0 ----- ½ ----- 1 km
(instead of 0 ------ 0.5 ------ 1km)

Fixes #21289

Sponsored by SLYR
2020-03-23 14:24:37 +10:00
Nyall Dawson
31cdf131b3 Add equality operator for QgsNumericFormat 2020-01-14 19:08:20 +13:00
Nyall Dawson
1cd2e16fb1 Also expose setting for optionally overridding the decimal character 2020-01-09 19:51:50 +13:00
Nyall Dawson
1e82bbc417 Fix seealso link 2020-01-09 19:51:50 +13:00
Nyall Dawson
d3afd6d936 Allow users to override the default locale thousand separator within
specific numeric format objects

E.g. this allows users to set a specific thousand grouping character
to use for a particular scalebar number labels. Useful in the case of
creating maps for users outside of the current locale. Default is
always to use the QGIS locale character (this is an advanced setting!)
2020-01-09 19:51:50 +13:00
Nyall Dawson
ad6684bdb4 Add numeric formatting option to round to number of significant figures 2020-01-09 19:51:50 +13:00
Nyall Dawson
c0ad4303d2 [FEATURE] Add setting for format to show angular bearings to projects
and profile options

The Settings - Options - Map Tools tab contains a new setting for
controlling the default format to use for displaying angular bearings for
newly created projects. Whenever a new project is created, it will
inherit this default settings.

The Project Properties dialog also has a new setting for the project-specific
bearing format.

The intention is that whenever angular bearings are shown in QGIS,
they will be formatted using the current project's bearing format
settings.
2020-01-09 17:10:30 +13:00
Nyall Dawson
1f7140bfc5 New class QgsLocalDefaultSettings
This class contains a variety of default setting values. These values are local, profile
specific settings which may have been configured or tweaked by the user (as opposed to
global, fixed default settings).

The values encapsulated here should be inherited when creating new objects such as new
QGIS projects.

Typically, the QgsSettings backend is used to store and retrieve these local settings.

The intention here is to provide stable, structured and easily discoverable
methods for setting and retrieve these settings, rather than forcing raw QSetting
handling.
2020-01-09 17:10:30 +13:00
Nyall Dawson
664ba234da Also respect other locale specific characters 2020-01-08 16:20:43 +13:00
Nyall Dawson
545edcf148 Dox++ 2020-01-08 16:20:43 +13:00
Nyall Dawson
124df2d78d Add display of sample values to numeric format selector widget 2020-01-08 16:20:43 +13:00
Nyall Dawson
6b9cafb71f Nicer sorting of numeric format choices 2020-01-08 16:20:43 +13:00
Nyall Dawson
591e1a28e0 Start on GUI work 2020-01-08 16:20:43 +13:00
Nyall Dawson
90184a59eb Add methods to store/recreate formats from XML elements, and tweak
serialization API
2020-01-08 16:20:43 +13:00
Nyall Dawson
ec3763521a Avoid ambiguous test data, force minimum of 1 decimal place for scientific notation format to avoid undefined results 2020-01-08 16:20:43 +13:00
Nyall Dawson
a72d8faef5 Fix dox 2020-01-08 16:20:43 +13:00
Nyall Dawson
7affde6624 Add numeric formatter for currency values 2020-01-08 16:20:43 +13:00
Nyall Dawson
d445487c0d Add numeric formatter for scientific notation 2020-01-08 16:20:43 +13:00
Nyall Dawson
8bcba4780e Add percentage numeric formatter 2020-01-08 16:20:43 +13:00
Nyall Dawson
d0b5a01729 [api] Add registry and interface for QgsNumericFormats
QgsNumericFormat subclasses provide a means to format a numeric value
as a string, applying various formatting options. E.g. a default
string to value formatter (included here) includes settings for
controlling the number of decimal places, whether a thousands separator
should be shown, whether a leading + sign should be shown, whether
trailing zeros should be shown.

This PR also includes a formatter for bearings, allowing various
formats of numeric bearings to be applied (e.g. control over decimal
places, etc + control over whether direction E/W suffixes are shown,
or whether values should be limited to either the +/- 180 range or
0-360 degree range)

When formatting values, a QgsNumericFormatContext class is used
to provide context. Currently, this includes the thousands and
decimal separators to apply when formatting (which are taken by
default from the user's locale).

A registry of formatters is included to allow easy addition of
other formats in future (e.g. currencies, percentages, scientific
notation, etc...) and to allow plugin based formats.

The intention is to follow this up with gui configuration widgets
for the formats, and then expose them in various places through
the qgis ui (e.g. in the range editor widget for fields, in scalebar
numbers, as an option for formatting numeric labels, etc)
2020-01-08 16:20:43 +13:00