Cerrar lo para todo, continuar sigue por donde iba, convertir antes de ordenar, y lo grande a la vista
Munka: «que al cerrar cierre todos los procesos… que al continuar la cola siga por donde iba y vuelva a generar los videos que hagan falta… que identifique bien el material… y convertir antes de mover». Cerrar con trabajo avisa y lo para todo (cola, lectura, respaldo, traer), cierra lo que quede con lo que lanzó y borra lo que quedó a medias. Lo cortado vuelve a esperar en su sitio (no «cancelado») y al continuar se hace entero; también vuelven los fallos por un corte y los convertidos que ya no están. Actualizar con la cola en marcha la detiene y sigue sola al volver. El Convertidor enseña lo grande de la carpeta y qué pasa con cada parte (exportados sin incluir, con un botón). Convertir va antes de ordenar en los pasos y en Inicio; lo que se está convirtiendo no se mueve, y una carpeta con algo abierto ya no se copia entera. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Este commit está contenido en:
31
ventana.py
31
ventana.py
@@ -391,7 +391,7 @@ class Ventana:
|
||||
self.url, self.titulo, self.icono, self.perfil, self.memoria = url, titulo, icono, perfil, memoria
|
||||
self.base, self.marca, self.tamano, self.minimo, self.fondo = base, marca, tamano, minimo, fondo
|
||||
self.relanzar, self.depurar = relanzar, depurar
|
||||
self.al_cerrar = self.al_soltar = self.al_abrir = None
|
||||
self.al_cerrar = self.al_soltar = self.al_abrir = self.al_detener = None
|
||||
self.hwnd = None
|
||||
self.oculta = False # cerrada a la vista, pero viva hasta que termine el trabajo
|
||||
self.lista = False # la interfaz está cargada y a la vista
|
||||
@@ -500,9 +500,22 @@ class Ventana:
|
||||
if not que:
|
||||
return self._destruir()
|
||||
u = _dll().u
|
||||
r = u.MessageBoxW(self.hwnd, f"OrganiLAB está trabajando: {que}.\n\nSi cierras la ventana, el trabajo sigue hasta "
|
||||
"terminar y después el programa se cierra solo. Para verlo, vuelve a abrir OrganiLAB.",
|
||||
self.titulo, MB_OKCANCEL | MB_ICONINFORMATION)
|
||||
if not self.al_detener:
|
||||
r = u.MessageBoxW(self.hwnd, f"OrganiLAB está trabajando: {que}.\n\nSi cierras la ventana, el trabajo sigue hasta "
|
||||
"terminar y después el programa se cierra solo. Para verlo, vuelve a abrir OrganiLAB.",
|
||||
self.titulo, MB_OKCANCEL | MB_ICONINFORMATION)
|
||||
if r != IDOK:
|
||||
return
|
||||
self._recordar_sitio()
|
||||
self.oculta = True
|
||||
self.progreso(None)
|
||||
u.ShowWindow(self.hwnd, SW_HIDE)
|
||||
return
|
||||
# Cerrar para todo (Munka, 14-oct-2026): la conversión que va se corta y vuelve a la cola, y la próxima vez
|
||||
# «Continuar» sigue por donde iba. Antes el trabajo seguía oculto y, al actualizar, quedaban procesos sueltos.
|
||||
r = u.MessageBoxW(self.hwnd, f"OrganiLAB está trabajando: {que}.\n\nSi cierras, se detiene todo. Lo que iba a medias "
|
||||
"vuelve a la cola, y la próxima vez «Continuar» sigue por donde iba (lo cortado se hace entero otra vez).",
|
||||
self.titulo, MB_OKCANCEL | MB_ICONQUESTION)
|
||||
if r != IDOK:
|
||||
return
|
||||
self._recordar_sitio()
|
||||
@@ -510,6 +523,16 @@ class Ventana:
|
||||
self.progreso(None)
|
||||
u.ShowWindow(self.hwnd, SW_HIDE)
|
||||
|
||||
def parar():
|
||||
try:
|
||||
self.al_detener()
|
||||
except Exception as ex: # noqa
|
||||
_log("al_detener falló:", repr(ex))
|
||||
finally:
|
||||
if self.oculta: # si mientras se paraba la volvieron a abrir, se queda abierta (ya sin nada en marcha)
|
||||
self.cerrar()
|
||||
threading.Thread(target=parar, daemon=True).start()
|
||||
|
||||
def _volver(self):
|
||||
"""La abrieron otra vez mientras trabajaba oculta: vuelve a la vista."""
|
||||
u = _dll().u
|
||||
|
||||
Referencia en una nueva incidencia
Block a user