summaryrefslogtreecommitdiff
path: root/raveos-center/raveos_center/folyamat.py
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-center/raveos_center/folyamat.py')
-rw-r--r--raveos-center/raveos_center/folyamat.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/raveos-center/raveos_center/folyamat.py b/raveos-center/raveos_center/folyamat.py
new file mode 100644
index 0000000..586491f
--- /dev/null
+++ b/raveos-center/raveos_center/folyamat.py
@@ -0,0 +1,68 @@
+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)