- Move message handler payload data into structs
- Organize the file structure used by `editor/src/messages/portfolio/document` `/node_graph` and `/graph_operation`
- Make derive attributes use `serde::Serialize, serde::Deserialize` consistently instead of `use serde::{Deserialize, Serialize};` imports
- Various other code cleanup and refactoring
* Sending Toggle Ruler message and setting visibility. Text and markers not working
* Added resize on mount for Ruler Input
* Set default for rulers_visible to pass test
* Ruler Visibility portfolio wide instead of document
* Sending Toggle Ruler message and setting visibility. Text and markers not working
* Ruler Visibility portfolio wide instead of document
* Cleanup
* Reorganize the View menu bar; add toggle rulers hotkey
* Remove non-working redundant bools, and make rulers set per-document
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Adding blank PortfolioMessage to close docs
* Connected new PortfolioMessage to Menu Bar
* Adding functionality to new PortfolioMessage
* Amending outdated tests in color.rs
* Added Pan,Tilt,Zoom to View menu + Tilt shortcut changes
* formating
* fixed menus, added action for when dispatch happens from menu
* set key mappings to spec
* fix labels for navigation tool
* fix some spacing
* add action that locks spacebar for navigation when using it as a modifier so the node overlay does not toggle
* escape from the node-graph-overlay, set toggle to ctrl+space, fix demo art
* move all transform state into an enum
* rename confusing flag
* fix demo art and tests
---------
Co-authored-by: Ezbaze <rybitwamateusz3@gmail.com>
Making the change as advised. This change will allow the user to see all possible submenus without being able to use them if there is no active document.
This somewhat reverts the behaviour of one previous PR.
* [wip]fix: disable fill and gradient tools on bmp images
- aims to fix#1161
* [wip]fix: disable gradient tool for bmp images
* fix: disable gradient tool for bitmap images
- fixes https://github.com/GraphiteEditor/Graphite/issues/1161
* [wip]fix: disable menu bar elements if no open document
* [WIP]feat: render certain menubar elements if document is open
* fix: conditional menu bar rendering fixes
- update menu bar on certain document actions
- fix menu bar order on rendering all elements
* refactor: change conditional menu elements property
- use existing 'disabled' property
* feat: render menu dropdown items conditionally
* fix: revert formatter whitespace changes
* refactor: improve variable naming and message usage
- name menu bar bool flag better
- use SendLayout message and remove unneeded calls
* 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
* Node graph API stub
* Rename and fix SetInputValue
* Get list of links from network
* Test populating node graph UI
* Node properties
* Fix viewport bounds
* Slightly change promise usage
* A tiny bit of cleanup I did while reading code
* Cleanup and work towards hooking up node links in Vue template
* Add the brighten colour node
* Run cargo fmt
* Add to and from hsla
* GrayscaleImage node with small perf improvement
* Fix gutter panel resizing
* Display node links from backend
* Add support for connecting node links
* Use existing message
* Fix formatting error
* Add a (currently crashing) brighten node
* Replace brighten node with proto node implementation
* Add support for connecting node links
* Update watch dirs
* Add hue shift node
* Add create_node function to editor api
* Basic insert node UI
* Fix broken names
* Add log
* Fix positioning
* Set connector index to 0
* Add properties for Heu shift / brighten
* Allow deselecting nodes
* Redesign Properties panel collapsible sections
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* 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>