* Nudging is now based on local pixel dimensions
* Brush tool live preview (#1116)
* Disable vector preview for brush tool
* Fix brush preview
* Fix warping
* Left and right square brackets to change size
* Add linear interpolation
* Modfiy existing selected brush layer
* Resolve warnings
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Duplicating a layer selects only new layer
* Add Ctrl+J duplicate alias hotkey
---------
Co-authored-by: 0HyperCube <78500760+0HyperCube@users.noreply.github.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Change tauri build directory back to `../dist` (#1033)
* Select Tool: Deselect selected layer when clicked while holding shift
* Fix formatting
* Change deselecting to happen on mouse up
* Clean up debug and rustfmt
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* adds lock angle to pen tool
The current [Shift] Break Handle behavior should become Alt instead of Shift
The current [Ctrl] Snap 15° behavior should become Shift instead of Ctrl
Implement the extend-in-this-direction feature called [Ctrl] Lock Angle that exists in the Line tool, but doesn't yet exist in the Pen tool
* avoid clone by passing exlusive ref to tool data field directly
* Rearrange hints
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* implements pan/zoom to the selected layer(s) on Period
Relates to #989
* adds layer menu support: Layer -> Center View on Selection
* relocate Center View on Selection to View -> Zoom to selected
* use the proper menu title
* Selecting an individual anchor point deselects each of the other points
* git gra
* Selecting intersecting shapes,selects top shape
* Merge commit
* cargo fmt
* fixed: can't drag multiple selected shapes.
* Merge commit
* Merge commit
* Code review tweaks
* Merge commit
* Fixed topmost layer and previous_mouse_position
* Fixed issues when clicking on anchors
* Works
* Function name change
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Allow text editing when pressing Enter on a single selected text layer
* Updated LayerDataType import
* Extract the logic to set the edit layer into a function
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Reuse existing gradient
* Double click to insert gradient stop
* Add history states to the gradient tool
* Do trig in viewport space so it is actually perpendicular
* Sync tool options with active gradient
* Deleting points with delete key
* More tolerance on inserting points
* Don't allow disabling input or output nodes
* Shortcuts to show and preview node
* Update preview tooltip and label
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Move the Subpath type to graphene-std
* Add the transform subpath node
* Delete selected nodes
* Inserting node list on right click
* Add several bitmap manipulator nodes
* Convert add node to use f64
* Add posterize node
* Rename names randomly
* Fix naming
* Exposure node
* Fix typo
* Adjust exposure node range
* Comment out vector nodes
* Adjust exposure range again
* Posterise as ints
* Rename input
* Use >= in the to hsl function
* Add cancel hint to Eyedropper tool
* Improve eyedropper overlay CSS
* Make CSS for transparent checkered background reusable
* Add color choice preview to color picker
* Draw text and markers as contrasting white or black
* Add reactive color updating and new/initial swapping
* Add Hex, RGB, HSV, and Opacity inputs
* Add none color and preset buttons
* Add eyedropper button and fix alignment (now visually done)
* Wire up none colors through the backend and style the ColorInput widget
* Add color info chip to ColorInput widget
* Fix all UX bugs
* Add more tooltips
* Fix FloatingMenu recursive loop
* Prevent mouse stray from closing color picker while dragging pickers
Closes#703
* Fix deselect all layers shortcut
* Add temporary eyedropper for Chromium browsers and a coming soon fallback
* Add AI Artist layer
* WIP add a button to download the rendered folder under an AI Artist layer
* Successfully download the correct image
* Break out image downloading JS into helper function
* Change file download from using data URLs to blob URLs
* WIP rasterize to blob
* Remove dimensions from AI Artist layer
* Successfully draw rasterized image on layer after calculation
* Working txt2img generation based on user prompt
* Add img2img and the main parameters
* Fix ability to rasterize multi-depth documents with blob URL images by switching them to base64
* Fix test
* Rasterize with artboard background color
* Allow aspect ratio stretch of AI Artist images
* Add automatic resolution choosing
* Add a terminate button, and make the lifecycle more robust
* Add negative prompt
* Add range bounds for parameter inputs
* Add seed
* Add tiling and restore faces
* Add server status check, server hostname customization, and resizing layer to fit AI Artist resolution
* Fix background color of infinite canvas rasterization
* Escape prompt text sent in the JSON
* Revoke blob URLs when cleared/replaced to reduce memory leak
* Fix welcome screen logo color
* Add PreferencesMessageHandler
* Add persistent storage of preferences
* Fix crash introduced in previous commit when moving mouse on page load
* Add tooltips to the AI Artist layer properties
* Integrate AI Artist tool into the raster section of the tool shelf
* Add a refresh button to the connection status
* Fix crash when generating and switching to a different document tab
* Add persistent image storage to AI Artist layers and fix duplication bugs
* Add a generate with random seed button
* Simplify and standardize message names
* Majorly improve robustness of networking code
* Fix race condition causing default server hostname to show disconnected when app loads with AI Artist layer selected (probably, not confirmed fixed)
* Clean up messages and function calls by changing arguments into structs
* Update API to more recent server commit
* Add support for picking the sampling method
* Add machinery for filtering selected layers with type
* Replace placeholder button icons
* Improve the random icon by tilting the dice
* Use selected_layers() instead of repeating that code
* Fix borrow error
* Change message flow in progress towards fixing #797
* Allow loading image on non-active document (fixes#797)
* Reduce code duplication with rasterization
* Add AI Artist tool and layer icons, and remove ugly node layer icon style
* Rename "AI Artist" codename to "Imaginate" feature name
Co-authored-by: otdavies <oliver@psyfer.io>
Co-authored-by: 0hypercube <0hypercube@gmail.com>