tools, frontends (xmlui): add setter methods for widgets + new widget InternalButton to process UI operations
This commit is contained in:
parent
608e2ba9fa
commit
6608eafb9f
1 changed files with 119 additions and 0 deletions
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
from sat.core.i18n import _
|
||||
import urwid
|
||||
import copy
|
||||
from urwid_satext import sat_widgets
|
||||
from logging import debug, info, warning, error
|
||||
from xml.dom import minidom
|
||||
|
|
@ -78,11 +79,15 @@ class PrimitivusDividerWidget(xmlui.DividerWidget, urwid.Divider):
|
|||
|
||||
urwid.Divider.__init__(self, div_char)
|
||||
|
||||
|
||||
class PrimitivusStringWidget(xmlui.StringWidget, sat_widgets.AdvancedEdit, PrimitivusEvents):
|
||||
|
||||
def __init__(self, parent, value):
|
||||
sat_widgets.AdvancedEdit.__init__(self, edit_text=value)
|
||||
|
||||
def _xmluiSetValue(self, value):
|
||||
self.set_edit_text(value)
|
||||
|
||||
def _xmluiGetValue(self):
|
||||
return self.get_edit_text()
|
||||
|
||||
|
|
@ -92,6 +97,9 @@ class PrimitivusPasswordWidget(xmlui.PasswordWidget, sat_widgets.Password, Primi
|
|||
def __init__(self, parent, value):
|
||||
sat_widgets.Password.__init__(self, edit_text=value)
|
||||
|
||||
def _xmluiSetValue(self, value):
|
||||
self.set_edit_text(value)
|
||||
|
||||
def _xmluiGetValue(self):
|
||||
return self.get_edit_text()
|
||||
|
||||
|
|
@ -101,6 +109,9 @@ class PrimitivusTextBoxWidget(xmlui.TextBoxWidget, sat_widgets.AdvancedEdit, Pri
|
|||
def __init__(self, parent, value):
|
||||
sat_widgets.AdvancedEdit.__init__(self, edit_text=value, multiline=True)
|
||||
|
||||
def _xmluiSetValue(self, value):
|
||||
self.set_edit_text(value)
|
||||
|
||||
def _xmluiGetValue(self):
|
||||
return self.get_edit_text()
|
||||
|
||||
|
|
@ -110,6 +121,9 @@ class PrimitivusBoolWidget(xmlui.BoolWidget, urwid.CheckBox, PrimitivusEvents):
|
|||
def __init__(self, parent, state):
|
||||
urwid.CheckBox.__init__(self, '', state=state)
|
||||
|
||||
def _xmluiSetValue(self, value):
|
||||
self.set_state(value == "true")
|
||||
|
||||
def _xmluiGetValue(self):
|
||||
return "true" if self.get_state() else "false"
|
||||
|
||||
|
|
@ -135,6 +149,21 @@ class PrimitivusListWidget(xmlui.ListWidget, sat_widgets.List, PrimitivusEvents)
|
|||
def _xmluiGetSelectedValues(self):
|
||||
return [option.value for option in self.getSelectedValues()]
|
||||
|
||||
def _xmluiAddValues(self, values, select=True):
|
||||
current_values = self.getAllValues()
|
||||
new_values = copy.deepcopy(current_values)
|
||||
for value in values:
|
||||
if value not in current_values:
|
||||
new_values.append(value)
|
||||
if select:
|
||||
selected = self._xmluiGetSelectedValues()
|
||||
self.changeValues(new_values)
|
||||
if select:
|
||||
for value in values:
|
||||
if value not in selected:
|
||||
selected.append(value)
|
||||
self._xmluiSelectValues(selected)
|
||||
|
||||
|
||||
class PrimitivusAdvancedListContainer(xmlui.AdvancedListContainer, sat_widgets.TableContainer, PrimitivusEvents):
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue