Skip to content

[Feature]: A fixed Labeling ribbon tab for every label control on the ribbon #897

Closed

Description

@jgregoriorincon

Before you start

What problem does this solve?

Label controls on the ribbon are split across two tabs, and they no longer fit on Style:

  • Style doesn't fit. With a feature layer selected, Style scrolls on a laptop-sized window. Its five label groups (Labels, Label Range, Label Placement, Label Class, Text Symbol) take about 40% of its width; without them, the rest of Style fits with room to spare (screenshots in How should the ribbon be organised? A look at what's there today #862).
  • Labels are on two tabs. Style has those five groups. View › Labeling has Label, Lock, Pause, View Unplaced and Convert. The Label on/off button (labels.enable) is on both.
  • More is coming. Tracking: feature parity with GeoLibre #77 brings offsets, priority, halo colour and width and expressions, which would grow exactly that part of Style.

Agreed in #862 (the ribbon overhaul discussion) with @giswqs and @Mavrick-F.

Proposed solution

A fixed Labeling tab, right after Style: always shown, like Style and Data, not contextual (#99 removed contextual tabs on purpose, so the tab strip doesn't change with the selected layer). With no feature layer selected, it shows the same hint Style shows, next to the map-wide settings, which work without a layer.

Purpose: "How the map is labelled: what gets a label, with which text, where, and at which scales, plus the label settings for the whole map."

Groups, in the order of the Labeling pane's topic tabs (#858 step 3: Class, Symbol, Position, Range):

  1. Labels: Label (on/off) · Properties (opens the Labeling pane)
  2. Label Class: Class · Field
  3. Text Symbol: Size · Color · Bold · Halo
  4. Label Placement: Placement
  5. Label Range: Out Beyond / In Beyond · Closest / Farthest · Clear Limits
  6. Map Labeling: Lock · Pause · View Unplaced · Convert (Convert's tooltip says it acts on the selected layer)

The rule for what goes on the tab: the Labeling pane holds every label setting; the tab holds only the everyday ones listed above. Font, italic, line placement, SQL and what #77 brings stay in the pane only, so the tab doesn't end up scrolling as Style does now.

What changes elsewhere:

  • Style loses its five label groups, and its purpose sentence no longer mentions labels.
  • View loses its Labeling group, and with it the duplicate Label button.
  • View › Windows › Labeling and the layer's right-click menu still open the pane.
  • Command ids stay the same, so the CLI, scripts and shortcuts keep working. The commands' locations (Style › Label …, View › Labeling) move to Labeling › …, which Command Search, the Script help and Show me read.
  • ribbon::current_tab maps the old tab name "Labeling" to Style today; it would map to the new tab, so saved pane sets and scripts naming it land there again.
  • Docs: the ribbon and labelling pages of the user guide.

To be done after the Labeling pane steps of #858, so the tab follows the pane's tabs and the same code isn't changed twice.

Estimated scope

Medium: a broader feature that is feasible in a reasonable timeframe

Alternatives considered

Activity

  1. jgregoriorincon commented on Oct 26, 2026

    @jgregoriorincon
    CollaboratorAuthor

    I'm working on this now that the Labeling pane steps of #858 are in (#917, and #919 approved). One PR: the tab after Style with the five layer groups in the pane's tab order, then Map Labeling; Style and View lose their label groups; the commands' locations move to Labeling › … and current_tab maps "Labeling" to the new tab.

  2. added a commit that references this issue on Oct 26, 2026
    b5ead75
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions