def __init__(self, componentName=None, resourceIdentifier=None, parent=None): '''Initialise widget with initial component *value* and *parent*.''' super(Component, self).__init__(parent=parent) self.setLayout(QtWidgets.QVBoxLayout()) self.componentNameEdit = ftrack_connect.ui.widget.line_edit.LineEdit() self.componentNameEdit.setPlaceholderText('Enter component name') self.componentNameEdit.textChanged.connect(self.nameChanged) self.layout().addWidget(self.componentNameEdit) # TODO: Add theme support. removeIcon = QtGui.QIcon( QtGui.QPixmap(':/ftrack/image/light/trash') ) self.removeAction = QtWidgets.QAction( QtGui.QIcon(removeIcon), 'Remove', self.componentNameEdit ) self.removeAction.setStatusTip('Remove component.') self.componentNameEdit.addAction( self.removeAction ) self.resourceInformation = ftrack_connect.ui.widget.label.Label() self.layout().addWidget(self.resourceInformation) # Set initial values. self.setId(str(uuid.uuid4())) self.setComponentName(componentName) self.setResourceIdentifier(resourceIdentifier)
def _createTrayMenu(self): '''Return a menu for system tray.''' menu = QtWidgets.QMenu(self) logoutAction = QtWidgets.QAction( 'Log Out && Quit', self, triggered=self.logout ) quitAction = QtWidgets.QAction( 'Quit', self, triggered=QtWidgets.qApp.quit ) focusAction = QtWidgets.QAction( 'Open', self, triggered=self.focus ) openPluginDirectoryAction = QtWidgets.QAction( 'Open plugin directory', self, triggered=self.openDefaultPluginDirectory ) aboutAction = QtWidgets.QAction( 'About', self, triggered=self.showAbout ) menu.addAction(aboutAction) menu.addAction(focusAction) menu.addSeparator() menu.addAction(openPluginDirectoryAction) menu.addSeparator() menu.addAction(logoutAction) menu.addSeparator() menu.addAction(quitAction) return menu
def mouseReleaseEvent(self, event): '''Launch action on mouse release. First show menu with variants if multiple actions are available. ''' if self._multiple: self.logger.debug('Launching menu to select action variant') menu = QtWidgets.QMenu(self) for index, variant in enumerate(self._variants): action = QtWidgets.QAction(variant, self) action.setData(index) menu.addAction(action) result = menu.exec_(QtWidgets.QCursor.pos()) if result is None: return action = self._actions[result.data()] else: action = self._actions[0] self._launchAction(action)