1
0
mirror of synced 2024-12-15 01:01:15 +01:00
Commit Graph

792 Commits

Author SHA1 Message Date
WerWolv
12f64e5fde build: Updated ImGui to the latest release 2024-02-11 00:11:56 +01:00
Nik
bcbcb1f23c
impr: Various web build improvements, API cleanup (#1541) 2024-02-10 23:31:05 +01:00
Nik
5e5714baeb
patterns: Merged in new pattern language refactor (#1533) 2024-02-04 14:03:42 +01:00
WerWolv
a03e8dd879 impr: Harden settings system to not crash ImHex when having outdated configs
Fixes #1514
2024-02-03 12:16:36 +01:00
WerWolv
7a6ee756b8 patterns: Updated pattern language 2024-01-31 15:40:29 +01:00
WerWolv
80953a2286 feat: Allow jumping from hex editor to patterns and from patterns to source line 2024-01-31 11:26:22 +01:00
WerWolv
18b717594f fix: Rendering issues with Hex Editor Minimap 2024-01-29 23:28:53 +01:00
Nik
339541a56f
impr: Restructure various components much better (#1520) 2024-01-28 22:14:59 +01:00
WerWolv
f0a56b4201 fix: Pattern code not being parsed when loaded from project 2024-01-27 17:33:15 +01:00
paxcut
1957d6f432 feat: Added find-replace to pattern editor (#1465) 2024-01-27 14:52:20 +01:00
PerikiyoXD
11f75f72ee
feat: Add search options for string encoding and endianness (#1490)
Added search options for string encoding (UTF-8, UTF-16, UTF-32) and
endianness (Little, Big) in the hex editor. This enhancement allows
users to customize the search process based on different string
encodings and byte orders.

Affected files:
- `plugins/builtin/romfs/lang/de_DE.json`
- `plugins/builtin/romfs/lang/en_US.json`
- `plugins/builtin/romfs/lang/es_ES.json`
- `plugins/builtin/romfs/lang/it_IT.json`
- `plugins/builtin/romfs/lang/ja_JP.json`
- `plugins/builtin/romfs/lang/ko_KR.json`
- `plugins/builtin/romfs/lang/pt_BR.json`
- `plugins/builtin/romfs/lang/zh_CN.json`
- `plugins/builtin/romfs/lang/zh_TW.json`
- `plugins/builtin/source/content/views/view_hex_editor.cpp`

Resolves: #1325

---------

Co-authored-by: Nik <werwolv98@gmail.com>
2024-01-27 14:13:41 +01:00
WerWolv
6a1a991c08 fix: Pattern settings resetting at re-evaluation 2024-01-27 10:49:40 +01:00
WerWolv
33637e92b5 impr: Make changing pattern settings re-evaluate the code 2024-01-26 22:08:46 +01:00
WerWolv
919110b024 impr: Make data information view have per-provider state 2024-01-25 22:49:56 +01:00
WerWolv
9c25a1609e feat: Add more magic information to the information view 2024-01-25 22:49:22 +01:00
Nik
d005b5d2d9
feat: Allow toolbar icons to be modified (#1509) 2024-01-21 18:39:32 +01:00
Nik
a13b5bf8c0
feat: Implement Myers' diffing algorithm (#1508) 2024-01-21 18:39:13 +01:00
WerWolv
db1373d572 fix: Compile error due to types not being constexpr everywhere 2024-01-13 00:33:55 +01:00
WerWolv
ea7483f9a7 impr: Get rid of the concept of built-in plugins
#1489
2024-01-12 23:03:13 +01:00
WerWolv
7441720a88 fix: Invalid signedness in comparison 2024-01-12 18:33:18 +01:00
WerWolv
0d0dd7d57c fix: Make syncing pattern code not erase pattern code as often 2024-01-11 21:56:54 +01:00
WerWolv
72f4331703 feat: Added virtual files to the pattern language 2024-01-11 20:11:22 +01:00
WerWolv
58441634d6 fix: Provider information in information view always showing info from current provider 2024-01-09 16:48:49 +01:00
WerWolv
d43f25ec70 impr: Remove spaces from fill command input 2024-01-09 01:26:47 +01:00
WerWolv
21d6c1326c fix: Invalid address bound check for jump-to option
Fixes #1487
2024-01-08 22:34:42 +01:00
WerWolv
bfafc692db impr: Added icons to all menu items 2024-01-08 21:51:48 +01:00
WerWolv
3a068b9719 impr: Use ImGui's built-in drag n drop support for bookmarks 2024-01-08 10:56:53 +01:00
WerWolv
f91505ff09 fix: Unnecessary reinterpret_cast 2024-01-04 21:33:30 +01:00
WerWolv
ed8934882e impr: Make sure detached windows always have an appropriate size 2024-01-03 18:26:25 +01:00
WerWolv
8cb833eca9 impr: Improve Documentation AI UX 2023-12-31 13:53:44 +01:00
Nik
950eaea8af
impr: Make decompression support actually useful (#1481) 2023-12-31 11:39:24 +01:00
WerWolv
3592d17c93 impr: Allow Home/End to work in hex editor view 2023-12-29 11:30:23 +01:00
WerWolv
2f7da91a73 fix: Remove unused update parameter 2023-12-28 21:51:31 +01:00
WerWolv
8fcf08132e fix: Allow store to properly update files 2023-12-28 20:59:34 +01:00
WerWolv
2d7a6a7cb5 fix: Uncaught exception when trying to update all store items 2023-12-28 20:35:35 +01:00
WerWolv
390b5a7925 fix: Logs in log view not being filtered correctly 2023-12-28 20:34:49 +01:00
WerWolv
cb35f456ed build: Fix building on clang 2023-12-27 17:42:44 +01:00
WerWolv
686f8f43c3 fix: Pattern editor error tooltip becoming way too large in some cases 2023-12-27 17:29:27 +01:00
WerWolv
99dcd0a020 fix: Crash when receiving invalid data from API 2023-12-27 17:10:50 +01:00
WerWolv
74b5c93caf impr: Code style improvements 2023-12-27 16:33:49 +01:00
WerWolv
d7ba2e7171 feat: Add button to export pattern language section to a file 2023-12-27 01:58:20 +01:00
WerWolv
96fe608d60 impr: Switch most usages of modals over to toasts 2023-12-26 00:22:47 +01:00
WerWolv
65e2f1b5af fix: Synchronized scrolling not working correctly 2023-12-24 00:06:16 +01:00
WerWolv
fe24db7c57 feat: Move hashes into plugin, merged in extra hashes plugin 2023-12-23 22:01:47 +01:00
Nik
61bfe10bc2
refactor: Rework features that use external libraries into optional plugins (#1470) 2023-12-23 21:09:41 +01:00
Justus Garbe
ad8e3e38f0
Revert pattern language until it's stable again (#1468)
- Revert pattern language
2023-12-21 22:01:07 +01:00
WerWolv
e3e117a14e impr: Close tutorial view when a tutorial is started 2023-12-20 15:26:45 +01:00
WerWolv
5b3ae56912 patterns: Update all pattern language code to use new API 2023-12-20 10:08:40 +01:00
WerWolv
96db2074c6 feat: Add ignore case and UTF16 search options to sequence searching 2023-12-19 14:34:35 +01:00
WerWolv
c7ab4a4569 refactor: Get rid of this->m_ 2023-12-19 13:10:25 +01:00
WerWolv
dd4be3b772 refactor: Make sure unlocalized strings are always actually unlocalized 2023-12-19 12:22:28 +01:00
WerWolv
8fe490ed03 fix: Escape to deselect bytes not working 2023-12-19 00:03:00 +01:00
WerWolv
edc4b18975 impr: Add plugin table to about page 2023-12-18 11:21:33 +01:00
WerWolv
c1abbfad7d impr: Make sure welcome screen stays at the back 2023-12-18 10:14:07 +01:00
WerWolv
aaaa02dbd0 impr: Improve handling of floating tool windows 2023-12-18 08:58:00 +01:00
WerWolv
a844fb3731 fix: Hash string popup being way too small 2023-12-17 23:47:42 +01:00
WerWolv
8f83fe5135 fix: Max field in value search not resetting when disabling range search 2023-12-17 23:38:10 +01:00
WerWolv
978558649e fix: Diffing view not highlighting correctly with a custom base address 2023-12-17 23:34:19 +01:00
WerWolv
3b5efb37e9 fix: Editing data inspector rows not working correctly 2023-12-17 23:31:01 +01:00
WerWolv
90abe982ed fix: Bookmark region setting not being locked correctly 2023-12-17 23:22:39 +01:00
WerWolv
7ad7ea061c impr: Refactor init logic 2023-12-17 20:33:17 +01:00
WerWolv
c1f76be3b7 feat: Display complete window title when hovering over search bar 2023-12-14 13:50:26 +01:00
WerWolv
003f9619c3 fix: Multiple localization issues 2023-12-14 11:33:54 +01:00
WerWolv
f000b6bc0a feat: Added basic introduction tutorial 2023-12-13 23:03:39 +01:00
WerWolv
346f1362c6 impr: Allow more popups to be closed with Escape 2023-12-13 15:08:27 +01:00
WerWolv
92043a3d23 feat: Added tutorials view 2023-12-13 13:04:59 +01:00
WerWolv
5bcfe37b4e feat: Added tutorial system 2023-12-13 11:24:25 +01:00
WerWolv
1a8a9e53e1 impr: More information view UI improvements 2023-12-12 13:20:51 +01:00
WerWolv
f618e634e9 impr: Better UI for the data information view 2023-12-12 12:15:20 +01:00
WerWolv
e080164305 fix: Restart imhex popup not working correctly 2023-12-11 23:05:47 +01:00
WerWolv
1e4bb8c91e impr: Remove Font Awesome 2023-12-11 23:05:35 +01:00
WerWolv
ce27cb11a5 impr: Delete old backup files 2023-12-11 21:29:30 +01:00
WerWolv
1ba34c233e fix: Various scaling issues 2023-12-10 22:37:26 +01:00
WerWolv
ef7898ea8d impr: Add support for specifying filtering mode when loading textures 2023-12-09 22:00:35 +01:00
WerWolv
411884966b fix: Crash when making pattern editor window too small 2023-12-08 11:15:32 +01:00
WerWolv
b4813660b5 refactor: Better interface for the event system 2023-12-08 10:29:44 +01:00
WerWolv
5d24f1b691 impr: Fix input field selection in command palette 2023-12-06 16:20:06 +01:00
WerWolv
760b8c7a88 impr: Make long running tasks not freeze ImHex, fix saving non-continuous providers
Fixes #1454
2023-12-05 14:32:43 +01:00
WerWolv
08fd09064a fix: Settings view still using old system and not opening properly 2023-12-04 22:17:43 +01:00
WerWolv
9afbfec64e impr: Allow bookmark addresses to be changed, better comment editor 2023-12-02 23:11:31 +01:00
WerWolv
ec7e89b5cf feat: Added simple context menu to pattern editor 2023-12-02 20:37:28 +01:00
WerWolv
866cb5706d feat: Added highlighting rules 2023-12-02 11:09:32 +01:00
WerWolv
2cf642a2a4 build: Updated libwolv 2023-12-01 14:07:10 +01:00
WerWolv
a50bb39978 impr: Further improve compile times 2023-11-30 14:40:07 +01:00
WerWolv
8ee234e5a6 impr: Optimize api includes 2023-11-30 11:23:12 +01:00
WerWolv
cbf82d7476 impr: Force tables to never collapse to zero height 2023-11-28 10:21:54 +01:00
WerWolv
8e7716ebcc fix: Zero-sized patches being created 2023-11-27 15:48:56 +01:00
WerWolv
494223fff6 fix: Provider load interface not opening 2023-11-27 15:34:05 +01:00
WerWolv
af77b8dfc4 fix: Numeric search tool not displaying values in correct endianess 2023-11-25 19:40:29 +01:00
WerWolv
64be4e692c impr: More UI adjustments 2023-11-25 19:11:29 +01:00
WerWolv
8d20277a62 feat: Added setting to enable colored pattern row backgrounds 2023-11-25 13:42:51 +01:00
WerWolv
88032a85cd impr: Even more about page UI improvements 2023-11-25 13:15:21 +01:00
WerWolv
c821967633 impr: More about page UI improvements 2023-11-25 12:44:20 +01:00
Nik
7e660450ed
feat: Implement better and more complete undo/redo stack (#1433)
This PR aims to implement a more complete undo/redo stack that, unlike
the old one, also supports undoing insertions, deletions and resize
operations
2023-11-25 12:43:48 +01:00
WerWolv
e5f36ca08d impr: Greatly improve UI of about page 2023-11-25 00:43:03 +01:00
WerWolv
3c36ef2c69 impr: Disable some more menu items when they're not useful 2023-11-24 20:57:37 +01:00
WerWolv
d34ad33c3c feat: Added setting for font bold, italic and antialiasing 2023-11-24 11:29:05 +01:00
WerWolv
5a58ed5114 fix: Make sure store and about page are opened correctly 2023-11-23 13:08:45 +01:00
WerWolv
b619744093 fix: Command palette not appearing on Linux 2023-11-23 09:33:47 +01:00
Nik
095da62250
feat: Add Markdown Report export option (#1441) 2023-11-22 07:26:31 +00:00
WerWolv
909f4b7fe8 refactor: Rename and update localization system 2023-11-21 14:38:01 +01:00
WerWolv
c89a870fe9 refactor: Streamline entire view system 2023-11-21 13:47:50 +01:00
WerWolv
f9073ee8ee impr: Prettier data inspector edit button 2023-11-19 16:08:21 +01:00
WerWolv
bd59bcda2c fix: Hiding data inspector rows graying out row above it 2023-11-19 15:55:05 +01:00
WerWolv
0e9302ff08 fix: Hiding custom data inspector rows hiding all defined in the same file 2023-11-19 15:50:13 +01:00
WerWolv
3b01dcf230 feat: Allow hiding data inspector rows 2023-11-18 17:23:15 +01:00
WerWolv
14f728ab76 refactor: Give API files more consistent names 2023-11-18 14:50:43 +01:00
WerWolv
e7bfa483f8 impr: Make settings tab bar always stick to top of window 2023-11-17 16:05:45 +01:00
WerWolv
cec925bcdc feat: Add shortcut editor to settings 2023-11-17 14:46:21 +01:00
iTrooz
39252dfe48
refactor: Move custom ImGui functions to ImGuiExt namespace (#1427)
Co-authored-by: Nik <werwolv98@gmail.com>
2023-11-16 22:24:06 +01:00
WerWolv
1136556a0d fix: Don't treat unlocked achievements as invisible anymore 2023-11-16 13:24:09 +01:00
WerWolv
1331b0691f impr: Better highlighting color when hovering over colors in the theme manager 2023-11-16 13:23:47 +01:00
WerWolv
a51f9fd90c impr: Better UI for the settings view 2023-11-15 22:22:57 +01:00
WerWolv
e32def409a build: Upgraded ImGui to v1.90 2023-11-15 20:22:56 +01:00
WerWolv
73454905e8 fix: Theme color flashing amount being off 2023-11-14 22:36:48 +01:00
WerWolv
8e58f469b0 impr: Display latest log at the top of the log console table 2023-11-14 22:30:13 +01:00
WerWolv
5ec7826273 feat: Highlight color when hovering over it in the theme manager 2023-11-14 22:27:29 +01:00
WerWolv
43f1cc7bd0 fix: Highlight color of bookmark not changing with bookmark 2023-11-14 16:50:38 +01:00
WerWolv
b78435c881 feat: Turn provider settings into sidebar 2023-11-14 15:55:34 +01:00
WerWolv
46d3402705 impr: Better UI for the command palette 2023-11-14 12:15:37 +01:00
WerWolv
d3ed34d5eb impr: Display folder names of files in subfolders in file chooser popup 2023-11-14 00:37:07 +01:00
WerWolv
375c74abe5 impr: Add command palette button to the title bar 2023-11-14 00:03:22 +01:00
WerWolv
46b1b0ba17 impr: Use ImGui::SeparatorText to draw headers 2023-11-12 00:57:29 +01:00
WerWolv
9fb60a8ab0 fix: Docking two detached tools to each other causing them to vanish 2023-11-12 00:10:16 +01:00
WerWolv
af77819913 fix: Crash when choosing File -> Select without an active selection 2023-11-11 23:43:32 +01:00
WerWolv
498d8c1d65 impr: General code cleanup 2023-11-10 20:47:08 +01:00
WerWolv
d12f5016e4 fix: PageUp/PageDown being slightly weird 2023-11-09 16:07:14 +01:00
WerWolv
a64aa6941d fix: Force achievement popup to front 2023-11-08 21:57:19 +01:00
WerWolv
924b4a9436 impr: Replace various fixed-size boxes with dynamic ones 2023-11-07 00:46:44 +01:00
WerWolv
f49b5efac4 fix: UI issues in the data information view 2023-11-07 00:46:17 +01:00
WerWolv
8581ab9eb3 feat: Added simple data access graph to pattern editor 2023-11-06 15:15:35 +01:00
WerWolv
d1f8053fbb fix: Format string vulnerability 2023-11-05 21:51:49 +01:00
WerWolv
4e4cdcdf61 feat: Added release notes and commits to about page 2023-11-05 19:57:29 +01:00
WerWolv
f14f77b4f0 git: Updated Mary's profile link 2023-11-01 10:43:59 +01:00
WerWolv
c7cee59a77 impr: Added build date and time to about page 2023-10-30 23:24:00 +01:00
WerWolv
c37c53369b impr: Dock newly opened windows by default 2023-10-30 21:53:44 +01:00
iTrooz
bffc229fa8
feat: handle content store entries managed by the system (in a read-only folder) (#1389) 2023-10-24 20:00:49 +02:00
WerWolv
215e1ffdc8 fix: Weird indentation 2023-10-22 23:06:35 +02:00
WerWolv
8cd0561e71 fix: Binary Pattern search being broken with alignments > 1 2023-10-22 20:59:32 +02:00
Nik
7fe9a768d4
impr: Rewrote entire settings API and UI (#1378) 2023-10-21 21:07:33 +00:00
WerWolv
5227887dbf impr: Added more fine-grained colors to themes 2023-10-20 12:30:21 +02:00
WerWolv
d07d36f784 fix: Loading of data processor workspaces not working correctly 2023-10-19 23:53:20 +02:00
WerWolv
929e0e64a5 fix: Achievement hovering popups showing up even when they are covered by another window 2023-10-12 20:24:02 +02:00
WerWolv
48a1e93cfe fix: Tool windows drawing on top of the welcome screen
Fixes #1364
2023-10-12 15:15:05 +02:00
iTrooz
d15bd4771d
feat: Support for building ImHex for the web (#1328)
Co-authored-by: WerWolv <werwolv98@gmail.com>
Co-authored-by: AnnsAnn <git@annsann.eu>
2023-10-04 12:00:32 +02:00
WerWolv
89bffbd1bc fix: Crash when exceptions are thrown in data processor nodes 2023-09-27 14:19:08 +02:00
WerWolv
b3ef615158 feat: Allow Edit -> Jump to to jump to little and big endian addresses
Closes #1324
2023-09-26 14:01:28 +02:00
WerWolv
89abc8557f feat: Added shortcuts for the pattern debugger 2023-09-24 18:26:42 +02:00
WerWolv
181a7c5b3d feat: Added evaluate pattern shortcut 2023-09-24 18:17:58 +02:00
Lennard Fonteijn
ad69ac84b1
feat: Added hex::group attribute and various fixes (#1302)
As discussed (many times) on Discord, does the same as the new favorite
tag, but instead allows you to add multiple groups.

Initially, this would cause some insane issues with draw/reset
(apparantly) fighting eachother in the pattern drawer. After a lot of
trial and error, I decided to rewrite the flow that is responsible for
calling reset. Now evaluating patterns is the one to decide when the
reset happens, not the core "game"-loop.

To make sure that draw and reset can never happen at the same time, the
mutex originally used for the favorites has been repurposed. Due to the
restructuring, the mutex in the favorite-task is no longer needed, as
that will only ever kick-off after reset is called and if there are
actually patterns, which can never line up to be accessed on different
threads at the same time.

Last but not least, I noticed that hard crashes could result in your
config file getting overridden. I added a check to prevent that.

Last I issue I can see is that if you use an excessive amount of
favorites/groups, a crash can still happen, but it only happens when you
close the program (occasionally, but unpredictable). Before, this would
happen if you ran the evaluation a second time. I boiled the cause of
the crash down to these lines of code in evaluator.cpp >
patternDestroyed:

```cpp
if (pattern->isPatternLocal()) {
    if (auto it = this->m_patternLocalStorage.find(pattern->getHeapAddress()); it != this->m_patternLocalStorage.end()) {
        auto &[key, data] = *it;

        data.referenceCount--;
        if (data.referenceCount == 0)
            this->m_patternLocalStorage.erase(it);
    } else if (!this->m_evaluated) {
        err::E0001.throwError(fmt::format("Double free of variable named '{}'.", pattern->getVariableName()));
    }
}
```

Specifically, trying to access the `*it` is the reason for the crash
(this was also the cause of the crashes before my fixes, but then during
evaluation).

I'm suspecting the root cause is somewhere in the `.clone` methods of
the patterns. I'd say that for now a crash when closing the program is
more acceptable than during evaluation (which can even happen if you use
favorites).
2023-09-16 13:09:59 +02:00