Skip to content

[Feature]: One place per label setting: the ribbon edits the chosen class, the Labeling pane by topic #858

Closed

Description

@jgregoriorincon

Before you start

What problem does this solve?

Since #722 the Labeling pane edits the label class chosen at its top, but the label controls are spread over five places, each with its own subset and none saying which class it changes:

Place What it has
Style › Labels, Label Range, Label Placement, Label Class, Text Symbol on/off, Properties, scale and distance range, placement, field, size, colour, bold, halo
View › Labeling on/off, Lock, Pause, View Unplaced, Convert
View › Windows › Labeling opens the pane
The layer's context menu Label / Turn Labels Off, Labeling Properties…
The Labeling pane all of the above, plus the classes, SQL, italic, font and line placement

What this leads to:

  • The ribbon always edits Default, while the pane edits the chosen class. With a class chosen in the pane, changing the size in the ribbon changes another class than the one on screen.
  • Style › Label Class only picks the field; it doesn't choose a class.
  • Labels on/off is in four places, and Lock, Pause and View Unplaced in two.
  • The ribbon lacks what came later (italic, font, line placement), so each new setting means deciding again where it goes.
  • The pane is one long column mixing the map (Lock, Pause, View Unplaced), the layer (on/off, Convert) and the class (everything else), and keeps growing downwards. While testing [Feature]: Choose, add, rename, remove and order label classes in the Labeling pane #722, Rename and Remove were taken for each other: two similar words, side by side.

More settings are coming (the query editor, and expression labels with offset, priority and halo colour and width on the roadmap), so the structure should be settled before they're added.

Proposed solution

Keep the commands as they are (labels.* with their optional class); change only where the controls sit and which class they edit. In four small pull requests, each usable on its own:

  1. The ribbon follows the pane's chosen class. Style's label groups read and write the class chosen in the Labeling pane (Default when none is chosen), and say which one, e.g. the group title or a small "Class: Capitals" line. Style › Label Class becomes the class chooser, with the field beside it.
  2. A class header in the pane. At the top: the layer, labels on/off, and the class chooser with its Visible box. New, Rename, Move Up and Move Down go in a "⋯" menu beside the chooser, with Remove last and apart from them.
  3. Tabs by topic under the header instead of stacked sections: Class (Field · SQL), Symbol, Position, Range. Each tab stays short, and the notes under SQL become one compact note.
  4. The map's settings leave the pane. Lock, Pause and View Unplaced apply to the whole map and are already in View › Labeling, so they go out of the pane. Convert to Annotation goes to the layer's header or its context menu.

Questions before starting:

  • Should the ribbon show the chosen class (step 1), or should the ribbon stay on Default and say so?
  • Tabs (step 3), or collapsible sections like other panes?
  • Is moving Map Labeling out of the pane (step 4) fine, given View › Labeling has it?
  • A Labeling ribbon tab was folded into Style on purpose in Reorganise the ribbon by task: Home, Data, Style, Edit, Analyze, View, Publish #99; this proposal keeps it there.

Estimated scope

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

Alternatives considered

  • Leave the ribbon on Default and only say so in its tooltips: no code moves, but the ribbon and the pane still show two different classes at once.
  • Remove the label controls from the ribbon and keep only Label and Properties: one place for everything, but the quick access the ribbon gives is gone.
  • Bring back a contextual Labeling ribbon tab: room for every setting, but Reorganise the ribbon by task: Home, Data, Style, Edit, Analyze, View, Publish #99 removed it on purpose.
  • Keep the stacked sections and only regroup them: smaller, but the pane still grows downwards with every new setting.

Related: #617 (the Labeling pane), #618, #722 and #732 (label classes), #99 (ribbon by task), #651 (one undo step per drag).

Activity

  1. jgregoriorincon commented on Oct 25, 2026

    @jgregoriorincon
    CollaboratorAuthor

    I'm working on this.

  2. deniial00 commented on Oct 25, 2026

    @deniial00
    Member

    @jgregoriorincon thanks for writing this up, and go ahead with it. I noticed the same thing: label settings in five places, the ribbon editing Default while the pane edits another class, and the on/off toggle in four spots.

    For me it's part of a bigger picture. I've been looking at the whole ribbon: every tab, group and dropdown, what each one opens, how often it's likely used, and where controls repeat. About 27 commands or panes can be reached from more than one place, and some panes have up to 8 buttons opening them. I'll open a discussion with my findings, plus some ideas for a ribbon overhaul and rules for what gets a button.

    Your proposal fits well with that. On your questions:

    • Ribbon and chosen class: the ribbon should follow the class chosen in the pane and show its name. Staying on Default while the pane shows another class is the confusing part.
    • Map-wide settings out of the pane: fine with me, since Lock, Pause and View Unplaced apply to the whole map and View › Labeling already has them.
    • Convert to Annotation: it is a layer action, so the layer's header or context menu sounds right.
    • Tabs or collapsible sections: either works for me; tabs keep each part short, which matters as more settings arrive.

    I'll link the discussion here once it's up.

  3. jgregoriorincon commented on Oct 25, 2026

    @jgregoriorincon
    CollaboratorAuthor

    Thanks! I'll start with step 1 (the ribbon's class chooser) and keep it small, so it doesn't get in the way of the ribbon overhaul. Looking forward to the discussion.

  4. deniial00 commented on Oct 25, 2026

    @deniial00
    Member

    Hey, I created #862 - chime in!

  5. jgregoriorincon commented on Oct 25, 2026

    @jgregoriorincon
    CollaboratorAuthor

    Step 1 is in with #863: the ribbon's label groups now edit and choose the pane's class.

    I'm working on step 2 now, the class header in the Labeling pane (branch feat/label-class-header):

    • At the top: the layer, labels on/off, the class chooser with a "⋯" menu beside it, and Visible.
    • The "⋯" menu holds New, Rename, Move Up and Move Down, then Remove last, after a separator and in red. Remove keeps no confirmation, since Ctrl+Z undoes it.
    • The enabling rules stay as they are (no Remove or moving for Default, New off at the class limit).
    • The labels.class.* commands will name "View › Windows › Labeling" as their location instead of "Style › Label Class", since those actions are only in the pane.
    • The header scrolls with the pane for now. Step 3's tabs keep each part short.

    I'll open the PR when it's ready.

  6. jgregoriorincon commented on Oct 25, 2026

    @jgregoriorincon
    CollaboratorAuthor

    Step 2 is in with #892. I'm working on steps 3 and 4 together now:

    • Under the header, a tab per topic: Class (Field · SQL), Symbol, Position and Range, one at a time.
    • Map Labeling leaves the pane. Lock, Pause and View Unplaced apply to the whole map and stay on the ribbon (View › Labeling, later the Labeling tab, [Feature]: A fixed Labeling ribbon tab for every label control on the ribbon #897).
    • Convert to Annotation moves to the layer's right-click menu, next to Labeling Properties…, and stays on the ribbon.
    • The notes under SQL stay as they are for now; making them one compact note is for a later PR.

    I'll open the PR when it's ready.

  7. jgregoriorincon commented on Oct 26, 2026

    @jgregoriorincon
    CollaboratorAuthor

    Steps 3 and 4 are in with #917, and #919 made the label field a searchable box like the font. The ribbon side is done too: #935 (closing #897) adds a fixed Labeling tab with the label groups in the pane's tab order.

    One item is left from step 3: the notes under SQL (labels off, hidden class, "each class labels…") become one compact note. I'll open a small PR for it, and it will close this issue.

  8. added a commit that references this issue on Oct 26, 2026
    9edfc91
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