Mikolaj Wielgus
2703f662ac
fix(autorouter): have band removal and via placement in undo/redo
2024-12-03 23:54:18 +01:00
Mikolaj Wielgus
c2daf9fbfe
feat(autorouter): use recorded edit applying for undo/redo
2024-12-03 08:35:11 +01:00
Mikolaj Wielgus
d17a34c0f6
fix(geometry,router,autorouter): some more fixes for edit recording
2024-12-03 00:39:02 +01:00
Alain Emilia Anna Zscheile
5aae676fb8
refactor(specctra/read): put read_quoted into a separate function again
2024-12-02 22:45:32 +01:00
Alain Emilia Anna Zscheile
e493c16053
fix(specctra/read): panic when return_token would override cached token
2024-12-02 22:41:23 +01:00
Alain Emilia Anna Zscheile
9ddc83e72a
feat(specctra/read): separate function to discard peeked char
...
This is useful to get rid of the pattern "self.next_char().unwrap();",
which makes it harder to assess panic safety of parsing code
(which should never panic via its public interface)
2024-12-02 22:41:23 +01:00
Alain Emilia Anna Zscheile
1d0c2cf953
fix(specctra): less (possible) panic!s in read_string
2024-12-02 22:41:23 +01:00
Mikolaj Wielgus
fe8fd3909f
fix(autorouter,router): actually propagate the edit out of route steppers
...
I forgot to do this earlier, and didn't notice because I didn't test
it. There are still a few changes to be done before recording and edit
applying is functional.
2024-12-02 05:56:37 +01:00
Mikolaj Wielgus
0760fb2da3
docs(drawing,router): rephrase docstrings some more
2024-12-02 01:25:45 +01:00
Mikolaj Wielgus
638979364c
docs(drawing): rephrase docstrings
2024-12-01 23:42:40 +01:00
Mikolaj Wielgus
db9d897315
refactor(autorouter): store edits in history entries
2024-11-29 03:45:48 +01:00
Mikolaj Wielgus
66cdf6fe4e
fix(geometry): don't check invariants on R-tree bbox init methods
2024-11-28 06:34:49 +01:00
Mikolaj Wielgus
9b1b135715
feat(board,layout,drawing): implement edit applying interface
2024-11-28 06:17:29 +01:00
Mikolaj Wielgus
847654b5c3
refactor(geometry): move edit application to new trait
2024-11-28 05:36:13 +01:00
Mikolaj Wielgus
a838310ecb
feat(geometry): add interface to apply edits
2024-11-28 05:15:39 +01:00
Mikolaj Wielgus
f17c8ce756
refactor(geometry): split out some initialization from node creation
...
This code will be shared with the routines implementing edit
application, which I will be implementing soon.
2024-11-26 03:06:16 +01:00
Mikolaj Wielgus
1f55e92026
refactor(geometry): move edit code to its own file
2024-11-25 22:42:25 +01:00
Alain Emilia Anna Zscheile
2d1af33204
build: put egui and cli into separate crates
...
* build(ci): try to fix CI
* build: use workspace dependencies for deduplication / drift avoidance
2024-11-20 15:44:02 +01:00
Alain Emilia Anna Zscheile
9dad83d221
fix(contracts,drawing): geometry_with_rtree -> recording_geometry_with_rtree
...
Fixes #105 .
2024-11-20 15:41:22 +01:00
Mikolaj Wielgus
fd22413057
feat(egui): set title to filename of opened DSN file
2024-11-20 00:57:03 +01:00
Mikolaj Wielgus
20e682243d
feat(egui,wasm): set `lang` attribute to current language
2024-11-19 23:14:04 +01:00
Alain Emilia Anna Zscheile
98d237270d
chore: fix cargo fmt
2024-11-16 16:10:54 +01:00
Szpachlarz
c528265f1a
docs(interactor): document activity.rs
2024-11-15 21:55:31 +00:00
Szpachlarz
6f2e6bd70e
docs(interactor): document interactor.rs
2024-11-15 21:55:31 +00:00
hakki
566ce37a6b
invoker: resolves ' https://codeberg.org/topola/topola/pulls/101#issuecomment-2438542 '
2024-11-15 21:55:08 +00:00
hakki
63804a0297
invoker: added trait description
2024-11-15 21:55:08 +00:00
hakki
7a01a76738
docs: resolved https://codeberg.org/fogti notes
2024-11-15 21:55:08 +00:00
hakki
aae99a9656
docs: Invoker initial docs
2024-11-15 21:55:08 +00:00
Alain Emilia Anna Zscheile
ddbaf2abe5
chore: fix cargo fmt
2024-11-15 20:46:29 +01:00
Mikolaj Wielgus
d6fe67a373
feat(board,layout,drawing): implement edit recording
...
Not stored in the undo/redo objects yet.
2024-11-13 00:00:56 +00:00
Mikolaj Wielgus
ad1b43b806
feat(geometry): implement recording geometry changes to edit objects
2024-11-13 00:00:56 +00:00
hakki
c1271e570e
docs: navigation mesh documented
2024-10-29 19:53:47 +01:00
hakki
75d41f983a
docs: add general description
2024-10-29 19:14:33 +01:00
Tomasz Cichoń
509e032dbc
specctra: echo the imported units when exporting
2024-10-28 23:30:10 +01:00
Tomasz Cichoń
77c0fa2272
specctra: various fixes to import
2024-10-27 07:19:12 +01:00
hakki
de0ba42e18
layout: general info about the module
2024-10-22 15:39:27 +00:00
Mikolaj Wielgus
2ef645bbaf
fix(cli,tests): set routed_band_width to 100.0 where I forgot
...
This was making the CLI build and tests fail because my second previous
commit was botched.
For future reference, I fixed the *.cmd files by running the following
in Fish shell:
```
for f in tests/**.cmd
jq ".done?.[].Autoroute[1].router_options.routed_band_width |= 100.0" $f | sponge $f
end
```
2024-10-22 14:58:20 +02:00
Mikolaj Wielgus
7d75f918e7
feat(autorouter): add pointroute execution, which routes to a point
...
Not available as a command (for now?). Hasn't been tested yet.
2024-10-22 00:40:40 +02:00
Mikolaj Wielgus
dc11b5d8ff
feat(egui,autorouter): make it possible to set routed band width
2024-10-21 02:48:04 +02:00
Mikolaj Wielgus
e62bac69ef
refactor(interactor,egui): pass pointer position down to interactions
2024-10-19 02:10:41 +02:00
Mikolaj Wielgus
1638a289ed
fix(egui): rename "Properties" to "Preferences"
...
I managed to conflate these two because both start with "Pr".
2024-10-17 23:41:37 +02:00
Mikolaj Wielgus
ac92623454
refactor(egui): move Properties menu to its own method
2024-10-14 23:24:13 +02:00
Mikolaj Wielgus
941a271339
fix(egui): show language display names instead of codes
2024-10-14 04:26:12 +02:00
Mikolaj Wielgus
4b66e585c5
feat(egui): add radio buttons to choose language
2024-10-14 02:50:05 +02:00
Mikolaj Wielgus
90afd70f2a
refactor(egui): move action definitions to a separate file
2024-10-14 01:34:59 +02:00
Mikolaj Wielgus
894326e3d5
fix(egui): actually impl. F1 keyboard shortcut for opening doc
2024-10-13 22:38:00 +02:00
Mikolaj Wielgus
2bc090b132
feat(egui): add `Help > Online Documentation` menu button
2024-10-13 16:25:04 +02:00
Mikolaj Wielgus
c1df3ba8ad
refactor: move `Interactor<...>` and friends to new module dir, `interactor`
2024-10-12 17:21:34 +02:00
Mikolaj Wielgus
23d1eaa722
refactor: make `Step::step(...)` return `ControlFlow<...>`
...
This is an iteration on what was suggested in
https://codeberg.org/topola/topola/pulls/79 .
This removes the need to create a new status type for steppers that
have only one intermediate state, and removes unidiomatic `TryInto<...>`
usage to determine if a stepper has finished.
2024-10-12 05:38:57 +02:00
Mikolaj Wielgus
a9e42eef17
refactor: make `Step`'s error an associated type
...
This was suggested in https://codeberg.org/topola/topola/pulls/79 .
2024-10-12 05:38:57 +02:00
Mikolaj Wielgus
6104e761d2
refactor: autogenerate getters with `derive-getters` crate
2024-10-11 18:43:15 +02:00
Mikolaj Wielgus
bdc021cb6e
refactor: destruct with `.dissolve()` autogenerated with `derive-getters` crate
...
Introduces `derive-getters` as a dependency.
2024-10-11 16:54:53 +02:00
Mikolaj Wielgus
3766ade270
refactor(egui): report invoker error one outside of `Interactor`
2024-10-11 03:20:36 +02:00
Mikolaj Wielgus
489f55a8b0
refactor(egui): split out some activity code to new module, `interactor`
2024-10-11 02:50:42 +02:00
Mikolaj Wielgus
3e9e3c69c9
refactor(egui): make `ActivityContext` generic over mesadata type
2024-10-11 00:05:40 +02:00
Alain Emilia Anna Zscheile
5c377e805b
general refactor: omit unnecessary clones
2024-10-10 12:21:54 +00:00
Alain Emilia Anna Zscheile
4f40c26bac
chore(autorouter): let ExecutionStepper::step_catch_err take Autorouter as context
2024-10-10 12:21:54 +00:00
Mikolaj Wielgus
8559734336
refactor: rename "trace" to "navcord", "tracer" to "navcorder"
...
Navcord stands for "navigation cord". I try to prefix anything that is
specific to the navmesh with the "nav-" prefix. I chose the word "cord"
as analogy to the terms "umbilical cord" (and by extension, umbilical
cable), and "power cord".
Calling this "trace" was misleading, as this term has other meanings
that are relevant to Topola: "trace" may refer to a debugging trace, and
more importantly, to a PCB track.
I've also shortened two comments that I found to mention the navcord as
"traces" during substitution.
2024-10-10 03:00:27 +02:00
Alain Emilia Anna Zscheile
911c974cfc
fix(egui/MenuBar): temporarily comment out all partial conditional enabled UIs
...
This is workaround for https://github.com/emilk/egui/issues/4774
(and can be reverted once that bug is fixed).
Here, we comment out all `ui.add_enabled_ui(..., |ui| ...);` wrappers
which don't cover whole menus (the bug above should only affect menus
in which only some items are disabled).
2024-10-09 19:43:23 +02:00
Alain Emilia Anna Zscheile
ae66a35b8f
egui: reset activity on error
2024-10-08 19:52:12 +02:00
Alain Emilia Anna Zscheile
e26b1c13ed
feat(egui): also disable activity buttons if some activity hasn't finished yet
2024-10-08 19:52:12 +02:00
Alain Emilia Anna Zscheile
b5c637e68b
egui/MenuBar: grey out workspace-tied commands when no workspace is loaded
2024-10-08 19:52:09 +02:00
Alain Emilia Anna Zscheile
e66fbe292b
egui/Viewport: merge zoom_to_fit part into paint, merge into update method
2024-10-08 13:47:39 +02:00
Alain Emilia Anna Zscheile
1420995492
fix(egui): temporarily move 'Place Via' keyboard flip out of workspace conditional
2024-10-08 13:38:31 +02:00
Alain Emilia Anna Zscheile
49f4063ac4
egui/MenuBar: reduce code duplication for Workspace Activities
2024-10-08 13:38:28 +02:00
Alain Emilia Anna Zscheile
d03e5c63a0
chore(egui): get rid of unused imports
2024-10-08 13:37:16 +02:00
Alain Emilia Anna Zscheile
bff11a5617
egui/Workspace: get rid of unnecessary Arc<Mutex<...>>
2024-10-08 13:33:49 +02:00
Alain Emilia Anna Zscheile
fd9bd439a7
egui/MenuBar: swap order of condition checking (check maybe_workspace first)
2024-10-08 13:32:19 +02:00
Alain Emilia Anna Zscheile
69f2ce3c2e
egui: add structure Workspace for two-phase workflow
2024-10-08 13:32:17 +02:00
Mikolaj Wielgus
f02b7be878
style(egui): update to match locale string tags
2024-10-08 04:49:43 +02:00
Alain Emilia Anna Zscheile
d0058ef5fd
router: get rid of unnecessary RouterError
2024-10-06 00:22:32 +02:00
Alain Emilia Anna Zscheile
01deaa4b12
build(contracts): use contracts-try v0.7 from crates.io
...
`contracts-try` is now developed at
https://codeberg.org/topola/contracts-try and was extracted
from this repo, and rebased upon the original
crate sources to ensure proper attribution.
This removes the `vendored` directory.
2024-10-06 00:18:56 +02:00
Alain Emilia Anna Zscheile
6f237077e3
fix(egui/MenuBar): fix deprecation warning about theme buttons
...
warning: use of deprecated function `egui::global_dark_light_mode_buttons`: Use global_theme_preference_buttons instead
--> src/bin/topola-egui/menu_bar.rs:242:36
|
242 | egui::widgets::global_dark_light_mode_buttons(ui);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(deprecated)]` on by default
2024-10-05 23:56:48 +02:00
Alain Emilia Anna Zscheile
04ab1ce69b
router: TraceStepper is not a real stepper
...
Contributes towards solving #82 properly later.
2024-10-05 23:14:17 +02:00
Mikolaj Wielgus
74ef5e356f
refactor(egui): add empty skeleton for interactions
2024-10-05 03:56:21 +02:00
Mikolaj Wielgus
a9b72334f7
refactor(egui): wrap `Invoker<...>` inside new `ActivityContext`
2024-10-04 22:43:17 +02:00
Mikolaj Wielgus
8b9d4074e4
chore: perform forgotten rename of `command.rs` to `execution.rs`
2024-10-04 22:00:40 +02:00
hakki
5f6045a758
Board: added docs
2024-10-04 20:23:06 +02:00
Alain Emilia Anna Zscheile
68d4589e81
egui: run cargo fmt
2024-10-04 02:16:45 +02:00
Alain Emilia Anna Zscheile
ee9ccf5fd6
egui/ErrorDialog: fix spurious renames
2024-10-04 02:13:30 +02:00
Alain Emilia Anna Zscheile
d24acb601b
egui: get rid of FileHandlerData
2024-10-04 02:11:19 +02:00
Alain Emilia Anna Zscheile
4fef94a5c5
egui: get rid of overabstraction file_handler::push_file_to_read
2024-10-04 02:11:19 +02:00
Alain Emilia Anna Zscheile
25a692aab9
egui/file_handler: run parsing in file loader thread
...
- also embed I/O errors with other errors
2024-10-04 02:11:17 +02:00
Alain Emilia Anna Zscheile
1a46504dd5
egui: replace FileSender/FileReceiver with FileHandler
2024-10-04 02:09:29 +02:00
Mikolaj Wielgus
f21808776e
egui: give more systematic names to translatable strings
...
The names are now based on where the strings are used in the GUI. This
will hopefully make it easier for translators to locate where they are
in the user interface.
I've prefixed all translatable string names with "tr-" to prevent
accidentally substitute unrelated strings in a mass replace.
Once I push this commit, I will also protect `locales/**`, so that
all future changes to strings pass a PR review process to reduce the
probability of errors. This will also make it easier to have a freeze
for translatable strings if we end up having a release schedule in the
future.
2024-10-03 20:26:38 +02:00
Alain Emilia Anna Zscheile
24f0a1c699
feat(egui): add utility method Overlay::take_selection
2024-10-03 17:03:27 +02:00
Alain Emilia Anna Zscheile
af312a8a13
chore(egui): fix warnings about unused result of Option::insert
2024-10-03 17:02:10 +02:00
Alain Emilia Anna Zscheile
5319e1f976
chore: run cargo fmt to fix lint errors
2024-10-03 16:56:09 +02:00
Alain Emilia Anna Zscheile
fa81cd360a
egui: get rid of unnecessary persistence of langid, separate into Config struct
2024-10-03 13:37:52 +02:00
hakki
2f672d41c2
Autorouter: general modules descriptions ( #65 )
...
This PR consists of general modules descriptions as well as initial `autoroute.rs` docs
Reviewed-on: https://codeberg.org/topola/topola/pulls/65
Co-authored-by: hakki <hakki@noreply.codeberg.org>
Co-committed-by: hakki <hakki@noreply.codeberg.org>
2024-10-02 22:46:32 +00:00
Tomasz Cichoń
c9509d8336
egui: fix remaining compile error
2024-10-02 17:31:09 +02:00
Tomasz Cichoń
cbe9d8fc1c
egui: update main to compile with eframe 0.29
...
These lines are basically copied from eframe_template, as before.
2024-10-02 17:30:27 +02:00
Tomasz Cichoń
1ade5a25d2
egui: add more layer names colors are assigned to in GUI
2024-10-02 11:31:10 +02:00
Tomasz Cichoń
336cea11e8
specctra, specctra_derive: rewrite logic inspecting macro attributes
...
This allows parsing more complicated attribute syntax, here needed to
specify multiple names for a `Vec` field.
2024-10-02 11:29:16 +02:00
Mikolaj Wielgus
9159312ea5
egui: add button and key to abort execution
...
It actually finishes execution, as I haven't implemented actual aborting
yet.
2024-10-02 02:32:06 +02:00
Mikolaj Wielgus
bfcae7f308
egui: change "squeeze under" to "squeeze through under"
...
It's about pushing through a constrained space, not about squeezing
per se. I'm not using the word "push" because this term will probably be
restricted to a mechanism that is very different internally.
2024-10-02 01:12:46 +02:00
Alain Emilia Anna Zscheile
697b637205
chore: fix clippy error by temporarily allowing it
2024-10-01 23:39:36 +02:00
Alain Emilia Anna Zscheile
161fa002c1
chore(egui): fix rust warnings
2024-10-01 20:50:38 +00:00
Alain Emilia Anna Zscheile
5e3ccf2560
chore: cargo fmt
2024-10-01 20:50:38 +00:00
Alain Emilia Anna Zscheile
f653a96eb0
chore: trivial fixes of clippy warnings
2024-10-01 20:50:38 +00:00