Commit Graph

1225 Commits

Author SHA1 Message Date
Isaiah Odhner
f950c9964b Stamp the selection with Ctrl 2023-04-23 02:14:28 -04:00
Isaiah Odhner
9f6a8fd559 Trap focus within window when cycling with Tab / Shift+Tab
Too easy!
2023-04-23 02:09:40 -04:00
Isaiah Odhner
4dc7bc08d6 Make paint.py executable 2023-04-23 01:46:49 -04:00
Isaiah Odhner
edc0048ecc Half-implement menu item hotkeys 2023-04-23 01:43:54 -04:00
Isaiah Odhner
031a0a3e72 Implement Select All 2023-04-23 01:24:43 -04:00
Isaiah Odhner
1a6bfb5b90 Lazily add a triangle to indicate the Zoom submenu 2023-04-23 01:03:52 -04:00
Isaiah Odhner
f106cc5c35 Gray out unimplemented menu items 2023-04-23 00:51:29 -04:00
Isaiah Odhner
dbce1434cd Constrain selection so it doesn't go completely outside the document bounds 2023-04-23 00:11:17 -04:00
Isaiah Odhner
cb0db3b6e6 Deselect when clicking outside the canvas 2023-04-23 00:01:57 -04:00
Isaiah Odhner
49bd80b17a Fix out of bounds array access for Free-Form Select 2023-04-22 23:51:12 -04:00
Isaiah Odhner
74dceee2f3 Implement Free-Form Select tool 2023-04-22 23:03:09 -04:00
Isaiah Odhner
42fdbe83d7 Fix unused parameter to erase_region
Why wasn't this reported?
2023-04-22 21:57:58 -04:00
Isaiah Odhner
505605c660 Add typing to preprocess.py script that I'm not using
ChatGPT did most of this for me. I just said "Please add type annotations to this code. Surround the code in a Markdown code block."
and then fixed the Generator and the lambda.
2023-04-22 21:53:51 -04:00
Isaiah Odhner
5d778c1879 Annotate **kwargs as Any 2023-04-22 21:44:05 -04:00
Isaiah Odhner
11f3319ced Complete type checking of file I'm not even using 2023-04-22 21:18:05 -04:00
Isaiah Odhner
625324e66b Fix BorderDefinition typing 2023-04-22 21:11:47 -04:00
Isaiah Odhner
2d88529bc0 Guess at how to typecheck this parametric event type 2023-04-22 21:08:38 -04:00
Isaiah Odhner
2c8f79e37a Shorten code and help the type checker understand that this isn't None
dhooo short
2023-04-22 21:08:38 -04:00
Isaiah Odhner
3d419f13b3 Remove unused NAME_MAP code from calculator example 2023-04-22 20:53:13 -04:00
Isaiah Odhner
9f06373cb7 Add a bunch more type checking hints/assertions 2023-04-22 20:51:51 -04:00
Isaiah Odhner
2c8d74808a Add a whole bunch more type checking 2023-04-22 18:54:21 -04:00
Isaiah Odhner
1384fd1670 Enable strict type checking for all files... 2023-04-22 18:53:36 -04:00
Isaiah Odhner
f70a062b9b Strictly type check enhanced_directory_tree.py, ignoring private access 2023-04-22 18:04:38 -04:00
Isaiah Odhner
2e839b2564 Clean up unused imports 2023-04-22 17:49:15 -04:00
Isaiah Odhner
4f8ea8a93d Strictly type check i18n.py 2023-04-22 17:45:04 -04:00
Isaiah Odhner
a8f174eb8e Fix the last type checking error, and simply --reload-on-changes
Hopefully this makes it more robust as well...
2023-04-22 17:29:41 -04:00
Isaiah Odhner
2827457497 Fix default document size
Broken in "Start type checking code" 1b56d78f70
2023-04-22 14:55:22 -04:00
Isaiah Odhner
da62add6c1 Avoid "possibly unbound" errors 2023-04-22 14:24:49 -04:00
Isaiah Odhner
3b2b383595 Assert a few more specific types 2023-04-22 14:24:49 -04:00
Isaiah Odhner
2a7427c5c8 Make Pyright happy with EnhancedDirectoryTree scrolling
- Don't use a lambda so it doesn't return something
- Assert region is found (not None)
2023-04-22 14:24:49 -04:00
Isaiah Odhner
91dd804f4a Fix type annotation for interpolations (*varargs gives a tuple) 2023-04-22 14:24:49 -04:00
Isaiah Odhner
00ab062d3e Assert type so Pyright knows about .plain and .markup 2023-04-22 13:58:09 -04:00
Isaiah Odhner
7cd44c0abe Ignore border_title
I found these "type: ignore" comments where border_title is defined,
and copied 'em!
2023-04-22 13:46:02 -04:00
Isaiah Odhner
27c9646b20 DRY window closing and make type checker happy with an assertion 2023-04-22 13:46:02 -04:00
Isaiah Odhner
065c5be2cb Appease the type checker by using maps of buttons 2023-04-22 13:46:02 -04:00
Isaiah Odhner
77295bd622 Int, innit? Init int 2023-04-22 13:11:23 -04:00
Isaiah Odhner
f7b68c7e7a Now do we enter the land of making code worse for the type checker's benefit? 2023-04-22 02:42:20 -04:00
Isaiah Odhner
f52201eebe Fix presumed method for removing nodes
(This removal code never runs, currently.)
2023-04-22 02:42:19 -04:00
Isaiah Odhner
1b56d78f70 Start type checking code 2023-04-22 02:31:58 -04:00
Isaiah Odhner
6b01b604fe Set up pyright type checker 2023-04-22 02:27:43 -04:00
Isaiah Odhner
27c95a537c Make mouse_at_start an Offset (consistently)
It was already initially defined as an Offset.
2023-04-22 01:12:48 -04:00
Isaiah Odhner
45fb2eb521 Implement polygon tool 2023-04-22 01:07:20 -04:00
Isaiah Odhner
2c469a5ef3 Draw curve preview also on mouse up and mouse down events
It feels more solid now, but it still disappears if the mouse leaves the canvas.
2023-04-21 23:52:23 -04:00
Isaiah Odhner
4f99b9f6a7 Make eraser tool square
I also have an erase_region method I could use now, alternatively.
2023-04-21 23:45:04 -04:00
Isaiah Odhner
6ce1856ec7 Fix brush/pencil/eraser previews 2023-04-21 23:40:48 -04:00
Isaiah Odhner
55e6ed6caf DRY some curve tool preview stuff 2023-04-21 23:38:11 -04:00
Isaiah Odhner
4d86f783be Implement Curve tool 2023-04-21 23:16:58 -04:00
Isaiah Odhner
18b78cea03 Outside the Ministry of Silly Walks's jurisdiction, it's a squaredance. 2023-04-21 23:16:58 -04:00
Isaiah Odhner
cc0bdf0973 Implement Text tool 2023-04-21 22:12:16 -04:00
Isaiah Odhner
7442480979 Optimize/abbreviate repeated integer division by the magnification level 2023-04-21 20:49:41 -04:00