tools, frontends (xmlui): allow to select a tab when adding it
This commit is contained in:
parent
fe5cc0ac0a
commit
a90bcacfe9
1 changed files with 32 additions and 8 deletions
|
|
@ -381,12 +381,28 @@ class TabElement(Element):
|
|||
""" Used by TabsContainer to give name and label to tabs."""
|
||||
type = 'tab'
|
||||
|
||||
def __init__(self, parent, name, label):
|
||||
def __init__(self, parent, name, label, selected=False):
|
||||
"""
|
||||
|
||||
@param parent (TabsContainer): parent container
|
||||
@param name (unicode): tab name
|
||||
@param label (unicode): tab label
|
||||
@param selected (bool): set to True to select this tab
|
||||
"""
|
||||
if not isinstance(parent, TabsContainer):
|
||||
raise exceptions.DataError(_("TabElement must be a child of TabsContainer"))
|
||||
super(TabElement, self).__init__(parent.xmlui, parent)
|
||||
self.elem.setAttribute('name', name)
|
||||
self.elem.setAttribute('label', label)
|
||||
if selected:
|
||||
self.setSelected(selected)
|
||||
|
||||
def setSelected(self, selected=False):
|
||||
"""Set the tab selected.
|
||||
|
||||
@param selected (bool): set to True to select this tab
|
||||
"""
|
||||
self.elem.setAttribute('selected', 'true' if selected else 'false')
|
||||
|
||||
|
||||
class FieldBackElement(Element):
|
||||
|
|
@ -543,13 +559,20 @@ class PairsContainer(Container):
|
|||
class TabsContainer(Container):
|
||||
type = "tabs"
|
||||
|
||||
def addTab(self, name, label=None, container=VerticalContainer):
|
||||
"""Add a tab"""
|
||||
def addTab(self, name, label=None, selected=None, container=VerticalContainer):
|
||||
"""Add a tab.
|
||||
|
||||
@param name (unicode): tab name
|
||||
@param label (unicode): tab label
|
||||
@param selected (bool): set to True to select this tab
|
||||
@param container (class): container class, inheriting from Container
|
||||
@return: the container for the new tab
|
||||
"""
|
||||
if not label:
|
||||
label = name
|
||||
tab_elt = TabElement(self, name, label)
|
||||
tab_elt = TabElement(self, name, label, selected)
|
||||
new_container = container(self.xmlui, tab_elt)
|
||||
self.xmlui.changeContainer(new_container)
|
||||
return self.xmlui.changeContainer(new_container)
|
||||
|
||||
def end(self):
|
||||
""" Called when we have finished tabs
|
||||
|
|
|
|||
Loading…
Reference in a new issue