Skip to content

Commit

Permalink
Merge branch 'master' into features/python3
Browse files Browse the repository at this point in the history
  • Loading branch information
scotty007 committed Oct 26, 2020
2 parents 47c05ec + 4bb1163 commit 9f9bae2
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 20 deletions.
4 changes: 3 additions & 1 deletion python/libavg/app/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,9 @@ def _toggleMtEmulation(self):
keyboardmanager.bindKeyDown(
keyname='Shift',
handler=self._mtEmu.enableDualTouch,
help='Enable pinch gesture emulation')
help='Enable pinch gesture emulation',
# NOTE: modifier required because Shift itself is a modifier
modifiers=libavg.avg.KEYMOD_SHIFT)
keyboardmanager.bindKeyUp(
keyname='Shift',
handler=self._mtEmu.disableDualTouch,
Expand Down
36 changes: 18 additions & 18 deletions python/libavg/app/debugpanel.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ def subscribe(publisher, msgID, callable_):


class DebugWidgetFrame(avg.DivNode):

BORDER = 7
FRAME_HEIGHT_CHANGED = avg.Publisher.genMessageID()

Expand Down Expand Up @@ -79,6 +78,7 @@ def setup(self, widgetCls):
self.__widget.subscribe(self.__widget.WIDGET_HEIGHT_CHANGED,
self.adjustWidgetHeight)
self.__widget.update()
self.sensitive = self.__widget.sensitive

def _onSizeChanged(self, size):
self.__boundary.size = size
Expand Down Expand Up @@ -125,8 +125,8 @@ class DebugWidget(avg.DivNode):

WIDGET_HEIGHT_CHANGED = avg.Publisher.genMessageID()

def __init__(self, parent=None, **kwargs):
super().__init__(**kwargs)
def __init__(self, parent=None, sensitive=False, **kwargs):
super().__init__(sensitive=sensitive, **kwargs)
self.registerInstance(self, parent)
self.publish(DebugWidget.WIDGET_HEIGHT_CHANGED)
if self.CAPTION:
Expand Down Expand Up @@ -244,9 +244,8 @@ def labelColumnSizeChanged(self):
class ObjectDumpWidget(DebugWidget):
CAPTION = 'Objects count'

def __init__(self, parent=None, **kwargs):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.registerInstance(self, parent)
self.tableContainer = Table(parent=self, size=(self.width, self.SLOT_HEIGHT))
self.tableDivs = defaultdict(lambda: TableRow(parent=self.tableContainer))

Expand Down Expand Up @@ -293,7 +292,6 @@ def kill(self):
class GraphWidget(DebugWidget):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.registerInstance(self, None)
self.__graph = None

def onShow(self):
Expand Down Expand Up @@ -351,7 +349,6 @@ class KeyboardManagerBindingsShower(DebugWidget):

def __init__(self, *args, **kwargs):
super().__init__(**kwargs)
self.registerInstance(self, None)
self.keybindingWordNodes = []
kbmgr.publisher.subscribe(kbmgr.publisher.BINDINGS_UPDATED, self.update)

Expand Down Expand Up @@ -387,6 +384,9 @@ def update(self):

self._placeNodes()

def kill(self):
kbmgr.publisher.unsubscribe(kbmgr.publisher.BINDINGS_UPDATED, self.update)

def _placeNodes(self):
if not self.keybindingWordNodes:
return
Expand Down Expand Up @@ -454,16 +454,16 @@ def isSingleBit(number):

class DebugPanel(avg.DivNode):
def __init__(self, parent=None, fontsize=10, **kwargs):
self.__size = kwargs.pop('size')
super().__init__(**kwargs)
self.registerInstance(self, parent)

avg.RectNode(size=self.size, opacity=0, fillopacity=0.3, fillcolor='ff0000',
parent=self)
avg.RectNode(size=self.__size, opacity=0, fillopacity=0.3, fillcolor='ff0000',
sensitive=False, parent=self)
avg.WordsNode(text='Debug panel', fontsize=fontsize,
pos=(0, self.height - fontsize - fontsize / 3),
parent=self)
sensitive=False, parent=self)

self.sensitive = False
self.active = False
self.__panel = None
self.__callables = []
Expand Down Expand Up @@ -550,22 +550,22 @@ def toggleTouchVisualization(self):

def forceLoadPanel(self):
if self.__panel is None:
self.__panel = _DebugPanel(parent=self, size=self.size,
self.__panel = _DebugPanel(parent=self, size=self.__size,
fontsize=self.__fontsize)
for callable_ in self.__callables:
callable_()


class _DebugPanel(avg.DivNode):

def __init__(self, parent=None, fontsize=10, **kwargs):
self.__size = kwargs.pop('size')
super().__init__(**kwargs)
self.registerInstance(self, parent)

self.__slots = []

self.maxSize = self.size
self.size = (self.size[0], 0)
self.maxSize = self.__size
self.__size = (self.__size[0], 0)
self.activeWidgetClasses = []
self.__selectedWidget = None

Expand Down Expand Up @@ -600,7 +600,7 @@ def addWidget(self, widgetClass, *args, **kwargs):
libavg.logger.warning("You can't add the same widget twice")
return

widgetFrame = DebugWidgetFrame((max(0, self.width), DebugWidget.SLOT_HEIGHT),
widgetFrame = DebugWidgetFrame((max(0, self.__size[0]), DebugWidget.SLOT_HEIGHT),
widgetClass)
height = 0
for frame in self.__slots:
Expand Down Expand Up @@ -641,7 +641,7 @@ def _heightChanged(self):
for childID in range(0, self.getNumChildren()):
child = self.getChild(childID)
height += child.height
self.height = height
self.__size = (self.__size[0], height)
self.reorderWidgets()

def updateWidgets(self):
Expand Down Expand Up @@ -697,4 +697,4 @@ def reorderWidgets(self):
widgetFrame.pos = (0, height)
count += 1
height += widgetFrame.height
self.size = (self.maxSize[0], height)
self.__size = (self.maxSize[0], height)
10 changes: 10 additions & 0 deletions python/libavg/widget/scrollarea.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,16 @@ def setEnabled(self, enabled):
self.__enabled = enabled
enabled = property(getEnabled, setEnabled)

def unlink(self, kill=True):
super(ScrollArea, self).unlink(kill)
if kill:
if self._hScrollBar:
self._hScrollBar.unlink(True)
self._hScrollBar = None
if self._vScrollBar:
self._vScrollBar.unlink(True)
self._vScrollBar = None

def __onHThumbMove(self, thumbPos):
self.__scrollPane.contentpos = (thumbPos, self.__scrollPane.contentpos.y)
self.notifySubscribers(self.CONTENT_POS_CHANGED, [self.__scrollPane.contentpos])
Expand Down
14 changes: 13 additions & 1 deletion python/libavg/widget/slider.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,8 @@ def __init__(self, orientation, cfg, enabled=True, height=0, width=0, range=(0.,
self._thumbPos = thumbPos
self.setThumbPos(thumbPos)

self.subscribe(self.SIZE_CHANGED, lambda newSize: self._positionNodes())
self._sizeChangedID = self.subscribe(
self.SIZE_CHANGED, lambda newSize: self._positionNodes())
if orientation == Orientation.HORIZONTAL:
self.size = (width, trackBmp.getSize().y)
else:
Expand Down Expand Up @@ -230,6 +231,17 @@ def setEnabled(self, enabled):

enabled = property(getEnabled, setEnabled)

def unlink(self, kill=True):
super(SliderBase, self).unlink(kill)
self.unsubscribe(self._sizeChangedID)
self.__recognizer.abort()
if kill:
self.__recognizer = None
self._trackNode.unlink(True)
self._thumbNode.unlink(True)
self._trackNode = None
self._thumbNode = None

def _positionNodes(self, newSliderPos=None):
if newSliderPos is not None:
self._thumbPos = float(newSliderPos)
Expand Down

0 comments on commit 9f9bae2

Please sign in to comment.