Commit Graph

140 Commits

Author SHA1 Message Date
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
Benjamin Popp
66c36bb469 only show right-click menu if the right-mouse-down
happened on the same cell
2018-12-12 19:41:54 -06:00
Benjamin Popp
2972bc9a29 underline pointers to make the start/end more apparent 2018-12-12 19:38:24 -06:00
Benjamin Popp
de6dce1382 null pointers should say 'null'
it should be possible to write a null pointer
2018-12-12 19:29:25 -06:00
Benjamin Popp
5289949734 replace 'null' after last run with a NullObject 2018-12-12 19:09:04 -06:00
Benjamin Popp
eff3f59aff refactor: don't need the 'anchor' type as part of the pointer runs.
Each run just needs a simple list of things that point to it.
refactor: PointerRuns don't need the model at construction time.
refactor: use a base class to remove duplicate code (IFormattedRun)
2018-12-10 21:44:40 -06:00
Benjamin Popp
7617af8391 improve search 2018-12-10 21:02:45 -06:00
Benjamin Popp
6f75d0a5c1 refactoring: move byte[]data to the model 2018-12-10 20:45:41 -06:00
Benjamin Popp
4d9d14eda5 support for copy/paste for pointers/anchors 2018-12-10 07:13:23 -06:00
Benjamin Popp
5f708b5eec delete dead comment 2018-12-09 20:15:56 -06:00
Benjamin Popp
f7cc560281 show the anchor name in the right-click menu 2018-12-09 20:15:24 -06:00
Benjamin Popp
4a60c02c62 make it possible to move named anchors. Doing so deletes anything associated with the old anchor, and moves any named pointers to point to the new spot. 2018-12-09 20:06:35 -06:00
Benjamin Popp
bc74eda3e5 make the listbox look not terrible 2018-12-09 19:54:41 -06:00
Benjamin Popp
f8aef7220c can double-click to follow pointers. Right-click on Anchors lets you follow those backwards.
Followed suggestions from Raina to change the way Anchors look a little.
2018-12-09 17:23:00 -06:00
Benjamin Popp
af64d4aad2 implement find/goto for pointers 2018-12-09 13:07:14 -06:00
Benjamin Popp
40d70817a9 bugfixes. See ModelTests.cs
-> note that I had to remove EditOnlyNotifiesCollectionChangeOnceWhenScrolling(),
   that test is no longer true. Changes to pointers and anchors can change data
   elsewhere on screen.
2018-12-09 11:14:42 -06:00
Benjamin Popp
f74d38c012 first pass at making the UI work. 2018-12-08 22:07:02 -06:00
Benjamin Popp
f7d04c5b67 add ability to remove names from anchors 2018-12-08 21:26:01 -06:00
Benjamin Popp
408a56c91b first pass at adding backspace to the model 2018-12-08 21:01:31 -06:00
Benjamin Popp
ad9e3386d0 support for writing pointers/anchors over other ones, and how replacement works. 2018-12-08 16:18:47 -06:00
Benjamin Popp
25be2aa0fb basic support for writing pointers and writing anchors 2018-12-06 22:08:36 -06:00
Benjamin Popp
32a5c5759f implementing the first part of the model 2018-12-04 20:19:00 -06:00
Benjamin Popp
d6cd4cc689 first pass at adding model interfaces. The model will be in charge of parsing the data and listing data formats. The ViewModel can then ask the Model for the 'next format' from a given location. Note that there could be multiple implementations: the only thing the ViewModel knows is the interface. 2018-12-03 22:43:58 -06:00
Benjamin Popp
ae6571dba2 simplify confusing code 2018-12-03 19:26:12 -06:00
Benjamin Popp
ffb3f5410b Refactor: Moving things to a more organized file structure. 2018-12-02 19:47:23 -06:00
Benjamin Popp
242e7199b9 get version string from attributes, so that I can update it in only one place. 2018-12-02 12:59:18 -06:00
haven1433
e5d8a6c006 Merge pull request #13 from haven1433/dev-haven1433-12
fixing #12
2018-12-02 12:47:37 -06:00
haven1433
d141012de2 Merge pull request #10 from haven1433/dev
Fixing #7 and #11
2018-12-02 12:47:12 -06:00
Benjamin Popp
355d56eeb4 removing duplicate logic - we already know that the changed button was pressed. 2018-12-02 12:46:47 -06:00
Benjamin Popp
a3e88511e0 removing dead code 2018-12-01 23:25:51 -06:00
Benjamin Popp
32b26068da provide a default value for recentFindResults to avoid null checks. 2018-12-01 23:23:56 -06:00
Benjamin Popp
d0a0a2bbf1 fixing #12
- FindPrevious/FindNext logic for CanExecute was wrong.
- also updated when CanExecuteChanged gets called.
2018-12-01 19:22:21 -06:00
Benjamin Popp
a510e924d5 - EditorViewModel should update FileSystem watches when a ViewPort's FileName changes.
... This additionally requires that the FileName shares its oldValue when it changes.
- All TabContents are ViewModels
- ViewPort should notify when its FileName changes
2018-12-01 16:59:05 -06:00
Benjamin Popp
ee65fdb4d3 - Side mouse buttons map to back/forward
- call CanExecuteChanged on back/forward correctly
2018-11-30 19:56:20 -06:00
Benjamin Popp
0dc5a903de - click+shift should move the selection end, not the selection start
(see HexContent)
- add keybinding for delete
- fix keybinding for cut
- clearing data via cut or delete needs to go on the undo stack
2018-11-30 18:42:52 -06:00