def setupUi(self, ExportOptions): ExportOptions.setObjectName("ExportOptions") ExportOptions.resize(339, 266) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( ExportOptions.sizePolicy().hasHeightForWidth()) ExportOptions.setSizePolicy(sizePolicy) self.verticalLayout = QtWidgets.QVBoxLayout(ExportOptions) self.verticalLayout.setSpacing(3) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.optionsPlaceHolderLayout = QtWidgets.QHBoxLayout() self.optionsPlaceHolderLayout.setObjectName("optionsPlaceHolderLayout") self.verticalLayout.addLayout(self.optionsPlaceHolderLayout) self.label_4 = QtWidgets.QLabel(ExportOptions) self.label_4.setObjectName("label_4") self.verticalLayout.addWidget(self.label_4) self.gridLayout_4 = QtWidgets.QGridLayout() self.gridLayout_4.setObjectName("gridLayout_4") self.thumbnailLineEdit = QtWidgets.QLineEdit(ExportOptions) self.thumbnailLineEdit.setObjectName("thumbnailLineEdit") self.gridLayout_4.addWidget(self.thumbnailLineEdit, 2, 0, 1, 1) self.pushButton = QtWidgets.QPushButton(ExportOptions) self.pushButton.setObjectName("pushButton") self.gridLayout_4.addWidget(self.pushButton, 2, 1, 1, 1) self.screenshotButton = QtWidgets.QPushButton(ExportOptions) self.screenshotButton.setObjectName("screenshotButton") self.gridLayout_4.addWidget(self.screenshotButton, 2, 2, 1, 1) self.verticalLayout.addLayout(self.gridLayout_4) self.label_5 = QtWidgets.QLabel(ExportOptions) self.label_5.setObjectName("label_5") self.verticalLayout.addWidget(self.label_5) self.commentTextEdit = QtWidgets.QPlainTextEdit(ExportOptions) self.commentTextEdit.setMaximumSize(QtCore.QSize(16777215, 80)) self.commentTextEdit.setObjectName("commentTextEdit") self.verticalLayout.addWidget(self.commentTextEdit) self.publishButton = QtWidgets.QPushButton(ExportOptions) self.publishButton.setObjectName("publishButton") self.verticalLayout.addWidget(self.publishButton) self.progressBar = QtWidgets.QProgressBar(ExportOptions) self.progressBar.setProperty("value", 24) self.progressBar.setObjectName("progressBar") self.verticalLayout.addWidget(self.progressBar) self.publishMessageLabel = QtWidgets.QLabel(ExportOptions) self.publishMessageLabel.setText("") self.publishMessageLabel.setObjectName("publishMessageLabel") self.verticalLayout.addWidget(self.publishMessageLabel) spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) self.retranslateUi(ExportOptions) QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), ExportOptions.setThumbnailFilename) QtCore.QObject.connect(self.screenshotButton, QtCore.SIGNAL("clicked()"), ExportOptions.takeScreenshot) QtCore.QMetaObject.connectSlotsByName(ExportOptions)
def onActionButtonClicked(self, row): '''Handle transfer request.''' column = self.columns.index actionItem = self.cellWidget(row, column('Action')) # TODO: Make more robust test. if actionItem.text() == 'Import': self.importComponentSignal.emit(row) elif actionItem.text() == 'Transfer': locationItem = self.cellWidget(row, column('Location')) locationItem.setEnabled(False) location = locationItem.itemData(locationItem.currentIndex()) componentItem = self.item(row, column('Component')) component_id = componentItem.data(self.COMPONENT_ROLE) ftrack_component = self.session.get('Component', component_id) # Unfortunately, this will destroy the push button, so have to # recreate it afterwards. If Qt adds a takeCellWidget this can be # improved. transferProgressItem = QtWidgets.QProgressBar() transferProgressItem.setTextVisible(False) self.setCellWidget(row, self.columns.index('Action'), transferProgressItem) transferProgressItem.setRange(0, 0) try: worker = Worker( self.transfer, [ftrack_component, None, location], parent=self ) worker.start() while worker.isRunning(): app = QtWidgets.QApplication.instance() app.processEvents() if worker.error: raise worker.error[1], None, worker.error[2] except Exception as error: traceback.print_exc() QtWidgets.QMessageBox.critical( None, 'Transfer Failed', 'Could not transfer to location!' '\n{0}'.format(error) ) finally: transferProgressItem.setMaximum(1) transferProgressItem.reset() locationItem.setEnabled(True) # Have to recreate action button actionItem = QtWidgets.QPushButton() self.setCellWidget(row, column('Action'), actionItem) actionItem.clicked.connect(self.actionSignalMapper.map) self.actionSignalMapper.setMapping(actionItem, row) self.onLocationSelected(row)