Desktop GUI Documentation ========================= PyArchInit-Mini provides a native desktop application built with Tkinter, offering a traditional desktop experience for managing archaeological data with offline capabilities. .. toctree:: :maxdepth: 2 :caption: Desktop GUI Contents: quickstart interface_overview sites_management us_management inventory_management harris_matrix analytics export_import media_manager tools_menu database_configuration internationalization Quick Start ----------- Starting the Desktop Application ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To launch the desktop GUI: .. code-block:: bash pyarchinit-mini-gui Or from Python: .. code-block:: python from pyarchinit_mini.desktop_gui.gui_app import main main() System Requirements ~~~~~~~~~~~~~~~~~~~ - Python 3.8 or higher - Tkinter (included with Python) - 1024x768 minimum resolution - 4GB RAM recommended - Windows, macOS, or Linux First Launch ~~~~~~~~~~~~ On first launch: 1. Database selection dialog appears 2. Choose SQLite (default) or PostgreSQL 3. For SQLite: automatic setup in ~/.pyarchinit_mini/ 4. For PostgreSQL: enter connection details 5. Main window opens with dashboard Interface Overview ------------------ Main Window Layout ~~~~~~~~~~~~~~~~~~ The desktop GUI features a traditional menu-driven interface: **Menu Bar:** - File (New, Open, Save, Export, Exit) - Edit (Cut, Copy, Paste, Find) - View (Sites, US, Inventory, Tools) - Tools (Harris Matrix, Analytics, Export/Import) - Database (Connect, Info, Backup) - Window (Cascade, Tile) - Help (Documentation, About) **Toolbar:** Quick access buttons for: - New Site - New US - New Inventory - Search - Refresh - Settings **Status Bar:** - Current database - Record count - User info - Connection status Navigation ~~~~~~~~~~ Multiple ways to navigate: 1. **Menu Navigation**: Traditional File β†’ View β†’ Sites 2. **Toolbar Buttons**: Quick access to common actions 3. **Keyboard Shortcuts**: Ctrl+N for new, Ctrl+S for save 4. **Tree View**: Hierarchical site/US browser Sites Management ---------------- Sites List Window ~~~~~~~~~~~~~~~~~ Access via View β†’ Sites: **Features:** - Sortable columns - Right-click context menu - Double-click to edit - Search box with filters - Print preview **Columns:** - ID - Site Name - Nation - Region - Comune - Province - Definition (IT) - Definition (EN) Site Dialog ~~~~~~~~~~~ Create/Edit site dialog: **Layout:** - Form fields in logical groups - Required fields marked with * - Tab order optimization - Validation indicators **Fields:** - Site Name* (Entry widget) - Location/Nation (Combobox) - Region (Combobox) - Comune (Entry) - Province (Entry) - Definition IT (Text widget) - Definition EN (Text widget) **Buttons:** - Save (Ctrl+S) - Save & New - Cancel (Esc) - Reset Stratigraphic Units (US) Management ------------------------------------ US List Window ~~~~~~~~~~~~~~ Accessed via View β†’ Stratigraphic Units: **Tree View Display:** Shows hierarchical structure: .. code-block:: πŸ“ Pompei β”œβ”€β”€ πŸ“ Area A β”‚ β”œβ”€β”€ US 1001 β”‚ β”œβ”€β”€ US 1002 β”‚ └── US 1003 └── πŸ“ Area B β”œβ”€β”€ US 2001 └── US 2002 **List View Columns:** - Site - Area - US Number - Type - Definition - Period - Relationships US Extended Dialog ~~~~~~~~~~~~~~~~~~ The US form with 49 fields across 6 tabs: **Tab 1: Dati Generali** .. code-block:: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Sito*: [Dropdown_______________β–Ό] β”‚ β”‚ Area: [_______] US*: [_______] β”‚ β”‚ Anno: [_______] β”‚ β”‚ β”‚ β”‚ D. Stratigrafica: [Text area_____] β”‚ β”‚ [______________] β”‚ β”‚ D. Interpretativa:[Text area_____] β”‚ β”‚ [______________] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ **Tab 2: Dati Stratigrafici** Period selectors, phase fields, unit type dropdown **Tab 3: Rapporti** Relationship entry with validation: - Smart US picker dialog - Reciprocal relationship checking - Visual relationship browser **Tab 4: Caratteristiche** Physical characteristics with ICCD thesaurus: - Color picker - Consistency dropdown - Inclusions checklist **Tab 5: Documentazione** - Multi-line text fields - File attachments - Photo references **Tab 6: Misure** Numeric entries with units Tab Navigation ~~~~~~~~~~~~~~ - Click tab headers - Ctrl+Tab for next tab - Ctrl+Shift+Tab for previous - Red dot indicates validation errors Inventory Management -------------------- Inventory List ~~~~~~~~~~~~~~ View β†’ Material Inventory: **Advanced Features:** - Thumbnail view option - Grouping by type/material - Quick filters toolbar - Bulk operations Inventory Extended Dialog ~~~~~~~~~~~~~~~~~~~~~~~~~ 37 fields across 8 tabs: **Special Widgets:** 1. **Photo Display** - Thumbnail preview - Click to enlarge - Drag & drop upload 2. **ICCD Lookups** - Type ahead search - Hierarchical browser - Recent selections 3. **Numeric Spinboxes** - Up/down arrows - Range validation - Unit labels **Tab Layout Example:** .. code-block:: β”Œβ”€ Dati Principali ─┬─ Misure ─┬─ Datazione ─┐ β”‚ β”‚ β”‚ β”‚ β”‚ N. Inventario*: [____] β”‚ β”‚ Tipo Reperto: [Dropdownβ–Ό] β”‚ β”‚ Definizione: [_____________________] β”‚ β”‚ β”‚ β”‚ [Photo ] Classe: [Ceramica β–Ό] β”‚ β”‚ [Preview ] Stato: [Integro β–Ό] β”‚ β”‚ [Area ] β”‚ β”‚ β”‚ β”‚ Sito: [Pompei β–Ό] Area: [A] US: [1001] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Harris Matrix Viewer -------------------- Matrix Window ~~~~~~~~~~~~~ Tools β†’ Harris Matrix: **Controls Panel:** - Site selector - Grouping options - Zoom controls - Export buttons - Print setup **Visualization Area:** - Canvas with pan/zoom - Node interaction - Relationship lines - Period coloring **Features:** 1. **Interactive Nodes** - Click for details - Double-click to edit US - Hover for tooltip 2. **Layout Options** - Hierarchical (default) - Force-directed - Circular - Custom positioning 3. **Export Formats** - PNG (300 DPI) - PDF (vector) - SVG (editable) - GraphML (yEd) Matrix Editor ~~~~~~~~~~~~~ Right-click node β†’ Edit Relationships: .. code-block:: β”Œβ”€ Edit Relationships: US 1001 ──────┐ β”‚ β”‚ β”‚ Covers: [1002, 1003 ][+] β”‚ β”‚ Covered by: [________________][+] β”‚ β”‚ Fills: [________________][+] β”‚ β”‚ Filled by: [________________][+] β”‚ β”‚ Cuts: [________________][+] β”‚ β”‚ Cut by: [________________][+] β”‚ β”‚ β”‚ β”‚ [Validate] [Apply] [Cancel] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Analytics Dashboard ------------------- Analytics Window ~~~~~~~~~~~~~~~~ Tools β†’ Analytics Dashboard: **Layout:** Matplotlib canvas with 8 subplots: .. code-block:: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Sites by β”‚ Sites by β”‚ β”‚ Region β”‚ Province β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ US by β”‚ US by β”‚ β”‚ Period β”‚ Type β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ Finds by β”‚ Finds by β”‚ β”‚ Type β”‚ State β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ Top Sites β”‚ Top Sites β”‚ β”‚ by US β”‚ by Finds β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ **Toolbar:** - Save figure - Zoom/Pan - Reset view - Configure subplots Export/Import Dialog -------------------- Export Tab ~~~~~~~~~~ Tools β†’ Export/Import Data: .. code-block:: β”Œβ”€ Export ─┬─ Import ─┐ β”‚ β”‚ β”‚ Data Type: β”‚ β”‚ β—‹ Sites β”‚ β”‚ ● US β”‚ β”‚ β—‹ Inventory β”‚ β”‚ β”‚ β”‚ Format: [Excel β–Ό] β”‚ β”‚ β”‚ β”‚ Filters: β”‚ β”‚ Site: [All β–Ό] β”‚ β”‚ β”‚ β”‚ Output: [Browse..] β”‚ β”‚ [Export] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Import Tab ~~~~~~~~~~ Drag & drop area with: - File preview grid - Column mapping - Validation results - Import progress Media Manager ------------- Advanced Media Dialog ~~~~~~~~~~~~~~~~~~~~~ Tools β†’ Media Manager: **Three-Panel Layout:** 1. **Folder Tree** (Left) - Sites hierarchy - Media types - Tags 2. **Thumbnail Grid** (Center) - Image previews - File info overlay - Multi-select 3. **Details Panel** (Right) - Large preview - Metadata editor - Related entities **Toolbar Actions:** - Upload files - Create folder - Delete selected - Batch rename - Generate thumbnails Database Configuration ---------------------- Connection Dialog ~~~~~~~~~~~~~~~~~ Database β†’ Connect: .. code-block:: β”Œβ”€ Database Configuration ────────┐ β”‚ β”‚ β”‚ Type: β—‹ SQLite ● PostgreSQL β”‚ β”‚ β”‚ β”‚ β”Œβ”€ PostgreSQL Settings ───────┐ β”‚ β”‚ β”‚ Host: [localhost_______] β”‚ β”‚ β”‚ β”‚ Port: [5432___________] β”‚ β”‚ β”‚ β”‚ Database: [pyarchinit__] β”‚ β”‚ β”‚ β”‚ Username: [____________] β”‚ β”‚ β”‚ β”‚ Password: [************] β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ [Test Connection] [Save] [Cancel]β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Backup Dialog ~~~~~~~~~~~~~ Database β†’ Backup: - Automatic filename - Compression option - Schedule setup - Restore function Internationalization -------------------- Language Selection ~~~~~~~~~~~~~~~~~~ View β†’ Language: .. code-block:: β”Œβ”€ Select Language ───┐ β”‚ β”‚ β”‚ β—‹ English β”‚ β”‚ ● Italiano β”‚ β”‚ β”‚ β”‚ [OK] [Cancel] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Changes apply immediately to: - All menus - Dialog titles - Form labels - Button text - Messages Keyboard Shortcuts ------------------ Global Shortcuts ~~~~~~~~~~~~~~~~ - ``Ctrl+N``: New (context-aware) - ``Ctrl+O``: Open - ``Ctrl+S``: Save - ``Ctrl+Q``: Quit - ``F1``: Help - ``F5``: Refresh Navigation ~~~~~~~~~~ - ``Ctrl+Tab``: Next tab - ``Ctrl+Shift+Tab``: Previous tab - ``Alt+``: Access menu - ``Tab/Shift+Tab``: Navigate fields Window Management ~~~~~~~~~~~~~~~~~ - ``Ctrl+W``: Close window - ``Ctrl+M``: Minimize - ``Alt+F4``: Exit application Customization ------------- Preferences Dialog ~~~~~~~~~~~~~~~~~~ Edit β†’ Preferences: **General Tab:** - Theme (Light/Dark) - Font size - Date format - Number format - Startup behavior **Display Tab:** - Grid lines - Alternating rows - Tooltips - Animations **Advanced Tab:** - Auto-save interval - Backup frequency - Cache size - Debug mode Theme Support ~~~~~~~~~~~~~ Built-in themes: 1. **Classic**: Windows 95 style 2. **Modern**: Flat design 3. **Dark**: Dark mode 4. **High Contrast**: Accessibility Performance Tips ---------------- Optimization ~~~~~~~~~~~~ 1. **Large Datasets** - Use pagination (100 records) - Enable lazy loading - Filter before loading 2. **Memory Usage** - Close unused windows - Clear image cache - Limit preview size 3. **Responsiveness** - Disable animations - Reduce autosave frequency - Use local database Troubleshooting --------------- Common Issues ~~~~~~~~~~~~~ **Window Not Responding:** 1. Check database connection 2. Wait for operation to complete 3. Force quit: Ctrl+Alt+Del (Windows) **Display Issues:** 1. Update graphics drivers 2. Change theme 3. Reset window positions **Database Locks:** 1. Close other connections 2. Restart application 3. Check file permissions Error Dialogs ~~~~~~~~~~~~~ Standard error dialog: .. code-block:: β”Œβ”€ Error ─────────────────────┐ β”‚ ⚠ β”‚ β”‚ Database connection failed β”‚ β”‚ β”‚ β”‚ Details: β”‚ β”‚ Connection refused on β”‚ β”‚ localhost:5432 β”‚ β”‚ β”‚ β”‚ [Copy] [Report] [OK] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Integration ----------- Command Line Arguments ~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash # Open specific database pyarchinit-mini-gui --database /path/to/db.sqlite # Start maximized pyarchinit-mini-gui --maximized # Debug mode pyarchinit-mini-gui --debug Python Integration ~~~~~~~~~~~~~~~~~~ .. code-block:: python from pyarchinit_mini.desktop_gui import MainWindow from tkinter import Tk # Custom startup root = Tk() app = MainWindow(root, database_path="custom.db") # Add custom menu app.add_menu("Plugins", custom_commands) # Start app.mainloop() Platform-Specific Features -------------------------- Windows ~~~~~~~ - Native file dialogs - System tray integration - Windows installer available macOS ~~~~~ - Native menu bar - Dock integration - Retina display support Linux ~~~~~ - GTK theme support - System notifications - AppImage available