Files
ware_house/docs/flows/main_flow.md
2026-03-31 19:15:33 +02:00

1.5 KiB

main.py

Scopo

main.py è il punto di ingresso dell'applicazione desktop. Inizializza il loop asincrono condiviso, crea il client database condiviso e costruisce il launcher con i pulsanti che aprono i moduli operativi.

Flusso principale

flowchart TD
    A["Avvio di main.py"] --> B["Configura policy asyncio su Windows"]
    B --> C["Ottiene loop globale con get_global_loop()"]
    C --> D["Imposta il loop come default"]
    D --> E["Costruisce DSN SQL Server"]
    E --> F["Crea AsyncMSSQLClient condiviso"]
    F --> G["Istanzia Launcher"]
    G --> H["Mostra finestra principale"]
    H --> I{"Click su un pulsante"}
    I --> J["open_reset_corsie_window()"]
    I --> K["open_layout_window()"]
    I --> L["open_celle_multiple_window()"]
    I --> M["open_search_window()"]
    I --> N["open_pickinglist_window()"]

Schema di chiamata

flowchart LR
    Launcher["Launcher.__init__"] --> Reset["open_reset_corsie_window"]
    Launcher --> Layout["open_layout_window"]
    Launcher --> Ghost["open_celle_multiple_window"]
    Launcher --> Search["open_search_window"]
    Launcher --> Pick["open_pickinglist_window"]
    Pick --> PickFactory["create_pickinglist_frame"]

Note

  • db_app viene creato una sola volta e poi passato a tutte le finestre.
  • Alla chiusura del launcher viene chiamato db_app.dispose() sul loop globale.
  • open_pickinglist_window() costruisce la finestra in modo nascosto e la rende visibile solo a layout pronto, per ridurre lo sfarfallio iniziale.