baldurk
3d2101476e
Add marker breadcrumbs to event browser. Closes #1031
2021-07-01 15:15:04 +01:00
baldurk
5a1f6fdba8
Elide tool button text if the button isn't large enough
2021-07-01 15:15:04 +01:00
baldurk
5e3c6bb745
persist whether the filter is open as part of the saved layout
2021-07-01 15:15:04 +01:00
baldurk
e5631c5b8d
Add a general help section to the filter config dialog
2021-07-01 15:15:03 +01:00
baldurk
587e7cbcaf
Add documentation for literal string matches
2021-07-01 15:15:03 +01:00
baldurk
7f38ecd452
Clear filter explanation before adding new items
2021-07-01 15:15:03 +01:00
baldurk
9d4b1d3f91
Support queries with no whitespace like $draw(EID>100)
2021-07-01 15:15:03 +01:00
baldurk
34cf40f13e
Allow $param(name = value) for consistency with other query conditions
2021-07-01 15:15:03 +01:00
baldurk
ca3e3afa66
Add saving of filters
...
* The current filter is preserved across runs even if it's not explicitly saved.
Saved filters are only updated with an explicit save - loading a filter then
making a change just cahnges the current scratch filter, it doesn't update the
saved filter until the user explicitly saves it.
2021-07-01 15:15:03 +01:00
baldurk
c5457a141b
Add settings popup that explains & documents filters
2021-07-01 15:15:03 +01:00
baldurk
6272683678
Remove event browser settings about hiding empty regions
2021-07-01 15:15:03 +01:00
baldurk
715ae0ea03
Don't match popmarker draws with $draw() by default
...
* This is a little bit inconsistent because they are technically draws, but
they're only draws so they can include the trailing API events in a region.
* Think of it this way:
Imagine we instead made PopMarker just a normal API event (which is how we want to treat it) and instead inserted a second 'internal' draw at the end of each region to contain the popmarker. This internal draw would be hardcoded to never show up in filters no matter what - even with an empty include-all filter. But it contains the other API events so they can be selected individually and filtered in/out.
In this scenario it's functionally equivalent to just using the PopMarker as that 'internal' draw containing its own API event and making it fail all draw filters. The only difference is that users can manually filter in the PopMarker draw with flags if they want.
2021-07-01 15:15:03 +01:00
baldurk
f82a26ea25
Add a regex filter function
2021-07-01 15:15:03 +01:00
baldurk
cb669175c8
Remove close buttons for find/filter now that the toolbars are togglable
2021-07-01 15:15:03 +01:00
baldurk
571fa835b2
Store text ranges of filters and colour-highlight subexpressions
...
* This won't be on by default in the final in-line version but will be used for
'explaining' a filter.
2021-07-01 15:15:03 +01:00
baldurk
cb7fdc9b94
Add auto-completion prompts for filter function parameters
2021-07-01 15:15:03 +01:00
baldurk
3bc221d625
Add a $dispatch() helper to filter only dispatches (and properties)
2021-07-01 15:15:03 +01:00
baldurk
7b83524bc8
Add duration property to $draw() filter
2021-07-01 15:15:03 +01:00
baldurk
1bb3f95b04
Register builtin filters similarly to custom filters
...
* We can't use the exact same interface because we want builtin filters to be
able to return specialised lambdas, but we at least register them by name.
This is helpful for ensuring the completion doesn't get out of sync, and we'll
use it next to provide function-specific completion
2021-07-01 15:15:03 +01:00
baldurk
195ab94e51
Implement filter function auto-completion prompts
2021-07-01 15:15:02 +01:00
baldurk
e3f55c511d
Add highlighting and display of filter parse errors
2021-07-01 15:15:02 +01:00
baldurk
f24b6c99e3
Format API call strings using important tags
2021-07-01 15:15:02 +01:00
baldurk
58b38337f1
Optimise tree view expand/collapse all to avoid slow Qt path
2021-07-01 15:15:02 +01:00
baldurk
5252a3b9b7
Refresh event browser model when resource renames change
2021-07-01 15:15:02 +01:00
baldurk
038b1d451a
Unselect current item if we get set to an event which is filtered out
...
* This can happen with bookmarks or anything else in the UI that sets the
current event.
2021-07-01 15:15:02 +01:00
baldurk
a253f01bb2
Add some bullet-proofing against invalid model indices
2021-07-01 15:15:02 +01:00
baldurk
7c2e7bff47
Fix previous/next drawcall buttons when some drawcalls are filtered out
2021-07-01 15:15:02 +01:00
baldurk
3c0e0803f9
Display the range for markers in the EID/draw columns
2021-07-01 15:15:02 +01:00
baldurk
385a254966
When rendering richtext documents, override document color for selection
2021-07-01 15:15:02 +01:00
baldurk
28c8a18617
Allow rich text to contain and embed html tags
2021-07-01 15:15:02 +01:00
baldurk
b2b6f4a7cf
Use line-height to get consistent rendering of rich text vs normal text
...
* Without this lines without icons actually end up smaller, meaning text between
different rich texts without a common table doesn't align together.
2021-07-01 15:15:01 +01:00
baldurk
5a65cbf62c
Tweak default item sizing in RDTreeView to better handle font scales
...
* We're somewhat trying to match Qt's behaviour here, as we want to ensure that
the items are always sized as if they have space for an icon when
ignoreIconSize() is true. In this case there's a +2 added "to avoid icons
overlapping" but only after the decorationsize is max'd with the font size. In
cases where the font is bigger than the icon, this is important.
2021-07-01 15:15:01 +01:00
baldurk
a1a0dee085
Handle richtext delegate in RDTreeView instead of widget
2021-07-01 15:15:01 +01:00
baldurk
b591b12eac
Preserve event browser expansion across filtering
2021-07-01 15:15:01 +01:00
baldurk
94b1dd3923
Add ability to update a working expansion struct instead of resetting
...
* This is mostly useful when using a filtering model so we want to save the
expansion state of nodes that are temporarily filtered out
2021-07-01 15:15:01 +01:00
baldurk
ec5f570fea
Add 'important' flag on structured data
2021-07-01 15:15:01 +01:00
baldurk
5dd3c95ee3
Add flags (not currently exposed in UI) for some different behaviours
2021-07-01 15:15:01 +01:00
baldurk
562905611d
Update fake markers to work with new event browser model
...
* Fake markers now need a real event ID. We don't want to have to remap all
events in a capture between UI and replay driver, so instead we assign non-
contiguous events above the normal range and expect the UI to handle it.
2021-07-01 15:15:01 +01:00
baldurk
c4e330ea05
Remove jump-to-EID button in event browser, merge with find
...
* When you search for a plain number (or explicitly @123) it will return that
EID in the find results first.
2021-07-01 15:15:01 +01:00
baldurk
163cd4668c
Searching for an EID should return it first before any text results
2021-07-01 15:15:01 +01:00
baldurk
2f7855d6cc
Optimise converting rich resource text to text only
...
* We don't have to do the full text document cache to just append the strings.
2021-07-01 15:15:01 +01:00
baldurk
dcaabf42e9
Allow python to register custom event filters
2021-07-01 15:15:01 +01:00
baldurk
21e52a10e5
Implement builtin filter expression parsing
2021-07-01 15:15:01 +01:00
baldurk
85954dabbf
Add simple stubbed UI for entering filter expressions
2021-07-01 15:15:01 +01:00
baldurk
b9476bad24
Add stubbed filter implementation, with hardcoded default filter
...
* This replicates the original filter behaviour, only draws with PopMarker draws
excluded
2021-07-01 15:15:01 +01:00
baldurk
c01c25d5d6
Cache chunk pointer as well as draw pointer
...
* This will be needed regularly for the filtering process so we want to be able
to query both out per-EID.
2021-07-01 15:15:00 +01:00
baldurk
aecf687098
Change event browser model to be event-based
2021-07-01 15:15:00 +01:00
baldurk
3a5e98f34e
Cache model indices at draw nodes
...
* This significantly improves parent() and lookups by EID
2021-07-01 15:15:00 +01:00
baldurk
7793f20d1a
Switch event browser to use a tree view with an item model
2021-07-01 15:15:00 +01:00
baldurk
a8d891bc8f
Fix compile warning on linux with Qt metatype comparison
2021-07-01 15:14:54 +01:00