Browse Source

Added text Picker in the property Editor

pull/99/head
Eugenio Parodi 3 years ago
parent
commit
06d1f8dbee
  1. 11
      TermTk/TTkWidgets/TTkPickers/textpicker.py
  2. 10
      ttkDesigner/app/propertyeditor.py

11
TermTk/TTkWidgets/TTkPickers/textpicker.py

@ -257,13 +257,15 @@ 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')
__slots__ = ('_teButton','_textEdit', 'documentViewChanged', 'textChanged')
def __init__(self, *args, **kwargs):
self.documentViewChanged = pyTTkSignal(int,int)
super().__init__(*args, **kwargs|{'layout':TTkHBoxLayout()})
self._textEdit = TTkTextEdit(pos=(0,0), size=(self.width()-2,self.height()), lineNumber=True)
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") ,
pos=(self.width()-2,0),
size=(2,self.height()), minSize=(3,1),maxWidth=3)
@ -274,13 +276,16 @@ class TTkTextPicker(TTkWidget):
def _showTextDialogPicker():
w,h = self.size()
tdp = TTkTextDialogPicker(size=(50,8+h), document=self._textEdit.document())
TTkHelper.overlay(self, tdp, -1, -7)
TTkHelper.overlay(self, tdp, -1, -7, modal=True)
tdp.focusTextEdit()
self._teButton.clicked.connect(_showTextDialogPicker)
self._textEdit.viewport().viewChanged.connect(self._textPickerViewChanged)
def getTTkString(self):
return self._textEdit.toRawText()
@pyTTkSlot()
def _textPickerViewChanged(self):
wa,ha = self._textEdit.viewport().viewFullAreaSize()

10
ttkDesigner/app/propertyeditor.py

@ -111,6 +111,12 @@ class PropertyEditor(ttk.TTkGridLayout):
_f(_w,_val)
self._superWidget.updateAll()
return _ret
def _boundTextEdit(_f,_w,_te):
def _ret():
_v = _te.getTTkString()
_f(_w,_v)
self._superWidget.updateAll()
return _ret
# Multi Flag Fields
# ▼ Input Type │ - (0x0001)
@ -194,8 +200,8 @@ class PropertyEditor(ttk.TTkGridLayout):
# String Fields
def _processTTkString(name, prop):
getval = prop['get']['cb'](domw)
value = ttk.TTkLineEdit(text=getval, height=1)
value.textEdited.connect(_bound(prop['set']['cb'],domw,lambda v:v))
value = ttk.TTkTextPicker(text=getval, height=len(getval.split('\n')))
value.textChanged.connect(_boundTextEdit(prop['set']['cb'],domw,value))
return ttk.TTkTreeWidgetItem([name,value])
# Color Fields
def _processTTkColor(name, prop):

Loading…
Cancel
Save