Commit Graph

2225 Commits

Author SHA1 Message Date
WerWolv
693a0f2516 impr: Better reset icon for shortcut settings 2025-08-02 23:07:40 +02:00
paxcut
a9eb7b2d25 fix: fixed auto save projects not being done after the first one. (#2366)
Currently setting the time interval to auto save the project has no
effect other than creating one initial save if the input file is
unsaved. When a file is created and not saved it remains in a dirty
state which prevented setting the state of the autosaved project to
needing to be saved. Fixed by decoupling the state of the provider from
the state of the autosave. When a provider is detected as being dirty it
always makes the autosave as being needed once the time interval has
elapsed.

feat: Implemented the menus on the main menu bar that will be available
when the text editor has focus. It allows you to load and save patterns
using open and save and will tack changes if files on disk are modified
externally. It also only opens the file chooser the first time you save
a pattern file and subsequent changes save to the same file.

If you want to save into another file and have the new file be tracked
you can use Save As. Finally, export doesn't track the file on disk at
all. this feature uses the same changes tracker class used elsewhere in
imHex.

fix: Changed the defaults of various shortcuts that were using Alt + a
key to avoid possible problems with some keyboards. Shouldn't affect end
users as their shortcuts are loaded from internal file but those who
complain about the Alt key misbehaving will be asked to reset the keys
to the new defaults. In addition, all globally accessible shortcuts were
added the Allow while typing flag so that they can be used in any field
that accepts text.

New menu entries were added for debugging to make the pattern editor and
the hex editor menus more like each other.

Finally, the call to RegisterMainMenuEntries() when initializing views
was moved to occur after the call to registerViews() so that menus are
not repeated when set for different views.
2025-08-02 01:29:34 -07:00
WerWolv
f73866b86e impr: Speed up initial resource loading and event handling slightly 2025-08-02 01:14:00 +02:00
WerWolv
bb6ea5f1e5 fix: User folder settings icon buttons being too small 2025-07-31 21:05:32 +02:00
WerWolv
1594c712a8 fix: Settings onChange handlers not being called correctly 2025-07-31 20:38:23 +02:00
WerWolv
1804caba02 feat: Added first/last element button to the data inspector 2025-07-30 23:52:40 +02:00
WerWolv
c1f0d60f49 impr: Declutter pattern editor and data processor footer 2025-07-30 23:17:44 +02:00
WerWolv
83d92dde35 build: Update VSCode Icons font 2025-07-30 23:17:13 +02:00
WerWolv
6fcc3e8cb3 build: Move all demangler uses into the trace library 2025-07-30 20:57:53 +02:00
WerWolv
ec9461741c feat: Added goto command palette command 2025-07-30 20:21:26 +02:00
WerWolv
4c89a79dc3 feat: Added full-screen views for use with subcommands in the future 2025-07-30 17:42:56 +02:00
WerWolv
2c3d8d4c0b fix: CppCheck issues 2025-07-30 17:41:45 +02:00
WerWolv
a3c71b3955 fix: Settings onChange handlers running more than once in some cases 2025-07-28 18:02:33 +02:00
WerWolv
f42ae97f14 impr: Added more generic way to unlock frame rate when needed 2025-07-27 16:25:10 +02:00
WerWolv
c7b2f26bd5 impr: Make main menu items look a bit nicer 2025-07-27 15:39:38 +02:00
paxcut
7ff1e72093 fix: find next and find previous not working on console. (#2358)
With only one menu entry and having set it to use the text editor then
the console losses that functionality. Since both the console and the
text editor are on the same view, it follows that they must share the
menu entries. In some cases it is necessary to determine which of the
two editors needs to be processed inside the menu entry itself.

Also an error that caused the creation of invalid coordinates when
console is still empty was fixed by setting coordinates to 0,0 for empty
files. Another problem was that left clicking on the console didn't
select the word under the cursor but it does when left clicking on the
text editor. Now it works in both.

The menu entries on the console were removed completely and swapped with
a call to obtain the default 'edit' menu for the context popup. Also,
the console in write-only, so some of the entries like `Paste` or
`Replace` must be greyed out.

This PR is only to fix the bugs that exist currently. More work is still
needed for:
1) Removing the remaining shortcuts and creating new menu entries for
them and
2) Adding support for `Open` and `Save` in the pattern editor with path
tracking.

I tested all combinations of menus and shorcuts with console and pattern
editor and there were no problems I could detect.
2025-07-26 21:41:43 -07:00
WerWolv
3d3674d405 fix: Find and replace pattern editor menu options being grayed out when they shouldn't be 2025-07-26 23:51:22 +02:00
WerWolv
2abedbe4ad impr: Slightly increase gap between title bar buttons and menu items on macOS 2025-07-26 21:50:03 +02:00
WerWolv
80eb72c5f9 fix: Remove duplicate pattern editor shortcuts 2025-07-26 17:49:21 +02:00
WerWolv
88da6c10e0 fix: Another linux build error 2025-07-26 17:49:02 +02:00
WerWolv
49771766e7 fix: Replace one more splitString function 2025-07-26 17:16:57 +02:00
WerWolv
e3551b3045 fix: Properly distinguish view specific toolbar items in the settings 2025-07-26 16:03:40 +02:00
WerWolv
68d7e99a80 fix: Rename pattern editor menu options to not overlap in the toolbar items 2025-07-26 16:03:08 +02:00
WerWolv
e85216d9a6 impr: Remove duplicated string functions and use libwolv ones instead 2025-07-26 13:35:08 +02:00
paxcut
8f3d07ea69 fix: imported patterns used for inheritance were not highlighted. (#2356)
The problem was that imported files didn't have token sequences to
obtain the UDT variables. The fix was to create maps from the file name
to the token sequence and then process each imported file to obtain all
the variables needed. Function variables are skipped since they can be
part of the code.
There are also some minor code style corrections and a fix in the text
editor where the last line of a selection was not being deleted.
2025-07-25 12:16:02 -07:00
WerWolv
da8be3ec3c fix: Scrolling and ID collision in simplified pattern value editor 2025-07-25 14:44:24 +02:00
WerWolv
574c039cc8 fix: Add missing language key, make sure simple pattern value editor sorting is stable 2025-07-24 23:42:02 +02:00
WerWolv
e0180b718f feat: Added simplified pattern value editor 2025-07-24 23:29:13 +02:00
WerWolv
a9ce71c481 impr: Make close button on macOS close providers if any are open instead of closing ImHex 2025-07-24 21:37:49 +02:00
Nik
2e200a2ab8 git: Properly verify that plugins built from the plugin template can be loaded by ImHex (#2352) 2025-07-24 20:35:02 +02:00
WerWolv
601b13cf42 fix: Crash when opening selection view 2025-07-24 18:32:30 +02:00
WerWolv
99a9752ee9 fix: bfloat16 language key 2025-07-24 14:39:42 +02:00
WerWolv
8f2638be30 fix: Wrong menu items getting triggered when same shortcut is defined in multiple views 2025-07-23 20:06:53 +02:00
WerWolv
a3eb057215 build: Allow ccache to properly cache msvc builds 2025-07-22 23:47:24 +02:00
WerWolv
59695dcad6 fix: Content store still displaying updates after updating 2025-07-22 23:03:31 +02:00
WerWolv
aa6e461340 feat: Added support for view-specific menu items and main menus 2025-07-22 22:32:45 +02:00
paxcut
e18d583a00 feat: Added experimental external editor support. (#2347)
Users can now synchronize the content of the pattern editor with a file
on disk when exporting a pattern. Any modifications made in the pattern
editor are automatically saved to the file and when the pattern editor
gains focus it will automatically load any changes to the file on disk.
This feature is brand new and can have unforeseen problems so test it
fully before risking losing work.

Added major changes to how the text editor handles utf8 characters with
the added ability to obtain them using the [] operator and column
coordinates as indices. Sanitize coordinates was renamed to Set
Coordinates and can be used instead of the constructor to guarantee no
out of range asserts and/or exceptions. Improved move left and right
readability and cursor accuracy when clicking. Fixed single character
selection by double-clicking it. Deleted old and unused code and other
changes that I can't remember about atm.
2025-07-22 11:52:44 +02:00
WerWolv
22c9d77909 fix: Don't draw the same pattern tooltip multiple times 2025-07-21 12:43:47 +02:00
WerWolv
55b3b3a188 impr: Display all patterns in hover tooltip when hovering over a larger hex editor cell 2025-07-21 11:19:49 +02:00
paxcut
5df8ec78aa improv: removing tabs (#2345)
These changes are part of an effort aimed at removing tabs from ImHex
that started some time ago. Here text preprocessing is removed from all
the places were it was done before and moved to the places where files
are read that go in the pattern editor with two notable exceptions.
1) Pattern import reads patterns in order to present a list that can be
filtered.That can safely ignore preprocessing since only needs to get
information needed to filter.
2) The pattern editor can incorporate text from the clipboard so that
needs to be preprocessed as well.

find/replace is unable to add tabs or carriage returns so this should
cover all angles.
2025-07-20 13:10:45 -07:00
WerWolv
9ce18d1a42 feat: Added bfloat and fp24 data inspector entries 2025-07-20 11:11:51 +02:00
WerWolv
9ff8d42143 fix: Reordering of toolbar items not working correctly
Fixes #2343
2025-07-20 11:07:47 +02:00
WerWolv
17ab429a8c fix: Intel Hex and Motorola SREC providers always being at least 1 byte long 2025-07-20 00:46:20 +02:00
WerWolv
8da007af6c impr: Make version info in about screen selectable
#2341
2025-07-20 00:40:33 +02:00
WerWolv
f053b94f68 impr: Replace reload provider icon with actual reload icon
#2343
2025-07-20 00:35:49 +02:00
WerWolv
79333593bf fix: Pattern Editor footer moving around when switching tabs 2025-07-17 20:13:09 +02:00
WerWolv
5744ad588f impr: Better icon sizes for process list 2025-07-16 10:33:24 +02:00
paxcut
38c5868029 feat: added matched bracket highlights + updating pattern language library (#2335)
Added clion-like bracket matching feature with shortcut to go to the
other one. Also improved some cumbersome repeated function call.
Added support for using negative indices in coordinates so -1 is the last 
line or column, -2 the previous, etc..
Pattern library has fixes for column errors being incorrectly set for lines
containing tabs that are not replaced by 4 spaces.
2025-07-15 18:47:33 -07:00
WerWolv
de9efe6c4d fix: Cut off text display of toolbar items 2025-07-15 22:04:36 +02:00
WerWolv
88ce3a2490 fix: Default toolbar items not showing up in settings window 2025-07-15 22:04:19 +02:00