Commit Graph

29 Commits

Author SHA1 Message Date
haven1433
f243c66562 remember length base-16 base-10 choice between runs 2022-09-30 22:59:03 -05:00
haven1433
10c1ab44b1 tab navigation improvements 2022-09-22 22:42:08 -05:00
Haven1433
1ac960a477 support Goto 2022-09-15 08:03:04 -05:00
Haven1433
15d3b6d411 SelectedAddress should always have a set 2022-09-10 20:13:16 -05:00
Haven1433
b704fb2f50 paste raw bytes
Pasting raw bytes is useful in a few situations. But pasting over a pointer isn't safe. So any time you paste over a pointer (or pointer in a table), paste-raw-bytes will clear the formatting. Other than that, it's an easy way to paste arbitrary data, but can cause issues if you're not careful, such as pasting over compressed data.
2022-09-01 16:12:14 -05:00
Haven1433
ed21535626 Store ToolPanelWidth in the ViewModel
WPF destroys the view whenever we switch tabs.
Store the ToolPanelWidth in the ViewModel so we can remember the value when changing tabs.
2022-08-29 07:38:13 -05:00
Haven1433
433ec14af4 Add python support in .hma files and pasting
When pasting text or using a .hma file, allow use of python to access various options inside the editor, such as the table tool Append-to-table feature
2022-06-19 21:09:21 -05:00
Haven1433
1556c84029 Improve diff layout 2022-05-26 21:21:35 -05:00
Haven1433
0ee6c97617 Add ips/ups patch creation support
right-click on a tab, choose to create a patch from that tab to the next tab to the right
2022-05-12 08:05:04 -05:00
Haven1433
a00b897277 fix ValidateMatchedWords exposure
ValidateMatchedWords can be handled by the ViewPort
2022-03-03 22:00:05 -06:00
Haven1433
ee227ac85e Fix loading bug
Don't CascadeScripts right away. Instead, wait until the model is done loading, and _then_ cascade scripts. RefreshBackingData at the same time so as to refresh the cells on the screen.
2022-03-03 21:30:02 -06:00
Haven1433
c28fce209a First pass: ViewPort.ConsiderReload is async 2022-03-01 21:10:36 -06:00
Haven1433
e332290441 Improve Save-As behavior when multiple ViewPorts point to the same Model. 2021-12-06 20:21:07 -06:00
Benjamin Popp
2e15b577ed Implement IPS patch import 2021-10-15 16:28:18 -05:00
Benjamin Popp
051a842a7d Improve Find Visibility Mode
Visibility mode changes the coloring of bytes to help certain bytes stick out more clearly. Previously, it only worked with a single byte. Now it's been more fully integrated into the model, and can work with any number of bytes. Note that it only cares about bytes that are on screen, so it won't find byte chunks where part of the chunk is off screen.
2021-10-13 11:13:28 -05:00
Benjamin Popp
c38e053f2c Show different save icon for metadata-only changes
Users need a way to distinguish between when a save is needed for actual data changes to their rom, vs when a save is needed because they've made changes to their metadata but not their rom.
2021-10-12 16:47:55 -05:00
Benjamin Popp
0b25cc7b0b bugfix: allow entering 1-byte constants that match an array name 2021-09-03 13:48:22 -05:00
Benjamin Popp
5de71b167e Allow user to duplicate the current tab
This is useful if you want to view multiple locations in the same rom at the same time. This was previously possible by following a pointer into a new tab, but often the thing you want to see isn't available from an onscreen pointer, so it makes more sense to open up a new goto.
2021-08-01 00:38:49 -05:00
Benjamin Popp
a278d91f9f Add 'matchExactCase' parameter for ViewPort.Find 2021-06-21 22:20:12 -05:00
Benjamin Popp
ef9e6d8842 Add boilerplate to connect view to diff commands in the viewport 2021-06-05 21:53:42 -05:00
Benjamin Popp
425db5778d Add basic diff functionality
The current implementation of Diff just compares the file with the original version of it, and then highlights the bytes that have been changed since last save. Nothing fancy, but it should allow us to test the current thumb routines.
2021-03-21 20:21:21 -05:00
Benjamin Popp
36bf79e91b Add ability for to import content to the current tab.
Planned uses:
* Import an ips/ups into a ViewPort
* Import a .hma paste script into a ViewPort
* Import an image into the image editor
2021-02-18 21:25:47 -06:00
Benjamin Popp
73ba6e79c6 Allow Combined Search Results
When multiple results are close together, allow them to be combined into a single result within the new tab. This makes the overall result shorter, and makes it easier to see when 2 pieces of data are near each other.
2021-02-13 23:22:01 -06:00
Benjamin Popp
163293baf5 Refactor (part 1)
ViewPort should have IWorkDispatcher as a constructor paramater, not an .Edit parameter. Optional parameters that make the program act different between test mode and real mode are bad.

For the same reason, this should be a required parameter. But changing the constructor of ViewPort is hard, since so many tests use it. This is an initial refactor to make less tests use the constructor directly.
2021-02-09 20:24:16 -06:00
Benjamin Popp
b921082a0b Don't call CascadeScripts for derived ViewPorts
If this ViewPort is based on the same model as another ViewPort, we don't need to call CascadeScripts. This significantly increases search speed.
2020-07-04 23:33:34 -05:00
Benjamin Popp
3e8fd018a1 Refactor Singletons
Previously, the creating a new ViewPort loaded from 2 text files and creating a new HardcodeTablesMoel loaded from 1 text file. This is a lot of parsing!

Refactor to do the parsing once, in the EditorViewModel, using a Singleton class to hold the non-editable loaded data. Inject that data into the appropriate structers later on.

To prevent massive refactoring in the tests, not every ViewPort needs to be given a Singletons instance. Instead, allow a ViewPort to still do its own parsing. However, BaseViewModelTestClass has been updated to make this work for a majority of tests, along with changes to AutoSearchTests's fixture and several of the Setup methods that are used by multiple tests.
2020-02-08 21:25:48 -06:00
Benjamin Popp
c0e2981414 Search Results includes notice of what file the results come from. 2019-04-16 08:55:54 -05:00
Benjamin Popp
bb00a22fc5 - refactor ViewPort constructor to not need to take in the data array twice
- when searching for text, check if the found results are anchors
- when adding a text anchor with no name, search for pointers before rejecting it
2019-02-09 12:29:47 -06:00
Benjamin Popp
0c8633da52 rename folders / files / projects from Gen3Hex to HexManiac 2019-02-05 20:58:49 -06:00