Commit Graph

1979 Commits

Author SHA1 Message Date
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
WerWolv
cc1ac95af6 fix: Missing include 2025-08-09 10:23:35 +02:00
WerWolv
59c6d3090b fix: Clang doesn't support std::chrono::parse() yet 2025-08-08 23:32:07 +02:00
WerWolv
ce66f3a98a build: Fix remaining missing includes 2025-08-08 22:56:21 +02:00
WerWolv
ad87f005fe feat: Added command line palette option to open/focus views 2025-08-08 22:36:46 +02:00
paxcut
df1e97af0a improv: further reformatting of text editor in an effort to bring it into the ui plugin. (#2385)
Added the ui namespace and broke the main rendering function into a set
of smaller functions. Reorganized the header code separating functions
into rough groups that eventually will be in separate files.
2025-08-08 12:47:52 -07:00
WerWolv
82ceb2e11f impr: Better auto updater, added support for updating nightlies 2025-08-08 21:25:52 +02:00
WerWolv
725462b222 fix: Diffing task not being properly cancelable
Fixes #2383
2025-08-08 17:47:15 +02:00
WerWolv
d39d33de32 fix: Inconsistent look of welcome screen hyperlinks 2025-08-07 17:09:07 +02:00
WerWolv
7c07f70afd fix: AlmaLinux doesn't seem to support fmt::println yet 2025-08-07 17:08:38 +02:00
WerWolv
de67d5942b fix: Broken formatting in unit tests 2025-08-07 08:26:35 +02:00
WerWolv
f358069cc1 feat: Allow plugins to add their own welcome screen quick settings, improve UI 2025-08-06 22:51:59 +02:00
aoqia194
cf87294a8c feat: Add EventViewClosed event (#2377)
Where one door opens, another one closes (said someone) and in this
situation i mean view, because there's no event for closing a view only
opening one, so please add this :c

### Problem description
Simply adds an **EventViewClosed** to match the pre-existing
**EventViewOpened**. Also fixes the issue where EventViewOpened wouldn't
trigger for windows that were popups (even if they are technically a
View.

### Implementation description
I mirrored the current functionality of EventViewOpened for closing.

---------

Co-authored-by: paxcut <53811119+paxcut@users.noreply.github.com>
2025-08-06 22:22:46 +02:00
WerWolv
abe13d9ff9 impr: Make reset button of color settings widgets look nicer 2025-08-06 22:20:03 +02:00
WerWolv
064b21a264 impr: Added icons to providers, improved the quick settings 2025-08-06 21:37:57 +02:00
WerWolv
5be6297bac fix: Few more build issues 2025-08-06 20:49:23 +02:00
WerWolv
9cff9043ee impr: Remove hex::format, improve format and logging type safety 2025-08-06 20:02:23 +02:00
paxcut
d429424f67 improv: refactor text editor to follow imhex style. (#2382)
Also fixes two bugs:
1) error messages not staying visible
2) uncaught exception when struct name is duplicated.

A lot of the code using coordinates for start and end has been moved to
use Selections instead. Created more string manipulation code that uses
utf8 indices aka Coordinates directly. This makes implementing editing
functions easier by not having to go back and forth from string indices
to char indices and back. Currently, the substring, erase and []
operator support coordinates and str indices.
2025-08-06 01:01:07 -07:00
WerWolv
750f91dbbc fix: Builtin plugin detection on Web build 2025-08-06 00:12:37 +02:00
WerWolv
c0ee243d64 fix: Various build issues 2025-08-06 00:03:18 +02:00
WerWolv
263c5f6830 impr: Added icons to all tools 2025-08-05 23:32:27 +02:00
WerWolv
3cf7622707 impr: Make font size a multiplicative value 2025-08-05 22:19:43 +02:00
WerWolv
baebfe96ba impr: Make banners easier to read 2025-08-05 22:19:04 +02:00
WerWolv
5b06702dee feat: Allow plugins to be dynamically turned on and off 2025-08-05 22:16:39 +02:00
WerWolv
388f5354a1 fix: ImHex being displayed as "Main" in some task managers on Linux 2025-08-05 17:57:26 +02:00
WerWolv
c3cd4edbf9 impr: Various small ssh provider improvements 2025-08-05 17:56:10 +02:00
paxcut
b9c36cfd2f feat: added paren and quote autocompletion. (#2381)
Also fixed  tab insertion on selections.
2025-08-04 17:28:38 -07:00