Example #1
0
    def updateLinePos(self, newPos):
        if self.startWidget == None and self.endWidget == None: return

        if self.startWidget != None: func = "getDistToLeftEdgePoint"
        else: func = "getDistToRightEdgePoint"

        schema = self.canvasDlg.schema
        view = schema.activeTab()

        self.widget = None
        widgets = view.getItemsAtPos(newPos, CanvasWidget)
        if widgets:
            self.widget = widgets[0]
        else:
            dists = [
                (getattr(w, func)(newPos), w)
                for w in redRObjects.getIconsByTab(
                    [redRObjects.activeTabName()])[redRObjects.activeTabName()]
            ]
            dists.sort()
            if dists and dists[0][0] < 20:
                self.widget = dists[0][1]

        if self.startWidget: pos = self.startWidget.getRightEdgePoint()
        else: pos = self.endWidget.getLeftEdgePoint()

        if self.widget not in [self.startWidget, self.endWidget]:
            if self.startWidget == None and self.widget.instance().outputs:
                newPos = self.widget.getRightEdgePoint()
            elif self.endWidget == None and self.widget.instance().inputs:
                newPos = self.widget.getLeftEdgePoint()

        self.setLine(pos.x(), pos.y(), newPos.x(), newPos.y())
def minimumY():
    y = 0
    for w in redRObjects.getIconsByTab(redRObjects.activeTabName())[redRObjects.activeTabName()]:
        if w.y() > y:
            y = w.y()
    if y != 0:
        y += 30
    return y
Example #3
0
def minimumY():
    y = 0
    for w in redRObjects.getIconsByTab(
            redRObjects.activeTabName())[redRObjects.activeTabName()]:
        if w.y() > y:
            y = w.y()
    if y != 0:
        y += 30
    return y
    def __init__(self, canvas, view, widgetInfo, defaultPic, canvasDlg, instanceID, tabName):        
        # print widgetSettings
        #self.signalManager = signalManager
        self.widgetInfo = widgetInfo
        self.tab = tabName
        
        self.instanceID = instanceID
            
            
        #self.setForces(forceInSignals, forceOutSignals) # a patch for dummywidget
        self.isProcessing = 0   # is this widget currently processing signals
        self.needsProcessing = 0 # is this widget in need of processing data
        self.progressBarShown = 0
        self.progressBarValue = -1
        self.widgetSize = QSizeF(0, 0)
        self.widgetState = {}
        self.caption = widgetInfo.name
        self.selected = False
        self.potentialConnection = False
        self.inLines = []               # list of connected lines on input
        self.outLines = []              # list of connected lines on output
        self.ghostWidgets = []          # list of ghost widgets that this widget could connect to
        self.ghost = False
        self.icon = QIcon(widgetInfo.icon)
        self.tab = redRObjects.activeTabName()
        #self.instance.updateStatusBarState()

        QGraphicsRectItem.__init__(self, None, canvas)
        

        self.widgetInfo = widgetInfo
        self.canvas = canvas
        self.view = view
        self.canvasDlg = canvasDlg
        canvasPicsDir  = os.path.join(redREnviron.directoryNames['canvasDir'], "icons")
        self.cloneIcon = QPixmap(os.path.join(canvasPicsDir, "clone.png"))
        self.lockedIcon = QPixmap(os.path.join(canvasPicsDir, "locked.png"))
        #self.cloneIcon.setToolTip(_("This widget is cloned in another tab"))
        self.imageLeftEdge = QPixmap(os.path.join(canvasPicsDir,"leftEdge.png"))
        self.imageRightEdge = QPixmap(os.path.join(canvasPicsDir,"rightEdge.png"))
        self.imageLeftEdgeG = QPixmap(os.path.join(canvasPicsDir,"leftEdgeG.png"))
        self.imageRightEdgeG = QPixmap(os.path.join(canvasPicsDir,"rightEdgeG.png"))
        self.imageLeftEdgeR = QPixmap(os.path.join(canvasPicsDir,"leftEdgeR.png"))
        self.imageRightEdgeR = QPixmap(os.path.join(canvasPicsDir,"rightEdgeR.png"))
        self.shownLeftEdge, self.shownRightEdge = self.imageLeftEdge, self.imageRightEdge
        self.imageFrame = QIcon(QPixmap(os.path.join(canvasPicsDir, "frame.png")))
        self.edgeSize = QSizeF(self.imageLeftEdge.size())
        self.infoIcon = QGraphicsPixmapItem(QPixmap(redRStyle.widgetIcons["Info"]), None, canvas)
        self.warningIcon = QGraphicsPixmapItem(QPixmap(redRStyle.widgetIcons["Warning"]), None, canvas)
        self.errorIcon = QGraphicsPixmapItem(QPixmap(redRStyle.widgetIcons["Error"]), None, canvas)
        self.infoIcon.hide()
        self.warningIcon.hide()
        self.errorIcon.hide()
        self.resetWidgetSize()
        
        self.oldPos = self.pos()
    def updateLinePos(self, newPos):
        if self.startWidget == None and self.endWidget == None: return
        
        if self.startWidget != None:   func = "getDistToLeftEdgePoint"
        else:                          func = "getDistToRightEdgePoint"
        
        schema = self.canvasDlg.schema
        view = schema.activeTab()
        
        self.widget = None
        widgets = view.getItemsAtPos(newPos, CanvasWidget)
        if widgets:
            self.widget = widgets[0]
        else:
            dists = [(getattr(w, func)(newPos), w) for w in redRObjects.getIconsByTab([redRObjects.activeTabName()])[redRObjects.activeTabName()]]
            dists.sort()
            if dists and dists[0][0] < 20:
                self.widget = dists[0][1]
        
        if self.startWidget: pos = self.startWidget.getRightEdgePoint()
        else:                pos = self.endWidget.getLeftEdgePoint()

        if self.widget not in [self.startWidget, self.endWidget]: 
            if self.startWidget == None and self.widget.instance().outputs: newPos = self.widget.getRightEdgePoint()
            elif self.endWidget == None and self.widget.instance().inputs:  newPos = self.widget.getLeftEdgePoint()
        
        self.setLine(pos.x(), pos.y(), newPos.x(), newPos.y())