diff --git a/python/PyQt6/core/auto_additions/qgis.py b/python/PyQt6/core/auto_additions/qgis.py index d5fb401c3f34..66ddbb04bb6c 100644 --- a/python/PyQt6/core/auto_additions/qgis.py +++ b/python/PyQt6/core/auto_additions/qgis.py @@ -4584,6 +4584,62 @@ Qgis.LayoutUnitType.__doc__ = "Types of layout units\n\n.. note::\n\n Prior to QGIS 3.30 this was available as :py:class:`QgsUnitTypes`.LayoutUnitType.\n\n.. versionadded:: 3.30\n\n" + '* ``LayoutPaperUnits``: ' + Qgis.LayoutUnitType.PaperUnits.__doc__ + '\n' + '* ``LayoutScreenUnits``: ' + Qgis.LayoutUnitType.ScreenUnits.__doc__ # -- Qgis.LayoutUnitType.baseClass = Qgis +QgsScaleBarSettings.Alignment = Qgis.ScaleBarAlignment +# monkey patching scoped based enum +QgsScaleBarSettings.AlignLeft = Qgis.ScaleBarAlignment.Left +QgsScaleBarSettings.Alignment.AlignLeft = Qgis.ScaleBarAlignment.Left +QgsScaleBarSettings.AlignLeft.is_monkey_patched = True +QgsScaleBarSettings.AlignLeft.__doc__ = "Left aligned" +QgsScaleBarSettings.AlignMiddle = Qgis.ScaleBarAlignment.Middle +QgsScaleBarSettings.Alignment.AlignMiddle = Qgis.ScaleBarAlignment.Middle +QgsScaleBarSettings.AlignMiddle.is_monkey_patched = True +QgsScaleBarSettings.AlignMiddle.__doc__ = "Center aligned" +QgsScaleBarSettings.AlignRight = Qgis.ScaleBarAlignment.Right +QgsScaleBarSettings.Alignment.AlignRight = Qgis.ScaleBarAlignment.Right +QgsScaleBarSettings.AlignRight.is_monkey_patched = True +QgsScaleBarSettings.AlignRight.__doc__ = "Right aligned" +Qgis.ScaleBarAlignment.__doc__ = "Scalebar alignment.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsScaleBarSettings`.Alignment.\n\n.. versionadded:: 3.40\n\n" + '* ``AlignLeft``: ' + Qgis.ScaleBarAlignment.Left.__doc__ + '\n' + '* ``AlignMiddle``: ' + Qgis.ScaleBarAlignment.Middle.__doc__ + '\n' + '* ``AlignRight``: ' + Qgis.ScaleBarAlignment.Right.__doc__ +# -- +Qgis.ScaleBarAlignment.baseClass = Qgis +QgsScaleBarSettings.SegmentSizeMode = Qgis.ScaleBarSegmentSizeMode +# monkey patching scoped based enum +QgsScaleBarSettings.SegmentSizeFixed = Qgis.ScaleBarSegmentSizeMode.Fixed +QgsScaleBarSettings.SegmentSizeMode.SegmentSizeFixed = Qgis.ScaleBarSegmentSizeMode.Fixed +QgsScaleBarSettings.SegmentSizeFixed.is_monkey_patched = True +QgsScaleBarSettings.SegmentSizeFixed.__doc__ = "Scale bar segment size is fixed to a map unit" +QgsScaleBarSettings.SegmentSizeFitWidth = Qgis.ScaleBarSegmentSizeMode.FitWidth +QgsScaleBarSettings.SegmentSizeMode.SegmentSizeFitWidth = Qgis.ScaleBarSegmentSizeMode.FitWidth +QgsScaleBarSettings.SegmentSizeFitWidth.is_monkey_patched = True +QgsScaleBarSettings.SegmentSizeFitWidth.__doc__ = "Scale bar segment size is calculated to fit a size range" +Qgis.ScaleBarSegmentSizeMode.__doc__ = "Modes for setting size for scale bar segments.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsScaleBarSettings`.SegmentSizeMode.\n\n.. versionadded:: 3.40\n\n" + '* ``SegmentSizeFixed``: ' + Qgis.ScaleBarSegmentSizeMode.Fixed.__doc__ + '\n' + '* ``SegmentSizeFitWidth``: ' + Qgis.ScaleBarSegmentSizeMode.FitWidth.__doc__ +# -- +Qgis.ScaleBarSegmentSizeMode.baseClass = Qgis +QgsScaleBarSettings.LabelVerticalPlacement = Qgis.ScaleBarDistanceLabelVerticalPlacement +# monkey patching scoped based enum +QgsScaleBarSettings.LabelAboveSegment = Qgis.ScaleBarDistanceLabelVerticalPlacement.AboveSegment +QgsScaleBarSettings.LabelVerticalPlacement.LabelAboveSegment = Qgis.ScaleBarDistanceLabelVerticalPlacement.AboveSegment +QgsScaleBarSettings.LabelAboveSegment.is_monkey_patched = True +QgsScaleBarSettings.LabelAboveSegment.__doc__ = "Labels are drawn above the scalebar" +QgsScaleBarSettings.LabelBelowSegment = Qgis.ScaleBarDistanceLabelVerticalPlacement.BelowSegment +QgsScaleBarSettings.LabelVerticalPlacement.LabelBelowSegment = Qgis.ScaleBarDistanceLabelVerticalPlacement.BelowSegment +QgsScaleBarSettings.LabelBelowSegment.is_monkey_patched = True +QgsScaleBarSettings.LabelBelowSegment.__doc__ = "Labels are drawn below the scalebar" +Qgis.ScaleBarDistanceLabelVerticalPlacement.__doc__ = "Scale bar distance label vertical placement.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsScaleBarSettings`.LabelVerticalPlacement.\n\n.. versionadded:: 3.40\n\n" + '* ``LabelAboveSegment``: ' + Qgis.ScaleBarDistanceLabelVerticalPlacement.AboveSegment.__doc__ + '\n' + '* ``LabelBelowSegment``: ' + Qgis.ScaleBarDistanceLabelVerticalPlacement.BelowSegment.__doc__ +# -- +Qgis.ScaleBarDistanceLabelVerticalPlacement.baseClass = Qgis +QgsScaleBarSettings.LabelHorizontalPlacement = Qgis.ScaleBarDistanceLabelHorizontalPlacement +# monkey patching scoped based enum +QgsScaleBarSettings.LabelCenteredEdge = Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredEdge +QgsScaleBarSettings.LabelHorizontalPlacement.LabelCenteredEdge = Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredEdge +QgsScaleBarSettings.LabelCenteredEdge.is_monkey_patched = True +QgsScaleBarSettings.LabelCenteredEdge.__doc__ = "Labels are drawn centered relative to segment's edge" +QgsScaleBarSettings.LabelCenteredSegment = Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredSegment +QgsScaleBarSettings.LabelHorizontalPlacement.LabelCenteredSegment = Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredSegment +QgsScaleBarSettings.LabelCenteredSegment.is_monkey_patched = True +QgsScaleBarSettings.LabelCenteredSegment.__doc__ = "Labels are drawn centered relative to segment" +Qgis.ScaleBarDistanceLabelHorizontalPlacement.__doc__ = "Scale bar distance label horizontal placement.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsScaleBarSettings`.LabelHorizontalPlacement.\n\n.. versionadded:: 3.40\n\n" + '* ``LabelCenteredEdge``: ' + Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredEdge.__doc__ + '\n' + '* ``LabelCenteredSegment``: ' + Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredSegment.__doc__ +# -- +Qgis.ScaleBarDistanceLabelHorizontalPlacement.baseClass = Qgis # monkey patching scoped based enum Qgis.InputControllerType.Map2D.__doc__ = "2D map controller" Qgis.InputControllerType.Map3D.__doc__ = "3D map controller" diff --git a/python/PyQt6/core/auto_additions/qgsscalebarsettings.py b/python/PyQt6/core/auto_additions/qgsscalebarsettings.py deleted file mode 100644 index d5fed7df42a8..000000000000 --- a/python/PyQt6/core/auto_additions/qgsscalebarsettings.py +++ /dev/null @@ -1,10 +0,0 @@ -# The following has been generated automatically from src/core/scalebar/qgsscalebarsettings.h -QgsScaleBarSettings.AlignLeft = QgsScaleBarSettings.Alignment.AlignLeft -QgsScaleBarSettings.AlignMiddle = QgsScaleBarSettings.Alignment.AlignMiddle -QgsScaleBarSettings.AlignRight = QgsScaleBarSettings.Alignment.AlignRight -QgsScaleBarSettings.SegmentSizeFixed = QgsScaleBarSettings.SegmentSizeMode.SegmentSizeFixed -QgsScaleBarSettings.SegmentSizeFitWidth = QgsScaleBarSettings.SegmentSizeMode.SegmentSizeFitWidth -QgsScaleBarSettings.LabelAboveSegment = QgsScaleBarSettings.LabelVerticalPlacement.LabelAboveSegment -QgsScaleBarSettings.LabelBelowSegment = QgsScaleBarSettings.LabelVerticalPlacement.LabelBelowSegment -QgsScaleBarSettings.LabelCenteredEdge = QgsScaleBarSettings.LabelHorizontalPlacement.LabelCenteredEdge -QgsScaleBarSettings.LabelCenteredSegment = QgsScaleBarSettings.LabelHorizontalPlacement.LabelCenteredSegment diff --git a/python/PyQt6/core/auto_generated/layout/qgslayoutitemscalebar.sip.in b/python/PyQt6/core/auto_generated/layout/qgslayoutitemscalebar.sip.in index fdb64185f393..bef096148d5f 100644 --- a/python/PyQt6/core/auto_generated/layout/qgslayoutitemscalebar.sip.in +++ b/python/PyQt6/core/auto_generated/layout/qgslayoutitemscalebar.sip.in @@ -134,7 +134,7 @@ Sets the number of scalebar ``units`` per segment. .. seealso:: :py:func:`unitsPerSegment` %End - QgsScaleBarSettings::SegmentSizeMode segmentSizeMode() const; + Qgis::ScaleBarSegmentSizeMode segmentSizeMode() const; %Docstring Returns the size mode for the scale bar segments. @@ -145,7 +145,7 @@ Returns the size mode for the scale bar segments. .. seealso:: :py:func:`maximumBarWidth` %End - void setSegmentSizeMode( QgsScaleBarSettings::SegmentSizeMode mode ); + void setSegmentSizeMode( Qgis::ScaleBarSegmentSizeMode mode ); %Docstring Sets the size ``mode`` for scale bar segments. @@ -617,7 +617,7 @@ Sets the ``space`` (margin) between the scalebar box and content in millimeters. .. seealso:: :py:func:`boxContentSpace` %End - QgsScaleBarSettings::LabelVerticalPlacement labelVerticalPlacement() const; + Qgis::ScaleBarDistanceLabelVerticalPlacement labelVerticalPlacement() const; %Docstring Returns the vertical placement of text labels. @@ -626,7 +626,7 @@ Returns the vertical placement of text labels. .. versionadded:: 3.10 %End - void setLabelVerticalPlacement( QgsScaleBarSettings::LabelVerticalPlacement placement ); + void setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement placement ); %Docstring Sets the vertical ``placement`` of text labels. @@ -635,7 +635,7 @@ Sets the vertical ``placement`` of text labels. .. versionadded:: 3.10 %End - QgsScaleBarSettings::LabelHorizontalPlacement labelHorizontalPlacement() const; + Qgis::ScaleBarDistanceLabelHorizontalPlacement labelHorizontalPlacement() const; %Docstring Returns the horizontal placement of text labels. @@ -644,7 +644,7 @@ Returns the horizontal placement of text labels. .. versionadded:: 3.10 %End - void setLabelHorizontalPlacement( QgsScaleBarSettings::LabelHorizontalPlacement placement ); + void setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement placement ); %Docstring Sets the horizontal ``placement`` of text labels. @@ -653,14 +653,14 @@ Sets the horizontal ``placement`` of text labels. .. versionadded:: 3.10 %End - QgsScaleBarSettings::Alignment alignment() const; + Qgis::ScaleBarAlignment alignment() const; %Docstring Returns the scalebar alignment. .. seealso:: :py:func:`setAlignment` %End - void setAlignment( QgsScaleBarSettings::Alignment alignment ); + void setAlignment( Qgis::ScaleBarAlignment alignment ); %Docstring Sets the scalebar ``alignment``. diff --git a/python/PyQt6/core/auto_generated/qgis.sip.in b/python/PyQt6/core/auto_generated/qgis.sip.in index b253e1b51304..40bcb930d52b 100644 --- a/python/PyQt6/core/auto_generated/qgis.sip.in +++ b/python/PyQt6/core/auto_generated/qgis.sip.in @@ -2542,6 +2542,31 @@ The development version ScreenUnits }; + enum class ScaleBarAlignment /BaseType=IntEnum/ + { + Left, + Middle, + Right, + }; + + enum class ScaleBarSegmentSizeMode /BaseType=IntEnum/ + { + Fixed, + FitWidth + }; + + enum class ScaleBarDistanceLabelVerticalPlacement /BaseType=IntEnum/ + { + AboveSegment, + BelowSegment, + }; + + enum class ScaleBarDistanceLabelHorizontalPlacement /BaseType=IntEnum/ + { + CenteredEdge, + CenteredSegment, + }; + enum class InputControllerType /BaseType=IntEnum/ { Map2D, diff --git a/python/PyQt6/core/auto_generated/scalebar/qgsscalebarsettings.sip.in b/python/PyQt6/core/auto_generated/scalebar/qgsscalebarsettings.sip.in index eef466391250..d8fbaccdb8e9 100644 --- a/python/PyQt6/core/auto_generated/scalebar/qgsscalebarsettings.sip.in +++ b/python/PyQt6/core/auto_generated/scalebar/qgsscalebarsettings.sip.in @@ -21,31 +21,6 @@ for scalebar drawing with :py:class:`QgsScaleBarRenderer`. %End public: - enum Alignment /BaseType=IntEnum/ - { - AlignLeft, - AlignMiddle, - AlignRight, - }; - - enum SegmentSizeMode /BaseType=IntEnum/ - { - SegmentSizeFixed, - SegmentSizeFitWidth - }; - - enum LabelVerticalPlacement /BaseType=IntEnum/ - { - LabelAboveSegment, - LabelBelowSegment, - }; - - enum LabelHorizontalPlacement /BaseType=IntEnum/ - { - LabelCenteredEdge, - LabelCenteredSegment, - }; - QgsScaleBarSettings(); %Docstring Constructor for QgsScaleBarSettings. @@ -155,7 +130,7 @@ Sets the number of scalebar ``units`` per segment. .. seealso:: :py:func:`unitsPerSegment` %End - SegmentSizeMode segmentSizeMode() const; + Qgis::ScaleBarSegmentSizeMode segmentSizeMode() const; %Docstring Returns the size mode for the scale bar segments. @@ -166,7 +141,7 @@ Returns the size mode for the scale bar segments. .. seealso:: :py:func:`maximumBarWidth` %End - void setSegmentSizeMode( SegmentSizeMode mode ); + void setSegmentSizeMode( Qgis::ScaleBarSegmentSizeMode mode ); %Docstring Sets the size ``mode`` for scale bar segments. @@ -657,7 +632,7 @@ Sets the spacing (in millimeters) between labels and the scalebar. .. seealso:: :py:func:`labelBarSpace` %End - LabelVerticalPlacement labelVerticalPlacement() const; + Qgis::ScaleBarDistanceLabelVerticalPlacement labelVerticalPlacement() const; %Docstring Returns the vertical placement of text labels. @@ -666,7 +641,7 @@ Returns the vertical placement of text labels. .. versionadded:: 3.10 %End - void setLabelVerticalPlacement( LabelVerticalPlacement placement ); + void setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement placement ); %Docstring Sets the vertical ``placement`` of text labels. @@ -675,7 +650,7 @@ Sets the vertical ``placement`` of text labels. .. versionadded:: 3.10 %End - LabelHorizontalPlacement labelHorizontalPlacement() const; + Qgis::ScaleBarDistanceLabelHorizontalPlacement labelHorizontalPlacement() const; %Docstring Returns the horizontal placement of text labels. @@ -684,7 +659,7 @@ Returns the horizontal placement of text labels. .. versionadded:: 3.10 %End - void setLabelHorizontalPlacement( LabelHorizontalPlacement placement ); + void setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement placement ); %Docstring Sets the horizontal ``placement`` of text labels. @@ -707,14 +682,14 @@ Sets the ``space`` (margin) between the scalebar box and content in millimeters. .. seealso:: :py:func:`boxContentSpace` %End - Alignment alignment() const; + Qgis::ScaleBarAlignment alignment() const; %Docstring Returns the scalebar alignment. .. seealso:: :py:func:`setAlignment` %End - void setAlignment( Alignment alignment ); + void setAlignment( Qgis::ScaleBarAlignment alignment ); %Docstring Sets the scalebar ``alignment``. diff --git a/python/core/auto_additions/qgis.py b/python/core/auto_additions/qgis.py index 00ba1a68e15b..b50f3a1e0b9c 100644 --- a/python/core/auto_additions/qgis.py +++ b/python/core/auto_additions/qgis.py @@ -4514,6 +4514,62 @@ Qgis.LayoutUnitType.__doc__ = "Types of layout units\n\n.. note::\n\n Prior to QGIS 3.30 this was available as :py:class:`QgsUnitTypes`.LayoutUnitType.\n\n.. versionadded:: 3.30\n\n" + '* ``LayoutPaperUnits``: ' + Qgis.LayoutUnitType.PaperUnits.__doc__ + '\n' + '* ``LayoutScreenUnits``: ' + Qgis.LayoutUnitType.ScreenUnits.__doc__ # -- Qgis.LayoutUnitType.baseClass = Qgis +QgsScaleBarSettings.Alignment = Qgis.ScaleBarAlignment +# monkey patching scoped based enum +QgsScaleBarSettings.AlignLeft = Qgis.ScaleBarAlignment.Left +QgsScaleBarSettings.Alignment.AlignLeft = Qgis.ScaleBarAlignment.Left +QgsScaleBarSettings.AlignLeft.is_monkey_patched = True +QgsScaleBarSettings.AlignLeft.__doc__ = "Left aligned" +QgsScaleBarSettings.AlignMiddle = Qgis.ScaleBarAlignment.Middle +QgsScaleBarSettings.Alignment.AlignMiddle = Qgis.ScaleBarAlignment.Middle +QgsScaleBarSettings.AlignMiddle.is_monkey_patched = True +QgsScaleBarSettings.AlignMiddle.__doc__ = "Center aligned" +QgsScaleBarSettings.AlignRight = Qgis.ScaleBarAlignment.Right +QgsScaleBarSettings.Alignment.AlignRight = Qgis.ScaleBarAlignment.Right +QgsScaleBarSettings.AlignRight.is_monkey_patched = True +QgsScaleBarSettings.AlignRight.__doc__ = "Right aligned" +Qgis.ScaleBarAlignment.__doc__ = "Scalebar alignment.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsScaleBarSettings`.Alignment.\n\n.. versionadded:: 3.40\n\n" + '* ``AlignLeft``: ' + Qgis.ScaleBarAlignment.Left.__doc__ + '\n' + '* ``AlignMiddle``: ' + Qgis.ScaleBarAlignment.Middle.__doc__ + '\n' + '* ``AlignRight``: ' + Qgis.ScaleBarAlignment.Right.__doc__ +# -- +Qgis.ScaleBarAlignment.baseClass = Qgis +QgsScaleBarSettings.SegmentSizeMode = Qgis.ScaleBarSegmentSizeMode +# monkey patching scoped based enum +QgsScaleBarSettings.SegmentSizeFixed = Qgis.ScaleBarSegmentSizeMode.Fixed +QgsScaleBarSettings.SegmentSizeMode.SegmentSizeFixed = Qgis.ScaleBarSegmentSizeMode.Fixed +QgsScaleBarSettings.SegmentSizeFixed.is_monkey_patched = True +QgsScaleBarSettings.SegmentSizeFixed.__doc__ = "Scale bar segment size is fixed to a map unit" +QgsScaleBarSettings.SegmentSizeFitWidth = Qgis.ScaleBarSegmentSizeMode.FitWidth +QgsScaleBarSettings.SegmentSizeMode.SegmentSizeFitWidth = Qgis.ScaleBarSegmentSizeMode.FitWidth +QgsScaleBarSettings.SegmentSizeFitWidth.is_monkey_patched = True +QgsScaleBarSettings.SegmentSizeFitWidth.__doc__ = "Scale bar segment size is calculated to fit a size range" +Qgis.ScaleBarSegmentSizeMode.__doc__ = "Modes for setting size for scale bar segments.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsScaleBarSettings`.SegmentSizeMode.\n\n.. versionadded:: 3.40\n\n" + '* ``SegmentSizeFixed``: ' + Qgis.ScaleBarSegmentSizeMode.Fixed.__doc__ + '\n' + '* ``SegmentSizeFitWidth``: ' + Qgis.ScaleBarSegmentSizeMode.FitWidth.__doc__ +# -- +Qgis.ScaleBarSegmentSizeMode.baseClass = Qgis +QgsScaleBarSettings.LabelVerticalPlacement = Qgis.ScaleBarDistanceLabelVerticalPlacement +# monkey patching scoped based enum +QgsScaleBarSettings.LabelAboveSegment = Qgis.ScaleBarDistanceLabelVerticalPlacement.AboveSegment +QgsScaleBarSettings.LabelVerticalPlacement.LabelAboveSegment = Qgis.ScaleBarDistanceLabelVerticalPlacement.AboveSegment +QgsScaleBarSettings.LabelAboveSegment.is_monkey_patched = True +QgsScaleBarSettings.LabelAboveSegment.__doc__ = "Labels are drawn above the scalebar" +QgsScaleBarSettings.LabelBelowSegment = Qgis.ScaleBarDistanceLabelVerticalPlacement.BelowSegment +QgsScaleBarSettings.LabelVerticalPlacement.LabelBelowSegment = Qgis.ScaleBarDistanceLabelVerticalPlacement.BelowSegment +QgsScaleBarSettings.LabelBelowSegment.is_monkey_patched = True +QgsScaleBarSettings.LabelBelowSegment.__doc__ = "Labels are drawn below the scalebar" +Qgis.ScaleBarDistanceLabelVerticalPlacement.__doc__ = "Scale bar distance label vertical placement.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsScaleBarSettings`.LabelVerticalPlacement.\n\n.. versionadded:: 3.40\n\n" + '* ``LabelAboveSegment``: ' + Qgis.ScaleBarDistanceLabelVerticalPlacement.AboveSegment.__doc__ + '\n' + '* ``LabelBelowSegment``: ' + Qgis.ScaleBarDistanceLabelVerticalPlacement.BelowSegment.__doc__ +# -- +Qgis.ScaleBarDistanceLabelVerticalPlacement.baseClass = Qgis +QgsScaleBarSettings.LabelHorizontalPlacement = Qgis.ScaleBarDistanceLabelHorizontalPlacement +# monkey patching scoped based enum +QgsScaleBarSettings.LabelCenteredEdge = Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredEdge +QgsScaleBarSettings.LabelHorizontalPlacement.LabelCenteredEdge = Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredEdge +QgsScaleBarSettings.LabelCenteredEdge.is_monkey_patched = True +QgsScaleBarSettings.LabelCenteredEdge.__doc__ = "Labels are drawn centered relative to segment's edge" +QgsScaleBarSettings.LabelCenteredSegment = Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredSegment +QgsScaleBarSettings.LabelHorizontalPlacement.LabelCenteredSegment = Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredSegment +QgsScaleBarSettings.LabelCenteredSegment.is_monkey_patched = True +QgsScaleBarSettings.LabelCenteredSegment.__doc__ = "Labels are drawn centered relative to segment" +Qgis.ScaleBarDistanceLabelHorizontalPlacement.__doc__ = "Scale bar distance label horizontal placement.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsScaleBarSettings`.LabelHorizontalPlacement.\n\n.. versionadded:: 3.40\n\n" + '* ``LabelCenteredEdge``: ' + Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredEdge.__doc__ + '\n' + '* ``LabelCenteredSegment``: ' + Qgis.ScaleBarDistanceLabelHorizontalPlacement.CenteredSegment.__doc__ +# -- +Qgis.ScaleBarDistanceLabelHorizontalPlacement.baseClass = Qgis # monkey patching scoped based enum Qgis.InputControllerType.Map2D.__doc__ = "2D map controller" Qgis.InputControllerType.Map3D.__doc__ = "3D map controller" diff --git a/python/core/auto_generated/layout/qgslayoutitemscalebar.sip.in b/python/core/auto_generated/layout/qgslayoutitemscalebar.sip.in index fdb64185f393..bef096148d5f 100644 --- a/python/core/auto_generated/layout/qgslayoutitemscalebar.sip.in +++ b/python/core/auto_generated/layout/qgslayoutitemscalebar.sip.in @@ -134,7 +134,7 @@ Sets the number of scalebar ``units`` per segment. .. seealso:: :py:func:`unitsPerSegment` %End - QgsScaleBarSettings::SegmentSizeMode segmentSizeMode() const; + Qgis::ScaleBarSegmentSizeMode segmentSizeMode() const; %Docstring Returns the size mode for the scale bar segments. @@ -145,7 +145,7 @@ Returns the size mode for the scale bar segments. .. seealso:: :py:func:`maximumBarWidth` %End - void setSegmentSizeMode( QgsScaleBarSettings::SegmentSizeMode mode ); + void setSegmentSizeMode( Qgis::ScaleBarSegmentSizeMode mode ); %Docstring Sets the size ``mode`` for scale bar segments. @@ -617,7 +617,7 @@ Sets the ``space`` (margin) between the scalebar box and content in millimeters. .. seealso:: :py:func:`boxContentSpace` %End - QgsScaleBarSettings::LabelVerticalPlacement labelVerticalPlacement() const; + Qgis::ScaleBarDistanceLabelVerticalPlacement labelVerticalPlacement() const; %Docstring Returns the vertical placement of text labels. @@ -626,7 +626,7 @@ Returns the vertical placement of text labels. .. versionadded:: 3.10 %End - void setLabelVerticalPlacement( QgsScaleBarSettings::LabelVerticalPlacement placement ); + void setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement placement ); %Docstring Sets the vertical ``placement`` of text labels. @@ -635,7 +635,7 @@ Sets the vertical ``placement`` of text labels. .. versionadded:: 3.10 %End - QgsScaleBarSettings::LabelHorizontalPlacement labelHorizontalPlacement() const; + Qgis::ScaleBarDistanceLabelHorizontalPlacement labelHorizontalPlacement() const; %Docstring Returns the horizontal placement of text labels. @@ -644,7 +644,7 @@ Returns the horizontal placement of text labels. .. versionadded:: 3.10 %End - void setLabelHorizontalPlacement( QgsScaleBarSettings::LabelHorizontalPlacement placement ); + void setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement placement ); %Docstring Sets the horizontal ``placement`` of text labels. @@ -653,14 +653,14 @@ Sets the horizontal ``placement`` of text labels. .. versionadded:: 3.10 %End - QgsScaleBarSettings::Alignment alignment() const; + Qgis::ScaleBarAlignment alignment() const; %Docstring Returns the scalebar alignment. .. seealso:: :py:func:`setAlignment` %End - void setAlignment( QgsScaleBarSettings::Alignment alignment ); + void setAlignment( Qgis::ScaleBarAlignment alignment ); %Docstring Sets the scalebar ``alignment``. diff --git a/python/core/auto_generated/qgis.sip.in b/python/core/auto_generated/qgis.sip.in index f9b73c863192..984412b52270 100644 --- a/python/core/auto_generated/qgis.sip.in +++ b/python/core/auto_generated/qgis.sip.in @@ -2542,6 +2542,31 @@ The development version ScreenUnits }; + enum class ScaleBarAlignment + { + Left, + Middle, + Right, + }; + + enum class ScaleBarSegmentSizeMode + { + Fixed, + FitWidth + }; + + enum class ScaleBarDistanceLabelVerticalPlacement + { + AboveSegment, + BelowSegment, + }; + + enum class ScaleBarDistanceLabelHorizontalPlacement + { + CenteredEdge, + CenteredSegment, + }; + enum class InputControllerType { Map2D, diff --git a/python/core/auto_generated/scalebar/qgsscalebarsettings.sip.in b/python/core/auto_generated/scalebar/qgsscalebarsettings.sip.in index 2601446401bb..d8fbaccdb8e9 100644 --- a/python/core/auto_generated/scalebar/qgsscalebarsettings.sip.in +++ b/python/core/auto_generated/scalebar/qgsscalebarsettings.sip.in @@ -21,31 +21,6 @@ for scalebar drawing with :py:class:`QgsScaleBarRenderer`. %End public: - enum Alignment - { - AlignLeft, - AlignMiddle, - AlignRight, - }; - - enum SegmentSizeMode - { - SegmentSizeFixed, - SegmentSizeFitWidth - }; - - enum LabelVerticalPlacement - { - LabelAboveSegment, - LabelBelowSegment, - }; - - enum LabelHorizontalPlacement - { - LabelCenteredEdge, - LabelCenteredSegment, - }; - QgsScaleBarSettings(); %Docstring Constructor for QgsScaleBarSettings. @@ -155,7 +130,7 @@ Sets the number of scalebar ``units`` per segment. .. seealso:: :py:func:`unitsPerSegment` %End - SegmentSizeMode segmentSizeMode() const; + Qgis::ScaleBarSegmentSizeMode segmentSizeMode() const; %Docstring Returns the size mode for the scale bar segments. @@ -166,7 +141,7 @@ Returns the size mode for the scale bar segments. .. seealso:: :py:func:`maximumBarWidth` %End - void setSegmentSizeMode( SegmentSizeMode mode ); + void setSegmentSizeMode( Qgis::ScaleBarSegmentSizeMode mode ); %Docstring Sets the size ``mode`` for scale bar segments. @@ -657,7 +632,7 @@ Sets the spacing (in millimeters) between labels and the scalebar. .. seealso:: :py:func:`labelBarSpace` %End - LabelVerticalPlacement labelVerticalPlacement() const; + Qgis::ScaleBarDistanceLabelVerticalPlacement labelVerticalPlacement() const; %Docstring Returns the vertical placement of text labels. @@ -666,7 +641,7 @@ Returns the vertical placement of text labels. .. versionadded:: 3.10 %End - void setLabelVerticalPlacement( LabelVerticalPlacement placement ); + void setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement placement ); %Docstring Sets the vertical ``placement`` of text labels. @@ -675,7 +650,7 @@ Sets the vertical ``placement`` of text labels. .. versionadded:: 3.10 %End - LabelHorizontalPlacement labelHorizontalPlacement() const; + Qgis::ScaleBarDistanceLabelHorizontalPlacement labelHorizontalPlacement() const; %Docstring Returns the horizontal placement of text labels. @@ -684,7 +659,7 @@ Returns the horizontal placement of text labels. .. versionadded:: 3.10 %End - void setLabelHorizontalPlacement( LabelHorizontalPlacement placement ); + void setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement placement ); %Docstring Sets the horizontal ``placement`` of text labels. @@ -707,14 +682,14 @@ Sets the ``space`` (margin) between the scalebar box and content in millimeters. .. seealso:: :py:func:`boxContentSpace` %End - Alignment alignment() const; + Qgis::ScaleBarAlignment alignment() const; %Docstring Returns the scalebar alignment. .. seealso:: :py:func:`setAlignment` %End - void setAlignment( Alignment alignment ); + void setAlignment( Qgis::ScaleBarAlignment alignment ); %Docstring Sets the scalebar ``alignment``. diff --git a/src/app/decorations/qgsdecorationscalebar.cpp b/src/app/decorations/qgsdecorationscalebar.cpp index 99f73ae61fcc..1e24d7b09835 100644 --- a/src/app/decorations/qgsdecorationscalebar.cpp +++ b/src/app/decorations/qgsdecorationscalebar.cpp @@ -363,7 +363,7 @@ void QgsDecorationScaleBar::render( const QgsMapSettings &mapSettings, QgsRender mSettings.setNumberOfSegments( mStyleIndex == 3 ? 2 : 1 ); mSettings.setUnitsPerSegment( mStyleIndex == 3 ? unitsPerSegment / 2 : unitsPerSegment ); mSettings.setUnitLabel( scaleBarUnitLabel ); - mSettings.setLabelHorizontalPlacement( mPlacement == TopCenter || mPlacement == BottomCenter ? QgsScaleBarSettings::LabelCenteredSegment : QgsScaleBarSettings::LabelCenteredEdge ); + mSettings.setLabelHorizontalPlacement( mPlacement == TopCenter || mPlacement == BottomCenter ? Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment : Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredEdge ); QgsScaleBarRenderer::ScaleBarContext scaleContext; scaleContext.segmentWidth = mStyleIndex == 3 ? segmentSizeInMm / 2 : segmentSizeInMm; diff --git a/src/core/layout/qgscompositionconverter.cpp b/src/core/layout/qgscompositionconverter.cpp index d52018fa36d9..c5e3c41d836f 100644 --- a/src/core/layout/qgscompositionconverter.cpp +++ b/src/core/layout/qgscompositionconverter.cpp @@ -1065,7 +1065,7 @@ bool QgsCompositionConverter::readScaleBarXml( QgsLayoutItemScaleBar *layoutItem layoutItem->setNumberOfSegments( itemElem.attribute( QStringLiteral( "numSegments" ), QStringLiteral( "2" ) ).toInt() ); layoutItem->setNumberOfSegmentsLeft( itemElem.attribute( QStringLiteral( "numSegmentsLeft" ), QStringLiteral( "0" ) ).toInt() ); layoutItem->setUnitsPerSegment( itemElem.attribute( QStringLiteral( "numUnitsPerSegment" ), QStringLiteral( "1.0" ) ).toDouble() ); - layoutItem->setSegmentSizeMode( static_cast( itemElem.attribute( QStringLiteral( "segmentSizeMode" ), QStringLiteral( "0" ) ).toInt() ) ); + layoutItem->setSegmentSizeMode( static_cast( itemElem.attribute( QStringLiteral( "segmentSizeMode" ), QStringLiteral( "0" ) ).toInt() ) ); layoutItem->setMinimumBarWidth( itemElem.attribute( QStringLiteral( "minBarWidth" ), QStringLiteral( "50" ) ).toDouble() ); layoutItem->setMaximumBarWidth( itemElem.attribute( QStringLiteral( "maxBarWidth" ), QStringLiteral( "150" ) ).toDouble() ); layoutItem->mSegmentMillimeters = itemElem.attribute( QStringLiteral( "segmentMillimeters" ), QStringLiteral( "0.0" ) ).toDouble(); @@ -1218,7 +1218,7 @@ bool QgsCompositionConverter::readScaleBarXml( QgsLayoutItemScaleBar *layoutItem { layoutItem->setUnits( QgsUnitTypes::decodeDistanceUnit( itemElem.attribute( QStringLiteral( "unitType" ) ) ) ); } - layoutItem->setAlignment( static_cast< QgsScaleBarSettings::Alignment >( itemElem.attribute( QStringLiteral( "alignment" ), QStringLiteral( "0" ) ).toInt() ) ); + layoutItem->setAlignment( static_cast< Qgis::ScaleBarAlignment >( itemElem.attribute( QStringLiteral( "alignment" ), QStringLiteral( "0" ) ).toInt() ) ); //composer map: use uuid const QString mapId = itemElem.attribute( QStringLiteral( "mapId" ), QStringLiteral( "-1" ) ); diff --git a/src/core/layout/qgslayoutitemscalebar.cpp b/src/core/layout/qgslayoutitemscalebar.cpp index 23e4a05940b4..db11bf2ce971 100644 --- a/src/core/layout/qgslayoutitemscalebar.cpp +++ b/src/core/layout/qgslayoutitemscalebar.cpp @@ -140,7 +140,7 @@ void QgsLayoutItemScaleBar::setUnitsPerSegment( double units ) } -void QgsLayoutItemScaleBar::setSegmentSizeMode( QgsScaleBarSettings::SegmentSizeMode mode ) +void QgsLayoutItemScaleBar::setSegmentSizeMode( Qgis::ScaleBarSegmentSizeMode mode ) { if ( !mStyle ) { @@ -523,14 +523,14 @@ void QgsLayoutItemScaleBar::refreshSegmentMillimeters() switch ( mSettings.segmentSizeMode() ) { - case QgsScaleBarSettings::SegmentSizeFixed: + case Qgis::ScaleBarSegmentSizeMode::Fixed: { //calculate size depending on mNumUnitsPerSegment mSegmentMillimeters = composerItemRect.width() / mapWidth() * mSettings.unitsPerSegment(); break; } - case QgsScaleBarSettings::SegmentSizeFitWidth: + case Qgis::ScaleBarSegmentSizeMode::FitWidth: { if ( mSettings.maximumBarWidth() < mSettings.minimumBarWidth() ) { @@ -587,21 +587,21 @@ QgsScaleBarRenderer::ScaleBarContext QgsLayoutItemScaleBar::createScaleContext() return scaleContext; } -void QgsLayoutItemScaleBar::setLabelVerticalPlacement( QgsScaleBarSettings::LabelVerticalPlacement placement ) +void QgsLayoutItemScaleBar::setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement placement ) { mSettings.setLabelVerticalPlacement( placement ); refreshItemSize(); emit changed(); } -void QgsLayoutItemScaleBar::setLabelHorizontalPlacement( QgsScaleBarSettings::LabelHorizontalPlacement placement ) +void QgsLayoutItemScaleBar::setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement placement ) { mSettings.setLabelHorizontalPlacement( placement ); refreshItemSize(); emit changed(); } -void QgsLayoutItemScaleBar::setAlignment( QgsScaleBarSettings::Alignment a ) +void QgsLayoutItemScaleBar::setAlignment( Qgis::ScaleBarAlignment a ) { mSettings.setAlignment( a ); refreshItemSize(); @@ -951,7 +951,7 @@ bool QgsLayoutItemScaleBar::writePropertiesToElement( QDomElement &composerScale composerScaleBarElem.setAttribute( QStringLiteral( "numSubdivisions" ), mSettings.numberOfSubdivisions() ); composerScaleBarElem.setAttribute( QStringLiteral( "subdivisionsHeight" ), mSettings.subdivisionsHeight() ); composerScaleBarElem.setAttribute( QStringLiteral( "numUnitsPerSegment" ), QString::number( mSettings.unitsPerSegment() ) ); - composerScaleBarElem.setAttribute( QStringLiteral( "segmentSizeMode" ), mSettings.segmentSizeMode() ); + composerScaleBarElem.setAttribute( QStringLiteral( "segmentSizeMode" ), static_cast< int >( mSettings.segmentSizeMode() ) ); composerScaleBarElem.setAttribute( QStringLiteral( "minBarWidth" ), mSettings.minimumBarWidth() ); composerScaleBarElem.setAttribute( QStringLiteral( "maxBarWidth" ), mSettings.maximumBarWidth() ); composerScaleBarElem.setAttribute( QStringLiteral( "segmentMillimeters" ), QString::number( mSegmentMillimeters ) ); @@ -1077,7 +1077,7 @@ bool QgsLayoutItemScaleBar::readPropertiesFromElement( const QDomElement &itemEl mSettings.setNumberOfSubdivisions( itemElem.attribute( QStringLiteral( "numSubdivisions" ), QStringLiteral( "1" ) ).toInt() ); mSettings.setSubdivisionsHeight( itemElem.attribute( QStringLiteral( "subdivisionsHeight" ), QStringLiteral( "1.5" ) ).toDouble() ); mSettings.setUnitsPerSegment( itemElem.attribute( QStringLiteral( "numUnitsPerSegment" ), QStringLiteral( "1.0" ) ).toDouble() ); - mSettings.setSegmentSizeMode( static_cast( itemElem.attribute( QStringLiteral( "segmentSizeMode" ), QStringLiteral( "0" ) ).toInt() ) ); + mSettings.setSegmentSizeMode( static_cast( itemElem.attribute( QStringLiteral( "segmentSizeMode" ), QStringLiteral( "0" ) ).toInt() ) ); mSettings.setMinimumBarWidth( itemElem.attribute( QStringLiteral( "minBarWidth" ), QStringLiteral( "50" ) ).toDouble() ); mSettings.setMaximumBarWidth( itemElem.attribute( QStringLiteral( "maxBarWidth" ), QStringLiteral( "150" ) ).toDouble() ); mSegmentMillimeters = itemElem.attribute( QStringLiteral( "segmentMillimeters" ), QStringLiteral( "0.0" ) ).toDouble(); @@ -1365,10 +1365,10 @@ bool QgsLayoutItemScaleBar::readPropertiesFromElement( const QDomElement &itemEl mSettings.setUnits( QgsUnitTypes::decodeDistanceUnit( itemElem.attribute( QStringLiteral( "unitType" ) ) ) ); } - mSettings.setLabelVerticalPlacement( static_cast< QgsScaleBarSettings::LabelVerticalPlacement >( itemElem.attribute( QStringLiteral( "labelVerticalPlacement" ), QStringLiteral( "0" ) ).toInt() ) ); - mSettings.setLabelHorizontalPlacement( static_cast< QgsScaleBarSettings::LabelHorizontalPlacement >( itemElem.attribute( QStringLiteral( "labelHorizontalPlacement" ), QStringLiteral( "0" ) ).toInt() ) ); + mSettings.setLabelVerticalPlacement( static_cast< Qgis::ScaleBarDistanceLabelVerticalPlacement >( itemElem.attribute( QStringLiteral( "labelVerticalPlacement" ), QStringLiteral( "0" ) ).toInt() ) ); + mSettings.setLabelHorizontalPlacement( static_cast< Qgis::ScaleBarDistanceLabelHorizontalPlacement >( itemElem.attribute( QStringLiteral( "labelHorizontalPlacement" ), QStringLiteral( "0" ) ).toInt() ) ); - mSettings.setAlignment( static_cast< QgsScaleBarSettings::Alignment >( itemElem.attribute( QStringLiteral( "alignment" ), QStringLiteral( "0" ) ).toInt() ) ); + mSettings.setAlignment( static_cast< Qgis::ScaleBarAlignment >( itemElem.attribute( QStringLiteral( "alignment" ), QStringLiteral( "0" ) ).toInt() ) ); //map disconnectCurrentMap(); diff --git a/src/core/layout/qgslayoutitemscalebar.h b/src/core/layout/qgslayoutitemscalebar.h index baa581ef41f5..55c29a28ea2d 100644 --- a/src/core/layout/qgslayoutitemscalebar.h +++ b/src/core/layout/qgslayoutitemscalebar.h @@ -135,7 +135,7 @@ class CORE_EXPORT QgsLayoutItemScaleBar: public QgsLayoutItem * \see minimumBarWidth() * \see maximumBarWidth() */ - QgsScaleBarSettings::SegmentSizeMode segmentSizeMode() const { return mSettings.segmentSizeMode(); } + Qgis::ScaleBarSegmentSizeMode segmentSizeMode() const { return mSettings.segmentSizeMode(); } /** * Sets the size \a mode for scale bar segments. @@ -143,7 +143,7 @@ class CORE_EXPORT QgsLayoutItemScaleBar: public QgsLayoutItem * \see setMinimumBarWidth() * \see setMaximumBarWidth() */ - void setSegmentSizeMode( QgsScaleBarSettings::SegmentSizeMode mode ); + void setSegmentSizeMode( Qgis::ScaleBarSegmentSizeMode mode ); /** * Returns the minimum width (in millimeters) for scale bar segments. This @@ -503,40 +503,40 @@ class CORE_EXPORT QgsLayoutItemScaleBar: public QgsLayoutItem * \see setLabelVerticalPlacement() * \since QGIS 3.10 */ - QgsScaleBarSettings::LabelVerticalPlacement labelVerticalPlacement() const { return mSettings.labelVerticalPlacement(); } + Qgis::ScaleBarDistanceLabelVerticalPlacement labelVerticalPlacement() const { return mSettings.labelVerticalPlacement(); } /** * Sets the vertical \a placement of text labels. * \see labelVerticalPlacement() * \since QGIS 3.10 */ - void setLabelVerticalPlacement( QgsScaleBarSettings::LabelVerticalPlacement placement ); + void setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement placement ); /** * Returns the horizontal placement of text labels. * \see setLabelHorizontalPlacement() * \since QGIS 3.10 */ - QgsScaleBarSettings::LabelHorizontalPlacement labelHorizontalPlacement() const { return mSettings.labelHorizontalPlacement(); } + Qgis::ScaleBarDistanceLabelHorizontalPlacement labelHorizontalPlacement() const { return mSettings.labelHorizontalPlacement(); } /** * Sets the horizontal \a placement of text labels. * \see labelHorizontalPlacement() * \since QGIS 3.10 */ - void setLabelHorizontalPlacement( QgsScaleBarSettings::LabelHorizontalPlacement placement ); + void setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement placement ); /** * Returns the scalebar alignment. * \see setAlignment() */ - QgsScaleBarSettings::Alignment alignment() const { return mSettings.alignment(); } + Qgis::ScaleBarAlignment alignment() const { return mSettings.alignment(); } /** * Sets the scalebar \a alignment. * \see alignment() */ - void setAlignment( QgsScaleBarSettings::Alignment alignment ); + void setAlignment( Qgis::ScaleBarAlignment alignment ); /** * Returns the distance units used by the scalebar. diff --git a/src/core/qgis.h b/src/core/qgis.h index f765b6fb9c62..53b48bedb2c9 100644 --- a/src/core/qgis.h +++ b/src/core/qgis.h @@ -4537,6 +4537,63 @@ class CORE_EXPORT Qgis }; Q_ENUM( LayoutUnitType ) + /** + * Scalebar alignment. + * + * \note Prior to QGIS 3.40 this was available as QgsScaleBarSettings::Alignment. + * + * \since QGIS 3.40 + */ + enum class ScaleBarAlignment SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsScaleBarSettings, Alignment ) : int + { + Left SIP_MONKEYPATCH_COMPAT_NAME( AlignLeft ) = 0, //!< Left aligned + Middle SIP_MONKEYPATCH_COMPAT_NAME( AlignMiddle ), //!< Center aligned + Right SIP_MONKEYPATCH_COMPAT_NAME( AlignRight ), //!< Right aligned + }; + Q_ENUM( ScaleBarAlignment ) + + /** + * Modes for setting size for scale bar segments. + * + * \note Prior to QGIS 3.40 this was available as QgsScaleBarSettings::SegmentSizeMode. + * + * \since QGIS 3.40 + */ + enum class ScaleBarSegmentSizeMode SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsScaleBarSettings, SegmentSizeMode ) : int + { + Fixed SIP_MONKEYPATCH_COMPAT_NAME( SegmentSizeFixed ) = 0, //!< Scale bar segment size is fixed to a map unit + FitWidth SIP_MONKEYPATCH_COMPAT_NAME( SegmentSizeFitWidth ) = 1 //!< Scale bar segment size is calculated to fit a size range + }; + Q_ENUM( ScaleBarSegmentSizeMode ) + + /** + * Scale bar distance label vertical placement. + * + * \note Prior to QGIS 3.40 this was available as QgsScaleBarSettings::LabelVerticalPlacement. + * + * \since QGIS 3.40 + */ + enum class ScaleBarDistanceLabelVerticalPlacement SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsScaleBarSettings, LabelVerticalPlacement ) : int + { + AboveSegment SIP_MONKEYPATCH_COMPAT_NAME( LabelAboveSegment ) = 0, //!< Labels are drawn above the scalebar + BelowSegment SIP_MONKEYPATCH_COMPAT_NAME( LabelBelowSegment ), //!< Labels are drawn below the scalebar + }; + Q_ENUM( ScaleBarDistanceLabelVerticalPlacement ) + + /** + * Scale bar distance label horizontal placement. + * + * \note Prior to QGIS 3.40 this was available as QgsScaleBarSettings::LabelHorizontalPlacement. + * + * \since QGIS 3.40 + */ + enum class ScaleBarDistanceLabelHorizontalPlacement SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsScaleBarSettings, LabelHorizontalPlacement ) : int + { + CenteredEdge SIP_MONKEYPATCH_COMPAT_NAME( LabelCenteredEdge ) = 0, //!< Labels are drawn centered relative to segment's edge + CenteredSegment SIP_MONKEYPATCH_COMPAT_NAME( LabelCenteredSegment ), //!< Labels are drawn centered relative to segment + }; + Q_ENUM( ScaleBarDistanceLabelHorizontalPlacement ) + /** * Input controller types. * diff --git a/src/core/scalebar/qgsdoubleboxscalebarrenderer.cpp b/src/core/scalebar/qgsdoubleboxscalebarrenderer.cpp index 27e17810c6c8..2cb16231e9f4 100644 --- a/src/core/scalebar/qgsdoubleboxscalebarrenderer.cpp +++ b/src/core/scalebar/qgsdoubleboxscalebarrenderer.cpp @@ -68,7 +68,7 @@ void QgsDoubleBoxScaleBarRenderer::draw( QgsRenderContext &context, const QgsSca const double scaledLabelBarSpace = context.convertToPainterUnits( settings.labelBarSpace(), Qgis::RenderUnit::Millimeters ); const double scaledBoxContentSpace = context.convertToPainterUnits( settings.boxContentSpace(), Qgis::RenderUnit::Millimeters ); const QFontMetricsF fontMetrics = QgsTextRenderer::fontMetrics( context, settings.textFormat() ); - const double barTopPosition = scaledBoxContentSpace + ( settings.labelVerticalPlacement() == QgsScaleBarSettings::LabelAboveSegment ? fontMetrics.ascent() + scaledLabelBarSpace : 0 ); + const double barTopPosition = scaledBoxContentSpace + ( settings.labelVerticalPlacement() == Qgis::ScaleBarDistanceLabelVerticalPlacement::AboveSegment ? fontMetrics.ascent() + scaledLabelBarSpace : 0 ); const double segmentHeight = context.convertToPainterUnits( settings.height() / 2, Qgis::RenderUnit::Millimeters ); painter->save(); diff --git a/src/core/scalebar/qgshollowscalebarrenderer.cpp b/src/core/scalebar/qgshollowscalebarrenderer.cpp index 1e04ab956cd4..7302b5adeced 100644 --- a/src/core/scalebar/qgshollowscalebarrenderer.cpp +++ b/src/core/scalebar/qgshollowscalebarrenderer.cpp @@ -69,7 +69,7 @@ void QgsHollowScaleBarRenderer::draw( QgsRenderContext &context, const QgsScaleB const double scaledLabelBarSpace = context.convertToPainterUnits( settings.labelBarSpace(), Qgis::RenderUnit::Millimeters ); const double scaledBoxContentSpace = context.convertToPainterUnits( settings.boxContentSpace(), Qgis::RenderUnit::Millimeters ); const QFontMetricsF fontMetrics = QgsTextRenderer::fontMetrics( context, settings.textFormat() ); - const double barTopPosition = scaledBoxContentSpace + ( settings.labelVerticalPlacement() == QgsScaleBarSettings::LabelAboveSegment ? fontMetrics.ascent() + scaledLabelBarSpace : 0 ); + const double barTopPosition = scaledBoxContentSpace + ( settings.labelVerticalPlacement() == Qgis::ScaleBarDistanceLabelVerticalPlacement::AboveSegment ? fontMetrics.ascent() + scaledLabelBarSpace : 0 ); const double barHeight = context.convertToPainterUnits( settings.height(), Qgis::RenderUnit::Millimeters ); painter->save(); diff --git a/src/core/scalebar/qgsnumericscalebarrenderer.cpp b/src/core/scalebar/qgsnumericscalebarrenderer.cpp index a3e5928d0ecf..99861b0c3a02 100644 --- a/src/core/scalebar/qgsnumericscalebarrenderer.cpp +++ b/src/core/scalebar/qgsnumericscalebarrenderer.cpp @@ -64,13 +64,13 @@ void QgsNumericScaleBarRenderer::draw( QgsRenderContext &context, const QgsScale Qgis::TextHorizontalAlignment hAlign = Qgis::TextHorizontalAlignment::Left; switch ( settings.alignment() ) { - case QgsScaleBarSettings::AlignLeft: + case Qgis::ScaleBarAlignment::Left: hAlign = Qgis::TextHorizontalAlignment::Left; break; - case QgsScaleBarSettings::AlignMiddle: + case Qgis::ScaleBarAlignment::Middle: hAlign = Qgis::TextHorizontalAlignment::Center; break; - case QgsScaleBarSettings::AlignRight: + case Qgis::ScaleBarAlignment::Right: hAlign = Qgis::TextHorizontalAlignment::Right; break; } diff --git a/src/core/scalebar/qgsscalebarrenderer.cpp b/src/core/scalebar/qgsscalebarrenderer.cpp index d499f1b80ed3..2dac8118d462 100644 --- a/src/core/scalebar/qgsscalebarrenderer.cpp +++ b/src/core/scalebar/qgsscalebarrenderer.cpp @@ -70,10 +70,10 @@ void QgsScaleBarRenderer::drawDefaultLabels( QgsRenderContext &context, const Qg bool drawZero = true; switch ( settings.labelHorizontalPlacement() ) { - case QgsScaleBarSettings::LabelCenteredSegment: + case Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment: drawZero = false; break; - case QgsScaleBarSettings::LabelCenteredEdge: + case Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredEdge: drawZero = true; break; } @@ -102,7 +102,7 @@ void QgsScaleBarRenderer::drawDefaultLabels( QgsRenderContext &context, const Qg { scaleScope->addVariable( QgsExpressionContextScope::StaticVariable( QStringLiteral( "scale_value" ), currentNumericLabel, true, false ) ); QPointF pos; - if ( settings.labelHorizontalPlacement() == QgsScaleBarSettings::LabelCenteredSegment ) + if ( settings.labelHorizontalPlacement() == Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment ) { if ( segmentCounter == 0 ) { @@ -118,7 +118,7 @@ void QgsScaleBarRenderer::drawDefaultLabels( QgsRenderContext &context, const Qg { pos.setX( context.convertToPainterUnits( positions.at( i ), Qgis::RenderUnit::Millimeters ) + xOffset ); } - pos.setY( fontMetrics.ascent() + scaledBoxContentSpace + ( settings.labelVerticalPlacement() == QgsScaleBarSettings::LabelBelowSegment ? scaledHeight + scaledLabelBarSpace : 0 ) ); + pos.setY( fontMetrics.ascent() + scaledBoxContentSpace + ( settings.labelVerticalPlacement() == Qgis::ScaleBarDistanceLabelVerticalPlacement::BelowSegment ? scaledHeight + scaledLabelBarSpace : 0 ) ); QgsTextRenderer::drawText( pos, 0, Qgis::TextHorizontalAlignment::Center, QStringList() << currentNumericLabel, context, format ); } @@ -138,8 +138,8 @@ void QgsScaleBarRenderer::drawDefaultLabels( QgsRenderContext &context, const Qg currentNumericLabel = settings.numericFormat()->formatDouble( currentLabelNumber / settings.mapUnitsPerScaleBarUnit(), numericContext ); scaleScope->addVariable( QgsExpressionContextScope::StaticVariable( QStringLiteral( "scale_value" ), currentNumericLabel, true, false ) ); QPointF pos; - pos.setY( fontMetrics.ascent() + scaledBoxContentSpace + ( settings.labelVerticalPlacement() == QgsScaleBarSettings::LabelBelowSegment ? scaledHeight + scaledLabelBarSpace : 0 ) ); - if ( settings.labelHorizontalPlacement() == QgsScaleBarSettings::LabelCenteredSegment ) + pos.setY( fontMetrics.ascent() + scaledBoxContentSpace + ( settings.labelVerticalPlacement() == Qgis::ScaleBarDistanceLabelVerticalPlacement::BelowSegment ? scaledHeight + scaledLabelBarSpace : 0 ) ); + if ( settings.labelHorizontalPlacement() == Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment ) { pos.setX( context.convertToPainterUnits( positions.at( positions.size() - 1 ) + ( scaleContext.segmentWidth / 2 ), Qgis::RenderUnit::Millimeters ) + xOffset ); QgsTextRenderer::drawText( pos, 0, Qgis::TextHorizontalAlignment::Center, QStringList() << ( currentNumericLabel + ' ' + settings.unitLabel() ), context, format ); @@ -172,7 +172,7 @@ QSizeF QgsScaleBarRenderer::calculateBoxSize( const QgsScaleBarSettings &setting //consider centered first label double firstLabelWidth = QgsLayoutUtils::textWidthMM( font, firstLabelString( settings ) ); - if ( settings.labelHorizontalPlacement() == QgsScaleBarSettings::LabelCenteredSegment ) + if ( settings.labelHorizontalPlacement() == Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment ) { if ( firstLabelWidth > scaleContext.segmentWidth ) { @@ -193,7 +193,7 @@ QSizeF QgsScaleBarRenderer::calculateBoxSize( const QgsScaleBarSettings &setting const QString largestNumberLabel = settings.numericFormat()->formatDouble( largestLabelNumber, QgsNumericFormatContext() ); const QString largestLabel = largestNumberLabel + ' ' + settings.unitLabel(); double largestLabelWidth; - if ( settings.labelHorizontalPlacement() == QgsScaleBarSettings::LabelCenteredSegment ) + if ( settings.labelHorizontalPlacement() == Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment ) { largestLabelWidth = QgsLayoutUtils::textWidthMM( font, largestLabel ); if ( largestLabelWidth > scaleContext.segmentWidth ) @@ -228,7 +228,7 @@ QSizeF QgsScaleBarRenderer::calculateBoxSize( QgsRenderContext &context, const Q //consider centered first label double firstLabelWidth = QgsTextRenderer::textWidth( context, settings.textFormat(), QStringList() << firstLabelString( settings ) ) * painterToMm; - if ( settings.labelHorizontalPlacement() == QgsScaleBarSettings::LabelCenteredSegment ) + if ( settings.labelHorizontalPlacement() == Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment ) { if ( firstLabelWidth > scaleContext.segmentWidth ) { @@ -249,7 +249,7 @@ QSizeF QgsScaleBarRenderer::calculateBoxSize( QgsRenderContext &context, const Q const QString largestNumberLabel = settings.numericFormat()->formatDouble( largestLabelNumber, QgsNumericFormatContext() ); const QString largestLabel = largestNumberLabel + ' ' + settings.unitLabel(); double largestLabelWidth; - if ( settings.labelHorizontalPlacement() == QgsScaleBarSettings::LabelCenteredSegment ) + if ( settings.labelHorizontalPlacement() == Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment ) { largestLabelWidth = QgsTextRenderer::textWidth( context, settings.textFormat(), QStringList() << largestLabel ) * painterToMm; @@ -320,7 +320,7 @@ double QgsScaleBarRenderer::firstLabelXOffset( const QgsScaleBarSettings &settin { const QString firstLabel = firstLabelString( settings ); double firstLabelWidth = QgsTextRenderer::textWidth( context, settings.textFormat(), QStringList() << firstLabel ); - if ( settings.labelHorizontalPlacement() == QgsScaleBarSettings::LabelCenteredSegment ) + if ( settings.labelHorizontalPlacement() == Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment ) { if ( firstLabelWidth > scaleContext.segmentWidth ) { diff --git a/src/core/scalebar/qgsscalebarsettings.h b/src/core/scalebar/qgsscalebarsettings.h index 5927e960d1c6..a63f2e7f6e0f 100644 --- a/src/core/scalebar/qgsscalebarsettings.h +++ b/src/core/scalebar/qgsscalebarsettings.h @@ -39,43 +39,6 @@ class CORE_EXPORT QgsScaleBarSettings { public: - /** - * Scalebar alignment. - */ - enum Alignment - { - AlignLeft = 0, //!< Left aligned - AlignMiddle, //!< Center aligned - AlignRight, //!< Right aligned - }; - - /** - * Modes for setting size for scale bar segments. - */ - enum SegmentSizeMode - { - SegmentSizeFixed = 0, //!< Scale bar segment size is fixed to a map unit - SegmentSizeFitWidth = 1 //!< Scale bar segment size is calculated to fit a size range - }; - - /** - * Label vertical placement. - */ - enum LabelVerticalPlacement - { - LabelAboveSegment = 0, //!< Labels are drawn above the scalebar - LabelBelowSegment, //!< Labels are drawn below the scalebar - }; - - /** - * Label horizontal placement. - */ - enum LabelHorizontalPlacement - { - LabelCenteredEdge = 0, //!< Labels are drawn centered relative to segment's edge - LabelCenteredSegment, //!< Labels are drawn centered relative to segment - }; - /** * Constructor for QgsScaleBarSettings. */ @@ -172,7 +135,7 @@ class CORE_EXPORT QgsScaleBarSettings * \see minimumBarWidth() * \see maximumBarWidth() */ - SegmentSizeMode segmentSizeMode() const { return mSegmentSizeMode; } + Qgis::ScaleBarSegmentSizeMode segmentSizeMode() const { return mSegmentSizeMode; } /** * Sets the size \a mode for scale bar segments. @@ -180,7 +143,7 @@ class CORE_EXPORT QgsScaleBarSettings * \see setMinimumBarWidth() * \see setMaximumBarWidth() */ - void setSegmentSizeMode( SegmentSizeMode mode ) { mSegmentSizeMode = mode; } + void setSegmentSizeMode( Qgis::ScaleBarSegmentSizeMode mode ) { mSegmentSizeMode = mode; } /** * Returns the minimum width (in millimeters) for scale bar segments. This @@ -570,28 +533,28 @@ class CORE_EXPORT QgsScaleBarSettings * \see setLabelVerticalPlacement() * \since QGIS 3.10 */ - LabelVerticalPlacement labelVerticalPlacement() const { return mLabelVerticalPlacement; } + Qgis::ScaleBarDistanceLabelVerticalPlacement labelVerticalPlacement() const { return mLabelVerticalPlacement; } /** * Sets the vertical \a placement of text labels. * \see labelVerticalPlacement() * \since QGIS 3.10 */ - void setLabelVerticalPlacement( LabelVerticalPlacement placement ) { mLabelVerticalPlacement = placement; } + void setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement placement ) { mLabelVerticalPlacement = placement; } /** * Returns the horizontal placement of text labels. * \see setLabelHorizontalPlacement() * \since QGIS 3.10 */ - LabelHorizontalPlacement labelHorizontalPlacement() const { return mLabelHorizontalPlacement; } + Qgis::ScaleBarDistanceLabelHorizontalPlacement labelHorizontalPlacement() const { return mLabelHorizontalPlacement; } /** * Sets the horizontal \a placement of text labels. * \see labelHorizontalPlacement() * \since QGIS 3.10 */ - void setLabelHorizontalPlacement( LabelHorizontalPlacement placement ) { mLabelHorizontalPlacement = placement; } + void setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement placement ) { mLabelHorizontalPlacement = placement; } /** * Returns the spacing (margin) between the scalebar box and content in millimeters. @@ -609,13 +572,13 @@ class CORE_EXPORT QgsScaleBarSettings * Returns the scalebar alignment. * \see setAlignment() */ - Alignment alignment() const { return mAlignment; } + Qgis::ScaleBarAlignment alignment() const { return mAlignment; } /** * Sets the scalebar \a alignment. * \see alignment() */ - void setAlignment( Alignment alignment ) { mAlignment = alignment; } + void setAlignment( Qgis::ScaleBarAlignment alignment ) { mAlignment = alignment; } /** * Returns the join style used for drawing lines in the scalebar. @@ -678,7 +641,7 @@ class CORE_EXPORT QgsScaleBarSettings //! Number of map units per scale bar units (e.g. 1000 to have km for a map with m units) double mNumMapUnitsPerScaleBarUnit = 1.0; //! Either fixed (i.e. mNumUnitsPerSegment) or try to best fit scale bar width (mMinBarWidth, mMaxBarWidth) - SegmentSizeMode mSegmentSizeMode = SegmentSizeFixed; + Qgis::ScaleBarSegmentSizeMode mSegmentSizeMode = Qgis::ScaleBarSegmentSizeMode::Fixed; //! Minimum allowed bar width, when mSegmentSizeMode is FitWidth double mMinBarWidth = 50.0; //! Maximum allowed bar width, when mSegmentSizeMode is FitWidth @@ -702,18 +665,17 @@ class CORE_EXPORT QgsScaleBarSettings //! Space between bar and Text labels double mLabelBarSpace = 3.0; //! Label's vertical placement - LabelVerticalPlacement mLabelVerticalPlacement = LabelAboveSegment; + Qgis::ScaleBarDistanceLabelVerticalPlacement mLabelVerticalPlacement = Qgis::ScaleBarDistanceLabelVerticalPlacement::AboveSegment; //! Label's horizontal placement - LabelHorizontalPlacement mLabelHorizontalPlacement = LabelCenteredEdge; + Qgis::ScaleBarDistanceLabelHorizontalPlacement mLabelHorizontalPlacement = Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredEdge; //! Space between content and item box double mBoxContentSpace = 1.0; - Alignment mAlignment = AlignLeft; + Qgis::ScaleBarAlignment mAlignment = Qgis::ScaleBarAlignment::Left; Qgis::DistanceUnit mUnits = Qgis::DistanceUnit::Meters; - std::unique_ptr< QgsNumericFormat > mNumericFormat; }; diff --git a/src/core/scalebar/qgssingleboxscalebarrenderer.cpp b/src/core/scalebar/qgssingleboxscalebarrenderer.cpp index 7103a0d6e66f..63175bd4ed16 100644 --- a/src/core/scalebar/qgssingleboxscalebarrenderer.cpp +++ b/src/core/scalebar/qgssingleboxscalebarrenderer.cpp @@ -68,7 +68,7 @@ void QgsSingleBoxScaleBarRenderer::draw( QgsRenderContext &context, const QgsSca const double scaledLabelBarSpace = context.convertToPainterUnits( settings.labelBarSpace(), Qgis::RenderUnit::Millimeters ); const double scaledBoxContentSpace = context.convertToPainterUnits( settings.boxContentSpace(), Qgis::RenderUnit::Millimeters ); const QFontMetricsF fontMetrics = QgsTextRenderer::fontMetrics( context, settings.textFormat() ); - const double barTopPosition = scaledBoxContentSpace + ( settings.labelVerticalPlacement() == QgsScaleBarSettings::LabelAboveSegment ? fontMetrics.ascent() + scaledLabelBarSpace : 0 ); + const double barTopPosition = scaledBoxContentSpace + ( settings.labelVerticalPlacement() == Qgis::ScaleBarDistanceLabelVerticalPlacement::AboveSegment ? fontMetrics.ascent() + scaledLabelBarSpace : 0 ); const double barHeight = context.convertToPainterUnits( settings.height(), Qgis::RenderUnit::Millimeters ); painter->save(); diff --git a/src/core/scalebar/qgssteppedlinescalebarrenderer.cpp b/src/core/scalebar/qgssteppedlinescalebarrenderer.cpp index c0747277fac3..e1ce67cc514c 100644 --- a/src/core/scalebar/qgssteppedlinescalebarrenderer.cpp +++ b/src/core/scalebar/qgssteppedlinescalebarrenderer.cpp @@ -68,7 +68,7 @@ void QgsSteppedLineScaleBarRenderer::draw( QgsRenderContext &context, const QgsS const double scaledLabelBarSpace = context.convertToPainterUnits( settings.labelBarSpace(), Qgis::RenderUnit::Millimeters ); const double scaledBoxContentSpace = context.convertToPainterUnits( settings.boxContentSpace(), Qgis::RenderUnit::Millimeters ); const QFontMetricsF fontMetrics = QgsTextRenderer::fontMetrics( context, settings.textFormat() ); - const double barTopPosition = scaledBoxContentSpace + ( settings.labelVerticalPlacement() == QgsScaleBarSettings::LabelAboveSegment ? fontMetrics.ascent() + scaledLabelBarSpace : 0 ); + const double barTopPosition = scaledBoxContentSpace + ( settings.labelVerticalPlacement() == Qgis::ScaleBarDistanceLabelVerticalPlacement::AboveSegment ? fontMetrics.ascent() + scaledLabelBarSpace : 0 ); const double barBottomPosition = barTopPosition + context.convertToPainterUnits( settings.height(), Qgis::RenderUnit::Millimeters ); painter->save(); diff --git a/src/core/scalebar/qgsticksscalebarrenderer.cpp b/src/core/scalebar/qgsticksscalebarrenderer.cpp index b7778b3ad031..b530658222e3 100644 --- a/src/core/scalebar/qgsticksscalebarrenderer.cpp +++ b/src/core/scalebar/qgsticksscalebarrenderer.cpp @@ -101,7 +101,7 @@ void QgsTicksScaleBarRenderer::draw( QgsRenderContext &context, const QgsScaleBa const double scaledLabelBarSpace = context.convertToPainterUnits( settings.labelBarSpace(), Qgis::RenderUnit::Millimeters ); const double scaledBoxContentSpace = context.convertToPainterUnits( settings.boxContentSpace(), Qgis::RenderUnit::Millimeters ); const QFontMetricsF fontMetrics = QgsTextRenderer::fontMetrics( context, settings.textFormat() ); - const double barTopPosition = scaledBoxContentSpace + ( settings.labelVerticalPlacement() == QgsScaleBarSettings::LabelAboveSegment ? fontMetrics.ascent() + scaledLabelBarSpace : 0 ); + const double barTopPosition = scaledBoxContentSpace + ( settings.labelVerticalPlacement() == Qgis::ScaleBarDistanceLabelVerticalPlacement::AboveSegment ? fontMetrics.ascent() + scaledLabelBarSpace : 0 ); const double scaledHeight = context.convertToPainterUnits( settings.height(), Qgis::RenderUnit::Millimeters ); const double scaledSubdivisionsHeight = context.convertToPainterUnits( settings.subdivisionsHeight(), Qgis::RenderUnit::Millimeters ); const double scaledMaxHeight = ( ( settings.numberOfSubdivisions() > 1 ) && ( scaledSubdivisionsHeight > scaledHeight ) ) ? scaledSubdivisionsHeight : scaledHeight; diff --git a/src/gui/layout/qgslayoutscalebarwidget.cpp b/src/gui/layout/qgslayoutscalebarwidget.cpp index f195451905e6..79bfb9e224c6 100644 --- a/src/gui/layout/qgslayoutscalebarwidget.cpp +++ b/src/gui/layout/qgslayoutscalebarwidget.cpp @@ -311,13 +311,13 @@ void QgsLayoutScaleBarWidget::setGuiElements() Qt::Alignment a = Qt::AlignLeft; switch ( mScalebar->alignment() ) { - case QgsScaleBarSettings::AlignLeft: + case Qgis::ScaleBarAlignment::Left: a = Qt::AlignLeft; break; - case QgsScaleBarSettings::AlignRight: + case Qgis::ScaleBarAlignment::Right: a = Qt::AlignRight; break; - case QgsScaleBarSettings::AlignMiddle: + case Qgis::ScaleBarAlignment::Middle: a = Qt::AlignHCenter; break; } @@ -326,19 +326,25 @@ void QgsLayoutScaleBarWidget::setGuiElements() //units mUnitsComboBox->setCurrentIndex( mUnitsComboBox->findData( static_cast< int >( mScalebar->units() ) ) ); - if ( mScalebar->segmentSizeMode() == QgsScaleBarSettings::SegmentSizeFixed ) + switch ( mScalebar->segmentSizeMode() ) { - mFixedSizeRadio->setChecked( true ); - mSegmentSizeWidget->setEnabled( true ); - mMinWidthWidget->setEnabled( false ); - mMaxWidthWidget->setEnabled( false ); - } - else /*if(mComposerScaleBar->segmentSizeMode() == QgsComposerScaleBar::SegmentSizeFitWidth)*/ - { - mFitWidthRadio->setChecked( true ); - mSegmentSizeWidget->setEnabled( false ); - mMinWidthWidget->setEnabled( true ); - mMaxWidthWidget->setEnabled( true ); + case Qgis::ScaleBarSegmentSizeMode::Fixed: + { + mFixedSizeRadio->setChecked( true ); + mSegmentSizeWidget->setEnabled( true ); + mMinWidthWidget->setEnabled( false ); + mMaxWidthWidget->setEnabled( false ); + break; + } + + case Qgis::ScaleBarSegmentSizeMode::FitWidth: + { + mFitWidthRadio->setChecked( true ); + mSegmentSizeWidget->setEnabled( false ); + mMinWidthWidget->setEnabled( true ); + mMaxWidthWidget->setEnabled( true ); + break; + } } mMinWidthSpinBox->setValue( mScalebar->minimumBarWidth() ); mMaxWidthSpinBox->setValue( mScalebar->maximumBarWidth() ); @@ -476,26 +482,26 @@ void QgsLayoutScaleBarWidget::changeNumberFormat() return; } -QgsLayoutScaleBarWidget::DistanceLabelPlacement QgsLayoutScaleBarWidget::distanceLabelPlacement( QgsScaleBarSettings::LabelHorizontalPlacement horizontalPlacement, QgsScaleBarSettings::LabelVerticalPlacement verticalPlacement ) +QgsLayoutScaleBarWidget::DistanceLabelPlacement QgsLayoutScaleBarWidget::distanceLabelPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement horizontalPlacement, Qgis::ScaleBarDistanceLabelVerticalPlacement verticalPlacement ) { switch ( horizontalPlacement ) { - case QgsScaleBarSettings::LabelCenteredEdge: + case Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredEdge: switch ( verticalPlacement ) { - case QgsScaleBarSettings::LabelAboveSegment: + case Qgis::ScaleBarDistanceLabelVerticalPlacement::AboveSegment: return DistanceLabelPlacement::CenteredAboveSegmentEdges; - case QgsScaleBarSettings::LabelBelowSegment: + case Qgis::ScaleBarDistanceLabelVerticalPlacement::BelowSegment: return DistanceLabelPlacement::CenteredBelowSegmentEdges; } BUILTIN_UNREACHABLE - case QgsScaleBarSettings::LabelCenteredSegment: + case Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment: switch ( verticalPlacement ) { - case QgsScaleBarSettings::LabelAboveSegment: + case Qgis::ScaleBarDistanceLabelVerticalPlacement::AboveSegment: return DistanceLabelPlacement::CenteredAboveSegmentCenters; - case QgsScaleBarSettings::LabelBelowSegment: + case Qgis::ScaleBarDistanceLabelVerticalPlacement::BelowSegment: return DistanceLabelPlacement::CenteredBelowSegmentCenters; } BUILTIN_UNREACHABLE @@ -645,20 +651,20 @@ void QgsLayoutScaleBarWidget::mDistanceLabelPlacementComboBox_currentIndexChange switch ( placement ) { case DistanceLabelPlacement::CenteredAboveSegmentEdges: - mScalebar->setLabelVerticalPlacement( QgsScaleBarSettings::LabelVerticalPlacement::LabelAboveSegment ); - mScalebar->setLabelHorizontalPlacement( QgsScaleBarSettings::LabelHorizontalPlacement::LabelCenteredEdge ); + mScalebar->setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement::AboveSegment ); + mScalebar->setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredEdge ); break; case DistanceLabelPlacement::CenteredAboveSegmentCenters: - mScalebar->setLabelVerticalPlacement( QgsScaleBarSettings::LabelVerticalPlacement::LabelAboveSegment ); - mScalebar->setLabelHorizontalPlacement( QgsScaleBarSettings::LabelHorizontalPlacement::LabelCenteredSegment ); + mScalebar->setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement::AboveSegment ); + mScalebar->setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment ); break; case DistanceLabelPlacement::CenteredBelowSegmentEdges: - mScalebar->setLabelVerticalPlacement( QgsScaleBarSettings::LabelVerticalPlacement::LabelBelowSegment ); - mScalebar->setLabelHorizontalPlacement( QgsScaleBarSettings::LabelHorizontalPlacement::LabelCenteredEdge ); + mScalebar->setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement::BelowSegment ); + mScalebar->setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredEdge ); break; case DistanceLabelPlacement::CenteredBelowSegmentCenters: - mScalebar->setLabelVerticalPlacement( QgsScaleBarSettings::LabelVerticalPlacement::LabelBelowSegment ); - mScalebar->setLabelHorizontalPlacement( QgsScaleBarSettings::LabelHorizontalPlacement::LabelCenteredSegment ); + mScalebar->setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement::BelowSegment ); + mScalebar->setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment ); break; } @@ -677,8 +683,8 @@ void QgsLayoutScaleBarWidget::alignmentChanged() mScalebar->beginCommand( tr( "Set Scalebar Alignment" ) ); disconnectUpdateSignal(); - const QgsScaleBarSettings::Alignment a = mAlignmentComboBox->currentAlignment() & Qt::AlignLeft ? QgsScaleBarSettings::AlignLeft - : mAlignmentComboBox->currentAlignment() & Qt::AlignRight ? QgsScaleBarSettings::AlignRight : QgsScaleBarSettings::AlignMiddle; + const Qgis::ScaleBarAlignment a = mAlignmentComboBox->currentAlignment() & Qt::AlignLeft ? Qgis::ScaleBarAlignment::Left + : mAlignmentComboBox->currentAlignment() & Qt::AlignRight ? Qgis::ScaleBarAlignment::Right : Qgis::ScaleBarAlignment::Middle; mScalebar->setAlignment( a ); mScalebar->update(); connectUpdateSignal(); @@ -773,12 +779,12 @@ void QgsLayoutScaleBarWidget::segmentSizeRadioChanged( QAbstractButton *radio ) disconnectUpdateSignal(); if ( mFixedSizeRadio->isChecked() ) { - mScalebar->setSegmentSizeMode( QgsScaleBarSettings::SegmentSizeFixed ); + mScalebar->setSegmentSizeMode( Qgis::ScaleBarSegmentSizeMode::Fixed ); mScalebar->setUnitsPerSegment( mSegmentSizeSpinBox->value() ); } else /*if(mFitWidthRadio->isChecked())*/ { - mScalebar->setSegmentSizeMode( QgsScaleBarSettings::SegmentSizeFitWidth ); + mScalebar->setSegmentSizeMode( Qgis::ScaleBarSegmentSizeMode::FitWidth ); } mScalebar->update(); connectUpdateSignal(); diff --git a/src/gui/layout/qgslayoutscalebarwidget.h b/src/gui/layout/qgslayoutscalebarwidget.h index a4027b594f53..eac06671b0a0 100644 --- a/src/gui/layout/qgslayoutscalebarwidget.h +++ b/src/gui/layout/qgslayoutscalebarwidget.h @@ -23,7 +23,6 @@ #include "qgis_gui.h" #include "ui_qgslayoutscalebarwidgetbase.h" #include "qgslayoutitemwidget.h" -#include "qgsscalebarsettings.h" #include @@ -88,7 +87,7 @@ class GUI_EXPORT QgsLayoutScaleBarWidget: public QgsLayoutItemBaseWidget, public CenteredBelowSegmentEdges, CenteredBelowSegmentCenters, }; - static DistanceLabelPlacement distanceLabelPlacement( QgsScaleBarSettings::LabelHorizontalPlacement horizontalPlacement, QgsScaleBarSettings::LabelVerticalPlacement verticalPlacement ); + static DistanceLabelPlacement distanceLabelPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement horizontalPlacement, Qgis::ScaleBarDistanceLabelVerticalPlacement verticalPlacement ); QPointer< QgsLayoutItemScaleBar > mScalebar; QgsLayoutItemPropertiesWidget *mItemPropertiesWidget = nullptr; diff --git a/tests/src/core/testqgslayoutscalebar.cpp b/tests/src/core/testqgslayoutscalebar.cpp index 3c534b3a47c3..d0ebf7600d2e 100644 --- a/tests/src/core/testqgslayoutscalebar.cpp +++ b/tests/src/core/testqgslayoutscalebar.cpp @@ -225,7 +225,7 @@ void TestQgsLayoutScaleBar::singleBoxLabelBelowSegment() Q_NOWARN_DEPRECATED_PUSH scalebar->setLineWidth( 1.0 ); Q_NOWARN_DEPRECATED_POP - scalebar->setLabelVerticalPlacement( QgsScaleBarSettings::LabelBelowSegment ); + scalebar->setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement::BelowSegment ); qgis::down_cast< QgsBasicNumericFormat *>( const_cast< QgsNumericFormat * >( scalebar->numericFormat() ) )->setShowThousandsSeparator( false ); scalebar->setStyle( QStringLiteral( "Single Box" ) ); @@ -421,8 +421,8 @@ void TestQgsLayoutScaleBar::doubleBoxLabelCenteredSegment() Q_NOWARN_DEPRECATED_POP scalebar->setStyle( QStringLiteral( "Double Box" ) ); - scalebar->setLabelVerticalPlacement( QgsScaleBarSettings::LabelBelowSegment ); - scalebar->setLabelHorizontalPlacement( QgsScaleBarSettings::LabelCenteredSegment ); + scalebar->setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement::BelowSegment ); + scalebar->setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredSegment ); scalebar->setUnitLabel( QStringLiteral( "units" ) ); qgis::down_cast< QgsBasicNumericFormat *>( const_cast< QgsNumericFormat * >( scalebar->numericFormat() ) )->setShowThousandsSeparator( false );