Browse Source

TTkWidget: removed 'addWidget', 'removeWidget' to avoid confusion with the layout same methods

pull/44/head
Eugenio Parodi 4 years ago
parent
commit
8be13046a0
  1. 14
      TermTk/TTkLayouts/layout.py
  2. 2
      TermTk/TTkWidgets/Fancy/tableview.py
  3. 2
      TermTk/TTkWidgets/listwidget.py
  4. 12
      TermTk/TTkWidgets/splitter.py
  5. 10
      TermTk/TTkWidgets/tabwidget.py
  6. 30
      TermTk/TTkWidgets/widget.py
  7. 2
      demo/demo.py
  8. 2
      demo/showcase/dragndrop.py

14
TermTk/TTkLayouts/layout.py

@ -218,7 +218,10 @@ class TTkLayout(TTkLayoutItem):
self.parentWidget().update(repaint=True, updateLayout=True)
def addItem(self, item):
self._items.append(item)
self.insertItem(len(self._items),item)
def insertItem(self, index, item):
self._items.insert(index, item)
self._zSortItems()
self.update()
item.setParent(self)
@ -228,9 +231,12 @@ class TTkLayout(TTkLayoutItem):
self.parentWidget().update(repaint=True, updateLayout=True)
def addWidget(self, widget):
if widget.parentWidget() is not None:
widget.parentWidget().removeWidget(self)
self.addItem(widget.widgetItem())
self.insertWidget(len(self._items),widget)
def insertWidget(self, index, widget):
if widget.parentWidget() and widget.parentWidget().layout():
widget.parentWidget().layout().removeWidget(self)
self.insertItem(index, widget.widgetItem())
def removeItem(self, item):
if item in self._items:

2
TermTk/TTkWidgets/Fancy/tableview.py

@ -163,7 +163,7 @@ class _TTkFancyTableView(TTkAbstractScrollView):
size = sizes[iw]
if widget is not None:
if widget.parentWidget() != self:
self.addWidget(widget)
self.layout().addWidget(widget)
widget.setGeometry(x,y,size,1)
widget.show()
self._shownWidgets.append(widget)

2
TermTk/TTkWidgets/listwidget.py

@ -189,7 +189,7 @@ class TTkListWidget(TTkAbstractScrollView):
return self.addItemAt(label,pos)
# item.listItemClicked.connect(self._labelSelectedHandler)
self._items.insert(pos,item)
self.addWidget(item)
self.layout().addWidget(item)
self._placeItems()
def indexOf(self, item):

12
TermTk/TTkWidgets/splitter.py

@ -49,8 +49,16 @@ class TTkSplitter(TTkFrame):
self.setFocusPolicy(TTkK.ClickFocus)
self._splitterInitialized = True
def addWidget(self, widget, size=None):
TTkFrame.addWidget(self, widget)
class _SplitterLayout(TTkLayout):
def addWidget(s, *args, **kwargs):
TTkLayout.addWidget(s, *args, **kwargs)
self._addWidget(*args, **kwargs)
self.setLayout(_SplitterLayout())
def orientation(self):
return self._orientation
def _addWidget(self, widget, size=None):
_,_,w,h = self.geometry()
if self.border():
w-=2

10
TermTk/TTkWidgets/tabwidget.py

@ -240,8 +240,8 @@ class TTkTabBar(TTkWidget):
# Add and connect the scrollers
self.addWidget(self._leftScroller)
self.addWidget(self._rightScroller)
self.layout().addWidget(self._leftScroller)
self.layout().addWidget(self._rightScroller)
# Signals
self.currentChanged = pyTTkSignal(int)
@ -270,7 +270,7 @@ class TTkTabBar(TTkWidget):
def removeTab(self, index):
button = self._tabButtons[index]
self.removeWidget(button)
self.layout().removeWidget(button)
self._tabButtons = self._tabButtons[:index] + self._tabButtons[index+1:]
if self._currentIndex == index:
self._lastIndex = -1
@ -568,11 +568,11 @@ class TTkTabWidget(TTkFrame):
def insertTab(self, index, widget, label):
widget.hide()
self._tabWidgets.insert(index, widget)
self.addWidget(widget)
self.layout().addWidget(widget)
self._tabBar.insertTab(index, label)
def removeTab(self, index):
self.removeWidget(self._tabWidgets[index])
self.layout().removeWidget(self._tabWidgets[index])
self._tabWidgets = self._tabWidgets[:index] + self._tabWidgets[index+1:]
self._tabBar.removeTab(index)

30
TermTk/TTkWidgets/widget.py

@ -144,8 +144,8 @@ class TTkWidget(TMouseEvents,TKeyEvents, TDragEvents):
height = self._height )
if self._parent is not None:
self._parent.addWidget(self)
if self._parent and self._parent.layout():
self._parent.layout().addWidget(self)
self._parent.update(repaint=True, updateLayout=True)
self.update(repaint=True, updateLayout=True)
@ -153,34 +153,12 @@ class TTkWidget(TMouseEvents,TKeyEvents, TDragEvents):
def __del__(self):
''' .. caution:: Don't touch this! '''
# TTkLog.debug("DESTRUCTOR")
if self._parent is not None:
self._parent.removeWidget(self)
if self._parent and self._parent.layout():
self._parent.layout().removeWidget(self)
self._parent = None
def widgetItem(self): return self._widgetItem
def addWidget(self, widget):
''' Add a child widget to the layout
:param widget: the widget to be added
:type widget: :class:`~TermTk.TTkWidgets.widget.TTkWidget`
'''
widget._parent = self
if self.layout():
self.layout().addWidget(widget)
self.update(repaint=True, updateLayout=True)
# widget.show()
def removeWidget(self, widget):
''' Remove the child widget from the layout
:param widget: (:class:`~TermTk.TTkWidgets.widget.TTkWidget`): the widget to be removed
'''
if self.layout() is not None:
self.layout().removeWidget(widget)
self.update(repaint=True, updateLayout=True)
#widget._parent = None
def paintEvent(self):
'''
Paint Event callback,

2
demo/demo.py

@ -232,7 +232,7 @@ def main():
ttk.TTkLog.use_default_file_logging()
root = ttk.TTk()
root = ttk.TTk(title="pyTermTk Demo")
if args.f:
root.setLayout(ttk.TTkGridLayout())
winTabbed1 = root

2
demo/showcase/dragndrop.py

@ -62,7 +62,7 @@ class DropThings(ttk.TTkFrame):
ttk.TTkLog.debug(f"Drop ({self.title()}) -> pos={evt.pos()}")
data = evt.data()
if issubclass(type(data),TTkWidget):
self.addWidget(data)
self.layout().addWidget(data)
data.move(evt.x,evt.y)
self.update()
return True

Loading…
Cancel
Save