Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Branch check #20

Closed
wants to merge 295 commits into from
Closed

Branch check #20

wants to merge 295 commits into from

Conversation

johnhaddon
Copy link
Owner

Generally describe what this PR will do, and why it is needed

  • List specific new features and changes to project components

Related issues

  • List any Issues this PR addresses or solves

Dependencies

  • List any other unmerged PRs that this PR depends on

Breaking changes

  • List any breaking API/ABI changes (and apply the pr-majorVersion label)

Checklist

  • I have read the contribution guidelines.
  • I have updated the documentation, if applicable.
  • I have tested my change(s) in the test suite, and added new test cases where necessary.
  • My code follows the Gaffer project's prevailing coding style and conventions.

murraystevenson and others added 30 commits November 24, 2023 10:53
We can't assume that if `dropSignal()` is emitted it was because _we_
accepted `dragEnterSignal()`. Another slot connected to `dragEnterSignal()`
may have accepted it instead, in which case we don't want to do anything in
our `GraphEditor.__drop`, on the assumption that another connection to
`dropSignal()` will be dealing with it.
It's pretty clear from 6d8060c that this keypress handling was only intended to apply to NodeEditors, but it was instead being applied to all Editors, which would lead to errors like this in the GraphEditor :

```
ERROR : EventSignalCombiner : Traceback (most recent call last):
  File "/home/john/dev/build/gaffer-1.3/python/GafferSceneUI/SceneHistoryUI.py", line 237, in __nodeEditorKeyPress
    __editSourceNode( context, scene, selectedPath, nodeEditor )
  File "/home/john/dev/build/gaffer-1.3/python/GafferSceneUI/SceneHistoryUI.py", line 128, in __editSourceNode
    nodeEditor.setNodeSet( Gaffer.StandardSet( [ node ] ) )
AttributeError: 'GraphEditor' object has no attribute 'setNodeSet'
```
SceneHistoryUI : Fix errors handling `Alt+E` on unexpected editors
GraphEditor : Create SceneReader, ImageReader or Reference nodes from file drag & drop
…loatPlug`

This addresses the problem raised in https://groups.google.com/g/gaffer-dev/c/9Ba1eaG1oeg, where AttributeQuery is failing to query a DoubleData attribute.
Until now, we were assuming that the plugs passed to `canSetValueOrAddKey()`
did not have inputs, because we had already called `spreadsheetAwareSource()`
to find the source plug. But that operates on V3fPlugs, and is blind to
individual connections to each XYZ component (recall that the parent plug only
has an input connection if all the children have connections from the children
of another parent). This meant that if you promoted just one component to a box,
or promoted several components individually, the transform handles would be
disabled. The solution is to call `source()` one more time to find the plug we actually
want to edit.

At one point, I thought that `canSetValueOrAddKey()` was destined for more
general usage, possibly in PlugAlgo. But the function in its new form isn't
suitable for that at all, as it is tailored to the specifics of TransformTool
operation. It would have been possible to keep it in its "pure" form, but only
at the expense of duplicating the new checks into each of the derived classes.
For instance, if every component had a connection from the same promoted
`uniformScale` plug. The problem here was that we were calling `setValueOrAddKey()`
for all the components, even the ones not affected by the individual handle being
dragged. Since each component is driven by the same plug, we'd be setting that
plug three times, and only the Z component would win because it was set last. But
if the Z component wasn't affected by the current handle, it would be setting the
scale back to its _original_ value. We now consider the plugs that are affected
by the current handle to avoid this clobbering. In the `uniformScale` case this
has the expected effect - no matter which handle you pick, you get uniform scaling.
…rsions

PlugAlgo : Convert all numeric types for `BoolPlug`, `IntPlug` and `FloatPlug`
The SetEditor one in particular was misleading, and both benefit from spelling out the important thread-safety reason for taking a static copy of the context.
…textComments

HierarchyView, SetEditor : Improve comments surrounding context copies
TransformTool : Fix corner cases involving connection to individual XYZ components
Should have done this in the PR itself.
Delight MeshAlgo : Convert subdivision corners and creases
This is in order to define header and cell tooltips, maybe in the future we'll be able to do this directly for header tooltips via StandardPathColumn.
…ionFilter

SetEditor : Display and filter by selected set members
By setting the child to `None` and _then_ hiding the frame, we were causing Qt
to do two lots of layouting, one with an empty frame and one with nothing. This could cause "jiggle" when switching between tools in the Viewer.

In an ideal world Qt would batch up these layout operations and do them once with no redraw in between. In fact I don't really know why it doesn't. As far as I know, it needs to return to the event loop to perform them, and I don't see where or how that's happening. But in lieu of real understanding, this is a simple and logical enough fix that removes a nasty visual annoyance.
johnhaddon and others added 28 commits June 24, 2024 09:54
LazyMethod : Fix running idle callback without a valid Qt Widget
As of today, actions are now run on Node20 by default, but this requires glibc >=2.28 so actions no longer run in our CentOS 7 build container.

Setting `ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true` allows us to continue using Node16 for the near future, but support for this may be removed in October...

https://github.blog/changelog/2024-05-17-updated-dates-for-actions-runner-using-node20-instead-of-node16-by-default/
…eateIfMissingIconFix

HistoryWindow : Add icon for `CreateIfMissing` tweak mode
There were two problems here :

- We weren't checking that the attribute was an array.
- When the attribute wasn't the right type, we were still setting the `singlePartMultiView` variable instead of ignoring the metadata as claimed. This later lead to an uninitialised read because `viewNames` was empty.
…ound

ImageReader : Fix handling of invalid EXR `multiView` attributes
@johnhaddon johnhaddon closed this Aug 7, 2024
@johnhaddon johnhaddon deleted the branchCheck branch August 7, 2024 09:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants