From 9d4a936cc082a7bcac425369bf5929892e1ded59 Mon Sep 17 00:00:00 2001 From: Eugenio Parodi Date: Wed, 4 Sep 2024 16:49:52 +0100 Subject: [PATCH] TableWidget: Fix border/boudaries --- TermTk/TTkWidgets/TTkModelView/tablewidget.py | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/TermTk/TTkWidgets/TTkModelView/tablewidget.py b/TermTk/TTkWidgets/TTkModelView/tablewidget.py index 61547b94..c970f9a0 100644 --- a/TermTk/TTkWidgets/TTkModelView/tablewidget.py +++ b/TermTk/TTkWidgets/TTkModelView/tablewidget.py @@ -162,8 +162,8 @@ class TTkTableWidget(TTkAbstractScrollView): showHH = self._horizontallHeader.isVisible() hhs = self._hHeaderSize if showHH else 0 vhs = self._vHeaderSize if showVH else 0 - w = hhs+self._colsPos[-1] - h = vhs+self._rowsPos[-1] + w = vhs+self._colsPos[-1]+1 + h = hhs+self._rowsPos[-1]+1 return w,h # Overridden function @@ -232,41 +232,39 @@ class TTkTableWidget(TTkAbstractScrollView): self.update() return super().leaveEvent(evt) - def _findCell(self, x, y): - showHS = self._showHSeparators - showVS = self._showVSeparators + def _findCell(self, x, y, headers): showVH = self._verticalHeader.isVisible() showHH = self._horizontallHeader.isVisible() hhs = self._hHeaderSize if showHH else 0 vhs = self._vHeaderSize if showVH else 0 ox, oy = self.getViewOffsets() - x,y = x+ox-vhs, y+oy-hhs rp = self._rowsPos cp = self._colsPos - row = -1 - col = -1 + row = 0 + col = 0 - if y<0: + if headers and y=y: break - if x<0: + + if headers and x=x: break + return row,col def mouseMoveEvent(self, evt) -> bool: x,y = evt.x,evt.y - self._hoverPos = None - self._hoverPos = self._findCell(x,y) + self._hoverPos = self._findCell(x,y, headers=True) self.update() return True @@ -315,7 +313,7 @@ class TTkTableWidget(TTkAbstractScrollView): break # return True - row,col = self._findCell(x,y) + row,col = self._findCell(x,y, headers=True) if not row==col==-1: self._dragPos = [(row,col),(row,col)] rows = self._tableModel.rowCount() @@ -366,7 +364,7 @@ class TTkTableWidget(TTkAbstractScrollView): hhs = self._hHeaderSize if showHH else 0 vhs = self._vHeaderSize if showVH else 0 if self._dragPos and not self._hSeparatorSelected and not self._vSeparatorSelected: - self._dragPos[1] = self._findCell(x,y) + self._dragPos[1] = self._findCell(x,y, headers=False) self.update() return True if self._hSeparatorSelected is not None: