Beispiel #1
0
    def addSeparator(self, name=None):

        separatorEditor = QtWidgets.QFrame(self.paramsGroup)
        separatorEditor.setFrameShape(QtWidgets.QFrame.HLine)
        separatorEditor.setObjectName('separatorFrame')
        if name is not None:
            labelEditor = QtWidgets.QLabel(name, self.paramsGroup)
            labelEditor.setObjectName('separatorLabel')

            self.paramsLayout.addWidget(labelEditor, self.gridRow, 0)
            self.paramsLayout.addWidget(separatorEditor, self.gridRow, 1,
                                        QtCore.Qt.AlignBottom)
            self.gridRow += 1
        else:
            self.paramsLayout.addWidget(separatorEditor, self.gridRow, 0, 1, 2)
            self.gridRow += 1
Beispiel #2
0
    def createLayout(self):

        # Parent Layout
        self._topLayout = QtWidgets.QVBoxLayout()
        self._topLayout.setContentsMargins(0, 0, 0, 0)
        self._topLayout.setSpacing(0)

        self._mainWidget = QtWidgets.QWidget()
        self._mainWidget.setObjectName('mainPrefWidget')

        # Main Layout
        self._mainLayout = QtWidgets.QVBoxLayout(self._mainWidget)
        self._mainLayout.setContentsMargins(0, 0, 0, 0)
        self._mainLayout.setSpacing(0)

        self._preferenceLayout = QtWidgets.QGridLayout()
        self._preferenceLayout.setContentsMargins(10, 10, 10, 10)
        self._preferenceLayout.setSpacing(3)
        self._preferenceLayout.setColumnMinimumWidth(0, 200)
        self._preferenceLayout.setColumnStretch(0, 1)
        self._preferenceLayout.setColumnStretch(1, 2)

        # Add widgets based on type here
        preferences = self.parentWidget().window().preferences.getPreferences()
        i = 0
        for k, v in preferences.iteritems():
            labelFrameWidget = QtWidgets.QFrame()
            labelFrameWidget.setObjectName('prefLabelWidgetFrame')
            labelFrameWidget.setFrameStyle(QtWidgets.QFrame.NoFrame
                                           | QtWidgets.QFrame.Plain)
            labelFrameWidget.setToolTip(v['description'])
            labelFrameLayout = QtWidgets.QHBoxLayout()

            prefLabel = QtWidgets.QLabel(v['nice_name'], self)
            prefLabel.setProperty('labelClass', 'preferenceLabel')
            prefLabel.setObjectName(k + "_label")
            prefLabel.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
                                    QtWidgets.QSizePolicy.Fixed)
            prefLabel.setMinimumWidth(200)

            labelFrameLayout.addWidget(prefLabel)
            labelFrameWidget.setLayout(labelFrameLayout)

            self._preferenceLayout.addWidget(labelFrameWidget, i, 0)

            if v['type'] == 'bool':
                valueFrameWidget = QtWidgets.QFrame()
                valueFrameWidget.setObjectName('prefValueWidgetFrame')
                valueFrameWidget.setFrameStyle(QtWidgets.QFrame.NoFrame
                                               | QtWidgets.QFrame.Plain)
                valueFrameLayout = QtWidgets.QHBoxLayout()

                valueWidget = QtWidgets.QCheckBox(self)
                valueWidget.setObjectName(k + "_valueWidget")
                valueWidget.setChecked(v['value'])

                valueFrameLayout.addWidget(valueWidget)
                valueFrameWidget.setLayout(valueFrameLayout)

            self._preferenceLayout.addWidget(valueFrameWidget, i, 1, 1, 1)
            self.prefValueWidgets.append(valueWidget)

            i += 1

        # OK and Cancel buttons
        buttonLayout = QtWidgets.QHBoxLayout()
        buttonLayout.setContentsMargins(10, 10, 10, 10)
        buttons = QtWidgets.QDialogButtonBox(
            QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel,
            QtCore.Qt.Horizontal, self)

        buttons.accepted.connect(self.accept)
        buttons.rejected.connect(self.reject)

        buttonLayout.addWidget(buttons)

        # Menu Bar
        self.menu_bar = QtWidgets.QMenuBar()
        self.file_menu = self.menu_bar.addMenu('&File')
        self.importPrefAction = self.file_menu.addAction('&Import...')
        self.exportPrefAction = self.file_menu.addAction('&Export...')

        self._mainLayout.addWidget(self.menu_bar)
        self._mainLayout.addLayout(self._preferenceLayout)
        self._mainLayout.addStretch(1)
        self._mainLayout.addLayout(buttonLayout)

        self._topLayout.addWidget(self._mainWidget)
        self.setLayout(self._topLayout)
Beispiel #3
0
    def createLayout(self):

        self.menuLayout = QtWidgets.QHBoxLayout()
        self.menuLayout.setContentsMargins(0, 0, 0, 0)
        self.menuLayout.setSpacing(0)

        # Menu
        self.menuBar = QtWidgets.QMenuBar()

        # File Menu
        self.fileMenu = self.menuBar.addMenu('&File')
        self.newAction = self.fileMenu.addAction('&New')
        self.newAction.setShortcut('Ctrl+N')
        self.newAction.setObjectName("newAction")

        self.openAction = self.fileMenu.addAction('&Open...')
        self.openAction.setShortcut('Ctrl+O')
        self.openAction.setObjectName("openAction")

        self.saveAction = self.fileMenu.addAction('&Save')
        self.saveAction.setShortcut('Ctrl+S')
        self.saveAction.setObjectName("saveAction")

        self.saveAsAction = self.fileMenu.addAction('&Save As...')
        self.saveAsAction.setShortcut('Ctrl+Shift+S')
        self.saveAsAction.setObjectName("saveAsAction")

        self.fileMenu.addSeparator()
        self.recentFilesMenu = QtWidgets.QMenu(title='&Recent Files',
                                               parent=self.fileMenu)
        self.fileMenu.addMenu(self.recentFilesMenu)

        self.fileMenu.addSeparator()

        self.closeAction = self.fileMenu.addAction('&Close')
        self.closeAction.setShortcut('Ctrl+W')
        self.closeAction.setObjectName("closeAction")

        # Edit Menu
        self.editMenu = self.menuBar.addMenu('&Edit')
        self.copyAction = self.editMenu.addAction('&Copy')
        self.copyAction.setShortcut('Ctrl+C')
        self.pasteAction = self.editMenu.addAction('&Paste')
        self.pasteAction.setShortcut('Ctrl+V')
        self.pasteConnectedAction = self.editMenu.addAction('Paste Connected')
        self.pasteConnectedAction.setShortcut(
            QtGui.QKeySequence(QtCore.Qt.CTRL + QtCore.Qt.SHIFT +
                               QtCore.Qt.Key_V))
        self.editMenu.addSeparator()
        self.pasteMirroredAction = self.editMenu.addAction('Paste Mirrored')
        self.pasteMirroredConnectedAction = self.editMenu.addAction(
            'Paste Mirrored Connected')
        self.editMenu.addSeparator()
        self.editAddBackdropAction = self.editMenu.addAction('Add &Backdrop')
        self.editMenu.addSeparator()
        self.editRigNameAction = self.editMenu.addAction('&Rig Name')
        self.editRigNameAction.setObjectName("editRigNameAction")
        self.editMenu.addSeparator()
        self.editPreferencesAction = self.editMenu.addAction('&Preferences...')
        self.editPreferencesAction.setObjectName("editPreferencesAction")

        # Build Menu
        self.buildMenu = self.menuBar.addMenu('&Build')
        self.buildGuideAction = self.buildMenu.addAction('Build &Guide')
        self.buildGuideAction.setShortcut('Ctrl+G')
        self.buildGuideAction.setObjectName("buildGuideAction")

        self.buildRigAction = self.buildMenu.addAction('Build &Rig')
        self.buildRigAction.setShortcut('Ctrl+B')
        self.buildRigAction.setObjectName("buildRigAction")

        # Tools Menu
        self.toolsMenu = self.menuBar.addMenu('&Tools')
        self.reloadComponentsAction = self.toolsMenu.addAction(
            'Reload Component Modules')
        self.reloadComponentsAction.setShortcut('Ctrl+Shift+R')

        # View Menu
        self.viewMenu = self.menuBar.addMenu('&View')
        self.compLibAction = self.viewMenu.addAction('Component &Library')
        self.compLibAction.setShortcut('Ctrl+Tab')
        self.snapToGridAction = self.viewMenu.addAction('&Snap To Grid')
        self.snapToGridAction.setCheckable(True)

        # Help Menu
        self.helpMenu = self.menuBar.addMenu('&Help')
        self.krakenWebSiteAction = self.helpMenu.addAction('Kraken Web Site')
        self.krakenDocumentationAction = self.helpMenu.addAction(
            'Kraken Documentation')
        self.fabricForumsAction = self.helpMenu.addAction('Fabric Forums')
        self.helpMenu.addSeparator()
        self.aboutKrakenAction = self.helpMenu.addAction('About Kraken')

        # Logo
        logoWidget = QtWidgets.QLabel()
        logoWidget.setObjectName('logoWidget')
        logoWidget.setMinimumHeight(20)
        logoWidget.setMinimumWidth(110)

        logoPixmap = QtGui.QPixmap(':/images/KrakenUI_Logo.png')
        logoWidget.setPixmap(logoPixmap)

        # Config Widget
        self.configsParent = QtWidgets.QFrame(self)
        self.configsParent.setObjectName('configParent')
        self.configsParent.setFrameStyle(QtWidgets.QFrame.NoFrame)
        self.configsParent.setMinimumWidth(160)

        self.configsLayout = QtWidgets.QVBoxLayout()
        self.configsLayout.setContentsMargins(0, 0, 0, 0)
        self.configsLayout.setSpacing(0)

        self.configsWidget = QtWidgets.QComboBox()
        self.configsWidget.setAutoFillBackground(True)
        self.configsWidget.setObjectName('configWidget')
        self.configsWidget.setMinimumWidth(160)
        self.configsWidget.addItem('Default Config', userData='Default Config')

        self.configsLayout.addWidget(self.configsWidget)
        self.configsParent.setLayout(self.configsLayout)

        configs = KrakenSystem.getInstance().getConfigClassNames()
        for config in configs:
            self.configsWidget.addItem(config.split('.')[-1], userData=config)

        self.rigNameLabel = RigNameLabel('Rig Name:')

        # Add Widgets
        self.menuLayout.addWidget(logoWidget, 0)
        self.menuLayout.addWidget(self.menuBar, 3)
        self.menuLayout.addWidget(self.configsParent, 0)
        self.menuLayout.addWidget(self.rigNameLabel, 0)

        self.setLayout(self.menuLayout)