def __init__(self, parent=None): super(ImageSettings, self).__init__(parent) self.path = BrowseEdit() self.path.valueSet.connect(partial(self.optionSet.emit, 'image.path')) self.fit = BoolCombo(True) self.fit.valueSet.connect(partial(self.optionSet.emit, 'image.fit')) self.width = FloatEdit() method = partial(self.optionSet.emit, 'image.width') self.width.valueSet.connect(method) self.height = FloatEdit() method = partial(self.optionSet.emit, 'image.height') self.height.valueSet.connect(method) self.layout = QtWidgets.QFormLayout(self) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setHorizontalSpacing(5) self.layout.addRow('Path', self.path) self.layout.addRow('Fit to shape', self.fit) self.layout.addRow('Width', self.width) self.layout.addRow('Height', self.height) for label in self.findChildren(QtWidgets.QLabel): if not isinstance(label, Title): label.setFixedWidth(LEFT_CELL_WIDTH)
def __init__(self, parent=None): super(ShapeSettings, self).__init__(parent) self.shape = QtWidgets.QComboBox() self.shape.addItems(SHAPE_TYPES) self.shape.currentIndexChanged.connect(self.shape_changed) self.left = FloatEdit(minimum=0.0) method = partial(self.rectModified.emit, 'shape.left') self.left.valueSet.connect(method) self.top = FloatEdit(minimum=0.0) method = partial(self.rectModified.emit, 'shape.right') self.top.valueSet.connect(method) self.width = FloatEdit(minimum=0.0) method = partial(self.rectModified.emit, 'shape.width') self.width.valueSet.connect(method) self.height = FloatEdit(minimum=0.0) method = partial(self.rectModified.emit, 'shape.height') self.height.valueSet.connect(method) self.layout = QtWidgets.QFormLayout(self) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setHorizontalSpacing(5) self.layout.addRow('Shape', self.shape) self.layout.addItem(QtWidgets.QSpacerItem(0, 8)) self.layout.addRow(Title('Dimensions')) self.layout.addRow('left', self.left) self.layout.addRow('top', self.top) self.layout.addRow('width', self.width) self.layout.addRow('height', self.height) for label in self.findChildren(QtWidgets.QLabel): if not isinstance(label, Title): label.setFixedWidth(LEFT_CELL_WIDTH)
class ImageSettings(QtWidgets.QWidget): optionSet = QtCore.Signal(str, object) def __init__(self, parent=None): super(ImageSettings, self).__init__(parent) self.path = BrowseEdit() self.path.valueSet.connect(partial(self.optionSet.emit, 'image.path')) self.fit = BoolCombo(True) self.fit.valueSet.connect(partial(self.optionSet.emit, 'image.fit')) self.width = FloatEdit() method = partial(self.optionSet.emit, 'image.width') self.width.valueSet.connect(method) self.height = FloatEdit() method = partial(self.optionSet.emit, 'image.height') self.height.valueSet.connect(method) self.layout = QtWidgets.QFormLayout(self) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setHorizontalSpacing(5) self.layout.addRow('Path', self.path) self.layout.addRow('Fit to shape', self.fit) self.layout.addRow('Width', self.width) self.layout.addRow('Height', self.height) for label in self.findChildren(QtWidgets.QLabel): if not isinstance(label, Title): label.setFixedWidth(LEFT_CELL_WIDTH) def set_options(self, options): values = list({option['image.path'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.path.set_value(value) values = list({option['image.fit'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.fit.setCurrentText(value) values = list({option['image.width'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.width.setText(value) values = list({option['image.height'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.height.setText(value)
def __init__(self, parent=None): super(TextSettings, self).__init__(parent) self.text = QtWidgets.QLineEdit() self.text.returnPressed.connect(self.text_changed) self.size = FloatEdit(minimum=0.0) self.size.valueSet.connect(partial(self.optionSet.emit, 'text.size')) self.bold = BoolCombo() self.bold.valueSet.connect(partial(self.optionSet.emit, 'text.bold')) self.italic = BoolCombo() method = partial(self.optionSet.emit, 'text.italic') self.italic.valueSet.connect(method) self.color = ColorEdit() self.color.valueSet.connect(partial(self.optionSet.emit, 'text.color')) self.halignement = QtWidgets.QComboBox() self.halignement.addItems(HALIGNS.keys()) self.halignement.currentIndexChanged.connect(self.halign_changed) self.valignement = QtWidgets.QComboBox() self.valignement.addItems(VALIGNS.keys()) self.valignement.currentIndexChanged.connect(self.valign_changed) self.layout = QtWidgets.QFormLayout(self) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setHorizontalSpacing(5) self.layout.addRow('Content', self.text) self.layout.addItem(QtWidgets.QSpacerItem(0, 8)) self.layout.addRow(Title('Options')) self.layout.addRow('Size', self.size) self.layout.addRow('Bold', self.bold) self.layout.addRow('Italic', self.italic) self.layout.addRow('Color', self.color) self.layout.addItem(QtWidgets.QSpacerItem(0, 8)) self.layout.addRow(Title('Alignement')) self.layout.addRow('Horizontal', self.halignement) self.layout.addRow('Vertical', self.valignement) for label in self.findChildren(QtWidgets.QLabel): if not isinstance(label, Title): label.setFixedWidth(LEFT_CELL_WIDTH)
class ShapeSettings(QtWidgets.QWidget): optionSet = QtCore.Signal(str, object) rectModified = QtCore.Signal(str, float) def __init__(self, parent=None): super(ShapeSettings, self).__init__(parent) self.shape = QtWidgets.QComboBox() self.shape.addItems(SHAPE_TYPES) self.shape.currentIndexChanged.connect(self.shape_changed) self.left = FloatEdit(minimum=0.0) method = partial(self.rectModified.emit, 'shape.left') self.left.valueSet.connect(method) self.top = FloatEdit(minimum=0.0) method = partial(self.rectModified.emit, 'shape.right') self.top.valueSet.connect(method) self.width = FloatEdit(minimum=0.0) method = partial(self.rectModified.emit, 'shape.width') self.width.valueSet.connect(method) self.height = FloatEdit(minimum=0.0) method = partial(self.rectModified.emit, 'shape.height') self.height.valueSet.connect(method) self.layout = QtWidgets.QFormLayout(self) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setHorizontalSpacing(5) self.layout.addRow('Shape', self.shape) self.layout.addItem(QtWidgets.QSpacerItem(0, 8)) self.layout.addRow(Title('Dimensions')) self.layout.addRow('left', self.left) self.layout.addRow('top', self.top) self.layout.addRow('width', self.width) self.layout.addRow('height', self.height) for label in self.findChildren(QtWidgets.QLabel): if not isinstance(label, Title): label.setFixedWidth(LEFT_CELL_WIDTH) def shape_changed(self, _): self.optionSet.emit('shape', self.shape.currentText()) def set_options(self, options): values = list({option['shape'] for option in options}) value = values[0] if len(values) == 1 else '...' self.shape.setCurrentText(value) values = list({option['shape.left'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.left.setText(value) values = list({option['shape.top'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.top.setText(value) values = list({option['shape.width'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.width.setText(value) values = list({option['shape.height'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.height.setText(value)
class TextSettings(QtWidgets.QWidget): optionSet = QtCore.Signal(str, object) def __init__(self, parent=None): super(TextSettings, self).__init__(parent) self.text = QtWidgets.QLineEdit() self.text.returnPressed.connect(self.text_changed) self.size = FloatEdit(minimum=0.0) self.size.valueSet.connect(partial(self.optionSet.emit, 'text.size')) self.bold = BoolCombo() self.bold.valueSet.connect(partial(self.optionSet.emit, 'text.bold')) self.italic = BoolCombo() method = partial(self.optionSet.emit, 'text.italic') self.italic.valueSet.connect(method) self.color = ColorEdit() self.color.valueSet.connect(partial(self.optionSet.emit, 'text.color')) self.halignement = QtWidgets.QComboBox() self.halignement.addItems(HALIGNS.keys()) self.halignement.currentIndexChanged.connect(self.halign_changed) self.valignement = QtWidgets.QComboBox() self.valignement.addItems(VALIGNS.keys()) self.valignement.currentIndexChanged.connect(self.valign_changed) self.layout = QtWidgets.QFormLayout(self) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setHorizontalSpacing(5) self.layout.addRow('Content', self.text) self.layout.addItem(QtWidgets.QSpacerItem(0, 8)) self.layout.addRow(Title('Options')) self.layout.addRow('Size', self.size) self.layout.addRow('Bold', self.bold) self.layout.addRow('Italic', self.italic) self.layout.addRow('Color', self.color) self.layout.addItem(QtWidgets.QSpacerItem(0, 8)) self.layout.addRow(Title('Alignement')) self.layout.addRow('Horizontal', self.halignement) self.layout.addRow('Vertical', self.valignement) for label in self.findChildren(QtWidgets.QLabel): if not isinstance(label, Title): label.setFixedWidth(LEFT_CELL_WIDTH) def text_changed(self): self.optionSet.emit('text.content', self.text.text()) def valign_changed(self): self.optionSet.emit('text.valign', self.valignement.currentText()) def halign_changed(self): self.optionSet.emit('text.halign', self.halignement.currentText()) def set_options(self, options): values = list({option['text.content'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.text.setText(value) values = list({option['text.size'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.size.setText(value) values = list({option['text.bold'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.bold.setCurrentText(value) values = list({option['text.italic'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.italic.setCurrentText(value) values = list({option['text.color'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.color.set_color(value) values = list({option['text.halign'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.halignement.setCurrentText(value) values = list({option['text.valign'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.valignement.setCurrentText(value)
def __init__(self, parent=None): super(AppearenceSettings, self).__init__(parent) self.border = BoolCombo(True) method = partial(self.optionSet.emit, 'border') self.border.valueSet.connect(method) self.borderwidth_normal = FloatEdit(minimum=0.0) method = partial(self.optionSet.emit, 'borderwidth.normal') self.borderwidth_normal.valueSet.connect(method) self.borderwidth_hovered = FloatEdit(minimum=0.0) method = partial(self.optionSet.emit, 'borderwidth.hovered') self.borderwidth_hovered.valueSet.connect(method) self.borderwidth_clicked = FloatEdit(minimum=0.0) method = partial(self.optionSet.emit, 'borderwidth.clicked') self.borderwidth_clicked.valueSet.connect(method) self.bordercolor_normal = ColorEdit() method = partial(self.optionSet.emit, 'bordercolor.normal') self.bordercolor_normal.valueSet.connect(method) self.bordercolor_hovered = ColorEdit() method = partial(self.optionSet.emit, 'bordercolor.hovered') self.bordercolor_hovered.valueSet.connect(method) self.bordercolor_clicked = ColorEdit() method = partial(self.optionSet.emit, 'bordercolor.clicked') self.bordercolor_clicked.valueSet.connect(method) self.bordercolor_transparency = FloatEdit(minimum=0, maximum=255) method = partial(self.optionSet.emit, 'bordercolor.transparency') self.bordercolor_transparency.valueSet.connect(method) self.backgroundcolor_normal = ColorEdit() method = partial(self.optionSet.emit, 'bgcolor.normal') self.backgroundcolor_normal.valueSet.connect(method) self.backgroundcolor_hovered = ColorEdit() method = partial(self.optionSet.emit, 'bgcolor.hovered') self.backgroundcolor_hovered.valueSet.connect(method) self.backgroundcolor_clicked = ColorEdit() method = partial(self.optionSet.emit, 'bgcolor.clicked') self.backgroundcolor_clicked.valueSet.connect(method) self.backgroundcolor_transparency = FloatEdit(minimum=0, maximum=255) method = partial(self.optionSet.emit, 'bgcolor.transparency') self.backgroundcolor_transparency.valueSet.connect(method) self.layout = QtWidgets.QFormLayout(self) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setHorizontalSpacing(5) self.layout.addRow('border visible', self.border) self.layout.addRow(Title('Border width (pxf)')) self.layout.addRow('normal', self.borderwidth_normal) self.layout.addRow('hovered', self.borderwidth_hovered) self.layout.addRow('clicked', self.borderwidth_clicked) self.layout.addItem(QtWidgets.QSpacerItem(0, 8)) self.layout.addRow(Title('Border color')) self.layout.addRow('normal', self.bordercolor_normal) self.layout.addRow('hovered', self.bordercolor_hovered) self.layout.addRow('clicked', self.bordercolor_clicked) self.layout.addRow('transparency', self.bordercolor_transparency) self.layout.addItem(QtWidgets.QSpacerItem(0, 8)) self.layout.addRow(Title('Background color')) self.layout.addRow('normal', self.backgroundcolor_normal) self.layout.addRow('hovered', self.backgroundcolor_hovered) self.layout.addRow('clicked', self.backgroundcolor_clicked) self.layout.addRow('transparency', self.backgroundcolor_transparency) for label in self.findChildren(QtWidgets.QLabel): if not isinstance(label, Title): label.setFixedWidth(LEFT_CELL_WIDTH)
class AppearenceSettings(QtWidgets.QWidget): optionSet = QtCore.Signal(str, object) def __init__(self, parent=None): super(AppearenceSettings, self).__init__(parent) self.border = BoolCombo(True) method = partial(self.optionSet.emit, 'border') self.border.valueSet.connect(method) self.borderwidth_normal = FloatEdit(minimum=0.0) method = partial(self.optionSet.emit, 'borderwidth.normal') self.borderwidth_normal.valueSet.connect(method) self.borderwidth_hovered = FloatEdit(minimum=0.0) method = partial(self.optionSet.emit, 'borderwidth.hovered') self.borderwidth_hovered.valueSet.connect(method) self.borderwidth_clicked = FloatEdit(minimum=0.0) method = partial(self.optionSet.emit, 'borderwidth.clicked') self.borderwidth_clicked.valueSet.connect(method) self.bordercolor_normal = ColorEdit() method = partial(self.optionSet.emit, 'bordercolor.normal') self.bordercolor_normal.valueSet.connect(method) self.bordercolor_hovered = ColorEdit() method = partial(self.optionSet.emit, 'bordercolor.hovered') self.bordercolor_hovered.valueSet.connect(method) self.bordercolor_clicked = ColorEdit() method = partial(self.optionSet.emit, 'bordercolor.clicked') self.bordercolor_clicked.valueSet.connect(method) self.bordercolor_transparency = FloatEdit(minimum=0, maximum=255) method = partial(self.optionSet.emit, 'bordercolor.transparency') self.bordercolor_transparency.valueSet.connect(method) self.backgroundcolor_normal = ColorEdit() method = partial(self.optionSet.emit, 'bgcolor.normal') self.backgroundcolor_normal.valueSet.connect(method) self.backgroundcolor_hovered = ColorEdit() method = partial(self.optionSet.emit, 'bgcolor.hovered') self.backgroundcolor_hovered.valueSet.connect(method) self.backgroundcolor_clicked = ColorEdit() method = partial(self.optionSet.emit, 'bgcolor.clicked') self.backgroundcolor_clicked.valueSet.connect(method) self.backgroundcolor_transparency = FloatEdit(minimum=0, maximum=255) method = partial(self.optionSet.emit, 'bgcolor.transparency') self.backgroundcolor_transparency.valueSet.connect(method) self.layout = QtWidgets.QFormLayout(self) self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setHorizontalSpacing(5) self.layout.addRow('border visible', self.border) self.layout.addRow(Title('Border width (pxf)')) self.layout.addRow('normal', self.borderwidth_normal) self.layout.addRow('hovered', self.borderwidth_hovered) self.layout.addRow('clicked', self.borderwidth_clicked) self.layout.addItem(QtWidgets.QSpacerItem(0, 8)) self.layout.addRow(Title('Border color')) self.layout.addRow('normal', self.bordercolor_normal) self.layout.addRow('hovered', self.bordercolor_hovered) self.layout.addRow('clicked', self.bordercolor_clicked) self.layout.addRow('transparency', self.bordercolor_transparency) self.layout.addItem(QtWidgets.QSpacerItem(0, 8)) self.layout.addRow(Title('Background color')) self.layout.addRow('normal', self.backgroundcolor_normal) self.layout.addRow('hovered', self.backgroundcolor_hovered) self.layout.addRow('clicked', self.backgroundcolor_clicked) self.layout.addRow('transparency', self.backgroundcolor_transparency) for label in self.findChildren(QtWidgets.QLabel): if not isinstance(label, Title): label.setFixedWidth(LEFT_CELL_WIDTH) def set_options(self, options): values = list({option['border'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.border.setCurrentText(value) values = list({option['borderwidth.normal'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.borderwidth_normal.setText(value) values = list({option['borderwidth.hovered'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.borderwidth_hovered.setText(value) values = list({option['borderwidth.clicked'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.borderwidth_clicked.setText(value) values = list({option['bordercolor.normal'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.bordercolor_normal.set_color(value) values = list({option['bordercolor.hovered'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.bordercolor_hovered.set_color(value) values = list({option['bordercolor.clicked'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.bordercolor_clicked.set_color(value) values = list( {option['bordercolor.transparency'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.bordercolor_transparency.setText(value) values = list({option['bgcolor.normal'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.backgroundcolor_normal.set_color(value) values = list({option['bgcolor.hovered'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.backgroundcolor_hovered.set_color(value) values = list({option['bgcolor.clicked'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.backgroundcolor_clicked.set_color(value) values = list({option['bgcolor.transparency'] for option in options}) value = str(values[0]) if len(values) == 1 else None self.backgroundcolor_transparency.setText(value)