1
0
mirror of synced 2024-12-04 20:17:57 +01:00
Commit Graph

1660 Commits

Author SHA1 Message Date
WerWolvTranslationBot
77c326d300
lang: Translations update from Weblate (#1420)
Translations update from [Weblate](https://weblate.werwolv.net) for
[ImHex/Built-in
Plugin](https://weblate.werwolv.net/projects/imhex/built-in-plugin/).


It also includes following components:

* [ImHex/Windows
Plugin](https://weblate.werwolv.net/projects/imhex/windows-plugin/)



Current translation status:

![Weblate translation
status](https://weblate.werwolv.net/widgets/imhex/-/built-in-plugin/horizontal-auto.svg)

---------

Co-authored-by: Minseo Lee <itoupluk427@gmail.com>
2023-11-16 21:17:43 +00:00
Nemoumbra
1f7e2f5ed3
fix: IPS Patch Achievement not being obtainable (#1429)
It turned out that the achievement "ROM hacks" wasn't actually
unlockable.
I'm not sure if the IPS32 patch also has to trigger this achievement,
but it seemed logical to me so I added the call to both methods.
2023-11-16 21:38:20 +01:00
WerWolv
0bace013a1 fix: Unary operators not working correctly in math evaluator 2023-11-16 21:23:58 +01:00
WerWolv
1df8d19399 impr: Display math evaluator errors again 2023-11-16 21:23:38 +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
21057d51e1 impr: More Welcome Screen UI improvements 2023-11-16 13:23:28 +01:00
WerWolv
22eee94436 impr: Better UI for the Welcome screen 2023-11-16 09:32:24 +01:00
WerWolv
dd2ecb3dd9 impr: Replace old headers with new ones in UNIX permission calculator 2023-11-15 22:23:17 +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
1ff4d76ae7 feat: Add color names to color picker view 2023-11-14 01:40:54 +01:00
WerWolv
273573ce68 impr: Remove unused includes in tools files 2023-11-14 01:40:43 +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
iTrooz
e0264a3459
refactor: Split data processor nodes in several files (#1419)
I'm really not sure about how I grouped the nodes, but that's a start.
In need of review

---------

Co-authored-by: Nik <werwolv98@gmail.com>
2023-11-13 23:36:39 +01:00
WerWolv
1f73a87327 fix: Multi-byte hex editor data visualizers behaving incorrectly 2023-11-13 09:28:57 +01:00
WerWolv
0e671b1569 patterns: Updated pattern language
Fixes #1196
2023-11-12 22:47:02 +01:00
iTrooz
b04cb7648e
refactor: refactor tools_entries.cpp into several smaller files (#1418) 2023-11-12 00:22:01 +00:00
WerWolv
46b1b0ba17 impr: Use ImGui::SeparatorText to draw headers 2023-11-12 00:57:29 +01:00
WerWolv
60e3a657f0 fix: Prevent exporting of zero-sized files to language arrays 2023-11-12 00:25:37 +01:00
WerWolv
3d04669ef0 fix: Goto and Select being able to select bytes in zero-size files 2023-11-12 00:20:30 +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
17540b0120 fix: Prevent Goto from making selections that start before the base address 2023-11-11 23:43:48 +01:00
WerWolv
af77819913 fix: Crash when choosing File -> Select without an active selection 2023-11-11 23:43:32 +01:00
WerWolv
1c8af096de fix: Out of bounds read with a zero-size file 2023-11-11 23:11:34 +01:00
WerWolv
7f35d81722 fix: Selecting byte ranges that don't exist causing a crash 2023-11-11 23:00:37 +01:00
WerWolv
26f873a364 impr: Improve UI/UX of color picker and regex replacer tool 2023-11-11 22:43:27 +01:00
WerWolv
b101d11821 fix: Separate calculator and graphing calculator input 2023-11-11 21:22:28 +01:00
WerWolv
50a1956d92 fix: Unary operators in math evaluator not working correctly 2023-11-11 21:22:11 +01:00
WerWolv
5a4f31bfa5 feat: Make color picker tool much more useful 2023-11-11 20:56:50 +01:00
WerWolv
7d53636e10 feat: Added simple graphing calculator 2023-11-11 00:54:16 +01:00
WerWolv
ec4942174b fix: Proxy not being disabled correctly when disabling it in the settings 2023-11-10 21:59:20 +01:00
WerWolv
498d8c1d65 impr: General code cleanup 2023-11-10 20:47:08 +01:00
WerWolv
3aacf0f1fb feat: Added Experiments 2023-11-10 14:48:26 +01:00
WerWolv
4fc2fb7a6f feat: Added support for filtering patterns by value 2023-11-10 14:48:13 +01:00
WerWolv
d12f5016e4 fix: PageUp/PageDown being slightly weird 2023-11-09 16:07:14 +01:00
WerWolv
f1e0960a26 feat: Allow exporting bytes as text to a file 2023-11-09 14:57:58 +01:00
WerWolv
0f5d659ce2 impr: Fade out zero bytes in HTML formatted data 2023-11-09 14:42:29 +01:00
WerWolv
a64aa6941d fix: Force achievement popup to front 2023-11-08 21:57:19 +01:00
WerWolv
66cac8350e fix: Kaboom achievement not triggering 2023-11-08 21:40:27 +01:00
WerWolv
384c2a7701 fix: Format string issue 2023-11-08 12:51:39 +01:00
WerWolv
ad4e7c3355 impr: Don't check for overflow every frame 2023-11-08 12:46:47 +01:00
WerWolv
ea5d4ca3ae impr: Detect overflow in Euclidean algorithm tool 2023-11-08 12:40:33 +01:00
WerWolv
87e7f817c1 feat: Added extended Euclidean algorithm to tools 2023-11-08 11:54:57 +01:00
WerWolv
3af1840c6a fix: Typo and formatting 2023-11-08 11:54:21 +01:00
WerWolv
e5ff04be29 fix: Crash when using too large column count 2023-11-08 11:54:03 +01:00
WerWolv
da851c3c10 fix: Average and Median nodes using wrong output types 2023-11-08 11:53:46 +01:00
WerWolv
1ca71ec30d impr: Make sidebar look better 2023-11-07 16:40:41 +01:00
WerWolv
ef320b74b0 impr: Handle showing popups when closing unsaved providers better 2023-11-07 15:31:54 +01:00
WerWolv
669e1921a4 feat: Added Euclidean Algorithms tools 2023-11-07 00:47:10 +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
7efe9acefb fix: Warnings about missing theme/style handlers being printed on launch 2023-11-06 15:15:18 +01:00
WerWolv
94f3664dbc impr: Make TCP Client/Server table visible when detaching tool 2023-11-05 21:52:12 +01:00
WerWolv
d1f8053fbb fix: Format string vulnerability 2023-11-05 21:51:49 +01:00
WerWolv
7efdcfd888 fix: Properly align welcome screen again 2023-11-05 21:17:37 +01:00
WerWolv
4e4cdcdf61 feat: Added release notes and commits to about page 2023-11-05 19:57:29 +01:00
WerWolvTranslationBot
2e45069882
lang: Translations update from Weblate (#1400)
Translations update from [Weblate](https://weblate.werwolv.net) for
[ImHex/Built-in
Plugin](https://weblate.werwolv.net/projects/imhex/built-in-plugin/).


It also includes following components:

* [ImHex/Windows
Plugin](https://weblate.werwolv.net/projects/imhex/windows-plugin/)



Current translation status:

![Weblate translation
status](https://weblate.werwolv.net/widgets/imhex/-/built-in-plugin/horizontal-auto.svg)

---------

Co-authored-by: xtex <xtexchooser@duck.com>
2023-11-05 12:59:07 +01:00
WerWolv
4d456f1bc0 impr: Don't display U64_MAX as region size when null provider is open 2023-11-05 00:56:45 +01:00
WerWolv
d6ba41c2d9 fix: Disable IP and Port fields when TCP Client/Server are connected 2023-11-05 00:10:59 +01:00
WerWolv
4c2fe8e03c impr: Various TCP Client/Server tool improvements 2023-11-05 00:00:32 +01:00
WerWolv
ec95c260bb fix: Only register event shutting down the network interface once 2023-11-04 23:41:52 +01:00
WerWolv
055e18058f fix: Network interface not shutting down correctly 2023-11-04 22:20:22 +01:00
WerWolv
fa5e32496c fix: Make sure main window stays within the window at all times 2023-11-04 22:10:34 +01:00
WerWolv
cd6a62dd27 fix: Welcome screen having a weird header 2023-11-02 09:34:03 +01:00
WerWolv
4e6af607e8 fix: Crash when clicking on the welcome screen 2023-11-02 08:54:02 +01:00
WerWolv
f14f77b4f0 git: Updated Mary's profile link 2023-11-01 10:43:59 +01:00
WerWolv
9617212ef1 impr: Allow visualizers to have optional parameters 2023-10-31 10:56:20 +01:00
WerWolvTranslationBot
4af66f7d3d
lang: Translations update from Weblate (#1396)
Translations update from [Weblate](https://weblate.werwolv.net) for
[ImHex/Built-in
Plugin](https://weblate.werwolv.net/projects/imhex/built-in-plugin/).


It also includes following components:

* [ImHex/Windows
Plugin](https://weblate.werwolv.net/projects/imhex/windows-plugin/)



Current translation status:

![Weblate translation
status](https://weblate.werwolv.net/widgets/imhex/-/built-in-plugin/horizontal-auto.svg)

Co-authored-by: Minseo Lee <itoupluk427@gmail.com>
2023-10-31 10:02:23 +01:00
WerWolv
c7cee59a77 impr: Added build date and time to about page 2023-10-30 23:24:00 +01:00
WerWolv
7002e3bbf3 impr: Make popups fully opaque 2023-10-30 23:14:22 +01:00
WerWolv
c37c53369b impr: Dock newly opened windows by default 2023-10-30 21:53:44 +01:00
WerWolvTranslationBot
a980097d64
lang: Translations update from Weblate (#1393)
Translations update from [Weblate](https://weblate.werwolv.net) for
[ImHex/Built-in
Plugin](https://weblate.werwolv.net/projects/imhex/built-in-plugin/).


It also includes following components:

* [ImHex/Windows
Plugin](https://weblate.werwolv.net/projects/imhex/windows-plugin/)



Current translation status:

![Weblate translation
status](https://weblate.werwolv.net/widgets/imhex/-/built-in-plugin/horizontal-auto.svg)

---------

Co-authored-by: Minseo Lee <itoupluk427@gmail.com>
2023-10-30 16:32:55 +01:00
WerWolv
c444ad9280 impr: Bundle default magic file with application 2023-10-29 19:43:45 +01:00
WerWolv
e63af24626 fix: Documentation AI not working correctly often
Fixes #1375
2023-10-26 17:19:23 +02:00
WerWolv
f94c23d64d fix: Copy As -> Go Array producing syntactically invalid code
Fixes #1391
2023-10-26 17:13:59 +02: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
aae5586b5c fix: Provider tab bar arrow buttons not working
Fixes #1374
2023-10-24 19:29:22 +02:00
WerWolv
215e1ffdc8 fix: Weird indentation 2023-10-22 23:06:35 +02:00
WerWolv
cb2aee0ed7 fix: Various TCP tool issues 2023-10-22 21:52:55 +02:00
WerWolv
8cd0561e71 fix: Binary Pattern search being broken with alignments > 1 2023-10-22 20:59:32 +02:00
WerWolv
1b54a8858e lang: Added localization for debug view 2023-10-22 19:51:15 +02:00
WerWolv
c3825fff65 fix: Actually fix dropdown default values 2023-10-22 17:51:00 +02:00
WerWolv
c51db87c34 fix: Language setting not defaulting to English anymore 2023-10-22 17:31:53 +02:00
WerWolv
beca8033cf fix: Modifying last byte in row copies first byte from current row to next row
Fixes #1329
2023-10-22 13:46:21 +02:00
Nik
72f2f0877d
feat: Added TCP Client/Server tool (#1379) 2023-10-21 22:46:45 +00:00
Nik
7fe9a768d4
impr: Rewrote entire settings API and UI (#1378) 2023-10-21 21:07:33 +00:00
Nik
f114239f51
feat: Added Auto Updater for Windows, macOS and Ubuntu (#1377) 2023-10-21 18:40:24 +00:00
WerWolv
c46e445a04 impr: Store achievement progress immediately when unlocking one 2023-10-20 13:34:45 +02: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
Nik
b4ee02b725
fix: Shift right data processor node displaying shift left in its header 2023-10-19 22:48:11 +02:00
WerWolv
79e25b0889 feat: Added bitwise shift left/right data processor nodes 2023-10-19 22:08:39 +02:00
WerWolv
58870f3057 fix: File load achievement triggering every time a file was opened through the cli 2023-10-17 13:45:12 +02:00
WerWolv
8821f75e6b impr: Display friendly disk name as the tab title of the disk provider 2023-10-17 10:22:56 +02:00
WerWolv
c49aad6cd3 impr: List all physical drives on windows in the raw disk provider 2023-10-16 23:45:46 +02:00
WerWolv
afceb34729 fix: Crash when opening invalid files through the CLI 2023-10-16 10:59:49 +02:00
paxcut
93c8a45de0
fix: Fixed spacing in bit labels so it works for any font and any size. (#1365)
Testing various fonts and sizes I realized there were still problems
with the layout of the bit labels. Also I reorganized the code so that
lambdas are defined just before they are used. Comments needed
punctuation too.

Part of the problem was that I had been assuming all along that the
check boxes were ImGui's originals which are always square. In actuality
the width is determined by the width of the character for '0'. Also
ImGui table was adding spacing to separate cells which made the boxes
not start at same place as column. Also for some reason using indent of
zero didn't work as expected but using 0.1 pixels worked. With those
problems fixed it is fairly easy to make sure the labels are centered at
the box except when the first mantissa checkbox gets a label which is
wider that the box width. Before and after show results for different
fonts.

Before:

![image](https://github.com/WerWolv/ImHex/assets/53811119/3778e6d5-6fbd-48e1-ac51-39a6636daea5)

After:

![image](https://github.com/WerWolv/ImHex/assets/53811119/79c0f027-3119-4762-a4e3-315e84505f3b)
2023-10-15 20:07:51 +00:00
mirusu400
1f208dbb21
lang: Sync json key order in each lang file (#1366)
### Implementation description
I synchronized the json key order with `en_US.json` in each lang file.


### Additional things
Here are simple python script that make this change
```python
import json
from collections import OrderedDict
original = "./en_US.json"

modified = [
    "./de_DE.json",
    "./es_ES.json",
    "./it_IT.json",
    "./ja_JP.json",
    "./ko_KR.json",
    "./pt_BR.json",
    "./zh_CN.json",
    "./zh_TW.json",
]

for modify in modified:

    dict_2 = {}
    
    with open(original, 'r', encoding='utf-8') as f1, open(modify, 'r', encoding='utf-8') as f2:
        dict_1 = json.load(f1)
        dict_2 = json.load(f2)
        dict_1_translations = dict_1["translations"]
        dict_2_translations = dict_2["translations"]
        
        ordered_dict_2 = OrderedDict((k, dict_2_translations[k]) for k in dict_1_translations.keys())
        dict_2["translations"] = ordered_dict_2
    
    with open(modify, 'w', encoding='utf-8') as f2:
        json.dump(dict_2, f2, ensure_ascii=False, indent=4)
```
2023-10-15 21:23:07 +02:00
WerWolv
da1b53420f feat: Added debug variables to aid with development 2023-10-13 23:46:48 +02:00
WerWolv
5a71cc2d61 fix: Wikipedia explainer tool randomly resetting input 2023-10-12 20:35:44 +02:00
WerWolv
b98b60a126 fix: Provider hover tooltip always showing information about current provider 2023-10-12 20:28:02 +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
WerWolvTranslationBot
f982ff62e4
lang: Translations update from Weblate (#1346)
Translations update from [Weblate](https://weblate.werwolv.net) for
[ImHex/Built-in
Plugin](https://weblate.werwolv.net/projects/imhex/built-in-plugin/).


It also includes following components:

* [ImHex/Windows
Plugin](https://weblate.werwolv.net/projects/imhex/windows-plugin/)



Current translation status:

![Weblate translation
status](https://weblate.werwolv.net/widgets/imhex/-/built-in-plugin/horizontal-auto.svg)

---------

Co-authored-by: Anonymous <noreply@weblate.org>
2023-10-04 22:22:58 +02:00
WerWolvTranslationBot
5b8947c36b
lang: Translations update from Weblate (#1322)
Translations update from [Weblate](https://weblate.werwolv.net) for
[ImHex/Built-in
Plugin](https://weblate.werwolv.net/projects/imhex/built-in-plugin/).


It also includes following components:

* [ImHex/Windows
Plugin](https://weblate.werwolv.net/projects/imhex/windows-plugin/)



Current translation status:

![Weblate translation
status](https://weblate.werwolv.net/widgets/imhex/-/built-in-plugin/horizontal-auto.svg)

---------

Co-authored-by: Nik <werwolv98@gmail.com>
Co-authored-by: xtex <xtexchooser@duck.com>
2023-10-04 22:18:45 +02:00
5idereal
07a274fe4c
lang: Updated zh_TW translation (#1333)
<!--
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

### Implementation description

Updated Traditional Chinese (Taiwan) translations for ImHex.

### 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 -->
2023-10-04 22:10:28 +02:00
paxcut
081c581b8c
fix: Layout of large font labels in IEEE 745 floating point tool (#1337)
### Problem description
The issue seems to only affect the web version of ImHex but it is not
clear why. The labels of the checkboxes that represent bits in the IEEE
745 floating point tool were lay out incorrectly.

### Implementation description
The new code ensures that the bit labels are centered and located in the
middle of the checkbox regardless of the font size and the dear imgui
sized checkboxes.
2023-10-04 22:10:06 +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
e80c7bff1c impr: Refactored forwarder executable and add lots more information to it 2023-09-27 14:14:27 +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
WerWolv
f79e2df11a feat: Added shortcut to switch between providers 2023-09-24 18:11:17 +02:00
Paul Sorensen
be8c679d4a
impr: Return early to remove nested code (#1253)
<!--
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 -->
This will simplify the codebase in the pattern drawer. It returns early
on conditional statements and reduces the amount of nested code making
it easier to read and track while developing.
2023-09-20 10:49:09 +02:00
paxcut
c577a42f62
impr: Refactoring of floating point tool to decrease code complexity. (#1275)
I noticed the bad score on code factor so I reorganized it to make it
more readable and maintainable. In order to break down the big function
into it much smaller parts I encapsulated all the variables that the
functions need to access in two classes, one for the imgui related
statics and the other for non-static variables.

When writing the smaller functions I was noticed that there was room to
simplify the existing algorithms by writing functions that could be
called by parts that previously shared no code. I tested the changes the
same way I tested the original and it seems to work the same way but
maybe a bit faster. Although it may be possible to further optimize the
present code code factor no longer flags the function at all.
2023-09-20 10:48:44 +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
Imron jehleh
64a30a45d5
fix: Error popup now showing up immediately after click (#1272)
From #1265, Looks like Error Popup doesn't handle properly in some
circumstances.

---------

Co-authored-by: iTrooz <hey@itrooz.fr>
Co-authored-by: WerWolv <werwolv98@gmail.com>
2023-09-16 13:09:24 +02:00
WerWolv
1a2a926b77 fix: "About ... that much" achievement not triggering correctly 2023-09-12 22:24:12 +02:00
WerWolv
da18428f27 fix: Highlighting not being cleared correctly in some cases 2023-09-12 22:23:47 +02:00
iTrooz
5e86f62a98
fix: Handle exceptions thrown by providers on loadSettings() (#1307) 2023-09-12 12:00:00 +02:00
WerWolv
1bb0a72bed fix: Issues with various float nodes 2023-09-04 19:59:09 +02:00
WerWolv
7685a22c5f fix: Crash when pressing delete twice when data processor nodes are selected 2023-09-04 19:58:55 +02:00
WerWolv
2b8a9db0f0 impr: Clean up default layout file 2023-09-03 22:45:03 +02:00
WerWolv
4ff25819c2 fix: Pasting not working correctly on non-zero pages
Fixes #1291
2023-09-03 16:25:51 +02:00
WerWolv
563ff5a774 fix: Future proof the previous fix 2023-09-03 16:18:29 +02:00
WerWolv
b042b8327a fix: Crash when re-opening a custom section window while having a selection in it 2023-09-03 16:09:06 +02:00
WerWolv
971c8739ca fix: Potential crash when preprocessing invalid pattern file when loading a file 2023-09-03 15:49:27 +02:00
WerWolv
26f4aa0d9f fix: Buffer to integer node not working correctly 2023-09-03 15:41:00 +02:00
WerWolv
b2d1568abb fix: First overlay being assigned to all end nodes 2023-09-03 13:44:13 +02:00
WerWolv
632f388ece impr: Make --pl subcommand automatically register ImHex's include dirs 2023-09-03 12:25:00 +02:00
WerWolv
0bbd21f25a fix: Build issues with older standard libraries 2023-09-03 11:44:48 +02:00
WerWolv
367c4ec9c8 impr: More view comments and refactoring 2023-09-03 10:27:03 +02:00
WerWolv
5538307838 impr: Make achievement popups stay up for longer 2023-09-03 10:26:40 +02:00
iTrooz
fc1ad592cb
feat: Adapt content store view for new API contents (#1268) 2023-09-02 18:36:34 +02:00
Lennard Fonteijn
f725d763d1
feat: Remember bytes per row in Hex Editor (#1276) 2023-09-02 17:52:05 +02:00
iTrooz
c2fe9f0966
fix: verify that file names queried from the store do not allow path traversal (#1277) 2023-09-02 17:51:21 +02:00
WerWolv
58cef2361b impr: Added hint when patterns are still loading 2023-08-30 10:04:06 +02:00
WerWolv
60649d1cba fix: Occasional crash when using favorites 2023-08-30 09:18:24 +02:00
WerWolv
ea9457c08c patterns: Added [[hex::favorite]] attribute 2023-08-29 21:46:08 +02:00
WerWolv
4288f876e2 impr: Added lots of comments and cleaned up many views 2023-08-29 12:14:12 +02:00
iTrooz
10ad239fb9
fix: add _lang suffix to "Load into memory" localization string (#1267) 2023-08-28 02:21:41 +02:00
WerWolv
550392c8d6 fix: Texture loading from romfs 2023-08-26 23:43:35 +02:00
WerWolv
ba66005585 impr: Various code cleanup 2023-08-26 12:54:52 +02:00
Justus Garbe
bfc835fc54 fix: add new capstone options and fixed overextending name array 2023-08-26 12:21:44 +02:00
iTrooz
32d6ac2241
feat: move PerProvider data to new provider when saving memory provider into file provider (#1264) 2023-08-26 01:47:44 +02:00
iTrooz
175e66a60e
feat: Do not save memory providers as recent entries (#1259) 2023-08-25 15:35:15 +02:00
WerWolv
d50fb8d17b fix: Crash when deleting items from file combiner in some cases 2023-08-19 19:18:57 +02:00
WerWolv
83e42ddfd9 fix: Don't show accept pattern popup if no patterns are available 2023-08-19 19:12:48 +02:00
WerWolv
e70ec10b0e impr: Allow the file combiner tool to select multiple files at once 2023-08-19 19:11:38 +02:00
WerWolv
b4401b7df1 fix: Rest in peace, Anonfiles 2023-08-17 09:27:14 +02:00
lorsanta
84ceb45129
impr: Update timestamp when saving a file in windows (#1248)
### Problem description
Ref #1210 

### Implementation description
Call
[`SetFileTime()`](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-setfiletime)
everytime `FileProvider::save()` is called.

### Additional things
I moved the call to `File::close()` from `FileProvider::open()` to
`FileProvider::close()` because `SetFileTime()` requires a file handler
as input, so I need `File::m_file` to be valid.
2023-08-16 23:18:16 +02:00
WerWolv
8a2afd1c05 fix: Crashes when having pattern auto evaluation enabled 2023-08-16 22:26:05 +02:00
Justus Garbe
2059ad82c3 fix: Update title on project save 2023-08-13 23:36:50 +02:00
Lennard Fonteijn
c25aad552d
feat: Selectable demangler (#1250)
Supersedes #1240 - depends on #1249 and
https://github.com/WerWolv/libwolv/pull/8 to work.
2023-08-13 21:51:05 +02:00
Lennard Fonteijn
896091b124
feat: Added toggle for human-readable units in hex editor footer (#1251)
Finalization of #1245 by adding a toggle to the hex editor itself, issue
can be closed afterwards.
2023-08-13 19:08:09 +02:00
Lennard Fonteijn
d2e6d8e4d9
Added ImGui extension to create single- and multiline formatted selec… (#1249)
(Partial) implementation of #1245 with additional functionality to
supersede PR #1240.
2023-08-13 17:08:17 +02:00
WerWolv
65c56a887c feat: Added option to load files into memory 2023-08-09 20:04:12 +02:00
WerWolv
882849e73c fix: Highlighting of found elements not being cleared correctly 2023-08-09 20:01:57 +02:00
WerWolv
a6aafa8cd6 feat: Allow memory files to be renamed 2023-08-08 19:04:00 +02:00
WerWolv
ba9227c1e0 feat: Properly save memory provider data 2023-08-06 21:48:08 +02:00
Nik
e77f138514
feat: Added Achievements (#1230)
This PR adds Achievements to ImHex that serve as both a guide and a fun
way to learn more about ImHex and reverse engineering
2023-08-06 21:33:15 +02:00
WerWolv
f2cfc70eca fix: Highest / Lowest entropy block address being wrong 2023-08-06 01:51:01 +02:00
WerWolv
2082781cf5 fix: Correct endianess of CRC hashes
Fixes #1225
2023-08-04 16:05:21 +02:00
WerWolv
a61c93e99c impr: Better tooltip for update all button in content store
#1222
2023-08-03 21:50:28 +02:00
WerWolv
79eb53eb0d fix: --pl command line interface not working correctly 2023-08-02 20:30:13 +02:00
WerWolv
05ca498343 feat: Added Fill option to hex editor 2023-08-02 13:09:21 +02:00
WerWolv
fbd4bc337b fix: Crash when trying to format invalid timestamps 2023-08-02 12:52:10 +02:00
WerWolv
89115bcdde impr: Added better data processor workspace close button 2023-08-02 12:51:58 +02:00
WerWolv
954c0d5bda fix: Writing to hex cells in big endian mode writing the value as little endian
Fixes #1219
2023-08-02 12:51:33 +02:00
WerWolv
bf8924ae0c feat: Added support for string in/out variables 2023-08-02 12:51:02 +02:00
WerWolv
106e669512 feat: Added setting to remember and restore window position and size
Closes #1215
#944
2023-07-31 11:17:37 +02:00
WerWolv
b469e68ddb fix: Pattern console not updating correctly 2023-07-30 21:35:31 +02:00
WerWolv
2e5a51bb05 patterns: Updated pattern language 2023-07-30 00:44:09 +02:00
WerWolv
d079b8c3bb impr: Hide column headers when hiding ASCII or custom encoding column 2023-07-28 10:31:44 +02:00
WerWolv
33f0d59545 fix: Bad formatting of project open error popup 2023-07-28 00:01:49 +02:00
WerWolv
e829c407e3 fix: Writing behaving weirdly when using a custom base address 2023-07-27 02:05:35 +02:00
WerWolv
94a02c4b6d build: Streamlined plugin creation process 2023-07-27 00:53:04 +02:00
WerWolv
4792a29fac fix: Crash when passing invalid parameters to sound visualizer
Fixes #1208
2023-07-26 22:13:39 +02:00
WerWolv
d0a5c144e6 patterns: Updated pattern language 2023-07-26 00:23:09 +02:00
WerWolv
4d4f223357 impr: Improve frame rate when lots of bytes are highlighted 2023-07-24 23:24:31 +02:00
WerWolv
a032bfa0f5 feat: Added support for hashing arbitrary strings using the string view 2023-07-24 16:58:52 +02:00
WerWolv
ff8946b851 fix: Pattern array chunks being rendered wrongly 2023-07-24 16:55:35 +02:00
WerWolv
b8d5e1e9c5 feat: Added built-in logging console 2023-07-23 23:37:47 +02:00
WerWolv
fdd2e1fcde patterns: Added [[hex::spec_name]] 2023-07-23 09:14:00 +02:00
WerWolv
564ae6dd8c fix: Crash when loading bad font 2023-07-22 19:35:58 +02:00
WerWolv
8aec382440 fix: Loading of plugins and localizations after restart 2023-07-22 18:38:14 +02:00
WerWolv
a99f8f78d0 fix: Crash when trying to paste invalid data 2023-07-22 18:21:58 +02:00
WerWolv
f6bbfd7283 impr: Properly print new line characters in cli 2023-07-21 15:17:21 +02:00
WerWolvTranslationBot
d3f493b6c2
lang: Translations update from Weblate (#1200)
Translations update from [Weblate](https://weblate.werwolv.net) for
[ImHex/Built-in
Plugin](https://weblate.werwolv.net/projects/imhex/built-in-plugin/).


It also includes following components:

* [ImHex/Windows
Plugin](https://weblate.werwolv.net/projects/imhex/windows-plugin/)



Current translation status:

![Weblate translation
status](https://weblate.werwolv.net/widgets/imhex/-/built-in-plugin/horizontal-auto.svg)

Co-authored-by: Justus Garbe <gihihoh@gmail.com>
2023-07-21 14:30:27 +02:00
WerWolv
bd8868d2c8 impr: Added better help output for cli 2023-07-21 14:28:15 +02:00
WerWolv
ee41a5a046 fix: Selection changes not being handled correctly 2023-07-21 14:22:53 +02:00
WerWolv
18dd754b31 impr: Better handling of hex editor selections 2023-07-20 20:58:28 +02:00
WerWolv
3c97759aa7 fix: Crash when trying to load files with invalid paths 2023-07-19 22:35:55 +02:00
WerWolv
2d4f971d10 impr: Disable endianess switch in hex editor when visualizer only uses one byte 2023-07-18 14:23:02 +02:00
WerWolv
90267ec356 impr: Allow hex editor view to be scrolled slightly past the end 2023-07-18 14:22:39 +02:00
WerWolvTranslationBot
7fc53bf861
lang: Translations update from Weblate (#1199)
Translations update from [Weblate](https://weblate.werwolv.net) for
[ImHex/Built-in
Plugin](https://weblate.werwolv.net/projects/imhex/built-in-plugin/).


It also includes following components:

* [ImHex/Windows
Plugin](https://weblate.werwolv.net/projects/imhex/windows-plugin/)



Current translation status:

![Weblate translation
status](https://weblate.werwolv.net/widgets/imhex/-/built-in-plugin/horizontal-auto.svg)

---------

Co-authored-by: Justus Garbe <gihihoh@gmail.com>
Co-authored-by: xtex <xtexchooser@duck.com>
2023-07-17 16:40:40 +02:00
WerWolv
b9c2955b88 fix: Use ANSI escape codes for --plugins 2023-07-17 11:59:21 +02:00
WerWolv
6d7f217e2a patterns: Updated pattern language 2023-07-17 11:20:17 +02:00
WerWolv
a83ca3c228 feat: Added --pl and --magic command 2023-07-17 10:43:29 +02:00
WerWolv
b9ec1a150d fix: Wrong libfmt header being included 2023-07-17 09:12:22 +02:00
classabbyamp
d9a4906b3c
impr: Clarify portal error message (#1197)
<!--
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 -->

see #723


### Implementation description
<!-- Explain what you did to correct the problem -->

`xdg-desktop-portal-wlr` is not relevant because it does not provide the
FileChooser interface.

`xdg-desktop-portal` needs the `WAYLAND_DISPLAY` env var on wayland and
the `DISPLAY` and `XAUTHORITY` env vars on xorg. If the dbus user
session bus is not run in a way that it already gets those variables,
they must be given via `dbus-update-activation-environment(1)`.

### 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 -->

fixes #723
2023-07-17 09:11:40 +02:00
WerWolv
e9450b490f feat: Added --plugin, --calc, --hash, --encode and --decode subcommands 2023-07-16 23:46:41 +02:00
WerWolv
52c517d38d fix: Potential crash when loading incorrect data processor node files 2023-07-16 20:41:06 +02:00
WerWolv
aac9bf3896 fix: Crash when using "Open in new View" button in bookmarks 2023-07-16 20:35:10 +02:00
WerWolv
54891c6d8f impr: Added proper localization for new visualizer endianess toggle 2023-07-16 20:25:31 +02:00
WerWolv
7631778edb feat: Added support for big endian in data visualizers 2023-07-16 19:53:02 +02:00
Justus Garbe
1a3debd6c9
fix: Raw Disk Provider not working correctly on Linux and macOS (#1195)
<!--
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
- Fixed disk provider not working for linux

### Implementation description
- Used ioctl instead of fstat
- Fixed buffer issues

---------

Co-authored-by: WerWolv <werwolv98@gmail.com>
2023-07-16 18:18:41 +02:00
WerWolv
893b06c78b feat: Allow hex editor editing mode to be entered when pressing Enter 2023-07-16 18:14:48 +02:00
WerWolv
3a775e982f build: Removed outdated and dangerous linker flags in plugins 2023-07-15 10:02:34 +02:00
WerWolv
c1cdab72ef fix: Weird behaviour when trying to open a non-existing file through the command line 2023-07-15 00:12:09 +02:00
iTrooz
1ed658bcdc
feat: Added command line interface support (#1172)
System design has been discussed on discord

Should fix #948

---------

Co-authored-by: WerWolv <werwolv98@gmail.com>
2023-07-13 14:08:23 +02:00
WerWolv
272b4b0cf8 feat: Added "Update All" button to content store 2023-07-11 09:19:52 +02:00
WerWolv
8524e93445 impr: Display encoding types in header of hex editor
Closes #1186
2023-07-11 00:04:26 +02:00
WerWolv
ce9ce42c1c impr: Only reload localization when necessary 2023-07-09 20:24:56 +02:00
WerWolv
6343cb092b build: Fixed include issues 2023-07-09 12:53:31 +02:00
WerWolv
2449b08f64 fix: Crash when trying to remove chunks larger than the whole file 2023-07-06 21:14:50 +02:00
WerWolv
c9c6f3aadb fix: New visualizers behaving weirdly with large font sizes 2023-07-06 10:08:47 +02:00
WerWolv
924c816dbd fix: Chunk size setting in information view being reset the first time 2023-07-06 00:00:56 +02:00
WerWolv
695e11477e feat: Added single stepping feature to pattern debugger 2023-07-05 21:32:11 +02:00
iTrooz
e3ae169833
impr: Separate the behaviour of being savable and being dumpable for provider (#1183)
### Problem description

Currently, the providers use the method `isSavable()` to determine both
if they can use "Save" or "Save as".
This behaviour is problematic because some providers may need to be
saveable but not saveable as: for example the view provider. The
original provider may not allow to be saved.

### Implementation description
I separate these two behaviour by creating another function:
`isDumpable()`, that return true by default but can be overridden by the
provider to return false, if the provider should not be dumped in any
way.

### Additional things

While I was at it, I also marked "export" operations as needing the
"dumpable" flag. That way, we can't accidentally export the whole
address space of a process as base64.

I also added documentation for these some functions in Provider
2023-07-05 20:49:57 +02:00
WerWolv
b6881d2362 feat: Added timestamp visualizer 2023-07-05 19:54:18 +02:00
WerWolv
8e0349e2ac fix: Projects failing to be loaded when another project is being unloaded 2023-07-04 23:30:37 +02:00
WerWolv
86c4c8fa96 feat: Added new pattern inline visualizers 2023-07-04 22:18:06 +02:00
WerWolv
33566137c2 impr: Allow bitmap visualizers to be zoomed 2023-07-04 22:17:51 +02:00
WerWolv
f16bbfb469 feat: Added coordinates visualizer 2023-07-04 09:40:05 +02:00
WerWolv
b265d8e54a build: Restructure romfs assets 2023-07-04 08:42:33 +02:00
WerWolv
6a667d9493 impr: Allow image visualizer image to be scaled 2023-07-03 21:24:36 +02:00
WerWolv
ceed8c7420 pattern: Properly display Start/End/Size column again for zero sized types 2023-07-03 21:24:15 +02:00
WerWolv
d297b2d1cc impr: Hide sections with an empty name 2023-07-03 12:04:20 +02:00
WerWolv
39e74c627e impr: Handle unidentifiable data in the data information view better 2023-07-02 10:27:56 +02:00
WerWolv
a0c89858ed patterns: Don't re-evaluate format functions during highlighting 2023-07-01 14:06:15 +02:00
iTrooz
c6c3ca4d26
fix: Reset terminate handler directly when being called + some other crashes to crash handling (#1174)
This PR fixes some things about crash handling:
- when the terminate handler is called, immediately set it back to the
original one, so can't make a recursion if the crash-handling code fails
- Only save projects if the crash occured after Imhex finished startup
- do not update the project location when saving the crash backup file:
this will remove problems when `EventAbnormalTermination` is called
before `crashCallback()`

I also added a bit more documentation
2023-07-01 12:32:28 +02:00
WerWolv
301418c728 fix: Bookmarks not being loaded correctly when multiple providers are in project 2023-07-01 12:27:59 +02:00
iTrooz
aec38328d0
impr: Added "Hold SHIFT for more info" text to provider tooltip (#1171)
As discussed on discord
2023-06-30 22:28:37 +02:00
WerWolv
050a71913a impr: Improved construction of language settings dropdown 2023-06-30 14:00:10 +02:00
WerWolv
8cc6994dd0 fix: Properly apply UI scaling on launch 2023-06-30 13:40:39 +02:00
WerWolv
bc98556897 impr: Automatically scroll pattern console to the bottom when new lines are added 2023-06-30 00:11:48 +02:00
WerWolv
4f08ba3590 patterns: Fixed race condition when evaluating patterns 2023-06-30 00:11:26 +02:00
WerWolv
d527675bda build: Make sure changing commit hash doesn't trigger a full rebuild
Closes #1137
2023-06-26 14:01:45 +02:00
WerWolv
15cd2b693c fix: Crash when using paste without a valid selection 2023-06-26 11:14:10 +02:00
WerWolv
cda883bb0f fix: Page count displaying wrongly in empty files 2023-06-26 11:13:12 +02:00
WerWolv
e03c91b888 impr: Better UI for all data information diagrams 2023-06-26 10:51:37 +02:00
WerWolv
9282f1fe75 fix: Multiwindow support not being disabled by default on Linux 2023-06-26 09:02:23 +02:00
WerWolv
af147b4f54 fix: Titlebar button localization keys still being inside the windows plugin 2023-06-26 08:54:30 +02:00
WerWolv
c280b16787 fix: Make disassembler view not clear selection when typing in region 2023-06-24 20:53:36 +02:00
WerWolv
a449478e39 patterns: Make updating favorites and pattern tooltips not lag out ImHex 2023-06-24 16:40:34 +02:00
WerWolv
c1babc2a55 fix: Prevent data inspector table from being scrollable 2023-06-24 15:39:19 +02:00
WerWolv
b644020e0f impr: Allow Accept Pattern popup to be closed with Escape 2023-06-24 15:32:05 +02:00
WerWolv
07ffd21c5a fix: Entropy and byte type graph sometimes stopping in the middle 2023-06-24 15:20:26 +02:00
WerWolv
af951e3526 fix: Entropy and byte type diagram address and display being wrong 2023-06-24 11:53:21 +02:00
WerWolv
ade05f8e12 impr: Only load a limited subset of unicode characters by default 2023-06-24 10:58:42 +02:00
WerWolv
1e9cc97263 feat: Added scope selector dropdown to pattern debugger 2023-06-24 00:49:43 +02:00
WerWolv
a7ecefb5a0 fix: Don't load constants files that start with a _ 2023-06-23 21:39:39 +02:00
WerWolv
d65e669bbb impr: Make loading of large table files significantly faster 2023-06-21 23:58:21 +02:00
iTrooz
b7d8e46288
feat: Display detailed error message when loading of project fails (#1135)
In order to do this I add to make some other additions :
- Add a warning popup (TODO, maybe add some icons to differentiate
error/warning popups in a future PR ?)
- create showError() and showWarning() functions, as helpers to show a
message both to the logs and as a popup
2023-06-21 20:07:36 +02:00
WerWolv
3fe6cd057b impr: Upper case pattern data export options 2023-06-21 17:49:03 +02:00
WerWolv
da11c47693 impr: Better sorting of hex cell visualizers 2023-06-21 17:48:51 +02:00
WerWolv
9cd19063da fix: Occasional crashes when evaluating patterns 2023-06-21 10:30:00 +02:00
WerWolv
0da87cdb68 patterns: Updated pattern language 2023-06-21 09:29:40 +02:00
WerWolv
eed785d73f impr: Better layout for statistics value in statistics popup 2023-06-21 00:33:06 +02:00
shenleban tongying
b223d9b0ff
fix: Wrong drawing logic for custom encoding characters (#1150)
fix https://github.com/WerWolv/ImHex/issues/1146
related
3a840c4ced
2023-06-21 00:30:26 +02:00
WerWolv
c8150f3261 impr: Make statistics format not suck a whole lot 2023-06-21 00:21:16 +02:00
Nik
f703b15165
feat: Added statistics and crash log uploading (#1149)
Co-authored-by: Justus Garbe <gihihoh@gmail.com>
2023-06-20 11:55:56 +02:00
WerWolv
25154dd450 build: Force enable exceptions and rtti 2023-06-18 14:42:48 +02:00
WerWolv
d9af85f458 impr: Split offset column into Start and End column in pattern data view 2023-06-18 12:23:47 +02:00
WerWolv
5f6bc2507c impr: Make ImHex not use lots of CPU when waiting for conditions 2023-06-18 10:18:58 +02:00
WerWolv
c2e023f567 fix: Pattern editor console scrolling back to the top constantly 2023-06-16 22:17:01 +02:00
WerWolv
90a576c3c7 fix: Highlighting and updating of the new console not working well 2023-06-14 10:35:23 +02:00
WerWolv
0e5371b298 fix: Properly handle multithreading for new pattern console 2023-06-14 06:57:43 +02:00
WerWolv
dd832bfa7e ui: Make pattern editor console use another text editor 2023-06-13 22:58:57 +02:00
WerWolv
3b514003f8 fix: Pattern editor drag bar not always getting dragged correctly 2023-06-12 08:55:30 +02:00
WerWolv
7de367a944 impr: Properly allow multi-threaded logging without messing up output 2023-06-12 08:24:36 +02:00
WerWolv
ef1d831158 impr: Better UI/UX of the new debugger 2023-06-11 22:00:49 +02:00
WerWolv
da137b3e3b feat: Allow pattern editor console to be resized 2023-06-11 21:41:24 +02:00
WerWolv
03673b5846 feat: Added basic Pattern Language debugger 2023-06-11 21:41:11 +02:00
WerWolv
34732a1ee7 fix: Corrected some memory leaks 2023-06-11 10:47:17 +02:00
KOLANICH
e8ca139246
fix: Remove unused member variable in HexEditor class (#1129)
Fixes `error: private field 'm_grayZeroHighlighter' is not used
[-Werror,-Wunused-private-field]`
2023-06-11 00:49:34 +02:00
WerWolv
ef9cb31204 patterns: Updated pattern language 2023-06-11 00:08:34 +02:00
WerWolv
e90e414d5a impr: Show infinity icon in pattern editor view when pattern limit is disabled 2023-06-10 15:09:20 +02:00
WerWolv
a485a0bc3a fix: Crash when loading files in some cases 2023-06-08 17:02:28 +02:00
WerWolv
903d1fb555 impr: Analyze file content of newly loaded files only when they are selected 2023-06-08 17:02:16 +02:00
WerWolv
99831a66a7 feat: Added file handlers for .hexlyt and .hexproj files 2023-06-06 21:35:13 +02:00
WerWolv
456895a6a6 fix: Various pattern drawer issues 2023-06-06 11:29:58 +02:00
WerWolv
1e2cf87532 fix: Properly clear pattern editor when all providers are closed 2023-06-06 10:36:02 +02:00
WerWolv
48022bc295 fix: Bad formatting of array chunks in pattern data view 2023-06-06 10:06:54 +02:00
Sergei Rebrov
b4ac46f719
impr: Set currently selected address in selection popup (#1125)
Set the Begin field to the current selected address
2023-06-06 08:22:10 +02:00
WerWolv
44bbbb03af fix: Various pattern visualizer issues
Closes #1119
2023-06-06 08:20:58 +02:00
WerWolv
b8457439a4 fix: Crash when loading custom encodings 2023-06-05 16:56:50 +02:00
WerWolv
c690f7627f fix: Bad sentence wrapping in advanced provider information popup 2023-06-05 15:36:47 +02:00
WerWolv
849e4ea370 feat: Make paths in about page clickable 2023-06-05 13:50:55 +02:00
WerWolv
9712329924 feat: Added pattern export option to pattern data view 2023-06-05 11:57:26 +02:00
WerWolv
59aa52e744 patterns: Allow console log to be printed immediately and from format functions 2023-06-05 09:45:25 +02:00
WerWolv
60a95eddd7 fix: Crash due to uninitialized data visualizer in hex editor 2023-06-05 09:45:03 +02:00
WerWolv
7c23b215ba impr: Allow detached tools to always be rendered 2023-06-05 09:08:41 +02:00
WerWolv
ae48ae659b impr: Move various settings from settings window to hex editor and pattern data view 2023-06-05 09:07:58 +02:00
WerWolv
e78c21cbfb impr: Use better icons for favorites and filter text boxes 2023-06-04 22:52:36 +02:00
WerWolv
cc55e5ec74 fix: Added missing pattern data favorites lang entry 2023-06-04 18:41:58 +02:00
WerWolv
1134697b90 fix: Pattern filter RValue parsing 2023-06-04 18:35:44 +02:00
WerWolv
e518b8360c feat: Allow patterns to be marked as favorite 2023-06-04 18:30:47 +02:00
WerWolv
244e34ab84 feat: Added pattern data filter field 2023-06-04 16:13:46 +02:00
WerWolv
07aabe8efa impr: Improved types used in provider functions 2023-06-04 10:42:11 +02:00
iTrooz
25476d4e1e
build: Update ImGui and its dependencies (#1122)
This PR updates imgui and its dependencies from the last time, ~1 year
ago
(deabacbd50)

Commits will be refactored before merging

Things you might ask :
- why did you remove `ImGui_ImplGlfw_SetBorderlessWindowMode()` ?
-> Where is it used ? The only usage of it I see is commented
(cb9a3b1f55/lib/external/imgui/source/imgui_impl_glfw.cpp (L757))
- why did you remove the implot anti aliasing flag ?
-> They.. seem to have removed it altogether ?
https://github.com/epezent/implot/issues/479
2023-06-04 00:09:45 +02:00
WerWolv
de76c37ffb fix: Multiple file provider resize issues 2023-06-03 23:57:41 +02:00
WerWolv
6d19b33e32 fix: Don't require providers to be writable to save a project 2023-06-03 23:18:43 +02:00
WerWolv
aca949175d impr: Disable advanced provider information popup if there are none 2023-06-03 15:57:47 +02:00
WerWolv
d2e455c4cb fix: Intel hex provider not displaying data correctly 2023-06-03 15:53:55 +02:00
WerWolv
09dda0bc5e feat: Added provider information to advanced provider tab tooltip 2023-06-02 14:44:19 +02:00
WerWolv
62ecfb0e0e fix: Make sure crash backup doesn't end up in recents list 2023-06-02 11:03:44 +02:00
WerWolv
504c022f01 patterns: Added hex_viewer visualizer 2023-06-02 10:47:23 +02:00
WerWolv
5e0ca4ac50 patterns: Properly display exported variables 2023-05-28 15:44:01 +02:00
WerWolv
8d8a5a70f3 fix: Find view replace and hex editor paste logic being wrong 2023-05-28 14:30:33 +02:00
WerWolv
c8c3f5e753 feat: Added primitive replace feature to find view 2023-05-28 11:50:10 +02:00
iTrooz
ea756e620e
fix: Explicitely convert std::fs::path to std::string (#1116)
This should fix the current crash when opening a project on Windows
2023-05-28 11:36:08 +02:00
iTrooz
e599d31625
fix: Properly Check if crash.json has valid json, remove it otherwise (#1117) 2023-05-28 11:35:51 +02:00
iTrooz
e578127f67
feat: Save opened projects as recent entries (#1105)
This PR does two things :
- save opened projects as recent entries
- refactor stuff about recent entries in a separate file. The reason is
that I felt like welcome_screen.cpp was really big ( 685 lines before
this, 500 now). What do you think ?

---------

Co-authored-by: Nik <werwolv98@gmail.com>
2023-05-27 16:59:30 +02:00
paxcut
950760691c
fix: 3D Visualizer calculating normals incorrectly (#1108) 2023-05-26 09:01:16 +02:00
iTrooz
ee94870e83
fix: Do not loop over 'END' ImHexPath (#1098)
Really small issue, in Help->About->Imhex directories, there would be an
extra entry at the end because you seemed to loop over the
fs::ImHexPath::END entry
2023-05-25 09:27:10 +02:00
iTrooz
d2638c4f27
feat: Display titlebar buttons when not running borderless (#1099)
Tested on Linux (non-borderless) and Windows (borderless)

You may want to also test it just to be sure
2023-05-25 09:26:40 +02:00
WerWolv
320973c5ff fix: Crash when sorting Value column 2023-05-24 21:05:14 +02:00
WerWolv
26eac61ddf feat: Allow themes to set the background blur color 2023-05-24 21:05:14 +02:00
WerWolv
0e3da22c76 feat: Added support for changing the page size 2023-05-23 11:34:30 +02:00
WerWolv
e32fc639c2 fix: Turning off blur again not working 2023-05-22 13:25:11 +02:00
iTrooz
7ce0613977
impr: Added better crash backup and restore mechanism (#1094)
- Add a new file 'crash.json' to store metadata about the crash, like
the log file or project opened
- show the log file of the session that caused the crash to the user
- Correctly restore the project path
2023-05-22 13:24:48 +02:00
iTrooz
91635346be
feat: Allow to remove recent providers with right click (#1085)
![image](https://github.com/WerWolv/ImHex/assets/42669835/648d2c8f-6518-4989-bc92-808898cb0f87)
2023-05-22 13:22:18 +02:00
WerWolv
f81276f7e3 feat: Added support for transparent and blurry window styles 2023-05-22 12:00:35 +02:00
WerWolv
6b28828174 fix: Prevent horizontal scroll on welcome screen 2023-05-22 10:37:30 +02:00
WerWolv
2191eb14ae impr: Cleanup hashes view a bit 2023-05-22 09:58:56 +02:00
WerWolv
e7b51a56a5 feat: Added support for automatically loading patterns using binary pattern magic 2023-05-22 00:01:58 +02:00
WerWolv
df75218ecb fix: Ranges found by find view not being highlighted 2023-05-22 00:00:50 +02:00
WerWolv
f57d4f2f7a impr: Manually sort file chooser popup list 2023-05-21 18:41:43 +02:00
WerWolv
446e0751a6 fix: Force entropy and type distribution graphs to always span the entire plot 2023-05-21 13:46:14 +02:00
iTrooz
5666a5c5fb
feat: Added context menu with right-clicking on file provider (#1084)
Co-authored-by: Nik <werwolv98@gmail.com>
2023-05-21 13:21:53 +02:00
WerWolv
1b88b3704d feat: Allow layouts to be deleted again 2023-05-21 10:43:35 +02:00
WerWolv
6dbaac4283 impr: Make sure hex editor popups have their input focused 2023-05-21 10:35:14 +02:00
WerWolv
c02465b892 fix: Byte type and Entropy graph being shifted 2023-05-21 10:23:33 +02:00
WerWolv
f503a89f98 fix: Typo in IEEE754 tool 2023-05-20 21:49:45 +02:00
WerWolv
87621e9337 impr: Disable some Import... options when the provider isn't writable 2023-05-20 21:23:15 +02:00
WerWolv
3219ba68de impr: Better layout of ImHex subtitle on welcome screen 2023-05-20 21:20:32 +02:00
WerWolv
5d608603cb fix: Selection in diff view being retained 2023-05-20 21:13:40 +02:00
WerWolv
11f55a7561 fix: File handles not being closed correctly 2023-05-20 18:07:15 +02:00
KOLANICH
608c9e2e7a
fix: WASM disassembler not being available in Capstone < 5 (#1086)
This fixes build on Debian with Capstone from packages.
2023-05-20 13:37:45 +02:00
WerWolv
3cb8e37182 fix: Broken file open logic
Closes #1090
2023-05-20 11:52:24 +02:00
paxcut
3e4c4430d5
feat: Greatly improved the IEEE754 tool (#1047)
I just realized one feature request existed about this tool and have
added a comment to it referring this pr. Errors and additions are
described in the fork commit already. I'm not sure if I should repeat
them here again. I have tested the changes thoroughly, but it is always
possible some fringe case was not tested and is incorrect. The tests
were done using the many similar online calculators for IEEE 754
floating point formats.
IEEE 745 floating point tool redesign modeled after 'float toy' web app
(http://evanw.github.io/float-toy/)

Streamlined output using colors and compact layout which can be further
simplified.
Chosen display mode (detailed or simplified) is automatically saved and
set on new sessions.
Edit the binary bits, the integer hexadecimal or the floating point
decimal values and the entire app will update with the change.
Supports the main IEEE745 standard formats (half, single and double
precision) together with custom formats of size <= 64 bits.
Each format choice uses and displays the number of significant decimal
digits defined by the mantissa size.
Added labels to identify the location of each bit box inside the binary
representation.
Satisfies round trip / idempotent (reproducing) conversion property
Added theme colors, radio buttons for display mode and a clear button
that resets the tool.
Removed previously and incorrectly added locale translation to various
labels and languages
Attempted to adhere to code style formatting using existing code as
example.
An effort was made to use preferred variable types and functions from
std namespace when appropriate.
Attempted to document code using comments. 

Not implemented / left to complete at an later time

Arbitrary width and precision formats. 
Extended precision formats.
Shortest string property.
hexadecimal floating point display and conversions.
2023-05-19 21:18:38 +02:00
WerWolv
4ad66365d0 fix: Crash when saving patches
Fixes #1077
2023-05-19 20:01:42 +02:00
WerWolv
39276e123e patterns: Allow bitfield values to be edited 2023-05-19 19:56:55 +02:00
WerWolv
0f9434740f fix: Crash when deleting last environment variable in pattern editor 2023-05-19 17:15:37 +02:00
Justus Garbe
5ef58cdf76
feat: Added bit and byte reverse and bit display data processor nodes (#1082)
#1081
2023-05-18 10:25:59 +02:00
WerWolv
a5b0a8614a impr: Automatically re-evaluate pattern when changing provider and code sync is on
Closes #1078
2023-05-16 14:45:04 +02:00
WerWolv
e28f2dfea1 fix: Only 5 patterns per byte being highlighted
Fixes #1076
2023-05-16 14:41:02 +02:00
WerWolv
0dcfeaefb3 fix: Build when git commit hash or branch is not available 2023-05-16 12:02:17 +02:00
WerWolv
3bd4a3ba8b impr: Better JSON error handling in many places 2023-05-16 11:33:00 +02:00
WerWolv
7e9b23de7d impr: Improve network interface error handling 2023-05-16 11:20:46 +02:00
WerWolv
a758676b0d fix: Change network interface port to 31337 2023-05-16 11:01:59 +02:00
WerWolv
636ed0095d feat: Added new imhex/capabilities network interface 2023-05-16 11:01:40 +02:00
WerWolv
c006062540 feat: Added basic network interface support 2023-05-15 11:30:24 +02:00
WerWolv
e685d65be8 fix: Scrolling not working correctly on welcome screen
Fixes #1071
2023-05-15 08:33:35 +02:00
WerWolv
ab67e274b2 fix: Hex editor editing value not updating correctly 2023-05-15 08:17:16 +02:00
WerWolv
7ec7e562d1 fix: Wrong editing values in hex editor in some circumstances 2023-05-14 22:52:47 +02:00
WerWolv
c50d52d0a6 fix: Crash when reading from modified bytes 2023-05-14 22:46:19 +02:00
WerWolv
2b765617ce impr: Disallow saving pattern files if they're empty 2023-05-14 22:24:16 +02:00
WerWolv
d96fc6d41b fix: Compilation on macOS 2023-05-14 21:50:58 +02:00
WerWolv
f40b5d9811 fix: Search button in numeric find option being active by default 2023-05-13 17:51:16 +02:00
WerWolv
d00fae03a9 fix: Diff table not being cleared when closing providers 2023-05-13 17:50:33 +02:00
WerWolv
3c4e1b2f27 impr: Various cleanup 2023-05-13 17:50:16 +02:00
WerWolv
6709baa710 patterns: Updated pattern language 2023-05-13 15:43:37 +02:00
WerWolv
aa1bf0b764 impr: Make about page resizable 2023-05-13 12:26:13 +02:00
WerWolv
a7327290ea fix: Only save custom encoding to project file when necessary 2023-05-13 11:17:27 +02:00
WerWolv
857e90a37b fix: ImHex freezing when evaluating patterns 2023-05-13 11:12:38 +02:00
WerWolv
aaeebd3fe9 fix: Various pattern execution race conditions 2023-05-12 15:46:13 +02:00
WerWolv
0a7a190b04 impr: Added tooltips to pattern data view when name or value is too long 2023-05-12 08:49:08 +02:00
WerWolv
21d922113d impr: Make sure to clear selections when all providers are deleted 2023-05-12 08:38:52 +02:00
WerWolv
b0876e1c35 impr: Move some options into a new Extras menu 2023-05-12 08:38:32 +02:00
WerWolv
18bc5de169 fix: Copy-as options not being disabled correctly 2023-05-12 08:38:07 +02:00
WerWolv
0321743f1e fix: Missing save layout localization keys 2023-05-12 08:37:43 +02:00
WerWolv
0649e0dcd3 impr: Clean up old layout stuff 2023-05-11 23:21:52 +02:00
WerWolv
ceeaca1a4b feat: Added layout manager to save and restore custom layouts 2023-05-11 18:44:50 +02:00
WerWolv
2da89f4b9b fix: Position of restore layout button being wrong with different scalings 2023-05-11 18:44:33 +02:00
iTrooz
2e73d74cea
impr: Open .hexproj files as projects when opened though the Open File option (#1061) 2023-05-11 12:38:22 +02:00
WerWolv
8f07f0f8ae impr: Better look and feel of the welcome screen close button 2023-05-11 12:00:45 +02:00
iTrooz
b0ab8698ec
fix: Loading data processor nodes from project thowing errors (#1065)
This will correct the errors `cannot use operator[] with a string
argument with string[..]` when loading a project
2023-05-11 09:57:29 +02:00
WerWolv
50c3cf8272 build: Replace old interval tree in favour of custom libwolv one 2023-05-11 09:27:23 +02:00
WerWolv
5a6e5d2255 build: Switch to better interval tree implementation 2023-05-07 23:27:43 +02:00
classabbyamp
82f5900759
build: Added option to disable update checking (#1036)
This is aimed at use by linux distros, where package updates come from a
central location, and users shouldn't need to worry about updating ImHex
on their own. This disables parts of the ImHex UI that would not be
useful in that case.

Tested and confirmed that this works in both states of the of the
`-DIMHEX_DISABLE_UPDATE_CHECK` switch.
2023-05-05 22:03:45 +02:00
iTrooz
e44eb2aa8e
impr: Added more documentation to libimhex (#1052)
This PR adds some documentation. It's actually pretty random, I followed
the function calls I was curious about and commented whenever I wasn't
sure/I thought it needed clarification

You might want to make sure to squash them, because the commits are kind
of a mess, I didn't went through the effort of interactive rebase
2023-05-05 22:02:18 +02:00
iTrooz
34e12e2515
feat: Added a button to restore default layout when there are no views open (#1053)
Co-authored-by: Nik <werwolv98@gmail.com>
2023-05-05 22:00:17 +02:00
WerWolv
5680b90549 fix: Project files failing to save when no custom encoding is loaded 2023-05-04 23:23:44 +02:00
WerWolv
bec655a8c6 impr: Added event logging in debug mode 2023-05-02 20:35:30 +02:00
WerWolv
0c8b3e31e7 fix: Dangerous function call popup not showing up 2023-05-02 20:34:37 +02:00
iTrooz
13a3942f8f
impr: Show an error message when ImHex can't open a file (#1050)
This PR does two correlated things:

- Show a generic error message (Failed to open provider) rather than a
file-specific message (Failed to open file) when a provider fails to
open
- Set the error to something more specific when opening a file fails
2023-04-30 18:37:22 +02:00
XorTroll
b0028b0e51
lang: Added Spanish translations (#1042)
This translates ImHex for the Spanish language

(made a new PR since I got a bit messed up on the other one, this was
faster to fix)
2023-04-21 17:44:36 +02:00