Commit Graph

310 Commits

Author SHA1 Message Date
Nik d005b5d2d9
feat: Allow toolbar icons to be modified (#1509) 2024-01-21 18:39:32 +01:00
Nik a13b5bf8c0
feat: Implement Myers' diffing algorithm (#1508) 2024-01-21 18:39:13 +01:00
Ada cc97c0e525
fix: Segfault when launching ImHex with file arguments (#1501)
d511080814 introduced a regression where
running imhex with arguments (i.e. `imhex blob1.bin blob2.bin`) will
segfault due to a null pointer dereference.

### Implementation description
This patch updates `getSubCommands` to follow the same control flow as
`getFeatures`, where if the function returns a null pointer, it will
return gracefully rather than crash.
2024-01-18 11:11:06 +01:00
WerWolv 82a3017629 feat: Added always on top and fullscreen mode toggle 2024-01-15 20:52:08 +01:00
WerWolv d511080814 impr: Make plugin features and subcommands work in statically linked builds 2024-01-13 00:34:13 +01:00
WerWolv ea7483f9a7 impr: Get rid of the concept of built-in plugins
#1489
2024-01-12 23:03:13 +01:00
WerWolv 72f4331703 feat: Added virtual files to the pattern language 2024-01-11 20:11:22 +01:00
WerWolv 1c17ec5599 fix: Avoid heap allocations in thread local storage 2024-01-10 20:13:53 +01:00
WerWolv f518bdadbd fix: Properly clear thread-local thread name 2024-01-09 21:46:54 +01:00
WerWolv d5c8021b41 fix: Use a thread-local storage for thread names instead 2024-01-09 16:16:20 +01:00
WerWolv 929b5176ce impr: Fallback to old thread name API when new one isn't available 2024-01-09 13:43:34 +01:00
WerWolv dd9a2e1818 fix: Errors being thrown during library init 2024-01-09 11:38:56 +01:00
WerWolv 0b5656dcc4 fix: Manually initialize library plugins 2024-01-09 11:31:56 +01:00
WerWolv 037d77f28e impr: Improve plugin unload logging 2024-01-09 10:54:53 +01:00
WerWolv 301e95b708 impr: Move plugin unload logging to plugins 2024-01-09 10:53:50 +01:00
WerWolv 874bac7de2 impr: Include thread name in log 2024-01-09 10:39:06 +01:00
WerWolv bfafc692db impr: Added icons to all menu items 2024-01-08 21:51:48 +01:00
WerWolv cab329556c impr: Make sure plugins are only loaded once 2024-01-07 18:45:17 +01:00
WerWolv 1c5d6cbe94 impr: Added error reporting for plugin unloading 2024-01-07 16:07:53 +01:00
WerWolv 576bc80716 impr: Use full windows to draw tutorial popups 2024-01-06 22:54:18 +01:00
WerWolv f9ab16049b fix: Make sure plugins are unloaded in opposite load order 2024-01-06 16:09:05 +01:00
WerWolv 464495987a fix: Crash due to task manager not being fully reset 2024-01-04 21:33:17 +01:00
WerWolv e2b7a69fc8 fix: Warnings when trying to load progress for achievements that aren't in save file 2023-12-31 13:53:28 +01:00
Nik 950eaea8af
impr: Make decompression support actually useful (#1481) 2023-12-31 11:39:24 +01:00
WerWolv 5adeac6bbc fix: Make sure library plugins are always initialized 2023-12-28 14:59:23 +01:00
WerWolv 3c6f52f5ea impr: Harden achievement progress store function 2023-12-27 16:57:44 +01:00
WerWolv 874619f62e impr: Harden settings store function 2023-12-27 16:53:03 +01:00
WerWolv 74b5c93caf impr: Code style improvements 2023-12-27 16:33:49 +01:00
WerWolv 98bc89cb39 impr: Make sure all views are closed before loading new workspace or layout 2023-12-24 14:51:47 +01:00
WerWolv e2489151f3 feat: Added decompressing support 2023-12-24 13:14:51 +01:00
WerWolv 9066891ce2 fix: ImHex not starting on some platforms 2023-12-24 12:20:51 +01:00
WerWolv 83f8370e2a impr: Don't display plugins in the list that couldn't be loaded 2023-12-23 23:12:15 +01:00
Nik 61bfe10bc2
refactor: Rework features that use external libraries into optional plugins (#1470) 2023-12-23 21:09:41 +01:00
Nik 84bfd10416
build: Restructured entire custom plugin system (#1469) 2023-12-22 23:39:38 +01:00
WerWolv e951359a46 feat: Add frame time graph to FPS display 2023-12-20 13:42:42 +01:00
WerWolv c7ab4a4569 refactor: Get rid of `this->m_` 2023-12-19 13:10:25 +01:00
WerWolv dd4be3b772 refactor: Make sure unlocalized strings are always actually unlocalized 2023-12-19 12:22:28 +01:00
WerWolv c1abbfad7d impr: Make sure welcome screen stays at the back 2023-12-18 10:14:07 +01:00
WerWolv 78ef5b0d07 fix: ProviderChanged Event not being called correctly when closing first provider
Fixes #1421, Fixes #1416
2023-12-14 20:48:30 +01:00
WerWolv 710ceedf3d fix: Rare case where workspace was saved to wrong file 2023-12-14 09:36:29 +01:00
WerWolv 5b77f511d3 impr: Added shadow to tutorial popups 2023-12-13 23:44:53 +01:00
WerWolv f000b6bc0a feat: Added basic introduction tutorial 2023-12-13 23:03:39 +01:00
WerWolv 92043a3d23 feat: Added tutorials view 2023-12-13 13:04:59 +01:00
WerWolv 3bc5295eae impr: Allow tutorials to work correctly with localized strings 2023-12-13 11:48:21 +01:00
WerWolv 5bcfe37b4e feat: Added tutorial system 2023-12-13 11:24:25 +01:00
WerWolv c32dad75cd fix: Remove logging from CLI 2023-12-12 13:20:39 +01:00
WerWolv 1b457dae7d fix: Workspaces not always loading layout correctly 2023-12-12 00:16:21 +01:00
WerWolv 690b0df932 fix: Crash after restarting ImHex 2023-12-11 23:05:58 +01:00
WerWolv 91230ba438 feat: Added workspaces 2023-12-11 15:54:22 +01:00
WerWolv 09a148b8a5 impr: Add hint text about font size when no custom font is selected 2023-12-09 12:14:45 +01:00
WerWolv b4813660b5 refactor: Better interface for the event system 2023-12-08 10:29:44 +01:00
WerWolv 370ca740e3 feat: Allow layouts to be locked 2023-12-06 13:49:58 +01:00
WerWolv 37ac1b66dd refactor: Task Manager related code 2023-12-06 11:04:35 +01:00
WerWolv 760b8c7a88 impr: Make long running tasks not freeze ImHex, fix saving non-continuous providers
Fixes #1454
2023-12-05 14:32:43 +01:00
Nik caee764af3
fix: Crash when destructing a moved plugin 2023-12-04 21:01:48 +01:00
WerWolv 2cf642a2a4 build: Updated libwolv 2023-12-01 14:07:10 +01:00
WerWolv a50bb39978 impr: Further improve compile times 2023-11-30 14:40:07 +01:00
WerWolv 8ee234e5a6 impr: Optimize api includes 2023-11-30 11:23:12 +01:00
WerWolv e370fdb0fc build: Add support for unity builds 2023-11-30 10:22:15 +01:00
WerWolv 09904b77eb feat: Add support for bold and italic fonts 2023-11-29 23:47:37 +01:00
WerWolv 23fc232c47 impr: Try to align additional fonts automatically 2023-11-28 13:52:26 +01:00
WerWolv c02c27b63d refactor: Moved over to more flexible font loader 2023-11-28 01:55:41 +01:00
WerWolv 284f8534ab refactor: Move the builtin plugin specific init tasks to the plugin 2023-11-28 00:19:42 +01:00
Nik 7e660450ed
feat: Implement better and more complete undo/redo stack (#1433)
This PR aims to implement a more complete undo/redo stack that, unlike
the old one, also supports undoing insertions, deletions and resize
operations
2023-11-25 12:43:48 +01:00
WerWolv b050039e35 fix: Duplicate shortcuts not highlighting correctly 2023-11-24 20:17:01 +01:00
WerWolv b619744093 fix: Command palette not appearing on Linux 2023-11-23 09:33:47 +01:00
WerWolv 74e246feed impr: Increase performance when updating task progress 2023-11-23 09:20:26 +01:00
Nik 095da62250
feat: Add Markdown Report export option (#1441) 2023-11-22 07:26:31 +00:00
WerWolv 909f4b7fe8 refactor: Rename and update localization system 2023-11-21 14:38:01 +01:00
WerWolv c89a870fe9 refactor: Streamline entire view system 2023-11-21 13:47:50 +01:00
WerWolv a3f74098f2 fix: Potential crash when loading null values from settings 2023-11-18 17:23:50 +01:00
WerWolv 14f728ab76 refactor: Give API files more consistent names 2023-11-18 14:50:43 +01:00
WerWolv 1249eb3261 impr: Optimize includes in often used header files 2023-11-18 14:34:33 +01:00
WerWolv 98e0a62e6e impr: Make changing shortcuts also adjust the tooltip in the menus 2023-11-18 14:34:16 +01:00
WerWolv 2d45dce075 fix: Shortcuts not working correctly with non-western keyboards 2023-11-17 20:27:42 +01:00
WerWolv cec925bcdc feat: Add shortcut editor to settings 2023-11-17 14:46:21 +01:00
iTrooz 39252dfe48
refactor: Move custom ImGui functions to ImGuiExt namespace (#1427)
Co-authored-by: Nik <werwolv98@gmail.com>
2023-11-16 22:24:06 +01:00
WerWolv 21057d51e1 impr: More Welcome Screen UI improvements 2023-11-16 13:23:28 +01:00
WerWolv f00daf171b fix: Crash when loading invalid theme file 2023-11-16 09:32:32 +01:00
WerWolv 33e20df511 impr: Make sidebars disableable and resizable 2023-11-14 15:55:25 +01:00
WerWolv c35ea228e4 fix: Crash when trying to close providers 2023-11-10 21:03:31 +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 ef320b74b0 impr: Handle showing popups when closing unsaved providers better 2023-11-07 15:31:54 +01:00
WerWolv 7efe9acefb fix: Warnings about missing theme/style handlers being printed on launch 2023-11-06 15:15:18 +01:00
WerWolv 4e4cdcdf61 feat: Added release notes and commits to about page 2023-11-05 19:57:29 +01:00
WerWolv 45fb046a9a impr: Make events thread safe 2023-11-04 23:16:38 +01:00
WerWolv 407ec1ceb6 build: Use custom jthread implementation if standard one is not available 2023-11-02 20:21:38 +01:00
WerWolv 9617212ef1 impr: Allow visualizers to have optional parameters 2023-10-31 10:56:20 +01:00
WerWolv 94ad6e6072 fix: Crash on exit 2023-10-30 16:39:57 +01:00
Nik 58189e5403
impr: Allow console output to work when debugging (#1382) 2023-10-22 21:39:14 +00: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
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
lomekragow 7fc2ff3002
fix: Event unsubscribe not working correcetly when using same key for multiple events (#1309)
<!--
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 -->

Fixed possible bug of  `EventManager::unsubscribe`

`std::map` only allows unique key, but the same token can subscribe to
multiple events.

1a2a926b77/lib/libimhex/include/hex/api/event.hpp (L104-L107)

If the previous token has already subscribed to an event, then when
subscribing again, `getTokenStore().insert` will not do anything
(Because its type is `std::map`)


1a2a926b77/lib/libimhex/include/hex/api/event.hpp (L122-L134)

At this point in `unsubscribe`, the `iter` may not be able to find the
correct event and erase it



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

Change `tokenStore` to `std::multimap` instead of `std::map`, which
cannot unsubscribe multiple events correctly

### 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-07 23:35:35 +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 a62ede7840 fix: Properly fix possibility of no provider being selected when closing one 2023-10-01 20:56:25 +02:00
WerWolv bcab657a06 fix: No provider being selected in some cases when closing a provider 2023-10-01 20:18:26 +02:00