Commit Graph

2105 Commits

Author SHA1 Message Date
iTrooz 5d77402211
fix: add newly created projects to "Recent" (#2492)
<!--
Please provide as much information as possible about what your PR aims
to do.
PRs with no description will most likely be closed until more
information is provided.
If you're planing on changing fundamental behaviour or add big new
features, please open a GitHub Issue first before starting to work on
it.
If it's not something big and you still want to contact us about it,
feel free to do so !
-->

### Problem description
<!-- Describe the bug that you fixed/feature request that you
implemented, or link to an existing issue describing it -->
Projects weren't being saved as recent when a new project was saved.
They were only added as recent when re-opening the project

### Implementation description
<!-- Explain what you did to correct the problem -->
I also save projects as recent when saving them (I don't make a
difference between saving existing and new projects)

### Screenshots
<!-- If your change is visual, take a screenshot showing it. Ideally,
make before/after sceenshots -->

### Additional things
<!-- Anything else you would like to say -->
2025-10-31 20:34:29 +01:00
paxcut 7ca2e558c9
patterns: updated pattern language (#2483) 2025-10-23 04:25:02 -07:00
WerWolv e388d0c5e8 impr: Remove unnecessary moves in the task manager 2025-10-18 00:01:27 +02:00
WerWolv 05f8d9302d impr: Add proper move constructors to UnlocalizedString 2025-10-17 23:47:03 +02:00
WerWolv 59f9da59e2 impr: Less unnecessary copying 2025-10-17 23:23:48 +02:00
WerWolv 8d4415fe15 patterns: Updated pattern language
Fixes #2478
2025-10-17 23:23:33 +02:00
WerWolv c0f667ce20 patterns: Updated pattern language 2025-10-17 19:32:49 +02:00
WerWolv 2f0efa1197 build: Updated libwolv 2025-10-14 21:55:13 +02:00
WerWolv a76eae2c11 build: Updated libwolv 2025-09-25 18:01:53 +02:00
WerWolv b82c1f051c build: Update libwolv 2025-09-24 21:20:56 +02:00
WerWolv 1b6a150624 build: Move jthread library to libwolv 2025-09-24 20:48:50 +02:00
WerWolv cfe16ee2c5 build: Updated dependencies 2025-09-21 12:47:45 +02:00
WerWolv c9f856b219 build: Updated libwolv 2025-09-21 11:31:56 +02:00
Zackary Newman 3c167c3306
feat: Add keyboard shortcuts to jump to the prev/next differences in diff view (#2445)
Adds keyboard shortcuts (currently `n` and `N`) in the diffing plugin
view to jump to the next/prev difference in the list.

IMPORTANT NOTE: Depends on changes made in a library submodule. [This
PR](https://github.com/WerWolv/libwolv/pull/34) must be accepted first.

---------

Co-authored-by: Nik <werwolv98@gmail.com>
2025-09-21 10:39:37 +02:00
WerWolv fedbce6f9e build: Fix emscripten build issues 2025-09-20 12:11:25 +02:00
WerWolv 28be4cea97 build: Move X11 library linking to backend, make X11 not required 2025-09-20 11:44:31 +02:00
WerWolv 4dc3f9e033 build: Update ImGui Test Engine 2025-09-19 18:21:57 +02:00
WerWolv 07a6a9b7d4 build: Update ImGui backend 2025-09-19 18:21:02 +02:00
WerWolv fac7dff77f build: Updated ImGui to v1.92.3 2025-09-17 22:19:02 +02:00
WerWolv 98369600c3 impr: Various rendering performance improvements 2025-09-17 20:46:15 +02:00
WerWolv 821db4d2a1 impr: Allow hiding unfinished languages in non-debug mode 2025-09-12 22:47:17 +02:00
Zackary Newman dcbba9cbfc
impr: Rework command line argument parsing (#2440)
The current CLI argument parsing did not work as documented and had a
number of issues related to multi-flag (subcommand) parsing. I've
reworked the logic in such a way that should maintain full compatibility
with any existing scripts/use-cases but with added functionality.

---------

Co-authored-by: Nik <werwolv98@gmail.com>
2025-09-12 21:07:33 +02:00
WerWolv 88ccb0e075 fix: Plugin features display not working correctly 2025-09-10 19:44:46 +02:00
WerWolv 790c19a1cd patterns: Go back to working pattern language 2025-09-01 22:54:51 +02:00
WerWolv 53535ab9be build: Updated lunasvg 2025-08-31 15:15:37 +02:00
WerWolv 4cfdbb8095 patterns: Updated pattern language 2025-08-31 13:52:02 +02:00
WerWolv 06ac7eb85f impr: Make Hex Editor view always be focused by default 2025-08-31 11:22:26 +02:00
WerWolv 90f26d53d3 impr: Make viable pattern search properly abortable 2025-08-30 10:51:05 +02:00
WerWolv ab1e5eb359 build: Updated libfmt to trunk for compatibility with Clang 21.1.0 2025-08-29 23:40:00 +02:00
WerWolv bf08ed563a feat: Added Hex Editor "Decode as Encoding" option 2025-08-28 23:22:26 +02:00
WerWolv 1e8a005d0e impr: Make data inspector view more compact 2025-08-28 20:13:51 +02:00
WerWolv 5f206a33e2 build: Remove old OSX SDK setting 2025-08-28 17:23:24 +02:00
WerWolv db573840b0 fix: Incorrect word wrap calculation after ImGui update
#2325
2025-08-27 23:14:07 +02:00
WerWolv e0fccacc32 fix: Nightlies always having an update available, even if we're already on latest 2025-08-27 23:05:00 +02:00
WerWolv 145c8ff804 impr: Update about page 2025-08-27 21:27:06 +02:00
WerWolv 40ccbd0d86 feat: Added pattern-provided file information to information view 2025-08-25 21:44:59 +02:00
WerWolv c1a14cb4d4 impr: Ensure that wrapped text doesn't end up wrapping at every character 2025-08-25 21:22:43 +02:00
WerWolv 861988f8dc fix: Compile errors 2025-08-24 21:35:50 +02:00
WerWolv 66efcf91d3 feat: Added file information command line option and fullscreen view 2025-08-24 21:21:34 +02:00
WerWolv f8fa029ee3 patterns: Updated pattern language
Fixes #2280
2025-08-24 11:57:29 +02:00
WerWolv d1a0f8ec97 impr: Use faster way of finding matching pattern files for loaded file 2025-08-24 10:54:27 +02:00
WerWolv ba71a300ec fix: Semantic version comparison only working in one direction 2025-08-23 11:04:41 +02:00
WerWolv 393451eed5 fix: Crash with libgl getting unloaded twice 2025-08-22 18:16:25 +02:00
WerWolv d207d98a82 patterns: Updated pattern language 2025-08-21 19:44:53 +02:00
Nik d012ad08f8
feat: Added proper Markdown renderer (#2415) 2025-08-20 20:37:44 +02:00
WerWolv b3d07b4573 fix: Properly ignore return value of std::system 2025-08-18 20:38:15 +02:00
WerWolv 0908d040fa fix: Prevent multiple getStackTrace functions from running at the same time 2025-08-18 20:36:54 +02:00
WerWolv 530bd6dac4 build: Updated libwolv 2025-08-18 20:06:53 +02:00
WerWolv 4bea8f4c65 fix: Linux toast creation code 2025-08-18 20:04:44 +02:00
WerWolv 7f5ae41d8a fix: Welcome screen quick settings executing handler more than once 2025-08-18 20:04:20 +02:00
WerWolv 8b384ef1f9 fix: Make File -> Open File show up on Welcome Screen again 2025-08-18 20:03:27 +02:00
WerWolv d8f8e61a11 fix: Use modern notification API on macOS 2025-08-17 23:35:48 +02:00
WerWolv 3c9aa97f6c feat: Added function to show toast messages, moved native error message function to libimhex 2025-08-17 22:46:38 +02:00
WerWolv dd3b6a47d2 fix: Remove non-existent include 2025-08-17 18:10:28 +02:00
WerWolv fa8102f93d fix: getOSLanguage issues on macOS and the Browser 2025-08-17 17:59:56 +02:00
WerWolv ef3678bfaf fix: Missing <mutex> include 2025-08-17 17:48:49 +02:00
WerWolv 4ade751caf feat: Added support for choosing the system-native language 2025-08-17 15:50:27 +02:00
WerWolv 3b1f32d68d impr: Don't catch event exceptions in debug mode 2025-08-17 14:33:47 +02:00
WerWolv 4fc1f0491e fix: Various font loading issues and Weblate fuck ups 2025-08-17 14:33:34 +02:00
WerWolv 5666baf2bc impr: On/Off state of dimmed toggles easier to see 2025-08-16 20:43:41 +02:00
WerWolv a411d489c1 fix: Weird widget overlap with prefix inputs 2025-08-16 11:48:51 +02:00
WerWolv 762eacb7c8 feat: Allow any custom content to be displayed in the command palette 2025-08-15 20:17:58 +02:00
WerWolv ce0c97e6d5 feat: Add ImGuiExt::InputPrefix 2025-08-15 17:30:07 +02:00
WerWolv 3ed7834945 feat: Allow custom UIs to be drawn in the command palette 2025-08-15 17:29:00 +02:00
WerWolv 870bce2bf8 build: Fix last MSVC build errors 2025-08-14 23:39:54 +02:00
WerWolv 5147d8ab63 fix: More missing includes 2025-08-14 22:49:02 +02:00
WerWolv babd9584a6 build: Fix a few remaining build errors 2025-08-14 21:58:07 +02:00
WerWolv 20df023137 build: Updated libwolv 2025-08-14 21:23:27 +02:00
WerWolv fbde2942de build: Refactor ContentRegistry into multiple separate files 2025-08-14 21:22:03 +02:00
WerWolv d920718b44 build: Refactor ImHexAPI into multiple separate files 2025-08-14 20:16:40 +02:00
WerWolv 4ca429e389 impr: Allow post-processing shaders to be set dynamically 2025-08-14 17:11:37 +02:00
WerWolv 3cb5dd226c build: Updated ImGui to v1.92.2b 2025-08-13 22:46:27 +02:00
WerWolv 5fa9aaa6a6 fix: Crash when opening provider after warm-restarting ImHex 2025-08-13 20:35:25 +02:00
WerWolv 63711f652f fix: Fonts being scaled twice as big by default on macOS 2025-08-13 20:24:00 +02:00
WerWolv d07b4417d7 build: Updated libwolv 2025-08-13 17:32:52 +02:00
WerWolv 95ae5a26ed fix: Don't load workspaces from non-writable places since they can't be updated then 2025-08-13 17:32:04 +02:00
WerWolv 50b25882cd fix: MSVC build errors 2025-08-12 19:21:00 +02:00
WerWolv 28bfceab6c build: Updated ImGui to v1.92.2 2025-08-12 18:01:04 +02:00
WerWolv 6febe9982b impr: Significantly reduce memory usage 2025-08-12 18:00:47 +02:00
WerWolv b5a3a8b4c2 impr: Rewrite Localization Manager to use more standard format and load localizations on the fly 2025-08-12 18:00:10 +02:00
WerWolv 25c8f4b588 fix: Jump to certain array-member patterns not working
Fixes #2398
2025-08-11 21:46:47 +02:00
WerWolv 09b2e20a3d impr: Save most of the hex editor settings
#2398
2025-08-11 21:03:18 +02:00
WerWolv ad2a36676c fix: Issues when running the updater on Linux 2025-08-11 17:44:49 +02:00
paxcut 50f1fe2b2d
improv: moved text editor to the ui plugin. (#2397)
Reorganized source code into files named in the fashion of imhex and
split large functions into smaller ones. Moved all function definitions
out of the header except for one-liners. All variable types were
switched to use imHex standard (u8,...) and removed duplicated functions
that were needed when the text editor was isolated.

Minor improvements to find/replace while making sure they still worked
with utf-8 chars.
2025-08-10 14:35:21 -07:00
WerWolv 75e73ddcd9 fix: Properly clean up plugin features 2025-08-10 22:45:50 +02:00
WerWolv 23d673f920 fix: Multiple FreeBSD build and run errors 2025-08-10 22:38:12 +02:00
WerWolv 73a59fe5c1 impr: Modernize Tools view 2025-08-10 12:36:11 +02:00
WerWolv 5028b354cc impr: Clean up window setup code 2025-08-10 12:34:03 +02:00
WerWolv 66e407549e fix: Missing return value in update function 2025-08-09 23:49:59 +02:00
WerWolv 0870ab4d3c feat: Add option to check for updates to the Extras menu 2025-08-09 23:46:15 +02:00
WerWolv 6be0eeff72 impr: Allow more release types to be updated 2025-08-09 23:31:07 +02:00
WerWolv f3d9f224b7 fix: Fixes for previous PR merge 2025-08-09 19:53:22 +02:00
Zephyr Lykos ae8a12fa27
impr: Show external frames when using std::stacktrace backend (#2302)
<!--
Please provide as much information as possible about what your PR aims
to do.
PRs with no description will most likely be closed until more
information is provided.
If you're planing on changing fundamental behaviour or add big new
features, please open a GitHub Issue first before starting to work on
it.
If it's not something big and you still want to contact us about it,
feel free to do so !
-->

### Problem description
`std::stacktrace` backend in `hex::trace` does not show frames for
external libraries.

### Implementation description
If `dlfcn.h` is available, use `dladdr` to retrieve external symbol
information.

### Screenshots
Before:
```
[02:33:46] [FATAL] [main | Main]               Printing stacktrace using implementation 'std::stacktrace'
[02:33:46] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/lib/trace/source/stacktrace.cpp:34) | hex::trace::getStackTrace()
[02:33:46] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/crash_handlers.cpp:75) | printStackTrace
[02:33:46] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/crash_handlers.cpp:125) | hex::crash::handleCrash(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
[02:33:46] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/crash_handlers.cpp:211) | operator()
[02:33:46] [FATAL] [main | Main]                 () | ??
[02:33:46] [FATAL] [main | Main]                 () | ??
[02:33:46] [FATAL] [main | Main]                 () | ??
[02:33:46] [FATAL] [main | Main]                 () | ??
[02:33:46] [FATAL] [main | Main]                 () | ??
[02:33:46] [FATAL] [main | Main]                 () | ??
[02:33:46] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/lib/third_party/imgui/backend/source/imgui_impl_glfw.cpp:844) | ImGui_ImplGlfw_UpdateMouseData
[02:33:46] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/window/window.cpp:353) | hex::Window::frameBegin()
[02:33:46] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/window/window.cpp:241) | hex::Window::fullFrame()
[02:33:46] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/window/window.cpp:297) | hex::Window::loop()
[02:33:46] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/init/run/native.cpp:43) | hex::init::runImHex()
[02:33:46] [FATAL] [main | Main]                 () | ??
[02:33:46] [FATAL] [main | Main]                 () | ??
[02:33:47] [FATAL] [main | Main]                 () | ??
[02:33:47] [FATAL] [main | Main]                 () | ??
```

After:
```
[02:30:19] [FATAL] [main | Main]               Printing stacktrace using implementation 'std::stacktrace'
[02:30:19] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/lib/trace/source/stacktrace.cpp:41) | hex::trace::getStackTrace()
[02:30:19] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/crash_handlers.cpp:75) | printStackTrace
[02:30:19] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/crash_handlers.cpp:125) | hex::crash::handleCrash(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
[02:30:19] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/crash_handlers.cpp:211) | operator()
[02:30:19] [FATAL] [main | Main]                 (/lib64/libc.so.6) | libc.so.6+0x00019bef
[02:30:19] [FATAL] [main | Main]                 (/lib64/libc.so.6) | libc.so.6+0x00073c2c
[02:30:19] [FATAL] [main | Main]                 (/lib64/libc.so.6) | gsignal+0x1d
[02:30:19] [FATAL] [main | Main]                 (/lib64/libc.so.6) | abort+0x25
[02:30:19] [FATAL] [main | Main]                 (/lib64/libc.so.6) | libc.so.6+0x00001638
[02:30:19] [FATAL] [main | Main]                 (/lib64/libglfw.so.3) | libglfw.so.3+0x00002275
[02:30:19] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/lib/third_party/imgui/backend/source/imgui_impl_glfw.cpp:844) | ImGui_ImplGlfw_UpdateMouseData
[02:30:19] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/window/window.cpp:353) | hex::Window::frameBegin()
[02:30:19] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/window/window.cpp:241) | hex::Window::fullFrame()
[02:30:19] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/window/window.cpp:297) | hex::Window::loop()
[02:30:19] [FATAL] [main | Main]                 (/home/mochaa/ghq/github.com/WerWolv/ImHex/main/gui/source/init/run/native.cpp:43) | hex::init::runImHex()
[02:30:19] [FATAL] [main | Main]                 (/lib64/libc.so.6) | libc.so.6+0x000035b4
[02:30:19] [FATAL] [main | Main]                 (/lib64/libc.so.6) | __libc_start_main+0x87
[02:30:19] [FATAL] [main | Main]                 (./build/imhex) | imhex+0x0000cd94
[02:30:19] [FATAL] [main | Main]                 (??) | +0xffffffffffffffff
```

### Additional things
None
2025-08-09 19:46:01 +02:00
WerWolv d925c8216d impr: Allow ImHex to be used without subpixel rendering on Windows if only OpenGL 3 is available 2025-08-09 19:13:45 +02:00
WerWolv e6f46747b6 fix: Add missing Updates path to About screen 2025-08-09 17:59:01 +02:00
WerWolv 411e971ba7 impr: Properly delete old update files 2025-08-09 14:28:48 +02:00
WerWolv dbc5819bc4 fix: Handling of unchanged shortcut keys 2025-08-09 14:23:36 +02:00
WerWolv fd2d50508b fix: Update nightly update detection logic to work with release changes 2025-08-09 12:10:25 +02:00
paxcut 14ee688629
fix: fixes for issues #2388 and #2389. (#2392)
Tab insertion was not being recorded for undoing and the shift-backspace
shortcut did not exist. This PR addresses both issues directly.
2025-08-09 03:03:08 -07:00
WerWolv cd5b16cce5 fix: Another missing include 2025-08-09 10:34:09 +02:00