Conversation
|
Unable to perform a code review. You have run out of credits 😔 |
There was a problem hiding this comment.
Pull request overview
This PR introduces reusable helper functions restore_window_position() and save_window_position() to standardize window position persistence across pyRevit tools. The pattern is demonstrated by refactoring the "Measure 3D" tool to use these new utilities instead of inline position management code.
Key changes:
- Added
restore_window_position()andsave_window_position()helper functions inpyrevit/script.py - Refactored Measure 3D tool to use new helper functions, removing ~20 lines of duplicated code
- Removed unused
Systemimport from Measure tool
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
pyrevitlib/pyrevit/script.py |
Added two new helper functions for window position persistence with screen visibility validation |
extensions/pyRevitTools.extension/pyRevit.tab/Modify.panel/3D.pulldown/Measure.pushbutton/script.py |
Refactored to use new helper functions, removing inline window position management code and unused import |
- store width+height - reuse coreutils function
|
Great stuff Would you mind opening an issue about all the tools that could benefit from this @Wurschdhaud ? |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.25343+2308-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.25347+1751-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.25347+2146-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.25347+2208-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.25348+1520-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.25354+0912-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26006+2003-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26006+2004-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26007+1719-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26008+2103-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26008+2214-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26010+1645-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26010+2127-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26010+2154-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26011+1925-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26014+1705-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26014+2042-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26022+2138-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26023+2136-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26023+2141-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26025+1329-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26025+1418-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26030+2037-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26030+2039-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26030+2101-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26030+2136-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26030+2147-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26030+2212-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1043-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1111-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1304-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1323-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1433-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1538-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1543-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1553-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1612-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1624-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1738-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1743-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1829-wip |
|
📦 New work-in-progress (wip) builds are available for 5.3.1.26032+1937-wip |
|
📦 New work-in-progress (wip) builds are available for 6.0.0.26032+1956-wip |
|
📦 New work-in-progress (wip) builds are available for 6.0.0.26032+2005-wip |
|
📦 New work-in-progress (wip) builds are available for 6.0.0.26032+2008-wip |
|
📦 New public release are available for 6.0.0.26032+2040 |
|
📦 New public release are available for 6.0.0.26032+2040 |
Description
This PR introduces new helper functions
restore_window_position()andsave_window_position()to simplify persistent window positioning across pyRevit sessions. These functions encapsulate the common pattern of storing/restoring window coordinates with screen visibility validation.Implemented in "measure 3d" for testing.
Question for reviewers: Are there better or more Windows-native solutions for handling window position persistence that I should be aware of? I'm not familiar with alternatives beyond this approach.
Checklist
Before submitting your pull request, ensure the following requirements are met:
pipenv run black {source_file_or_directory}Related Issues
If applicable, link the issues resolved by this pull request:
Additional Notes
script.load_data()/script.store_data()infrastructureThank you for contributing to pyRevit! 🎉