Пример #1
0
    def addPlayClock(self):
        '''Adds a play clock to the graphic scene.'''
        if not self.playClockAddedFlag:
            self.playClockAddedFlag = True
            if self.sportType == 'football' or self.sportType == 'soccer':
                model = 'LX3018'
            elif self.sportType == 'basketball' or self.sportType == 'hockey':
                model = 'LX2180'
            else:
                model = None

            if model is not None:
                scoreboard=Scoreboard(\
                model, captionColor=self.captionColor, driverType='LXDriver', \
                serialInputFlag=self.serialInputFlag, parent=None, scene=self.scene, vboseList=self.vboseList)

                scoreboard.setKeypad(self.reverseHomeAndGuest, self.keypad3150,
                                     self.MMBasketball, self.WHHBaseball)

                self.sportType = scoreboard.game.gameData['sportType']
                print 'Sport:', scoreboard.game.sport, 'Sport Type:', self.sportType, 'Keypad:', scoreboard.keyMap.keypadName, 'model', self.model

                self.scoreboardDict[model]=Board(\
                scoreboard, LEDcolor='AMBER', boardColor=self.boardColor, \
                captionColor=self.captionColor, stripeColor=self.stripeColor, \
                driverType='LXDriver', parent=self.background, scene=self.scene)

                self.scoreboardDict[model].setPos(self.backgroundWidth/2-\
                self.scoreboardDict[model].boundingRect.width()/2, self.backgroundHeight/2+\
                self.boardFactor*self.boardHeight/2+self.boardFactor*5)
Пример #2
0
    def instantiate_scoreboard(self):
        '''Creates the graphic scene and instantiates the scoreboard object.'''
        self.scene = GraphicsScene()
        self.background = QGraphicsSvgItem('Graphics/EMechBackground.svg')
        self.scene.addItem(self.background)

        scoreboard=Scoreboard(\
        self.model, captionColor=self.captionColor, driverType='LXDriver', \
        serialInputFlag=self.serialInputFlag, parent=None, scene=self.scene, vboseList=self.vboseList)

        scoreboard.setKeypad(self.reverseHomeAndGuest, self.keypad3150,
                             self.MMBasketball, self.WHHBaseball)

        self.sportType = scoreboard.game.gameData['sportType']
        print 'Sport:', scoreboard.game.sport, 'Sport Type:', self.sportType, 'Keypad:', scoreboard.keyMap.keypadName, 'model', self.model

        self.scoreboardDict[self.model]=Board(\
        scoreboard, LEDcolor='AMBER', boardColor=self.boardColor, \
        captionColor=self.captionColor, stripeColor=self.stripeColor, \
        driverType='LXDriver', parent=self.background, scene=self.scene)

        #create all timers
        self.refreshAssets = QTimer()
        self.refreshAssets.timeout.connect(self.updateAssets)
        self.checkClickables = QTimer()
        self.checkClickables.timeout.connect(self.checkClickableEvents)
Пример #3
0
    def addLockerClock(self):
        '''Adds a locker room clock to the graphic scene.'''
        if not self.lockerClockAddedFlag:
            self.lockerClockAddedFlag = True
            model = 'LX7406'
            scoreboard=Scoreboard(\
            model, captionColor=self.captionColor, driverType='LXDriver', \
            serialInputFlag=self.serialInputFlag, parent=None, scene=self.scene, vboseList=self.vboseList)

            scoreboard.setKeypad(self.reverseHomeAndGuest, self.keypad3150,
                                 self.MMBasketball, self.WHHBaseball)

            self.sportType = scoreboard.game.gameData['sportType']
            print 'Sport:', scoreboard.game.sport, 'Sport Type:', self.sportType, 'Keypad:', scoreboard.keyMap.keypadName, 'model', self.model

            self.scoreboardDict[model]=Board(\
            scoreboard, LEDcolor='AMBER', boardColor=self.boardColor, \
            captionColor=self.captionColor, stripeColor=self.stripeColor, \
            driverType='LXDriver', parent=self.background, scene=self.scene)

            width = 0
            if self.sportType == 'linescore' or self.sportType == 'soccer':
                width = self.scoreboardDict[
                    self.model].boundingRect.width() / 2
            elif self.sportType == 'football':
                width = self.scoreboardDict[
                    self.model].boundingRect.width() / 4

            if self.scoreboardDict[self.model].scoreboard.partsDict[
                    self.model]['qtyOfCabinets'] == 2:
                if self.sportType == 'stat':
                    height = self.boardHeight / 2
                else:
                    height = self.boardHeight
            else:
                height = self.boardHeight / 2

            self.scoreboardDict[model].setPos(self.boardFactor*(self.backgroundWidth/2-\
            self.scoreboardDict[self.model].boundingRect.width()/2+width), self.backgroundHeight/2+\
            self.boardFactor*height+self.boardFactor*5)
Пример #4
0
    def create_scoreboard_view(self):
        '''Creates the views for scoreboards.'''
        #Prepare zoom level
        self.boardWidth = self.scoreboardDict[self.model].boundingRect.width()
        self.boardHeight = self.scoreboardDict[
            self.model].boundingRect.height()
        self.backgroundWidth = self.background.boundingRect().width()
        self.backgroundHeight = self.background.boundingRect().height()
        if self.boardWidth >= 312:
            self.boardFactor = 150.0 / 342.0
        elif self.boardWidth >= 240 or self.model == 'LX2575' or self.model == 'LX2576':
            self.boardFactor = 150.0 / 282.0
        elif self.boardWidth >= 120 or self.model == 'LX2555' or self.model == 'LX2556':
            self.boardFactor = 150.0 / 216.0
        elif self.model == 'GENERIC':
            self.boardFactor = .5
        else:
            self.boardFactor = 1.0
        self.scoreboardDict[self.model].scale(self.boardFactor,
                                              self.boardFactor)

        if self.model == 'LX2555' or self.model == 'LX2575':
            model = 'LX2055'
        elif self.model == 'LX2556' or self.model == 'LX2576':
            model = 'LX2056'

        if self.scoreboardDict[self.model].scoreboard.partsDict[
                self.model]['qtyOfCabinets'] == 2:
            if self.model == 'LX2055' or self.model == 'LX2056':
                self.scoreboardDict[self.model].setPos(self.backgroundWidth/2-self.boardFactor*(self.scoreboardDict[self.model].scoreboard.statWidth+self.scoreboardDict[self.model].scoreboard.boardWidth*2)/2, \
                self.backgroundHeight/2-self.boardFactor*self.boardHeight/2)
            else:
                self.scoreboardDict[self.model].setPos(
                    self.backgroundWidth / 2 -
                    self.boardFactor * self.boardWidth / 2,
                    self.backgroundHeight / 2 -
                    self.boardFactor * self.boardHeight / 2)
        else:
            if self.model == 'LX2555' or self.model == 'LX2556' or self.model == 'LX2575' or self.model == 'LX2576':
                if self.model == 'LX2555':
                    statWidth = 108
                elif self.model == 'LX2556':
                    statWidth = 108
                elif self.model == 'LX2575':
                    statWidth = 168
                elif self.model == 'LX2576':
                    statWidth = 168
                scoreboard=Scoreboard(\
                model, captionColor=self.captionColor, driverType='LXDriver', serialInputFlag=self.serialInputFlag, \
                parent=None, scene=self.scene, vboseList=self.vboseList)
                scoreboard.statWidth = statWidth

                scoreboard.setKeypad(self.reverseHomeAndGuest, self.keypad3150,
                                     self.MMBasketball, self.WHHBaseball)

                print 'Sport:', scoreboard.game.sport, 'Sport Type:', self.sportType, 'Keypad:', scoreboard.keyMap.keypadName, 'model', model

                self.scoreboardDict[model]=Board(\
                scoreboard, LEDcolor='AMBER', boardColor=self.boardColor, captionColor=self.captionColor, stripeColor=self.stripeColor, \
                driverType='LXDriver', parent=self.background, scene=self.scene)

                self.scoreboardDict[model].scoreboard.setKeypad(
                    self.reverseHomeAndGuest, self.keypad3150,
                    self.MMBasketball)
                self.scoreboardDict[model].scale(self.boardFactor,
                                                 self.boardFactor)
                self.scoreboardDict[model].setPos(\
                self.backgroundWidth/2-self.boardFactor*(self.boardWidth+self.scoreboardDict[model].scoreboard.boardWidth*2)/2, \
                self.backgroundHeight/2-self.boardFactor*self.boardHeight/4)

                self.scoreboardDict[self.model].setPos(
                    self.backgroundWidth / 2 -
                    self.boardFactor * self.boardWidth / 2,
                    self.backgroundHeight / 2 -
                    self.boardFactor * self.boardHeight / 4)
            else:
                self.scoreboardDict[self.model].setPos(
                    self.backgroundWidth / 2 -
                    self.boardFactor * self.boardWidth / 2,
                    self.backgroundHeight / 2 -
                    self.boardFactor * self.boardHeight / 2)

        self.background.scale(5, 5)

        #Single View
        self.single_scoreboard_view = GraphicsView(self.scene)
        self.single_scoreboard_view.centerOn(self.backgroundWidth / 2,
                                             self.backgroundHeight / 2)

        self.single_scoreboard_view.setRenderHints(
            QPainter.Antialiasing | QPainter.SmoothPixmapTransform)
        self.single_scoreboard_view.setContextMenuPolicy(Qt.CustomContextMenu)
        self.single_scoreboard_view.setViewportUpdateMode(
            GraphicsView.MinimalViewportUpdate)  #FullViewportUpdate
        self.single_scoreboard_view.setDragMode(GraphicsView.ScrollHandDrag)
        self.single_scoreboard_view.setTransformationAnchor(
            GraphicsView.AnchorUnderMouse)
        self.single_scoreboard_view.setResizeAnchor(
            GraphicsView.AnchorUnderMouse)
        self.single_scoreboard_view.connect(
            self.single_scoreboard_view,
            SIGNAL("customContextMenuRequested(QPoint)"), self,
            SLOT("contextMenuRequestedSingle(QPoint)"))

        #Full View
        self.scoreboard_full_view = GraphicsView(self.scene)
        self.scoreboard_full_view.setRenderHints(
            QPainter.Antialiasing | QPainter.SmoothPixmapTransform)
        self.scoreboard_full_view.setContextMenuPolicy(Qt.CustomContextMenu)
        self.scoreboard_full_view.setViewportUpdateMode(
            GraphicsView.MinimalViewportUpdate)  #FullViewportUpdate
        self.scoreboard_full_view.setDragMode(GraphicsView.ScrollHandDrag)
        self.scoreboard_full_view.setTransformationAnchor(
            GraphicsView.AnchorUnderMouse)
        self.scoreboard_full_view.setResizeAnchor(
            GraphicsView.AnchorUnderMouse)
        self.scoreboard_full_view.connect(
            self.scoreboard_full_view,
            SIGNAL("customContextMenuRequested(QPoint)"), self,
            SLOT("contextMenuRequestedDouble(QPoint)"))

        #Zoom View
        self.scoreboard_zoom_view = GraphicsView(self.scene)
        self.zoomFactor = 8
        self.scoreboard_zoom_view.scale(self.zoomFactor, self.zoomFactor)

        self.scoreboard_zoom_view.setRenderHints(
            QPainter.Antialiasing | QPainter.SmoothPixmapTransform)
        self.scoreboard_zoom_view.setViewportUpdateMode(
            GraphicsView.MinimalViewportUpdate)  #FullViewportUpdate
        self.scoreboard_zoom_view.setDragMode(GraphicsView.ScrollHandDrag)
        self.scoreboard_zoom_view.setTransformationAnchor(
            GraphicsView.AnchorUnderMouse)
        self.scoreboard_zoom_view.setResizeAnchor(
            GraphicsView.AnchorUnderMouse)

        #Vertical scoreboard view
        self.single_scoreboard_layout = QVBoxLayout()
        self.single_scoreboard_layout.addWidget(self.single_scoreboard_view)

        #Vertical scoreboard view
        self.double_scoreboard_layout = QVBoxLayout()
        self.double_scoreboard_layout.addWidget(self.scoreboard_full_view)
        self.double_scoreboard_layout.addWidget(self.scoreboard_zoom_view)

        #Main wigdet
        self.scoreboard_view_single = QWidget()
        self.scoreboard_view_single.setLayout(self.single_scoreboard_layout)

        #Main wigdet
        self.scoreboard_view_double = QWidget()
        self.scoreboard_view_double.setLayout(self.double_scoreboard_layout)

        self.scoreboard_view = self.scoreboard_view_single