Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add vertically stacked, tri-state bulk-selection controls for standard-range and extended-range CAN frame IDs on the main capture screen.
The controls appear directly below Frame Filtering: and above the existing per-ID filter list:
This allows users to quickly select or deselect potentially large groups of frame IDs without changing every individual checkbox.
Behavior
Standard (11-bit)
Controls all currently known numeric IDs from:
0x000 through 0x7FF
Extended (29-bit)
Controls all currently known numeric IDs from:
0x800 through 0x1FFFFFFF
Each group checkbox displays:
Changing an individual frame-ID checkbox immediately recalculates the applicable group state.
The existing All and None buttons also synchronize both group checkboxes.
Layout
The two group selectors are stacked vertically rather than placed side by side. This avoids unnecessarily increasing the width of the frame-filtering sidebar.
Implementation
This change:
MainWindow::updateFilterList()that could leaveinhibitFilterUpdateenabled when a filter collection is empty.Scope
This PR does not change:
CANFrameModel::clearFrames()setClearMode()Current model limitation
The existing frame-filter map is keyed only by numeric CAN ID and does not include the extended-frame-format flag in the key.
Accordingly, this focused change groups IDs by numeric range. It does not attempt to distinguish a numerically low extended-format ID from a standard ID with the same numeric identifier. Supporting that distinction would require a broader redesign of the filter model and saved-filter format.
Validation
Tested successfully on Windows x64 with Qt 5.15.2 and MSVC.
Commit tested:
4f8c107
Build validation
Functional validation
0x000through0x7FF.0x800through0x1FFFFFFF.Screenshots
Final screenshots of the vertically stacked controls and partial-selection behavior will be attached below.