Skip to content

Conversation

@Amit-Matth
Copy link
Contributor

@Amit-Matth Amit-Matth commented Jan 14, 2026

Added pipette tool with magnifier support, real-time color picking, and full undo/redo integration with tests.

PAINTROID-791

New Features and Enhancements

🎨 Pipette Tool

  • Pick colors directly from the canvas by tapping any pixel
  • No page switching, seamless, in-canvas interaction (Paintroid-like UX)
  • Selected color is applied instantly to the paint provider

🔍 Magnifier Glass

  • Zoomed-in view under finger/cursor for precise picking
  • Follows interaction point and positions above the finger
  • Uses ValueNotifier for smooth, efficient updates
  • Auto-hides on finger release

↩️ Undo / Redo Support

  • Added ColorChangedCommand to track color changes
  • Integrated with command manager for proper undo/redo
  • Preserves initial color state for accurate rollbacks

Refactorings and Bug Fixes

🔧 Command System

  • Updated command factory to support ColorChangedCommand
  • Proper command registration for state management
  • Improved paint provider integration with pipette tool

🧪 Testing

  • Unit tests for pipette tool (pipette_tool_test.dart)
  • Widget tests for magnifier glass (magnifier_glass_test.dart)
  • Added FakeToolBoxStateProvider for isolated tests
  • Verified undo/redo behavior coverage

Your checklist for this pull request

Please review the contributing guidelines and wiki pages of this repository.

  • Include the name of the Jira ticket in the PR’s title
  • Add the link to the ticket in Jira in the description of the PR
  • Include a summary of the changes plus the relevant context
  • Choose the proper base branch (develop)
  • Confirm that the changes follow the project’s coding guidelines (Wiki)
  • Verify that the changes generate no compiler or linter warnings
  • Perform a self-review of the changes
  • Verify to commit no other files than the intentionally changed ones
  • Include reasonable and readable tests verifying the added or changed behavior
  • Confirm that new and existing tests pass locally
  • Check that the commits’ message style matches the project’s guideline
  • Verify that your changes do not have any conflicts with the base branch
  • After the PR, verify that all CI checks have passed
  • Add new information to the Wiki

@Amit-Matth Amit-Matth marked this pull request as draft January 14, 2026 03:39
@Amit-Matth Amit-Matth marked this pull request as ready for review January 17, 2026 02:58
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