TextViewer.py
changeset 136 858ff1a52d20
parent 125 394d9f168258
child 145 4fb225afddf4
equal deleted inserted replaced
135:d24ce0800ac6 136:858ff1a52d20
   159         self.Keywords = []
   159         self.Keywords = []
   160         self.Variables = []
   160         self.Variables = []
   161         self.Functions = []
   161         self.Functions = []
   162         self.Jumps = []
   162         self.Jumps = []
   163         self.EnumeratedValues = []
   163         self.EnumeratedValues = []
   164         self.TextChanged = False
       
   165         self.DisableEvents = True
   164         self.DisableEvents = True
   166         self.TextSyntax = "ST"
   165         self.TextSyntax = "ST"
   167         self.CurrentAction = None
   166         self.CurrentAction = None
   168         self.TagName = tagname
   167         self.TagName = tagname
   169         
   168         
   221                 event.SetDragText("")
   220                 event.SetDragText("")
   222             elif values[1] == "function":
   221             elif values[1] == "function":
   223                 event.SetDragText(values[0])
   222                 event.SetDragText(values[0])
   224             elif values[1] != "location":
   223             elif values[1] != "location":
   225                 if values[3] == self.TagName:
   224                 if values[3] == self.TagName:
       
   225                     self.ResetBuffer()
   226                     event.SetDragText(values[0])
   226                     event.SetDragText(values[0])
       
   227                     wx.CallAfter(self.RefreshModel)
   227                 else:
   228                 else:
   228                     event.SetDragText("")
   229                     event.SetDragText("")
   229                     message = wx.MessageDialog(self.ParentWindow, "Variable don't belong to this POU!", "Error", wx.OK|wx.ICON_ERROR)
   230                     message = wx.MessageDialog(self.ParentWindow, "Variable don't belong to this POU!", "Error", wx.OK|wx.ICON_ERROR)
   230                     message.ShowModal()
   231                     message.ShowModal()
   231                     message.Destroy()
   232                     message.Destroy()
   413         event.Skip()
   414         event.Skip()
   414     
   415     
   415     def Cut(self):
   416     def Cut(self):
   416         self.ResetBuffer()
   417         self.ResetBuffer()
   417         self.CmdKeyExecute(wx.stc.STC_CMD_CUT)
   418         self.CmdKeyExecute(wx.stc.STC_CMD_CUT)
       
   419         self.RefreshModel()
   418         self.RefreshBuffer()
   420         self.RefreshBuffer()
   419     
   421     
   420     def Copy(self):
   422     def Copy(self):
   421         self.CmdKeyExecute(wx.stc.STC_CMD_COPY)
   423         self.CmdKeyExecute(wx.stc.STC_CMD_COPY)
   422     
   424     
   423     def Paste(self):
   425     def Paste(self):
   424         self.ResetBuffer()
   426         self.ResetBuffer()
   425         self.CmdKeyExecute(wx.stc.STC_CMD_PASTE)
   427         self.CmdKeyExecute(wx.stc.STC_CMD_PASTE)
       
   428         self.RefreshModel()
   426         self.RefreshBuffer()
   429         self.RefreshBuffer()
   427     
   430     
   428     def RefreshModel(self):
   431     def RefreshModel(self):
   429         if self.TextChanged:
   432         self.RefreshJumpList()
   430             self.RefreshJumpList()
   433         self.Controler.SetEditedElementText(self.TagName, self.GetText())
   431             self.Controler.SetEditedElementText(self.TagName, self.GetText())
       
   432     
   434     
   433     def OnKeyDown(self, event):
   435     def OnKeyDown(self, event):
   434         if self.CallTipActive():
   436         if self.CallTipActive():
   435             self.CallTipCancel()
   437             self.CallTipCancel()
   436         key = event.GetKeyCode()
   438         key = event.GetKeyCode()
   466             if len(kw) > 0:
   468             if len(kw) > 0:
   467                 kw.sort()
   469                 kw.sort()
   468                 self.AutoCompSetIgnoreCase(True)
   470                 self.AutoCompSetIgnoreCase(True)
   469                 self.AutoCompShow(len(words[-1]), " ".join(kw))
   471                 self.AutoCompShow(len(words[-1]), " ".join(kw))
   470         else:
   472         else:
   471             self.TextChanged = False
       
   472             wx.CallAfter(self.RefreshModel)
   473             wx.CallAfter(self.RefreshModel)
   473             event.Skip()
   474             event.Skip()
   474 
   475 
   475     def OnKillFocus(self, event):
   476     def OnKillFocus(self, event):
   476         self.AutoCompCancel()
   477         self.AutoCompCancel()