Skip to content

Add tabbed interface with EXIF metadata support#6

Merged
myyc merged 6 commits intomasterfrom
feature/tabbed-interface-and-exif
Sep 16, 2025
Merged

Add tabbed interface with EXIF metadata support#6
myyc merged 6 commits intomasterfrom
feature/tabbed-interface-and-exif

Conversation

@myyc
Copy link
Copy Markdown
Owner

@myyc myyc commented Sep 11, 2025

Summary

  • Implement tabbed sidebar with ADJUSTMENTS and INFO tabs
  • Add comprehensive EXIF data extraction from RAW files
  • Display camera information, exposure settings, and lens details
  • Show image dimensions and file information in INFO tab
  • Remove redundant EXIF overlay and toolbar indicator
  • Update editor screen to use new tabbed interface

Technical Implementation

  • Extended LibRaw C interface to extract EXIF metadata
  • Added FFI bindings for EXIF data structures
  • Created ExifMetadata model for Dart/FFI integration
  • Implemented RawImageDataResult to prevent race conditions
  • Built ExifWidget for displaying EXIF information
  • Created TabbedSidebar with organized tab layout
  • Updated ImageState to manage EXIF data
  • Removed redundant UI elements

Test Plan

  • Build and run on Linux
  • Verify EXIF data displays correctly in INFO tab
  • Test all adjustment controls in ADJUSTMENTS tab
  • Confirm tab switching works properly
  • Check macOS CI build passes
  • Verify no regression in existing functionality

🤖 Generated with Claude Code

myyc and others added 6 commits September 12, 2025 00:46
- Implement tabbed sidebar with ADJUSTMENTS and INFO tabs
- Add comprehensive EXIF data extraction from RAW files
- Display camera information, exposure settings, and lens details
- Show image dimensions and file information in INFO tab
- Remove redundant EXIF overlay and toolbar indicator
- Update editor screen to use new tabbed interface

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Extend LibRaw C interface to extract EXIF metadata
- Add FFI bindings for EXIF data structures
- Create ExifMetadata model for Dart/FFI integration
- Implement RawImageDataResult to prevent race conditions
- Add ExifWidget for displaying EXIF information
- Create TabbedSidebar with ADJUSTMENTS and INFO tabs
- Update ImageState to manage EXIF data
- Remove redundant EXIF overlay from editor
- Remove EXIF indicator from toolbar

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Fix timestamp conversion from time_t to string
- Remove references to non-existent libraw fields
- Add time.h include for timestamp formatting
- Set unavailable EXIF fields to default values

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add missing time.h include to macOS raw_processor
- Fix pointer-bool conversion warnings by checking first character instead of array address
- Properly format timestamp as string instead of direct assignment
- Remove references to non-existent LibRaw fields on macOS
- Update Linux tests to use RawImageDataResult API
- Fix all CI test failures

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Parse date string format instead of incorrect Unix timestamp casting
- Fixes issue where 2025 photos showed as 1998
- Handle "YYYY:MM:DD HH:MM:SS" format properly
- Add error handling for malformed date strings

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Copy raw_processor_common.h to linux directory during Flatpak build
- Update raw_processor.h to use local copy instead of relative path
- Fixes CI build failure where header file was not found

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@myyc myyc merged commit 8fdfc40 into master Sep 16, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant