Keep a reference to the labels

This commit is contained in:
Florian Bruhin 2014-04-20 18:22:11 +02:00
parent 41b0655ade
commit 3bd1470b20

View File

@ -28,6 +28,7 @@ class HintManager:
Attributes: Attributes:
_frame: The QWebFrame to use. _frame: The QWebFrame to use.
_elems: The elements we're hinting currently. _elems: The elements we're hinting currently.
_labels: The label elements.
""" """
SELECTORS = { SELECTORS = {
@ -65,13 +66,16 @@ class HintManager:
""" """
self._frame = frame self._frame = frame
self._elems = None self._elems = None
self._labels = []
def _draw_label(self, elem): def _draw_label(self, elem):
"""Draw a hint label over an element.""" """Draw a hint label over an element."""
rect = elem.geometry() rect = elem.geometry()
css = HintManager.HINT_CSS.format(left=rect.x(), top=rect.y()) css = HintManager.HINT_CSS.format(left=rect.x(), top=rect.y())
self._frame.documentElement().appendInside( doc = self._frame.documentElement()
'<span class="qutehint" style="{}">foo</span>'.format(css)) doc.appendInside('<span class="qutehint" style="{}">foo</span>'.format(
css))
self._labels.append(doc.lastChild())
def start(self, mode="all"): def start(self, mode="all"):
"""Start hinting. """Start hinting.
@ -86,6 +90,7 @@ class HintManager:
def stop(self): def stop(self):
"""Stop hinting.""" """Stop hinting."""
self._elems = None for e in self._labels:
for e in self._frame.findAllElements("span.qutehint"):
e.removeFromDocument() e.removeFromDocument()
self._elems = None
self._labels = []