Closed roomrys closed 3 months ago
The recent updates enhance the instance creation process in the application by introducing an offset
parameter, allowing for better control over the positioning of new instances. These changes are reflected across multiple components, including the GUI commands and widget interactions. Additionally, testing frameworks have been improved to validate these behaviors, ensuring that the application performs as intended across various user interactions.
Files | Change Summary |
---|---|
sleap/gui/app.py |
Added an offset parameter in newInstance method call within new_instance_menu_action and included a docstring for clarity. |
sleap/gui/widgets/video.py |
Refactored show_contextual_menu to use a new method create_contextual_menu , improving code organization and maintainability. |
tests/gui/widgets/test_docks.py |
Updated test_instances_dock to include centered_pair_predictions and verify the functionality of the "new instance" button with correct positioning. |
sequenceDiagram
participant User
participant GUI
participant Commands
participant Instances
User->>GUI: Click "New Instance" button
GUI->>Commands: Call newInstance(init_method, offset=10)
Commands->>Instances: Create new instance with offset
Instances-->>Commands: Return new instance
Commands-->>GUI: Update UI with new instance
GUI-->>User: Display new instance
🐰 In a meadow so bright,
New instances take flight.
With offsets in tow,
They leap to and fro,
A hop skip and jump,
Code's joy in a lump! 🌼
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Attention: Patch coverage is 84.00000%
with 4 lines
in your changes missing coverage. Please review.
Project coverage is 74.49%. Comparing base (
7ed1229
) to head (5c13fd6
). Report is 27 commits behind head on develop.
Files | Patch % | Lines |
---|---|---|
sleap/gui/widgets/video.py | 73.33% | 4 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Description
Whoops! The
init_method == "predicted"
did not do what I thought it did. When we double click aPredictedInstance
(to create a user-labeledInstance
), theinit_method
is the default"best"
https://github.com/talmolab/sleap/blob/28c34e22e0cf78e1774476d0ac76c7ea0b4814fe/sleap/gui/app.py#L1597-L1619Hence the intended check to see if we were creating from a double clicked prediction was not checking for the right thing https://github.com/talmolab/sleap/blob/28c34e22e0cf78e1774476d0ac76c7ea0b4814fe/sleap/gui/commands.py#L3017-L3024 .
Instead of adding more convoluted logic for determining when to add offset from the already given parameters, this PR instead adds an additional
offset
argument that can be passed in when calling thenewInstance
command from the desired methods.Others: Make
QtVideoPlayer
more unit-testableThis PR also adds the attributes
QtVideoPlayer.context_menu
(for keeping the right click context menu in memory and able to be tested) andQtVideoPlayer._menu_actions
(to easily refer to the actions stored in the context menu by the names seen in the GUI - also for testability).This PR also refactors the
QtVideoPlater.show_contextual_menu
method by delegating the creation of the menu to a new methodQtVideoPlayer.create_contextual_menu
which allows us to test the menu actions without needing to run theQMenu.exec_
method and trying to simulate a click on the menu.Types of changes
Does this address any currently open issues?
1859
Outside contributors checklist
Thank you for contributing to SLEAP!
:heart:
Summary by CodeRabbit
New Features
Bug Fixes
Tests
Documentation