-
-
Notifications
You must be signed in to change notification settings - Fork 579
Migrate dialogs to Rust and add a New File dialog #623
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Deploying with
|
Latest commit: |
a4a12b0
|
Status: | ✅ Deploy successful! |
Preview URL: | https://bd310197.graphite-master.pages.dev |
Happy to help out with the styling! Let me know how I can be of assistance. |
I was struggling to remove the added spacing from the widget rows, but I have now mostly solved that by removing the I have also added some focus styling so that it is easier to tab through the properties/dialogs, but feel free to change this. |
@@ -2,7 +2,7 @@ | |||
<FloatingMenu class="menu-list" :direction="direction" :type="'Dropdown'" ref="floatingMenu" :windowEdgeMargin="0" :scrollableY="scrollableY" data-hover-menu-keep-open> | |||
<template v-for="(section, sectionIndex) in menuEntries" :key="sectionIndex"> | |||
<Separator :type="'List'" :direction="'Vertical'" v-if="sectionIndex > 0" /> | |||
<LayoutRow | |||
<button |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have concerns about switching this to a <button>
since it isn't valid to have interactive HTML elements inside, such as <label>
or <input type="checkbox">
or the many others contained in this. It still technically works, but might have unexpected side effects and isn't valid HTML according to the spec, and wouldn't pass validation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How is a <label>
interactive? Also I can't see any instances where labels or inputs are within the new button elements?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<label>
s are interactive because they can be clicked to cause an input to change (like toggling a checkbox, setting a radio button, etc.). See https://stackoverflow.com/questions/39386497/can-i-nest-button-inside-another-button
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh yes forgot about labels being clickable. I will revert this change and add properly supporting dropdowns with keyboard navigation to issue #575.
@@ -1,10 +1,10 @@ | |||
<template> | |||
<LayoutRow class="dropdown-input"> | |||
<LayoutRow class="dropdown-box" :class="{ disabled }" :style="{ minWidth: `${minWidth}px` }" @click="() => clickDropdownBox()" data-hover-menu-spawner> | |||
<button class="dropdown-box" :class="{ disabled }" :style="{ minWidth: `${minWidth}px` }" @click="() => clickDropdownBox()" data-hover-menu-spawner> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here too.
<LayoutRow class="dropdown-input"> | ||
<LayoutRow class="dropdown-box" :class="{ disabled }" :style="{ minWidth: `${minWidth}px` }" @click="() => clickDropdownBox()" data-hover-menu-spawner> | ||
<LayoutRow class="font-input"> | ||
<button class="dropdown-box" :class="{ disabled }" :style="{ minWidth: `${minWidth}px` }" @click="() => clickDropdownBox()" data-hover-menu-spawner> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here too.
// TODO: A better approach is to pass along a boolean to the backend's input preprocessor so it can know if it's being occluded by the GUI. | ||
// TODO: This would allow it to properly decide to act on removing hover focus from something that was hovered in the canvas before moving over the GUI. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thoughts on this? I don't have any experience working with the Input Preprocessor system.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This means that we just ignore the events in the rust code rather than here in the js code?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem was that mouse movement through a dialog (or other floating menus, like popovers and dropdowns) was being picked up by the backend, causing for example the hovered shapes to show their blue path outlines.
This was how I went about hackily fixing it from the JS side, but it isn't perfect-- for example, hovering over a shape causes its outline to show blue and then this gets stuck in that state (since no subsequent mousemove events are sent to the backend) when it hovers over a floating menu like a dropdown menu, and it only updates (by hiding the outline if the mouse is far enough away) after the mouse is back out from the floating menu.
Filtering these on the JS side so the backend doesn't even hear about these events isn't the right solution. The backend needs to hear about these events, but it needs to be told that the mouse is currently over a part of the UI rather than the viewport so it can act accordingly.
But I don't really know how the IPP code works and I didn't have time to dive in deeper to figure that all out. It's fine as a TODO comment for now, but if you are inclined to try fixing it in this PR or later someday, that'd be awesome (up to you if/when though!).
* Migrate coming soon and about dialog to Rust * Migrate confirm close and close all * Migrate dialog error * Improve keyboard navigation throughout UI * Cleanup and fix panic dialog * Reduce css spacing to better match old dialogs * Add new document modal * Fix crash when generating default name * Populate rust about graphite data on startup * Code review changes * Move one more :focus CSS rule into App.vue * Add a dialog message and move dialogs * Split out keyboard input navigation from this branch * Improvements including simplifying panic dialog code Co-authored-by: Keavon Chambers <[email protected]>
* changed path_intersection structure * comment * Removed do_if! * Create project website with near-complete home page * Added support for undoing - i gotta say the undo system is quite nice * Website responsive resizing improvements * Add newsletter signup to website * Pen tool fixes (#563) Resolves 3 known bugs with the pen tool. * Fixed crash pointed out by @caleb-ad * Fixed issue with final path segment losing handle data * Replace curves with lines when under a drag threshold, improves usability. * Readability improvements, improved comments * Color Input (#565) * initial working prototype * clean up component * Fix alignment * Code review tweaks Co-authored-by: Keavon Chambers <[email protected]> * Made the non-inclusive end of a pathseg less inclusive Fixed Bug: When doing a closepath it is possible that the current and beginning edge are both None Fixed Numerous other things * changed how closepath works modified how overlapping_curve_intersections is working * Add "New Folder"/"Delete Selected" buttons to layer panel Closes #532 * Update npm dependencies * Set text color based on its fill when it's being edited * Reorder tool icons, update favicon and logo, and other icon cleanup * Bug Fix: Line-Line intersect origin wasn't being preserved * Bug Fix: proper assignment of t_values in overlapping_curve_intersections * Honestly, i don't even know what I was thinking when i wrote the logic for splitting a subcurve at endpoints, but it was wrong. * Feature: overlapping rectangles behave properly, (except when intersections aren't found correctly) * Remake node type icons (closes #483); color picker cleanup * Change tool shelf icon colors to use classes not style * Add Image node icon and rename node from Path to Shape * Bug Fix: proper intersection construction in partial overlap case * cleaned up log statements * Add website revisions and many new pages * Add features page and fixes to website * Fix clippy lints and update packages (#568) * Fix type error in Brave browser (#569) * Small website text improvements * Various website fixes * Adjusted constants Rearranged intersection algorithm * Changed BooleanOperation::SubtractBack to use SubtractFront Added composite_boolean_operation for operations with more than one shape * Add node graph mockup to website * Differentiate between scale and dimensions (#570) * Differentiate between scale and dimensions * Fix layout and naming of properties * Add embedable images (#564) * Add embedable bitmaps * Initial work on blob urls * Finish implementing data url * Fix some bugs * Rename bitmap to image * Fix loading image on document load * Add transform properties for image * Remove some logging * Add image dimensions * Implement system copy and paste * Fix pasting images * Fix test * Address code review Co-authored-by: Keavon Chambers <[email protected]> * Bump minimist from 1.2.5 to 1.2.6 in /frontend (#571) Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix panic dialogue when handling a message (#573) * Fix panic dialogue when handling a message * Fix indents for github reporting * More whitespace improvements * Save: line_intersection * Add documentation to many parts of the Rust codebase (#552) * add lots of doccomments * add conversion traits from layerdatatypes to layers * add suggested doc improvements * Code review changes Co-authored-by: Keavon Chambers <[email protected]> * Add additional stroke properties (#582) * Add aditional stroke properties * Add comment explaining clones for closure * Improve labels * Fix doc test Co-authored-by: Keavon Chambers <[email protected]> * Bug Fix: .y not .x * Expand upon the "Announcing Graphite alpha" blog post * All shapes now have a Fill in the properties panel; color inputs are now optional (#583) * Add aditional stroke properties * Make the colour input optional * Fix fmt * Apply code review changes * Code review nitpicks * Fix recursion Co-authored-by: Keavon Chambers <[email protected]> * New blog post: "Distributed computing with the Graphene runtime" * Fix gradient transformation (#588) * Fix with perfect circle * Actually fix rotated gradient * Gradient transform & fix on rotated canvas * Cleanup & remove logging * Add properties panel entries for artboards (#572) * Artboards can have properties * fix crash when renaming artboards * moved target document to utility types * moved import and added test for file version information * fixed missing import * fix error from merging * - typed properties message handler data - removed name from WidgetRow * clippy warnings * artboards have seperate properties section * - color input can be forced to have selection - crop tool shows on switch - select tool shows on switch * variable renamed * change to use PropType<boolean> instead of PropType<Boolean> * Add an artboard icon * Add the "Delete Artboard" hint * fix unselect glitch * even better * Remove the Transform properties group Co-authored-by: Keavon Chambers <[email protected]> * Bug Fix: boolean union on multiple shapes * Font selection for text layers (#585) * Add font dropdown * Add fonts * Font tool options * Fix tests * Replace http with https * Add variant selection * Do not embed default font * Use proxied font list API * Change default font to Merriweather * Remove outdated comment * Specify font once & load font into foreignobject * Fix tests * Rename variant to font_style * Change TextAreaInput to use FieldInput (WIP, breaks functionality) * Fix textarea functionality * Fix types * Add weight name mapping * Change labeling of "Italic" * Remove commented HTML node * Rename font "name" to "font_family" and "file" "font_file" * Fix errors * Fix fmt Co-authored-by: Keavon Chambers <[email protected]> * Improvements to the layer transform cage UX (#589) * Allow input system to handle mousedown while dragging * Fix abort * Add apsect ratio * Make comment more explicit * Fix abort when dragging * Constrain when dragging edge * Rename Crop tool to Artboard tool * Stop pointerdown event from properties panel (#600) * Change stroke weight from ints to floats (#601) Also rename stroke "width" to "weight" in some places. Closes #587 * Change stroke weight from ints to floats * "miter_limit" -> "line_join_miter_limit" * Bump file format version * cargo update Prevent iterating beyond list bounds * Bug fix: proper composite intersection behavior * fix warnings * Improved ray casting and common intersection cases Finding intersections near path segment endpoints was previously unreliable because of imprecision, and the necessity of avoiding double counting any intersections. And, because of snapping, intersections on the endpoints of path segments are a common case. This also improved the ray casting use case, which previously used a "fudge factor" to mitigate the common problem of casting a ray into line endpoints. * fixed warnings * Fix properties deselect (#606) * Fix properties panel deselect * Fix arrow cursors on select tool * Fix drag from UI to document causing mouse down * Fix tests * Cleanup * cleanup messages * Draw the outlines of shapes on hover and selection (#609) * Add hover outline overlay * Increase selection tolerance * Increase weight * Only check if top intersection is selected * Outline selected paths * Reduce outline weight * Increase path tool outline thickness to match hover * Update to use unreachable! instead of panic! * Upgrade vue-cli to version 5 (#594) * Upgrade to Vue CLI 5 (fails to compile) * Upgrade versions with last few weeks of changes * Updated to fork-ts-checker-webpack-plugin 7.2.3 * Remove package.json overrides in lieu of the fixed [email protected] * Fix svg importing * Comments * For debugging only: added infrastructureLogging to vue.config.js * Now works on Windows, waiting on fork-ts-checker-webpack-plugin backport if possible * Switch to the fixed [email protected] * Fix license checker build compilation Co-authored-by: 0hypercube <[email protected]> * Tidy up the full frontend codebase and use optional chaining where possible (#620) * Tidy up the full frontend codebase and use optional chaining where possible * Code review changes * Add a hotkey to select a random primary color (#622) * Add shortcut to select a random primary color (#549) * Rename random primary color message and reduce the number of calls to generate_uuid * Add documentation for SelectRandomPrimaryColor message * Set the alpha value to 255 instead of a random value #622 Co-authored-by: Florent Collin <[email protected]> * Move the Layer Tree panel's New Folder and Delete icons into the options bar * Migrate dialogs to Rust and add a New File dialog (#623) * Migrate coming soon and about dialog to Rust * Migrate confirm close and close all * Migrate dialog error * Improve keyboard navigation throughout UI * Cleanup and fix panic dialog * Reduce css spacing to better match old dialogs * Add new document modal * Fix crash when generating default name * Populate rust about graphite data on startup * Code review changes * Move one more :focus CSS rule into App.vue * Add a dialog message and move dialogs * Split out keyboard input navigation from this branch * Improvements including simplifying panic dialog code Co-authored-by: Keavon Chambers <[email protected]> * Snapping system improvements and refactor (#621) * Snap to points and refactor * Improve dot position on bounds * Add snap matrix * Cleanup * Code review * Half axis fade rather than increase it * Fix fmt * Hide snap to point overlay when active Co-authored-by: Keavon Chambers <[email protected]> * Add the File > Export dialog and PNG/JPG downloading (#629) * Add export dialog * Code review changes * More code review feedback * Fix compilation on stable Rust * Fixes to problems Co-authored-by: Keavon Chambers <[email protected]> * Code review Co-authored-by: Keavon Chambers <[email protected]> Co-authored-by: Oliver Davies <[email protected]> Co-authored-by: mfish33 <[email protected]> Co-authored-by: 0HyperCube <[email protected]> Co-authored-by: TrueDoctor <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alaska <[email protected]> Co-authored-by: 0hypercube <[email protected]> Co-authored-by: FlorentCollin <[email protected]> Co-authored-by: Florent Collin <[email protected]>
* Migrate coming soon and about dialog to Rust * Migrate confirm close and close all * Migrate dialog error * Improve keyboard navigation throughout UI * Cleanup and fix panic dialog * Reduce css spacing to better match old dialogs * Add new document modal * Fix crash when generating default name * Populate rust about graphite data on startup * Code review changes * Move one more :focus CSS rule into App.vue * Add a dialog message and move dialogs * Split out keyboard input navigation from this branch * Improvements including simplifying panic dialog code Co-authored-by: Keavon Chambers <[email protected]>
* changed path_intersection structure * comment * Removed do_if! * Create project website with near-complete home page * Added support for undoing - i gotta say the undo system is quite nice * Website responsive resizing improvements * Add newsletter signup to website * Pen tool fixes (#563) Resolves 3 known bugs with the pen tool. * Fixed crash pointed out by @caleb-ad * Fixed issue with final path segment losing handle data * Replace curves with lines when under a drag threshold, improves usability. * Readability improvements, improved comments * Color Input (#565) * initial working prototype * clean up component * Fix alignment * Code review tweaks Co-authored-by: Keavon Chambers <[email protected]> * Made the non-inclusive end of a pathseg less inclusive Fixed Bug: When doing a closepath it is possible that the current and beginning edge are both None Fixed Numerous other things * changed how closepath works modified how overlapping_curve_intersections is working * Add "New Folder"/"Delete Selected" buttons to layer panel Closes #532 * Update npm dependencies * Set text color based on its fill when it's being edited * Reorder tool icons, update favicon and logo, and other icon cleanup * Bug Fix: Line-Line intersect origin wasn't being preserved * Bug Fix: proper assignment of t_values in overlapping_curve_intersections * Honestly, i don't even know what I was thinking when i wrote the logic for splitting a subcurve at endpoints, but it was wrong. * Feature: overlapping rectangles behave properly, (except when intersections aren't found correctly) * Remake node type icons (closes #483); color picker cleanup * Change tool shelf icon colors to use classes not style * Add Image node icon and rename node from Path to Shape * Bug Fix: proper intersection construction in partial overlap case * cleaned up log statements * Add website revisions and many new pages * Add features page and fixes to website * Fix clippy lints and update packages (#568) * Fix type error in Brave browser (#569) * Small website text improvements * Various website fixes * Adjusted constants Rearranged intersection algorithm * Changed BooleanOperation::SubtractBack to use SubtractFront Added composite_boolean_operation for operations with more than one shape * Add node graph mockup to website * Differentiate between scale and dimensions (#570) * Differentiate between scale and dimensions * Fix layout and naming of properties * Add embedable images (#564) * Add embedable bitmaps * Initial work on blob urls * Finish implementing data url * Fix some bugs * Rename bitmap to image * Fix loading image on document load * Add transform properties for image * Remove some logging * Add image dimensions * Implement system copy and paste * Fix pasting images * Fix test * Address code review Co-authored-by: Keavon Chambers <[email protected]> * Bump minimist from 1.2.5 to 1.2.6 in /frontend (#571) Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix panic dialogue when handling a message (#573) * Fix panic dialogue when handling a message * Fix indents for github reporting * More whitespace improvements * Save: line_intersection * Add documentation to many parts of the Rust codebase (#552) * add lots of doccomments * add conversion traits from layerdatatypes to layers * add suggested doc improvements * Code review changes Co-authored-by: Keavon Chambers <[email protected]> * Add additional stroke properties (#582) * Add aditional stroke properties * Add comment explaining clones for closure * Improve labels * Fix doc test Co-authored-by: Keavon Chambers <[email protected]> * Bug Fix: .y not .x * Expand upon the "Announcing Graphite alpha" blog post * All shapes now have a Fill in the properties panel; color inputs are now optional (#583) * Add aditional stroke properties * Make the colour input optional * Fix fmt * Apply code review changes * Code review nitpicks * Fix recursion Co-authored-by: Keavon Chambers <[email protected]> * New blog post: "Distributed computing with the Graphene runtime" * Fix gradient transformation (#588) * Fix with perfect circle * Actually fix rotated gradient * Gradient transform & fix on rotated canvas * Cleanup & remove logging * Add properties panel entries for artboards (#572) * Artboards can have properties * fix crash when renaming artboards * moved target document to utility types * moved import and added test for file version information * fixed missing import * fix error from merging * - typed properties message handler data - removed name from WidgetRow * clippy warnings * artboards have seperate properties section * - color input can be forced to have selection - crop tool shows on switch - select tool shows on switch * variable renamed * change to use PropType<boolean> instead of PropType<Boolean> * Add an artboard icon * Add the "Delete Artboard" hint * fix unselect glitch * even better * Remove the Transform properties group Co-authored-by: Keavon Chambers <[email protected]> * Bug Fix: boolean union on multiple shapes * Font selection for text layers (#585) * Add font dropdown * Add fonts * Font tool options * Fix tests * Replace http with https * Add variant selection * Do not embed default font * Use proxied font list API * Change default font to Merriweather * Remove outdated comment * Specify font once & load font into foreignobject * Fix tests * Rename variant to font_style * Change TextAreaInput to use FieldInput (WIP, breaks functionality) * Fix textarea functionality * Fix types * Add weight name mapping * Change labeling of "Italic" * Remove commented HTML node * Rename font "name" to "font_family" and "file" "font_file" * Fix errors * Fix fmt Co-authored-by: Keavon Chambers <[email protected]> * Improvements to the layer transform cage UX (#589) * Allow input system to handle mousedown while dragging * Fix abort * Add apsect ratio * Make comment more explicit * Fix abort when dragging * Constrain when dragging edge * Rename Crop tool to Artboard tool * Stop pointerdown event from properties panel (#600) * Change stroke weight from ints to floats (#601) Also rename stroke "width" to "weight" in some places. Closes #587 * Change stroke weight from ints to floats * "miter_limit" -> "line_join_miter_limit" * Bump file format version * cargo update Prevent iterating beyond list bounds * Bug fix: proper composite intersection behavior * fix warnings * Improved ray casting and common intersection cases Finding intersections near path segment endpoints was previously unreliable because of imprecision, and the necessity of avoiding double counting any intersections. And, because of snapping, intersections on the endpoints of path segments are a common case. This also improved the ray casting use case, which previously used a "fudge factor" to mitigate the common problem of casting a ray into line endpoints. * fixed warnings * Fix properties deselect (#606) * Fix properties panel deselect * Fix arrow cursors on select tool * Fix drag from UI to document causing mouse down * Fix tests * Cleanup * cleanup messages * Draw the outlines of shapes on hover and selection (#609) * Add hover outline overlay * Increase selection tolerance * Increase weight * Only check if top intersection is selected * Outline selected paths * Reduce outline weight * Increase path tool outline thickness to match hover * Update to use unreachable! instead of panic! * Upgrade vue-cli to version 5 (#594) * Upgrade to Vue CLI 5 (fails to compile) * Upgrade versions with last few weeks of changes * Updated to fork-ts-checker-webpack-plugin 7.2.3 * Remove package.json overrides in lieu of the fixed [email protected] * Fix svg importing * Comments * For debugging only: added infrastructureLogging to vue.config.js * Now works on Windows, waiting on fork-ts-checker-webpack-plugin backport if possible * Switch to the fixed [email protected] * Fix license checker build compilation Co-authored-by: 0hypercube <[email protected]> * Tidy up the full frontend codebase and use optional chaining where possible (#620) * Tidy up the full frontend codebase and use optional chaining where possible * Code review changes * Add a hotkey to select a random primary color (#622) * Add shortcut to select a random primary color (#549) * Rename random primary color message and reduce the number of calls to generate_uuid * Add documentation for SelectRandomPrimaryColor message * Set the alpha value to 255 instead of a random value #622 Co-authored-by: Florent Collin <[email protected]> * Move the Layer Tree panel's New Folder and Delete icons into the options bar * Migrate dialogs to Rust and add a New File dialog (#623) * Migrate coming soon and about dialog to Rust * Migrate confirm close and close all * Migrate dialog error * Improve keyboard navigation throughout UI * Cleanup and fix panic dialog * Reduce css spacing to better match old dialogs * Add new document modal * Fix crash when generating default name * Populate rust about graphite data on startup * Code review changes * Move one more :focus CSS rule into App.vue * Add a dialog message and move dialogs * Split out keyboard input navigation from this branch * Improvements including simplifying panic dialog code Co-authored-by: Keavon Chambers <[email protected]> * Snapping system improvements and refactor (#621) * Snap to points and refactor * Improve dot position on bounds * Add snap matrix * Cleanup * Code review * Half axis fade rather than increase it * Fix fmt * Hide snap to point overlay when active Co-authored-by: Keavon Chambers <[email protected]> * Add the File > Export dialog and PNG/JPG downloading (#629) * Add export dialog * Code review changes * More code review feedback * Fix compilation on stable Rust * Fixes to problems Co-authored-by: Keavon Chambers <[email protected]> * Code review Co-authored-by: Keavon Chambers <[email protected]> Co-authored-by: Oliver Davies <[email protected]> Co-authored-by: mfish33 <[email protected]> Co-authored-by: 0HyperCube <[email protected]> Co-authored-by: TrueDoctor <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alaska <[email protected]> Co-authored-by: 0hypercube <[email protected]> Co-authored-by: FlorentCollin <[email protected]> Co-authored-by: Florent Collin <[email protected]>
* Migrate coming soon and about dialog to Rust * Migrate confirm close and close all * Migrate dialog error * Improve keyboard navigation throughout UI * Cleanup and fix panic dialog * Reduce css spacing to better match old dialogs * Add new document modal * Fix crash when generating default name * Populate rust about graphite data on startup * Code review changes * Move one more :focus CSS rule into App.vue * Add a dialog message and move dialogs * Split out keyboard input navigation from this branch * Improvements including simplifying panic dialog code Co-authored-by: Keavon Chambers <[email protected]>
* changed path_intersection structure * comment * Removed do_if! * Create project website with near-complete home page * Added support for undoing - i gotta say the undo system is quite nice * Website responsive resizing improvements * Add newsletter signup to website * Pen tool fixes (#563) Resolves 3 known bugs with the pen tool. * Fixed crash pointed out by @caleb-ad * Fixed issue with final path segment losing handle data * Replace curves with lines when under a drag threshold, improves usability. * Readability improvements, improved comments * Color Input (#565) * initial working prototype * clean up component * Fix alignment * Code review tweaks Co-authored-by: Keavon Chambers <[email protected]> * Made the non-inclusive end of a pathseg less inclusive Fixed Bug: When doing a closepath it is possible that the current and beginning edge are both None Fixed Numerous other things * changed how closepath works modified how overlapping_curve_intersections is working * Add "New Folder"/"Delete Selected" buttons to layer panel Closes #532 * Update npm dependencies * Set text color based on its fill when it's being edited * Reorder tool icons, update favicon and logo, and other icon cleanup * Bug Fix: Line-Line intersect origin wasn't being preserved * Bug Fix: proper assignment of t_values in overlapping_curve_intersections * Honestly, i don't even know what I was thinking when i wrote the logic for splitting a subcurve at endpoints, but it was wrong. * Feature: overlapping rectangles behave properly, (except when intersections aren't found correctly) * Remake node type icons (closes #483); color picker cleanup * Change tool shelf icon colors to use classes not style * Add Image node icon and rename node from Path to Shape * Bug Fix: proper intersection construction in partial overlap case * cleaned up log statements * Add website revisions and many new pages * Add features page and fixes to website * Fix clippy lints and update packages (#568) * Fix type error in Brave browser (#569) * Small website text improvements * Various website fixes * Adjusted constants Rearranged intersection algorithm * Changed BooleanOperation::SubtractBack to use SubtractFront Added composite_boolean_operation for operations with more than one shape * Add node graph mockup to website * Differentiate between scale and dimensions (#570) * Differentiate between scale and dimensions * Fix layout and naming of properties * Add embedable images (#564) * Add embedable bitmaps * Initial work on blob urls * Finish implementing data url * Fix some bugs * Rename bitmap to image * Fix loading image on document load * Add transform properties for image * Remove some logging * Add image dimensions * Implement system copy and paste * Fix pasting images * Fix test * Address code review Co-authored-by: Keavon Chambers <[email protected]> * Bump minimist from 1.2.5 to 1.2.6 in /frontend (#571) Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix panic dialogue when handling a message (#573) * Fix panic dialogue when handling a message * Fix indents for github reporting * More whitespace improvements * Save: line_intersection * Add documentation to many parts of the Rust codebase (#552) * add lots of doccomments * add conversion traits from layerdatatypes to layers * add suggested doc improvements * Code review changes Co-authored-by: Keavon Chambers <[email protected]> * Add additional stroke properties (#582) * Add aditional stroke properties * Add comment explaining clones for closure * Improve labels * Fix doc test Co-authored-by: Keavon Chambers <[email protected]> * Bug Fix: .y not .x * Expand upon the "Announcing Graphite alpha" blog post * All shapes now have a Fill in the properties panel; color inputs are now optional (#583) * Add aditional stroke properties * Make the colour input optional * Fix fmt * Apply code review changes * Code review nitpicks * Fix recursion Co-authored-by: Keavon Chambers <[email protected]> * New blog post: "Distributed computing with the Graphene runtime" * Fix gradient transformation (#588) * Fix with perfect circle * Actually fix rotated gradient * Gradient transform & fix on rotated canvas * Cleanup & remove logging * Add properties panel entries for artboards (#572) * Artboards can have properties * fix crash when renaming artboards * moved target document to utility types * moved import and added test for file version information * fixed missing import * fix error from merging * - typed properties message handler data - removed name from WidgetRow * clippy warnings * artboards have seperate properties section * - color input can be forced to have selection - crop tool shows on switch - select tool shows on switch * variable renamed * change to use PropType<boolean> instead of PropType<Boolean> * Add an artboard icon * Add the "Delete Artboard" hint * fix unselect glitch * even better * Remove the Transform properties group Co-authored-by: Keavon Chambers <[email protected]> * Bug Fix: boolean union on multiple shapes * Font selection for text layers (#585) * Add font dropdown * Add fonts * Font tool options * Fix tests * Replace http with https * Add variant selection * Do not embed default font * Use proxied font list API * Change default font to Merriweather * Remove outdated comment * Specify font once & load font into foreignobject * Fix tests * Rename variant to font_style * Change TextAreaInput to use FieldInput (WIP, breaks functionality) * Fix textarea functionality * Fix types * Add weight name mapping * Change labeling of "Italic" * Remove commented HTML node * Rename font "name" to "font_family" and "file" "font_file" * Fix errors * Fix fmt Co-authored-by: Keavon Chambers <[email protected]> * Improvements to the layer transform cage UX (#589) * Allow input system to handle mousedown while dragging * Fix abort * Add apsect ratio * Make comment more explicit * Fix abort when dragging * Constrain when dragging edge * Rename Crop tool to Artboard tool * Stop pointerdown event from properties panel (#600) * Change stroke weight from ints to floats (#601) Also rename stroke "width" to "weight" in some places. Closes #587 * Change stroke weight from ints to floats * "miter_limit" -> "line_join_miter_limit" * Bump file format version * cargo update Prevent iterating beyond list bounds * Bug fix: proper composite intersection behavior * fix warnings * Improved ray casting and common intersection cases Finding intersections near path segment endpoints was previously unreliable because of imprecision, and the necessity of avoiding double counting any intersections. And, because of snapping, intersections on the endpoints of path segments are a common case. This also improved the ray casting use case, which previously used a "fudge factor" to mitigate the common problem of casting a ray into line endpoints. * fixed warnings * Fix properties deselect (#606) * Fix properties panel deselect * Fix arrow cursors on select tool * Fix drag from UI to document causing mouse down * Fix tests * Cleanup * cleanup messages * Draw the outlines of shapes on hover and selection (#609) * Add hover outline overlay * Increase selection tolerance * Increase weight * Only check if top intersection is selected * Outline selected paths * Reduce outline weight * Increase path tool outline thickness to match hover * Update to use unreachable! instead of panic! * Upgrade vue-cli to version 5 (#594) * Upgrade to Vue CLI 5 (fails to compile) * Upgrade versions with last few weeks of changes * Updated to fork-ts-checker-webpack-plugin 7.2.3 * Remove package.json overrides in lieu of the fixed [email protected] * Fix svg importing * Comments * For debugging only: added infrastructureLogging to vue.config.js * Now works on Windows, waiting on fork-ts-checker-webpack-plugin backport if possible * Switch to the fixed [email protected] * Fix license checker build compilation Co-authored-by: 0hypercube <[email protected]> * Tidy up the full frontend codebase and use optional chaining where possible (#620) * Tidy up the full frontend codebase and use optional chaining where possible * Code review changes * Add a hotkey to select a random primary color (#622) * Add shortcut to select a random primary color (#549) * Rename random primary color message and reduce the number of calls to generate_uuid * Add documentation for SelectRandomPrimaryColor message * Set the alpha value to 255 instead of a random value #622 Co-authored-by: Florent Collin <[email protected]> * Move the Layer Tree panel's New Folder and Delete icons into the options bar * Migrate dialogs to Rust and add a New File dialog (#623) * Migrate coming soon and about dialog to Rust * Migrate confirm close and close all * Migrate dialog error * Improve keyboard navigation throughout UI * Cleanup and fix panic dialog * Reduce css spacing to better match old dialogs * Add new document modal * Fix crash when generating default name * Populate rust about graphite data on startup * Code review changes * Move one more :focus CSS rule into App.vue * Add a dialog message and move dialogs * Split out keyboard input navigation from this branch * Improvements including simplifying panic dialog code Co-authored-by: Keavon Chambers <[email protected]> * Snapping system improvements and refactor (#621) * Snap to points and refactor * Improve dot position on bounds * Add snap matrix * Cleanup * Code review * Half axis fade rather than increase it * Fix fmt * Hide snap to point overlay when active Co-authored-by: Keavon Chambers <[email protected]> * Add the File > Export dialog and PNG/JPG downloading (#629) * Add export dialog * Code review changes * More code review feedback * Fix compilation on stable Rust * Fixes to problems Co-authored-by: Keavon Chambers <[email protected]> * Code review Co-authored-by: Keavon Chambers <[email protected]> Co-authored-by: Oliver Davies <[email protected]> Co-authored-by: mfish33 <[email protected]> Co-authored-by: 0HyperCube <[email protected]> Co-authored-by: TrueDoctor <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alaska <[email protected]> Co-authored-by: 0hypercube <[email protected]> Co-authored-by: FlorentCollin <[email protected]> Co-authored-by: Florent Collin <[email protected]>
Closes #627
Closes #523
Migrate dialogs to Rust widgets.
ToDo: