32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
from PySide6.QtGui import QColor
|
|
from PySide6.QtWidgets import QDialog, QMessageBox
|
|
|
|
from bedit.document.model import Component
|
|
from bedit.ui_component_options_dialog import Ui_ComponentOptionsDialog
|
|
|
|
|
|
class ComponentOptionsDialog(QDialog):
|
|
def __init__(self, component: Component, parent=None) -> None:
|
|
super().__init__(parent)
|
|
self.ui = Ui_ComponentOptionsDialog()
|
|
self.ui.setupUi(self)
|
|
self.ui.nameEdit.setText(component.name)
|
|
self.ui.shapeCombo.setCurrentText(component.icon.shape)
|
|
self.ui.iconTextEdit.setText(component.icon.text)
|
|
self.ui.fillEdit.setText(component.icon.fill)
|
|
self.ui.borderEdit.setText(component.icon.border)
|
|
self.ui.showSubtreeCheckBox.setChecked(component.show_subtree_in_library)
|
|
|
|
def accept(self) -> None:
|
|
if not self.ui.nameEdit.text().strip():
|
|
QMessageBox.warning(self, "Invalid name", "The component name cannot be empty.")
|
|
return
|
|
for label, value in (
|
|
("fill", self.ui.fillEdit.text()),
|
|
("border", self.ui.borderEdit.text()),
|
|
):
|
|
if not QColor(value).isValid():
|
|
QMessageBox.warning(self, "Invalid color", f"The {label} color is not valid.")
|
|
return
|
|
super().accept()
|