Browse Source

Added layer name edit

pull/244/head
Eugenio Parodi 2 years ago
parent
commit
efa0bdc3af
  1. 24
      tools/dumb_paint_lib/layers.py
  2. 6
      tools/dumb_paint_lib/maintemplate.py
  3. 1
      tools/dumb_paint_lib/paintarea.py

24
tools/dumb_paint_lib/layers.py

@ -28,20 +28,24 @@ sys.path.append(os.path.join(sys.path[0],'../..'))
import TermTk as ttk
class LayerData():
__slots__ = ('_name','_data')
__slots__ = ('_name','_data',
#signals
'nameChanged')
def __init__(self,name:ttk.TTkString=ttk.TTkString('New'),data=None) -> None:
self._name:ttk.TTkString = ttk.TTkString(name) if type(name)==str else name
self._data = data
self.nameChanged = ttk.pyTTkSignal(str)
def name(self):
return self._name
def setName(self,name):
self.nameChanged.emit(name)
self._name = name
def data(self):
return self._data
def setData(self,data):
self._data = data
class _layerButton(ttk.TTkWidget):
class _layerButton(ttk.TTkContainer):
classStyle = {
'default': {'color': ttk.TTkColor.fg("#dddd88")+ttk.TTkColor.bg("#000044"),
'borderColor': ttk.TTkColor.fg('#CCDDDD'),
@ -67,6 +71,7 @@ class _layerButton(ttk.TTkWidget):
}
__slots__ = ('_layer','_first', '_isSelected',
'_ledit',
# signals
'clicked'
)
@ -75,12 +80,25 @@ class _layerButton(ttk.TTkWidget):
self._layer:LayerData = layer
self._isSelected = False
self._first = True
super().__init__(**kwargs)
super().__init__(**kwargs|{'layout':ttk.TTkGridLayout()})
self.setPadding(1,1,7,2)
self._ledit = ttk.TTkLineEdit(parent=self, text=layer.name(),visible=False)
self._ledit.focusChanged.connect(self._ledit.setVisible)
self._ledit.textEdited.connect(self._textEdited)
@ttk.pyTTkSlot(str)
def _textEdited(self, text):
self._layer.setName(text)
def mouseReleaseEvent(self, evt) -> bool:
self.clicked.emit(self)
return True
def mouseDoubleClickEvent(self, evt) -> bool:
self._ledit.setVisible(True)
self._ledit.setFocus()
return True
def paintEvent(self, canvas: ttk.TTkCanvas):
# if self.isEnabled() and self._checkable:
# if self._checked:

6
tools/dumb_paint_lib/maintemplate.py

@ -223,7 +223,7 @@ class PaintTemplate(ttk.TTkAppTemplate):
self.setItem(leftPanel , self.LEFT, size=16*2)
self.setWidget(self._parea , self.MAIN)
self.setItem(ptoolkit , self.TOP, fixed=True)
self.setItem(rightPanel , self.RIGHT, size=50)
self.setItem(rightPanel , self.RIGHT, size=40)
self.setMenuBar(appMenuBar:=ttk.TTkMenuBarLayout(), self.TOP)
fileMenu = appMenuBar.addMenu("&File")
@ -272,6 +272,7 @@ class PaintTemplate(ttk.TTkAppTemplate):
nl = self._parea.newLayer()
nl.setName(l.name())
l.setData(nl)
l.nameChanged.connect(nl.setName)
def importDocument(self, dd):
self._parea.importDocument(dd)
@ -279,7 +280,8 @@ class PaintTemplate(ttk.TTkAppTemplate):
# Little Hack that I don't know how to overcome
self._layers.layerAdded.disconnect(self._layerAdded)
for l in self._parea.canvasLayers():
self._layers.addLayer(name=l.name(),data=l)
ld = self._layers.addLayer(name=l.name(),data=l)
ld.nameChanged.connect(l.setName)
self._layers.layerAdded.connect(self._layerAdded)
@ttk.pyTTkSlot()

1
tools/dumb_paint_lib/paintarea.py

@ -134,6 +134,7 @@ class CanvasLayer():
def name(self):
return self._name
@ttk.pyTTkSlot(str)
def setName(self, name):
self._name = name

Loading…
Cancel
Save