Example #1
0
    def __init__(self, mainWindow, fileName=None):
        """Constructor for the editor window

        :params QMainWindow mainWindow: the parent main window
        :params string fileName: Optional filename to open on start
        """
        super().__init__(mainWindow)

        self.setObjectName("editor_window")
        self.setGeometry(100, 100, 1024, 768)
        self.setWindowTitle(
            self.tr("ts2 - Train Signalling Simulation - Editor"))
        self._mainWindow = mainWindow

        self._dirty = False

        # Editor
        self.editor = editor.Editor(fileName=fileName)
        self.editor.initialize(self)

        # Actions
        self.newAction = QtWidgets.QAction(self.tr("&New"), self)
        self.newAction.setShortcut(QtGui.QKeySequence.New)
        newActionTip = self.tr("Create a new simulation")
        self.newAction.setToolTip(newActionTip)
        self.newAction.setStatusTip(newActionTip)
        self.newAction.triggered.connect(self.closeSimulation)

        self.openAction = QtWidgets.QAction(self.tr("&Open..."), self)
        self.openAction.setShortcut(QtGui.QKeySequence.Open)
        openActionTip = self.tr("Open a simulation")
        self.openAction.setToolTip(openActionTip)
        self.openAction.setStatusTip(openActionTip)
        self.openAction.triggered.connect(self.loadSimulation)

        self.saveAction = QtWidgets.QAction(self.tr("&Save"), self)
        self.saveAction.setShortcut(QtGui.QKeySequence.Save)
        saveActionTip = self.tr("Save the current simulation")
        self.saveAction.setToolTip(saveActionTip)
        self.saveAction.setStatusTip(saveActionTip)
        self.saveAction.triggered.connect(self.saveSimulation)

        self.saveAsAction = QtWidgets.QAction(self.tr("&Save as..."), self)
        self.saveAsAction.setShortcut(QtGui.QKeySequence.SaveAs)
        saveAsActionTip = self.tr(
            "Save the current simulation with a different file name")
        self.saveAsAction.setToolTip(saveAsActionTip)
        self.saveAsAction.setStatusTip(saveAsActionTip)
        self.saveAsAction.triggered.connect(self.saveAsSimulation)

        self.closeAction = QtWidgets.QAction(self.tr("&Close"), self)
        self.closeAction.setShortcut(QtGui.QKeySequence.Close)
        closeActionTip = self.tr("Close the editor")
        self.closeAction.setToolTip(closeActionTip)
        self.closeAction.setStatusTip(closeActionTip)
        self.closeAction.triggered.connect(self.close)

        self.panToolAction = QtWidgets.QAction(self.tr("&Pan tool"), self)
        panToolActionTip = self.tr("Set the pan tool")
        self.panToolAction.setToolTip(panToolActionTip)
        self.panToolAction.setStatusTip(panToolActionTip)
        self.panToolAction.setCheckable(True)
        self.panToolAction.triggered.connect(self.setPanTool)

        self.selectionToolAction = QtWidgets.QAction(self.tr("&Selection tool"),
                                                     self)
        selectionToolActionTip = self.tr("Set the selection tool")
        self.selectionToolAction.setToolTip(selectionToolActionTip)
        self.selectionToolAction.setStatusTip(selectionToolActionTip)
        self.selectionToolAction.setCheckable(True)
        self.selectionToolAction.triggered.connect(self.setSelectionTool)

        self.toolActions = QtWidgets.QActionGroup(self)
        self.toolActions.addAction(self.panToolAction)
        self.toolActions.addAction(self.selectionToolAction)
        self.panToolAction.setChecked(True)

        self.copyAction = QtWidgets.QAction(self.tr("&Copy"), self)
        self.copyAction.setShortcut(QtGui.QKeySequence.Copy)
        copyActionTip = self.tr("Copy the current selection to the clipboard")
        self.copyAction.setToolTip(copyActionTip)
        self.copyAction.setStatusTip(copyActionTip)
        self.copyAction.triggered.connect(self.copyItems)

        self.pasteAction = QtWidgets.QAction(self.tr("&Paste"), self)
        self.pasteAction.setShortcut(QtGui.QKeySequence.Paste)
        pasteActionTip = self.tr("Paste the items of the clipboard")
        self.pasteAction.setToolTip(pasteActionTip)
        self.pasteAction.setStatusTip(pasteActionTip)
        self.pasteAction.triggered.connect(self.pasteItems)

        self.deleteAction = QtWidgets.QAction(self.tr("&Delete"), self)
        self.deleteAction.setShortcut(QtGui.QKeySequence.Delete)
        deleteActionTip = self.tr("Delete the selected items")
        self.deleteAction.setToolTip(deleteActionTip)
        self.deleteAction.setStatusTip(deleteActionTip)
        self.deleteAction.triggered.connect(self.deleteItems)

        self.selectAllAction = QtWidgets.QAction(self.tr("&Select All"), self)
        self.selectAllAction.setShortcut(QtGui.QKeySequence.SelectAll)
        selectAllActionTip = self.tr("Select all the items")
        self.selectAllAction.setToolTip(selectAllActionTip)
        self.selectAllAction.setStatusTip(selectAllActionTip)
        self.selectAllAction.triggered.connect(self.selectAll)

        self.aboutAction = QtWidgets.QAction(self.tr("&About TS2..."), self)
        aboutActionTip = self.tr("About TS2")
        self.aboutAction.setToolTip(aboutActionTip)
        self.aboutAction.setStatusTip(aboutActionTip)
        self.aboutAction.triggered.connect(self._mainWindow.showAboutBox)

        self.aboutQtAction = QtWidgets.QAction(self.tr("About Qt..."), self)
        aboutQtTip = self.tr("About Qt")
        self.aboutQtAction.setToolTip(aboutQtTip)
        self.aboutQtAction.setStatusTip(aboutQtTip)
        self.aboutQtAction.triggered.connect(QtWidgets.QApplication.aboutQt)

        # Menu
        self.fileMenu = self.menuBar().addMenu(self.tr("&File"))
        self.fileMenu.addAction(self.newAction)
        self.fileMenu.addAction(self.openAction)
        self.fileMenu.addAction(self.saveAction)
        self.fileMenu.addAction(self.saveAsAction)
        self.fileMenu.addSeparator()
        self.fileMenu.addAction(self.closeAction)
        self.editMenu = self.menuBar().addMenu(self.tr("&Edit"))
        self.editMenu.addAction(self.panToolAction)
        self.editMenu.addAction(self.selectionToolAction)
        self.editMenu.addSeparator()
        self.editMenu.addAction(self.copyAction)
        self.editMenu.addAction(self.pasteAction)
        self.editMenu.addAction(self.deleteAction)
        self.editMenu.addSeparator()
        self.editMenu.addAction(self.selectAllAction)
        self.helpMenu = self.menuBar().addMenu(self.tr("&Help"))
        self.helpMenu.addAction(self.aboutAction)
        self.helpMenu.addAction(self.aboutQtAction)
        self.menuBar().setCursor(Qt.PointingHandCursor)
        self.updateMenus(0)

        # Status bar
        statusBar = QtWidgets.QStatusBar()
        self.setStatusBar(statusBar)

        # Dock Widgets
        # >> TrackItems panel: TI Library
        self.toolsPanel = QtWidgets.QDockWidget(self.tr("Tools"), self)
        self.toolsPanel.setObjectName("toolsPanel")
        self.toolsPanel.setFeatures(
            QtWidgets.QDockWidget.DockWidgetMovable |
            QtWidgets.QDockWidget.DockWidgetFloatable
        )
        self.trackItemsLibraryView = QtWidgets.QGraphicsView(self)
        self.trackItemsLibraryView.setBackgroundBrush(QtGui.QBrush(Qt.black))
        self.trackItemsLibraryView.setInteractive(True)
        self.trackItemsLibraryView.setRenderHint(QtGui.QPainter.Antialiasing,
                                                 False)
        self.trackItemsLibraryView.setDragMode(
            QtWidgets.QGraphicsView.ScrollHandDrag
        )
        self.trackItemsLibraryView.setAlignment(Qt.AlignLeft | Qt.AlignTop)
        # >> TrackItems panel: layout
        toolBoard = QtWidgets.QWidget(self)
        toolGrid = QtWidgets.QVBoxLayout()
        toolGrid.addWidget(self.trackItemsLibraryView)
        toolGrid.setSpacing(5)
        toolBoard.setLayout(toolGrid)
        self.toolsPanel.setWidget(toolBoard)
        self.addDockWidget(Qt.RightDockWidgetArea, self.toolsPanel)

        # >> Properties panel
        self.propertiesPanel = QtWidgets.QDockWidget(self.tr("Properties"),
                                                     self)
        self.propertiesPanel.setObjectName("propertiesPanel")
        self.propertiesPanel.setFeatures(
            QtWidgets.QDockWidget.DockWidgetMovable |
            QtWidgets.QDockWidget.DockWidgetFloatable
        )
        self.propertiesView = ts2.editor.views.PropertiesView(self)
        self.propertiesPanel.setWidget(self.propertiesView)
        self.addDockWidget(Qt.RightDockWidgetArea, self.propertiesPanel)

        # Central tab widget
        self.tabWidget = QtWidgets.QTabWidget(self)

        # ==========================================
        # General tab
        generalTab = QtWidgets.QWidget()
        titleLabel = QtWidgets.QLabel(self.tr("Simulation title: "),
                                      generalTab)
        self.titleTxt = QtWidgets.QLineEdit(generalTab)
        self.titleTxt.editingFinished.connect(self.updateTitle)
        descriptionLabel = QtWidgets.QLabel(self.tr("Description: "),
                                            generalTab)
        self.descriptionTxt = QtWidgets.QPlainTextEdit(generalTab)
        self.descriptionTxt.textChanged.connect(self.updateDescription)
        optionsLabel = QtWidgets.QLabel(self.tr("Options: "))
        self.optionsView = QtWidgets.QTableView(generalTab)

        fgrid = QtWidgets.QGridLayout()
        row = 0
        fgrid.addWidget(titleLabel, row, 0, Qt.AlignRight | Qt.AlignTop)
        fgrid.addWidget(self.titleTxt, row, 1)

        row += 1
        fgrid.addWidget(descriptionLabel, row, 0, Qt.AlignRight | Qt.AlignTop)
        fgrid.addWidget(self.descriptionTxt, row, 1)

        row += 1
        fgrid.addWidget(optionsLabel, row, 0, Qt.AlignRight | Qt.AlignTop)
        fgrid.addWidget(self.optionsView, row, 1)

        generalTab.setLayout(fgrid)
        fgrid.setColumnStretch(0, 0)
        fgrid.setColumnStretch(1, 4)
        fgrid.setRowStretch(0, 0)
        fgrid.setRowStretch(1, 1)
        fgrid.setRowStretch(2, 2)
        self.tabWidget.addTab(generalTab, self.tr("General"))

        # ==========================================
        # Scenery tab
        self.sceneryWidget = widgets.VBoxWidget()

        toolbarScenery = QtWidgets.QToolBar()
        self.sceneryWidget.addWidget(toolbarScenery)
        self.unlockSceneryBtn = QtWidgets.QPushButton(self.tr("Unlock Scenery"),
                                                      self.sceneryWidget)
        self.unlockSceneryBtn.setEnabled(False)
        toolbarScenery.addWidget(self.unlockSceneryBtn)

        self.validateSceneryBtn = QtWidgets.QPushButton(
            self.tr("Validate Scenery"), self.sceneryWidget
        )
        self.validateSceneryBtn.clicked.connect(self.validateSceneryBtnClicked)
        toolbarScenery.addWidget(self.validateSceneryBtn)

        self.zoomWidget = widgets.ZoomWidget(self.sceneryWidget)
        self.zoomWidget.valueChanged.connect(self.zoom)
        toolbarScenery.addWidget(self.zoomWidget)

        self.sceneryView = widgets.XGraphicsView(self.sceneryWidget)
        self.sceneryView.setInteractive(True)
        self.sceneryView.setRenderHint(QtGui.QPainter.Antialiasing, False)
        self.sceneryView.setDragMode(QtWidgets.QGraphicsView.ScrollHandDrag)
        self.sceneryView.setAcceptDrops(True)
        self.sceneryView.setBackgroundBrush(QtGui.QBrush(Qt.black))
        self.sceneryView.wheelChanged.connect(self.onSceneryViewWheelChanged)
        self.sceneryWidget.addWidget(self.sceneryView)

        self.tabWidget.addTab(self.sceneryWidget, self.tr("Scenery"))

        # ==========================================
        # Routes tab
        self.routesWidget = widgets.VBoxWidget()
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setVerticalStretch(1)
        self.routesGraphicView = QtWidgets.QGraphicsView(self.routesWidget)
        self.routesGraphicView.setInteractive(True)
        self.routesGraphicView.setRenderHint(QtGui.QPainter.Antialiasing,
                                             False)
        self.routesGraphicView.setDragMode(
            QtWidgets.QGraphicsView.ScrollHandDrag
        )
        self.routesGraphicView.setAcceptDrops(True)
        self.routesGraphicView.setBackgroundBrush(QtGui.QBrush(Qt.black))
        self.routesGraphicView.setSizePolicy(sizePolicy)
        self.addRouteBtn = QtWidgets.QPushButton(self.tr("Add Route"),
                                                 self.routesWidget)
        self.addRouteBtn.clicked.connect(self.addRouteBtnClicked)
        self.delRouteBtn = QtWidgets.QPushButton(self.tr("Delete Route"),
                                                 self.routesWidget)
        self.delRouteBtn.clicked.connect(self.delRouteBtnClicked)
        hgrid = QtWidgets.QHBoxLayout()
        hgrid.setContentsMargins(0, 0, 0, 0)
        hgrid.addWidget(self.addRouteBtn)
        hgrid.addWidget(self.delRouteBtn)
        hgrid.addStretch()
        self.routesView = ts2.editor.views.RoutesEditorView(self.routesWidget)

        self.routesWidget.addWidget(self.routesGraphicView)
        self.routesWidget.addLayout(hgrid)
        self.routesWidget.addWidget(self.routesView)
        self.routesWidget.setEnabled(False)
        self.tabWidget.addTab(self.routesWidget, self.tr("Routes"))

        # ==========================================
        # Train types tab
        self.trainTypesWidget = widgets.VBoxWidget()

        tbar = QtWidgets.QToolBar()
        self.trainTypesWidget.addWidget(tbar)

        tbg = widgets.ToolBarGroup(title="Train Types")
        tbar.addWidget(tbg)

        # add train
        self.addTrainTypeBtn = QtWidgets.QToolButton(self.trainTypesWidget)
        self.addTrainTypeBtn.setText(self.tr("Add new"))
        self.addTrainTypeBtn.clicked.connect(self.addTrainTypeBtnClicked)
        tbg.addWidget(self.addTrainTypeBtn)

        # remove train
        self.delTrainTypeBtn = QtWidgets.QToolButton(self.trainTypesWidget)
        self.delTrainTypeBtn.setText(self.tr("Remove"))
        self.delTrainTypeBtn.clicked.connect(self.delTrainTypeBtnClicked)
        tbg.addWidget(self.delTrainTypeBtn)

        self.trainTypesView = ts2.editor.views.TrainTypesEditorView(
            self.trainTypesWidget
        )
        self.trainTypesWidget.addWidget(self.trainTypesView)

        self.tabWidget.addTab(self.trainTypesWidget, self.tr("Rolling Stock"))

        # ===============================================================
        # Services tab
        # ===============================================================
        self.servicesTabWidget = widgets.VBoxWidget()
        tbarServices = QtWidgets.QToolBar()
        self.servicesTabWidget.addWidget(tbarServices)

        # ================
        # Service CRUD
        tbg = widgets.ToolBarGroup(title=self.tr("Services"))
        tbarServices.addWidget(tbg)

        # Add Service
        self.addServiceBtn = QtWidgets.QToolButton(self.servicesTabWidget)
        self.addServiceBtn.setText(self.tr("Add new"))
        self.addServiceBtn.clicked.connect(self.addServiceBtnClicked)
        tbg.addWidget(self.addServiceBtn)

        # Remove Service
        self.delServiceBtn = QtWidgets.QToolButton(self.servicesTabWidget)
        self.delServiceBtn.setText(self.tr("Remove"))
        self.delServiceBtn.clicked.connect(self.delServiceBtnClicked)
        tbg.addWidget(self.delServiceBtn)

        tbarServices.addSeparator()
        # ================
        # CSV
        tbg = widgets.ToolBarGroup(title=self.tr("CSV"))
        tbarServices.addWidget(tbg)

        # Export CSV
        self.exportServicesBtn = QtWidgets.QToolButton(self.servicesTabWidget)
        self.exportServicesBtn.setText(self.tr("Export"))
        self.exportServicesBtn.clicked.connect(self.exportServicesBtnClicked)
        tbg.addWidget(self.exportServicesBtn)

        # Import CSV
        self.importServicesBtn = QtWidgets.QToolButton(self.servicesTabWidget)
        self.importServicesBtn.setText(self.tr("Import"))
        self.importServicesBtn.clicked.connect(self.importServicesBtnClicked)
        tbg.addWidget(self.importServicesBtn)

        # Services Table
        self.servicesView = ts2.editor.views.ServicesEditorView(
            self.servicesTabWidget
        )
        self.servicesTabWidget.addWidget(self.servicesView)

        tbarServiceLines = QtWidgets.QToolBar()
        self.servicesTabWidget.addWidget(tbarServiceLines)

        tbg = widgets.ToolBarGroup()
        tbg.setTitle(self.tr("Lines"))
        tbarServiceLines.addWidget(tbg)

        # Append line button
        self.appendServiceLineBtn = QtWidgets.QToolButton(
            self.servicesTabWidget
        )
        self.appendServiceLineBtn.setText(self.tr("Append New"))
        self.appendServiceLineBtn.clicked.connect(
            self.appendServiceLineBtnClicked
        )
        tbg.addWidget(self.appendServiceLineBtn)

        # Insert line  button
        self.insertServiceLineBtn = QtWidgets.QToolButton(
            self.servicesTabWidget
        )
        self.insertServiceLineBtn.setText(self.tr("Insert New"))
        self.insertServiceLineBtn.clicked.connect(
            self.insertServiceLineBtnClicked
        )
        tbg.addWidget(self.insertServiceLineBtn)

        # Delete line  button
        self.deleteServiceLineBtn = QtWidgets.QToolButton(
            self.servicesTabWidget
        )
        self.deleteServiceLineBtn.setText(self.tr("Remove"))
        self.deleteServiceLineBtn.clicked.connect(self.delServiceLineBtnClicked)
        tbg.addWidget(self.deleteServiceLineBtn)

        # ServiceLines table
        self.serviceLinesView = ts2.editor.views.ServiceLinesEditorView(
            self.servicesTabWidget
        )
        self.serviceLinesView.setSelectionBehavior(
            QtWidgets.QAbstractItemView.SelectRows)
        self.serviceLinesView.setSelectionMode(
            QtWidgets.QAbstractItemView.SingleSelection)
        self.servicesTabWidget.addWidget(self.serviceLinesView)

        self.tabWidget.addTab(self.servicesTabWidget, self.tr("Services"))

        # ===============================================================
        # Train tab
        # ===============================================================
        trainsTab = QtWidgets.QWidget()
        self.setupTrainsBtn = QtWidgets.QPushButton(
            self.tr("Setup trains from services"), trainsTab
        )
        self.setupTrainsBtn.clicked.connect(self.setupTrainsBtnClicked)

        hgride = QtWidgets.QHBoxLayout()
        hgride.addWidget(self.setupTrainsBtn)
        hgride.addStretch()
        self.trainsGraphicsView = ts2.editor.views.TrainsGraphicsView(
            trainsTab
        )
        self.reverseTrainBtn = QtWidgets.QPushButton(
            self.tr("Reverse train direction"), trainsTab
        )
        self.reverseTrainBtn.clicked.connect(self.reverseTrainBtnClicked)
        hgridr = QtWidgets.QHBoxLayout()
        hgridr.addWidget(self.reverseTrainBtn)
        hgridr.addStretch()
        self.trainsView = ts2.editor.views.TrainsEditorView(trainsTab)
        self.addTrainBtn = QtWidgets.QPushButton(self.tr("Add new train"),
                                                 trainsTab)
        self.addTrainBtn.clicked.connect(self.addTrainBtnClicked)
        self.delTrainBtn = QtWidgets.QPushButton(self.tr("Remove train"),
                                                 trainsTab)
        self.delTrainBtn.clicked.connect(self.delTrainBtnClicked)
        hgrid = QtWidgets.QHBoxLayout()
        hgrid.addWidget(self.addTrainBtn)
        hgrid.addWidget(self.delTrainBtn)
        hgrid.addStretch()
        grid = QtWidgets.QVBoxLayout()
        grid.addLayout(hgride)
        grid.addWidget(self.trainsGraphicsView)
        grid.addLayout(hgridr)
        grid.addWidget(self.trainsView)
        grid.addLayout(hgrid)
        trainsTab.setLayout(grid)
        self.tabWidget.addTab(trainsTab, self.tr("Trains"))

        self.setCentralWidget(self.tabWidget)

        sbar = widgets.StatusBar()
        self.setStatusBar(sbar)

        settings.restoreWindow(self)
        self.onServiceViewSelectionChanged(None)
        self.onServiceLinesViewSelectionChanged()
        self.onTrainTypesSelectionChanged()

        if fileName:
            QtCore.QTimer.singleShot(100, self.onStartupTimeout)
Example #2
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(336, 886)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.line_3 = QtWidgets.QFrame(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.line_3.sizePolicy().hasHeightForWidth())
        self.line_3.setSizePolicy(sizePolicy)
        self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_3.setObjectName("line_3")
        self.horizontalLayout_6.addWidget(self.line_3)
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setScaledContents(False)
        self.label_2.setObjectName("label_2")
        self.horizontalLayout_6.addWidget(self.label_2)
        self.line_4 = QtWidgets.QFrame(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.line_4.sizePolicy().hasHeightForWidth())
        self.line_4.setSizePolicy(sizePolicy)
        self.line_4.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_4.setObjectName("line_4")
        self.horizontalLayout_6.addWidget(self.line_4)
        self.verticalLayout.addLayout(self.horizontalLayout_6)
        self.addRimLight_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.addRimLight_pushButton.sizePolicy().hasHeightForWidth())
        self.addRimLight_pushButton.setSizePolicy(sizePolicy)
        self.addRimLight_pushButton.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(False)
        font.setWeight(50)
        self.addRimLight_pushButton.setFont(font)
        self.addRimLight_pushButton.setObjectName("addRimLight_pushButton")
        self.verticalLayout.addWidget(self.addRimLight_pushButton)
        self.fileTextureManager_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.fileTextureManager_pushButton.setObjectName("fileTextureManager_pushButton")
        self.verticalLayout.addWidget(self.fileTextureManager_pushButton)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.line = QtWidgets.QFrame(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.line.sizePolicy().hasHeightForWidth())
        self.line.setSizePolicy(sizePolicy)
        self.line.setFrameShape(QtWidgets.QFrame.HLine)
        self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line.setObjectName("line")
        self.horizontalLayout_5.addWidget(self.line)
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setScaledContents(False)
        self.label.setObjectName("label")
        self.horizontalLayout_5.addWidget(self.label)
        self.line_2 = QtWidgets.QFrame(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.line_2.sizePolicy().hasHeightForWidth())
        self.line_2.setSizePolicy(sizePolicy)
        self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_2.setObjectName("line_2")
        self.horizontalLayout_5.addWidget(self.line_2)
        self.verticalLayout.addLayout(self.horizontalLayout_5)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.exportAlembic_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.exportAlembic_pushButton.sizePolicy().hasHeightForWidth())
        self.exportAlembic_pushButton.setSizePolicy(sizePolicy)
        self.exportAlembic_pushButton.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(False)
        font.setWeight(50)
        self.exportAlembic_pushButton.setFont(font)
        self.exportAlembic_pushButton.setObjectName("exportAlembic_pushButton")
        self.horizontalLayout_4.addWidget(self.exportAlembic_pushButton)
        self.importAlembic_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.importAlembic_pushButton.sizePolicy().hasHeightForWidth())
        self.importAlembic_pushButton.setSizePolicy(sizePolicy)
        self.importAlembic_pushButton.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(False)
        font.setWeight(50)
        self.importAlembic_pushButton.setFont(font)
        self.importAlembic_pushButton.setObjectName("importAlembic_pushButton")
        self.horizontalLayout_4.addWidget(self.importAlembic_pushButton)
        self.verticalLayout.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_10.setObjectName("horizontalLayout_10")
        self.connectAlembic_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.connectAlembic_pushButton.sizePolicy().hasHeightForWidth())
        self.connectAlembic_pushButton.setSizePolicy(sizePolicy)
        self.connectAlembic_pushButton.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(False)
        font.setWeight(50)
        self.connectAlembic_pushButton.setFont(font)
        self.connectAlembic_pushButton.setObjectName("connectAlembic_pushButton")
        self.horizontalLayout_10.addWidget(self.connectAlembic_pushButton)
        self.verticalLayout.addLayout(self.horizontalLayout_10)
        self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_8.setObjectName("horizontalLayout_8")
        self.line_7 = QtWidgets.QFrame(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.line_7.sizePolicy().hasHeightForWidth())
        self.line_7.setSizePolicy(sizePolicy)
        self.line_7.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_7.setObjectName("line_7")
        self.horizontalLayout_8.addWidget(self.line_7)
        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setScaledContents(False)
        self.label_4.setObjectName("label_4")
        self.horizontalLayout_8.addWidget(self.label_4)
        self.line_8 = QtWidgets.QFrame(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.line_8.sizePolicy().hasHeightForWidth())
        self.line_8.setSizePolicy(sizePolicy)
        self.line_8.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_8.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_8.setObjectName("line_8")
        self.horizontalLayout_8.addWidget(self.line_8)
        self.verticalLayout.addLayout(self.horizontalLayout_8)
        self.arnoldLoad_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.arnoldLoad_pushButton.sizePolicy().hasHeightForWidth())
        self.arnoldLoad_pushButton.setSizePolicy(sizePolicy)
        self.arnoldLoad_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldLoad_pushButton.setObjectName("arnoldLoad_pushButton")
        self.verticalLayout.addWidget(self.arnoldLoad_pushButton)
        self.line_12 = QtWidgets.QFrame(self.centralwidget)
        self.line_12.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_12.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_12.setObjectName("line_12")
        self.verticalLayout.addWidget(self.line_12)
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setObjectName("label_7")
        self.verticalLayout.addWidget(self.label_7)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.arnoldAddProxyMat_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.arnoldAddProxyMat_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldAddProxyMat_pushButton.setObjectName("arnoldAddProxyMat_pushButton")
        self.horizontalLayout_2.addWidget(self.arnoldAddProxyMat_pushButton)
        self.arnoldDeleteProxyMat_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.arnoldDeleteProxyMat_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldDeleteProxyMat_pushButton.setObjectName("arnoldDeleteProxyMat_pushButton")
        self.horizontalLayout_2.addWidget(self.arnoldDeleteProxyMat_pushButton)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.transferShading_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.transferShading_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.transferShading_pushButton.setObjectName("transferShading_pushButton")
        self.verticalLayout.addWidget(self.transferShading_pushButton)
        self.autoAsignShaders_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.autoAsignShaders_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.autoAsignShaders_pushButton.setObjectName("autoAsignShaders_pushButton")
        self.verticalLayout.addWidget(self.autoAsignShaders_pushButton)
        self.nMakeTx_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.nMakeTx_pushButton.setObjectName("nMakeTx_pushButton")
        self.verticalLayout.addWidget(self.nMakeTx_pushButton)
        self.line_10 = QtWidgets.QFrame(self.centralwidget)
        self.line_10.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_10.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_10.setObjectName("line_10")
        self.verticalLayout.addWidget(self.line_10)
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setObjectName("label_6")
        self.verticalLayout.addWidget(self.label_6)
        self.leaveProxy_checkBox = QtWidgets.QCheckBox(self.centralwidget)
        self.leaveProxy_checkBox.setObjectName("leaveProxy_checkBox")
        self.verticalLayout.addWidget(self.leaveProxy_checkBox)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.arnoldConvertToStandard_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.arnoldConvertToStandard_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldConvertToStandard_pushButton.setObjectName("arnoldConvertToStandard_pushButton")
        self.horizontalLayout.addWidget(self.arnoldConvertToStandard_pushButton)
        self.arnoldConvertToAlSurface_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.arnoldConvertToAlSurface_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldConvertToAlSurface_pushButton.setObjectName("arnoldConvertToAlSurface_pushButton")
        self.horizontalLayout.addWidget(self.arnoldConvertToAlSurface_pushButton)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.line_5 = QtWidgets.QFrame(self.centralwidget)
        self.line_5.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_5.setObjectName("line_5")
        self.verticalLayout.addWidget(self.line_5)
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setObjectName("label_5")
        self.verticalLayout.addWidget(self.label_5)
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.arnoldIdLayer_spinBox = QtWidgets.QSpinBox(self.centralwidget)
        self.arnoldIdLayer_spinBox.setMaximumSize(QtCore.QSize(40, 16777215))
        self.arnoldIdLayer_spinBox.setMinimum(1)
        self.arnoldIdLayer_spinBox.setObjectName("arnoldIdLayer_spinBox")
        self.gridLayout.addWidget(self.arnoldIdLayer_spinBox, 1, 5, 1, 1)
        self.idGreen_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.idGreen_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(8, 162, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(8, 162, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
        self.idGreen_pushButton.setPalette(palette)
        self.idGreen_pushButton.setObjectName("idGreen_pushButton")
        self.gridLayout.addWidget(self.idGreen_pushButton, 1, 2, 1, 1)
        self.idRed_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.idRed_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(206, 0, 3))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(206, 0, 3))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
        self.idRed_pushButton.setPalette(palette)
        self.idRed_pushButton.setObjectName("idRed_pushButton")
        self.gridLayout.addWidget(self.idRed_pushButton, 1, 1, 1, 1)
        self.label_9 = QtWidgets.QLabel(self.centralwidget)
        self.label_9.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.label_9.setObjectName("label_9")
        self.gridLayout.addWidget(self.label_9, 1, 4, 1, 1)
        self.idBlue_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.idBlue_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(0, 4, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 4, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
        self.idBlue_pushButton.setPalette(palette)
        self.idBlue_pushButton.setObjectName("idBlue_pushButton")
        self.gridLayout.addWidget(self.idBlue_pushButton, 1, 3, 1, 1)
        self.verticalLayout.addLayout(self.gridLayout)
        self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_11.setObjectName("horizontalLayout_11")
        self.arnoldAddObjID_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.arnoldAddObjID_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldAddObjID_pushButton.setObjectName("arnoldAddObjID_pushButton")
        self.horizontalLayout_11.addWidget(self.arnoldAddObjID_pushButton)
        self.arnoldRemObjID_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.arnoldRemObjID_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldRemObjID_pushButton.setObjectName("arnoldRemObjID_pushButton")
        self.horizontalLayout_11.addWidget(self.arnoldRemObjID_pushButton)
        self.verticalLayout.addLayout(self.horizontalLayout_11)
        self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_9.setObjectName("horizontalLayout_9")
        self.arnoldAddShaderID_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.arnoldAddShaderID_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldAddShaderID_pushButton.setObjectName("arnoldAddShaderID_pushButton")
        self.horizontalLayout_9.addWidget(self.arnoldAddShaderID_pushButton)
        self.arnoldRemShaderID_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.arnoldRemShaderID_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldRemShaderID_pushButton.setObjectName("arnoldRemShaderID_pushButton")
        self.horizontalLayout_9.addWidget(self.arnoldRemShaderID_pushButton)
        self.verticalLayout.addLayout(self.horizontalLayout_9)
        self.line_11 = QtWidgets.QFrame(self.centralwidget)
        self.line_11.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_11.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_11.setObjectName("line_11")
        self.verticalLayout.addWidget(self.line_11)
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setObjectName("label_3")
        self.verticalLayout.addWidget(self.label_3)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.arnoldSubdivision_none = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.arnoldSubdivision_none.sizePolicy().hasHeightForWidth())
        self.arnoldSubdivision_none.setSizePolicy(sizePolicy)
        self.arnoldSubdivision_none.setMinimumSize(QtCore.QSize(0, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(False)
        font.setWeight(50)
        self.arnoldSubdivision_none.setFont(font)
        self.arnoldSubdivision_none.setObjectName("arnoldSubdivision_none")
        self.horizontalLayout_3.addWidget(self.arnoldSubdivision_none)
        self.arnoldSubdivision_catclark = QtWidgets.QPushButton(self.centralwidget)
        self.arnoldSubdivision_catclark.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldSubdivision_catclark.setObjectName("arnoldSubdivision_catclark")
        self.horizontalLayout_3.addWidget(self.arnoldSubdivision_catclark)
        self.arnoldSubdivision_linear = QtWidgets.QPushButton(self.centralwidget)
        self.arnoldSubdivision_linear.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldSubdivision_linear.setObjectName("arnoldSubdivision_linear")
        self.horizontalLayout_3.addWidget(self.arnoldSubdivision_linear)
        self.arnoldSubdivision_spinBox = QtWidgets.QSpinBox(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.arnoldSubdivision_spinBox.sizePolicy().hasHeightForWidth())
        self.arnoldSubdivision_spinBox.setSizePolicy(sizePolicy)
        self.arnoldSubdivision_spinBox.setMaximumSize(QtCore.QSize(40, 16777215))
        self.arnoldSubdivision_spinBox.setProperty("value", 2)
        self.arnoldSubdivision_spinBox.setObjectName("arnoldSubdivision_spinBox")
        self.horizontalLayout_3.addWidget(self.arnoldSubdivision_spinBox)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.label_11 = QtWidgets.QLabel(self.centralwidget)
        self.label_11.setObjectName("label_11")
        self.verticalLayout.addWidget(self.label_11)
        self.horizontalLayout_12 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_12.setObjectName("horizontalLayout_12")
        self.arnoldOpaque_checkBox = QtWidgets.QCheckBox(self.centralwidget)
        self.arnoldOpaque_checkBox.setObjectName("arnoldOpaque_checkBox")
        self.horizontalLayout_12.addWidget(self.arnoldOpaque_checkBox)
        self.arnoldSelfShad_checkBox = QtWidgets.QCheckBox(self.centralwidget)
        self.arnoldSelfShad_checkBox.setChecked(True)
        self.arnoldSelfShad_checkBox.setObjectName("arnoldSelfShad_checkBox")
        self.horizontalLayout_12.addWidget(self.arnoldSelfShad_checkBox)
        self.arnoldInDiff_checkBox = QtWidgets.QCheckBox(self.centralwidget)
        self.arnoldInDiff_checkBox.setChecked(True)
        self.arnoldInDiff_checkBox.setObjectName("arnoldInDiff_checkBox")
        self.horizontalLayout_12.addWidget(self.arnoldInDiff_checkBox)
        self.arnoldInSpec_checkBox = QtWidgets.QCheckBox(self.centralwidget)
        self.arnoldInSpec_checkBox.setChecked(True)
        self.arnoldInSpec_checkBox.setTristate(False)
        self.arnoldInSpec_checkBox.setObjectName("arnoldInSpec_checkBox")
        self.horizontalLayout_12.addWidget(self.arnoldInSpec_checkBox)
        self.arnoldMatte_checkBox = QtWidgets.QCheckBox(self.centralwidget)
        self.arnoldMatte_checkBox.setObjectName("arnoldMatte_checkBox")
        self.horizontalLayout_12.addWidget(self.arnoldMatte_checkBox)
        self.verticalLayout.addLayout(self.horizontalLayout_12)
        self.arnoldAddAttrs_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.arnoldAddAttrs_pushButton.setMinimumSize(QtCore.QSize(0, 25))
        self.arnoldAddAttrs_pushButton.setObjectName("arnoldAddAttrs_pushButton")
        self.verticalLayout.addWidget(self.arnoldAddAttrs_pushButton)
        self.line_9 = QtWidgets.QFrame(self.centralwidget)
        self.line_9.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_9.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_9.setObjectName("line_9")
        self.verticalLayout.addWidget(self.line_9)
        self.label_8 = QtWidgets.QLabel(self.centralwidget)
        self.label_8.setObjectName("label_8")
        self.verticalLayout.addWidget(self.label_8)
        self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        self.alLightGroup_1_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.alLightGroup_1_pushButton.sizePolicy().hasHeightForWidth())
        self.alLightGroup_1_pushButton.setSizePolicy(sizePolicy)
        self.alLightGroup_1_pushButton.setMinimumSize(QtCore.QSize(30, 30))
        self.alLightGroup_1_pushButton.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.alLightGroup_1_pushButton.setObjectName("alLightGroup_1_pushButton")
        self.horizontalLayout_7.addWidget(self.alLightGroup_1_pushButton)
        self.alLightGroup_2_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.alLightGroup_2_pushButton.sizePolicy().hasHeightForWidth())
        self.alLightGroup_2_pushButton.setSizePolicy(sizePolicy)
        self.alLightGroup_2_pushButton.setMinimumSize(QtCore.QSize(30, 30))
        self.alLightGroup_2_pushButton.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.alLightGroup_2_pushButton.setObjectName("alLightGroup_2_pushButton")
        self.horizontalLayout_7.addWidget(self.alLightGroup_2_pushButton)
        self.alLightGroup_3_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.alLightGroup_3_pushButton.sizePolicy().hasHeightForWidth())
        self.alLightGroup_3_pushButton.setSizePolicy(sizePolicy)
        self.alLightGroup_3_pushButton.setMinimumSize(QtCore.QSize(30, 30))
        self.alLightGroup_3_pushButton.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.alLightGroup_3_pushButton.setObjectName("alLightGroup_3_pushButton")
        self.horizontalLayout_7.addWidget(self.alLightGroup_3_pushButton)
        self.alLightGroup_4_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.alLightGroup_4_pushButton.sizePolicy().hasHeightForWidth())
        self.alLightGroup_4_pushButton.setSizePolicy(sizePolicy)
        self.alLightGroup_4_pushButton.setMinimumSize(QtCore.QSize(30, 30))
        self.alLightGroup_4_pushButton.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.alLightGroup_4_pushButton.setObjectName("alLightGroup_4_pushButton")
        self.horizontalLayout_7.addWidget(self.alLightGroup_4_pushButton)
        self.alLightGroup_5_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.alLightGroup_5_pushButton.sizePolicy().hasHeightForWidth())
        self.alLightGroup_5_pushButton.setSizePolicy(sizePolicy)
        self.alLightGroup_5_pushButton.setMinimumSize(QtCore.QSize(30, 30))
        self.alLightGroup_5_pushButton.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.alLightGroup_5_pushButton.setObjectName("alLightGroup_5_pushButton")
        self.horizontalLayout_7.addWidget(self.alLightGroup_5_pushButton)
        self.alLightGroup_6_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.alLightGroup_6_pushButton.sizePolicy().hasHeightForWidth())
        self.alLightGroup_6_pushButton.setSizePolicy(sizePolicy)
        self.alLightGroup_6_pushButton.setMinimumSize(QtCore.QSize(30, 30))
        self.alLightGroup_6_pushButton.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.alLightGroup_6_pushButton.setObjectName("alLightGroup_6_pushButton")
        self.horizontalLayout_7.addWidget(self.alLightGroup_6_pushButton)
        self.alLightGroup_7_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.alLightGroup_7_pushButton.sizePolicy().hasHeightForWidth())
        self.alLightGroup_7_pushButton.setSizePolicy(sizePolicy)
        self.alLightGroup_7_pushButton.setMinimumSize(QtCore.QSize(30, 30))
        self.alLightGroup_7_pushButton.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.alLightGroup_7_pushButton.setObjectName("alLightGroup_7_pushButton")
        self.horizontalLayout_7.addWidget(self.alLightGroup_7_pushButton)
        self.alLightGroup_8_pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.alLightGroup_8_pushButton.sizePolicy().hasHeightForWidth())
        self.alLightGroup_8_pushButton.setSizePolicy(sizePolicy)
        self.alLightGroup_8_pushButton.setMinimumSize(QtCore.QSize(30, 30))
        self.alLightGroup_8_pushButton.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.alLightGroup_8_pushButton.setObjectName("alLightGroup_8_pushButton")
        self.horizontalLayout_7.addWidget(self.alLightGroup_8_pushButton)
        self.verticalLayout.addLayout(self.horizontalLayout_7)
        spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem)
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
Example #3
0
    def default(node, painter, option, widget):
        frame = QtCore.QRectF(QtCore.QPointF(0, 0), node.geometry().size())
        # use 3 levels of detail
        lod = node.canvasRef().getLodValueFromCurrentScale(3)
        SWITCH_LOD = 3

        color = node.color

        color.setAlpha(230)
        if node.isSelected():
            color = color.lighter(150)
        if node.isTemp:
            color = color.lighter(50)
            color.setAlpha(50)

        br = QtGui.QBrush(color)
        painter.setBrush(br)

        pen = QtGui.QPen(QtCore.Qt.black, 0.5)
        painter.setPen(QtCore.Qt.NoPen)

        r = frame
        if lod < SWITCH_LOD:
            r.setWidth(r.width() - pen.width() / 2)
            r.setHeight(r.height() - pen.width() / 2)
            r.setX(pen.width() / 2)
            r.setY(r.y() + pen.width() / 2)
            painter.drawRoundedRect(r, node.roundness, node.roundness)
        else:
            painter.drawRect(r)

        br = QtGui.QBrush()
        painter.setBrush(br)
        if node.drawlabel:
            lr = QtCore.QRectF(r)
            lr.setHeight(node.labelHeight + NodeDefaults().CONTENT_MARGINS / 2)
            headColor = node.headColor
            if node.isTemp:
                headColor = headColor.lighter(50)
                headColor.setAlpha(50)
            if lod < SWITCH_LOD:
                b = QtGui.QLinearGradient(0, 0, lr.width(), 0)
                b.setColorAt(0, headColor.lighter(60))
                b.setColorAt(0.5, headColor)
                b.setColorAt(1, headColor.darker(50))
                path = QtGui.QPainterPath()
                path.setFillRule(QtCore.Qt.WindingFill)
                path.addRoundedRect(lr, node.roundness, node.roundness)
                lr.setY(lr.y() + node.roundness)
                path.addRect(lr)
                painter.fillPath(path, b)
            else:
                painter.fillRect(lr, headColor)

        if not node.isValid():
            pen.setColor(InvalidNodePenColor)
            pen.setStyle(node.optPenErrorType)
            pen.setWidth(pen.width() * 1.5)
        elif not node.bExposeInputsToCompound:
            if option.state & QStyle.State_Selected:
                pen.setColor(InteractiveColor)
                pen.setStyle(node.optPenSelectedType)
                pen.setWidth(pen.width() * 1.5)
        else:
            pen.setColor(ExposedPropertiesColor)
            pen.setStyle(node.optPenSelectedType)
            pen.setWidth(pen.width() * 1.5)

        painter.setPen(pen)
        painter.setBrush(QtGui.QColor(0, 0, 0, 0))
        if lod < SWITCH_LOD:
            painter.drawRoundedRect(r, node.roundness, node.roundness)
        else:
            painter.drawRect(r)

        NodePainter.drawResizeHandles(node, painter, option, widget)
        NodePainter.drawGroups(node, painter, option, widget)
Example #4
0
    def draw_title(self, painter, lod=1.):
        """Draw title of the node. Called exclusively in paint.

        :param painter: painter from paint.
        :type painter: QtGui.QPainter
        """
        # draw bg
        painter.setPen(QtCore.Qt.NoPen)
        bg = painter.background()
        bgm = painter.backgroundMode()
        if self.error_item:
            self.scene().removeItem(self.error_item)
            self.error_item.deleteLater()
        self.error_item = None
        if self.is_real:
            painter.setBackgroundMode(QtCore.Qt.OpaqueMode)
        else:
            painter.setBackgroundMode(QtCore.Qt.TransparentMode)
            [c.setAlphaF(self.color_alpha) for c in self.colors]
        color_count = len(self.colors)
        color_band_width = 10
        for i in range(color_count):
            color = self.colors[i]
            if self.is_proxy:
                painter.setBackground(color.darker(self.dim_factor))
                brush = QtGui.QBrush(color.darker(self.dim_factor * 2),
                                     QtCore.Qt.FDiagPattern)
                painter.setBrush(brush)
            else:
                painter.setBrush(color.darker(self.dim_factor))
            # Top Opinion
            if i + 1 == color_count:
                remaining_width = self.max_width - (i * color_band_width)
                painter.drawRect(0, 0, remaining_width, self.title_rect_height)
            # Lower Opinions
            else:
                x_pos = self.max_width - (i + 1) * color_band_width
                painter.drawRect(x_pos, 0, color_band_width,
                                 self.title_rect_height)
        painter.setBackground(bg)
        painter.setBackgroundMode(bgm)
        # draw exec plugs
        exec_attr = nxt_node.INTERNAL_ATTRS.EXECUTE_IN
        exec_in_pos = self.get_attr_in_pos(exec_attr, scene=False)
        exec_radius = self.EXEC_PLUG_RADIUS
        if nxt_path.get_parent_path(self.node_path) == nxt_path.WORLD:
            if self.is_start:
                color = self.start_color
            elif self.is_break:
                color = QtCore.Qt.red
            else:
                color = QtCore.Qt.white
            if not self.exec_in_plug:
                is_break = self.is_break
                if self.is_start:
                    is_break = False
                self.exec_in_plug = NodeGraphicsPlug(pos=exec_in_pos,
                                                     radius=exec_radius,
                                                     color=color,
                                                     is_exec=True,
                                                     is_input=True,
                                                     is_break=is_break,
                                                     is_start=self.is_start)
                self.exec_in_plug.setParentItem(self)
            else:
                self.exec_in_plug.color = QtGui.QColor(color)
                self.exec_in_plug.is_break = self.is_break
                self.exec_in_plug.is_start = self.is_start
                self.exec_in_plug.setPos(exec_in_pos)
                self.exec_in_plug.update()

            out_pos = self.get_attr_out_pos(exec_attr, scene=False)
            if not self.exec_out_plug:
                self.exec_out_plug = NodeGraphicsPlug(pos=out_pos,
                                                      radius=exec_radius,
                                                      color=QtCore.Qt.white,
                                                      is_exec=True,
                                                      is_input=False)
                self.exec_out_plug.setParentItem(self)
            else:
                self.exec_out_plug.setPos(out_pos)
        else:
            if not self.exec_in_plug and self.is_break:
                self.exec_in_plug = NodeGraphicsPlug(pos=exec_in_pos,
                                                     radius=exec_radius,
                                                     color=QtCore.Qt.red,
                                                     is_exec=True,
                                                     is_input=True,
                                                     is_break=self.is_break)
                self.exec_in_plug.setParentItem(self)
            elif self.exec_in_plug and not self.is_break:
                self.scene().removeItem(self.exec_in_plug)
                self.exec_in_plug = None

            if self.exec_out_plug:
                self.scene().removeItem(self.exec_out_plug)
                self.exec_out_plug = None
        if lod > MIN_LOD:
            # draw attr dots
            offset = -6
            for fill in self.attr_dots:
                painter.setBrush(QtCore.Qt.white)
                if fill:
                    painter.setBrush(QtCore.Qt.white)
                else:
                    painter.setBrush(QtCore.Qt.NoBrush)
                dots_color = QtGui.QColor(QtCore.Qt.white).darker(
                    self.dim_factor)
                painter.setPen(QtGui.QPen(dots_color, 0.5))
                dot_x = self.max_width - 15
                dot_y = (self.title_rect_height / 2) + offset
                painter.drawEllipse(QtCore.QPointF(dot_x, dot_y), 2, 2)
                offset += 6

        # draw title

        painter.setFont(self.title_font)
        title_str = nxt_path.node_name_from_node_path(self.node_path)
        font_metrics = QtGui.QFontMetrics(self.title_font)
        width = self.max_width - 40
        if self.error_list:
            width -= 20
        if lod > MIN_LOD:
            painter.setPen(
                QtGui.QColor(QtCore.Qt.white).darker(self.dim_factor))
            if not self.node_enabled:
                painter.setPen(QtGui.QColor(QtCore.Qt.white).darker(150))
            title = font_metrics.elidedText(title_str, QtCore.Qt.ElideRight,
                                            width)
            painter.drawText(15, 0, self.max_width - 15,
                             self.title_rect_height, QtCore.Qt.AlignVCenter,
                             title)
        else:
            painter.setBrush(
                QtGui.QColor(QtCore.Qt.white).darker(self.dim_factor))
            if not self.node_enabled:
                painter.setBrush(QtGui.QColor(QtCore.Qt.white).darker(150))
            proxy_rect = font_metrics.boundingRect(title_str)
            r_width = proxy_rect.width() * .8
            height = proxy_rect.height()
            painter.drawRect(15, height * .8, min(r_width, width), height * .2)

        if lod > MIN_LOD:
            # draw error
            if self.error_list:
                pos = QtCore.QPointF(self.max_width - 45,
                                     self.title_rect_height / 4)
                error_item = ErrorItem(font=QtGui.QFont('Roboto', 16, 75),
                                       pos=pos,
                                       text='!')
                error_item.setParentItem(self)
                error_item.setZValue(50)
                self.error_item = error_item

        # draw collapse state arrow
        for arrow in self.collapse_arrows:
            self.scene().removeItem(arrow)
        if lod > MIN_LOD:
            self.collapse_arrows = []
            # TODO calculation needed arrows should be done outside drawing

            if self.collapse_state:
                des_colors = self.model.get_descendant_colors(self.node_path)
                filled = self.model.has_children(self.node_path)
                if not filled:
                    des_colors = [QtCore.Qt.white]
                elif not des_colors:
                    disp = self.model.comp_layer
                    des_colors = [
                        self.model.get_node_color(self.node_path, disp)
                    ]
                i = 0
                num = len(des_colors)
                for c in des_colors:
                    arrow = CollapseArrow(self, filled=filled, color=c)
                    arrow_width = arrow.width * 1.1
                    center_offset = (arrow_width * (num * .5) -
                                     arrow_width * .5)
                    cur_offset = (i * arrow_width)
                    pos = ((self.max_width * .5) + center_offset - cur_offset)
                    arrow.setPos(pos, self.boundingRect().height())
                    self.collapse_arrows += [arrow]
                    i += 1
Example #5
0
 def paint_foreground(self):
     """
     Paint the current item with the appropriate foreground color.
     """
     self.setForeground(QtGui.QBrush(QtGui.QColor(self.parent.text_color)))
Example #6
0
    def default(node, painter, option, widget):
        frame = QtCore.QRectF(QtCore.QPointF(0, 0), node.geometry().size())
        # use 3 levels of detail
        lod = node.canvasRef().getLodValueFromCurrentScale(3)
        SWITCH_LOD = 3

        color = node.color
        color.setAlpha(230)
        if node.isSelected():
            color = color.lighter(150)
        if node.isTemp:
            color = color.lighter(50)
            color.setAlpha(50)

        br = QtGui.QBrush(color)
        painter.setBrush(br)

        pen = QtGui.QPen(QtCore.Qt.black, 0.5)
        painter.setPen(QtCore.Qt.NoPen)

        r = frame
        if lod < SWITCH_LOD:
            r.setWidth(r.width() - pen.width())
            r.setHeight(r.height() - pen.width())
            r.setX(pen.width())
            r.setY(r.y() + pen.width())
            painter.drawRoundedRect(r,
                                    NodeDefaults().CORNERS_ROUND_FACTOR,
                                    NodeDefaults().CORNERS_ROUND_FACTOR)
        else:
            painter.drawRect(r)

        br = QtGui.QBrush()
        painter.setBrush(br)
        if node.drawlabel:
            lr = QtCore.QRectF(r)
            lr.setHeight(node.labelHeight + NodeDefaults().CONTENT_MARGINS / 2)
            headColor = node.headColor
            if node.isTemp:
                headColor = headColor.lighter(50)
                headColor.setAlpha(50)
            if lod < SWITCH_LOD:
                b = QtGui.QLinearGradient(0, 0, lr.width(), 0)
                b.setColorAt(0, headColor.lighter(60))
                b.setColorAt(0.5, headColor)
                b.setColorAt(1, headColor.darker(50))
                path = QtGui.QPainterPath()
                path.setFillRule(QtCore.Qt.WindingFill)
                path.addRoundedRect(lr,
                                    NodeDefaults().CORNERS_ROUND_FACTOR,
                                    NodeDefaults().CORNERS_ROUND_FACTOR)
                lr.setY(lr.y() + NodeDefaults().CORNERS_ROUND_FACTOR)
                path.addRect(lr)
                painter.fillPath(path, b)
            else:
                painter.fillRect(lr, headColor)

        if option.state & QStyle.State_Selected:
            # pen.setColor(Colors.Yellow)
            pen.setColor(
                node.canvasRef().window().styleSheetEditor.style.MainColor)
            pen.setStyle(node.opt_pen_selected_type)
            pen.setWidth(pen.width() * 1.5)
        painter.setPen(pen)
        painter.setBrush(QtGui.QColor(0, 0, 0, 0))
        if lod < SWITCH_LOD:
            painter.drawRoundedRect(r,
                                    NodeDefaults().CORNERS_ROUND_FACTOR,
                                    NodeDefaults().CORNERS_ROUND_FACTOR)
        else:
            painter.drawRect(r)

        NodePainter.drawResizeHandles(node, painter, option, widget)
Example #7
0
 def setBackgroundColor(self, color):
     # Qt.py doesn't handle this, so maintain compatibility
     try:
         super(LogRecordItem, self).setBackgroundColor(color)
     except AttributeError:
         self.setBackground(QtGui.QBrush(color))