From 594728002ce572fc292277e6b91dbe88967dbcf2 Mon Sep 17 00:00:00 2001 From: John Haddon Date: Mon, 6 Jun 2022 11:41:14 +0100 Subject: [PATCH 1/2] PlugLayout : Fix visibility of collapsible layouts with nesting We were hiding collapsibles if all their child widgets were hidden, but failing to account for nested collapsibles which might have held still-visible widgets. Fixes #4694. --- Changes.md | 2 +- python/GafferUI/PlugLayout.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Changes.md b/Changes.md index 231b0a38c84..e3483a14697 100644 --- a/Changes.md +++ b/Changes.md @@ -4,9 +4,9 @@ Fixes ----- +- PlugLayout : Fixed visibility of collapsible layouts with nesting (#4694). - Image Node Mix : Fixed incorrect results outside mask data window, and incorrect results when changing inputs. - 0.61.11.0 (relative to 0.61.10.0) ========= diff --git a/python/GafferUI/PlugLayout.py b/python/GafferUI/PlugLayout.py index 35347167e54..de9b19d724c 100644 --- a/python/GafferUI/PlugLayout.py +++ b/python/GafferUI/PlugLayout.py @@ -761,7 +761,10 @@ def update( self, section ) : collapsible.getChild().update( subsection ) - collapsible.setVisible( any ( [ w.getVisible() for w in subsection.widgets ] ) ) + collapsible.setVisible( + any( [ w.getVisible() for w in subsection.widgets ] ) or + any( [ w.getVisible() for w in collapsible.getChild().__collapsibles.values() ] ) + ) collapsible.getCornerWidget().setText( "" + " ( " + subsection.summary + " )" if subsection.summary else "" From 3b0f2523eedd7ba5dd6953b41dcee7e721301366 Mon Sep 17 00:00:00 2001 From: John Haddon Date: Mon, 6 Jun 2022 11:58:18 +0100 Subject: [PATCH 2/2] Gaffer startup : Support loading of Spreadsheets from 0.62.0.0a2 --- Changes.md | 5 +++ startup/Gaffer/spreadsheetCompatibility.py | 52 ++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 startup/Gaffer/spreadsheetCompatibility.py diff --git a/Changes.md b/Changes.md index 231b0a38c84..8956434cc15 100644 --- a/Changes.md +++ b/Changes.md @@ -1,6 +1,11 @@ 0.61.x.x (relative to 0.61.11.0) ========= +Improvements +------------ + +- Spreadsheet : Added ability to load files saved in Gaffer 0.62.0.0a2 and later. + Fixes ----- diff --git a/startup/Gaffer/spreadsheetCompatibility.py b/startup/Gaffer/spreadsheetCompatibility.py new file mode 100644 index 00000000000..a7001354e53 --- /dev/null +++ b/startup/Gaffer/spreadsheetCompatibility.py @@ -0,0 +1,52 @@ +########################################################################## +# +# Copyright (c) 2022, Cinesite VFX Ltd. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above +# copyright notice, this list of conditions and the following +# disclaimer. +# +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided with +# the distribution. +# +# * Neither the name of John Haddon nor the names of +# any other contributors to this software may be used to endorse or +# promote products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +########################################################################## + +import Gaffer + +def __getItemWrapper( originalGetItem ): + + def getItem( self, key ): + + # Allow loading of files saved in 0.62, where `activeRowNames` + # was renamed to `enabledRowNames`. + if key == "enabledRowNames": + key = "activeRowNames" + + return originalGetItem( self, key ) + + return getItem + +Gaffer.Spreadsheet.__getitem__ = __getItemWrapper( Gaffer.Spreadsheet.__getitem__ )