Exemple #1
0
 def showMoveHelper(self, visible=True):
     """show help text In empty HandBoards"""
     if visible:
         if not self.__moveHelper:
             splitter = QGraphicsRectItem(self)
             hbCenter = self.rect().center()
             splitter.setRect(hbCenter.x() * 0.5, hbCenter.y(), hbCenter.x() * 1, 1)
             helpItems = [splitter]
             for name, yFactor in [(m18n('Move Exposed Tiles Here'), 0.5),
                                     (m18n('Move Concealed Tiles Here'), 1.5)]:
                 helper = QGraphicsSimpleTextItem(name, self)
                 helper.setScale(3)
                 nameRect = QRectF()
                 nameRect.setSize(helper.mapToParent(helper.boundingRect()).boundingRect().size())
                 center = QPointF(hbCenter)
                 center.setY(center.y() * yFactor)
                 helper.setPos(center - nameRect.center())
                 if self.sceneRotation() == 180:
                     rotateCenter(helper, 180)
                 helpItems.append(helper)
             self.__moveHelper = self.scene().createItemGroup(helpItems)
         self.__moveHelper.setVisible(True)
     else:
         if self.__moveHelper:
             self.__moveHelper.setVisible(False)
Exemple #2
0
 def decoratePlayer(self, player):
     """show player info on the wall"""
     side = player.front
     sideCenter = side.center()
     name = side.nameLabel
     if player.handBoard:
         player.newHandContent = player.computeNewHand()
         name.setText(' - '.join(
             [player.localName,
              unicode(player.newHandContent.total())]))
     else:
         name.setText(player.localName)
     name.resetTransform()
     if side.rotation() == 180:
         rotateCenter(name, 180)
     nameRect = QRectF()
     nameRect.setSize(
         name.mapToParent(name.boundingRect()).boundingRect().size())
     name.setPos(sideCenter - nameRect.center())
     player.colorizeName()
     side.windTile.setWind(player.wind, self.game.roundsFinished)
     side.windTile.resetTransform()
     side.windTile.setPos(
         sideCenter.x() * 1.63,
         sideCenter.y() - side.windTile.rect().height() / 2.5)
     side.nameLabel.show()
     side.windTile.show()
    def paint(self, painter, option, widget=None):
        if not self.__icon.isNull():
            if option.state & QStyle.State_Selected:
                mode = QIcon.Selected
            elif option.state & QStyle.State_Enabled:
                mode = QIcon.Normal
            elif option.state & QStyle.State_Active:
                mode = QIcon.Active
            else:
                mode = QIcon.Disabled

            transform = self.sceneTransform()

            if widget is not None:
                # 'widget' is the QGraphicsView.viewport()
                view = widget.parent()
                if isinstance(view, QGraphicsView):
                    # Combine the scene transform with the view transform.
                    view_transform = view.transform()
                    transform = view_transform * view_transform

            lod = option.levelOfDetailFromTransform(transform)

            w, h = self.__iconSize.width(), self.__iconSize.height()
            target = QRectF(0, 0, w, h)
            source = QRectF(0, 0, w * lod, w * lod).toRect()

            # The actual size of the requested pixmap can be smaller.
            size = self.__icon.actualSize(source.size(), mode=mode)
            source.setSize(size)

            pixmap = self.__icon.pixmap(source.size(), mode=mode)

            painter.setRenderHint(
                QPainter.SmoothPixmapTransform,
                self.__transformationMode == Qt.SmoothTransformation
            )

            painter.drawPixmap(target, pixmap, QRectF(source))
Exemple #4
0
 def decoratePlayer(self, player):
     """show player info on the wall"""
     side = player.front
     sideCenter = side.center()
     name = side.nameLabel
     if player.handBoard:
         player.newHandContent = player.computeNewHand()
         name.setText(' - '.join([player.localName, unicode(player.newHandContent.total())]))
     else:
         name.setText(player.localName)
     name.resetTransform()
     if side.rotation() == 180:
         rotateCenter(name, 180)
     nameRect = QRectF()
     nameRect.setSize(name.mapToParent(name.boundingRect()).boundingRect().size())
     name.setPos(sideCenter - nameRect.center())
     player.colorizeName()
     side.windTile.setWind(player.wind, self.game.roundsFinished)
     side.windTile.resetTransform()
     side.windTile.setPos(sideCenter.x()*1.63, sideCenter.y()-side.windTile.rect().height()/2.5)
     side.nameLabel.show()
     side.windTile.show()
Exemple #5
0
    def paint(self, painter, option, widget=None):
        if not self.__icon.isNull():
            if option.state & QStyle.State_Selected:
                mode = QIcon.Selected
            elif option.state & QStyle.State_Enabled:
                mode = QIcon.Normal
            elif option.state & QStyle.State_Active:
                mode = QIcon.Active
            else:
                mode = QIcon.Disabled

            transform = self.sceneTransform()

            if widget is not None:
                # 'widget' is the QGraphicsView.viewport()
                view = widget.parent()
                if isinstance(view, QGraphicsView):
                    # Combine the scene transform with the view transform.
                    view_transform = view.transform()
                    transform = view_transform * view_transform

            lod = option.levelOfDetailFromTransform(transform)

            w, h = self.__iconSize.width(), self.__iconSize.height()
            target = QRectF(0, 0, w, h)
            source = QRectF(0, 0, w * lod, w * lod).toRect()

            # The actual size of the requested pixmap can be smaller.
            size = self.__icon.actualSize(source.size(), mode=mode)
            source.setSize(size)

            pixmap = self.__icon.pixmap(source.size(), mode=mode)

            painter.setRenderHint(
                QPainter.SmoothPixmapTransform,
                self.__transformationMode == Qt.SmoothTransformation
            )

            painter.drawPixmap(target, pixmap, QRectF(source))