def __init__(self, hotbox_data, software, parent=None): super(HotboxEditor, self).__init__(parent, QtCore.Qt.Window) self.setWindowTitle("Hotbox editor") self.options = hotbox_data['general'] self.software = software self.clipboard = [] self.undo_manager = UndoManager(hotbox_data) self.shape_editor = ShapeEditArea(self.options) self.shape_editor.selectedShapesChanged.connect(self.selection_changed) self.shape_editor.centerMoved.connect(self.move_center) method = self.set_data_modified self.shape_editor.increaseUndoStackRequested.connect(method) self.menu = MenuWidget() self.menu.copyRequested.connect(self.copy) self.menu.pasteRequested.connect(self.paste) self.menu.deleteRequested.connect(self.delete_selection) self.menu.sizeChanged.connect(self.editor_size_changed) self.menu.editCenterToggled.connect(self.edit_center_mode_changed) self.menu.useSnapToggled.connect(self.use_snap) self.menu.snapValuesChanged.connect(self.snap_value_changed) self.menu.centerValuesChanged.connect(self.move_center) width, height = self.options['width'], self.options['height'] self.menu.set_size_values(width, height) x, y = self.options['centerx'], self.options['centery'] self.menu.set_center_values(x, y) self.menu.undoRequested.connect(self.undo) self.menu.redoRequested.connect(self.redo) method = partial(self.create_shape, templates.SQUARE_BUTTON) self.menu.addButtonRequested.connect(method) method = partial(self.create_shape, templates.TEXT) self.menu.addTextRequested.connect(method) method = partial(self.create_shape, templates.BACKGROUND, before=True) self.menu.addBackgroundRequested.connect(method) method = self.set_selection_move_down self.menu.moveDownRequested.connect(method) method = self.set_selection_move_up self.menu.moveUpRequested.connect(method) method = self.set_selection_on_top self.menu.onTopRequested.connect(method) method = self.set_selection_on_bottom self.menu.onBottomRequested.connect(method) set_shortcut("Ctrl+Z", self.shape_editor, self.undo) set_shortcut("Ctrl+Y", self.shape_editor, self.redo) set_shortcut("Ctrl+C", self.shape_editor, self.copy) set_shortcut("Ctrl+V", self.shape_editor, self.paste) set_shortcut("del", self.shape_editor, self.delete_selection) set_shortcut("Ctrl+D", self.shape_editor, self.deselect_all) self.attribute_editor = AttributeEditor(self.software) self.attribute_editor.optionSet.connect(self.option_set) self.attribute_editor.rectModified.connect(self.rect_modified) self.attribute_editor.imageModified.connect(self.image_modified) self.hlayout = QtWidgets.QHBoxLayout() self.hlayout.setContentsMargins(0, 0, 0, 0) self.hlayout.addStretch(1) self.hlayout.addWidget(self.shape_editor) self.hlayout.addStretch(1) self.hlayout.addWidget(self.attribute_editor) self.vlayout = QtWidgets.QVBoxLayout(self) self.vlayout.setContentsMargins(0, 0, 0, 0) self.vlayout.setSpacing(0) self.vlayout.addWidget(self.menu) self.vlayout.addLayout(self.hlayout)
def set_hotkey(self, name, mode, sequence, open_cmd, close_cmd, switch_cmd): from hotbox_designer.qtutils import set_shortcut from functools import partial set_shortcut(sequence, self.main_window, partial(execute, switch_cmd))