-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Collapsible Widget API v1.1 #23
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #23 +/- ##
==========================================
+ Coverage 83.00% 83.30% +0.30%
==========================================
Files 20 20
Lines 606 617 +11
==========================================
+ Hits 503 514 +11
Misses 103 103 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - thanks!
Made a few tiny suggestions
## TODO Add tests for different layouts | ||
## TODO Add tests for removing widgets not in the container |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need issues for these, so we keep track of TODO's in one place?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would say always have issues rather than TODOs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the following covers the first TODO.
brainglobe-utils/tests/tests/test_qtpy/test_collapsible_widget.py
Lines 162 to 196 in 20960e8
@pytest.mark.parametrize( | |
"layout, collapsible", | |
[ | |
(QVBoxLayout(), True), | |
(QHBoxLayout(), True), | |
(QFormLayout(), True), | |
(QVBoxLayout(), False), | |
(QHBoxLayout(), False), | |
(QFormLayout(), False), | |
], | |
) | |
def test_collapsible_widget_container_add_remove_widgets( | |
qtbot, collapsible_widget_container, generic_widget, layout, collapsible | |
): | |
qtbot.addWidget(collapsible_widget_container) | |
generic_widget.setLayout(layout) | |
generic_widget.layout().addWidget(QLabel("test")) | |
generic_widget.layout().addWidget(QPushButton("test")) | |
collapsible_widget_container.add_widget( | |
generic_widget, collapsible=collapsible, widget_title=WIDGET_TITLE | |
) | |
assert collapsible_widget_container.layout().count() == 1 | |
# Convert collapsible to int (False -> 0, True -> 1) | |
# to check if collapsible_widgets is empty | |
assert len(collapsible_widget_container.collapsible_widgets) == int( | |
collapsible | |
) | |
collapsible_widget_container.remove_widget(generic_widget) | |
assert collapsible_widget_container.layout().count() == 0 | |
assert len(collapsible_widget_container.collapsible_widgets) == 0 |
And I've just added a test to check an exception is thrown when trying to remove a widget that hasn't been added to the container.
Co-authored-by: Alessandro Felder <[email protected]>
…ainglobe/brainglobe-utils into collapsible-widget-parent-bug
* docs: update README.md [skip ci] * docs: create .all-contributorsrc [skip ci] * Update README.md --------- Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Adam Tyson <[email protected]>
* Initial commit * bump * bump * bump * add bump2version * Bump version: 0.0.2 → 0.0.3 * add pre commit hooks * update testing * reorder ci * fix non-istropic loading error * Bump version: 0.0.3 → 0.0.4 * Gh actions (#3) * add gh actions * Update testing * update testing * add lint * coveralls * coveralls * deploy * Bump version: 0.0.4 → 0.0.5 * update readme * transfer to brainglobe * run tests on PR * update coverage * support python 3.9 * Bump version: 0.0.5 → 0.0.6 * update bump2version * Bump version: 0.0.6 → 0.1.0-rc0 * Bump version: 0.1.0-rc0 → 0.1.0 * Update setup.py * add missing import * Update README.md * fix linting * Exclude tests from packaged distributions (#6) * Update pre commit * reformat * Python 3.10 compatibility * Bump version: 0.1.0 → 0.2.0-rc0 * update GH actions * Bump version: 0.2.0-rc0 → 0.2.0-rc1 * Bump version: 0.2.0-rc1 → 0.2.0 * Revert older changes * Fix deprecation of tifffile.imsave replaced by tifffile.imwrite. (#8) Co-authored-by: Jules Scholler <[email protected]> * Bump version: 0.2.1 → 0.2.2-rc0 * Bump version: 0.2.2-rc0 → 0.2.2 * Add link to contributing guide * Add tox and use brainglobe/actions (#10) * Add tox and use brainglobe actions for testing * Update pre-commit * run pre-commit * Update tox.ini * Bump version: 0.2.2 → 0.2.3-rc0 * Bump version: 0.2.3-rc0 → 0.2.3 * Long description (#11) * Add long description for PyPI * Bump version: 0.2.3 → 0.2.4-rc0 * Bump version: 0.2.4-rc0 → 0.2.4 * Change coverage badge to codecov. * Test on recent python versions (#13) * Test on recent python versions * Bump pre-commit versions * Fix dtype issue * Remove straggling mention of 3.7 * Replace brainglobe > NI actions (#14) * Use standard pre-commit config (#15) * Add standard pre-commit config * pre-commit fixes * Use pyproject.toml (#16) * Filter warnings in pytest (#17) * Filter warnings in pytest * Filter nptyping warnings * Add all-contributors * Update README.md Co-authored-by: David Stansby <[email protected]> * docs: add crousseau as a contributor for code, ideas, and test (#25) * docs: update README.md [skip ci] * docs: create .all-contributorsrc [skip ci] * Remove badge --------- Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Adam Tyson <[email protected]> * Don't skip CI for all-contrbutors-bot * Update .all-contributorsrc * docs: add jaimergp as a contributor for code (#23) * docs: update README.md [skip ci] * docs: create .all-contributorsrc [skip ci] * Update README.md --------- Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Adam Tyson <[email protected]> * docs: add JulesScholler as a contributor for code (#22) * docs: update README.md [skip ci] * docs: create .all-contributorsrc [skip ci] * Update README.md * Update .all-contributorsrc * Update .all-contributorsrc --------- Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Adam Tyson <[email protected]> * docs: add dstansby as a contributor for test, code, and 3 more (#21) * docs: update README.md [skip ci] * docs: create .all-contributorsrc [skip ci] * Update README.md --------- Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Adam Tyson <[email protected]> * docs: add adamltyson as a contributor for code, infra, and 2 more (#24) * docs: update README.md [skip ci] * docs: create .all-contributorsrc [skip ci] * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] * Update README.md --------- Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Adam Tyson <[email protected]> * Update doc links (#27) * [pre-commit.ci] pre-commit autoupdate (#28) updates: - [github.com/charliermarsh/ruff-pre-commit: v0.0.240 → v0.0.272](astral-sh/ruff-pre-commit@v0.0.240...v0.0.272) - [github.com/psf/black: 23.1.0 → 23.3.0](psf/black@23.1.0...23.3.0) - [github.com/pre-commit/mirrors-mypy: v0.991 → v1.3.0](pre-commit/mirrors-mypy@v0.991...v1.3.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Update dependency (imlib -> brainglobe-utils) (#29) * [pre-commit.ci] pre-commit autoupdate (#31) updates: - [github.com/charliermarsh/ruff-pre-commit: v0.0.272 → v0.0.275](astral-sh/ruff-pre-commit@v0.0.272...v0.0.275) - [github.com/pre-commit/mirrors-mypy: v1.3.0 → v1.4.1](pre-commit/mirrors-mypy@v1.3.0...v1.4.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * remove all contributors (#32) * [pre-commit.ci] pre-commit autoupdate (#33) updates: - https://github.com/charliermarsh/ruff-pre-commit → https://github.com/astral-sh/ruff-pre-commit - [github.com/astral-sh/ruff-pre-commit: v0.0.275 → v0.0.276](astral-sh/ruff-pre-commit@v0.0.275...v0.0.276) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#34) updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.276 → v0.0.277](astral-sh/ruff-pre-commit@v0.0.276...v0.0.277) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Update CI workflow to use NIU actions (#35) * [pre-commit.ci] pre-commit autoupdate (#36) updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.277 → v0.0.278](astral-sh/ruff-pre-commit@v0.0.277...v0.0.278) - [github.com/psf/black: 23.3.0 → 23.7.0](psf/black@23.3.0...23.7.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#37) updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.278 → v0.0.280](astral-sh/ruff-pre-commit@v0.0.278...v0.0.280) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#38) updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.280 → v0.0.281](astral-sh/ruff-pre-commit@v0.0.280...v0.0.281) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#39) updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.281 → v0.0.282](astral-sh/ruff-pre-commit@v0.0.281...v0.0.282) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#40) updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.282 → v0.0.284](astral-sh/ruff-pre-commit@v0.0.282...v0.0.284) - [github.com/pre-commit/mirrors-mypy: v1.4.1 → v1.5.0](pre-commit/mirrors-mypy@v1.4.1...v1.5.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#41) updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.284 → v0.0.285](astral-sh/ruff-pre-commit@v0.0.284...v0.0.285) - [github.com/pre-commit/mirrors-mypy: v1.5.0 → v1.5.1](pre-commit/mirrors-mypy@v1.5.0...v1.5.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#42) updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.285 → v0.0.286](astral-sh/ruff-pre-commit@v0.0.285...v0.0.286) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Set pre-commit autoupdate frequency to monthly (#43) * [pre-commit.ci] pre-commit autoupdate (#44) updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.286 → v0.0.287](astral-sh/ruff-pre-commit@v0.0.286...v0.0.287) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#45) updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.287 → v0.0.292](astral-sh/ruff-pre-commit@v0.0.287...v0.0.292) - [github.com/psf/black: 23.7.0 → 23.9.1](psf/black@23.7.0...23.9.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#48) updates: - [github.com/pre-commit/pre-commit-hooks: v4.4.0 → v4.5.0](pre-commit/pre-commit-hooks@v4.4.0...v4.5.0) - [github.com/astral-sh/ruff-pre-commit: v0.0.292 → v0.1.4](astral-sh/ruff-pre-commit@v0.0.292...v0.1.4) - [github.com/psf/black: 23.9.1 → 23.10.1](psf/black@23.9.1...23.10.1) - [github.com/pre-commit/mirrors-mypy: v1.5.1 → v1.6.1](pre-commit/mirrors-mypy@v1.5.1...v1.6.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#49) updates: - [github.com/astral-sh/ruff-pre-commit: v0.1.4 → v0.1.6](astral-sh/ruff-pre-commit@v0.1.4...v0.1.6) - [github.com/psf/black: 23.10.1 → 23.11.0](psf/black@23.10.1...23.11.0) - [github.com/pre-commit/mirrors-mypy: v1.6.1 → v1.7.1](pre-commit/mirrors-mypy@v1.6.1...v1.7.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * [pre-commit.ci] pre-commit autoupdate (#50) updates: - [github.com/astral-sh/ruff-pre-commit: v0.1.6 → v0.1.9](astral-sh/ruff-pre-commit@v0.1.6...v0.1.9) - [github.com/psf/black: 23.11.0 → 23.12.1](psf/black@23.11.0...23.12.1) - [github.com/pre-commit/mirrors-mypy: v1.7.1 → v1.8.0](pre-commit/mirrors-mypy@v1.7.1...v1.8.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Update GH actions badge (#51) * Update test_and_deploy.yml (#52) See neuroinformatics-unit/movement#108 Co-authored-by: Igor Tatarnikov <[email protected]> * Add manifest (#54) * Update CI workflows with manifest * Allow workflow to be dispatchable * Add pyarrow dependency to prevent future pandas failures * [pre-commit.ci] pre-commit autoupdate (#53) updates: - [github.com/astral-sh/ruff-pre-commit: v0.1.9 → v0.2.0](astral-sh/ruff-pre-commit@v0.1.9...v0.2.0) - [github.com/psf/black: 23.12.1 → 24.1.1](psf/black@23.12.1...24.1.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * refactor image_io as submodule * Deprecated alias warning is still present * Fix an actual circular import because of wildcard import * Fix buggy html logo - wrong escape backslash --------- Co-authored-by: crousseau <[email protected]> Co-authored-by: Adam Tyson <[email protected]> Co-authored-by: Adam Tyson <[email protected]> Co-authored-by: Jaime Rodríguez-Guerra <[email protected]> Co-authored-by: Jules Scholler <[email protected]> Co-authored-by: Jules Scholler <[email protected]> Co-authored-by: David Stansby <[email protected]> Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Alessandro Felder <[email protected]> Co-authored-by: Igor Tatarnikov <[email protected]>
Description
What is this PR
Why is this PR needed?
The API for the collapsible widget was awkward to use.
What does this PR do?
The
CollapsibleWidgetContainer
now takes anyQWidget
and if the collapsible flag is True instantiates aCollapsibleWidget
and replaces the content with the inputQWidget
. Before, the user had to instantiate aCollapsibleWidget
and pass that to theCollapsibleWidgetContainer
if they wanted to widget to be collapsible.How has this PR been tested?
Tests have been added to cover the new functionality.
Checklist: