Example #1
0
    def __init__(self, parent=None):
        super(SequencerWidget, self).__init__(parent)
        self.splitter = QtWidgets.QSplitter(self)

        self.logger = logging.getLogger()
        self.logger.setLevel(logging.DEBUG)
        self.ae_view = AttributeEditor(self)

        self.dgnodes = [n for n in pm.ls(type='shot')]
        # self.list_model = DependListModel(self.dgnodes, parent=self)
        self.dependency_model = DependTableModel(self.dgnodes, parent=parent)
        self.selection_model = QtCore.QItemSelectionModel(self.dependency_model)

        self.list_view = QtWidgets.QListView(self)
        self.table_view = QtWidgets.QTableView(self)
        
        self.list_view.setModel(self.dependency_model)
        self.table_view.setModel(self.dependency_model)
        
        self.table_view.setSelectionModel(self.selection_model)
        self.list_view.setSelectionModel(self.selection_model)
        self.table_view.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
        self.table_view.setSortingEnabled(True)
        self.table_view.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)

        self.cameras = cmds.ls(type='camera')
        self.cameras_delegate = ComboBoxDelegate(self.table_view, self.cameras)
        self.table_view.setItemDelegateForColumn(3, self.cameras_delegate)

        self.data_mapper = QtWidgets.QDataWidgetMapper()
        self.data_mapper.setSubmitPolicy(QtWidgets.QDataWidgetMapper.AutoSubmit)
        self.data_mapper.setModel(self.dependency_model)
        self.data_mapper.addMapping(self.ae_view.object_name_txt, 0, 'text')
        self.data_mapper.addMapping(self.ae_view.start_frame, 1, 'text')
        self.data_mapper.addMapping(self.ae_view.end_frame, 2, 'text')
        self.data_mapper.addMapping(self.ae_view.camera_combo, 3, "currentText")

        self.splitter.addWidget(self.list_view)
        self.splitter.addWidget(self.table_view)
        self.splitter.addWidget(self.ae_view)
        self.splitter.setStretchFactor(0, 0)

        self.setCentralWidget(self.splitter)

        self.setWindowTitle("Camera Sequencer")
        self.resize(800, 500)

        self.table_view.clicked.connect(self.set_ae_view)