diff --git a/TermTk/TTkCore/string.py b/TermTk/TTkCore/string.py index baced9db..f9f503fe 100644 --- a/TermTk/TTkCore/string.py +++ b/TermTk/TTkCore/string.py @@ -34,6 +34,9 @@ class TTkString(): self._text = "" self._colors = [] + def __len__(self): + return len(self._text) + def __str__(self): return self._text diff --git a/TermTk/TTkWidgets/texedit.py b/TermTk/TTkWidgets/texedit.py index 59a84333..1b669106 100644 --- a/TermTk/TTkWidgets/texedit.py +++ b/TermTk/TTkWidgets/texedit.py @@ -27,6 +27,7 @@ from TermTk.TTkCore.log import TTkLog from TermTk.TTkWidgets.widget import * from TermTk.TTkLayouts.gridlayout import TTkGridLayout from TermTk.TTkCore.color import TTkColor +from TermTk.TTkCore.string import TTkString from TermTk.TTkWidgets.scrollbar import TTkScrollBar from TermTk.TTkAbstract.abstractscrollarea import TTkAbstractScrollArea from TermTk.TTkAbstract.abstractscrollview import TTkAbstractScrollView @@ -41,13 +42,13 @@ class _TTkTextEditView(TTkAbstractScrollView): @pyTTkSlot(str) def setText(self, text): - self._lines = [(TTkColor.RST, line) for line in text.split('\n')] + self._lines = [line for line in text.split('\n')] self.viewMoveTo(0, 0) self.viewChanged.emit() self.update() @pyTTkSlot(str) - def setColoredLines(self, lines): + def setLines(self, lines): self._lines = lines self.viewMoveTo(0, 0) self.viewChanged.emit() @@ -62,7 +63,7 @@ class _TTkTextEditView(TTkAbstractScrollView): def paintEvent(self): _, oy = self.getViewOffsets() for y, t in enumerate(self._lines[oy:]): - self._canvas.drawText(pos=(0,y), text=t[1], color=t[0]) + self._canvas.drawText(pos=(0,y), text=t) class TTkTextEdit(TTkAbstractScrollArea): __slots__ = ('_textEditView', 'setText', 'setColoredLines') @@ -72,4 +73,4 @@ class TTkTextEdit(TTkAbstractScrollArea): self._textEditView = _TTkTextEditView() self.setViewport(self._textEditView) self.setText = self._textEditView.setText - self.setColoredLines = self._textEditView.setColoredLines + self.setLines = self._textEditView.setLines diff --git a/demo/gittk.py b/demo/gittk.py index 089f6897..216c1d36 100755 --- a/demo/gittk.py +++ b/demo/gittk.py @@ -93,8 +93,8 @@ def _tableCallback(val): color = ttk.TTkColor.fg('#ff0000') elif line.startswith('@@'): color = ttk.TTkColor.fg('#0088ff') - lines.append((color,line)) - diffText.setColoredLines(lines) + lines.append(ttk.TTkString() + color + line) + diffText.setLines(lines) tableCommit.activated.connect(_tableCallback) diff --git a/tests/test.draw.003.py b/tests/test.draw.003.py index 3e92df72..b677cc05 100755 --- a/tests/test.draw.003.py +++ b/tests/test.draw.003.py @@ -38,9 +38,9 @@ TTkLog.use_default_file_logging() Term.init(mouse=False) TTkLog.info("Starting") -s1 = TTkString() + "Text " + "Text 1" -s2 = TTkString() + TTkColor.fg("#ff0000") + "Test " + "Text 2" -s3 = TTkString() + TTkColor.bg("#550088") + "Test " + "Text 3" +s1 = TTkString() + "Text " + "Text 1" +s2 = TTkString() + TTkColor.fg("#ff0000") + "Test " + "Text 2" +s3 = TTkString() + TTkColor.bg("#550088") + "Test " + "Text 3" s4 = TTkString() + ( TTkColor.fg("#00ff00") + TTkColor.bg("#555500") ) + "Test " + TTkColor.bg("#880055") + "Text 4"