Druckbereich eingeführt (Verfahrensgebiet, Auswahl, Rechteck)
This commit is contained in:
@@ -26,6 +26,12 @@ from sn_basis.modules.print_logic import (
|
||||
THEMA_WIE_KARTENFENSTER,
|
||||
DIN_GROESSEN,
|
||||
DIN_STANDARD,
|
||||
DRUCKBEREICH_VAR,
|
||||
DRUCKPUFFER_VAR,
|
||||
DRUCKPUFFER_STANDARD_CM,
|
||||
DRUCKBEREICH_VERFAHRENSGEBIET,
|
||||
DRUCKBEREICH_AKTUELLE_AUSWAHL,
|
||||
DRUCKBEREICH_RECHTECK,
|
||||
)
|
||||
|
||||
|
||||
@@ -37,6 +43,11 @@ MASSSTAB_VAR = "tab_b_massstab"
|
||||
THEMA_VAR = "tab_b_thema"
|
||||
ZIELGROESSE_UI_VAR = "tab_b_zielgroesse"
|
||||
FORMFAKTOR_UI_VAR = "tab_b_formfaktor"
|
||||
DRUCKBEREICH_OPTIONEN = [
|
||||
DRUCKBEREICH_VERFAHRENSGEBIET,
|
||||
DRUCKBEREICH_AKTUELLE_AUSWAHL,
|
||||
DRUCKBEREICH_RECHTECK,
|
||||
]
|
||||
|
||||
|
||||
class PrintTab(QWidget):
|
||||
@@ -55,7 +66,9 @@ class PrintTab(QWidget):
|
||||
self._theme_signal_connected = False
|
||||
self._connected_theme_collection: object = None
|
||||
self._zielgroesse_combo: Optional[Any] = None
|
||||
self._druckbereich_combo: Optional[Any] = None
|
||||
self._endlosrolle_cb: Optional[Any] = None
|
||||
self._druckpuffer_button: Optional[Any] = None
|
||||
self._btn_vorlage_erstellen: Optional[Any] = None
|
||||
|
||||
self._build_ui()
|
||||
@@ -79,6 +92,8 @@ class PrintTab(QWidget):
|
||||
self.logic.set_view_for_auswahl(self._thema_combo.currentText())
|
||||
if self._zielgroesse_combo:
|
||||
self.logic.set_zielgroesse_for_auswahl(self._zielgroesse_combo.currentText())
|
||||
if self._druckbereich_combo:
|
||||
self.logic.set_druckbereich_for_auswahl(self._druckbereich_combo.currentText())
|
||||
if self._endlosrolle_cb:
|
||||
self.logic.set_formfaktor(self._endlosrolle_cb.isChecked())
|
||||
|
||||
@@ -141,6 +156,41 @@ class PrintTab(QWidget):
|
||||
zielgroesse_row.addWidget(endlosrolle_cb)
|
||||
main_layout.addLayout(zielgroesse_row)
|
||||
|
||||
druckbereich_row = QHBoxLayout()
|
||||
druckbereich_row.setSpacing(6)
|
||||
|
||||
druckbereich_column = QVBoxLayout()
|
||||
druckbereich_column.setSpacing(4)
|
||||
druckbereich_column.setContentsMargins(0, 0, 0, 0)
|
||||
|
||||
druckbereich_label = QLabel("Druckbereich")
|
||||
druckbereich_label.setStyleSheet("font-weight: bold; margin-top: 6px;")
|
||||
druckbereich_column.addWidget(druckbereich_label)
|
||||
|
||||
druckbereich_combo = QComboBox(self)
|
||||
druckbereich_combo.addItems(DRUCKBEREICH_OPTIONEN)
|
||||
druckbereich_combo.currentTextChanged.connect(self._on_druckbereich_changed)
|
||||
self._druckbereich_combo = druckbereich_combo
|
||||
druckbereich_column.addWidget(druckbereich_combo)
|
||||
druckbereich_row.addLayout(druckbereich_column, 1)
|
||||
|
||||
druckpuffer_column = QVBoxLayout()
|
||||
druckpuffer_column.setSpacing(4)
|
||||
druckpuffer_column.setContentsMargins(0, 0, 0, 0)
|
||||
|
||||
druckpuffer_label = QLabel("Kartenpuffer")
|
||||
druckpuffer_label.setStyleSheet("font-weight: bold; margin-top: 6px;")
|
||||
druckpuffer_column.addWidget(druckpuffer_label)
|
||||
|
||||
druckpuffer_button = QPushButton(self._format_druckpuffer_label(DRUCKPUFFER_STANDARD_CM), self)
|
||||
druckpuffer_button.setToolTip("Puffer")
|
||||
druckpuffer_button.clicked.connect(self._on_druckpuffer_clicked)
|
||||
self._druckpuffer_button = druckpuffer_button
|
||||
druckpuffer_column.addWidget(druckpuffer_button)
|
||||
druckbereich_row.addLayout(druckpuffer_column)
|
||||
|
||||
main_layout.addLayout(druckbereich_row)
|
||||
|
||||
btn_vorlage_erstellen = QPushButton("Vorlage erstellen", self)
|
||||
btn_vorlage_erstellen.clicked.connect(self._on_vorlage_erstellen)
|
||||
self._btn_vorlage_erstellen = btn_vorlage_erstellen
|
||||
@@ -154,6 +204,8 @@ class PrintTab(QWidget):
|
||||
return
|
||||
if not self._zielgroesse_combo or not self._endlosrolle_cb:
|
||||
return
|
||||
if not self._druckbereich_combo or not self._druckpuffer_button:
|
||||
return
|
||||
|
||||
saved_kartenname = get_variable(KARTENNAME_VAR, scope="project")
|
||||
if saved_kartenname in (KARTENNAME_38, KARTENNAME_41):
|
||||
@@ -187,6 +239,19 @@ class PrintTab(QWidget):
|
||||
saved_formfaktor = get_variable(FORMFAKTOR_UI_VAR, scope="project")
|
||||
self._endlosrolle_cb.setChecked(saved_formfaktor == "Endlosrolle")
|
||||
|
||||
saved_druckbereich = get_variable(DRUCKBEREICH_VAR, scope="project")
|
||||
if saved_druckbereich in DRUCKBEREICH_OPTIONEN:
|
||||
self._druckbereich_combo.setCurrentText(saved_druckbereich)
|
||||
else:
|
||||
self._druckbereich_combo.setCurrentText(DRUCKBEREICH_VERFAHRENSGEBIET)
|
||||
|
||||
saved_druckpuffer = get_variable(DRUCKPUFFER_VAR, scope="project")
|
||||
try:
|
||||
druckpuffer_cm = int(str(saved_druckpuffer).strip())
|
||||
except (TypeError, ValueError):
|
||||
druckpuffer_cm = DRUCKPUFFER_STANDARD_CM
|
||||
self._druckpuffer_button.setText(self._format_druckpuffer_label(max(0, druckpuffer_cm)))
|
||||
|
||||
def _on_kartenname_changed(self, value: str) -> None:
|
||||
if value in (KARTENNAME_38, KARTENNAME_41):
|
||||
set_variable(KARTENNAME_VAR, value, scope="project")
|
||||
@@ -217,6 +282,51 @@ class PrintTab(QWidget):
|
||||
if self.logic:
|
||||
self.logic.set_formfaktor(checked)
|
||||
|
||||
def _on_druckbereich_changed(self, value: str) -> None:
|
||||
if value not in DRUCKBEREICH_OPTIONEN:
|
||||
value = DRUCKBEREICH_VERFAHRENSGEBIET
|
||||
set_variable(DRUCKBEREICH_VAR, value, scope="project")
|
||||
if self.logic:
|
||||
self.logic.set_druckbereich_for_auswahl(value)
|
||||
if value == DRUCKBEREICH_RECHTECK:
|
||||
self.logic.activate_druckrechteck_capture()
|
||||
|
||||
def _on_druckpuffer_clicked(self) -> None:
|
||||
if not self.pruefmanager:
|
||||
return
|
||||
|
||||
current_value = get_variable(DRUCKPUFFER_VAR, scope="project") or str(DRUCKPUFFER_STANDARD_CM)
|
||||
text_value, bestaetigt = self.pruefmanager.frage_text(
|
||||
"Puffer um den Druckbereich",
|
||||
"Puffer um den Druckbereich",
|
||||
default_text=str(current_value),
|
||||
)
|
||||
if not bestaetigt:
|
||||
return
|
||||
|
||||
try:
|
||||
puffer_value = int(str(text_value).strip())
|
||||
except (TypeError, ValueError):
|
||||
self.pruefmanager.zeige_hinweis(
|
||||
"Puffer um den Druckbereich",
|
||||
"Der Puffer muss als ganze Zahl eingegeben werden.",
|
||||
)
|
||||
return
|
||||
|
||||
if puffer_value < 0:
|
||||
self.pruefmanager.zeige_hinweis(
|
||||
"Puffer um den Druckbereich",
|
||||
"Der Puffer darf nicht negativ sein.",
|
||||
)
|
||||
return
|
||||
|
||||
set_variable(DRUCKPUFFER_VAR, str(puffer_value), scope="project")
|
||||
if self._druckpuffer_button:
|
||||
self._druckpuffer_button.setText(self._format_druckpuffer_label(puffer_value))
|
||||
|
||||
def _format_druckpuffer_label(self, value_cm: int) -> str:
|
||||
return f"{value_cm} cm"
|
||||
|
||||
def _on_vorlage_erstellen(self) -> None:
|
||||
if not self.logic or not self.pruefmanager:
|
||||
return
|
||||
@@ -227,6 +337,7 @@ class PrintTab(QWidget):
|
||||
massstab_auswahl=self._massstab_combo.currentText() if self._massstab_combo else "",
|
||||
zielgroesse=self._zielgroesse_combo.currentText() if self._zielgroesse_combo else DIN_STANDARD,
|
||||
formfaktor=self._endlosrolle_cb.isChecked() if self._endlosrolle_cb else False,
|
||||
druckbereich_auswahl=self._druckbereich_combo.currentText() if self._druckbereich_combo else DRUCKBEREICH_VERFAHRENSGEBIET,
|
||||
)
|
||||
|
||||
def _connect_project_signals(self) -> None:
|
||||
|
||||
Reference in New Issue
Block a user