Skip to content

fix(network): prevent QQuickRepeater model-swap crash - #107

Open
OmarTahon wants to merge 1 commit into
ilyamiro:masterfrom
OmarTahon:fix/network-repeater-crash
Open

fix(network): prevent QQuickRepeater model-swap crash#107
OmarTahon wants to merge 1 commit into
ilyamiro:masterfrom
OmarTahon:fix/network-repeater-crash

Conversation

@OmarTahon

Copy link
Copy Markdown

Fixes #91

Root cause

NetworkPopup.qml changes the live orbitRepeater.model identity between infoListModel, wifiListModel, btListModel, and null. Network mode can also change from Process completion callbacks. That re-evaluates the model binding and reaches the same native path reported in #91:

Process::onFinished()
StdioCollector::streamFinished()
QQuickRepeater::setModel()
QQuickRepeater::clear()
SIGSEGV

Changes

  • add a permanent orbitDisplayModel;
  • keep orbitRepeater.model bound to that model for its lifetime;
  • mirror Wi-Fi/Bluetooth/info contents into the presentation model;
  • refresh presentation contents on mode/info-view changes;
  • use a formal onExited: function(exitCode, exitStatus) handler;
  • qualify the child-scope isHighlighted / locksList references through floatCard.

Validation

Independently reproduced on Arch Linux + Hyprland with Quickshell 0.3.0 and Qt 6.11.1.

After the patch:

  • repeated Bluetooth/Wi-Fi/info-view switching survived;
  • repeated workspace-button switching survived;
  • exactly one bar remained;
  • no new SIGSEGV;
  • no new coredump;
  • no new ReferenceError/TypeError from the tested path.

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.

[BUG] Quickshell crash on Bluetooth toggle allows manual infinite bar duplication via UI clicks

1 participant