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

APPLE: Fix for PySide 6.5.0 initialization order. #2392

Closed

Conversation

creijon
Copy link
Contributor

@creijon creijon commented Apr 20, 2023

Description of Change(s)

The recent change in Pyside 6.5.0 here:

pyside/pyside-setup@e809546

Introduced correct multiple inheritance through the use of the super() Method Resolution Order. I checked the MRO of ViewSettingsDataModel, which was:

<class 'pxr.Usdviewq.viewSettingsDataModel.ViewSettingsDataModel'>
<class 'PySide6.QtCore.QObject'>
<class 'Shiboken.Object'>
<class 'pxr.Usdviewq.settings.StateSource'>
<class 'object'>

This meant that the StateSource object wasn't being initialised correctly. With this change the MRO is:

<class 'pxr.Usdviewq.viewSettingsDataModel.ViewSettingsDataModel'>
<class 'pxr.Usdviewq.settings.StateSource'>
<class 'PySide6.QtCore.QObject'>
<class 'Shiboken.Object'>
<class 'object'>

And the initialisation works correctly. Checked with PySide 6.5.0 and 6.4.3

Fixes Issue(s)

  • usdview runtime exception on startup.
  • I have verified that all unit tests pass with the proposed changes
  • I have submitted a signed Contributor License Agreement

@sunyab
Copy link
Contributor

sunyab commented Apr 20, 2023

Filed as internal issue #USD-8255

pixar-oss pushed a commit that referenced this pull request Jun 21, 2023
The recent change in Pyside 6.5.0 here:

pyside/pyside-setup@e809546

Introduced correct multiple inheritance through the use of the `super()` Method Resolution Order.  I checked the MRO of ViewSettingsDataModel, which was:

```
<class 'pxr.Usdviewq.viewSettingsDataModel.ViewSettingsDataModel'>
<class 'PySide6.QtCore.QObject'>
<class 'Shiboken.Object'>
<class 'pxr.Usdviewq.settings.StateSource'>
<class 'object'>
```

This meant that the `StateSource` object wasn't being initialised correctly.  With this change the MRO is:

```
<class 'pxr.Usdviewq.viewSettingsDataModel.ViewSettingsDataModel'>
<class 'pxr.Usdviewq.settings.StateSource'>
<class 'PySide6.QtCore.QObject'>
<class 'Shiboken.Object'>
<class 'object'>
```

And the initialisation works correctly.  Checked with PySide 6.5.0 and 6.4.3

Contribution: Apple

Fixes #2392

(Internal change: 2281902)
@sunyab
Copy link
Contributor

sunyab commented Jun 21, 2023

This PR was merged into the dev branch in 78e66de.

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.

2 participants