Commit Graph

149 Commits

Author SHA1 Message Date
baldurk dc16db6c2d Disable the $event() filter for now
* It's of very little value and causes more confusion than it's worth.
2021-07-01 15:15:04 +01:00
baldurk 3d2101476e Add marker breadcrumbs to event browser. Closes #1031 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 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 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 b591b12eac Preserve event browser expansion across filtering 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 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 00efa28f2f Fix a crash if user tries to toggle bookmark with no capture loaded 2021-06-30 16:18:08 +01:00
baldurk b4ec703d97 Expose shader printf messages in the UI 2021-05-11 16:15:31 +01:00
baldurk 728fa34acc Move branch colouring to RDTreeView 2021-02-24 13:52:07 +00:00
baldurk 0f07545151 Add context menu item for toggling bookmarks on events 2021-02-18 15:41:55 +00:00
baldurk 026da176bb Update copyright years to 2021 2021-01-13 13:56:10 +00:00
baldurk 7ff7e0a71d Replace fixed C arrays with wrapper class in public interface
* These map more naturally to python tuples and are easier to wrap in and out.
* We also tidy up the FloatVecVal etc and standardise the members of
  ShaderValue.
2020-12-09 18:16:08 +00:00
baldurk 9610919c16 Fix copy-paste of rich resource text
* We need to cache to the QString text on demand, which requires a context
  potentially sooner than paint/etc time.
2020-12-02 17:44:46 +00:00
Kevin McCullough e213cfafa9 Modifying the TextureList to use EventBrowser-style chooser. 2020-10-15 22:19:44 +01:00
baldurk 936e6372cb Remove use of 3rdparty/ prefix from includes
* We instead always have 3rdparty/ in the relevant include search paths and rely
  on that. Each library still has its own unique base dir within 3rdparty to
  clarify where the include is coming from.
2020-03-11 18:00:53 +00:00
baldurk 2916c0f9f7 Update copyright years to 2020 2020-01-06 16:20:45 +00:00