99# not expressly granted therein are reserved by Shotgun Software Inc.
1010
1111import contextlib
12+ import enum
1213import traceback
1314
1415import sgtk
@@ -992,18 +993,18 @@ def _synchronize_tree(self):
992993 with self ._resize_window_for_tree ():
993994 self .ui .items_tree .build_tree ()
994995
995- @ property
996- def _fit_width_to_items ( self ): # type: () -> Literal["never", "initial", "always"]
997- """Calculate appropriate ``fit_width_to_items`` mode from app settings."""
998- known_values = ( "never" , "initial" , "always" )
999- default = known_values [ 0 ]
1000-
1001- value = self . _bundle . get_setting ( "fit_width_to_items" , default ). lower ()
1002- if value not in known_values :
1003- msg = "fit_width_to_items '%s' is not one of: %r. Defaulting to %s."
1004- logger . warning ( msg , value , known_values , default )
1005- value = default
1006- return value
996+ class FitWidthMode ( enum . Enum ):
997+ """Possible values for the "fit_width_to_items" setting."""
998+
999+ NEVER = "never"
1000+ INITIAL = "initial"
1001+ ALWAYS = "always"
1002+
1003+ @ classmethod
1004+ def _missing_ ( cls , value ):
1005+ msg = "%r is not one of: %r. Defaulting to %s."
1006+ logger . warning ( msg , value , [ mem . value for mem in cls ], cls . NEVER . value )
1007+ return cls . NEVER
10071008
10081009 @contextlib .contextmanager
10091010 def _resize_window_for_tree (self ): # type: () -> Iterator[None]
@@ -1016,21 +1017,22 @@ def _resize_window_for_tree(self): # type: () -> Iterator[None]
10161017 - ``fit_width_to_items`` is 'initial' and the tree was already populated
10171018
10181019 """
1019- mode = self ._fit_width_to_items
1020- if mode == "never" :
1020+ mode = self .FitWidthMode ( self . _bundle . get_setting ( "fit_width_to_items" ). lower ())
1021+ if mode == self . FitWidthMode . NEVER :
10211022 yield
1022- logger .debug ("Skipping resize: fit_width_to_items is 'never'." )
1023+ logger .debug ("Skipping resize: fit_width_to_items is %r." , mode . value )
10231024 else :
10241025 had_items = len (self ._get_tree_items ()) > 1
10251026 yield
10261027 current_items = self ._get_tree_items ()
10271028
10281029 if len (current_items ) < 2 :
10291030 logger .debug ("Skipping resize: No non-root items in tree" )
1030- elif had_items and mode == "initial" :
1031+ elif had_items and mode == self . FitWidthMode . INITIAL :
10311032 logger .debug (
1032- "Skipping resize: fit_width_to_items is 'initial' "
1033- "and tree was already populated."
1033+ "Skipping resize: fit_width_to_items is %r "
1034+ "and tree was already populated." ,
1035+ mode .value ,
10341036 )
10351037 else :
10361038 tree_size_hint = QtCore .QSize (0 , 0 )
0 commit comments