beremiz

SVGHMI: UI Updates validity indicator when DnD HMI tree node in text field, according to node type
  • +24 -6
    svghmi/ui.py
  • --- a/svghmi/ui.py Mon May 31 16:06:00 2021 +0200
    +++ b/svghmi/ui.py Wed Jun 09 10:06:23 2021 +0200
    @@ -200,6 +200,17 @@
    self.SetSizer(self.main_sizer)
    self.main_sizer.Fit(self)
    + def setValidityNOK(self):
    + self.validity_sbmp.SetBitmap(self.invalid_bmp)
    + self.validity_sbmp.Show(True)
    +
    + def setValidityOK(self):
    + self.validity_sbmp.SetBitmap(self.valid_bmp)
    + self.validity_sbmp.Show(True)
    +
    + def setValidityUnknown(self):
    + self.validity_sbmp.Show(False)
    +
    class ArgEditor(ParamEditor):
    pass
    @@ -207,18 +218,25 @@
    def __init__(self, parent, pathdesc):
    ParamEditor.__init__(self, parent, pathdesc)
    self.ParentObj = parent
    + self.pathdesc = pathdesc
    DropTarget = PathDropTarget(self)
    self.edit.SetDropTarget(DropTarget)
    - self.Bind(wx.EVT_TEXT_ENTER, self.OnPathChanged, self.edit)
    + self.Bind(wx.EVT_TEXT, self.OnPathChanged, self.edit)
    def OnHMITreeDnD(self):
    self.ParentObj.GotPathDnDOn(self)
    - def SetPath(self, value):
    - self.edit.SetValue(value)
    + def SetPath(self, hmitree_node):
    + self.edit.ChangeValue(hmitree_node.hmi_path())
    + if hmitree_node.nodetype in self.pathdesc.get("accepts").split(","):
    + self.setValidityOK()
    + else:
    + self.setValidityNOK()
    def OnPathChanged(self, event):
    - # TODO : update validity
    + # TODO : find corresponding hmitre node and type to update validity
    + # Lazy way : hide validity
    + self.setValidityUnknown()
    event.Skip()
    @@ -328,9 +346,9 @@
    def GotPathDnDOn(self, target_editor):
    dndindex = self.paths_editors.index(target_editor)
    - for selected,editor in zip(self.hmitree_nodes,
    + for hmitree_node,editor in zip(self.hmitree_nodes,
    self.paths_editors[dndindex:]):
    - editor.SetPath(selected.hmi_path())
    + editor.SetPath(hmitree_node)
    def RecallLibDir(self):
    conf = self.Config.Read(_conf_key)