Commit Graph

466 Commits

Author SHA1 Message Date
iTrooz ac2a609d0a
impr: Use execvp() instead of system() on Linux (#1170)
This PR it just a hack to fix #1160 , it doesn't solve the underlying
problem.

It fixes the problem because by using execvp() directly, it avoids the
call to `sh` done with `system()`, which has a bug on Ubuntu 22.04 which
makes it i,compatibles with the glibc inside the AppImage.
It doesn't fix the underlying problem because the programs we call
themselves still link to the AppImage's libraries instead of the system
ones.
2023-07-05 20:50:46 +02:00
WerWolv 86c4c8fa96 feat: Added new pattern inline visualizers 2023-07-04 22:18:06 +02:00
WerWolv 28dea8e5bd fix: Menu Bar being scrollable sideways 2023-07-01 22:55:59 +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 8cc6994dd0 fix: Properly apply UI scaling on launch 2023-06-30 13:40:39 +02:00
WerWolv f9909dab98 fix: Properly clear all global registries 2023-06-30 13:40:16 +02:00
WerWolv a5fac85727 fix: Commit hash/branch in statistics being in wrong order 2023-06-27 01:46:11 +02:00
WerWolv 8fdb60758b impr: Load plugins asynchronously to speed up startup times 2023-06-27 00:52:13 +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 9282f1fe75 fix: Multiwindow support not being disabled by default on Linux 2023-06-26 09:02:23 +02:00
WerWolv ddc0457d9a fix: Unifont not being loaded correctly in some cases
Fixes #1155
2023-06-24 14:55:10 +02:00
WerWolv ade05f8e12 impr: Only load a limited subset of unicode characters by default 2023-06-24 10:58:42 +02:00
WerWolv 1b028dfc0a fix: Crash on exit 2023-06-23 21:39:22 +02:00
WerWolv b019283a2f impr: Force disable unicode support when the NoGPU version is used 2023-06-22 17:56:09 +02:00
WerWolv da11c47693 impr: Better sorting of hex cell visualizers 2023-06-21 17:48:51 +02:00
WerWolv c8150f3261 impr: Make statistics format not suck a whole lot 2023-06-21 00:21:16 +02:00
WerWolv 6d1f639bc6 impr: Added GPU vendor and portable version flag to statistics 2023-06-20 20:37:17 +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 54061c56bf fix: Logging race conditions 2023-06-18 22:32:55 +02:00
WerWolv 25154dd450 build: Force enable exceptions and rtti 2023-06-18 14:42:48 +02:00
WerWolv fdb1cace2d fix: Properly print fatal error messages when ImHex crashes 2023-06-13 23:31:49 +02:00
WerWolv 54c6c9360a fix: Reverted back reordering of crash callback call 2023-06-11 21:55:48 +02:00
WerWolv 9a9b211ebb fix: Crash backups not getting saved when when an exception is thrown 2023-06-11 17:27:09 +02:00
iTrooz cac9a69ea2
fix: Use Mode::Create instead of Mode::Write when creating crash file (#1134) 2023-06-11 13:10:04 +02:00
WerWolv ee57c449e7 fix: Crash when clearing old logs on exit 2023-06-11 09:45:06 +02:00
WerWolv 73d4214fd3 fix: Window title being cleared after ImHex exits 2023-06-10 15:08:56 +02:00
WerWolv 0e8273eaa7 impr: Make sure icons are more centered 2023-06-09 00:30:12 +02:00
WerWolv 9baca91b16 impr: Better unthrown exception error handling 2023-06-08 12:16:37 +02:00
WerWolv 456895a6a6 fix: Various pattern drawer issues 2023-06-06 11:29:58 +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 d10f033439 fix: Key presses not always unlocking frame rate correctly 2023-06-02 14:43:45 +02:00
iTrooz 117832e007
impr: Handle crashes that may happen before the main loop (#1115)
Draft because I absolutely do not trust myself writing good code at 2AM.
I will review it tomorrow
2023-06-01 18:35:41 +02:00
iTrooz 0ba011dbe1
feat: Add a native error message when glfw window creation fails (#1104)
Draft because I want to test it again tomorrow with all OSes, first

---------

Co-authored-by: Nik <werwolv98@gmail.com>
2023-05-27 17:45:41 +02:00
iTrooz d671cde6d2
impr: Ensure program exits when set_terminate() lambda is called (#1101)
Draft for now because I am waiting for feedback from Jay
2023-05-25 09:30:25 +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
iTrooz 7d457998d7
fix: Explicitly convert path to string for crash file (#1102) 2023-05-25 09:25:40 +02:00
iTrooz 79306fa6e1
impr: Show which commit was used to compile ImHex on CLI (#1103) 2023-05-25 09:25:22 +02:00
WerWolv 26eac61ddf feat: Allow themes to set the background blur color 2023-05-24 21:05:14 +02:00
WerWolv cb9a3b1f55 fix: Invalid key code error spam 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
WerWolv f81276f7e3 feat: Added support for transparent and blurry window styles 2023-05-22 12:00:35 +02:00
WerWolv 0563a59b1b impr: Reset back all signals when a fatal error occurred 2023-05-21 17:33:33 +02:00
WerWolv 7336c8dddc fix: Cursor types on Windows sometimes getting stuck 2023-05-20 21:10:12 +02:00
KOLANICH 749823e044
build: Move `-s` additional compiler flags into linker flags, and enable it only when gcc/clang are used. (#1087)
Compiler when compiling doesn't use them in those cases and emit a
warning, which is turned into an error by `-Werror`. Unfortunately,
CPack doesn't expose the logic it uses for stripping binaries.
2023-05-20 13:37:57 +02:00
WerWolv 7ea7c531e2 fix: Logs not being written to disk on Windows 2023-05-20 13:10:35 +02:00
iTrooz e1620966e5
feat: Keep only 10 latest logs on exit (#1079)
Co-authored-by: Nik <werwolv98@gmail.com>
2023-05-16 14:45:24 +02:00
WerWolv 14341d611d impr: Handle macOS Open with... correctly 2023-05-15 18:07:49 +02:00
WerWolv c006062540 feat: Added basic network interface support 2023-05-15 11:30:24 +02:00
WerWolv d96fc6d41b fix: Compilation on macOS 2023-05-14 21:50:58 +02:00
WerWolv 610f109e2a fix: Crash when too many entries are being logged at once 2023-05-14 21:39:18 +02:00
WerWolv f2af90fe06 fix: Help hover icon issues 2023-05-11 23:56:51 +02:00
WerWolv 2f511ec4fa impr: Improve frame cap handling 2023-05-11 23:22:06 +02:00
WerWolv 0649e0dcd3 impr: Clean up old layout stuff 2023-05-11 23:21:52 +02:00
WerWolv 0b21e30e44 fix: White border around maximized window on WIndows 2023-05-11 20:49:07 +02:00
WerWolv ceeaca1a4b feat: Added layout manager to save and restore custom layouts 2023-05-11 18:44:50 +02:00
WerWolv 49371398bc fix: Resizing on windows still being janky 2023-05-11 18:43:19 +02:00
WerWolv 5c9d0e29c2 fix: Left/Right resizing not working correctly on Windows 2023-05-11 12:00:56 +02:00
WerWolv 1d2b8ac1f3 fix: Closing popups using Esc causing them to re-appear 2023-05-10 22:29:17 +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
WerWolv bec655a8c6 impr: Added event logging in debug mode 2023-05-02 20:35:30 +02:00
WerWolv a33c7135d1 fix: Crash when closing some popups 2023-05-01 14:15:00 +02:00
WerWolv 8245f3d4c9 build: Updated libwolv 2023-04-19 21:56:34 +02:00
WerWolv 04a5efc7a3 fix: Crash when evaluating patterns to quickly 2023-04-17 17:02:10 +02:00
WerWolv 99a736df27 impr: Replace horrible pattern extra data class with a more modular system 2023-04-17 16:18:48 +02:00
WerWolv 535aeb5e39 impr: Give access to a console in clion in debug mode 2023-04-17 16:06:06 +02:00
WerWolv 1690cd2740 fix: Various issues with the new popup system 2023-04-16 21:34:29 +02:00
WerWolv 52925c99e8 impr: Default to monitor synchronized FPS limit 2023-04-13 17:12:40 +02:00
WerWolv 18d5fd5d3e fix: Commit link in about page not working correctly 2023-04-13 16:10:55 +02:00
WerWolv 013eaae715 fix: Disable multi window support on Linux by default as it causes issues
Fixes #1026
2023-04-10 22:51:21 +02:00
WerWolv 349b5da810 fix: Prevent constants view from growing past the size of the screen
Fixes #1025
2023-04-10 21:30:27 +02:00
WerWolv 320629931c fix: Yet another popup centering issue 2023-04-10 14:10:35 +02:00
WerWolv dc77d81e1b feat: Added documentation helper AI 2023-04-10 01:42:53 +02:00
WerWolv af4dd9f5b0 fix: Popup positioning being wrong 2023-04-09 23:24:48 +02:00
WerWolv 09f1b56964 fix: Popups not being centered correctly 2023-04-09 15:28:48 +02:00
WerWolv 21f38974a8 impr: Use smart pointers to allocate Views 2023-04-08 12:08:45 +02:00
WerWolv ac858b37ed fix: Main Menu items not being clickable at the outer most pixel
Closes #1020
2023-04-08 11:37:42 +02:00
WerWolv 80edaea392 impr: Update all of ImHex to the new popup system 2023-04-08 00:58:53 +02:00
WerWolv 9c9ac23818 feat: Added a much more flexible popup system 2023-04-07 10:21:27 +02:00
WerWolv d92e7d19cc fix: Submenu items ignoring enabled flag 2023-04-06 22:33:02 +02:00
WerWolv 7c18ad49ae impr: Allow windows that overlap the main window title bar to be movable 2023-04-06 14:58:05 +02:00
WerWolv 722f6315c4 impr: Make sure shortcuts can't be used when popups are open 2023-03-31 11:07:53 +02:00
Thomas 725e32250b
fix: Move config files to XDG_CONFIG_HOME (#993)
This pull request changes Config Directories on Linux to only include
the XDG_CONFIG_HOME directory, as opposed to all directories in
XDG_DATA_DIRS before (introduced in
https://github.com/WerWolv/ImHex/pull/644/files#diff-c1a4d2b63fed168a9a3568944e9cadeae096f2ddcec3649e4a9b2d29fd104be0L162-L166).

Reasons:
- This changes the location of the config file to the standard directory
meant for configurations
- This prevents the config file from being read/written in system
locations, like /usr/share

This PR also includes a migration task that will run on Linux and move
config/GUI dimensions to the new directory

as a bonus, as discussed on discord, it writes the logs to a Data
directory instead of a Config directory
2023-03-26 11:02:23 +02:00
WerWolv 635173e55a impr: Make sure themes are added correctly when downloaded from the store 2023-03-23 20:35:16 +01:00
WerWolv 15be24db62 sys: Updated to use the new HttpRequest helper instead of Net 2023-03-23 11:23:07 +01:00
WerWolv 8c5fd021f7 api: Hook up new http wrapper to the rest of ImHex 2023-03-22 23:05:18 +01:00
WerWolv 57a62d0544 impr: Clean up entire API and added doc comments 2023-03-21 15:33:43 +01:00
WerWolv 53afa6ea43 fix: Crash on exit 2023-03-20 15:18:48 +01:00
WerWolv 39e8d557e8 sys: Completely revamped main menu item system 2023-03-20 13:11:43 +01:00
WerWolv e00b59c393 fix: Properly discard reopened stderr 2023-03-18 11:47:42 +01:00
WerWolv 7c1e33dde6 sys: Prevent libraries from printing garbage to the console through stderr 2023-03-18 11:35:01 +01:00
WerWolv 4c1a24058c ui: Fixed various scaling inconsistencies on higher scaling factors 2023-03-17 19:58:08 +01:00
WerWolv daadc2ea71 impr: Attempt loading of full unicode plane from font if possible 2023-03-14 12:30:28 +01:00
WerWolv fb2e668589 sys: Moved more functions to libwolv 2023-03-12 18:43:05 +01:00
WerWolv 0dafb3d230 sys: Replaced many helper functions with libwolv 2023-03-12 18:27:33 +01:00
WerWolv 21dc65f42a impr: Added comments everywhere in main application 2023-02-17 12:03:53 +01:00
WerWolv 279e085887 impr: Don't create a new font texture for no reason 2023-02-17 12:03:00 +01:00
WerWolv d84dfa2c42 feat: Allow custom CA Certs to be loaded
Fixes #907
2023-02-17 12:01:46 +01:00
WerWolv ac83bbeb0e feat: Added a theme manager view to make it easier to make new themes 2023-02-16 18:06:40 +01:00
WerWolv 8cb76a26c1 fix: Font being scaled too big 2023-02-16 16:29:41 +01:00
WerWolv 20da22d59e sys: Make sure scrolling counts as an input event 2023-02-16 08:53:23 +01:00
WerWolv 3003dea409 fix: Occasional error when loading recent files 2023-02-12 17:52:09 +01:00
WerWolv 54ef5785cd fix: ImNodes double free 2023-02-12 17:38:13 +01:00
WerWolv 303dd28c7c fix: Fix macOS build again 2023-02-08 14:11:42 +01:00
WerWolv dd87dc7046 fix: Building on macOS 2023-02-08 13:51:56 +01:00
WerWolv 235a64deef sys: One more attempt to fix macOS scaling issues 2023-02-08 12:53:34 +01:00
WerWolv b936a28921 fix: Opening files from command line not working 2023-02-06 07:11:21 +01:00
WerWolv 941c7ee61d fix: Still properly divide scaling by 2.0 on macOS 2023-02-01 23:47:22 +01:00
WerWolv fd259dcde3 fix: Prevent native scaling from going below 1.0 on macOS 2023-02-01 23:45:07 +01:00
WerWolv 3bad5e1d9c fix: ImHex still opening files when multiple builtin plugins are detected 2023-01-31 11:38:26 +01:00
WerWolv 8e759d9b5f feat: Added basic 3D visualizer, moved visualizers to separate file 2023-01-20 21:16:28 +01:00
Nik 48a57cd981
feat: Added stacktrace printing on crashes (#892)
* feat: Added simple stack trace output

* feat: Added backtrace wrapper

* build: Added libbacktrace include dirs to build

* build: Fixed libbacktrace variables

* build: More backtrace variable fixes

* build: Try to find backtrace include

* build: Get backtrace header from cmake script

* feat: Added backtrace support for execinfo

* feat: Added support for StackWalk on Windows
2023-01-17 21:38:56 +01:00
birdstakes ca68150970
fix: Frame rate not unlocking correctly (#890)
m_hadEvent could be set during glfwWaitEventsTimeout and then
immediately cleared before ever being checked.
2023-01-17 08:14:40 +01:00
WerWolv 92f0aa9593 fix: Logs always being saved to user folders
Fixes #888
2023-01-16 19:39:00 +01:00
WerWolv 7e17059154 sys: Improved exception debug output 2023-01-16 18:17:13 +01:00
WerWolv 1b56c7ffae ui: Show task progress in task bar 2023-01-14 14:21:16 +01:00
Thomas ab29303c2e
sys: Clear project context when closing all providers, Display project name in window title (#860)
* clear project context when closing all providers

* Show project name on window title

* refactor RequestChangeWindowTitle to RequestUpdateWindowTitle

* add spaces
2023-01-07 17:31:22 +01:00
WerWolv d86be9d9b3 sys: `putenv` sucks. Use `setenv` instead 2023-01-07 10:56:03 +01:00
WerWolv c26bed894b sys: Add `imhex/lib` path to plugin libraries search paths 2023-01-07 10:32:01 +01:00
WerWolv 15f2376c62 sys: Fixed some variable names 2023-01-05 16:27:52 +01:00
WerWolv ff9048fcf0 fix: Crash on exit
Fixes #854
2023-01-05 09:29:33 +01:00
WerWolv 02df578939 build: Fix library linking on non-windows 2023-01-04 13:23:42 +01:00
WerWolv eb4a1e2692 build: Try to clean up bundled dependencies a bit 2023-01-04 12:34:38 +01:00
WerWolv b4fa8bebe9 build: Move main romfs to main application 2022-12-29 23:32:40 +01:00
WerWolv 7859a9bb1f feat: Added native custom theme support 2022-12-29 19:26:00 +01:00
WerWolv df3d5e38ce ui: Load in all extended-Ascii and control characters from unifont 2022-12-25 10:01:21 +01:00
WerWolv f23351f11c sys: Try to not load unifont if graphics drivers can't handle it 2022-12-14 09:25:37 +01:00
WerWolv e3f2541fde sys: Make sure libromfs is never used in libimhex 2022-12-05 15:29:19 +01:00
WerWolv 6e0b92a4de sys: Added logging for which romfs is being used 2022-12-05 09:31:16 +01:00
WerWolv 3b94a42783 lang: Updated localization system to use a more versatile json format 2022-12-02 12:00:04 +01:00
WerWolv 0f028db856 sys: Don't load any external plugins in debug builds
Closes #833
2022-11-25 10:28:05 +01:00
WerWolv 3fccd03bbb fix: Black screen issues when font atlas got too big 2022-11-14 10:02:34 +01:00
WerWolv 7f0bdea212 fix: Opening multiple files by dragging them onto the window 2022-11-10 11:17:21 +01:00
WerWolv 23ce2ec271 ui: Fixed some more macOS scaling issues 2022-11-08 18:09:48 +01:00
WerWolv 5bbc2fd94c feat: Added basic UI for the new pl section system 2022-11-07 00:04:47 +01:00
WerWolv d2705988ac ui: Potentially fix weird scaling on macOS 2022-11-05 21:49:17 +01:00
WerWolv 291da649c1 ui: Limit window title length 2022-11-04 15:19:24 +01:00
iTrooz_ bececff9e5
feat: Ask the users if they want to check for updates (#803)
* ask the users for updates

* Only treat 1 as enabled

* Fix formatting

* update locales

* comment to document value
2022-10-29 23:43:40 +02:00
iTrooz_ 24c0cc10a1
sys: Load Tips from a local file instead of querying an API (#797)
* store tips locally

* C++ random implementation

* show one different tip per day

* fix json conversion to string

* put tips.json in builtin romfs
2022-10-27 13:21:54 +02:00
iTrooz_ e76d5854b8
ux: Add a setting to disable loading of unicode characters (#798)
* Add setting to disable loading of unicode characters

* change message

* set message in other langs

* fix formatting
2022-10-27 13:11:09 +02:00
WerWolv 1eb9858f62 sys: Moved libimhex-rust out of project 2022-10-21 14:55:01 +02:00
WerWolv 37b4d5e7b5 patterns: Updated pattern language 2022-10-20 09:48:06 +02:00
iTrooz_ f3b0971d00
sys: Improve various error messages (#789)
* Tell the user the net request which failed

* Show signal name

* Print execution time of startup tasks

* replace NULL with nullptr

* change wording for task logs

* Remove '..' from task name

* remove using namespace chrono
2022-10-20 08:28:29 +02:00
WerWolv 8b39c8f219 feat: Make all tool windows be detachable 2022-10-13 10:47:38 +02:00
WerWolv f0da6ec82f fix: Crash on exit when ImHex is launched through the terminal 2022-10-07 15:35:26 +02:00
WerWolv 484481f886 fix: Opening files with unicode names through the command line 2022-10-07 10:14:24 +02:00
WerWolv 210106901e sys: Added setting to disable multi-window support 2022-10-06 21:26:24 +02:00
WerWolv 7f2c60b0d7 fix: Race condition with data inspector 2022-10-05 12:02:40 +02:00
WerWolv 7bb9e7ee82 sys: Replaced awful task system with a much more efficient thread pool 2022-10-04 23:37:48 +02:00
WerWolv b80517ab15 sys: Improved UTF-8 path handling in various places
Fixes #768
2022-10-04 09:10:58 +02:00
WerWolv b17cd3696c fix: Handling of exceptions that are not being caught 2022-10-03 10:36:19 +02:00
Nik 9c484e7b57
fix: Various clang / clang-tidy warnings (#764) 2022-10-02 17:30:26 +02:00
WerWolv 6a07a2f85d feat: Look for custom inspector entries in imhex/scripts/inspectors 2022-10-02 14:18:40 +02:00
WerWolv 3504987ab3 sys: Fix OpenGL clear color 2022-10-01 21:14:49 +02:00
WerWolv ca6a8a7a46 sys: Move resources into their relevant subprojects 2022-09-29 10:33:39 +02:00
WerWolv 9656b40d53 fix: Clearing custom font path not updating setting correctly 2022-09-20 15:47:28 +02:00
WerWolv e0e2996e25 fix: Custom fonts not being loaded 2022-09-20 14:09:41 +02:00
WerWolv a55177edfa fix: Curl SSL context not being thread safe in the slightest 2022-09-19 21:56:43 +02:00
WerWolv 4c01a749de sys: Improved startup time by running startup tasks in parallel 2022-09-19 16:54:19 +02:00
WerWolv 7b61268f22 ux: Reduce file loading time to basically zero 2022-09-19 16:09:22 +02:00
WerWolv 3cdc8c5884 fix: OpenGL textures not being cleaned up correctly 2022-09-18 20:38:45 +02:00
WerWolv 5462575f5c sys: Allow multiple files to be opened through the command line 2022-09-15 09:48:02 +02:00
WerWolv 120e2bc300 sys: Fix opening files in existing instance not working on Intel GPUs 2022-09-15 09:47:47 +02:00
WerWolv 13afd96806 fix: Build issues due to invalid capture 2022-09-12 23:45:37 +02:00
WerWolv aa658b7dbc sys: Make sure constexpr variables don't get copied onto the stack 2022-09-12 21:28:02 +02:00
WerWolv dacb64ae66 fix: Window header always displaying (Read Only) after opening a provider 2022-08-22 11:00:31 +02:00
WerWolv 1462a4689d fix: ImHex crashing on exit
Fixes #698
2022-08-20 13:43:26 +02:00
WerWolv e779285be4 feat: Added basic ability to interrupt long running tasks 2022-08-17 16:15:36 +02:00
WerWolv aa01d58b33 ui: Increase window size when a bigger font is being used 2022-08-16 11:49:07 +02:00
WerWolv 0c0caf6942 fix: Restarting ImHex not working correctly 2022-08-16 11:48:37 +02:00
WerWolv 29adeae6a3 fix: Undefined behaviour in frame wait time calculation 2022-08-15 22:21:53 +02:00
WerWolv dea6caccf1 fix: File opening in existing instance not being unicode aware 2022-08-14 13:42:22 +02:00
WerWolv 85f0e04d0e feat: Allow recents to also display other providers 2022-08-14 10:07:45 +02:00
WerWolv b580691871
feat: Added Intel Hex and Motorola SREC provider (#670)
* feat: Initial implementation of an Intel Hex provider

* fix: Reading of bytes from intel hex files

* lang: Added localization for new provider

* ui: Only show file name in intel hex provider name

* feat: Added Motorola SREC provider
2022-08-12 15:11:27 +02:00
eoineoineoin 72c4f50871
fix: Crash when any signal is being thrown (#669)
This avoids a crash on POSIX after running a command from the command
pallete; on completion, a SIGCHILD will be raised, which was incorrectly
calling the error handler and terminating ImHex.

Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
2022-08-12 11:33:20 +02:00
WerWolv d55c59c796 feat: Added close button for welcome screen 2022-08-10 10:28:40 +02:00
WerWolv 19a0dc80db fix: Window title not always updating correctly 2022-08-10 00:11:16 +02:00
WerWolv ceb26add15 sys: Added better support for Windows 7 2022-08-09 16:29:52 +02:00
WerWolv d4af07ed51 sys: Improved signal handling 2022-08-09 15:00:16 +02:00
WerWolv 8ebbe6fb4e patterns: Fixed crash when preprocessor throws an error 2022-08-09 08:58:31 +02:00
WerWolv 966f3b8597
sys: Replace existing bad project system with a much better one (#663)
* sys: Initial effort to replace existing project files with a better system

* sys: Added back marking provider as dirty

* sys: Remove git commit information from project files

* sys: Format data processor save file nicely

* fix: Automatic pattern loading not working correctly

* ui: Added warning popup when closing a provider with modifications

Closes #604

* sys: Fixed build issues

* tests: Removed useless debug logs

* patterns: Updated pattern language

* sys: Added log message when crashing with a signal

* sys: Make sure abnormal termination handlers are being called more reliably
2022-08-08 21:23:52 +02:00
WerWolv 6cb22ea75b sys: Unlock framerate when keys are pressed 2022-08-05 10:55:53 +02:00
WerWolv 5a41be48c3 build: Disable restrict warning 2022-08-05 08:32:08 +02:00
WerWolv 12547a7c8c fix: Memcpy restrict error 2022-08-05 08:10:35 +02:00
WerWolv a1a3fcbe65 ui: Improved footer item displaying 2022-08-04 11:00:49 +02:00
WerWolv 0f8ac672f3 sys: Fixed compile issue on non-Windows 2022-08-04 09:51:07 +02:00
WerWolv be37228dc6 sys: Fixed resize cursors not appearing in non-borderless window mode 2022-08-04 09:46:17 +02:00
WerWolv deabacbd50 sys: Updated ImGui, ImPlot and imnodes to latest versions 2022-08-03 23:32:34 +02:00
WerWolv ace25d353b fix: GLFW error on exit 2022-08-03 10:45:50 +02:00
WerWolv c8edb6ec6c sys: Revert GLSL version back to 150 on macOS
Fixes #632
2022-08-02 13:12:12 +02:00
WerWolv de910acbf2 sys: Revert OpenGL version back to 3.2 on macOS because Apple doesn't like 3.0
Fixes #632
2022-08-02 08:24:56 +02:00
WerWolv 0074b0be7e sys: Lowered required OpenGL version to 3.0 as well 2022-08-01 23:33:35 +02:00
WerWolv f94b36f415 sys: Lowered required GLSL version to OpenGL 3.0 2022-08-01 23:26:40 +02:00
WerWolv 59449bbe47 fix: Portable version detection not working correctly 2022-08-01 23:25:13 +02:00
WerWolv b8c034f8c5 sys: Prevent portable Windows version from writing to AppData
Fixes #627
2022-08-01 14:51:40 +02:00
WerWolv 3d5568f65f sys: Fixed global shortcuts not working correctly
Fixes #606
2022-07-30 22:01:49 +02:00
WerWolv 7a4541dac7 ui: Change the provider selector from a dropdown to a tab bar 2022-07-30 21:25:18 +02:00
WerWolv 376cf6e8fa git: Updated readme feature list a bit 2022-07-30 11:43:25 +02:00
WerWolv 24c243bcf6 sys: Reset settings if it cannot be parsed anymore 2022-07-30 11:19:56 +02:00
WerWolv 5c3a0cc654 ui: Fix window on macOS appearing really small
#551
2022-07-30 11:12:33 +02:00
WerWolv 6f3a5e896c sys: Fixed hidpi framebuffer scaling
Actually fixes #598
2022-07-29 17:37:30 +02:00
WerWolv fb4c21b97a
build: Fix weird macOS build errors (#591)
* cleanup

* Remove prints
2022-07-26 14:59:08 +02:00
WerWolv 3aa1dd1e06 build: Added usp10 library to maybe provide Windows 7 support 2022-07-07 23:30:09 +02:00
WerWolv c8b7f350ad ui: Fix rendering and default view initializing 2022-07-07 07:16:38 +02:00
WerWolv 541f1d5550 ui: Fixed positioning of UI 2022-07-06 16:40:30 +02:00
WerWolv 1354c913a4 fix: UI stuttering when resizing or restoring window 2022-07-06 11:30:06 +02:00
WerWolv 4cd390ab02 fix: Various more unicode issues 2022-07-05 00:00:00 +02:00
WerWolv de269e7a48 sys: Remove remaining references to hex.builtin from libimhex 2022-07-02 17:53:13 +02:00
WerWolv 0ed885fe0f sys: Removed all references to hex.builtin from main application 2022-07-02 16:22:38 +02:00
WerWolv 2d982e2088 fix: Drastically improve pattern highlighting performance 2022-07-01 19:05:53 +02:00
WerWolv bb429aae62 fix: Theme detection issues on all OSes 2022-06-30 15:09:57 +02:00
WerWolv 673027c82d fix: Crash on exit 2022-06-27 17:01:21 +02:00
WerWolv 3471b314dd
build: Switch to GCC on MacOS (#552)
* build: Experimentally switch to gcc on macOS

* build: Corrected gcc paths

* build: Enable objective c support on macOS

* build: Enable ObjC and ObjC++ on macOS

* build: Add ObjC and ObjC++ flags

* build: Try compiling objc with clang

* build: Remove invalid flags again

* fix: Let's not include objc headers in C++ code

* sys: Move macos utils code to its own file

* fix: Missing unistd include on mac

* sys: Removed loader script stuff since it's currently unused and broken

* fix: Missing include

* fix: Another missing include

* fix: CFURLCreateWithBytes wants a pointer to mutable data

* fix: Try disabling name mangling of ObjC functions

* sys: Move macos utils declarations to its own header file

* fix: C Linkage

* fix: Move objc function prototypes to C++ headers

* fix: More missing includes

* fix: Warning error

* sys: Call ObjC with C ABI instead of trying to use C++

* build: Update libraries

* sys: Fixed build errors

* sys: No const correctness I guess

* sys: Fixed prototypes

* sys: This is C now

* sys: More nullptr -> NULL

* sys: Fix crash on exit

* sys: Try using proper std concepts instead of custom ones

* sys: Replaced another hex::is_signed

* build: Upgrade to gcc 12 and MacOS Monterey

* build: Fixed MacOS runner name

* build: Cache correct ccache folder on macOS
2022-06-25 12:19:59 +02:00
Polshakov Dmitry f243ac7464
fix: correctly show checked plugin files (#529)
Co-authored-by: Dmitry Polshakov <dmitry.polshakov@dsr-corporation.com>
2022-06-09 15:58:40 +02:00
WerWolv bf1441223c fix: Crash when no monitors have been defined by the OS 2022-06-03 10:35:47 +02:00
WerWolv 4fd8ada4ff fix: Crash on exit 2022-05-28 16:33:52 +02:00
WerWolv b751f98e91
ui/ux: Rewrite of the entire hex editor view to make it more flexible (#512)
* ui/ux: Initial recreation of the hex editor view

* ui/ux: Added back support for editing cells

* ux: Make scrolling and selecting bytes feel nice again

* ui/ux: Improved byte selecting, added footer

* sys: Make math evaluator more generic to support integer only calculations

* patterns: Moved value formatting into pattern language

* ui/ux: Added Goto and Search popups, improved selection

* ui: Added better tooltips for bookmarks and patterns

* sys: Use worse hex search algorithm on macOS

Sadly it still doesn't support `std::boyer_moore_horsepool_searcher`

* ui: Added back missing events, menu items and shortcuts

* fix: Bookmark highlighting being rendered off by one

* fix: Various macOS build errors

* fix: size_t is not u64 on macos

* fix: std::fmod and std::pow not working with integer types on macos

* fix: Missing semicolons

* sys: Added proper integer pow function

* ui: Added back support for custom encodings

* fix: Editor not jumping to selection when selection gets changed

* ui: Turn Hexii setting into a data visualizer

* sys: Added back remaining shortcuts

* sys: Remove old hex editor files

* sys: Moved more legacy things away from the hex editor view, updated localization

* fix: Hex editor scrolling behaving weirdly and inconsistently

* sys: Cleaned up Hex editor code

* sys: Added selection color setting, localized all new settings

* fix: Search feature not working correctly

* ui: Replace custom ImGui::Disabled function with native ImGui ones

* ui: Fix bookmark tooltip rendering issues

* fix: Another size_t not being 64 bit issue on MacOS
2022-05-27 20:42:07 +02:00
WerWolv 17383083fb patterns: Use standalone pattern language library instead of built-in one 2022-04-17 16:57:30 +02:00
WerWolv 0462cc3d0c
sys: Enable -Wall, -Wextra, -Werror and fix all warnings on all Platforms (#483)
* sys: Make ImHex compile with -Wall -Wextra -Werror

* sys: Fixed various build errors on Linux

* sys: Explicitly ignore return value of `system` function

* sys: More fixes for the warnings GitHub Actions enables somehow

* sys: More fixes

* sys: Remove -Werror again to see all GitHub Actions warnings

* sys: Hopefully fixed all remaining warnings

* sys: Added back -Werror

* git: Change windows icon in GitHub Actions
2022-03-27 00:01:28 +01:00
WerWolv f7cfee55d5 ui: Enable multi viewports on Linux again if you're not on Wayland 2022-03-22 08:20:14 +01:00
WerWolv 844845223f fix: Saving interface.ini file failing if imhex is installed in a non-writable location
Fixes #473
2022-03-16 13:23:36 +01:00
WerWolv caad8c25ad sys: Prevent splash screen from creating a imgui.ini save file
Fixes #467
2022-03-13 17:36:50 +01:00
WerWolv 97bfb4004b fix: Crash when custom font file can't be found
Fixes #468
2022-03-13 17:11:02 +01:00
WerWolv 327e904dbc sys: Fixed many clang tidy warnings and typos 2022-03-04 20:52:39 +01:00
WerWolv 2739320f10 sys: Refactor of filesystem functions. Fixed crashes where fs errors weren't caught correctly
Addresses the crash mentioned in #462
2022-03-04 11:36:37 +01:00
WerWolv 5a02c38fcd store: Fixed more download issues when some folders don't have write perms 2022-02-28 23:10:04 +01:00
WerWolv 66d1b3fd2f
patterns: Huge refactor of Pattern Language runtime to use smart pointers (#458)
* patterns: Initial work to refactor pattern language to use smart pointers

* patterns: Fixed remaining issues, moved patterns to unique files

* sys: Added missing includes for macOS
2022-02-27 23:25:39 +01:00
WerWolv bdb2ac3a0b fix: imgui.ini file being created in the working directory sometimes
Fixes #450
2022-02-21 21:55:04 +01:00
WerWolv 75bd7805c9 ux: Added custom font and font size setting to settings menu, improve rebooting behaviour 2022-02-21 21:46:25 +01:00
WerWolv 60a717365c ui: Remove unifont glyphs from the ASCII range 2022-02-18 16:19:12 +01:00
WerWolv faaa90fa0d fix: Borderless window mode getting enabled when it shouldn't 2022-02-17 15:22:29 +01:00
WerWolv 7117592f38 sys: Add highlighting provider function support, move pattern highlighting code out of hex editor 2022-02-16 14:57:13 +01:00
WerWolv 60af9970c1 fix: Opening files with unicode characters in their path 2022-02-16 10:04:05 +01:00
WerWolv 33a1e7f055 sys: Added setting to override borderless window mode even on Intel 2022-02-15 23:07:48 +01:00
WerWolv f72e9700ab sys: Move Windows theme detection to Windows plugin 2022-02-15 22:50:04 +01:00
WerWolv 4357d68462 sys: Automatically disable borderless window mode if Intel CPU is used 2022-02-15 22:36:36 +01:00
WerWolv f1c7dea0ab
build: Fix Icon on macOS (#417)
* build: Try to fix macOS icon

* add debugging

* Copy icon file manually

Fixes #414
2022-02-06 22:29:16 +01:00
WerWolv 2577a2f637 ux: Fixed docking to main window 2022-02-06 21:39:10 +01:00
Robin Lambertz 6bdd114b99
build: Fix DEBUG without GIT_* variables defined (#416)
When building ImHex in debug mode outside of a git repo, the build would fail due to missing GIT_ variables.
2022-02-06 13:52:51 +01:00
WerWolv ca57f91bfa nodes: Added Digram visualizer node 2022-02-05 22:19:32 +01:00
WerWolv f9668f4ba6 fix: Crash on exit 2022-02-04 00:47:39 +01:00
WerWolv df1d302bcb sys: Added time and source to logger output 2022-02-02 17:19:50 +01:00
WerWolv 4c51efc5e0 pattern: Improved parsing of integer literals, added support for hex floats 2022-02-02 16:03:18 +01:00
WerWolv 876dbe8179 sys: Final cleanup to get rid of everything builtin in the main application 2022-02-02 00:36:09 +01:00
WerWolv f76e65a58d ux: Added better checks and help messages for missing or duplicate plugins 2022-02-01 23:57:48 +01:00
WerWolv 6977061227 ux: Fixed tips popup and properly apply default layout on first start 2022-02-01 23:33:42 +01:00
WerWolv ce59226909 sys: Reformat all 2022-02-01 22:09:44 +01:00
WerWolv 1991afb87b
sys: Get rid of SharedData struct and cleanup code structure (#411)
* sys: Initial refactoring of the SharedData class

* sys/pattern: More refactoring, make every provider have its own patterns

* sys: Finished up refactoring. No more SharedData!

* sys: Fixed compile on Unix

* tests: Fixed unit tests

* sys: Moved view and lang files

* pattern: Added assignment operator support to for loops

* tests: Fixed compile issue
2022-02-01 18:09:40 +01:00
WerWolv 3f5b258629 ux: Auto focus goto and find text box. Execute function on enter 2022-01-29 21:49:15 +01:00