Isaiah Odhner
0754db7218
Fix IndexError when pressing Ctrl+A followed by Delete in a textbox
2023-04-26 17:08:32 -04:00
Isaiah Odhner
c1375d81ed
Make Select All select text within the textbox, if applicable
2023-04-26 17:04:24 -04:00
Isaiah Odhner
088b7e9b2d
Clamp text selection endpoint while dragging
...
This fixes weird or non-traditional behavior where dragging further away
from the textbox when the mouse is outside the textbox would continue to
offset the cursor index. It wasn't totally unreasonable, but the
traditional behavior is to clamp it, and it makes it easier to select
whole lines.
2023-04-26 17:00:54 -04:00
Isaiah Odhner
c46586cc51
Show text selection within Textbox, and update it with Shift+arrows
2023-04-26 16:47:55 -04:00
Isaiah Odhner
1f171259bb
Fix shifted/cutoff selection when melding with negative coordinates
...
Code intended to prevent errors was also creating an offset between
the source and target regions. The source region needs to be adjusted
to match the clipped target region.
2023-04-26 13:49:33 -04:00
Isaiah Odhner
0c52788843
Fix some type checker errors
2023-04-26 13:35:52 -04:00
Isaiah Odhner
3f3375c1fd
Paste to top left of viewport (when scrolled right/down)
2023-04-26 13:13:42 -04:00
Isaiah Odhner
5bd6684ba7
Clean up commented out clipboard code
2023-04-26 13:03:53 -04:00
Isaiah Odhner
f114723be4
Make pasting undoable
2023-04-26 12:47:08 -04:00
Isaiah Odhner
55c280cdfb
Don't use pyperclip.is_available()
2023-04-26 12:38:14 -04:00
Isaiah Odhner
8c936552b7
Don't delete selection if copy fails during cut
2023-04-26 12:32:12 -04:00
Isaiah Odhner
0c3cc45ddd
Start implementing copy/paste with pyperclip
2023-04-26 12:28:42 -04:00
Isaiah Odhner
ed5e399a58
Don't delete the whole textbox when pressing Delete
2023-04-26 11:19:16 -04:00
Isaiah Odhner
fe8c05bdc0
Reorder expanding_directory_tree next to directory_tree_selected_path
2023-04-26 03:21:09 -04:00
Isaiah Odhner
c81d45756b
Add docstrings to all PaintApp state, replacing comments
2023-04-26 03:19:23 -04:00
Isaiah Odhner
3849f57ed6
Add docstrings to all functions
2023-04-26 03:01:00 -04:00
Isaiah Odhner
a5518a5894
Remove redundant cancel_preview, handled by stop_action_in_progress
2023-04-26 02:38:27 -04:00
Isaiah Odhner
6d6ef25da4
Cancel active tool by pressing both mouse buttons
2023-04-26 01:30:36 -04:00
Isaiah Odhner
bf8c7fa1a6
Comment/typecheck new CharInput render_line code
2023-04-26 01:24:37 -04:00
Isaiah Odhner
63c9a3ea11
Cancel active tool with Escape
2023-04-26 00:38:50 -04:00
Isaiah Odhner
c6967c69f5
Show selected foreground color in the CharInput
2023-04-26 00:06:57 -04:00
Isaiah Odhner
d043d444e9
Hide selection border while dragging
2023-04-25 19:22:57 -04:00
Isaiah Odhner
15ffabbaac
Use repr instead of str when formatting exceptions
...
This is a little better, but not great.
2023-04-25 19:03:50 -04:00
Isaiah Odhner
1ab1dfb037
Fix extraneous white cell at top left when loading ANSI files
2023-04-25 18:43:28 -04:00
Isaiah Odhner
ba7f8e6a0a
Don't invert the inner textbox border, that's too visually confusing
2023-04-25 18:31:50 -04:00
Isaiah Odhner
5ba8cbdbb8
Fix assertion error when using Select or Text before any other tool
...
AssertionError: selection_drag_offset should only be set if there's a selection
2023-04-25 18:26:15 -04:00
Isaiah Odhner
aae99c3247
Add parenthesis in complex canvas rendering conditional
2023-04-25 18:19:54 -04:00
Isaiah Odhner
66f4b77ff3
Further clarify comment about selection cutout vs melding regions
2023-04-25 17:36:52 -04:00
Isaiah Odhner
5141044ef0
Clarify/expound comment about selection cutout vs melding regions
2023-04-25 17:07:50 -04:00
Isaiah Odhner
91ce544569
Move selection box with arrow keys
...
Note: This doesn't cut out the selection if you haven't dragged it yet,
with the mouse. It should probably be equivalent to mouse dragging, but
this current behavior could be useful too.
2023-04-25 16:53:47 -04:00
Isaiah Odhner
d94482aa82
Discard textbox if you never typed anything into it
2023-04-25 16:25:47 -04:00
Isaiah Odhner
f33802af30
Make Text tool undoable
2023-04-25 16:14:29 -04:00
Isaiah Odhner
5faaccbd2a
Make Clear Selection (Delete) undoable
2023-04-25 16:07:23 -04:00
Isaiah Odhner
65dbc4bfe6
Refactor conditional to early return
2023-04-25 15:54:34 -04:00
Isaiah Odhner
522004638e
DRY meld_selection + action_clear_selection
2023-04-25 15:53:40 -04:00
Isaiah Odhner
b793a31108
Stop active tool when hitting Ctrl+A
2023-04-25 15:43:43 -04:00
Isaiah Odhner
277a879b5c
Finalize Polygon/Curve when switching tools
2023-04-25 15:42:36 -04:00
Isaiah Odhner
0decdb06d7
DRY polygon/curve undo state creation
2023-04-25 15:41:24 -04:00
Isaiah Odhner
8472b37859
Keep Curve/Polygon preview when mouse leaves the canvas
2023-04-25 15:41:24 -04:00
Isaiah Odhner
8c932ea53f
Fix dragging selection by top left corner
...
I recognized this as another Offset -> bool coercion issue.
2023-04-25 14:39:59 -04:00
Isaiah Odhner
b46273cf9f
Add a threshold to Color Eraser, comparing color components
2023-04-25 13:51:48 -04:00
Isaiah Odhner
84af26c0a2
Implement Color Eraser feature
2023-04-25 13:27:54 -04:00
Isaiah Odhner
f5ea658848
Fix CharInput interfering with Text tool
2023-04-24 23:28:36 -04:00
Isaiah Odhner
f8cfcb0f6e
Make text tool use selected colors
...
This is a little weird because the selected background color is
analogous to the foreground color in MS Paint, for the other tools,
with the foreground color having no equivalent as it's just pixels
instead of character cells.
So with the default white canvas and black "background color",
this now draws a black text box, unlike MS Paint's default behavior
for the text tool of drawing a white text box.
2023-04-24 23:14:46 -04:00
Isaiah Odhner
fdca36daa1
Allow setting text color with Ctrl+click
2023-04-24 22:52:24 -04:00
Isaiah Odhner
61227597f8
Fix flood fill infinite loop when color under cursor matches fill color
2023-04-24 22:18:48 -04:00
Isaiah Odhner
a91dd25996
Use interpolation feature of my localization function
2023-04-24 21:14:35 -04:00
Isaiah Odhner
cfc82a55c1
Fix unlocalized save changes prompt
2023-04-24 21:13:26 -04:00
Isaiah Odhner
de1a77036b
Bind F1 to Help Topics
2023-04-24 20:43:11 -04:00
Isaiah Odhner
9c4728c483
Improve layout of Custom Zoom window
2023-04-24 20:33:12 -04:00