Commit Graph

2125 Commits

Author SHA1 Message Date
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
babd9584a6 build: Fix a few remaining build errors 2025-08-14 21:58:07 +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
6a1aa2c13e impr: Close context menus on focus loss 2025-08-13 22:17:50 +02:00
WerWolv
4b73e1a184 fix: Search bar icon being too high up on macOS 2025-08-13 21:08:03 +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
09b2e20a3d impr: Save most of the hex editor settings
#2398
2025-08-11 21:03:18 +02:00
WerWolv
e9d95c78f6 fix: Store install issues when paths are symlinked 2025-08-11 17:45:17 +02:00
paxcut
c4d167f8d4 fix: Highlighter can fail to update a files contents. (#2400)
If you project has two patterns and one is very big, switching providers
while the big file is being highlighted makes the small one skip its own
coloring. The error was caused by a failure to interrupt the ongoing
lengthy highlighting process in a timely manner. It appears that calling
task interrupt allows the task to run to completion and when the task
runs to completion then the retrying mechanism is not trigger and the
small pattern never has a task assigned for coloring.

This was fixed by creating a variable that signals the intention to
interrupt the current highlighting process. The most used function in
the highlighter (used to update the current token) checks the variable
and throws an out of range exception causing the interruption of the
current highlighter and triggering the retry mechanic.
2025-08-10 23:57:17 -07: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
80003a4843 impr: Condense and modernize find view 2025-08-10 20:04:36 +02:00
WerWolv
12785c00bd impr: Condense and modernize data inspector view 2025-08-10 18:25:06 +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
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
9246d040ad fix: Remove another unused lambda capture 2025-08-09 22:40:10 +02:00
WerWolv
549866bfd9 fix: Remove unused lambda capture 2025-08-09 22:09:26 +02:00
Goomii
d81f0668a1 feat: Improved usability of the TCP Client/Server tool (#2175)
### Problem description
Messages in the TCP tool were only visible as a text string in the
messages list and unable to be opened in the hex view.
There was also no way to send data other than as a typed in text string
in the input field.

### Implementation description
* Added the ability to double-click on a message in the messages list to
open it in a provider tab.
* Added a new button to the client tab to send the current provider to
the connected server.
* Updated the list look to show the message index in a column

### Screenshots



https://github.com/user-attachments/assets/198d78c7-7c94-4f48-ac8c-3581e2ac12e4

---------

Co-authored-by: Nik <werwolv98@gmail.com>
2025-08-09 22:07:58 +02:00
WerWolv
4e5b2675a0 fix: Remove unused if 2025-08-09 19:53:32 +02:00
Artem Garmash
de7d549fc6 feat: Added skipping sequences of repeating bytes (#2228)
This PR implements a neat little feature I missed - the ability to jump
to the next/previous differing byte, skipping the chunk of repeating
bytes. Very useful when you analyze a raw flash dump and want to skip
the large sections of `0x00`s/`0xFF`s.

Some implementation details worth validating:
- I wasn't sure what is the correct place to put the new menu entries
into. The possible candidates were `File -> Go to address...` and `Edit
-> Follow selection`. I chose the former, although the latter may be a
better fit since it already states that the action is related to the
selection. Overall, it may be a good moment to refine these menu entries
in general.
- I didn't add any tests since I'm not sure what is the project's policy
for those. Please let me know if I need to add some!
- I added the machine-generated translations for the new menu entries
which may be considered a questionable thing. Please let me know if
you're unhappy with those, I'll drop the commit.
 
Also, thanks for such a nice tool, I use it a lot and was glad to build
a new feature for it!
2025-08-09 19:40:04 +02:00
WerWolv
e6f46747b6 fix: Add missing Updates path to About screen 2025-08-09 17:59:01 +02:00
WerWolv
dbc5819bc4 fix: Handling of unchanged shortcut keys 2025-08-09 14:23:36 +02:00
WerWolv
a403980976 feat: Added update to Nighly/Stable release option 2025-08-09 12:25:22 +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
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
5d180bdbfb build: Fix multiple missing includes 2025-08-08 22:48:31 +02:00
WerWolv
1fc6ec28c2 impr: Added search icon to the search bar button 2025-08-08 22:37:51 +02:00
WerWolv
ec6ff1d7d5 impr: More consistent look for the bookmark view 2025-08-08 22:36:58 +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
71f5373ea8 impr: Added recent entry tooltips 2025-08-07 21:29:58 +02:00
WerWolv
bd4ce72800 impr: Replace store buttons with icon buttons 2025-08-07 17:09:29 +02:00
WerWolv
d39d33de32 fix: Inconsistent look of welcome screen hyperlinks 2025-08-07 17:09:07 +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
WerWolv
40b48f6460 fix: Use proper format specifiers for SetItemTooltip 2025-08-06 22:21:02 +02:00
WerWolv
31322bcc76 fix: Unavailable menu items still being visible in the command palette 2025-08-06 22:20:31 +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
263c5f6830 impr: Added icons to all tools 2025-08-05 23:32:27 +02:00
WerWolv
a27b10f69a impr: Draw settings tooltips under the setting value 2025-08-05 22:20:06 +02:00
WerWolv
5b06702dee feat: Allow plugins to be dynamically turned on and off 2025-08-05 22:16:39 +02:00