Allow cancelling a scan session.

- perform scanning in a thread
 - change the label of the scan button
 - trigger cancel with the same button and with the ESC key
 - process all GUI updates in asynchronous mode.

Do not use a top window as parent of popups:
 - If a top window goes away in an application with multiple instances of
 XInsaneWidget, any call to a scanner widget leads to a crash.

Minor changes.
This commit is contained in:
Saleem Edah-Tally
2025-07-11 21:10:59 +02:00
parent 3350f86ddf
commit 4b23b1f3de
12 changed files with 206 additions and 215 deletions

View File

@@ -63,7 +63,7 @@ public:
XInsaneWidget( wxWindow* parent, TimeredStatusBar * sb, wxConfig * config, wxWindowID id = SYMBOL_INSANEWIDGET_IDNAME, const wxPoint& pos = SYMBOL_INSANEWIDGET_POSITION, const wxSize& size = SYMBOL_INSANEWIDGET_SIZE, long style = SYMBOL_INSANEWIDGET_STYLE );
void ResetScanProject();
void CancelScanning(); // Not tested, probably doesn't work as intended.
void CancelScanning();
void EnableScanButton(bool enable); // For CallAfter.
void Setup();
private: