Commit Graph

74 Commits

Author SHA1 Message Date
Benjamin Popp
40f6bd098b make anchor thick only on mouse-over. This little bit of interaction on hover may promote understanding that the anchor can be interacted with somehow. 2019-01-16 22:47:11 -06:00
Benjamin Popp
a9c5620fc3 adding a border to the selection to make it more visible 2019-01-16 22:28:19 -06:00
Benjamin Popp
fd1cd72c2b - allow header mouse events to trigger events on the content
- double-clicking a search (or search header) should open that search in the main view
2019-01-16 22:20:12 -06:00
Benjamin Popp
80f1576607 fixing a crash (thanks Daniel!)
- when using the Delete key to clear data, clear the format as well as the data.
2019-01-16 22:08:20 -06:00
Benjamin Popp
7c66b30f1b bugfix: change the color of the None Format when the Theme changes. 2019-01-16 20:16:44 -06:00
Benjamin Popp
12a3ec3460 add tab/enter support in UI 2019-01-15 22:22:09 -06:00
Benjamin Popp
3482e215e7 make undo/redo follow changes visually a bit better. Cleanup some edge cases with string tool address. 2019-01-15 22:12:05 -06:00
Benjamin Popp
02a8edd4ef fix a crash if you try to use back/forward from a search tab. 2019-01-15 21:50:00 -06:00
Benjamin Popp
62ddff0e30 fix a string truncation undo/redo bug. Make it possible to backspace in a string segment in an array. Make it possible to backspace multiple times in a string. 2019-01-15 21:46:14 -06:00
Benjamin Popp
096d87b0a4 make it possible to edit an anchor while the head is offscreen, possible via the anchor editor. 2019-01-15 21:20:56 -06:00
Benjamin Popp
4b7dd4cb92 first submission for array runs
arrayrun is a rather complex run. Each arrayrun is made of a number of elements, each of which contains a fixed set of segments.
Right now, the only type of segment it supports is strings. But ideally a segment could also be a number, a pointer, or something else.
The entire run could represent a large block of data. But the point is that the block is fairly homogeneus.

- added support for adding runs via typing
- added support for comprehending string segments to display/edit as PCS
- fixed a StringModelTest that was wrong, since this feature exposed it
2019-01-14 22:50:24 -06:00
Benjamin Popp
ab6ac40c20 adding remaining needed tests after user test 2019-01-11 20:53:24 -06:00
Benjamin Popp
54c5ce1917 Merge branch 'temp' into dev 2019-01-11 20:46:04 -06:00
Benjamin Popp
0b23bdbea5 adding tests for most recent changes 2019-01-11 20:43:54 -06:00
Benjamin Popp
099b9f48d6 temporary commit of yesterdays changes. I want to write the tests without these changes in, so that I can verify that the tests fail. 2019-01-11 17:09:24 -06:00
Benjamin Popp
a8e4519e69 file -> open should load metadata 2019-01-09 21:35:10 -06:00
Benjamin Popp
c1e58dd2d7 search results double-click wasn't aligning properly 2019-01-09 21:25:16 -06:00
Benjamin Popp
e6e99331f9 performance improvement: caching strings
PCSRun was a bit slow if you have multiple long strings on screen at the same time.
this was because CreateDataFormat was reloading the same long string for every cell in that string.
This is an n^2 operation.
To fix this, only load the screen for the FIRST index, then don't reload it again until reading a previous index again.

SearchResultsViewPort.AnchorText needs get and set for binding purposes.
strings should work with the tool (and to auto-open the tool) when hitting the first byte in the string.
2019-01-09 21:17:57 -06:00
Benjamin Popp
7155285736 replacing usages of ", &, and <> with string constants... just in case
adding an AnchorText/AnchorTextVisible property to the ViewPort, so that the UI can display an editable text field as a better way of editng anchors
make Metadata not crash if there's a parse error
load metadata on app start
2019-01-09 20:56:11 -06:00
Benjamin Popp
b07d2b2591 - undo was broken when undoing in the middle of a pointer.
- undo didn't treat unmapped pointers correctly
- cannot put a pointer in a string
2019-01-07 20:34:46 -06:00
Benjamin Popp
9127a61257 when editing an anchor, include the format (if there is one) 2019-01-07 19:25:25 -06:00
Benjamin Popp
962f015fcf change the order of operations so it's possible to name an anchor that has a string format 2019-01-07 19:15:11 -06:00
Benjamin Popp
69fd1cb3a3 - basic model should use the NullRun for GetNextRun instead of null
- PCSString.ReadString should optionally only recognize a string if it has a minimal number of repeated characters.
- don't automatically show a tool when one of its fields changes
- fix a bug where following a link in a multi-find document would shift the results in the main tab
- since a tool doesn't auto-show when a property changes, manually show it on double-click
- when a selection changes, if a string is selected, change the string tool to show that string
- slightly widen the string tool: it wasn't fitting all the strings it should on one line.
2019-01-06 22:20:32 -06:00
Benjamin Popp
80777626d0 made it possible to save names / unmapped pointers to a metadata file as part of saving/loading.
All the tests are passing and all the features are present... now I just need to actually test the app :)
2019-01-06 19:58:55 -06:00
Benjamin Popp
acb75df04d we now support undo/redo changes to names 2019-01-06 16:01:04 -06:00
Benjamin Popp
97725576bc tools can now undo
partial refactoring to enable undo/redo of anchor name changes
also wrote the test for it, which is currently failing.
2019-01-06 13:22:01 -06:00
Benjamin Popp
822035d7d8 basic implementation of undo/redo for formats and from strings 2019-01-05 22:29:19 -06:00
Benjamin Popp
201fa1e428 creating the delta model object in preparation for being able to undo model changes 2019-01-05 14:29:46 -06:00
Benjamin Popp
1a5dd243eb cleanup: making the app behave as expected
- PCSString conversion puts newlines after \n and \pn
- Goto/Back/Forward go to addresses, not lines
- fix visual glitches with PCS escaped bytes
- use monospace font for string tool. Use a width that works well with newlines.
- change app width to better default to work with tools
2019-01-04 20:09:17 -06:00
Benjamin Popp
49583e76aa replace the tool toggle button with a normal button. Fixes both the style and the show/hide behavior. 2019-01-04 07:08:23 -06:00
Benjamin Popp
6f1845f5fe make string tool interact with main viewport in the expected ways. 2019-01-03 21:23:44 -06:00
Benjamin Popp
07e14fc264 first pass at UI for the string tool 2018-12-19 22:18:17 -06:00
Benjamin Popp
ee77d42bed adding the rest of the model for the tool for String editing. 2018-12-19 21:40:07 -06:00
Benjamin Popp
0d9fa6d6b6 first pass at adding hooks in the ViewPort to support tools for working with custom data types. Functionality isn't there yet, just architecture. 2018-12-19 06:32:22 -06:00
Benjamin Popp
b079ca65ee improve search so that it works with strings 2018-12-18 22:02:05 -06:00
Benjamin Popp
258d5c4562 implemented copy for strings 2018-12-18 21:15:35 -06:00
Benjamin Popp
2be50110bc escape sequences can be used now 2018-12-18 07:53:20 -06:00
Benjamin Popp
04c53c806c handle backspace during string 2018-12-18 07:20:32 -06:00
Benjamin Popp
73b618f65d show the leading " on strings
don't allow insertion of a string-format if it would override an existing anchor.
2018-12-17 20:54:10 -06:00
Benjamin Popp
895fbc2bf3 changing selection tries to commit anchors before leaving
escape clears in-progresss edits
when editing an anchor, the current name/format is displayed
you get an error if you try to insert an anchor but don't give it a name.
  Note that you can still enter an empty anchor (^ ) to DELETE an anchor that has nothing pointing to it.
2018-12-17 20:17:47 -06:00
Benjamin Popp
0a3214956a wrote some new failing tests so that I know what behaviors to fix next. 2018-12-17 07:37:44 -06:00
Benjamin Popp
8c083e93c2 00 and FF are both valid for continuing a string format
'Goto Address' formula correction
-> account for both the format's offset from start and the current cell's
   offset from the start of the format.
After auto-moving the data, we ALWAYS need to refresh backing data.
2018-12-16 22:15:34 -06:00
Benjamin Popp
6973679781 strings can now be written, overwritten, and auto-move to avoid colliding with data. 2018-12-16 12:28:57 -06:00
Benjamin Popp
b6e8674693 basic unit tests for adding the ability to type strings in the model. 2018-12-13 22:03:33 -06:00
Benjamin Popp
367b176035 typing bytes over a pointer now removes that pointer. Anchor removal is a bit smarter now. 2018-12-12 22:04:01 -06:00
Benjamin Popp
829a072917 you should be able to write a named pointer over a null pointer. 2018-12-12 21:33:14 -06:00
Benjamin Popp
38fb5187b1 auto-format 2018-12-12 21:06:50 -06:00
Benjamin Popp
d3e688de5f use ellipsis if the current text under edit is too long to fit. 2018-12-12 21:05:28 -06:00
Benjamin Popp
9b7fb9d220 center the pointer text
add ellipsis if the name is too long to fit
2018-12-12 19:54:53 -06:00
Benjamin Popp
13ad1aefe2 when doing a multi-cell edit, select multiple cells 2018-12-12 19:46:30 -06:00