Browse Source

Added Autosize in the textPicker

pull/99/head
Eugenio Parodi 3 years ago
parent
commit
fab342fe9d
  1. 17
      TermTk/TTkWidgets/TTkPickers/textpicker.py
  2. 2
      tools/check.import.sh
  3. 2
      ttkDesigner/app/propertyeditor.py
  4. 4
      ttkDesigner/app/windoweditor.py

17
TermTk/TTkWidgets/TTkPickers/textpicker.py

@ -133,8 +133,9 @@ class _emojiPicker(TTkResizableFrame):
self.emojiClicked = epa.viewport().emojiClicked
class TTkTextDialogPicker(TTkWindow):
__slots__ = ('_textEdit')
__slots__ = ('_textEdit', '_autoSize')
def __init__(self, *args, **kwargs):
self._autoSize = kwargs.get('autoSize',False)
super().__init__(*args, **kwargs)
fontLayout = TTkGridLayout(columnMinWidth=1)
# Char Fg/Bg buttons
@ -242,11 +243,13 @@ class TTkTextDialogPicker(TTkWindow):
@pyTTkSlot()
def _textPickerViewChanged(self):
w,h = self.size()
self.resize(w,0)
self.resize(w,h)
def resize(self, w: int, h: int):
tw,th = self._textEdit.viewport().viewFullAreaSize()
self._textEdit.setLineNumber(th>1)
if not self._autoSize:
return super().resize(w,h)
t,b,l,r = self.getPadding()
return super().resize(w, th+t+b+4)
@ -257,16 +260,17 @@ class TTkTextPicker(TTkWidget):
Do not use it unless you know what you are doing
And I've no idea what I am doing
'''
__slots__ = ('_teButton','_textEdit', 'documentViewChanged', 'textChanged')
__slots__ = ('_teButton','_textEdit', 'documentViewChanged', 'textChanged', '_autoSize')
def __init__(self, *args, **kwargs):
self.documentViewChanged = pyTTkSignal(int,int)
self._autoSize = kwargs.get('autoSize',False)
super().__init__(*args, **kwargs|{'layout':TTkHBoxLayout()})
self._textEdit = TTkTextEdit(pos=(0,0), size=(self.width()-2,self.height()))
self._textEdit.setText(kwargs.get('text',''))
self._textEdit.setReadOnly(False)
self._textEdit.setLineWrapMode(TTkK.WidgetWidth)
self.textChanged = self._textEdit.textChanged
self._teButton = TTkButton(border=True, text='^', borderColor=TTkColor.fg("#AAAAFF")+TTkColor.bg("#002244") ,
self._teButton = TTkButton(border=True, text='', borderColor=TTkColor.fg("#AAAAFF")+TTkColor.bg("#002244") ,
pos=(self.width()-2,0),
size=(2,self.height()), minSize=(3,1),maxWidth=3)
self.layout().addWidget(self._textEdit)
@ -275,7 +279,7 @@ class TTkTextPicker(TTkWidget):
@pyTTkSlot()
def _showTextDialogPicker():
w,h = self.size()
tdp = TTkTextDialogPicker(size=(50,8+h), document=self._textEdit.document())
tdp = TTkTextDialogPicker(size=(50,8+h), document=self._textEdit.document(), autoSize=self._autoSize)
TTkHelper.overlay(self, tdp, -1, -7, modal=True)
tdp.focusTextEdit()
@ -294,4 +298,5 @@ class TTkTextPicker(TTkWidget):
w,h = self.size()
self._textEdit.setLineNumber(ha>1)
self.documentViewChanged.emit(tw+bw,ha)
self.resize(w,ha)
if self._autoSize:
self.resize(w,ha)

2
tools/check.import.sh

@ -29,7 +29,7 @@ __check(){
-e "ttk.py:import platform" \
-e "clipboard.py:import importlib.util" \
-e "filebuffer.py:import threading" \
-e "texedit.py:from math import log10, ceil" \
-e "texedit.py:from math import log10, floor" \
-e "string.py:import unicodedata" \
-e "progressbar.py:import math" \
-e "uiloader.py:import json" \

2
ttkDesigner/app/propertyeditor.py

@ -200,7 +200,7 @@ class PropertyEditor(ttk.TTkGridLayout):
# String Fields
def _processTTkString(name, prop):
getval = prop['get']['cb'](domw)
value = ttk.TTkTextPicker(text=getval, height=len(getval.split('\n')))
value = ttk.TTkTextPicker(text=getval, height=len(getval.split('\n')), autoSize=True)
value.textChanged.connect(_boundTextEdit(prop['set']['cb'],domw,value))
return ttk.TTkTreeWidgetItem([name,value])
# Color Fields

4
ttkDesigner/app/windoweditor.py

@ -110,8 +110,8 @@ class SuperWidget(ttk.TTkWidget):
super().__init__(*args, **kwargs)
#self.resize(*self._wid.size())
r,g,b = randint(0,0xFF),randint(0,0xFF),randint(0,0xFF)
self._layoutColor = ttk.TTkColor.bg(f"#{r:02X}{g:02X}{b:02X}")
self._layoutPadColor = ttk.TTkColor.bg(f"#{r*9//10:X}{g*9//10:X}{b*9//10:X}")
self._layoutColor = ttk.TTkColor.bg(f"#{r*9//10:02X}{g*9//10:02X}{b*9//10:02X}")
self._layoutPadColor = ttk.TTkColor.bg(f"#{r:02X}{g:02X}{b:02X}")
self.setFocusPolicy(ttk.TTkK.ClickFocus)
SuperWidget.toggleHighlightLayout.connect(self._toggleHighlightLayout)

Loading…
Cancel
Save