from PyQt6.QtCore import Qt from PyQt6.QtWidgets import QDialog, QHBoxLayout, QPlainTextEdit, QVBoxLayout from raveos_center import hatter, muveletek from raveos_center.elemek import cimke, gomb class FolyamatAblak(QDialog): def __init__(self, szulo, cim, lepesek, siker_szoveg="Kész.", hiba_szoveg="A művelet nem sikerült."): super().__init__(szulo) self.setWindowTitle(cim) self.resize(760, 520) self.siker_szoveg = siker_szoveg self.hiba_szoveg = hiba_szoveg self.rendben = False doboz = QVBoxLayout(self) doboz.setContentsMargins(28, 24, 28, 20) doboz.setSpacing(12) self.felirat = cimke("FOLYAMATBAN", "eyebrow") doboz.addWidget(self.felirat) self.cim = cimke(cim.upper(), "h2", True) doboz.addWidget(self.cim) self.allapot = cimke("Indul...", "masodlagos", True) doboz.addWidget(self.allapot) self.naplo = QPlainTextEdit() self.naplo.setObjectName("naplo") self.naplo.setReadOnly(True) self.naplo.setMaximumBlockCount(5000) doboz.addWidget(self.naplo, 1) sor = QHBoxLayout() sor.addStretch(1) self.bezar = gomb("Bezárás", fo=True) self.bezar.setEnabled(False) self.bezar.clicked.connect(self.accept) sor.addWidget(self.bezar) doboz.addLayout(sor) self.futtato = muveletek.Futtato(self) self.futtato.sor.connect(self.naplo.appendPlainText) self.futtato.lepes_indul.connect(self.allapot.setText) self.futtato.kesz.connect(self._kesz) self.lepesek = lepesek def exec(self): self.futtato.indit(self.lepesek) return super().exec() def _kesz(self, rendben, hibasak): hatter.ervenytelenit() self.rendben = rendben self.felirat.setText("KÉSZ" if rendben else "HIBA") if rendben: self.allapot.setText(self.siker_szoveg) else: self.allapot.setText(f"{self.hiba_szoveg} Sikertelen lépés: {', '.join(hibasak)}") self.allapot.setObjectName("figyelem") self.allapot.style().unpolish(self.allapot) self.allapot.style().polish(self.allapot) self.bezar.setEnabled(True) def reject(self): if self.futtato.fut(): return super().reject() def keyPressEvent(self, esemeny): if esemeny.key() == Qt.Key.Key_Escape and self.futtato.fut(): return super().keyPressEvent(esemeny)