Uranium
Application Framework
Loading...
Searching...
No Matches
UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel Class Reference

Public Member Functions

 __init__ (self, Optional[QObject] parent=None, *args, **kwargs)
 
None setDestroyed (self, bool value)
 
None setShowAncestors (self, bool show_ancestors)
 
bool showAncestors (self)
 
None setContainerId (self, str container_id)
 
Optional[str] containerId (self)
 
None setRootKey (self, str key)
 
str rootKey (self)
 
None setShowAll (self, bool show)
 
bool showAll (self)
 
None setVisibilityHandler (self, SettingPreferenceVisibilityHandler visibility_handler)
 
 visibilityHandler (self)
 
None setExclude (self, Set[str] exclude)
 
 exclude (self)
 
None setExpanded (self, List[str] expanded)
 
List[str] expanded (self)
 
int visibleCount (self)
 
int categoryCount (self)
 
None setFilter (self, Dict[str, str] filter_dict)
 
 filter (self)
 
None expand (self, str key)
 
None expandRecursive (self, str key, *, bool emit_signal=True)
 
None collapseRecursive (self, str key, *, bool emit_signal=True)
 
None collapseAllCategories (self)
 
None show (self, str key)
 
None hide (self, str key)
 
None setAllExpandedVisible (self, bool visible)
 
None setAllVisible (self, bool visible)
 
None setVisible (self, str key, bool visible)
 
bool getVisible (self, str key)
 
int getIndex (self, str key)
 
List[Dict[str, Any]] getRequires (self, str key, str role=None)
 
List[Dict[str, Any]] getRequiredBy (self, str key, str role=None)
 
int count (self)
 
int rowCount (self, parent=None)
 
 data (self, index, role)
 
Dict[int, bytes] roleNames (self)
 
None forceUpdate (self)
 

Static Public Attributes

int KeyRole = Qt.ItemDataRole.UserRole + 1
 
int DepthRole = Qt.ItemDataRole.UserRole + 2
 
int VisibleRole = Qt.ItemDataRole.UserRole + 3
 
int ExpandedRole = Qt.ItemDataRole.UserRole + 4
 
 showAncestorsChanged = pyqtSignal()
 
 containerIdChanged = pyqtSignal()
 
 rootKeyChanged = pyqtSignal()
 
 showAllChanged = pyqtSignal()
 
 visibilityChanged = pyqtSignal()
 
 visibilityHandlerChanged = pyqtSignal()
 
 excludeChanged = pyqtSignal()
 
 expandedChanged = pyqtSignal()
 
 visibleCountChanged = pyqtSignal()
 
 filterChanged = pyqtSignal()
 
 itemsChanged = pyqtSignal()
 

Protected Member Functions

None _onDestroyed (self)
 
List["SettingDefinition"] _getDefinitionsByKey (self, str key)
 
Set[str] _expandRecursive (self, str key)
 
None _onExpandedChanged (self)
 
None _onVisibilityChanged (self)
 
None _scheduleUpdateVisibleRows (self)
 
None _update (self)
 
None _updateIndexCache (self)
 
None _updateVisibleRows (self)
 
bool _isDefinitionVisible (self, SettingDefinition definition, **Any kwargs)
 
bool _isAnyDescendantFiltered (self, SettingDefinition definition)
 
bool _isAnyDescendantVisible (self, SettingDefinition definition)
 
int _findRowToInsert (self, int index)
 

Protected Attributes

Optional[str] _container_id = None
 
Optional[DefinitionContainerInterface] _container = None
 
 _i18n_catalog = None
 
str _root_key = ""
 
Optional[SettingDefinition_root = None
 
list _definition_list = []
 
dict _index_cache = {}
 
list _row_index_list = []
 
Set[str] _expanded = set()
 
Set[str] _visible = set()
 
Set[str] _exclude = set()
 
bool _show_all = False
 
bool _show_ancestors = False
 
Optional[SettingPreferenceVisibilityHandler] _visibility_handler = None
 
bool _update_visible_row_scheduled = False
 
bool _destroyed = False
 
dict _filter_dict = {}
 
dict _role_names
 
 _onDestroyed = 1
 
 _onExpandedChanged
 
 _onVisibilityChanged = visibility_handler
 
 _updateVisibleRows = True
 

Detailed Description

Model that provides a flattened list of the tree of SettingDefinition objects in a DefinitionContainer

This model exposes the tree of SettingDefinition objects in a DefinitionContainer as a list of settings.
It uses two lists, one is the list of definitions which directly corresponds with the flattened contents
of the DefinitionContainer. The other is a list matching rows in the model to indexes in the list of
settings. This list can be quite a bit shorter than the list of definitions since all visibility criteria
are applied.

Member Function Documentation

◆ collapseRecursive()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.collapseRecursive ( self,
str key,
* ,
bool emit_signal = True )
Hide the children of a specified SettingDefinition and all children of those settings as well.

:param key: Key of the setting to collapse
:param emit_signal: Should signals be emitted when collapsing. Can only be set as keyword argument.
:return:

◆ containerId()

Optional[str] UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.containerId ( self)
The ID of the DefinitionContainer object this model exposes.

◆ count()

int UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.count ( self)
Reimplemented from QAbstractListModel

Note that count() is overridden from QAbstractItemModel. The signature
of the method in that class is "int count()" which makes this slot
declaration incorrect.
TODO: fix the pointer when actually using this parameter.

◆ data()

UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.data ( self,
index,
role )
Reimplemented from QAbstractListModel

◆ exclude()

UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.exclude ( self)
This property indicates which settings should never be visibile.

◆ expand()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.expand ( self,
str key )
Show the children of a specified SettingDefinition.

◆ expanded()

List[str] UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.expanded ( self)
This property indicates which settings should never be visibile.

◆ expandRecursive()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.expandRecursive ( self,
str key,
* ,
bool emit_signal = True )
Show the children of a specified SettingDefinition and all children of those settings as well.

:param key: Key of the setting to expand
:param emit_signal: Should signals be emitted when expanding. Can only be set as keyword argument.
:return:

◆ forceUpdate()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.forceUpdate ( self)
Force updating the model.

◆ getVisible()

bool UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.getVisible ( self,
str key )
Get a single SettingDefinition's visible state

◆ hide()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.hide ( self,
str key )
Hide a single SettingDefinition.

◆ roleNames()

Dict[int, bytes] UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.roleNames ( self)
Reimplemented from QAbstractListModel

◆ rootKey()

str UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.rootKey ( self)
The SettingDefinition to use as root for the list.

◆ rowCount()

int UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.rowCount ( self,
parent = None )
This function is necessary because it is abstract in QAbstractListModel.

Under the hood, Qt will call this function when it needs to know how many items are in the model.
This pyqtSlot will not be linked to the itemsChanged signal, so please use the normal count() function instead.

◆ setContainerId()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.setContainerId ( self,
str container_id )
Set the containerId property.

◆ setExclude()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.setExclude ( self,
Set[str] exclude )
Set the exclude property

◆ setExpanded()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.setExpanded ( self,
List[str] expanded )
Set the expanded property

◆ setFilter()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.setFilter ( self,
Dict[str, str] filter_dict )
Set the filter of this model based on a string.

:param filter_dict: Dictionary to do the filtering by.

◆ setRootKey()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.setRootKey ( self,
str key )
Set the rootKey property.

◆ setShowAll()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.setShowAll ( self,
bool show )
Set the showAll property.

◆ setVisibilityHandler()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.setVisibilityHandler ( self,
SettingPreferenceVisibilityHandler visibility_handler )
Set the visibilityHandler property

◆ setVisible()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.setVisible ( self,
str key,
bool visible )
Set a single SettingDefinition's visible state

◆ show()

None UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.show ( self,
str key )
Show a single SettingDefinition.

◆ showAll()

bool UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.showAll ( self)
Whether or not the model should show all definitions regardless of visibility.

◆ showAncestors()

bool UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.showAncestors ( self)
Should we still show ancestors, even if filter says otherwise? 

◆ visibilityHandler()

UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel.visibilityHandler ( self)
An instance of SettingVisibilityHandler to use to determine which settings should be visible.

Member Data Documentation

◆ _role_names

dict UM.Settings.Models.SettingDefinitionsModel.SettingDefinitionsModel._role_names
protected
Initial value:
= {
self.KeyRole: b"key",
self.DepthRole: b"depth",
self.VisibleRole: b"visible",
self.ExpandedRole: b"expanded",
}

The documentation for this class was generated from the following file: