mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-04-02 13:37:42 -05:00
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
54 lines
1.2 KiB
C++
54 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <hex.hpp>
|
|
|
|
#include <optional>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <filesystem>
|
|
#include <functional>
|
|
|
|
#include <nfd.hpp>
|
|
|
|
#include <wolv/io/fs.hpp>
|
|
|
|
namespace hex::fs {
|
|
|
|
enum class DialogMode {
|
|
Open,
|
|
Save,
|
|
Folder
|
|
};
|
|
|
|
void setFileBrowserErrorCallback(const std::function<void()> &callback);
|
|
bool openFileBrowser(DialogMode mode, const std::vector<nfdfilteritem_t> &validExtensions, const std::function<void(std::fs::path)> &callback, const std::string &defaultPath = {}, bool multiple = false);
|
|
|
|
enum class ImHexPath : u32 {
|
|
Patterns = 0,
|
|
PatternsInclude,
|
|
Magic,
|
|
Plugins,
|
|
Yara,
|
|
Config,
|
|
Resources,
|
|
Constants,
|
|
Encodings,
|
|
Logs,
|
|
Recent,
|
|
Scripts,
|
|
Inspectors,
|
|
Themes,
|
|
Libraries,
|
|
Nodes,
|
|
|
|
END
|
|
};
|
|
|
|
bool isPathWritable(const std::fs::path &path);
|
|
|
|
std::vector<std::fs::path> getDefaultPaths(ImHexPath path, bool listNonExisting = false);
|
|
|
|
// temporarily expose these for the migration function
|
|
std::vector<std::fs::path> getDataPaths();
|
|
std::vector<std::fs::path> appendPath(std::vector<std::fs::path> paths, const std::fs::path &folder);
|
|
} |