Skip to content

Doc: cross-reference TXDSP-style ID alias in ContainerWidget drag-start (follow-up to #1836) #3056

Description

@ten9876

Background

PR #3044 (just merged, closes #1836) added an aliasing fallback in `AppletPanel::dropEvent` so composite tiles whose internal `ContainerWidget.m_id` differs from their owning `AppletEntry.id` (the TXDSP case: `tx_dsp` vs `TXDSP`) still reorder correctly via drag.

The aliasing works automatically — but the contract is implicit. The drag MIME is set in `ContainerWidget::onTitleBarDragStart` (`src/gui/containers/ContainerWidget.cpp:150`) from `m_id`, while the receiving lookup in `AppletPanel.cpp` has the fallback. A future composite-tile author has to know to look at the receiving side to understand why their `m_id != AppletEntry.id` case works.

Proposed fix

Add a brief comment at the MIME-set line in `ContainerWidget::onTitleBarDragStart` cross-referencing the alias fallback in `AppletPanel::dropEvent`. Something like:

```cpp
// Note: the MIME id here is the container's m_id. For composite tiles
// whose AppletEntry.id differs from m_id (e.g. TXDSP wraps a tx_dsp
// container), AppletPanel::dropEvent has an aliasing fallback that
// catches the mismatch by looking up the container instead. See #1836.
mime->setData("application/x-aethersdr-applet", m_id.toUtf8());
```

Effort

~1 minute. Single-line comment addition. No behavioral change.

Eligibility

`aetherclaude-eligible` candidate — pure documentation.

Spotted by

Bot review on PR #3044 — observation #1: "drift risk — worth a one-liner in ContainerWidget::onTitleBarDragStart referencing this fallback so the contract is discoverable from both ends."

Metadata

Metadata

Assignees

No one assigned

    Labels

    GUIUser interfacedocumentationImprovements or additions to documentationenhancementImprovement to existing featuregood first issueGood for newcomersmaintainer-reviewRequires maintainer review before any action is taken

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions