Lower the bulk-digitization cliff with two more routes on top of the already-landed CSV import and "save and add another": - Photo-first drafts (capture now, catalogue later): burst-capture photos (camera or multi-gallery) into unnamed draft varieties, shown in a "to catalogue" tray, hidden from the main list until named. Adds Variety.isDraft (schema), addDraftVariety/watchDrafts/nameDraft, the triage sheet and the inventory banner. - On-device OCR label suggestion (Tesseract, offline, no Google): a "Suggest name from photo" button in the naming dialog behind a LabelTextExtractor interface (Tesseract on Android/iOS, no-op elsewhere). Reads the largest print via hOCR bounding boxes, drops boilerplate/low-confidence noise, preprocesses (grayscale, contrast, upscale) and sweeps rotations (0-315 deg) so tilted packets still read. Bundles tessdata_fast eng+spa; validated on-device against real packets. The photo is written to a temp file deleted immediately in a finally block (the plugin needs a path) - a bounded, documented exception to no-plaintext-at-rest. This commit also carries the co-developed schema evolution v5 to v8 that shares these files (organic flag, species viability years, crop calendar, lot provenance/abundance/preservation format, condition checks) plus their exports/migrations and i18n. Tests: CSV/draft/OCR unit + widget + migration green in isolation. Note: the full widget suite currently hangs (>10 min) - under investigation.
121 lines
3 KiB
Text
121 lines
3 KiB
Text
// Microsoft Visual C++ generated resource script.
|
|
//
|
|
#pragma code_page(65001)
|
|
#include "resource.h"
|
|
|
|
#define APSTUDIO_READONLY_SYMBOLS
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Generated from the TEXTINCLUDE 2 resource.
|
|
//
|
|
#include "winres.h"
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#undef APSTUDIO_READONLY_SYMBOLS
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// English (United States) resources
|
|
|
|
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|
|
|
#ifdef APSTUDIO_INVOKED
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// TEXTINCLUDE
|
|
//
|
|
|
|
1 TEXTINCLUDE
|
|
BEGIN
|
|
"resource.h\0"
|
|
END
|
|
|
|
2 TEXTINCLUDE
|
|
BEGIN
|
|
"#include ""winres.h""\r\n"
|
|
"\0"
|
|
END
|
|
|
|
3 TEXTINCLUDE
|
|
BEGIN
|
|
"\r\n"
|
|
"\0"
|
|
END
|
|
|
|
#endif // APSTUDIO_INVOKED
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Icon
|
|
//
|
|
|
|
// Icon with lowest ID value placed first to ensure application icon
|
|
// remains consistent on all systems.
|
|
IDI_APP_ICON ICON "resources\\app_icon.ico"
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Version
|
|
//
|
|
|
|
#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD)
|
|
#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD
|
|
#else
|
|
#define VERSION_AS_NUMBER 1,0,0,0
|
|
#endif
|
|
|
|
#if defined(FLUTTER_VERSION)
|
|
#define VERSION_AS_STRING FLUTTER_VERSION
|
|
#else
|
|
#define VERSION_AS_STRING "1.0.0"
|
|
#endif
|
|
|
|
VS_VERSION_INFO VERSIONINFO
|
|
FILEVERSION VERSION_AS_NUMBER
|
|
PRODUCTVERSION VERSION_AS_NUMBER
|
|
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
|
#ifdef _DEBUG
|
|
FILEFLAGS VS_FF_DEBUG
|
|
#else
|
|
FILEFLAGS 0x0L
|
|
#endif
|
|
FILEOS VOS__WINDOWS32
|
|
FILETYPE VFT_APP
|
|
FILESUBTYPE 0x0L
|
|
BEGIN
|
|
BLOCK "StringFileInfo"
|
|
BEGIN
|
|
BLOCK "040904e4"
|
|
BEGIN
|
|
VALUE "CompanyName", "Comunes" "\0"
|
|
VALUE "FileDescription", "Tanemaki — local-first traditional-seed inventory" "\0"
|
|
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
|
VALUE "InternalName", "tane" "\0"
|
|
VALUE "LegalCopyright", "Copyright (C) 2026 Comunes. Licensed under AGPL-3.0." "\0"
|
|
VALUE "OriginalFilename", "tane.exe" "\0"
|
|
VALUE "ProductName", "Tanemaki" "\0"
|
|
VALUE "ProductVersion", VERSION_AS_STRING "\0"
|
|
END
|
|
END
|
|
BLOCK "VarFileInfo"
|
|
BEGIN
|
|
VALUE "Translation", 0x409, 1252
|
|
END
|
|
END
|
|
|
|
#endif // English (United States) resources
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifndef APSTUDIO_INVOKED
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Generated from the TEXTINCLUDE 3 resource.
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#endif // not APSTUDIO_INVOKED
|