Changeset 11616:2e29f6b9b531 in orange


Ignore:
Timestamp:
07/02/13 16:20:17 (10 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Change canvas background when the signal propagation is paused.

Location:
Orange/OrangeCanvas
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/canvas/view.py

    r11238 r11616  
    44import logging 
    55 
    6 from PyQt4.QtGui import QGraphicsView, QCursor 
    7 from PyQt4.QtCore import Qt, QRect, QRectF, QTimer 
     6from PyQt4.QtGui import QGraphicsView, QCursor, QIcon 
     7from PyQt4.QtCore import Qt, QRect, QSize, QRectF, QPoint, QTimer 
    88 
    99log = logging.getLogger(__name__) 
     
    1111 
    1212class CanvasView(QGraphicsView): 
    13     """Canvas View handles the zooming and panning. 
     13    """Canvas View handles the zooming. 
    1414    """ 
    1515 
     
    1717        QGraphicsView.__init__(self, *args) 
    1818        self.setAlignment(Qt.AlignTop | Qt.AlignLeft) 
     19 
     20        self.__backgroundIcon = QIcon() 
    1921 
    2022        self.__autoScroll = False 
     
    113115 
    114116        log.debug("Auto scroll advance") 
     117 
     118    def setBackgroundIcon(self, icon): 
     119        if not isinstance(icon, QIcon): 
     120            raise TypeError("A QIcon expected.") 
     121 
     122        if self.__backgroundIcon != icon: 
     123            self.__backgroundIcon = icon 
     124            self.viewport().update() 
     125 
     126    def backgroundIcon(self): 
     127        return QIcon(self.__backgroundIcon) 
     128 
     129    def drawBackground(self, painter, rect): 
     130        QGraphicsView.drawBackground(self, painter, rect) 
     131 
     132        if not self.__backgroundIcon.isNull(): 
     133            painter.setClipRect(rect) 
     134            vrect = QRect(QPoint(0, 0), self.viewport().size()) 
     135            vrect = self.mapToScene(vrect).boundingRect() 
     136 
     137            pm = self.__backgroundIcon.pixmap( 
     138                vrect.size().toSize().boundedTo(QSize(200, 200)) 
     139            ) 
     140            pmrect = QRect(QPoint(0, 0), pm.size()) 
     141            pmrect.moveCenter(vrect.center().toPoint()) 
     142            if rect.toRect().intersects(pmrect): 
     143                painter.drawPixmap(pmrect, pm) 
  • Orange/OrangeCanvas/document/schemeedit.py

    r11615 r11616  
    2121    QKeySequence, QUndoStack, QGraphicsItem, QGraphicsObject, 
    2222    QGraphicsTextItem, QCursor, QFont, QPainter, QPixmap, QColor, 
    23     QIcon, QWhatsThisClickedEvent 
     23    QIcon, QWhatsThisClickedEvent, QBrush 
    2424) 
    2525 
     
    3333from ..gui.quickhelp import QuickHelpTipEvent 
    3434from ..gui.utils import message_information, disabled 
    35 from ..scheme import scheme, SchemeNode, SchemeLink, BaseSchemeAnnotation 
     35from ..scheme import ( 
     36    scheme, signalmanager, SchemeNode, SchemeLink, BaseSchemeAnnotation 
     37) 
    3638from ..canvas.scene import CanvasScene 
    3739from ..canvas.view import CanvasView 
     
    592594                self.__scheme.title_changed.disconnect(self.titleChanged) 
    593595                self.__scheme.removeEventFilter(self) 
     596                sm = self.__scheme.findChild(signalmanager.SignalManager) 
     597                if sm: 
     598                    sm.stateChanged.disconnect( 
     599                        self.__signalManagerStateChanged) 
    594600 
    595601            self.__scheme = scheme 
     
    601607                self.titleChanged.emit(scheme.title) 
    602608                self.__cleanSchemeString = scheme_to_string(scheme) 
     609                sm = scheme.findChild(signalmanager.SignalManager) 
     610                if sm: 
     611                    sm.stateChanged.connect(self.__signalManagerStateChanged) 
     612 
    603613            else: 
    604614                self.__cleanSchemeString = None 
     
    15251535            self.__scene.setFont(font) 
    15261536 
     1537    def __signalManagerStateChanged(self, state): 
     1538        if state == signalmanager.SignalManager.Running: 
     1539            self.__view.setBackgroundBrush(QBrush(Qt.NoBrush)) 
     1540#            self.__view.setBackgroundIcon(QIcon()) 
     1541        elif state == signalmanager.SignalManager.Paused: 
     1542            self.__view.setBackgroundBrush(QBrush(QColor(235, 235, 235))) 
     1543#            self.__view.setBackgroundIcon(QIcon("canvas_icons:Pause.svg")) 
     1544 
    15271545 
    15281546def scheme_to_string(scheme): 
Note: See TracChangeset for help on using the changeset viewer.