fix a bug where typing " to end a string in an array wouldn't append the 0xFF end byte
tools for string arrays are not fully implemented yet, but at least it doesn't crash now
make the string tool add a scrollbar when it gets really tall instead of growing past the bottom edge of the screen
make it possible to copy/paste an array
make it possible to edit arrays in the data
it is now possible to specify an array based on a format and no length,
and the app will look for that data based on known pointers.
It will automatically match the longest values, and the results will
be stored in the metadata file. Therefor, this search will only occur
when loading a file that has no associated metadata.
This searching functionality is exposed in a new model subclass, so that the
tests won't be effected. However, the functionality exists in the general model,
so it's still possible to write specific tests based on bugs found.
Since an array can call something a string when it's not, added a new "ErrorPCS"
implementation of IDataFormat, to display the raw byte in red. This will help
find string errors and possibly missing string characters.
This visual cue helps the user see the top data border when there's no anchor text box.
- add a message display to the error display / goto box / find box area.
- animate errors and messages to help draw the user attention to them.
- pressing escape should clear the context control
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
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.
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
- 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.
- 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