Exemplo n.º 1
0
    def __init__(self, parent=None):
        MayaQWidgetDockableMixin.__init__(self, parent=parent)
        self.setSizePolicy(QtWidgets.QSizePolicy.Preferred,
                           QtWidgets.QSizePolicy.Preferred)

        # create a frame that other windows can dock into
        self.docking_frame = QtWidgets.QMainWindow(self)
        self.docking_frame.layout().setContentsMargins(0, 0, 0, 0)
        self.docking_frame.setWindowFlags(QtCore.Qt.Widget)
        self.docking_frame.setDockOptions(QtWidgets.QMainWindow.AnimatedDocks)

        self.central_widget = MirrorerWidget()
        self.setObjectName(self.central_widget.objectName() + "Window")
        self.setWindowTitle(self.central_widget.windowTitle())

        self.docking_frame.setCentralWidget(self.central_widget)

        layout = QtWidgets.QVBoxLayout(self)
        layout.setAlignment(QtCore.Qt.AlignTop)
        layout.setContentsMargins(0, 0, 0, 0)
        layout.addWidget(self.docking_frame)
        self.setLayout(layout)

        self.minimum_size = self.central_widget.minimumSizeHint()
        self.preferred_size = QtCore.QSize(self.minimum_size.width(),
                                           self.minimum_size.height())
Exemplo n.º 2
0
    def show(self):
        """
        Show the library widget as a dockable window.

        :rtype: None
        """
        MayaQWidgetDockableMixin.show(self, dockable=True)
        self.raise_()
        self.fixBorder()
Exemplo n.º 3
0
    def show(self, **kwargs):
        """
        Show the library widget as a dockable window.

        Set dockable=False in kwargs if you want to show the widget as a floating window.

        :rtype: None
        """
        dockable = kwargs.get('dockable', True)
        MayaQWidgetDockableMixin.show(self, dockable=dockable)
        self.raise_()
        self.fixBorder()
Exemplo n.º 4
0
    def show(self, **kwargs):
        """
        Show the library widget as a dockable window.

        Set dockable=False in kwargs if you want to show the widget as a floating window.

        :rtype: None
        """
        dockable = kwargs.get('dockable', True)
        MayaQWidgetDockableMixin.show(self, dockable=dockable)
        self.raise_()
        self.fixBorder()
Exemplo n.º 5
0
    def __init__(self,
                 widget_cls,
                 width_sizing="preferred",
                 height_sizing=None,
                 retain=False,
                 parent=None):
        MayaQWidgetDockableMixin.__init__(self, parent=parent)
        self.width_sizing = width_sizing
        self.height_sizing = height_sizing
        self.retain = retain

        # Create a frame that other windows can dock into
        self.docking_frame = QtWidgets.QMainWindow(self)
        self.docking_frame.layout().setContentsMargins(0, 0, 0, 0)
        self.docking_frame.setWindowFlags(QtCore.Qt.Widget)
        self.docking_frame.setDockOptions(QtWidgets.QMainWindow.AnimatedDocks)

        self.widget = widget_cls()
        # Not the cleanest way but this gives the underlying widget access to
        # this dock window
        self.widget._dock_win = self
        self.setObjectName(self.widget.objectName() + "Window")
        self.setWindowTitle(self.widget.windowTitle())

        self.docking_frame.setCentralWidget(self.widget)

        layout = QtWidgets.QVBoxLayout(self)
        layout.setAlignment(QtCore.Qt.AlignTop)
        layout.setContentsMargins(0, 0, 0, 0)
        layout.addWidget(self.docking_frame, 0)
        self.setLayout(layout)

        self.preferred_size = QtCore.QSize(self.minimumSize().width(),
                                           self.minimumSize().height())

        # See if maya is already aware of this workspace
        self.startup_state = cmds.workspaceControlState(
            self.workspace_control_name, query=True, exists=True)