Scene Graph View
SceneGraphView
Module providing the SceneGraphView
class which provides a view of the scene
graph generated by Geolib3 from an arbitrary node.
You can find a complete set of examples using the SceneGraphView
widget in
$KATANA_ROOT/plugins/Src/Resources/Examples/Tabs/PrototypeSceneGraphTab.py
.
Feature Summary
The following list provides a summary of the features currently provided
by the SceneGraphView
API:
View the scene graph produced from an arbitrary node, usually this will be currently viewed node (defined by the blue view flag) but this does not need to be the case.
Customizable columns allowing you to view attributes at any scene graph location directly in the SceneGraphView, with the ability to specify sets of columns which can be shown or hidden.
Ability to specify arbitrary scene graph locations to act as top-level locations from which to view the currently generated scene graph.
Ability to customize context menus based on the scene graph location, column and/or current selection state when they were triggered.
Ability to interrogate attributes at arbitrary locations in the scene graph and be notified via a callback when they have changed.
Support for drag and drop of items through custom event callbacks.
Support for changing parameter values of multiple selected items in
SceneGraphView
widgets. When changing the value in a cell while multiple rows are selected, the cells in other selected rows in the same column change as well.Support for indicating a difference between the final value of an attribute that corresponds to a cell in a
SceneGraphView
widget and the value of a parameter that corresponds to the same cell, using an asterisk shown next to the value within a cell. When moving the pointer over such a cell, a pop-up widget is shown, showing the value of the attribute.
- class UI4.Widgets.SceneGraphView.SceneGraphView.SceneGraphView(debugMode=False, parent=None)
Bases:
object
The
SceneGraphView
class provides a customizable view of the scene graph as produced by Geolib3, from an arbitrary node which you specify. The following sections describe the various elements you are able to customize providing references to the relevant functions.Example tab plug-ins that demonstrate the use of the
SceneGraphView
class can be found in$KATANA_ROOT/plugins/Src/Resources/Examples/Tabs/PrototypeSceneGraphTab.py
.View Node
You are able to specify any node in the node graph document from which to view the scene graph. Historically the Scene Graph tab always used the node which had the view flag set. It is possible to mirror this behavior if you wish but it does not have to be the case.
You can use the function
setViewNode()
to set the node you wish to view from. This can be changed at any time during the life of a SceneGraphView.Internally, the
setViewNode()
function extracts the terminal Op backing the given node and uses it as the terminal Op for its managed Geolib3 client.1.1 Example Code
You can find example code for this feature in the examples module under
ExampleSceneGraphTab
.1.2 Related Functions
Column Configuration
You are able to completely customize the columns of data which are displayed in a
SceneGraphView
instance.Each column supports:
Specifying the column title display text and optional icon.
Specifying the scene graph attribute to display for a given row.
Controlling the column’s data type which in turn drives the mode of interaction in cells of a SceneGraphView’s columns.
Specifying the display order of a column.
Controlling the editability of values in a column.
Columns can be grouped into column sets. For example, columns Color, Intensity, and Exposure could all belong to a column set Basic Light Properties. You can control the visibility of individualcolumns or the visibility of the entire set.
2.1 Example Code
You can find example code for this feature in the examples module under
ColumnTestExample
.2.2 Related Functions
2.3 Related Classes
Scene Graph Attribute Inspection
Through a
SceneGraphView
instance you can programmatically obtain scene graph attributes for any location and register a callback for any further updates. This allows you to customize the behaviour of your own tabs based on the current state of the scene graph.3.1 Example Code
You can find example code for this feature in the examples module under
GetSceneGraphAttributesExample
.3.2 Related Functions
Top-Level Locations
You are able to specify any number of scene graph location paths to act as top-level locations within the
SceneGraphView
. Historically, the only top-level location has been/root
. Now, any scene graph location can be used as a top-level location.Top-level locations are efficient to add and remove and can be changed at any point during the lifetime of the
SceneGraphView
. They can be thought of as pointers into the larger scene graph effectively allowing you to focus a users attention on a smaller sub-tree of the larger scene graph.4.1 Example Code
You can find example code for this feature in the examples module under
TopLevelItemExampleTab
.4.2 Related Functions
Context Menu Customization
When a user right-clicks on a location in the
SceneGraphView
, a context menu will be displayed. TheSceneGraphView
provides a hook to allow you to customize the context menu and provide custom actions based on:The current selection state.
The column in which the right-click occurred.
The scene graph location path and top-level item under the pointer when the context menu was triggered.
5.1 Example Code
You can find example code for this feature in the examples module under
ContextMenuExample
.5.2 Related Functions
5.3 Related Classes
Filtering
You are able to configure a set of rules to filter what is displayed by the
SceneGraphView
. A Rule is composed of a target column, a specific evaluator (such asEqualTo
or Regular Expression matching) and one or more evaluator-specific criteria.In addition to specifying the rules that govern what is filtered, you can also specify the matching policy for the set of rules.
6.1 Example Code
You can find example code for triggering the rule filter dialog in the examples module under
FilteringExample
.6.2 Related Functions
Drag & Drop
Support for dragging and dropping of items in a
SceneGraphView
widget is available in the form of two event callback functions that can be set using functions in theSceneGraphView
API.The first of the event callbacks,
setDragMoveEventCallback()
, is called when items are being dragged over aSceneGraphView
widget, and can be used to determine whether the dragged items could be dropped onto the widget.The second of the event callbacks,
setDropEventCallback()
, is called when dragged items are dropped onto theSceneGraphView
widget, and can be used to provide custom behavior based on the number and types of the dropped items and the item onto which the dragged items have been dropped (if any).7.1 Example Code
You can find example code for this feature in the examples module under
TopLevelItemExampleTab
.7.2 Related Functions
- See:
- See:
- classmethod GetStopAtLocationTypes()
- Return type:
tuple
ofstr
- Returns:
The names of types of locations at which to stop expanding or collapsing the scene graph when using the Expand To or Collapse To menu commands, or when double-clicking a group location in the Scene Graph tab.
- classmethod Initialize()
Initializes components of the
SceneGraphView
widget Python package.
- classmethod SetStopAtLocationTypes(*locationTypes)
Sets the types of locations at which to stop expanding or collapsing the scene graph when using the Expand To or Collapse To menu commands, or when double-clicking a group location in the Scene Graph tab.
- Parameters:
locationTypes (
sequence
ofstr
) – A sequence of names of types of locations at which to stop expanding or collapsing the scene graph.
- __init__(debugMode=False, parent=None)
Initializes an instance of the class.
- Parameters:
debugMode (
bool
) – Flag that controls whether to use aDebugViewLink
or aTreeWidgetViewLink
implementation for the view link used by theUI4.Widgets.SceneGraphView.Bridge.Bridge
.parent (
QtWidgets.QWidget
orNone
) – The parent widget to use for theSceneGraphView
widget instance, orNone
to initialize a top-level widget.
- addAttributeDataItemType(itemTypeClass)
Adds a custom attribute data item type. This enables attribute data to be displayed as items in the widget as a child of a location. An example use case for this is displaying of error messages or collection items in the Scene Graph tab.
- Parameters:
itemTypeClass (
type
) – A class derived fromAttributeDataTreeWidgetItem
that implements the appearance of a custom attribute data item type.
- addColumn(columnName)
Adds a stand-alone column to this SceneGraphView with the specified column name.
By default, the column will display the current location name, as a text field. As this function returns a reference to the column created you can use it to further configure it.
- Parameters:
columnName (
str
) – The name to assign to this column, the name is also used as the title text for this column.- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- Returns:
A reference to the
SceneGraphColumn
object to allow further configuration.
- addColumnSet(columnSetName)
Adds a column set with the specified name to the SceneGraphView. A column set is a grouping of column headers.
It has an ordering index which determines the relative order of its members compared to other column sets. Each member of a column set (which can be a column or other column set) itself has a local (within the group) ordering index.
- Parameters:
columnSetName (
str
) – The name given to this column set.- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
- Returns:
A reference to the
SceneGraphColumnSet
object.
- addRule(ruleName)
Adds a new rule to the current rule set using the specified name which can be used later as a key to configure the rule.
- Parameters:
ruleName (
str
) – Name of the rule by which you can reference it later.- Raises:
RuleManagerException – If
ruleName
already exists in the current rule set.
- addTopLevelLocation(topLevelLocationPath, index=None)
Adds a new top-level location to the SceneGraphView. By default the only top level location will be
/root
.If the location specified does not exist in the currently viewed scene then it will not be shown in the SceneGraphView. However, if the view node subsequently changes and the resulting scene does contain the specified location it will then be displayed in the SceneGraphView.
If the scene graph location you specify is already a top-level location this function will have no effect. You can obtain the current list of top-level locations from
getTopLevelLocations()
.Top-level locations will be displayed in the order they were added to the SceneGraphView.
- Parameters:
topLevelLocationPath (
str
) – The scene graph location path which should be added as a top-level location to this SceneGraphView.index (
int
orNone
) – The index in the list of top-level locations at which to add the new location, orNone
to append the location to the list.
- See:
- addWorkingSetColumn(workingSetName, columnIcon=None, columnTitle=None, columnTitleToolTip=None)
Adds a column to this SceneGraphView, configured as a Working Set column using the given registered Working Set name.
- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- Parameters:
workingSetName (
str
) – The name of a Working Set to represent and control with the column, as registered in the Working Set Manager.columnIcon (
QtGui.QIcon
orNone
) – AQtGui.QIcon
instance to use for the column header. IfNone
, no icon will be used. If provided, the displayed title style of the column will be set toSceneGraphColumnTitle.IconOnly
. If you want to use both an icon and a title, you can callsetTitleStyle()
on the returned column object.columnTitle (
str
orNone
) – The text to use on the title of the column. IfNone
, theworkingSetName
will be used.columnTitleToolTip (
str
orNone
) – An optional tooltip to display on the column title.
- Returns:
A reference to the
SceneGraphColumn
object to allow further configuration.
- allowMultipleSelection()
- Return type:
bool
orNone
- Returns:
True
if the user can select multiple items in the widget, otherwiseFalse
, orNone
if theSceneGraphView
widget has been destroyed.
- applyColumnVisibilitySettings(columnVisibility)
- Parameters:
columnVisibility (
dict
) – A dictionary containing visibility settings for columns and column sets in theSceneGraphView
widget, indexed by name. Can be used to restore the visible columns and column sets when restoring a tab layout.- See:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- applyColumnWidthsSettings(columnWidths)
- Parameters:
columnWidths (
dict
) – A dictionary containing the widths of columns in theSceneGraphView
widget, indexed by name. Can be used to restore the widths of columns when restoring a tab layout.- See:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- beginColumnConfiguration()
A function that together with
endColumnConfiguration()
can be used to wrap several calls ofaddColumnSet()
andaddColumn()
without triggering column configuration change callback functions, to allow for efficient updating of UI widgets.A registered column configuration change callback function is triggered when calling
endColumnConfiguration()
.
- clearExpandedLocationsRegistry(clearCurrent=False)
Clears the cache of previously expanded locations, and optionally of currently expanded locations as well.
- Parameters:
clearCurrent (
bool
) – Flag indicating whether the registry of currently expanded locations should be cleared.- Note:
This does not cause any locations to be collapsed.
- clearTopLevelLocations()
Removes all top-level locations from the
SceneGraphView
widget, so that it will be empty.
- endColumnConfiguration()
A function that together with
beginColumnConfiguration()
can be used to wrap several calls ofaddColumnSet()
andaddColumn()
without triggering column configuration change callback functions, to allow for efficient updating of UI widgets.Triggers a registered column configuration change callback function.
- frozenWhenHidden()
- Return type:
bool
orNone
- Returns:
True
if the Geolib clients are frozen (deactivated) when the widget is hidden and thawed (activated) when it is shown, orNone
if theSceneGraphView
widget has been destroyed.
- getAllLocations(visibleOnly=False)
Returns a
list
of scene graph locations that are currently displayed in theSceneGraphView
widget.For each item the list contains a 2 element
tuple
object of the following form:(top-level location path: str, location path: str)
Where:
top-level location path
refers to the scene graph location path of the top-level item which the selected scene graph location path belongs to.location path
refers to the scene graph location path selected.If the top-level location path and location path are the same you can infer it is the top-level scene graph item which has been selected.
The scene graph location paths will be in their fully qualified form, unsorted containing no duplicates.
- Return type:
list
oftuple
orNone
- Parameters:
visibleOnly (
bool
) – IfTrue
, then only locations which are currently visible in theSceneGraphView
widget will be returned.- Returns:
List of currently visible scene graph locations and the top-level item to which they belong, or
None
if theSceneGraphView
widget has been destroyed.
- getChildLocations(locationPath, topLevelLocationPath, visibleOnly=True, allDescendants=True)
Returns a
list
of child locations of the given location path that are currently visible in theSceneGraphView
widget.- Return type:
list
ofstr
orNone
- Parameters:
locationPath (
str
) – The location for which the visible child locations should be returned.topLevelLocationPath (
str
orNone
) – The top-level location under which the visible children for the given location should be returned, orNone
to return all visible children under the given location under any top-level location.visibleOnly (
bool
) – IfTrue
, then only locations which are currently visible in theSceneGraphView
widget will be returned.allDescendants (
bool
) – IfTrue
, then all descendants of the given location will be returned. Otherwise, only immediate children will be returned.
- Returns:
List of currently visible child locations of the given location, or
None
if theSceneGraphView
widget has been destroyed.
- getChildNameByIndex(parentLocationPath, childIndex)
- Deprecated:
This function is deprecated. Please use getSceneGraphChildren() instead.
- getColumnByName(columnName)
- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
orNone
- Parameters:
columnName (
str
) – The name of the column to return.- Returns:
The first column object found with the given name, or
None
if no such column exists.
- getColumnPresetManager()
- Return type:
UI4.Widgets.SceneGraphView.ColumnPresetManager.ColumnPresetManager
- Returns:
An instance of the internal
ColoumnPresetManager
.
- getColumnVisibilitySettings()
- Return type:
dict
- Returns:
A dictionary containing the visibility settings for all columns and column sets in the
SceneGraphView
widget, indexed by name. Can be used to retrieve and save the visible columns and column sets when saving a tab layout.- See:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- getColumnWidthsSettings()
- Return type:
dict
- Returns:
A dictionary containing the widths of all columns in the
SceneGraphView
widget, indexed by name. Can be used to retrieve and save column widths when saving a tab layout.- See:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- getCurrentRules()
- Return type:
dict
ofdict
- Returns:
Current Rule set described as dictionary of dictionaries.
- getNumberOfChildren(parentLocationPath)
- Deprecated:
This function is deprecated. Please use getSceneGraphChildren() instead.
- getParent(locationPath)
- Return type:
str
orNone
- Parameters:
locationPath (
str
) – The path to return the parent for.- Returns:
The parent path of the given location path, or
None
if the path is the root of the tree.
- getRootColumnSet()
- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
- Returns:
A reference to the root
SceneGraphColumnSet
object for the widget.
- getSceneGraphAttributes(locationPath, callback=None, oneShot=False)
Returns the scene graph attributes at the scene graph location with the given path. The method has two modes of operation:
If
callback
is not specified and theSceneGraphView
widget does not already have the requested location cached then it will returnNone
, otherwise it will return the attributes of the requested location.If
callback
is specified, it will first check its cache and return the attribute data stored if present via this function. Otherwise it will activate the location with Geolib3, return from this function call withNone
, and call you back viacallback
when it’s ready. This mode obeys the parameteroneShot
, which, ifTrue
will only notify the callback once, otherwise the callback will be called whenever the location’s attributes change.
The callback is expected to have the following signature:
function(locationPath: str, attributes: FnAttribute.Attribute) -> bool
Where:
locationPath
is astr
providing the path of the scene graph location the corresponding attributes relate to.attributes
is an instance ofPyFnAttribute.Attribute
and contains the attributes at the specified location.
The callback is expected to return
True
if it should continue to receive updates for the requested location, otherwise it should returnFalse
. Note: The return value will be ignored whereoneShot=True
.If the callback raises an exception, it will no longer be called for the location it was registered for. However, it will still be called for other locations it may have been registered for.
- Return type:
PyFnAttribute.GroupAttribute
orNone
- Parameters:
locationPath (
str
) – The path of the scene graph location whose attributes to return.callback (
callable
) – If notNone
this will be called back if the location data is not immediately available.oneShot (
bool
) – IfTrue
, andcallback
is notNone
thencallback
will only be called once.
- Returns:
A group attribute containing the attributes of the scene graph location with the given path, or
None
if no such attributes are available.
- getSceneGraphChildren(parentLocationPath, callback=None, oneShot=False)
Returns the list of children under the scene graph location with the given path. The method has two modes of operation:
If
callback
is not specified and theSceneGraphView
widget does not already have the requested location cached then it will returnNone
, otherwise it will return the children of the requested location.If
callback
is specified, it will first check its cache and return the children stored if present via this function. Otherwise it will activate the location with Geolib3, return from this function call withNone
, and call you back viacallback
when it’s ready. This mode obeys the parameteroneShot
, which, ifTrue
will only notify the callback once, otherwise the callback will be called whenever the location’s attributes change.
The callback is expected to have the following signature:
function(parentLocationPath: str, children: list) -> bool
Where:
parentLocationPath
is anstr
providing the path of the scene graph location the corresponding children relate to.children
is alist
of names of scene graph locations that exist underneath the parent scene graph location with the given path.
The callback is expected to return
True
if it should continue to receive updates for the requested location, otherwise it should returnFalse
. Note: The return value will be ignored whereoneShot=True
.If the callback raises an exception, it will no longer be called for the location it was registered for. However, it will still be called for other locations it may have been registered for.
- Return type:
list
orNone
- Parameters:
parentLocationPath (
str
) – The path of the scene graph location whose children to return.callback (
callable
) – If notNone
this will be called back if the location data is not immediately available.oneShot (
bool
) – IfTrue
, andcallback
is notNone
thencallback
will only be called once.
- Returns:
The children of the scene graph location with the given path, or
None
if the scene graph location does not have any children.
- getSelectedItems()
- Return type:
list
ofTreeWidgetItem
orNone
- Returns:
A list of the items in the
SceneGraphView
widget that the user currently has selected, orNone
if theSceneGraphView
widget has been destroyed.
- getSelectedLocations(sortBySceneGraphOrder=False)
Returns a
list
of scene graph locations that the user currently has selected.For each selected item the list contains a 2 element
tuple
object of the following form:(top-level location path: str, location path: str)
Where:
top-level location path
refers to the scene graph location path of the top-level item which the selected scene graph location path belongs to.location path
refers to the scene graph location path selected.If the top-level location path and location path are the same you can infer it is the top-level scene graph item which has been selected.
The scene graph location paths will be in their fully qualified form, unsorted containing no duplicates.
- Return type:
list
oftuple
orNone
- Parameters:
sortBySceneGraphOrder (
bool
) –True
if the results should be sorted according to the order they appear in the widget, orFalse
to return the locations in the order in which they were selected.- Returns:
List of currently selected scene graph locations and the top-level item to which they belong, or
None
if theSceneGraphView
widget has been destroyed.
- getTopLevelLocations()
Returns a
list
of all top-level locations thisSceneGraphView
knows about.You can infer the display order of top-level locations based on the order they are defined in the list returned by this function.
It is possible that there are locations in the list returned by this function which are not visible in the SceneGraphView. This is because the scene graph location path may refer to a location which does not exist in the currently viewed scene.
- Return type:
list
ofstr
- Returns:
A
list
of the scene graph location paths which are top-level locations.
- getWidget()
- Return type:
QtWidgets.QWidget
orNone
- Returns:
Returns a handle to a
QtWidgets.QWidget
instance which represents the viewableSceneGraphView
widget capable of being displayed in a Qt application, orNone
if theSceneGraphView
widget has been destroyed.
- hideColumnSet(columnSetName)
Makes the column set with the given name invisible.
This function will have no effect if the specified name does not exist.
- Parameters:
columnSetName (
str
) – The name assigned to the column set that should be hidden.- See:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- interruptClientProcessing()
Cancel client processing. Useful to halt a long running cook process.
- isFrozen()
- Return type:
bool
- Returns:
True
if the Geolib3 clients managed by this SceneGraphView are currently frozen (not active), otherwiseFalse
.
- isLocationExpanded(topLevelLocationPath, locationPath)
Indicates whether the given location is expanded in the view.
- Return type:
bool
orNone
- Parameters:
topLevelLocationPath (
str
) – The top level location which under which the location’s expansion state should be returned.locationPath (
str
) – The location path whose expansion state should be returned.
- Returns:
The expansion state of the given location under the given top-level location, or
None
if theSceneGraphView
widget has been destroyed.
- isProcessing()
- Return type:
bool
- Returns:
True
if events were processed during the last idle loop, otherwiseFalse
.
- isStopping()
- Return type:
bool
- Returns:
True
if the clients managed by this SceneGraphView have been interrupted and are still processing events received since the interruption, otherwiseFalse
.
- locationNamesPolished()
- Return type:
bool
orNone
- Returns:
A boolean value indicating whether scene graph location names are being “polished” for display in the widget, or
None
if theSceneGraphView
widget has been destroyed
- removeRule(ruleName)
Removes the rule specified by
ruleName
from the current rule set.- Parameters:
ruleName (
str
) – The name of the rule to remove from the rule set.
- removeTopLevelLocation(topLevelLocationPath)
Removes the top level location specified by
topLevelLocationPath
from the SceneGraphView. This will not delete scene graph locations or modify the underlying scene graph in any way.If you specify a location which is not a top-level item then this function will raise a
TreeWidgetException
.- Parameters:
topLevelLocationPath (
str
) – The scene graph location path which should be removed from the top-level locations displayed by this SceneGraphView.- Raises:
TreeWidgetException – If
topLevelLocationPath
is not a valid top-level scene graph location path.
- saveExpandedLocations()
Saves the currently expanded locations. This can be called before performing actions which might cause the expansion state to be lost (for example, when the viewed node changes), so that locations’ expansion state can be recovered later on.
- Return type:
set
of(str, str)
orNone
- Returns:
A set of tuples in the form (locationPath, topLevelLocationPath) indicating the currently expanded locations, or
None
if theSceneGraphView
widget has been destroyed.
- scrollToLocation(topLevelLocationPath, locationPath)
Scrolls the view so that the scene graph location specified by
topLevelLocationPath
andlocationPath
is visible.- Parameters:
topLevelLocationPath (
str
) – The top-level location which under which the location should be scrolled to.locationPath (
str
) – The location path to which to scroll the view.
- selectChildLocations(replaceSelection=True)
- selectLocations(locations, replaceSelection=True)
Selects the scene graph locations specified by
locations
, optionally replacing the current selection.locations
is alist
whose elements are either 2-tuples of:(top-level location path: str, location path: str)
or single strings representing locations paths, in which case every occurrence of each element of
locations
will be selected.- Parameters:
locations (
list
oftuple
containing a pair ofstr
, orlist
ofstr
) – A list of the locations to select, either in tuples of the form (topLevelLocationPath, locationPath) or just as a list of locations. In the latter case, every instance of the specified location will be selected (i.e. under any top-level location).replaceSelection (
bool
) – A flag to indicate whether the specified locations should replace what is currently selected.
- selectParentLocations(replaceSelection=True)
- setAboutToDragCallback(callback)
Registers a function to be called when a drag action begins. This allows the MIME data for the drag event to be configured.
If this is not specified then a default will be provided that provides the textual representation of the selected scene graph location paths in a space-delimited list.
The callback is expected to have the following signature:
function(items: list, dragObject: QtGui.QDrag)
Where:
items
is alist
of specializedQtWidgets.QTreeWidgetItem
instances that represent the items that are about to be dragged.dragObject
is an instance ofQtGui.QDrag
, and provides details about the drag operation.
The callback is not expected to return a value.
- Parameters:
callback (
callable
) – A callable function to handle about to drag events.
- setAllowMultipleSelection(allowMultipleSelection)
Enable or disable multiple selections in the View
- Parameters:
allowMultipleSelection (
bool
) – A flag indicating whether the user can select multiple items.
- setContextMenuEventCallback(callback)
Sets a function to be called when the user right-clicks on a scene graph location in the widget or into empty space within the widget, in order to customize the contents of the context menu that is shown.
The callback is expected to have the following signature:
function(contextMenuEvent: ContextMenuEvent, menu: QtWidgets.QMenu)
Where:
contextMenuEvent
is an instance ofUI4.Widgets.SceneGraphView.ContextMenuEvent.ContextMenuEvent
and allows you to interrogate the scene graph location path, top-level location path and column under the pointer when the menu was requested. It also allows you to interrogate the current selection state, thus allowing you to provide actions specific to particular scene graph locations.menu
is an instance ofQtWidgets.QMenu
to which custom actions can be added by calling itsaddAction()
function.
The callback is not expected to return a value.
For the Name column, the context menu passed to the callback will contain the following commands by default:
Expand Branches - Expands all selected locations recursively, including their child locations.
Expand Branches To - Expands all selected locations recursively, including their child locations, but stops at locations of a particular type, as chosen in the submenu.
Collapse Branches To - Collapses all selected locations recursively, including their child and parent locations, but stops at locations of a particular type, as chosen in the submenu.
Collapse Branches - Collapses all selected locations recursively, including their child locations.
Expand Locations - Shown when at least one location is selected. Expands the selected locations while keeping the expansion state of child locations.
Collapse Locations - Shown when at least one location is selected. Collapses the selected locations while keeping the expansion state of child locations.
If the context menu is opened when all top-level locations are selected, the commands for expanding and collapsing branches are named Expand All, Expand All To, Collapse All To, and Collapse All, respectively. Those commands are also included when the user right-clicks into empty space within a
SceneGraphView
widget while no locations are selected.- Parameters:
callback (
callable
) – A callback that will be triggered when the user right-clicks within theSceneGraphView
widget.- See:
UI4.Widgets.SceneGraphView.ContextMenuEvent.ContextMenuEvent
- setDragMoveEventCallback(callback)
Registers a function to be called when items are dragged over the
SceneGraphView
widget in order to determine whether dragged items could be dropped onto the widget.The callback is expected to have the following signature:
function(dragMoveEvent: QtGui.QDragMoveEvent, draggedItems: list, parentItem: QtWidgets.QTreeWidgetItem, childItemIndex: int)
Where:
dragMoveEvent
is an instance ofQtGui.QDragMoveEvent
, and provides details about the drag operation in progress.draggedItems
is alist
of specializedQtWidgets.QTreeWidgetItem
instances that represent the items that are being dragged over the widget.parentItem
is a specializedQtWidgets.QTreeWidgetItem
instance that represents an item in theSceneGraphView
widget that contains the item over which the dragged items are being dragged.parentItem
isNone
if items are being dragged over empty space in theSceneGraphView
widget.childItemIndex
is an integer number representing the index of the item under the pointer underneath the givenparentItem
.
The callback is not expected to return a value.
By default, the given
dragMoveEvent
is ignored, meaning that dragged items cannot be dropped. If you want to allow dragged items to be dropped, callaccept()
on the givendragMoveEvent
in your callback.- Parameters:
callback (
callable
) – A callable function to handle drag move events.
- setDropEventCallback(callback)
Registers a function to be called when dragged items are dropped over the
SceneGraphView
widget in order to trigger custom behavior depending on the number and type of the dragged items and the item onto which the dragged items have been dropped.The callback is expected to have the following signature:
function(dropEvent: QtGui.QDropEvent, droppedItems: list, parentItem: QtWidgets.QTreeWidgetItem, childItemIndex: int)
Where:
dropEvent
is an instance ofQtGui.QDropEvent
, and provides details about the drop operation.droppedItems
is alist
of specializedQtWidgets.QTreeWidgetItem
instances that represent the items that have been been dropped onto the widget.parentItem
is a specializedQtWidgets.QTreeWidgetItem
instance that represents an item in theSceneGraphView
widget that contains the item over which the dragged items have been dropped.parentItem
isNone
if items have been dropped over empty space in theSceneGraphView
widget.childItemIndex
is an integer number representing the index of the item under the pointer underneath the givenparentItem
.
The callback is not expected to return a value.
- Parameters:
callback (
callable
) – A callable function to handle drag move events.
- setExpandsOnDoubleClick(expandsOnDoubleClick)
Enable or disable recursively expanding child locations when a double- click event is received. The default is
True
.- Parameters:
expandsOnDoubleClick (
bool
) – Whether or not to expand child locations on double-click.
- setFrozenWhenHidden(frozenWhenHidden=True)
- Parameters:
frozenWhenHidden (
bool
) – A flag indicating whether the internal Geolib clients in the widget will be frozen (deactivated) when the widget is hidden, and thawed (activated) when it is shown. Default isTrue
.
- setKeyPressEventCallback(callback)
Specifies a function to handle keyPress events from the underlying Qt widget.
The callback is expected to have the following signature:
function(keyPressEvent: QtGui.QKeyEvent)
Where:
keyPressEvent
is an instance ofQtGui.QKeyEvent
, and specifies which key has been pressed.
The callback is not expected to return a value.
- Parameters:
callback (
callable
) – A callable function to handle key press events.
- setLocationActive(locationPath)
Sets the scene graph location with the given path in the managed client for SceneGraphView to the active state.
Active locations are explicitly recomputed every time anything is committed to the Geolib3 runtime.
- Parameters:
locationPath (
str
) – The path of the scene graph location to activate in the managed client.
- setLocationAddedOrUpdatedCallback(callback)
Sets the function to be called whenever a new location is added or updated in the scene graph view.
The callback is expected to have the following signature:
function(locationPath: str, topLevelLocationPath: str)
Where:
locationPath
is astr
containing the path to the location which has been addedtopLevelLocationPath
is astr
containing the top-level location under which the given location exists in the widget
The callback is not expected to return a value.
- Parameters:
callback (
callable
) – The callback that will be called when a location is added or updated.
- setLocationCollapsed(topLevelLocationPath, locationPath)
Sets the scene graph location specified by the
topLevelLocationPath
andlocationPath
to be collapsed in the view.- Parameters:
topLevelLocationPath (
str
) – The top level location which under which the location should be collapsed.locationPath (
str
) – The location path to collapse.
- setLocationCollapsedCallback(callback)
Sets the function to be called whenever a location is collapsed in the scene graph view.
The callback is expected to have the following signature:
function(locationPath: str, topLevelLocationPath: str, recursive: bool)
Where:
locationPath
is astr
containing the path to the location which has been collapsedtopLevelLocationPath
is astr
containing the top-level location under which the given location was collapsed in the widgetrecursive
is abool
indicating whether the location was collapsed recursively.
The callback is not expected to return a value.
- Parameters:
callback (
callable
) – The callback that will be called when a location is collapsed in the scene graph view.
- setLocationDataProcessedCallback(callback)
Sets the function to be called after all location data has finished being processed.
The callback is expected to have the following signature:
function(processedLocations: set)
Where:
processedLocations
is aset
oftuples
of the form(top-level location path, location path)
, representing the scene graph locations whose data have been changed.
The callback is not expected to return a value.
- Parameters:
callback (
callable
) – The callback that will be called after the location update callbacks are finished being processed.
- setLocationExpanded(topLevelLocationPath, locationPath)
Sets the scene graph location specified by the
topLevelLocationPath
andlocationPath
to be expanded in the view.- Parameters:
topLevelLocationPath (
str
) – The top level location which under which the location should be expanded.locationPath (
str
) – The location path to expand.
- setLocationExpandedCallback(callback)
Sets the function to be called whenever a location is expanded in the scene graph view.
The callback is expected to have the following signature:
function(locationPath: str, topLevelLocationPath: str, recursive: bool)
Where:
locationPath
is astr
containing the path to the location which has been expandedtopLevelLocationPath
is astr
containing the top-level location under which the given location was expanded in the widgetrecursive
is abool
indicating whether the location was expanded recursively.
The callback is not expected to return a value.
- Parameters:
callback (
callable
) – The callback that will be called when a location is expanded in the scene graph view.
- setLocationExpandedRecursive(topLevelLocationPath, locationPath)
Recursively opens the location
locationPath
and its descendant locations, respecting configured stop conditions.- Parameters:
topLevelLocationPath (
str
) – The top level location which under which the location should be expanded.locationPath (
str
) – The location path to expand.
- setLocationNamePolishCallback(callback)
Sets the function to call to “polish” the name displayed for a scene graph location.
The callback is expected to have the following signature:
function(locationPath: str, topLevelLocationPath: str) -> str
Where:
locationPath
is astr
containing the full path of the scene graph location whose name is to be polished, e.g.'/root/world/lgt/lightRig1/lightRig1_keyLight'
.topLevelLocationPath
is astr
containing the full path of the top-level location under which this location is being polished, e.g.'/root/world/lgt'
.
The callback is expected to return the polished name to use for the scene graph location with the given path, e.g.
'keyLight'
.- Parameters:
callback (
callable
) – A callable object that will be called to determine the name to be displayed for a scene graph location.
- setLocationNamesPolished(namesPolished)
Sets whether name “polishing” should be applied to scene graph location names displayed in the widget.
- Parameters:
namesPolished (
bool
) – A boolean value indicating whether we wish to run the specified name polishing callback on scene graph location names displayed in the widget.
- setLocationRemovedCallback(callback)
Sets the function to be called whenever a location is removed in the scene graph view. This allows users to respond to the specific locations being removed by the scene graph processing instructions.
The callback is expected to have the following signature:
function(locationPath: str, topLevelLocationPath: str)
Where:
locationPath
is astr
containing the path to the location which has been removedtopLevelLocationPath
is astr
containing the top-level location under which the given location existed in the widget
The callback is not expected to return a value.
- Parameters:
callback (
callable
) – The callback that will be called when a location is removed from the currently viewed scene.
- setMaxEventsToProcess(maxEventsToProcess)
Set the maximum number of events that the client manager can process per cycle.
- Parameters:
maxEventsToProcess (
int
) – The maximum number of events that the client manager can process per cycle. A negative or zero value indicates no maximum.
- setOverrideParameterRequestCallback(callback)
Sets the function to call when override parameters for attributes of scene graph locations are requested.
The callback is expected to have the following signature:
function(overrideParameters: dict)
Where:
overrideParameters
is a nested dictionary with paths of scene graph locations and resolved names of scene graph attributes for which override parameters have been requested. The callback is expected to populate the dictionary with tuples of a node and the name of an override parameter as values:(NodegraphAPI.Node, str)
The callback is not expected to return a value.
- Parameters:
callback (
callable
) – A callable object that will be called when override parameters corresponding to attributes of scene graph locations are requested.
- setRuleCriteria(ruleName, criteriaName, criteria)
Sets the criteria of the specified evaluator for a given rule.
This function will have no effect if ruleName refers to a non-existent Rule.
- Parameters:
ruleName (
str
) – The rule name assigned to the Rule.criteriaName (
str
) – The criteria name required by the evaluator.criteria (
UI4.Widgets.SceneGraphView.Filtering.Criteria
) – The criteria object.
- setRuleEvaluator(ruleName, evaluator)
Sets the evaluator of the specified rule.
This function will have no effect if ruleName refers to a non-existent Rule.
- Parameters:
ruleName (
str
) – The rule name assigned to the Rule.evaluator (
UI4.Widgets.SceneGraphView.Filtering.Evaluator
) – The evaluator object to set.
- setRuleMatchPolicy(ruleMatchPolicy)
Sets the rule matching policy that should apply when testing scene graph locations against the current set of configured rules.
Valid policies are:
UI4.Widgets.SceneGraphView.Filtering.RuleManager.MatchAnyPolicy
UI4.Widgets.SceneGraphView.Filtering.RuleManager.MatchAllPolicy
The default policy is
MatchAnyPolicy
.- Parameters:
ruleMatchPolicy (
int
) – A valid rule matching policy
- setRuleTarget(ruleName, column)
Sets the target column of the specified rule.
This function will have no effect if
ruleName
refers to a non-existent rule.- Parameters:
ruleName (
str
) – The rule name assigned to the Rule.column (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
) – The column which will be targeted for the rule.
- Todo:
Extend this function to allow target to work in Attribute or Parameter mode.
- setSelectionChangedCallback(callback)
Sets the specified selection changed callback. Whenever the selection changes as a result of user interaction this callback will be triggered.
It is possible to interrogate the current selection using
getSelectedLocations()
.The callback is expected to take no arguments and is not expected to return a value.
- Parameters:
callback (
callable
) – A callback that will be triggered each time the selection changes.- See:
- setSelectionState(topLevelLocationPath, locationPath, selected)
Sets the scene graph location specified by
topLevelLocationPath
andlocationPath
to the given selection state.If
topLevelLocationPath
isNone
then every occurrence oflocationPath
will have theselected
state applied.- Parameters:
topLevelLocationPath (
str
) – The top-level location path under which to set the selection state of the specified location path. IfNone
, then every occurrence of the specified location path will have its selection state set.locationPath (
str
) – The scene graph location path whose selection state should be set.selected (
bool
) – The selection state to which to set the given scene graph location.
- setStopRecursiveExpandAttributeNames(attributeNames)
Sets a list of attribute names whose presence at a location should stop recursive expansion.
- Parameters:
attributeNames (
list
ofstr
) – A list of attribute names whose presence at a location should stop recursive expansion.
- setStopRecursiveExpandLocationTypes(locationTypes)
Sets a list of location types at which recursive expansion should stop.
- Parameters:
locationTypes (
list
ofstr
) – A list of location types at which recursive expansion should stop.
- setTerminalOps(terminalOpArgs)
Creates a chain of Ops, based on the given Op description in the form of a sequence of Op type and Op argument tuples, and sets the last one of them to be the Op to use in the clients managed by this client manager. The Op arguments can be omitted if there are no arguments for the Op. If Op arguments has been given, an optional ‘key’ can be provided which is used to identify the Op when updating its arguments.
When created, each Op will take its input from the previous Op in the sequence. These Ops will overwrite any previously created terminal Ops.
- Parameters:
terminalOpArgs (
tuple
oftuple
of (str
,FnAttribute.GroupAttribute
,str
) or (str
,FnAttribute.GroupAttribute
) or (str
)) – A list of Op type name, Op args and terminal Op key triplets.
- setTopLevelDisplayIndex(locationPath, index)
Set the display index for the given top-level location.
- Parameters:
locationPath (
str
) – The scene graph location of a top level item to move.index (
int
) – The new display index for the specified item.
- setTopLevelLocations(topLevelLocationPaths)
Sets the list of paths of scene graph locations the
SceneGraphView
widget shows as top-level locations to the given list.- Parameters:
topLevelLocationPaths (
list
ofstr
) – A list of paths of scene graph locations to show as top-level locations in theSceneGraphView
widget.
- setUpdateViewportAutomatically(updateViewportAutomatically)
Sets whether the viewport of the
SceneGraphView
widget should update automatically. By default, this isTrue
.- Parameters:
updateViewportAutomatically (
bool
) –True
if the viewport of the widget should update automatically, orFalse
for the viewport to only update whenupdateViewport
is called.
- setViewNode(node, applyImplicitResolvers=False, extraImplicitResolverOpArgs=None)
Sets the Op used in the
SceneGraphView
widget’s Geolib3 client to the terminal Op for the given viewed node, optionally appending Ops related to the resolving of materials, constraints etc.- Parameters:
node (
NodegraphAPI.Node
orNone
) – The node whose terminal Op to use for the Geolib3 client, orNone
to reset the Geolib3 client.applyImplicitResolvers (
bool
) – Flag that controls whether Ops for implicit resolvers are to be appended to the given viewed node’s terminal Op in the Geolib3 client used by the SceneGraphView widget.extraImplicitResolverOpArgs (
dict
orNone
) –dict
mapping Op type names (str
) to group attributes (GroupAttribute
) describing additional arguments to pass to Ops with the given types.
- setViewOp(op, applyImplicitResolvers=False, extraImplicitResolverOpArgs=None)
Sets the Op used in the
SceneGraphView
widget’s Geolib3 client to the given Op, optionally appending Ops related to the resolving of materials, constraints etc.- Parameters:
op (
FnGeolibOp
orNone
) – The Op to use for the Geolib3 client, orNone
to reset the Geolib3 client.applyImplicitResolvers (
bool
) – Flag that controls whether Ops for implicit resolvers are to be appended to the given viewed node’s terminal Op in the Geolib3 client used by the SceneGraphView widget.extraImplicitResolverOpArgs (
dict
orNone
) –dict
mapping Op type names (str
) to group attributes (GroupAttribute
) describing additional arguments to pass to Ops with the given types.
- showColumnSet(columnSetName)
Makes the column set with the given name visible.
This function will have no effect if the specified name does not exist.
- Parameters:
columnSetName (
str
) – The name assigned to the column set that should be shown.- See:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- showRuleConfigDialog()
Makes the rule filtering configuration dialog box visible.
- topLevelLocationRenamed(oldLocationPath, newLocationPath)
Notifies the
SceneGraphView
widget that a top-level location has been renamed. This is intended to be called in response to a UI event, e.g. a node being renamed in the Gaffer UI.
- updateLocation(topLevelLocationPath, locationPath)
Refreshes the UI of the
SceneGraphView
for the given location path.- Parameters:
topLevelLocationPath (
str
) – The top-level location which under which the location should be updated.locationPath (
str
) – The location path to update
- updateLocationIcons(topLevelLocationPath, locationPath)
Refreshes the icons displayed in the
SceneGraphView
for the given location path.- Parameters:
topLevelLocationPath (
str
) – The top-level location which under which the location should have its icons updated.locationPath (
str
) – The location path to update the icons for.
- updateSelection(selectedLocations, deselectedLocations)
Updates the set of selected locations, adding those in
selectedLocations
and removing those indeselectedLocations
.- Parameters:
selectedLocations (
list
of 2-tuple
ofstr
, orlist
ofstr
) – A list of the locations to add to the selection, either in tuples of the form (topLevelLocationPath, locationPath) or just as a list of locations. In the latter case, every instance of the specified location will be selected (i.e. under any top-level location).deselectedLocations (
list
of 2-tuple
ofstr
, orlist
ofstr
) – A list of the locations to remove from the selection, either in tuples of the form (topLevelLocationPath, locationPath) or just as a list of locations. In the latter case, every instance of the specified location will be selected (i.e. under any top-level location).
- updateTerminalOps(terminalOpArgs, txn=None)
Updates the arguments of a chain of custom terminal Ops that were previously appended to the Op tree.
- Parameters:
terminalOpArgs (
tuple
oftuple
of (str
,FnAttribute.GroupAttribute
,str
)) – A sequence of terminal Op type, Op arguments and terminal op key triplets.txn (
FnGeolib.GeolibRuntime.Transaction
orNone
) – The transaction that will be used to set the Op arguments. If no transaction is provided, a new one is created.
- updateViewport()
Refreshes the viewport of the
SceneGraphView
widget.
- updateWidget()
Refreshes the UI of the
SceneGraphView
widget to reflect changes in the column configuration and in scene graph location attributes.
Bridge
Module containing the Bridge
abstract base class.
- class UI4.Widgets.SceneGraphView.Bridge.Bridge
Bases:
ABC
Abstract base class that represents the functions exposed by the
Bridge
to allow users to configure and interrogate the information stored about the scene graph.- abstract addAttributeDataItemType(itemTypeClass)
Adds a custom attribute data item type. This enables attribute data to be displayed as items in the widget as a child of a location. An example use-case for this is displaying of error messages or collection items in the Scene Graph tab.
- Parameters:
itemTypeClass (
type
) – A class derived fromAttributeDataTreeWidgetItem
that implements the appearance of a custom attribute data item type.
- abstract addColumn(columnName)
Add a stand-alone column to this view with the given column title and return a handle to the column so it can be configured.
By default, the column will display the current location name, as a text field but. You must set the display index to a particular value.
- abstract addColumnSet(columnSetName)
A column set is a grouping of column headers. It has an ordering index which determined where in the top-level its group members should be ordered.
Each column member itself has a local (within the group) ordering index.
- abstract addRule(ruleName)
- abstract addTopLevelLocation(topLevelLocationPath, index=None)
Adds a new top-level location to the SceneGraphView widget. By default the only top-level location will be /root. If index is supplied, inserts the new top-level location at the given index in the widget, otherwise appends to the widget.
- Parameters:
topLevelLocationPath (
str
) – Full path to location to be added as a top- level location.index (
int
orNone
) – The index in the list of top-level locations at which to add the new location, orNone
to append the location to the list.
- applyColumnVisibilitySettings(columnVisibility)
- Parameters:
columnVisibility (
dict
) – A dictionary containing the visibility settings for all columns and column sets, indexed by name. Can be used to restore the visible columns and column sets when restoring a tab layout.- See:
UI4.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- applyColumnWidthsSettings(columnWidths)
- Parameters:
columnWidths (
dict
) – A dictionary containing the widths of columns, indexed by name. Can be used to restore column widths when restoring a tab layout.- See:
UI4.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- abstract beginColumnConfiguration()
A function that together with
endColumnConfiguration()
can be used to wrap several calls ofaddColumnSet()
andaddColumn()
without triggering column configuration change callback functions, to allow for efficient updating of UI widgets.A registered column configuration change callback function is triggered when calling
endColumnConfiguration()
.
- abstract clearRuleCriteria(ruleName, triggerEvaluation=True)
- abstract clearTopLevelLocations()
Removes all top-level locations from the SceneGraphView widget, so that it will be empty.
- abstract collapseLocation(handle, topLevelHandle, recursive=False)
Collapses the scene graph location represented by the given handle underneath the top-level scene graph location represented by the given top-level handle, optionally recursively collapsing all its child locations.
- Parameters:
handle (
UI4.SceneGraphView.SceneGraphHandle.SceneGraphHandle
) – A handle representing the scene graph location to collapse, optionally including its children.topLevelHandle (
UI4.SceneGraphView.SceneGraphHandle.SceneGraphHandle
) – A handle representing the top-level scene graph location that contains the scene graph location(s) to collapse.recursive (
bool
) – Flag to control whether to collapse all child locations of the scene graph location represented by the given handle. If set toTrue
, the entire hierarchy underneath the scene graph location is collapsed, ifFalse
, only the scene graph location itself is collapsed (the default).
- columnResized(columnIndex, newColumnWidth)
Called by the ViewLink when a column is resized by the user.
- columnTitleClicked(columnIndex, columnTitleRect)
Called by the ViewLink when a column title is clicked by the user.
- abstract endColumnConfiguration()
A function that together with
beginColumnConfiguration()
can be used to wrap several calls ofaddColumnSet()
andaddColumn()
without triggering column configuration change callback functions, to allow for efficient updating of UI widgets.Triggers a registered column configuration change callback function.
- abstract expandLocation(handle, topLevelHandle, recursive=False, stopTypes=None)
Expands the scene graph location represented by the given handle underneath the top-level scene graph location represented by the given top-level handle, optionally recursively expanding all its child locations.
- Parameters:
handle (
UI4.SceneGraphView.SceneGraphHandle.SceneGraphHandle
) – A handle representing the scene graph location to expand, optionally including its children.topLevelHandle (
UI4.SceneGraphView.SceneGraphHandle.SceneGraphHandle
) – A handle representing the top-level scene graph location that contains the scene graph location(s) to expand.recursive (
bool
) – Flag to control whether to expand all child locations of the scene graph location represented by the given handle. If set toTrue
, the entire hierarchy underneath the scene graph location is expanded, ifFalse
, only the scene graph location itself is expanded (the default).stopTypes (
tuple
orlist
orset
orstr
orNone
) – A tuple or list of names of types of scene graph locations or a single location type name at which the expansion should be stopped. Only used whenrecursive
isTrue
.
- abstract fontChanged()
Triggers an update of the columns when the font is changed.
- abstract freeze()
Freezes the clients managed by this SceneGraphView. Usually wired into show/hide UI event handlers, this will freeze updates to the clients managed by this SceneGraphView. Calling this function will ensure that potentially expensive work will be deferred until the corresponding
thaw()
call is made. Usually called by thehide()
event handler.
- abstract getAttributeDataItemTypes()
- Return type:
list
oftype
- Returns:
A list of classes derived from
AttributeDataTreeWidgetItem
that are registered as custom attribute data item types.
- abstract getColumnByIndex(columnIndex, visibleOnly=True)
- Return type:
UI4.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
orNone
- Parameters:
columnIndex (
int
) – The index of the column to return.- Returns:
The
SceneGraphColumn
object with the given index, orNone
if no such column was found.
- abstract getColumnByName(columnName)
- Return type:
UI4.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
orNone
- Parameters:
columnName (
str
) – The name of the column to return.- Returns:
The first
SceneGraphColumn
object found with the given name, orNone
if no such column was found.
- abstract getColumnDataType(columnIndex)
- Return type:
int
- Parameters:
columnIndex (
int
) – The index of the column whose data type to return.- Returns:
The type of data contained in the column with the given index.
- abstract getColumnPresetManager()
- Return type:
UI4.SceneGraphView.ColumnPresetManager.ColumnPresetManager
- Returns:
An instance of the internal
ColoumnPresetManager
.
- getColumnVisibilitySettings()
- Return type:
dict
- Returns:
A dictionary containing the visibility settings for all columns and column sets, indexed by name. Can be used to retrieve and save the visible columns and column sets when saving a tab layout.
- See:
UI4.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- getColumnWidthsSettings()
- Return type:
dict
- Returns:
A dictionary containing the widths of all columns, indexed by name. Can be used to retrieve and save the column widths when saving a tab layout.
- See:
UI4.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- abstract getCurrentRules()
- abstract getDisplayData(handle, topLevelHandle, columnIndex)
- Return type:
str
orfloat
orlist
- Returns:
The data that is to be displayed in the column with the given index for the scene graph location represented by the given handles.
- abstract getNumberOfChildren(locationPath)
- Return type:
str
orNone
- Parameters:
locationPath (
str
) – The path to return the number of children of.- Returns:
The number of children under the given location path. This is the number of children for which we have cached location data.
- abstract getNumberOfColumns()
- Returns:
The number of columns that should be displayed.
- abstract getNumberOfTopLevelLocations()
- Return type:
int
- Returns:
The number of top-level locations displayed in the SceneGraphView widget.
- abstract getOverrideNodeAndParameterName(locationPath, attributeName)
- Return type:
tuple
ofNodegraphAPI.Node
orNone
andstr
orNone
.- Parameters:
locationPath (
str
) – The path of a scene graph location for which to return an override parameter node.attributeName (
str
) – The name of a scene graph attribute for which to return an override node and parameter name pair.
- Returns:
A node and parameter name pair. Where the node contains a parameter which sets the value of the scene graph attribute with the given name on the scene graph location with the given path, or a tuple containing two instances of
None
if no such node and parameter pair is available.
- abstract getParent(locationPath)
- Return type:
str
orNone
- Parameters:
locationPath (
str
) – The path to return the parent for.- Returns:
The parent path of the given location path, or
None
if the path is the root of the tree.
- abstract getPotentialChildren(locationPath)
- Return type:
list
ofstr
- Parameters:
locationPath (
str
) – The path to return the potential children of.- Returns:
A list of the potential children under the given location path. These are potential children according to the data returned from the runtime, and so not all these children may end up existing in the viewed scene, and we may not have data cached for all of them. Note therefore that the size of this array may not match the result from
getNumberOfChildren
.
- abstract getResolvedAttributeName(handle, attributeName)
Resolves names of meta attributes to names of actual attributes for a given renderer, for example
material.meta.intensity
tomaterial.prmanLightParams.Intensity
.- Return type:
tuple
of(bool, str)
- Parameters:
handle (
UI4.Widgets.SceneGraphView.SceneGraphHandle.SceneGraphHandle
) – A handle representing the scene graph location that contains the attribute whose resolved name to return.attributeName (
str
) – The potentially unresolved name of the attribute to resolve.
- Returns:
A tuple containing a boolean value indicating whether the attribute name needed to be resolved and was resolved, and the resolved name of the attribute with the given unresolved name contained in the scene graph location represented by the given handle, if so.
- abstract getRootColumnSet()
- Return type:
UI4.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
- Returns:
A reference to the root
SceneGraphColumnSet
object for the widget.
- abstract getRuleByName(ruleName)
- abstract getRuleMatchInversion()
- abstract getSceneGraphAttributes(locationPath, callback=None, oneShot=False)
Obtain the scene graph attributes at the specified location.
- See:
UI4.Widgets.SceneGraphView.SceneGraphView
- abstract getSceneGraphChildren(parentLocationPath, callback=None, oneShot=False)
Obtain the children at the specified location.
- See:
UI4.Widgets.SceneGraphView.SceneGraphView
- abstract getTitleText(columnIndex)
- Return type:
str
- Parameters:
columnIndex (
int
) – The index of the column whose title text to return.- Returns:
The title text that should be displayed for the column with the given index.
- abstract getTopLevelDisplayIndex(handle)
Get the display index for the given top-level location.
- abstract getTopLevelLocations()
- Return type:
list
ofstr
- Returns:
A list of paths of scene graph locations displayed as top-level locations in the SceneGraphView widget.
- abstract getViewLink()
- Return type:
- Returns:
The view link set for this bridge, or
None
if no view link has been set.
- hideColumnSet(columnSetName)
Makes the column set with the given name invisible.
This function will have no effect if the specified name does not exist.
- Parameters:
columnSetName (
str
) – The name assigned to the column set that should be hidden.- See:
UI4.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- abstract interruptClientProcessing()
Cancel client processing. Useful to halt a long running cook process.
- abstract isEditable(columnIndex)
Return True if the column at the given column index represents an editable piece of data.
- abstract isFrozen()
- Return type:
bool
- Returns:
True
if the clients managed by this SceneGraphView are frozen, otherwiseFalse
.
- abstract isNameColumn(columnIndex)
Return True if the column at the given column index represents the scene graph location’s name.
- abstract isProcessing()
- Return type:
bool
- Returns:
True
if events were processed during the last idle loop, and the clients managed by this SceneGraphView are not frozen, otherwiseFalse
.
- abstract isStopping()
- Return type:
bool
- Returns:
True
if the widget has had processing interrupted, and is in the process of stopping - i.e. is still receiving incoming events from the client manager since the interruption was sent.
- abstract locationNamesPolished()
- Return type:
bool
- Returns:
A boolean value indicating whether scene graph location names are being “polished” in the widget.
- abstract matchRules(handle, topLevelHandle)
- moveColumn(columnIndex, newColumnIndex)
Called by the ViewLink when a column is moved by the user.
- abstract removeRule(ruleName)
- abstract removeTopLevelLocation(topLevelLocationPath)
Removes the top-level location with the given path from the
SceneGraphView
widget.- Parameters:
topLevelLocationPath (
str
) – The path of the top-level scene graph location to remove.
- abstract renameRule(oldName, newName)
- abstract resetAttributeDataItemTypes()
Clears all registered custom attribute data item types.
- abstract setKeyPressEventCallback(callback)
Specifies a function to handle key press events from the underlying Qt widget.
The callback is expected to have the following signature:
function(keyPressEvent)
keyPressEvent
is an instance ofQtGui.QKeyEvent
, and specifies which key has been pressed.
- Parameters:
callback (
callable
) – A callable function to handle key press events.
- abstract setLocationActive(locationPath)
This will instruct Geolib3 to recompute the specified location whenever it receives updates for the OpTree.
- Parameters:
locationPath (
str
) – The scene graph location path that will be set as active in the Geolib3 client.
- abstract setLocationAddedOrUpdatedCallback(callback)
Sets the callback which is triggered when a location is added or updated.
- abstract setLocationDataProcessedCallback(callback)
Sets the callback which is triggered after any (and all) location updates have been processed.
- abstract setLocationNamePolishCallback(callback)
Sets the function to call to “polish” the name for a scene graph location.
The callback is expected to have the following signature:
function(locationPath: str, topLevelLocationPath: str) -> str
Where:
locationPath
is astr
containing the full path of the scene graph location whose name is to be polished, e.g.'/root/world/lgt/lightRig1/lightRig1_keyLight'
.topLevelLocationPath
is astr
containing the full path of the top-level location under which this location is being polished, e.g.'/root/world/lgt'
.
The callback is expected to return the polished name to use for the scene graph location with the given path, e.g.
'keyLight'
.- Parameters:
callback (
callable
) – A callable object that will be called to determine the polished name for a scene graph location.
- abstract setLocationNamesPolished(locationNamesPolished)
Sets whether name “polishing” should be applied to scene graph location names in the widget.
- Parameters:
namesPolished (
bool
) – A boolean value indicating whether we wish to run the specified name polishing callback on scene graph location names in the widget.
- abstract setLocationRemovedCallback(callback)
Sets the callback which is triggered when a location is removed.
- abstract setMaxEventsToProcess(maxEventsToProcess)
Set the maximum number of events that the client manager can process per cycle.
- Parameters:
maxEventsToProcess (
int
) – The maximum number of events that the client manager can process per cycle. A negative or zero value indicates no maximum.
- abstract setRuleComment(ruleName, comment)
- abstract setRuleCriteria(ruleName, criteriaName, criteria)
- abstract setRuleEnabled(ruleName, isEnabled)
- abstract setRuleEvaluator(ruleName, evaluator, useDefaultCriteria=False)
- abstract setRuleInverted(ruleName, isInverted)
- abstract setRuleMatchInversion(invert)
- abstract setRuleMatchPolicy(policy)
- abstract setRuleShowChildren(ruleName, showChildren)
- abstract setRuleTarget(ruleName, column)
- abstract setStopRecursiveExpandAttributeNames(attributeNames)
Sets a list of attribute names whose presence at a location should stop recursive expansion.
- Parameters:
attributeNames (
list
ofstr
) – A list of attribute names whose presence at a location should stop recursive expansion.
- abstract setStopRecursiveExpandLocationTypes(locationTypes)
Sets a list of location types at which recursive expansion should stop.
- Parameters:
locationTypes (
list
ofstr
) – A list of location types at which recursive expansion should stop.
- abstract setTerminalOps(terminalOpArgs)
Creates a chain of Ops, based on the given Op description in the form of a sequence of Op type and Op argument tuples, and sets the last one of them to be the Op to use in the clients managed by this client manager. The Op arguments can be omitted if there are no arguments for the Op. If Op arguments has been given, an optional ‘key’ can be provided which is used to identify the Op when updating its arguments.
When created, each Op will take its input from the previous Op in the sequence. These Ops will overwrite any previously created terminal Ops.
- Parameters:
terminalOpArgs (
tuple
oftuple
of (str
,FnAttribute.GroupAttribute
,str
) or (str
,FnAttribute.GroupAttribute
) or (str
)) – A list of Op type name, Op args and terminal Op key triplets.
- abstract setTopLevelDisplayIndex(locationPath, index)
Set the display index for the given top-level location to change its order in the top-level list.
- Parameters:
locationPath (
str
) – A string representing the scene graph location to set.index (
int
) – The new display index for the specified item.
- abstract setTopLevelLocations(topLevelLocations)
Sets the list of paths of scene graph locations the
SceneGraphView
widget shows as top-level locations to the given list.- Parameters:
topLevelLocations (
list
ofstr
) – A list of paths of scene graph locations to show as top-level locations in theSceneGraphView
widget.
- abstract setUpdateViewportAutomatically(updateViewportAutomatically)
Sets whether the viewport of the
SceneGraphView
widget should update automatically. By default, this isTrue
.- Parameters:
updateViewportAutomatically (
bool
) –True
if the viewport of the widget should update automatically, orFalse
for the viewport to only update whenupdateViewport
is called.
- setViewLink(viewLink)
- Deprecated:
This function is deprecated.
- abstract setViewNode(viewNode, applyImplicitResolvers=False, extraImplicitResolverOpArgs=None)
Sets the Op used in the SceneGraphView widget’s Geolib3 client to the terminal Op for the given viewed node, and optionally appends Ops related to resolving of materials, constraints etc.
- Parameters:
viewNode (
NodegraphAPI.Node
orNone
) – The node whose terminal Op to use for the Geolib3 client, orNone
to reset the Geolib3 client.applyImplicitResolvers (
bool
) – Flag that controls whether Ops for implicit resolvers are to be appended to the given viewed node’s terminal Op in the Geolib3 client used by the SceneGraphView widget.extraImplicitResolverOpArgs (
dict
orNone
) –dict
mapping Op type names (str
) to group attributes (GroupAttribute
) describing additional arguments to pass to Ops with the given types.
- abstract setViewOp(viewOp, applyImplicitResolvers=False, extraImplicitResolverOpArgs=None)
Sets the Op used in the
SceneGraphView
widget’s Geolib3 client to the given Op, and optionally appends Ops related to resolving of materials, constraints etc.- Parameters:
op (
FnGeolibOp
orNone
) – The Op to use for the Geolib3 client, orNone
to reset the Geolib3 client.applyImplicitResolvers (
bool
) – Flag that controls whether Ops for implicit resolvers are to be appended to the given viewed node’s terminal Op in the Geolib3 client used by the SceneGraphView widget.extraImplicitResolverOpArgs (
dict
orNone
) –dict
mapping Op type names (str
) to group attributes (GroupAttribute
) describing additional arguments to pass to Ops with the given types.
- showColumnSet(columnSetName)
Makes the column set with the given name visible.
This function will have no effect if the specified name does not exist.
- Parameters:
columnSetName (
str
) – The name assigned to the column set that should be shown.- See:
UI4.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- abstract thaw()
Thaws the clients managed by this SceneGraphView, thereby causing updates sent by Geolib3 to be processed and displayed in the UI.
- abstract topLevelLocationRenamed(oldLocationPath, newLocationPath)
Notify the SceneGraphView widget that a top-level location has been renamed. This is intended to be called in response to a UI event, e.g. a node being renamed in the Gaffer UI.
- updateTerminalOps(terminalOpArgs, txn=None)
Updates the arguments of a chain of custom terminal Ops that were previously appended to the Op tree.
- Parameters:
terminalOpArgs (
tuple
oftuple
of (str
,FnAttribute.GroupAttribute
,str
)) – A sequence of terminal Op type, Op arguments and terminal op key triplets.txn (
FnGeolib.GeolibRuntime.Transaction
orNone
) – The transaction that will be used to set the Op arguments. If no transaction is provided, we create one.
- abstract updateViewLink()
Updates the view link that has been set for this bridge.
ColumnDataType
Module containing the RegisterDataType()
function and the ColumnDataType
class.
- class UI4.Widgets.SceneGraphView.ColumnDataType.ColumnDataType
Bases:
object
Simple class encapsulating a number of data types to drive the editing of data in a given column.
- Color
alias of
ColorItemDelegate
- Dummy
alias of
DummyItemDelegate
- LightLink
alias of
LightLinkItemDelegate
- Mute
alias of
MuteItemDelegate
- Name
alias of
NameItemDelegate
- Number
alias of
NumberItemDelegate
- Shader
alias of
ShaderItemDelegate
- Solo
alias of
SoloItemDelegate
- String
alias of
ParameterItemDelegate
- WorkingSet
alias of
WorkingSetItemDelegate
- UI4.Widgets.SceneGraphView.ColumnDataType.RegisterDataType(dataTypeName, itemDelegateClass)
Registers a data type that can be assigned to a column.
- Parameters:
dataTypeName (
str
) – A descriptive name by which to refer to the data type.itemDelegateClass (
QStyledItemDelegated
-derived class) – The item delegate class to use for controlling the appearance and editing behavior of data of the given data type name.
ColumnManager
Module containing the ColumnManager
class.
- class UI4.Widgets.SceneGraphView.ColumnManager.ColumnManager(columnChangedCallback, columnPresetManager=None)
Bases:
object
Class that handles all logic and requests for column configuration for the SceneGraphView widget.
Should be read in conjunction with
SceneGraphViewColumn.py
.- __init__(columnChangedCallback, columnPresetManager=None)
Initializes an instance of the class.
- Parameters:
columnChangedCallback (
callable
orNone
) – A callback to be triggered when the configuration of columns has been changed.columnPresetManager (
ColumnPresetManager
orNone
) – AColumnPresetManager
to manage keyboard shortcuts and presets for column sets managed by this class.
- Raises:
ValueError – If the given callback object is not callable.
- addColumn(columnName)
- addColumnSet(columnSetName)
- applyColumnVisibilitySettings(columnVisibility)
- applyColumnWidthsSettings(columnWidths)
- getColumnAttributeName(columnIndex, visibleOnly=True)
The SceneGraphTree module requires this special “__location_name__” attribute name to be returned in order to display the location name rather than an attribute name in location name columns.
- Return type:
str
- Parameters:
columnIndex (
int
) – The index of the column whose attribute name to return.visibleOnly (
bool
) – Flag to control whether to skip invisible columns.
- Returns:
The name of the attribute whose data is to be displayed in the column with the given index.
- getColumnAttributeNames(columnIndex, visibleOnly=True)
The SceneGraphTree module requires this special “__location_name__” attribute name to be returned in order to display the location name rather than an attribute name in location name columns.
- Return type:
list
ofstr
- Parameters:
columnIndex (
int
) – The index of the column whose attribute name to return.visibleOnly (
bool
) – Flag to control whether to skip invisible columns.
- Returns:
A list of names of attributes whose data are to be displayed in the column with the given index.
- getColumnByIndex(columnIndex, visibleOnly=True)
- getColumnByName(columnName)
- getColumnCount(visibleOnly=True)
- getColumnTitleText(columnIndex, visibleOnly=True)
- getColumnTitles(visibleOnly=True)
- getColumnVisibilitySettings()
- getColumnWidths(visibleOnly=True)
- getColumnWidthsSettings()
- getDataType(columnIndex)
- Return type:
int
- Parameters:
columnIndex (
int
) – The index of the column whose data type to return.- Returns:
The type of data contained in the column with the given index.
- getRootColumnSet()
- hideColumnSet(columnSetName)
- isEditable(columnIndex, visibleOnly=True)
- isLocationNameColumn(columnIndex, visibleOnly=True)
- moveColumn(columnIndex, newColumnIndex, visibleOnly=True)
- setColumnChangedCallback(callback)
- setColumnSetVisible(columnSetName, visible)
- showColumnSet(columnSetName)
ColumnPresetManager
Module containing the
UI4.Widgets.SceneGraphView.ColumnPresetManager.ColumnPreset
and
UI4.Widgets.SceneGraphView.ColumnPresetManager.ColumnPresetManager
classes.
- class UI4.Widgets.SceneGraphView.ColumnPresetManager.ColumnPreset
Bases:
object
Class representing a column configuration preset.
- __init__()
Initializes an instance of the class.
- activate()
Activates the preset by hiding/showing/toggling the registered columns or column sets.
- addHidden(columnOrSet)
Adds a column or set which should be hidden when this preset is activated.
- Parameters:
columnOrSet (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
) – A column or set which should be hidden in this preset.
- addShown(columnOrSet)
Adds a column or set which should be shown when this preset is activated.
- Parameters:
columnOrSet (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
) – A column or set which should be shown in this preset.
- addToggled(columnOrSet)
Adds a column or set whose visibility state should be toggled when this preset is actived.
- Parameters:
columnOrSet (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
) – A column or set whose visibility state should be toggled when this preset is activated.
- removeHidden(columnOrSet)
Removes a column or set from the list of items to hide when this preset is activated.
- Parameters:
columnOrSet (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
) – A column or set to remove from the list of items to hide when this preset is activated.
- removeShown(columnOrSet)
Removes a column or set from the list of items to show when this preset is activated.
- Parameters:
columnOrSet (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
) – A column or set to remove from the list of items to show when this preset is activated.
- removeToggled(columnOrSet)
Removes a column or set from the list of items whose visibility state should be toggled when this preset is actived.
- Parameters:
columnOrSet (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
) – A column or set to remove from the list of items whose visibility state should be toggled when this preset is activated.
- class UI4.Widgets.SceneGraphView.ColumnPresetManager.ColumnPresetManager
Bases:
object
Class implenting a manager for ColumnPresets. Handles key press events and activates any presets associated with the keys pressed.
- class ShortcutMode
Bases:
object
Constants used for uniquely identifying different shortcut modes which can be provided to
ColumnPresetManager.setShortcutMode()
. These define the behaviour of shortcuts that are added throughaddColumnSetShortcut()
, but notaddPreset()
.- Toggle = 1
- Unique = 0
- classmethod getValidShortcutModes()
- Return type:
list
ofint
- Returns:
A list of valid shortcut mode values.
- __init__()
Initializes an instance of the class.
Presets are stored in a dictionary, indexed by the key press value. Each entry in the __presets dictionary is a list of
ColumnPreset
objects which should be activated for the corresponding key press. Each entry in the __shortcutsForColumnSets dictionary is a list ofSceneGraphColumnSet
objects which should be shown/hidden for the corresponding key press.
- addColumnSetShortcut(columnSet, shortcut)
Adds a new column set to the manager, associated with the given shortcut.
- Parameters:
shortcut (
string
orNone
orint
orQKeySequence
) – A value that can be accepted by theQKeySequence
constructor, for use as a keyboard shortcut that will activate the column set.columnSet (
SceneGraphColumnSet
) – The column set to associate with the shortcut.
- addPreset(shortcut)
Adds a new preset to the manager, and returns it.
- Return type:
- Parameters:
shortcut (
string
orNone
orint
orQKeySequence
) – A value that can be accepted by theQKeySequence
constructor, for use as a keyboard shortcut that will activate this preset.- Returns:
The new preset.
- processKeyPressEvent(event)
Handles a
keyPressEvent
from a layout containingSceneGraphColumn
objects. Checks the list of registered presets and activates any whose shortcut key matches the key pressed.- Return type:
bool
- Parameters:
event (
QtGui.QKeyEvent
) – The keyPressEvent which we wish to handle.- Returns:
True
if the given event has been handled, otherwiseFalse
.
- removeColumnSetShortcut(columnSet, shortcut)
Removes a shortcut for the given column set from the manager.
- Parameters:
columnSet (
SceneGraphColumnSet
) – The column set to remove from the manager.shortcut (
string
orNone
orint
orQKeySequence
) – A value that can be accepted by theQKeySequence
constructor, representing the shortcut to remove.
- removeColumnSetShortcuts(columnSet)
Removes all shortcuts for the given column set from the manager.
- Parameters:
columnSet (
SceneGraphColumnSet
) – The column set to remove the shortcuts for.
- removePreset(preset)
Removes a given preset from the manager.
- Parameters:
preset (
ColumnPreset
) – The preset to remove from the manager.
- setShortcutMode(shortcutMode)
Sets the shortcut mode used when handling keyboard shortcuts that are added through
addColumnSetShortcut()
. The valid modes are defined by constants inColumnPresetManager.ShortcutMode
.- Parameters:
shortcutMode (
int
) – The mode to use - must be one of the constants defined byColumnPresetManager.ShortcutMode
ContextMenuEvent
Module providing the
UI4.Widgets.SceneGraphView.ContextMenuEvent.ContextMenuEvent
class which encapsulates information related to context menu customization.
- class UI4.Widgets.SceneGraphView.ContextMenuEvent.ContextMenuEvent(event, locationPath=None, topLevelLocationPath=None, selectedLocations=None, sceneGraphColumn=None)
Bases:
QContextMenuEvent
Class that provides information related to the selection state and context at the point in time when a user requests a right-click menu be displayed.
If you make use of the
UI4.Widgets.SceneGraphView.SceneGraphView.SceneGraphView.setContextMenuEventCallback
function, your callback will be passed an instance of this class which will be pre-populated with a range of information pertaining to the context in which the right-click menu was requested.- __init__(event, locationPath=None, topLevelLocationPath=None, selectedLocations=None, sceneGraphColumn=None)
- getLocationPath()
Returns the path of the scene graph location under the mouse pointer when this
ContextMenuEvent
was triggered.If
ContextMenuEvent
did not occur over a scene graph location this will returnNone
.- Return type:
str
orNone
- Returns:
Path of the scene graph location under the mouse pointer.
- getSceneGraphColumn()
Returns the column object which refers to the column in which this
ContextMenuEvent
occurred.- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- Returns:
The column object.
- getSelectedLocations()
Returns a
list
of scene graph locations that were selected by the user when thisContextMenuEvent
was triggered.For each selected scene graph location the list contains a 2-
tuple
of the following form:(top-level location path: str, location path: str)
Where:
top-level location path
refers to the top-level scene graph location that the selected scene graph location belongs to.location path
refers to the selected scene graph location.
- Return type:
list
oftuple
- Returns:
List of currently selected scene graph locations and the top-level scene graph locations to which they belong.
- getTopLevelLocationPath()
Returns the path of the top-level scene graph location to which the scene graph location returned by
getLocationPath()
belongs.If
getLocationPath()
returnsNone
this function also returnsNone
.- Return type:
str
orNone
- Returns:
Top-level item’s scene graph location path or
None
if this event did not occur over a scene graph location.
HorizontalHeaderView
Module containing the HorizontalHeaderView
class.
- class UI4.Widgets.SceneGraphView.HorizontalHeaderView.HorizontalHeaderView(parent=None)
Bases:
QHeaderView
Class implementing a custom header view for the
SceneGraphView
widget’s tree widget. Controls resizing behaviour of columns with support for a fixed width, minimum width and maximum width set on item delegates used for the columns in the tree widget.- ClickStyleRole = 258
- HeaderTitleIconRole = 260
- IsToggledOnFunctionRole = 259
- SectionClickableRole = 257
- __init__(parent=None)
Initializes an instance of the class.
- Parameters:
parent (
QtWidgets.QWidget
) – The parent widget to use for the header view instance, should be an instance ofTreeWidget
.
- contextMenuEvent(contextMenuEvent)
Event handler for context menu events.
- Parameters:
contextMenuEvent (
QtGui.QContextMenuEvent
) – An object containing details about the context menu event to process.
- enterEvent(event)
Event handler for widget enter events.
Reimplemented in order to paint sections that are clickable in a hovered appearance.
- Parameters:
event (
QtCore.QEvent
) – An object containing details about the enter event to process.
- leaveEvent(event)
Event handler for widget leave events.
Reimplemented in order to paint sections that are clickable and that had been painted in a hovered appearance in a normal appearance again.
- Parameters:
event (
QtCore.QEvent
) – An object containing details about the leave event to process.
- mouseDoubleClickEvent(mouseEvent)
Event handler for mouse double-click events.
Reimplemented in order to call a specialized function of the tree widget parent to resize a column to its contents if its section handle has been double-clicked, bypassing the default behavior.
- Parameters:
mouseEvent (
QtGui.QMouseEvent
) – An object containing details about the mouse event to process.
- mouseMoveEvent(mouseEvent)
Event handler for mouse move events.
Reimplemented in order to change the cursor shape when the pointer is over a section handle of a column that cannot be resized.
- Parameters:
mouseEvent (
QtGui.QMouseEvent
) – An object containing details about the mouse event to process.
- mousePressEvent(mouseEvent)
Event handler for mouse press events.
Reimplemented in order to support clickable sections without making the entire header view clickable. Whether or not sections are clickable is determined by user data stored in the header view’s model. The function emits the
"sectionPressed"
signal if a clickable section has been clicked with the left button.- Parameters:
mouseEvent (
QtGui.QMouseEvent
) – An object containing details about the mouse press event to process.
- mouseReleaseEvent(mouseEvent)
Event handler for mouse release events.
Reimplemented in order to cause a re-draw of the title that was previously clicked.
- Parameters:
mouseEvent (
QtGui.QMouseEvent
) – An object containing details about the mouse release event to process.
- paintSection(painter, rect, logicalIndex)
Paints the section specified by the given logical index, using the given painter and rectangle.
- Parameters:
painter (
QtGui.QPainter
) – The painter to use for drawing the section.rect (
QtCore.QRect
) – The rectangular area of the section to draw.logicalIndex (
int
) – The index of the section to draw.
- resizeSection(logicalIndex, size)
Resizes the section specified by logicalIndex to size measured in pixels.
Reimplemented to respect item delegate column width constraints.
- Parameters:
logicalIndex (
int
) – Logical index of column to be resizedsize (
int
) – New size
SceneGraphLocationTranslation
Module providing utility functions for working with paths of scene graph locations.
- UI4.Widgets.SceneGraphView.SceneGraphLocationTranslation.GetParentPath(locationPath, topLevelLocationPath='/root')
Returns the parent scene graph location of the given
locationPath
.If the path represents the root of the scene, then
None
is returned.
- UI4.Widgets.SceneGraphView.SceneGraphLocationTranslation.GetLocationName(locationPath)
Extracts the location name from the given location path.
E.g.:
/root -> root /root/world/geo -> geo
- UI4.Widgets.SceneGraphView.SceneGraphLocationTranslation.IsLocationUnderTopLevelLocation(locationPath, topLevelLocationPath)
Returns
True
iflocationPath
exists undertopLevelLocationPath
, otherwise returnsFalse
.E.g.:
/root/world/geo, /root -> True /root/world/light, /root/world -> True /root/world_1/geo, /root/world -> False /root/world/geo_scalar/geo, /root/world/geo -> False /root/world/geo/arm/hand, /root/world/geo -> True
- UI4.Widgets.SceneGraphView.SceneGraphLocationTranslation.ExplodePath(locationPath)
Explodes the scene graph location path into a list of all its child locations including itself.
E.g.:
/root/world/cam -> ['/root', '/root/world', '/root/world/cam']
SceneGraphTree
Module providing the SceneGraphTree
class.
- class UI4.Widgets.SceneGraphView.SceneGraphTree.SceneGraphTree
Bases:
object
Encapsulates a raw locations and attributes view of the scene graph that is currently being displayed by the
SceneGraphView
.It is made up of
TreeItem
objects which each represent a single location in the scene graph. There is a single root location in the scene graph which has the location path/root
. ATreeItem
also contains attribute data which can be interrogated.A
TreeItem
has one or more children of typeTreeItem
. They can be efficiently accessed in O(1) time by name or index. The index ordering is strict and defined by the scene graph processing commands that created it, this can be determined by the potential children list.Provides an interface to the
Bridge
which provides efficient access toTreeItem
objects.- __init__()
Initializes an instance of the class.
- addOrUpdateSceneGraphLocation(locationPath, locationData)
Creates a new scene graph tree item to represent the scene graph location with the given path, and stores the given location data on it.
If the location already exists, this function updates the location data on the existing tree item.
- Return type:
- Parameters:
locationPath (
str
) – The path of the scene graph location for which to create or update a scene graph tree item.locationData (
PyFnGeolib.LocationData
) – An object that contains the data to store for the scene graph location represented by the tree item to create or update.
- Returns:
The created or updated scene graph tree item.
- clear()
Deletes all tree items in this
SceneGraphTree
instance.
- deleteSceneGraphLocation(locationPath)
Delete the TreeItem specified by locationPath.
If locationPath refers to a TreeItem which does not exist, or has child tree items, this function will throw an error.
- getTreeItem(locationPath)
- Return type:
- Parameters:
locationPath (
str
) – The path of the scene graph location for which to return the corresponding scene graph tree item.- Returns:
The tree item that represents the scene graph location with the given path.
- Raises:
SceneGraphTreeException – If no tree item exists that corresponds to the given scene graph location path.
- hasLocation(locationPath)
- Return type:
bool
- Parameters:
locationPath (
str
) – The path of the scene graph location for which to check whether a corresponding scene graph tree item exists.- Returns:
True
if there is a tree item that corresponds to the given location path, otherwiseFalse
.
- exception UI4.Widgets.SceneGraphView.SceneGraphTree.SceneGraphTreeException
Bases:
Exception
Exception thrown when attempting invalid tree operations.
- class UI4.Widgets.SceneGraphView.SceneGraphTree.TreeItem(locationPath, locationData, parentTreeItem)
Bases:
object
Is used by the
SceneGraphTree
to store scene graph locations and their attributes.Provides a number of functions by which its children and location within the
SceneGraphTree
topology can be interrogated.- __init__(locationPath, locationData, parentTreeItem)
Initializes an instance of the class.
- Parameters:
locationPath (
str
) – The path of the scene graph location to represent by this tree item instance.locationData (
PyFnGeolib.LocationData
) – Data to store in the tree item instance.parentTreeItem (
TreeItem
orNone
) – The tree item to use as the parent of this tree item instance, orNone
if this tree item instance is to be considered the root of a scene graph tree.
- addChild(childTreeItem)
Add the specified child TreeItem to children of this TreeItem.
- deleteChild(childTreeItem)
Delete the specified child TreeItem from the location’s list of children
- getAttributeData(attributeName, returnResolvedData=True)
- Return type:
str
orfloat
orint
orlist
orNone
- Parameters:
attributeName (
str
) – The name of the attribute whose data to return.returnResolvedData (
bool
) – Flag to control whether to return the data of the resolved attribute if the name of a meta attribute is given. For example,attributeName
could bematerial.meta.intensity
, which could contain the name of an actual attribute, such asmaterial.prmanLightParams.Intensity
. IfreturnResolvedData
isTrue
, the data of the actual attribute is returned. If it isFalse
, the name of the actual attribute is returned.
- Returns:
The data of the attribute with the given name, or
None
if no data for the attribute with the given name is available.
- getAttributes()
- Return type:
- Returns:
The scene graph attributes stored at the location represented by this tree item instance.
- getChildByName(locationName)
- Return type:
- Parameters:
locationName (
str
) – The name of the scene graph location whose corresponding tree item to return.- Returns:
The child tree item with the given location name.
- Note:
The cost of this operation is O(1)
- Raises:
SceneGraphTreeException – If the given location name does not correspond to a child tree item of this tree item instance.
- getChildBySceneGraphIndex(sceneGraphIndex)
Return the TreeItem at the specified scene graph index.
If the location name is not a child of this TreeItem then a SceneGraphTreeException will be thrown.
- getChildItems()
- Return type:
list
ofTreeItem
- Returns:
A list of all child tree items of this tree item.
- getChildNames()
- Return type:
list
ofstr
- Returns:
A list of names of child tree items of this tree item.
- getLocationData()
- Return type:
PyFnGeolib.LocationData
- Returns:
An object that contains the data stored for the scene graph location represented by this tree item instance. Can be used to test the data’s hash against new updates.
- getLocationName()
- Return type:
str
- Returns:
The leaf-level location of this tree item, for example
geo
for/root/world/geo
, androot
for/root
.
- getLocationPath()
- Return type:
str
- Returns:
The path of the scene graph location represented by this tree item instance.
- getLocationType()
- Return type:
str
orNone
- Returns:
The name of the
type
attribute of the scene graph location represented by this tree item instance, orNone
if the location type is not available.
- getNumberOfChildren()
- Return type:
int
- Returns:
The number of child locations under the scene graph location represented by this tree item instance.
- getParent()
- Return type:
TreeItem
orNone
- Returns:
The parent tree item of this tree item instance, or
None
if this tree item instance represents the root of the scene graph tree.
- getPotentialChildren()
- Return type:
list
- Returns:
A list of potential children of this tree item instance. The ordering of the returned list defines the order in which they should appear.
- getSceneGraphIndexInParent()
Return the scene graph index of this TreeItem in its parent.
If this is the root of the SceneGraph then the scene graph index is 0
- getSceneGraphIndexOfChildTreeItem(childTreeItem)
Return the scene graph index of the child TreeItem.
If childTreeItem is not a child of this TreeItem then a SceneGraphTreeException will be thrown.
- getSceneGraphIndexOfLocationName(locationName)
Returns the scene graph index of the specified location name.
If the location name is not a child of this TreeItem then a SceneGraphTreeException will be thrown.
- updateLocationData(locationData)
Updates the location data for this TreeItem and also regenerates any internal data structures.
- Parameters:
locationData (
PyFnGeolib.LocationData
) – An object that contains the data to store for the scene graph location represented by this tree item instance.
SceneGraphViewClientManager
Module containing the SceneGraphViewClientManager
class.
- class UI4.Widgets.SceneGraphView.SceneGraphViewClientManager.SceneGraphViewClientManager
Bases:
ClientManager
Class responsible for managing Geolib3 clients for the
SceneGraphView
widget.One client is created per top-level location in the widget.
- __init__()
- topLevelLocationAdded(topLevelLocation)
Informs ClientManager that there is a new top-level location.
- Parameters:
topLevelLocation (
str
) – The top-level location being added.
- topLevelLocationRemoved(topLevelLocation)
Informs ClientManager that a top-level location has been removed
- Parameters:
topLevelLocation (
str
) – The top-level location being removed.
SceneGraphViewColumn
Module providing the
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
,
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
and
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnTitle
classes.
- UI4.Widgets.SceneGraphView.SceneGraphViewColumn.GetNonInformationalAttributeName(attributeNames)
- Return type:
str
orNone
- Parameters:
attributeNames (
list
ofstr
) – A list of names of attributes to filter.- Returns:
The name of the first attribute that doesn’t store data for informational purposes only, or the name of the first attribute if all attribute names indicate informational purposes, or
None
if the given list of attribute names is empty.
- class UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn(name='Untitled', columnChangedCallback=None, parentSet=None)
Bases:
object
A base class for columns and column sets.
A column or column set may live inside a parent column set, or may stand alone.
- __init__(name='Untitled', columnChangedCallback=None, parentSet=None)
Initializes an instance of the class.
- Parameters:
name (
str
) – The name to use for the column object.columnChangedCallback (
callable
orNone
) – A callback to be triggered when the configuration of columns has been changed. This includes changes to visibility state.parentSet (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
orNone
) – The set to which this new instance should be added, orNone
if the column object is a stand-alone column or column set.
- callColumnChangedCallback()
Tries to execute the callback that is set to be triggered when the configuration of columns has been changed, and logs an error if an exception occurs.
Does nothing if no such callback has been set.
- getColumnChangedCallback()
- Return type:
callable
orNone
- Returns:
The callback to be triggered when the configuration of columns has been changed, or
None
if no such callback has been set.- Note:
The callback is also called when the visibility state of the column or column set has been changed.
- getIndex()
- Return type:
int
- Returns:
The index of this instance within its parent set, or -1 if the instance does not have a parent set.
- getName()
- Return type:
str
- Returns:
The name of this column object.
- getParentSet()
- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
orNone
- Returns:
The column set that contains the column or column set represented by this instance, or
None
if the column is not part of a column set.
- getParentSetNames()
- Return type:
list
ofstr
- Returns:
A list of the names of all this column object’s ancestors.
- getParentSets()
- Return type:
list
ofUI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
- Returns:
A list of all this column object’s ancestors.
- isVisible()
- Return type:
bool
- Returns:
The visibility of the column or column set represented by this instance.
- setColumnChangedCallback(callback)
Sets the callback that is to be triggered when the configuration of columns has been changed. This includes the visibility state of columns.
- Parameters:
callback (
callable
orNone
) – The callback to be triggered when the configuration of columns has been changed.- Raises:
ValueError – If the given callback object is not callable.
- setIndex(index)
Sets the index of this column object within its parent set to the given index.
- Parameters:
index (
int
) – The index to set for this column object within its parent set.
- setName(name)
Sets the name of this column object to the given name.
- Parameters:
name (
str
) – The name to set for this column object.
- setParentSet(parentSet)
Sets the parent of this column object to the given column set.
- Parameters:
parentSet (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
orNone
) – The parent set to set for this column object, orNone
to make this column object a stand-alone column or column set.
- setVisible(visible)
Sets the visibility of the column or column set represented by this instance to the given visibility.
- Parameters:
visible (
bool
) – The visibility to set for the column or column set represented by this instance.
- class UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn(columnName='Untitled', columnChangedCallback=None, parentSet=None)
Bases:
BaseSceneGraphColumn
A SceneGraphColumn represents a single column in a SceneGraphView.
- __init__(columnName='Untitled', columnChangedCallback=None, parentSet=None)
Initializes an instance of the class.
- Parameters:
columnName (
str
) – The name of the new column.columnChangedCallback (
callable
) – A function to be called when the configuration of columns changes. This includes changes to visibility state.parentSet (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
) – The set to which this new column should be added.
- getAttributeName()
- Return type:
str
orNone
- Returns:
The attribute name associated with this column, or
None
if no attribute name is set for this column.
- getAttributeNames()
- Return type:
list
ofstr
- Returns:
The attribute names associated with this column.
- classmethod getColorDisplayTypeName()
- Return type:
str
- Returns:
The data type name for color data.
- See:
- getDataType()
- Return type:
int
- Returns:
The type of data that the column represents.
- classmethod getDefaultDisplayTypeIndex()
- Return type:
int
- Returns:
The index of the supported default display type.
- See:
- classmethod getDefaultDisplayTypeName()
- Return type:
str
- Returns:
The name of the default display type to associate with a column.
- See:
- getFixedWidth()
- Return type:
int
orNone
- Returns:
The fixed width of the column in pixels, or
None
if no fixed width has been set for the column.
- getLookFileMaterialAssignmentCallback()
- Return type:
callable
orNone
- Returns:
The callback that is used for assigning a Look File Material to a package.
- getMasterMaterialCallbacks()
- Deprecated:
This function is deprecated. Please use getTemplateMaterialCallbacks() instead.
- getMaximumWidth()
- Return type:
int
orNone
- Returns:
The maximum width of the column in pixels, or
None
if no maximum width has been set for the column.
- getMinimumWidth()
- Return type:
int
orNone
- Returns:
The minimum width of the column in pixels, or
None
if no minimum width has been set for the column.
- getProperties()
- Return type:
list
oftuple
of(str, object)
- Returns:
The list of
(propertyName, propertyValue)
tuples that are currently assigned to the column.
- classmethod getSupportedDisplayTypes()
- Return type:
list
ofstr
- Returns:
A list of supported column display type names. These data type names are used to differentiate between different widgets that should be displayed for a scene graph column.
- getTemplateMaterialCallbacks()
- Return type:
tuple
ofcallable
orNone
- Returns:
A tuple of callbacks to use for obtaining a list of paths of scene graph locations that represent Template Materials and for assigning a Template Material to a light.
- getTitle()
- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnTitle
- Returns:
The title object for this column.
- getTitleClickStyle()
- Return type:
str
- Returns:
The style in which the title behaves in response to click events.
- getTitleClickedCallback()
- Return type:
callable
orNone
- Returns:
A callback that is to be triggered when the header of this column is clicked, or
None
if no such callback has been set for this column.
- getTitleIcon()
- Return type:
QtGui.QIcon
orNone
- Returns:
The icon to display on the column title, if one is set.
- getTitleIconName()
- Return type:
str
- Returns:
The name of the icon used for the title of this column.
- Note:
The title icon may or may not be displayed in the header for the column, depending on its title style.
- getTitleStyle()
- Return type:
str
- Returns:
The title style for the column. Will be one of
SceneGraphColumnTitle.TextOnly
,IconOnly
orTextAndIcon
.
- getTitleText()
- Return type:
str
- Returns:
The title text for the column.
- Note:
The title text may or may not be displayed in the header for the column, depending on its title style.
- getTitleToolTip()
- Return type:
str
- Returns:
The tooltip text to display for the title.
- getWidth()
- Return type:
int
- Returns:
The width of the column in pixels. This is -1 by default, indicating no preference for the width of the column.
- isEditable()
- Return type:
bool
- Returns:
The editable state of the column.
- isLocationName()
- Return type:
bool
- Returns:
True
if this column is intended for displaying location names, otherwiseFalse
.
- isTitleToggledOn()
- Return type:
bool
- Returns:
Whether the title is turned on or off. This is only valid if the title’s ClickStyle is
Toggle
(seesetTitleClickStyle()
).
- isValueComparisonEnabled()
- Return type:
bool
- Returns:
True
if the value of a parameter that corresponds to a cell in the column for which the item delegate instance is used is to be compared to the value of the corresponding attribute in the scene that is produced at the currently viewed node, orFalse
if not.- See:
- setAttributeName(attributeName, callCallback=True)
Sets the attribute name associated with this column.
- Parameters:
attributeName (
str
) – The attribute name to set for this column.callCallback (
bool
) – An optional flag (default:True
) indicating whether the column changed callback should be called if the given attribute name is different to the currently set attribute name for this column.
- setAttributeNames(*attributeNames, **kwargs)
Sets the attribute names associated with this column.
Specifying
callCallback=False
as a keyword argument will prevent the column changed callback from being called.- Parameters:
attributeNames (
list
ofstr
) – The attribute names to set for this column.
- setDataType(dataType)
Sets the type of data that the column represents to the given column data type.
- Parameters:
dataType (
cls
) – The type of data that the column is to represent.
- setEditable(editable)
Sets the editable state of this column to the given editable state.
- Parameters:
editable (
bool
) – The editable state to set for the column.
- setFixedWidth(fixedWidth)
Sets or resets the fixed width used for the column.
- Parameters:
fixedWidth (
int
orNone
) – The fixed width to use for the column, orNone
to reset the fixed width.
- setIsLocationName(isLocationName)
Sets whether this column is intended for displaying location names.
- Parameters:
isLocationName (
bool
) –True
if this column is intended for displaying location names, otherwiseFalse
.
- setLookFileMaterialCallback(lookFileMaterialAssignmentCallback)
Sets the callback used to assign a Look File Material to a given package.
- Parameters:
lookFileMaterialAssignmentCallback (
callable
orNone
) – The callback to use when assigning a Look File Material to a package.- Raises:
ValueError – If the given callback object is not callable.
- setMasterMaterialCallbacks(masterMaterialsRequestCallback, masterMaterialAssignmentCallback)
- Deprecated:
This function is deprecated. Please use setTemplateMaterialCallbacks() instead.
- setMaximumWidth(maximumWidth)
Sets or resets the maximum width used for the column.
- Parameters:
maximumWidth (
int
orNone
) – The maximum width to use for the column, orNone
to reset the maximum width.
- setMinimumWidth(minimumWidth)
Sets or resets the minimum width used for the column.
- Parameters:
minimumWidth (
int
orNone
) – The minimum width to use for the column, orNone
to reset the minimum width.
- setProperty(propertyName, propertyValue)
Sets the column property with the given name to the given value.
- Parameters:
propertyName (
str
) – The name of the column property to set.propertyValue (
object
orNone
) – The value to set for the column property.
- Raises:
RuntimeError – When an attempt is made to set a property when the data type of the column has not been set.
ValueError – When the column’s data type doesn’t declare the name of the property valid.
- setTemplateMaterialCallbacks(templateMaterialsRequestCallback, templateMaterialAssignmentCallback)
Sets the callbacks to use for obtaining a list of paths of scene graph locations that represent Template Materials and for assigning a Template Material to a light to the given callbacks.
- Parameters:
templateMaterialsRequestCallback (
callable
orNone
) – The callback to use for obtaining a list of paths of Template Material scene graph locations.templateMaterialAssignmentCallback (
callable
orNone
) – The callback to use for assigning a Template Material to a light.
- Raises:
ValueError – If one of the given callback objects is not callable.
- setTitleClickStyle(titleClickStyle)
- Parameters:
titleClickStyle (
str
) – The style in which the title behaves in response to click events. Must be one ofSceneGraphColumnTitle.ClickStyles.MenuIndicator
orSceneGraphColumnTitle.ClickStyles.Toggle
. By default it isMenuIndicator
.
- setTitleClickedCallback(callback)
Sets a callback to be triggered when the title of this column is clicked.
- Parameters:
callback (
callable
orNone
) – The callback to be triggered when the header of the column is clicked, orNone
to reset the callback.- Raises:
ValueError – If the given callback object is not callable.
- setTitleIcon(icon)
- Parameters:
icon (
QtGui.QIcon
orNone
) – The icon to show in the column title, orNone
if no icon is to be shown.
- setTitleIconName(titleIconName)
Sets the name of the icon to use for the title of this column to the given title icon name.
For convenience, also sets the title style to
TextAndIcon
if it is currently set toTextOnly
. If you would like only the icon to be shown, set the title style toIconOnly
usingsetTitleStyle()
.- Parameters:
titleIconName (
str
) – The name of the title icon to use for the column.- Note:
The title icon may or may not be displayed in the header for the column, depending on its title style.
- setTitleStyle(titleStyle)
Sets the title style for this column to the given title style.
- Parameters:
titleStyle (
str
) – The new title style for the column. Must be one ofSceneGraphColumnTitle.TextOnly
,IconOnly
orTextAndIcon
.
- setTitleText(titleText)
Sets the title text for this column to the given title text.
- Parameters:
titleText (
str
) – The new title text for the column.- Note:
The title text may or may not be displayed in the header for the column, depending on its title style.
- setTitleToggledOn(titleToggledOn)
- Parameters:
titleToggledOn (
bool
) – Whether the title is turned on or off.
- setTitleToolTip(toolTip)
Sets the tooltip text to display for the title.
- Parameters:
toolTip (
str
) – The tooltip text to display for the title.
- setValueComparisonEnabled(valueComparisonEnabled)
Sets the flag that controls whether the item delegate instance is to check if the value of a parameter that corresponds to a cell in the column for which the instance is used matches the value of the corresponding attribute in the scene that is produced at the currently viewed node. Item delegate classes can evaluate the flag in
initStyleOption()
functions to determine whether to alter the appearance and editing behaviour of cells for which the values differ.- Parameters:
valueComparisonEnabled (
bool
) – The flag value.
- setWidth(width)
- Parameters:
width (
int
) – The desired width of the column in pixels. This is -1 by default, indicating no preference for the width of the column.
- titleClicked(columnTitleRect)
Called when the title of this column is clicked by the user.
- Parameters:
columnTitleRect (
QtCore.QRect
) – The global screen position and size of the column title that was clicked.
- class UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet(setName='Untitled', columnChangedCallback=None, parentSet=None, columnPresetManager=None)
Bases:
BaseSceneGraphColumn
A SceneGraphColumnSet contains an ordered list of columns or sets of columns.
- __init__(setName='Untitled', columnChangedCallback=None, parentSet=None, columnPresetManager=None)
Initializes an instance of the class.
- Parameters:
setName (
str
) – The name of the new set.columnChangedCallback (
callable
) – A function to be called when the configuration of columns changes. This includes changes to visibility state.parentSet (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
) – The set to which this new set should be added.columnPresetManager (
ColumnPresetManager
orNone
) – AColumnPresetManager
to manage keyboard shortcuts and presets for this column set, and any of its children.
- addChild(child, resetParentSet=True)
Adds the given child object to this set.
- Parameters:
child (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
) – The child object which we wish to add to this set.
- addColumn(columnName)
Adds a new column to this set.
- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
- Parameters:
columnName (
str
) – The new name of the column.- Returns:
The newly created column object.
- addColumnSet(setName='Untitled')
Adds a new column set to this set.
- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
- Parameters:
setName (
str
) – The new name of the column.- Returns:
The newly created column set object.
- addKeyboardShortcut(shortcut)
Associates a keyboard shortcut with this column set. Depending on the
ColumnPresetManager
’s shortcut ‘mode’, when this key is pressed, the visibility state of this and other column sets will be altered.- Parameters:
shortcut (
string
orNone
orint
orQKeySequence
) – A value that can be accepted by theQKeySequence
constructor, for use as a keyboard shortcut that will modify the visibility of this column set.
- applyColumnVisibilitySettings(columnVisibilitySettings)
- Parameters:
columnVisibilitySettings (
dict
) – A dictionary containing visibility settings this set and its child columns and column sets, indexed by name. This is used when loading a layout to restore the columns and column sets that were visible when the Tab layout was saved.
- clearChildren()
Removes all child objects from this set.
- getAttributeName(columnIndex, visibleOnly=True)
- Return type:
str
orNone
- Parameters:
columnIndex (
int
) – The index of the column whose attribute name to return.visibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.
- Returns:
The name of an attribute whose value to show in the column with the given index, or
None
if the given index is out of range.
- getAttributeNames(columnIndex, visibleOnly=True)
- Return type:
list
ofstr
- Parameters:
columnIndex (
int
) – The index of the column whose attribute names to return.visibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.
- Returns:
The names of attributes whose values to show in the column with the given index, or
None
if the given index is out of range.
- getChildByName(childName)
Recursively searches the hierarchy in this column set for the first column or column set of the given name.
- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumn
,UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
orNone
- Parameters:
childName (
str
) – The name of the column or column set to return.- Returns:
The first column or column set with the given name, or
None
if no column or column set by that name is found.
- getChildIndex(child)
- Return type:
int
- Parameters:
child (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
) – The child object whose index in this set we wish to get.- Returns:
The index of the specified child within this set, or -1 if the child is not found.
- getColumnByIndex(columnIndex, visibleOnly=True)
Return the column which would appear nth in the flattened list of all the columns in this set (which may include other sets).
If
visibleOnly
isTrue
, then columns and column sets with their visibility state set toFalse
are ignored and not included in the indexing.- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
- Parameters:
columnIndex (
int
) – The index in the flattened list of columns in the set of the column which we will returnvisibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.
- Returns:
The column found at the requested index, or
None
if the given index is out of range.
- getColumnByName(columnName)
Recursively searches the hierarchy in this column set for the first column of the given name.
- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
orNone
- Parameters:
columnName (
str
) – The name of the column we will search for in the hierarchy under this set.- Returns:
The first column with the specified name, or
None
if no column by that name is found.
- getColumnCount(visibleOnly=True)
- Return type:
int
- Parameters:
visibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.- Returns:
The total number of (visible) columns in this set and any nested sets.
- getColumnSetByName(columnSetName)
Recursively searches the hierarchy in this column set for the first column set of the given name.
- Return type:
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnSet
orNone
- Parameters:
columnSetName (
str
) – The name of the column set to return.- Returns:
The first column set with the given name, or
None
if no column set by that name is found.
- getColumnVisibilitySettings()
- Return type:
dict
- Returns:
A dictionary containing the visibility settings for all the columns and column sets in this column set, indexed by name. This is used to save the visible columns and column sets when saving the Tab layout.
- getColumns(visibleOnly=True)
- Return type:
list
ofUI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
- Parameters:
visibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.- Returns:
A flattened list of all the columns in this set.
- getDataType(columnIndex, visibleOnly=True)
- Return type:
int
orNone
- Parameters:
columnIndex (
int
) – The index of the column whose data type to return.visibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.
- Returns:
The type of data that the column with the given index represents, or
None
if the given index is out of range.
- getNames(visibleOnly=True)
- Return type:
list
ofstr
- Parameters:
visibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.- Returns:
A flattened list of all names of the columns in the hierarchy under this column set.
- getTitleText(columnIndex, visibleOnly=True)
- Return type:
str
orNone
- Parameters:
columnIndex (
int
) – The index of the column whose title text to return.visibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.
- Returns:
The title text for the column with the given index, or
None
if the given index is out of range.
- getTitles(visibleOnly=True)
- Return type:
list
ofUI4.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnTitle
- Parameters:
visibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.- Returns:
A flattened list of all title objects for the columns in the hierarchy under this column set.
- getWidth(columnIndex, visibleOnly=True)
- Return type:
int
orNone
- Parameters:
columnIndex (
int
) – The index of the column whose width to return.visibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.
- Returns:
The width in pixels for the column with the given index, or
None
if the given index is out of range.
- getWidths(visibleOnly=True)
- Return type:
list
ofint
- Parameters:
visibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.- Returns:
A flattened list of all column widths for the columns in the hierarchy under this column set.
- isEditable(columnIndex, visibleOnly=True)
- Return type:
bool
orNone
- Parameters:
columnIndex (
int
) – The index of the column whose editable state will returned.visibleOnly (
bool
) – Flag that controls whether to only consider columns that are visible.
- Returns:
True
if the column with the given index is editable,False
if not, orNone
if the given index is out of range.
- isLocationNameColumn(columnIndex, visibleOnly=True)
- Return type:
bool
orNone
- Parameters:
columnIndex (
int
) – The index of the column which we wish to interrogate.visibleOnly (
bool
) – Should we only count visible columns in the indexing?
- Returns:
True
if the column with the given index is a location name column,False
if not, orNone
if the given index is out of range.
- removeChild(child, resetParentSet=True)
Removes the given child object from this set.
- Parameters:
child (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
) – The child object which we wish to remove from this set.
- removeKeyboardShortcut(shortcut)
Removes a keyboard shortcut that was previously associated with this column set.
- Parameters:
shortcut (
string
orNone
orint
orQKeySequence
) – A value that can be accepted by theQKeySequence
constructor, representing the keyboard shortcut to remove the association for.
- removeKeyboardShortcuts()
Removes all keyboard shortcuts that were previously associated with this column set.
- setChildIndex(child, index)
Sets the index of the specified child within this set. Logs a warning if the given child is not found.
- Parameters:
child (
UI4.Widgets.SceneGraphView.SceneGraphViewColumn.BaseSceneGraphColumn
) – The child object whose index in this set we wish to set.index (
int
) – The index we wish to give to the specified child.
- setColumnChangedCallback(callback)
Sets the callback that is to be triggered when the configuration of columns has been changed. This includes the visibility state of columns.
- Parameters:
callback (
callable
orNone
) – The callback to be triggered when the configuration of columns has been changed.
- class UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnTitle(text, iconName, style)
Bases:
object
Class to describe the header for a column in the SceneGraphView widget.
- class ClickStyles
Bases:
object
Enumeration of possible values for the style of click behaviour.
- All = ['menuIndicator', 'toggle']
- MenuIndicator = 'menuIndicator'
- Toggle = 'toggle'
- DisplayStyles = ['textOnly', 'iconOnly', 'textAndIcon']
- IconOnly = 'iconOnly'
- TextAndIcon = 'textAndIcon'
- TextOnly = 'textOnly'
- __init__(text, iconName, style)
Initializes an instance of the class.
- Parameters:
text (
str
) – The text to display in the header.iconName (
str
) – The name of an icon to display in the header. Mapped to an icon file by theSceneGraphViewIconManager
.style (
str
) – Whether to show text, an icon, or both in the header.
- callClickedCallback(columnTitleRect)
Calls a registered callback that is to be triggered when the column title is clicked.
- Parameters:
columnTitleRect (
QtCore.QRect
) – The global screen position and size of the column title that was clicked.
- getClickStyle()
- Return type:
str
- Returns:
A
SceneGraphColumnTitle.ClickStyles
attribute that represents the style in which to behave in response to click events.
- getClickedCallback()
- Return type:
callable
orNone
- Returns:
A callback that is to be triggered when the header of this column is clicked, or
None
if no such callback has been set for this column.
- getIcon()
- Return type:
QtGui.QIcon
orNone
- Returns:
The icon to be shown in the column title, or
None
if no icon has been set.
- getIconName()
- Return type:
str
- Returns:
The name of the icon to display, taking into account the display style.
- getStyle()
- Return type:
str
- Returns:
The style in which to display the header.
- getText()
- Return type:
str
- Returns:
The text to display, taking into account the display style.
- getToolTip()
- Return type:
str
- Returns:
The tooltip text to display.
- isToggledOn()
- Return type:
bool
- Returns:
Whether the title is turned on or off. This is only valid if the title’s ClickStyle is
Toggle
(seesetClickStyle()
).
- setClickStyle(clickStyle)
- Parameters:
clickStyle (
str
) – The style in which to behave in response to click events. Must be one ofSceneGraphColumnTitle.ClickStyles.MenuIndicator
orSceneGraphColumnTitle.ClickStyles.Toggle
.
- setClickedCallback(callback)
Sets a callback to be triggered when the column title is clicked.
- Parameters:
callback (
callable
orNone
) – The callback to be triggered when the header of the column is clicked, orNone
to reset the callback.- Raises:
ValueError – If the given callback object is not callable.
- setIcon(icon)
Sets the icon to use for the column title to the given icon.
- Parameters:
icon (
QtGui.QIcon
orNone
) – The icon to show in the column title, orNone
if no icon is to be shown.- Raises:
TypeError – If icon is neither
None
nor aQtGui.QIcon
.
- setIconName(iconName)
Sets the name of the icon to display to the given icon name.
- Parameters:
iconName (
str
) – The name of the icon to display.
- setStyle(style)
- Parameters:
style (
str
) – The style in which to display the header. Must be one ofUI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnTitle
,UI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnTitle
orUI4.Widgets.SceneGraphView.SceneGraphViewColumn.SceneGraphColumnTitle
.
- setText(text)
Sets the text to display.
- Parameters:
text (
str
) – The text to display.
- setToggledOn(toggledOn)
- Parameters:
toggledOn (
bool
) – Whether the title is turned on or off.
- setToolTip(toolTip)
Sets the tooltip text to display.
- Parameters:
toolTip (
str
) – The tooltip text to display.
- setUpdateFunction(updateFunction, *args)
Sets an update function and any arguments that can be used to cause a redraw of the column title.
- Parameters:
updateFunction (
callable
orNone
) – An update function.args (
list
) – Any arguments to be passed to the update function when it is run.
ViewLink
- class UI4.Widgets.SceneGraphView.ViewLink.ViewLink
Bases:
ABC
The ViewLink is the Abstract Base Class which represents the functions called by the BRIDGE to ask the VIEW to do things.
More generally, it encapsulates the UI specific implementation. So, for example, we wrap up all the QTreeView specific code within the concrete implementation.
- abstract addOrUpdateLocation(handle, topLevelHandle)
The UI should add or update the the given location.
- abstract addOrUpdateTopLevelLocation(topLevelHandle)
The UI should add or update a new top level item under which portions of the scene graph will be displayed.
- abstract allowMultipleSelection()
- Return type:
bool
- Returns:
True
if the user can select multiple items in the widget, otherwiseFalse
.
- abstract clearExpandedLocationsRegistry(clearCurrent=False)
Clears the cache of previously expanded locations, if clearCurrent then also clear the regsitry of currently expanded locatons.
- abstract collapseLocation(handle, topLevelHandle)
The UI should visually close the scene graph location to the user.
- abstract evaluateFilterRules(handle=None, topLevelHandle=None)
The UI should re-evaluate the location against the rule set stored on the bridge.
If handle and topLevelHandle are None then all locations should be re-evaluated.
- Parameters:
handle (
SceneGraphHandle
) – A handle to the scene graph location that should be evaluated.topLevelHandle (
SceneGraphHandle
) – The top-level location to which handle belongs to.
- abstract expandLocation(handle, topLevelHandle)
The UI should visually reveal the scene graph location to the user.
- frozenWhenHidden()
- Return type:
bool
- Returns:
True
if the Geolib clients are frozen (deactivated) when the widget is hidden and thawed (activated) when it is shown.
- abstract getAllLocations()
- Return type:
list
oftuple
objects containing a pair ofstr
objects.- Returns:
A list of the locations in the tree widget, in tuples of the form (topLevelLocationPath, locationPath).
- abstract getChildLocations(locationPath, topLevelLocationPath, visibleOnly=True, allDescendants=True)
Return a list of the children of the given location. If
visibleOnly
isTrue
, then only return child items that are visible in the widget. IfallDescendants
isTrue
, then return all descendants of the given location.
- abstract getOverrideNodeAndParameterName(locationPath, attributeName)
- Return type:
tuple
ofNodegraphAPI.Node
orNone
andstr
orNone
.- Parameters:
locationPath (
str
) – The path of a scene graph location for which to return an override parameter node.attributeName (
str
) – The name of a scene graph attribute for which to return an override node and parameter name pair.
- Returns:
A node and parameter name pair. Where the node contains a parameter which sets the value of the scene graph attribute with the given name on the scene graph location with the given path, or a tuple containing two instances of
None
if no such node and parameter pair is available.
- abstract getSelectedLocations()
This function should return a list of the currently selected scene graph locations
- abstract getUpdateSuppressor()
Returns a context manager which suppresses UI updates for the duration of its scope. This is intended for use with a
with
statement, e.g.:with myViewLink.getUpdateSuppressor(): # Do computation work while UI updates are suppressed
This function can return
None
to use no update suppressor.
- abstract getWidget()
Get the widget capable of being displayed in a Qt Form.
- abstract isLocationExpanded(handle, topLevelHandle)
- Return type:
bool
- Returns:
True
if the given scene graph location is currently expanded, otherwiseFalse
.
- abstract removeLocation(handle, topLevelHandle)
The UI should remove this location as it is no longer visible.
- abstract removeTopLevelLocation(topLevelHandle)
The UI should remove the top level item from its view.
- abstract resetModel()
Any data structures used by the UI to maintain the information that is displayed should be reset.
- abstract saveExpandedLocations()
Lets the UI save the currently expanded locations. This can be used when the expanded state can be lost (for example, when a viewed node changes) so that the expansion of the locations can be recovered later on.
- abstract scrollToLocation(handle, topLevelHandle)
Scrolls the view so that the scene graph location specified by
handle
andtopLevelHandle
is visible.- Parameters:
handle (
SceneGraphHandle
) – A handle to the location path to which to scroll the view.topLevelHandle (
SceneGraphHandle
) – A handle to the top-level location which under which the location should be scrolled to.
- abstract selectChildLocations(replaceSelection=True)
Select the child locations of the current selection. If
replaceSelection
isTrue
, then de-select the current selection.
- abstract selectLocations(locations, replaceSelection=True)
Select the given locations, either adding to or replacing the current selection, depending on the value of
replaceSelection
.- Parameters:
locations (
list
oftuple
objects containing a pair ofstr
objects, orlist
ofstr
objects.) – A list of the locations to select, either in tuples of the form (topLevelLocationPath, locationPath) or just as a list of locations. In the latter case, every instance of the specified location will be selected (i.e. under any top-level location).replaceSelection (
bool
) – A flag to indicate whether the specified locations should replace what is currently selected.
- abstract selectParentLocations(replaceSelection=True)
Select the parent locations of the current selection. If
replaceSelection
isTrue
, then de-select the current selection.
- abstract setAboutToDragCallback(callback)
Registers a function to be called when a drag event is triggered allowing the user to override the modify the MIME data and other drag information.
- abstract setAllowMultipleSelection(allowMultipleSelection)
Enable or disable multiple selections in the View
- Parameters:
allowMultipleSelection (
bool
) – A flag indicating whether the user can select multiple items.
- abstract setAttributeDataChildren(handle, topLevelHandle, attributeDataChildren)
- Parameters:
handle (
SceneGraphHandle
) – A handle to the location path whose attribute data children to set.topLevelHandle (
SceneGraphHandle
) – A handle to the top-level location which under which the location’s attribute data children should be set.attributeDataChildren – Map from attribute name to
SceneGraphHandle
, containing the attribute data children which should be set on the given location.
- abstract setColumnTitles(columnTitleInfo)
Given the list of column titles, create a set of column headers in the order provided by the list.
Any previous column headers should be discarded.
- Parameters:
columnTitleInfo (
list
ofSceneGraphViewColumn.SceneGraphColumnTitle
) – List of column titles
- abstract setColumnWidths(columnWidths)
Sets the column widths.
- Parameters:
columnTitles (
list
ofint
) – A list of values representing the width of the columns in pixels.
- abstract setContextMenuEventCallback(callback)
This sets the context menu callback which should be called whenever the user right-clicks on a scene graph location in the View.
- abstract setDragMoveEventCallback(callback)
Registers a function to be called when items are dragged over the SceneGraphView widget in order to determine whether dragged items could be dropped onto the widget.
The callback is expected to have the following signature:
function(dragMoveEvent: QtGui.QDragMoveEvent, draggedItems: list, parentItem: QtWidgets.QTreeWidgetItem, childItemIndex: int)
Where:
dragMoveEvent
is an instance ofQtGui.QDragMoveEvent
, and provides details about the drag operation in progress.draggedItems
is alist
of specializedQtWidgets.QTreeWidgetItem
instances that represent the items that are being dragged over the widget.parentItem
is a specializedQtWidgets.QTreeWidgetItem
instance that represents an item in the SceneGraphView widget that contains the item over which the dragged items are being dragged.parentItem
isNone
if items are being dragged over empty space in the SceneGraphView widget.childItemIndex
is an integer number representing the index of the item under the mouse pointer underneath the givenparentItem
.
- Parameters:
callback (
callable
) – A callable function to handle drag move events.
- abstract setDropEventCallback(callback)
Registers a function to be called when dragged items are dropped over the SceneGraphView widget in order to trigger custom behavior depending on the number and type of the dragged items and the item onto which the dragged items have been dropped.
The callback is expected to have the following signature:
function(dropEvent: QtGui.QDropEvent, droppedItems: list, parentItem: QtWidgets.QTreeWidgetItem, childItemIndex: int)
Where:
dropEvent
is an instance ofQtGui.QDropEvent
, and provides details about the drop operation.droppedItems
is alist
of specializedQtWidgets.QTreeWidgetItem
instances that represent the items that have been been dropped onto the widget.parentItem
is a specializedQtWidgets.QTreeWidgetItem
instance that represents an item in the SceneGraphView widget that contains the item over which the dragged items have been dropped.parentItem
isNone
if items have been dropped over empty space in the SceneGraphView widget.childItemIndex
is an integer number representing the index of the item under the mouse pointer underneath the givenparentItem
.
- Parameters:
callback (
callable
) – A callable function to handle drag move events.
- abstract setExpandsOnDoubleClick(expandsOnDoubleClick)
Enable or disable recursively expanding child locations when a double- click event is received. The default is
True
.- Parameters:
expandsOnDoubleClick (
bool
) – Whether or not to expand child locations on double-click.
- setFrozenWhenHidden(frozenWhenHidden=True)
- Parameters:
frozenWhenHidden (
bool
) – A flag indicating whether the internal Geolib clients in the widget will be frozen (deactivated) when the widget is hidden, and thawed (activated) when it is shown. Default isTrue
.
- abstract setKeyPressEventCallback(callback)
This sets the keyPress event callback which should be called whenever the user presses a key when the View has focus.
- abstract setOverrideParameterRequestCallback(callback)
Sets the function to call when override parameters for attributes of scene graph locations are requested.
The callback is expected to have the following signature:
function(locationPath: str, attributeName: str)
- Parameters:
callback (
callable
) – A callable object that will be called when override parameters corresponding to attributes of scene graph locations are requested.
- abstract setSelectionChangedCallback(callback)
Sets the selection changed callback that should be called when ever the user changes the currently selected scene graph locations.
- abstract setSelectionState(topLevelLocationPath, locationPath, selected)
Sets the selection state of
locationPath
toselected
. IftopLevelLocationPath
is specified the location path under that top-level item will be set to selected otherwise all will be selected.
- sortChildrenUnderLocation(handle, topLevelHandle)
Sorts the child items beneath the location specified by
handle
andtopLevelHandle
.- Parameters:
handle (
SceneGraphHandle
) – A handle representing the scene graph location whose children to sort.topLevelHandle (
SceneGraphHandle
) – A handle representing the top-level scene graph location that contains the location whose children to sort.
- sortTopLevelLocations()
Updates the sort index of top-level items to match the order in the bridge.
- abstract updateItemDelegates()
This function should update the widgets to use the correct item delegates for each visible column.
- abstract updateLocationIcons(handle, topLevelHandle)
Refreshes the icons displayed in the
SceneGraphView
for the given location path.
- abstract updateSelection(selectedLocations, deselectedLocations)
Updates the set of selected locations, adding those in
selectedLocations
and removing those indeselectedLocations
.- Parameters:
selectedLocations (
list
of 2-tuple
ofstr
, orlist
ofstr
) – A list of the locations to add to the selection, either in tuples of the form (topLevelLocationPath, locationPath) or just as a list of locations. In the latter case, every instance of the specified location will be selected (i.e. under any top-level location).deselectedLocations (
list
of 2-tuple
ofstr
, orlist
ofstr
) – A list of the locations to remove from the selection, either in tuples of the form (topLevelLocationPath, locationPath) or just as a list of locations. In the latter case, every instance of the specified location will be selected (i.e. under any top-level location).
- abstract updateViewport()
Refresh the viewport of the widget.