Skip to content

Commit

Permalink
[processing] Pre-highlight model components on hover
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Mar 1, 2019
1 parent 93de4d1 commit 2178e1a
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions python/plugins/processing/modeler/ModelerGraphicItem.py
Expand Up @@ -56,6 +56,7 @@ def __init__(self, element, model, controls, scene=None):
self.model = model
self.scene = scene
self.element = element
self.hover_over_item = False
if isinstance(element, QgsProcessingModelParameter):
svg = QSvgRenderer(os.path.join(pluginPath, 'images', 'input.svg'))
self.picture = QPicture()
Expand Down Expand Up @@ -182,11 +183,22 @@ def hoverEnterEvent(self, event):
def hoverMoveEvent(self, event):
self.updateToolTip(event)

def hoverLeaveEvent(self, event):
self.setToolTip('')
if self.hover_over_item:
self.hover_over_item = False
self.update()

def updateToolTip(self, event):
prev_status = self.hover_over_item
if self.itemRect().contains(event.pos()):
self.setToolTip(self.text)
self.hover_over_item = True
else:
self.setToolTip('')
self.hover_over_item = False
if self.hover_over_item != prev_status:
self.update()

def contextMenuEvent(self, event):
if isinstance(self.element, QgsProcessingModelOutput):
Expand Down Expand Up @@ -328,6 +340,8 @@ def paint(self, painter, option, widget=None):
if self.isSelected():
stroke = selected
color = color.darker(110)
if self.hover_over_item:
color = color.darker(105)
painter.setPen(QPen(stroke, 0)) # 0 width "cosmetic" pen
painter.setBrush(QBrush(color, Qt.SolidPattern))
painter.drawRect(rect)
Expand Down

0 comments on commit 2178e1a

Please sign in to comment.