Skip to content

fix: dataset panel empty state non-responsive when splitter resized#94

Merged
BeckettFrey merged 2 commits intoreleasefrom
copilot/fix-dataset-panel-empty-state
Apr 13, 2026
Merged

fix: dataset panel empty state non-responsive when splitter resized#94
BeckettFrey merged 2 commits intoreleasefrom
copilot/fix-dataset-panel-empty-state

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 13, 2026

The "💡 Select a dataset to view its alignments below" helper label and the "No datasets registered" empty state label were both growing and shrinking as the splitter was dragged, due to Qt distributing extra vertical space evenly across all Preferred-policy widgets when stretch factors are all 0.

Root Cause

In _create_list_section, the outer QVBoxLayout held button_container, helper_label, and list_container all at the default stretch factor of 0. Qt's layout algorithm distributes leftover space evenly between them, causing the blue hint box to visibly resize.

Fix

# helper_label: locked to its natural (text + padding) height
helper_label.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)

# list_container absorbs all extra vertical space — helper_label no longer competes
layout.addWidget(list_container, 1)  # stretch=1

# empty state label: same treatment
self.empty_label.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
  • list_container gets stretch factor 1 → it owns all extra space; helper_label stays compact and consistent
  • Both labels get Fixed vertical size policy → height is strictly their sizeHint() regardless of panel size

Release Branch PR

Target Release:

Changes

  • Fixed helper_label ("Select a dataset…") resizing when splitter is dragged by setting vertical QSizePolicy to Fixed
  • Fixed empty_label ("No datasets registered") expanding to fill the panel by setting vertical QSizePolicy to Fixed
  • Gave list_container stretch factor 1 in the outer layout so it absorbs all extra vertical space, keeping the hint label at a consistent, smaller height
  • Added QSizePolicy to PyQt6 widget imports

Testing

  • Test testable logic
  • Edge cases addressed

Testing Notes:

Verified with ruff lint check — no issues. Existing GUI test structure confirmed empty_label and helper_label attributes remain accessible and behave as before (hide()/show() paths unchanged).

Documentation

  • README updated (if applicable)
  • Code comments added/updated
  • User-facing documentation updated (if applicable)

Documentation Notes:

No documentation changes required — purely a layout sizing fix.

Checklist

  • Code follows project conventions
  • No breaking changes (or documented if intentional)
  • All CI checks pass

Copilot AI linked an issue Apr 13, 2026 that may be closed by this pull request
Copilot AI changed the title [WIP] Fix dataset panel empty state responsiveness fix: dataset panel empty state non-responsive when splitter resized Apr 13, 2026
Copilot AI requested a review from BeckettFrey April 13, 2026 20:29
@BeckettFrey BeckettFrey marked this pull request as ready for review April 13, 2026 21:00
@BeckettFrey BeckettFrey merged commit d126e22 into release Apr 13, 2026
@BeckettFrey BeckettFrey deleted the copilot/fix-dataset-panel-empty-state branch April 13, 2026 21:01
BeckettFrey added a commit that referenced this pull request Apr 14, 2026
* fixes #64: add ai optimized documentation file

* fix: replace localhost help_url defaults with production URL (#92)

* Initial plan

* fix: replace localhost help_url defaults with production URL

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/496f7ed1-fdaa-4df9-b574-5ab55254c136

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* fix: dataset panel empty state non-responsive when splitter resized (#94)

* Initial plan

* fix: prevent helper_label and empty_label from resizing with splitter

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/ede8fa76-ccf4-4940-bd76-7f46adde44c5

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* setup-logging (#95)

* Refactor configuration and update release workflow process (#96)

* refactor: remove shadowed config

* replace: move to invoke for os agnostic clarity

* remove release workflow in favor of more manual steps

* Configure shredguard for blocking regex patterns (#98)

* fix: don't mark first launch complete on startup script error (#99)

* Initial plan

* fix: don't mark first launch complete on startup script error

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/e51a7557-a81e-4972-a7e6-45133b115413

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* fix: readable_from_unique_id handles prefixed IDs from generate_unique_id (#101)

* Initial plan

* fix: handle prefixed IDs in readable_from_unique_id

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/f6936450-f9a2-4df8-b75a-b403d98db565

Co-authored-by: BeckettFrey <[email protected]>

* fix: raise descriptive ValueError when no timestamp found in readable_from_unique_id

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/f6936450-f9a2-4df8-b75a-b403d98db565

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* Initial plan (#103)

Co-authored-by: copilot-swe-agent[bot] <[email protected]>

* Revert "Initial plan (#103)" (#106)

This reverts commit b9ab4a0.

* Fix problem with dedicated internal function (#107)

* fix: add empty-ID guard to delete_model to prevent wiping engine models directory (#100)

* Initial plan

* fix: add empty-ID guard to delete_model to prevent wiping engine models directory

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/0cce5a70-83a5-4c00-b1e8-19f85cb895d1

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* fix: validate_dataset checks stem-name pairing between audio and label files (#102)

* Initial plan

* fix: validate_dataset checks stem-name pairing between audio and label files

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/73d34692-65d9-48a2-9621-7127982837a2

Co-authored-by: BeckettFrey <[email protected]>

* chore: remove accidentally committed root conftest.py

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/46f1cfe0-1564-47a8-85ea-4c404b6b23f8

Co-authored-by: BeckettFrey <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: BeckettFrey <[email protected]>

* 82/fix view btn width (#105)

* Fix button width inconsistency

* Migrate to table style

---------

Co-authored-by: Copilot <[email protected]>
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.

Dataset panel empty state non-responsive

2 participants