: i ddlZddlmZmZmZmZddlmZmZm Z ddl m Z m Z ej eZGddeZdS)N)QWidgetQLabel QVBoxLayout QApplication)QColorQPainterQFont)QtQEventcTeZdZdZd deffd ZfdZdZdZd defd Z d Z xZ S) LoadingOverlayz Un widget overlay robusto che usa un event filter per coprire il suo genitore. Questo previene errori di rendering (QPainter) e garantisce che la UI rimanga reattiva. NCaricamento in corso...textct||tjjtjjz|tjj |tjj t|}| tj jt|||_t#dd}|j||jd||j||r||dSdS)NzSegoe UIz.color: #333333; background-color: transparent;)super__init__setWindowFlagsr WindowTypeFramelessWindowHintToolTip setAttributeWidgetAttributeWA_TranslucentBackgroundWA_DeleteOnCloser setAlignment AlignmentFlag AlignCenterr loading_labelr setFont setStyleSheet addWidgethideinstallEventFilter)selfparentrlayoutfont __class__s 4C:\PYTHON\MyICR_Suite\app\widgets\loading_overlay.pyrzLoadingOverlay.__init__s?     BM= @UUVVV ",EFFF ",=>>>T""B,8999#D$//Z$$ ""4((( (()YZZZ+,,,   ,  % %d + + + + + , ,cf||krw|tjjkr|n;|tjjkr|t||S)z&Filtra gli eventi del widget genitore.) r&typer TypeResizeupdate_geometryMover eventFilter)r%sourceeventr)s r*r2zLoadingOverlay.eventFilter)s T[[]] " "zz||v{111$$&&&&!111$$&&&ww""65111r+c|r|}||}|||||dSdS)zKAggiorna la posizione e la dimensione dell'overlay per coprire il genitore.N) r&rect mapToGlobaltopLeft setGeometryxywidthheight)r% parent_recttop_lefts r*r0zLoadingOverlay.update_geometry3s ;;== d++--,,..K{{}}001D1D1F1FGGH   XZZ\\8::<<9J9J9L9LkN`N`NbNb c c c c c  d dr+ct|}|tdddd|tjj||dS)z$Disegna uno sfondo semi-trasparente.N) rsetBrushrsetPenr PenStyleNoPendrawRectr6)r%r4painters r* paintEventzLoadingOverlay.paintEvent;sh4..S#s33444r{()))%%%%%r+c(|sdS|r|j||||t jtj j dS)z0Mostra l'overlay e imposta il cursore di attesa.N) r&rsetTextr0showraise_rsetOverrideCursorr CursorShape WaitCursor)r%rs r* start_loadingzLoadingOverlay.start_loadingBs~{{}}  F  -   & &t , , ,   &r~'@AAAAAr+cTtj|dS)z+Nasconde l'overlay e ripristina il cursore.N)rrestoreOverrideCursorr#)r%s r* stop_loadingzLoadingOverlay.stop_loadingOs"*,,, r+)Nr)N) __name__ __module__ __qualname____doc__strrr2r0rIrQrT __classcell__)r)s@r*r r s ,,#,,,,,,222222ddd&&& B B# B B B Br+r )loggingPyQt6.QtWidgetsrrrr PyQt6.QtGuirrr PyQt6.QtCorer r getLoggerrUloggerr r+r*rbsFFFFFFFFFFFF//////////########  8 $ $HHHHHWHHHHHr+