Browse Source

FancyTree: Use TTkString to support non conventional chars

pull/68/head
Eugenio Parodi 3 years ago
parent
commit
4536735422
  1. 6
      TermTk/TTkWidgets/Fancy/tableview.py
  2. 3
      TermTk/TTkWidgets/Fancy/treewidget.py
  3. 31
      tests/test.draw.006.py

6
TermTk/TTkWidgets/Fancy/tableview.py

@ -50,7 +50,7 @@ class _TTkFancyTableViewHeader(TTkWidget):
def setHeader(self, header):
if len(header) != len(self._columns):
return
self._header = [TTkString(i) if isinstance(i,str) else i if issubclass(type(i), TTkString) else "" for i in header]
self._header = [TTkString(i) if isinstance(i,str) else i if issubclass(type(i), TTkString) else TTkString() for i in header]
def setColumnSize(self, columns):
@ -200,7 +200,7 @@ class _TTkFancyTableView(TTkAbstractScrollView):
def appendItem(self, item, id=None):
if len(item) != len(self._columns):
return
textItem = [TTkString(i) if isinstance(i,str) else i if issubclass(type(i), TTkString) else "" for i in item]
textItem = [TTkString(i) if isinstance(i,str) else i if issubclass(type(i), TTkString) else TTkString() for i in item]
widgetItem = [i if isinstance(i,TTkWidget) else None for i in item]
if id is not None:
self._tableDataId.append(id)
@ -214,7 +214,7 @@ class _TTkFancyTableView(TTkAbstractScrollView):
def insertItem(self, index, item, id=None):
if len(item) != len(self._columns):
return#
textItem = [TTkString(i) if isinstance(i,str) else i if issubclass(type(i), TTkString) else "" for i in item]
textItem = [TTkString(i) if isinstance(i,str) else i if issubclass(type(i), TTkString) else TTkString() for i in item]
widgetItem = [i if isinstance(i,TTkWidget) else None for i in item]
if id is not None:
self._tableDataId.insert(index, id)

3
TermTk/TTkWidgets/Fancy/treewidget.py

@ -24,6 +24,7 @@
from TermTk.TTkCore.constant import TTkK
from TermTk.TTkCore.log import TTkLog
from TermTk.TTkCore.string import TTkString
from TermTk.TTkCore.signal import pyTTkSlot, pyTTkSignal
from TermTk.TTkWidgets.widget import TTkWidget
from TermTk.TTkWidgets.checkbox import TTkCheckbox
@ -52,7 +53,7 @@ class _TTkDisplayedTreeItem(TTkWidget):
self._name = kwargs.get('name' , '_TTkDisplayedTreeItem' )
self._depth = kwargs.get('depth' , 0 )
self._text = kwargs.get('text' , "" )
self._text = TTkString(kwargs.get('text' , "" ))
self._id = kwargs.get('id' , 0 )
self._treeWidgetItem = kwargs.get('treeWidgetItem', None)
self._isLeaf = self._treeWidgetItem.childIndicatorPolicy() == TTkK.DontShowIndicator

31
tests/test.draw.006.py

@ -52,8 +52,35 @@ s4 = TTkString("This is a normal string")
s5 = TTkString(f"-😁😂😍😎- o{zc1} o{zc2} o{zc3} o{zc1}{zc2} o{zc1}{zc2}{zc3} -")
s6 = TTkString(f"{zc1} o{zc2} o{zc3} o{zc1}{zc2} o{zc1}{zc2}{zc3} -")
print(f"o{zc1}{zc2}{zc3} - XXXX")
print(f"{zc1}{zc2}{zc3} - XXXX")
print(f"o{zc1}{zc2}{zc3} - Zero")
print(f"{zc1}{zc2}{zc3} - Zero")
# Examples from:
# https://github.com/luchr/WidthInTerminals
print( "🔧 = \U0001F527 ")
print(f"👩 = {chr(0x1F469)} ")
print(f"👩🔧 = {chr(0x1F469)}{chr(0x1F527)} ")
print(f"👩🔧 = {chr(0x1F469)}{chr(0x0200D)}{chr(0x1F527)} ")
print(f"👩🏻🔧 = {chr(0x1F469)}{chr(0x1F3FB)}{chr(0x0200D)}{chr(0x1F527)}")
print(f"👩🏻🔧 = {chr(0x1F469)}{chr(0x1F3FB)}{chr(0x0200D)}{chr(0x1F527)}")
print(f"👩🏼🔧 = {chr(0x1F469)}{chr(0x1F3FC)}{chr(0x0200D)}{chr(0x1F527)}")
print(f"👩🏽🔧 = {chr(0x1F469)}{chr(0x1F3FD)}{chr(0x0200D)}{chr(0x1F527)}")
print(f"👩🏾🔧 = {chr(0x1F469)}{chr(0x1F3FE)}{chr(0x0200D)}{chr(0x1F527)}")
print(f"👩🏿🔧 = {chr(0x1F469)}{chr(0x1F3FF)}{chr(0x0200D)}{chr(0x1F527)}")
s01 = TTkString(f"🔧 = {chr(0x1F527)} ") # 1F527 : 🔧
s01 = TTkString(f"👩 = {chr(0x1F469)} ") # 1F469 : 👩
s01 = TTkString(f"👩🔧 = {chr(0x1F469)}{chr(0x1F527)} ") # 1F469 1F527 : 👩🔧
s01 = TTkString(f"👩🔧 = {chr(0x1F469)}{chr(0x0200D)}{chr(0x1F527)} ") # 1F469 200D 1F527 : 👩🔧
s01 = TTkString(f"👩🏻🔧 = {chr(0x1F469)}{chr(0x1F3FB)}{chr(0x0200D)}{chr(0x1F527)}") # 1F469 1F3FB 200D 1F527 : 👩🏻🔧
s01 = TTkString(f"👩🏻🔧 = {chr(0x1F469)}{chr(0x1F3FB)}{chr(0x0200D)}{chr(0x1F527)}") # 1F469 1F3FB 200D 1F527 : 👩🏻🔧
s01 = TTkString(f"👩🏼🔧 = {chr(0x1F469)}{chr(0x1F3FC)}{chr(0x0200D)}{chr(0x1F527)}") # 1F469 1F3FC 200D 1F527 : 👩🏼🔧
s01 = TTkString(f"👩🏽🔧 = {chr(0x1F469)}{chr(0x1F3FD)}{chr(0x0200D)}{chr(0x1F527)}") # 1F469 1F3FD 200D 1F527 : 👩🏽🔧
s01 = TTkString(f"👩🏾🔧 = {chr(0x1F469)}{chr(0x1F3FE)}{chr(0x0200D)}{chr(0x1F527)}") # 1F469 1F3FE 200D 1F527 : 👩🏾🔧
s01 = TTkString(f"👩🏿🔧 = {chr(0x1F469)}{chr(0x1F3FF)}{chr(0x0200D)}{chr(0x1F527)}") # 1F469 1F3FF 200D 1F527 : 👩🏿🔧
print(s1.getData()[0])
print(s2.getData()[0])

Loading…
Cancel
Save