Commit Graph

53 Commits

Author SHA1 Message Date
baldurk 2916c0f9f7 Update copyright years to 2020 2020-01-06 16:20:45 +00:00
baldurk ff08748238 Ensure all files have trailing new-lines and enforce with clang warning 2019-12-02 20:28:05 +00:00
baldurk ca9e43fd6e Add hoverItemChanged event to RDTreeWidget 2019-09-30 13:41:14 +01:00
baldurk 775fa9b635 Disconnect item model before deleting RDTreeWidget/RDTreeView
* This avoids odd races where some events might be fired mid-destruction and
  encounter the item model in an undefined state.
2019-05-21 13:58:38 +01:00
baldurk 3d2fa8cd3e Optimise RichResourceText to special-case for single ResourceId text
* Most cases don't have other text together with a ResourceId, so handle an
  isolated ResourceId specially and manually render it.
* Further work - we could cache the name the same way as the RichResourceText
  does. So far it doesn't seem to appear on profiling.
2019-03-29 17:48:15 +00:00
baldurk 13d35645be When clearing RDTreeWidgetItem don't remove children one-by-one 2019-03-27 17:57:56 +00:00
baldurk 9b15368c37 Remove unused code 2019-03-27 17:57:44 +00:00
baldurk 86ff87863e Update copyright years to 2019 2019-02-01 18:32:13 +00:00
baldurk ce88558a7c Refactor RDTreeWidgetDelegate into RichTextViewDelegate that is reusable
* This allows us to add rich text support much more easily into other itemviews
  like RDTableView.
* We set it up for debug messages so that resource links in debug messages can
  be linked.
2018-12-17 17:10:34 +00:00
baldurk edc5815463 Move expansion saving to RDTreeView so it can be used in more places. 2018-08-06 16:23:02 +01:00
baldurk ec2806df06 Add context menu for manipulating watch panel 2018-06-22 19:28:34 +01:00
baldurk 5b3a12cd0c Save and restore tree expansion state when repopulating locals widget 2018-06-22 19:28:33 +01:00
baldurk cb0df2c844 Combine together structs/arrays in HLSL locals panel 2018-06-22 19:28:33 +01:00
baldurk cad5520238 Tweak the event browser to support richtext in drawcall names
* This lets Resource ID text become links to the resource inspector even
  in drawcall names (like glBlitFramebuffer(src, dst)).
2018-02-13 21:10:06 +00:00
baldurk 2f41469228 clang compile fix - missing override specifier 2018-02-13 10:08:58 +00:00
baldurk f2ece44e49 Implement sorting for RDTreeWidget 2018-02-12 20:48:05 +00:00
baldurk e305029ddd Update copyright years to 2018 2018-01-01 17:55:29 +00:00
baldurk 8931ed4086 Move leave and keyPress events from RDTreeWidget to RDTreeView 2017-11-29 19:01:23 +00:00
baldurk cadc0f3855 Fix issue chaining RDTreeWidgetDelegate onto RDTreeViewDelegate
* We need to inherit to chain these two, as otherwise when the tree view
  delegate calls sizeHint() it passes to the tree widget delegate, but
  then has no way to return back to the tree view for the overridden
  initStyleOption.
* If there was a built-in way to chain delegates like styles (which
  solve this problem by calling back to baseStyle when going from one
  function to another), or better yet a way to avoid the base
  QStyledItemDelegate initStyleOption from completely trampling all over
  the option passed in to any function, this wouldn't be necessary.
2017-11-22 19:11:24 +00:00
baldurk 43d561a4c0 Fix NULL checking and NULL dereferencing issues
* Reported by Coverity Scan - most of these are not an issue and a
  couple of them are coverity getting really confused (like seeing a
  pointer being assigned to NULL and a count to 0, then a few lines
  later declaring that a loop 0..count will dereference the pointer).
* However it's harmless in all cases to add a bit of robustness to keep
  the analysis happy.
2017-11-22 19:11:21 +00:00
baldurk 32a74e20e1 Extract out most code for text-with-ResourceId-links from RDTreeWidget
* The RDTreeWidget items still use this code, but it can now be reused
  on other widgets like RDLabel.
2017-11-21 14:45:22 +00:00
baldurk 31b7662db1 Fix adding empty tree widget items in performance counter selection 2017-11-20 20:01:01 +00:00
baldurk e790555914 Fix another case with not enough column data and protect against crashes 2017-11-17 17:06:51 +00:00
baldurk d206a012f3 Fix incorrect data-to-column count when adding data to treewidget
* We also add an error in case it happens again.
2017-11-17 16:33:00 +00:00
baldurk 200f0799a4 Generate clickable links to resource inspector in RDTreeWidget 2017-11-17 16:30:56 +00:00
baldurk fb6211a3db Return user data from RDTreeWidget for UserRole variants 2017-11-17 16:30:47 +00:00
baldurk 62260a6404 Add column alignment function to RDTreeWidget 2017-10-27 12:26:01 +01:00
baldurk 01b1260734 Make sure to refresh model if only children were added 2017-08-31 18:34:16 +01:00
baldurk d68f00ca72 Reset hover index when widget is cleared, don't leave it to be stale 2017-08-28 18:50:18 +01:00
baldurk f295df15f4 Add missing override specifier 2017-08-24 22:38:16 +01:00
baldurk 5619ed66b4 Fix RDTreeWidget to allow for checkable items 2017-08-24 16:33:39 +01:00
baldurk 81ec99b58a Don't crash in data() if no data has ever been set. Allow adding columns 2017-08-24 16:04:26 +01:00
baldurk c0b123c575 Add itemChanged signal for RDTreeWidget 2017-08-24 16:03:49 +01:00
baldurk 1f13a1466e Add RDTreeWidgetItemIterator for depth-first forward-only iteration 2017-08-24 16:03:01 +01:00
baldurk 1b88a39339 Optimise tree widget clearing and child adding by batching updates
* This takes a nice chunk of time off the pipeline state view in
  particular when changing between events.
2017-08-21 17:14:21 +01:00
baldurk b6a73a4bb0 Draw custom coloured tree widget lines over the top of built-in style 2017-07-28 19:06:40 +01:00
baldurk 3b6f63be0d Make event browser columns properly resizable and re-orderable
* Annoyingly although Qt has an internal bool allowUserMoveOfSection0
  which does exactly what we want allowing the tree column to be
  movable, we can't enable it because it's private. So instead we have
  to re-implement section moving ourselves.
* Minor tweak - also made RDTreeWidgets non-movable by default since
  usually we don't want to allow it.
2017-06-03 00:38:02 +01:00
baldurk 0c3dec3b67 Go back to manually drawing PE_PanelItemViewItem in drawBranches()
* There's a messy order-of-operations thing to deal with various
  different themes, as well as a couple of minor problems, but at least
  the highlight and selection bars draw fairly consistently and don't
  leave an ugly gap over the branches.
2017-06-02 17:30:41 +01:00
baldurk bf791b7854 Use 20% highlight colour instead of window for hovering on tree widgets 2017-06-01 18:48:05 +01:00
baldurk 49243c0878 Use a style proxy setting SH_ItemView_ShowDecorationSelected to fill
* This still isn't perfect with some custom style stuff but it's next
  to impossible to get working right. In theory we should manually
  draw PE_PanelItemViewItem in the gap in drawRow() or so to make sure
  we also draw any on-hover highlight over objects, but that doesn't
  seem to work.
2017-06-01 18:28:13 +01:00
baldurk a30c704e46 Inherit RDTreeWIdget from RDTreeView instead of QTreeView 2017-06-01 14:15:17 +01:00
baldurk c95f7c4cea Add default copy-paste handlers for RDListWidget and RDTreeWidget 2017-05-30 16:13:41 +01:00
baldurk 641eaf4665 Add option to instantly show tooltips over RDTreeWidget items 2017-05-30 14:08:44 +01:00
baldurk f9908927ad Add RDTreeWidgetItem overload that constructs from QVariantList 2017-05-15 10:11:55 +01:00
baldurk 4fb8b22b2d QBrush() is not a 'use default' return value from a model, QVariant() is 2017-05-09 18:49:44 +01:00
baldurk bbff0fce1c Implement row colouring and tree colouring in event browser.
* Also do custom painting of branches to do proper full-row colouring
  instead of leaving an ugly gap around the tree controls.
2017-05-04 20:36:46 +01:00
baldurk 4199a857f5 Add right-click context menu to event browser with expand/collapse all 2017-04-27 19:47:50 +01:00
baldurk 04bfcdff71 Fix linux build with problems overriding functions 2017-04-22 02:25:03 +01:00
baldurk d699e89fd2 Switch RDTreeWidget to inherit from QTreeView instead of QTreeWidget
* We add our own custom item model to handle the cases we need. We can
  also make a few assumptions and optimisations around things we can
  safely assume like e.g. nodel columns won't really change after init.
* This lets us have full control over batching updates, which was the
  main motivation, but it makes it easier to extend in future (e.g.
  adding single per-item tags instead of the heavyweight Qt::UserRole
  data elements).
2017-04-21 18:44:51 +01:00
baldurk 0c79d778e9 Add shortcuts for functionality in event browser 2017-02-13 19:20:13 +00:00