Commit Graph

208 Commits

Author SHA1 Message Date
Benjamin Popp
da7ad3cd8d bumping version for the next release, so I don't forget to later. 2019-01-26 10:24:10 -06:00
Benjamin Popp
b6b6f93955 when you search for an array, make it remember the length that it found 2019-01-26 08:41:53 -06:00
Benjamin Popp
f378d1eeac fix a test: if an anchor is being added with no format, then don't clear
whatever format is already active there.
2019-01-26 08:36:43 -06:00
Benjamin Popp
21365e1fbf add a close button to the tab header 2019-01-26 00:20:59 -06:00
Benjamin Popp
7c9d5db90f version bump 2019-01-26 00:15:05 -06:00
Benjamin Popp
5b14925565 improve auto-searching 2019-01-26 00:14:18 -06:00
Benjamin Popp
0b5277a3fe bug fix: goto should work for tabs after switching tabs 2019-01-25 23:07:38 -06:00
Benjamin Popp
5b7304518b allow pointers to end in 0x09 if the file is long enough
exclude the GBA header from the search for anchors
2019-01-25 22:47:13 -06:00
Benjamin Popp
2db1696f20 typing <> on data should try to convert it to a pointer
creating a pointer to outside the data range should fail
2019-01-25 22:35:38 -06:00
Benjamin Popp
29bff692bc make undo not jump to the beginning so much 2019-01-25 22:23:41 -06:00
Benjamin Popp
40b9abc11b make 00 not italic, just FF 2019-01-25 22:08:54 -06:00
Benjamin Popp
a48e5a0aa7 string -> text
more user friendly
2019-01-25 22:05:34 -06:00
Benjamin Popp
10d58f9b90 typing a pointer over a pointer should auto-align to the start of the pointer 2019-01-25 22:01:30 -06:00
Benjamin Popp
7fd8780e9f bug: moving selection to goto only happened if you press Ctrl+G
while the Goto tool is closed.
fix it so that pressing Ctrl+G *always* moves the focus

fixed it for Find as well.
2019-01-25 21:50:16 -06:00
Benjamin Popp
0ef26a9af4 clearing the address on the string tool should not crash. Generally make the no-valid-string-in-tool experience better. 2019-01-25 21:33:40 -06:00
Benjamin Popp
38e284170c default to only showing .gba files 2019-01-25 21:12:49 -06:00
Benjamin Popp
048cceb0d7 opening a .sav file should not crash 2019-01-25 20:59:07 -06:00
Benjamin Popp
b2335968dc make the auto-width a bit more intuitive 2019-01-25 20:52:16 -06:00
Benjamin Popp
1dd640ac25 fixing data corruption issue
splitting the model to have 'ClearFormat' and 'ClearFormatAndData'
so I can decide in each case which one I want to do.
2019-01-25 20:41:50 -06:00
Benjamin Popp
8f95a59805 changing version information for the first public prerelease 2019-01-25 08:14:19 -06:00
Benjamin Popp
dd22595afa - "delete" with a bunch of bytes highlighted should clear them to FF 2019-01-23 22:27:21 -06:00
Benjamin Popp
1e59fcd4d3 fixed a bug where pasting an array could accidentally switch formats if a string was too long
fixed a bug where string arrays were cropping the first character of the strings
2019-01-23 22:18:19 -06:00
Benjamin Popp
a97ac3f510 make it possible to extend arrays in the data
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
2019-01-23 21:00:21 -06:00
Benjamin Popp
67dcee0d14 test that up/down commands work correctly for the goto viewmodel
note that this involved updating to a newer version of AutoImplement,
  which contained a bugfix that allows for testing of the IModel interface.
2019-01-21 21:40:44 -06:00
Benjamin Popp
c4c46063c7 goto / follow pointer, when going to the exact address of an array,
restricts the width of the data to be a multiple (or divisor) of
the array's element width. This makes things look much nicer.
2019-01-20 22:46:54 -06:00
Benjamin Popp
c0040e7932 add autocomplete menu for goto based on known anchor names
- there are enough properties / commands needed for goto now that it deserves its own viewmodel.
2019-01-20 20:09:28 -06:00
Benjamin Popp
e049979fbc support for searching datasets for known data formats
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.
2019-01-20 10:58:03 -06:00
Benjamin Popp
520b8d78b2 support for dynamic array length
when writing a string, I do need to know that it has an end byte (0xFF)
adjusted usages to handle the change in API.
2019-01-19 15:16:38 -06:00
Benjamin Popp
039cb68b84 whenever the string tool's content textbox updates its cursor position,
update the viewport selection to match.
2019-01-18 22:39:31 -06:00
Benjamin Popp
ca48afa272 - string tool address & content should update when changes are made in the primary view. 2019-01-18 07:09:16 -06:00
Benjamin Popp
e22293ce56 if there is not enough room in the dataset for a data move, expand the dataset. 2019-01-18 06:38:25 -06:00
Benjamin Popp
0b6a7410b0 adjusting the free-space-finder algorithm based on real-data feedback. 2019-01-17 21:53:18 -06:00
Benjamin Popp
48606e2e21 - add a 1 pixel border above the main tab content that's a different color.
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
2019-01-17 21:35:18 -06:00
Benjamin Popp
0129f2dd4e - add support for finding pointers if the search term is just 3 bytes
- refactor find method, it was too long
2019-01-17 20:44:28 -06:00
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