* build: Add libcurl
* build: Stop the whole static linking on Windows mess. There's no use anymore
* sys: Added update detector and moved some startup tasks to splash screen
* sys: Updated ImHex icon
* fix: Settings button on welcome page once again works
* build: Fix build on Linux
* sys: Fixed splash window not searching all paths for resources
getSetting now returns a straight nlohmann::json instead of an optional.
If the data isn't present, it will return a json null.
All accesses to the settings will first check that the data has the
expected type.
* sys: Move away from metadata paths next to executable in the application
Build system doesn't properly install / pack stuff yet
* build: Updated README to contain better install instructions
* sys: Search for imhex resource files in ~/Application Support
* sys: MAX_PATH -> PATH_MAX
* sys: Seach for imhex resource files in Application Support using NSFileManager (#180)
* sys: Allow for multiple file search paths
Also use install prefix instead of just /usr on Linux
* build: Fixed IMHEX_INSTALL_PREFIX macro definition
* build: Fix duplicate switch entry on Linux
* docs: Updated readme to properly reflect new paths and dependencies
* sys: Install files in their proper paths on linux (#183)
* Install files in their proper paths on linux
* Only create user directories
* Follow the XDG specification on linux
XDG specification specifies how to find config and data directories on
linux systems. Specifically, it says this:
- Data should be written to $XDG_DATA_HOME
- Config should be written to $XDG_CONFIG_HOME
- Data should be read from $XDG_DATA_HOME:$XDG_DATA_DIRS
- Config should be read from $XDG_CONFIG_HOME:$XDG_CONFIG_DIRS
The default values are this:
- XDG_DATA_HOME: $HOME/.local/share
- XDG_CONFIG_HOME: $HOME/.config
- XDG_DATA_DIRS: /usr/share:/usr/local/share
- XDG_CONFIG_DIRS: /etc/xdg
Platforms with non-standard filesystems (like NixOS) will correctly set
up those environment variables, allowing softwares to work unmodified.
In order to make integration as simple as possible, we use a simple
header-only dependency called XDGPP which does all the hard work for us
to find the default directories.
* Look for plugins in all Plugin Paths
If the plugin folder was missing from one of the PluginPaths, we would
immediately stop loading plugins. We now keep looking even if one of the
path is missing.
Co-authored-by: Nichole Mattera <me@nicholemattera.com>
Co-authored-by: Robin Lambertz <unfiltered@roblab.la>
* Added imnodes
* Added basic data processor view. Still needs to be cleaned up
* Make sure all attached links get properly removed when a Node is deleted
* Cleanup and API exposing
* Added data provider overlays and integrate them with the data processor
* Optimized data processing
* Node UI enhancements
* Added support for all themes to the nodes editor
* Improved data processor context menus
* Fixed data processor context menu showing up everywhere
* Make hex editor context menu behave the same as data processor one
* Add different node pin types and prevent incompatible ones from being connected
* Don't require explicitly marking node as end node
* Fixed plugin copying
* Added some more nodes
* Build refactoring and initial plugin support
* Possibly fixed linux / mac build
* Added libdl to libglad build script
* Add glfw to imgui dependencies
* Refactored common functionality into "libimhex" for plugins
* Added plugin loading and example plugin
* Added proper API for creating a custom view and a custom tools entry with plugins