Example #1
0
 def InitUI(self, docs):
     vbox = wx.BoxSizer(wx.VERTICAL)
     self.diffviewer = DiffViewer(self, "diffViewer")
     self.diffviewer.Bind(EVT_REQUEST_NEXT, self.onRequestNext)
     self.diffviewer.Bind(EVT_DOCPAGE_CHANGED, self.onDocPageChanged)
     self.filelist = DocListBox(self, docs)
     self.filelist.Bind(wx.EVT_LISTBOX_DCLICK, self.onItemClicked)
     self.filelist.Bind(wx.EVT_LISTBOX, self.onItemSelected)
     vbox.Add(self.filelist, proportion=1, flag=wx.EXPAND | wx.ALL)
     self.SetSizer(vbox)
     self.CreateStatusBar(3)
     self.SetStatusWidths([55, 350, 70])
Example #2
0
 def InitUI(self, docs):
     vbox = wx.BoxSizer(wx.VERTICAL)
     self.diffviewer = DiffViewer(self, "diffViewer")
     self.diffviewer.Bind(EVT_REQUEST_NEXT, self.onRequestNext)
     self.diffviewer.Bind(EVT_DOCPAGE_CHANGED, self.onDocPageChanged)
     self.filelist = DocListBox(self, docs)
     self.filelist.Bind(wx.EVT_LISTBOX_DCLICK, self.onItemClicked)
     self.filelist.Bind(wx.EVT_LISTBOX, self.onItemSelected)
     vbox.Add(self.filelist, proportion=1, flag=wx.EXPAND | wx.ALL)
     self.SetSizer(vbox)
     self.CreateStatusBar(3)
     self.SetStatusWidths([55, 350, 70])
Example #3
0
class MyFrame(wx.Frame):
    def __init__(self, parent, title, docs):
        wx.Frame.__init__(self, parent, title=title)
        self.InitUI(docs)
        self.Show(True)
        self.isEditing = False
        self.commentsIndex = {}
        self.updateCommentsIndex()

    def InitUI(self, docs):
        vbox = wx.BoxSizer(wx.VERTICAL)
        self.diffviewer = DiffViewer(self, "diffViewer")
        self.diffviewer.Bind(EVT_REQUEST_NEXT, self.onRequestNext)
        self.diffviewer.Bind(EVT_DOCPAGE_CHANGED, self.onDocPageChanged)
        self.filelist = DocListBox(self, docs)
        self.filelist.Bind(wx.EVT_LISTBOX_DCLICK, self.onItemClicked)
        self.filelist.Bind(wx.EVT_LISTBOX, self.onItemSelected)
        vbox.Add(self.filelist, proportion=1, flag=wx.EXPAND | wx.ALL)
        self.SetSizer(vbox)
        self.CreateStatusBar(3)
        self.SetStatusWidths([55, 350, 70])

    def onItemClicked(self, event):
        self.show(self.filelist.GetItem(event.GetSelection()))

    def onDocPageChanged(self, event):
        self.updateCommentsIndex()

    def updateCommentsIndex(self):
        self.commentsIndex.clear()
        for docPage in self.filelist.docs:
            if docPage.hasComment():
                if docPage.comment in self.commentsIndex.keys():
                    self.commentsIndex[docPage.comment] += 1
                else:
                    self.commentsIndex[docPage.comment] = 1

    def show(self, doc):
        """
        :type doc: DocPage
        :return:
        """
        if doc.ensureCompared():
            self.diffviewer.load(doc, self.commentsIndex)

    def onItemSelected(self, event):
        doc = self.filelist.GetItem(event.GetSelection())
        """
        @type: Document
        """
        self.SetStatusText(str(event.GetSelection()+3), 0)
        self.SetStatusText(doc.id, 1)
        self.SetStatusText(str(doc.difference), 2)

    def onKeyDown(self, event):
        """
        :type event: wx.KeyEvent
        """
        print(event.GetKeyCode())
        if not self.IsActive():
            self.diffviewer.onKeyUp(event)
            return
        if event.GetKeyCode() in [wx.WXK_RETURN, wx.WXK_NUMPAD_ENTER, _KC_i]:
            self.show(self.filelist.GetItem(self.filelist.GetSelection()))
        elif event.GetKeyCode() == wx.WXK_ESCAPE:
            pass
        elif event.GetKeyCode() == _KC_j:
            self.gotoNext()
        elif event.GetKeyCode() == _KC_k:
            self.gotoPrev()
        else:
            self.diffviewer.onKeyUp(event)

    def gotoNext(self):
        fl = self.filelist
        count = fl.GetItemCount()
        curIdx = fl.GetSelection()
        nextIdx = curIdx + 1 if curIdx < count - 1 else count - 1
        fl.SetSelection(nextIdx)

    def gotoPrev(self):
        fl = self.filelist
        curIdx = fl.GetSelection()
        nextIdx = curIdx - 1 if curIdx > 0 else 0
        fl.SetSelection(nextIdx)

    def onRequestNext(self, evt):
        self.gotoNext()
        self.show(self.filelist.GetItem(self.filelist.GetSelection()))

    def RefreshDocList(self):
        self.filelist.Refresh()
Example #4
0
class MyFrame(wx.Frame):
    def __init__(self, parent, title, docs):
        wx.Frame.__init__(self, parent, title=title)
        self.InitUI(docs)
        self.Show(True)
        self.isEditing = False
        self.commentsIndex = {}
        self.updateCommentsIndex()

    def InitUI(self, docs):
        vbox = wx.BoxSizer(wx.VERTICAL)
        self.diffviewer = DiffViewer(self, "diffViewer")
        self.diffviewer.Bind(EVT_REQUEST_NEXT, self.onRequestNext)
        self.diffviewer.Bind(EVT_DOCPAGE_CHANGED, self.onDocPageChanged)
        self.filelist = DocListBox(self, docs)
        self.filelist.Bind(wx.EVT_LISTBOX_DCLICK, self.onItemClicked)
        self.filelist.Bind(wx.EVT_LISTBOX, self.onItemSelected)
        vbox.Add(self.filelist, proportion=1, flag=wx.EXPAND | wx.ALL)
        self.SetSizer(vbox)
        self.CreateStatusBar(3)
        self.SetStatusWidths([55, 350, 70])

    def onItemClicked(self, event):
        self.show(self.filelist.GetItem(event.GetSelection()))

    def onDocPageChanged(self, event):
        self.updateCommentsIndex()

    def updateCommentsIndex(self):
        self.commentsIndex.clear()
        for docPage in self.filelist.docs:
            if docPage.hasComment():
                if docPage.comment in self.commentsIndex.keys():
                    self.commentsIndex[docPage.comment] += 1
                else:
                    self.commentsIndex[docPage.comment] = 1

    def show(self, doc):
        """
        :type doc: DocPage
        :return:
        """
        if doc.ensureCompared():
            self.diffviewer.load(doc, self.commentsIndex)

    def onItemSelected(self, event):
        doc = self.filelist.GetItem(event.GetSelection())
        """
        @type: Document
        """
        self.SetStatusText(str(event.GetSelection() + 3), 0)
        self.SetStatusText(doc.id, 1)
        self.SetStatusText(str(doc.difference), 2)

    def onKeyDown(self, event):
        """
        :type event: wx.KeyEvent
        """
        print(event.GetKeyCode())
        if not self.IsActive():
            self.diffviewer.onKeyUp(event)
            return
        if event.GetKeyCode() in [wx.WXK_RETURN, wx.WXK_NUMPAD_ENTER, _KC_i]:
            self.show(self.filelist.GetItem(self.filelist.GetSelection()))
        elif event.GetKeyCode() == wx.WXK_ESCAPE:
            pass
        elif event.GetKeyCode() == _KC_j:
            self.gotoNext()
        elif event.GetKeyCode() == _KC_k:
            self.gotoPrev()
        else:
            self.diffviewer.onKeyUp(event)

    def gotoNext(self):
        fl = self.filelist
        count = fl.GetItemCount()
        curIdx = fl.GetSelection()
        nextIdx = curIdx + 1 if curIdx < count - 1 else count - 1
        fl.SetSelection(nextIdx)

    def gotoPrev(self):
        fl = self.filelist
        curIdx = fl.GetSelection()
        nextIdx = curIdx - 1 if curIdx > 0 else 0
        fl.SetSelection(nextIdx)

    def onRequestNext(self, evt):
        self.gotoNext()
        self.show(self.filelist.GetItem(self.filelist.GetSelection()))

    def RefreshDocList(self):
        self.filelist.Refresh()