Beispiel #1
0
 def wrapper(*args, **kwargs):
     QtWidgets.QApplication.setOverrideCursor(
         QtGui.QCursor(QtCore.Qt.WaitCursor))
     try:
         ret_val = func(*args, **kwargs)
     finally:
         QtWidgets.QApplication.restoreOverrideCursor()
     return ret_val
 def rehighlight(self):
     """
     Rehighlight the entire document, may be slow.
     """
     start = time.time()
     QtWidgets.QApplication.setOverrideCursor(
         QtGui.QCursor(QtCore.Qt.WaitCursor))
     try:
         super(SyntaxHighlighter, self).rehighlight()
     except RuntimeError:
         # cloned widget, no need to rehighlight the same document twice ;)
         pass
     QtWidgets.QApplication.restoreOverrideCursor()
     end = time.time()
     _logger().debug('rehighlight duration: %fs' % (end - start))
Beispiel #3
0
 def mouseMoveEvent(self, e):
     """
     Extends mouseMoveEvent to display a pointing hand cursor when the
     mouse cursor is over a file location
     """
     super(PyInteractiveConsole, self).mouseMoveEvent(e)
     cursor = self.cursorForPosition(e.pos())
     assert isinstance(cursor, QtGui.QTextCursor)
     p = cursor.positionInBlock()
     usd = cursor.block().userData()
     if usd and usd.start_pos_in_block <= p <= usd.end_pos_in_block:
         if QtWidgets.QApplication.overrideCursor() is None:
             QtWidgets.QApplication.setOverrideCursor(
                 QtGui.QCursor(QtCore.Qt.PointingHandCursor))
     else:
         if QtWidgets.QApplication.overrideCursor() is not None:
             QtWidgets.QApplication.restoreOverrideCursor()
    def mouseMoveEvent(self, event):
        """
        Detect mouser over indicator and highlight the current scope in the
        editor (up and down decoration arround the foldable text when the mouse
        is over an indicator).

        :param event: event
        """
        super(FoldingPanel, self).mouseMoveEvent(event)
        th = TextHelper(self.editor)
        line = th.line_nbr_from_position(event.pos().y())
        if line >= 0:
            block = FoldScope.find_parent_scope(
                self.editor.document().findBlockByNumber(line))
            if TextBlockHelper.is_fold_trigger(block):
                if self._mouse_over_line is None:
                    # mouse enter fold scope
                    QtWidgets.QApplication.setOverrideCursor(
                        QtGui.QCursor(QtCore.Qt.PointingHandCursor))
                if self._mouse_over_line != block.blockNumber() and \
                        self._mouse_over_line is not None:
                    # fold scope changed, a previous block was highlighter so
                    # we quickly update our highlighting
                    self._mouse_over_line = block.blockNumber()
                    self._highlight_surrounding_scopes(block)
                else:
                    # same fold scope, request highlight
                    self._mouse_over_line = block.blockNumber()
                    self._highlight_runner.request_job(
                        self._highlight_surrounding_scopes, block)
                self._highight_block = block
            else:
                # no fold scope to highlight, cancel any pending requests
                self._highlight_runner.cancel_requests()
                self._mouse_over_line = None
                QtWidgets.QApplication.restoreOverrideCursor()
            self.repaint()