Browse Source

General cleaning, removed many unused variables, fancyTable/Tree item management was conflicting with the layout item management.

pull/223/head
Eugenio Parodi 2 years ago
parent
commit
4338fec90a
  1. 2
      TermTk/TTkAbstract/abstractscrollarea.py
  2. 2
      TermTk/TTkAbstract/abstractscrollview.py
  3. 10
      TermTk/TTkLayouts/layout.py
  4. 2
      TermTk/TTkTestWidgets/logviewer.py
  5. 50
      TermTk/TTkWidgets/Fancy/tableview.py
  6. 3
      TermTk/TTkWidgets/TTkModelView/tree.py
  7. 3
      TermTk/TTkWidgets/TTkModelView/treewidget.py
  8. 2
      TermTk/TTkWidgets/TTkPickers/colorpicker.py
  9. 2
      TermTk/TTkWidgets/combobox.py
  10. 2
      TermTk/TTkWidgets/radiobutton.py
  11. 6
      TermTk/TTkWidgets/texedit.py

2
TermTk/TTkAbstract/abstractscrollarea.py

@ -159,5 +159,5 @@ class TTkAbstractScrollArea(TTkContainer):
def update(self, repaint=True, updateLayout=False, updateParent=False):
if self._viewport:
self._viewport.update(repaint, updateLayout, updateParent)
self._viewport.update(repaint, updateLayout, updateParent=False)
return super().update(repaint, updateLayout, updateParent)

2
TermTk/TTkAbstract/abstractscrollview.py

@ -172,10 +172,12 @@ class TTkAbstractScrollViewGridLayout(TTkGridLayout, TTkAbstractScrollViewInterf
TTkGridLayout.setGeometry(self, x, y, w, h)
self.viewChanged.emit()
@pyTTkSlot()
def _viewChanged(self):
if self._excludeEvent: return
self.viewChanged.emit()
@pyTTkSlot(int,int)
def _viewMovedTo(self, x, y):
if self._excludeEvent: return
self.viewMoveTo(x, y)

10
TermTk/TTkLayouts/layout.py

@ -214,9 +214,9 @@ class TTkLayout(TTkLayoutItem):
if onlyVisible and not child.widget().isVisible(): continue
yield child.widget()
if recurse and hasattr(cw:=child.widget(),'rootLayout'):
yield from cw.rootLayout().iterWidgets()
yield from cw.rootLayout().iterWidgets(onlyVisible, recurse)
if child._layoutItemType == TTkK.LayoutItem and recurse:
yield from child.iterWidgets()
yield from child.iterWidgets(onlyVisible, recurse)
def _zSortItems(self):
self._zSortedItems = sorted(self._items, key=lambda item: item._z)
@ -313,9 +313,9 @@ class TTkLayout(TTkLayoutItem):
:type widgets: list of :class:`~TermTk.TTkWidgets`
'''
for item in reversed(self._items):
if item._layoutItemType == TTkK.WidgetItem and \
item.widget() in widgets:
self.removeItem(item)
if item._layoutItemType == TTkK.WidgetItem:
if item.widget() in widgets:
self.removeItem(item)
elif item._layoutItemType == TTkK.LayoutItem:
item.removeWidgets(widgets)

2
TermTk/TTkTestWidgets/logviewer.py

@ -32,7 +32,7 @@ from TermTk.TTkAbstract.abstractscrollarea import TTkAbstractScrollArea
from TermTk.TTkAbstract.abstractscrollview import TTkAbstractScrollView
class _TTkLogViewer(TTkAbstractScrollView):
__slots__ = ('_color', '_text', '_messages', '_cwd', '_follow')
__slots__ = ('_messages', '_cwd', '_follow')
def __init__(self, *args, **kwargs):
TTkAbstractScrollView.__init__(self, *args, **kwargs)
self._messages = [TTkString()]

50
TermTk/TTkWidgets/Fancy/tableview.py

@ -366,21 +366,24 @@ class _TTkFancyTableView(TTkAbstractScrollView):
colors = [c.modParam(val=-val) for c in self._columnColors]
canvas.drawTableLine(pos=(0,y), items=item, sizes=sizes, colors=colors, alignments=self._alignments)
class TTkFancyTableView(TTkAbstractScrollViewGridLayout):
class TTkFancyTableView(TTkAbstractScrollView):
__slots__ = (
'_header', '_tableView', '_showHeader', 'activated',
'_header', '_tableView', '_showHeader', 'activated', '_excludeEvent',
# Forwarded Methods
'setHeader', 'setColumnColors', 'appendItem', 'itemAt', 'dataAt', 'indexOf', 'insertItem',
'removeItem', 'removeItemAt', 'removeItemsFrom', 'doubleClicked')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def __init__(self, **kwargs):
self._excludeEvent = False
super().__init__(**(kwargs|{'layout':TTkGridLayout()}))
if 'parent' in kwargs: kwargs.pop('parent')
self._showHeader = kwargs.get('showHeader', True)
self._tableView = _TTkFancyTableView(*args, **kwargs)
self._header = _TTkFancyTableViewHeader(*args, **kwargs)
self.addWidget(self._header,0,0)
self.addWidget(self._tableView,1,0)
self._tableView = _TTkFancyTableView(**kwargs)
self._header = _TTkFancyTableViewHeader(**kwargs)
self.layout().addWidget(self._header,0,0)
self.layout().addWidget(self._tableView,1,0)
self._tableView.viewChanged.connect(self._viewChanged)
self._tableView.viewMovedTo.connect(self._viewMovedTo)
# Forward the tableSignals
self.activated = self._tableView.activated
self.doubleClicked = self._tableView.doubleClicked
@ -399,9 +402,38 @@ class TTkFancyTableView(TTkAbstractScrollViewGridLayout):
self.removeItemAt = self._tableView.removeItemAt
self.removeItemsFrom = self._tableView.removeItemsFrom
@pyTTkSlot()
def _viewChanged(self):
if self._excludeEvent: return
self.viewChanged.emit()
@pyTTkSlot(int,int)
def _viewMovedTo(self, x, y):
if self._excludeEvent: return
self.viewMoveTo(x, y)
@pyTTkSlot(int, int)
def viewMoveTo(self, x: int, y: int):
self._tableView.viewMoveTo(x, y)
fw, fh = self.viewFullAreaSize()
dw, dh = self.viewDisplayedSize()
rangex = fw - dw
rangey = fh - dh
# TTkLog.debug(f"x:{x},y:{y}, full:{fw,fh}, display:{dw,dh}, range:{rangex,rangey}")
x = max(0,min(rangex,x))
y = max(0,min(rangey,y))
# TTkLog.debug(f"x:{x},y:{y}, wo:{self._viewOffsetX,self._viewOffsetY}")
if self._viewOffsetX == x and \
self._viewOffsetY == y: # Nothong to do
return
self._excludeEvent = True
for widget in self.layout().iterWidgets(recurse=False):
widget.viewMoveTo(x,y)
self._excludeEvent = False
self._viewOffsetX = x
self._viewOffsetY = y
self.viewMovedTo.emit(x,y)
self.viewChanged.emit()
self.update()
def getViewOffsets(self):
return self._tableView.getViewOffsets()

3
TermTk/TTkWidgets/TTkModelView/tree.py

@ -32,7 +32,8 @@ class TTkTree(TTkAbstractScrollArea):
# Forwarded Signals
'itemActivated', 'itemChanged', 'itemClicked', 'itemExpanded', 'itemCollapsed', 'itemDoubleClicked',
# Forwarded Methods
'setAlignment', 'setHeader', 'setHeaderLabels', 'setColumnSize', 'setColumnColors', 'appendItem',
'setHeaderLabels',
# 'appendItem', 'setAlignment', 'setColumnColors', 'setColumnSize', 'setHeader',
'addTopLevelItem', 'addTopLevelItems', 'takeTopLevelItem', 'topLevelItem', 'indexOfTopLevelItem', 'selectedItems', 'clear' )
def __init__(self, *args, **kwargs):

3
TermTk/TTkWidgets/TTkModelView/treewidget.py

@ -51,7 +51,7 @@ class TTkTreeWidget(TTkAbstractScrollView):
}
__slots__ = ( '_rootItem', '_header', '_columnsPos', '_cache',
'_selectedId', '_selected', '_separatorSelected', '_mouseDelta',
'_selectedId', '_selected', '_separatorSelected',
'_sortColumn', '_sortOrder',
# Signals
'itemChanged', 'itemClicked', 'itemDoubleClicked', 'itemExpanded', 'itemCollapsed', 'itemActivated'
@ -209,7 +209,6 @@ class TTkTreeWidget(TTkAbstractScrollView):
x += ox
self._separatorSelected = None
self._mouseDelta = (evt.x, evt.y)
# Handle Header Events
if y == 0:

2
TermTk/TTkWidgets/TTkPickers/colorpicker.py

@ -252,7 +252,7 @@ class TTkColorDialogPicker(TTkWindow):
__slots__ = (
'_color',
'_colorCanvas', '_hueCanvas',
'_redLE', '_greenLE', '_blueRE', '_htmlLE',
# '_redLE', '_greenLE', '_blueRE', '_htmlLE',
# Signals
'colorSelected'
)

2
TermTk/TTkWidgets/combobox.py

@ -71,7 +71,7 @@ class TTkComboBox(TTkContainer):
'borderColor': TTkColor.fg("#ffff00") + TTkColor.BOLD},
}
__slots__ = ('_list', '_id', '_lineEdit', '_listw', '_editable', '_insertPolicy', '_textAlign', '_popupFrame',
__slots__ = ('_list', '_id', '_lineEdit', '_editable', '_insertPolicy', '_textAlign', '_popupFrame',
#signals
'currentIndexChanged', 'currentTextChanged', 'editTextChanged')
def __init__(self, *args, **kwargs):

2
TermTk/TTkWidgets/radiobutton.py

@ -75,7 +75,7 @@ class TTkRadioButton(TTkWidget):
_radioLists = {}
__slots__ = (
'_checked', '_text', '_radiogroup'
'_checked', '_text', '_radiogroup',
# Signals
'clicked'
)

6
TermTk/TTkWidgets/texedit.py

@ -118,12 +118,12 @@ class TTkTextEditView(TTkAbstractScrollView):
__slots__ = (
'_textDocument', '_hsize',
'_textCursor', '_textColor', '_cursorParams',
'_textCursor', '_cursorParams',
'_textWrap', '_lineWrapMode', '_lastWrapUsed',
'_replace',
'_readOnly', '_multiCursor',
'_clipboard',
'_preview', '_previewWidth',
# '_preview', '_previewWidth',
'_multiLine',
# # Forwarded Methods
# 'wrapWidth', 'setWrapWidth',
@ -799,7 +799,7 @@ class TTkTextEdit(TTkAbstractScrollArea):
'toAnsi', 'toRawText', 'toPlainText', # 'toHtml', 'toMarkdown',
# Signals
'focusChanged', 'currentColorChanged',
'undoAvilable', 'redoAvailable',
'undoAvailable', 'redoAvailable',
'textChanged'
)
def __init__(self, textEditView=None, lineNumber=False, lineNumberStarting=0, **kwargs):

Loading…
Cancel
Save