Skip to content

refactor(containers): ContainerWidget optional dragId eliminates AppletPanel fallback (#3057). Principle IX.#3058

Merged
ten9876 merged 1 commit into
mainfrom
aetherclaude/issue-3057
May 24, 2026
Merged

refactor(containers): ContainerWidget optional dragId eliminates AppletPanel fallback (#3057). Principle IX.#3058
ten9876 merged 1 commit into
mainfrom
aetherclaude/issue-3057

Conversation

@aethersdr-agent

Copy link
Copy Markdown
Contributor

Summary

Fixes #3057

What was changed

refactor(containers): ContainerWidget optional dragId eliminates AppletPanel fallback (#3057). Principle IX.

Files modified

  • src/gui/AppletPanel.cpp
  • src/gui/containers/ContainerWidget.cpp
  • src/gui/containers/ContainerWidget.h
 src/gui/AppletPanel.cpp                | 26 ++++++++++----------------
 src/gui/containers/ContainerWidget.cpp |  2 +-
 src/gui/containers/ContainerWidget.h   | 10 ++++++++++
 3 files changed, 21 insertions(+), 17 deletions(-)

Generated by AetherClaude (automated agent for AetherSDR)


🤖 aethersdr-agent · cost: $6.8496 · model: claude-opus-4-7

…etPanel fallback (#3057). Principle IX.

Adds ContainerWidget::dragId() / setDragId() so composite tiles can declare
the drag MIME payload that matches their owning AppletEntry.id directly.
TXDSP now sets dragId("TXDSP") at the wrap site; the aliasing fallback in
AppletPanel::dropEvent (added in #3044 to fix #1836) is now dead code and
removed in this PR.

Behavior-preserving:
- Non-composite tiles: m_dragId stays empty, dragId() returns m_id —
  drag MIME unchanged.
- TXDSP: drag MIME is now "TXDSP" (matches AppletEntry.id) instead of
  "tx_dsp" (the internal container id) — fast-path lookup hits directly.
- Container persistence keys (ContainerGeometry_tx_dsp, ContainerTree
  parent refs) read m_id, not m_dragId — completely unaffected. No
  migration needed.

Net diff is negative: ~12 LOC added in ContainerWidget header, 1 line
changed in ContainerWidget.cpp, +6 lines at the TXDSP wrap site, -14
lines of fallback removed in AppletPanel::dropEvent. Pure refactor.

Blast radius: risk_score=0.275, 10 high-risk affected (top: MainWindow,
AppletPanel ctor, MainWindow::buildUI). The transitive callers reach via
AppletPanel construction; the actual API surface change is purely
additive (new method, new field with default-empty semantics), so no
caller behavior changes. The only behavior delta is the TXDSP wrap site
explicitly opting into the new dragId.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@aethersdr-agent aethersdr-agent Bot requested a review from a team as a code owner May 24, 2026 15:19
@aethersdr-agent aethersdr-agent Bot enabled auto-merge (squash) May 24, 2026 15:19
@ten9876 ten9876 merged commit aef6e18 into main May 24, 2026
5 checks passed
@ten9876 ten9876 deleted the aetherclaude/issue-3057 branch May 24, 2026 16:55
G6PWY-Chris pushed a commit to G6PWY-Chris/AetherSDR that referenced this pull request Jun 22, 2026
…etPanel fallback (aethersdr#3057). Principle IX. (aethersdr#3058)

## Summary

Fixes aethersdr#3057

### What was changed

refactor(containers): ContainerWidget optional dragId eliminates
AppletPanel fallback (aethersdr#3057). Principle IX.

### Files modified

- `src/gui/AppletPanel.cpp`
- `src/gui/containers/ContainerWidget.cpp`
- `src/gui/containers/ContainerWidget.h`

```
 src/gui/AppletPanel.cpp                | 26 ++++++++++----------------
 src/gui/containers/ContainerWidget.cpp |  2 +-
 src/gui/containers/ContainerWidget.h   | 10 ++++++++++
 3 files changed, 21 insertions(+), 17 deletions(-)
```

---
Generated by AetherClaude (automated agent for AetherSDR)

---
<sub>🤖 aethersdr-agent · cost: $6.8496 · model: claude-opus-4-7</sub>

Co-authored-by: aethersdr-agent[bot] <273844287+aethersdr-agent[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refactor: ContainerWidget optional dragId property to eliminate AppletPanel fallback (follow-up to #1836)

1 participant