impr: Optimize includes in often used header files

This commit is contained in:
WerWolv
2023-11-18 14:34:33 +01:00
parent 98e0a62e6e
commit 1249eb3261
29 changed files with 123 additions and 81 deletions

View File

@@ -4,8 +4,6 @@
#include <hex/helpers/concepts.hpp>
#include <pl/pattern_language.hpp>
#include <hex/api/imhex_api.hpp>
#include <hex/api/event.hpp>
#include <functional>
#include <map>
@@ -27,6 +25,7 @@ namespace hex {
class View;
class LanguageDefinition;
class Shortcut;
namespace dp {
class Node;
@@ -625,7 +624,8 @@ namespace hex {
struct MenuItem {
std::vector<std::string> unlocalizedNames;
Shortcut shortcut;
std::unique_ptr<Shortcut> shortcut;
View *view;
MenuCallback callback;
EnabledCallback enabledCallback;
};
@@ -734,6 +734,9 @@ namespace hex {
void addProviderName(const std::string &unlocalizedName);
using ProviderCreationFunction = prv::Provider*(*)();
void add(const std::string &typeName, ProviderCreationFunction creationFunction);
std::vector<std::string> &getEntries();
}
@@ -747,15 +750,8 @@ namespace hex {
void add(bool addToList = true) {
auto typeName = T().getTypeName();
(void)EventManager::subscribe<RequestCreateProvider>([expectedName = typeName](const std::string &name, bool skipLoadInterface, bool selectProvider, prv::Provider **provider) {
if (name != expectedName) return;
prv::Provider *newProvider = new T();
ImHexApi::Provider::add(newProvider, skipLoadInterface, selectProvider);
if (provider != nullptr)
*provider = newProvider;
impl::add(typeName, [] -> prv::Provider* {
return new T();
});
if (addToList)

View File

@@ -7,8 +7,6 @@
#include <vector>
#include <map>
#include <hex/api/keybinding.hpp>
#include <wolv/io/fs.hpp>
using ImGuiID = unsigned int;

View File

@@ -443,12 +443,12 @@ namespace hex {
static void resumeShortcuts();
static void pauseShortcuts();
static std::optional<Shortcut> getPreviousShortcut();
[[nodiscard]] static std::optional<Shortcut> getPreviousShortcut();
static std::vector<ShortcutEntry> getGlobalShortcuts();
static std::vector<ShortcutEntry> getViewShortcuts(View *view);
[[nodiscard]] static std::vector<ShortcutEntry> getGlobalShortcuts();
[[nodiscard]] static std::vector<ShortcutEntry> getViewShortcuts(View *view);
static void updateShortcut(const Shortcut &oldShortcut, const Shortcut &newShortcut, View *view = nullptr);
[[nodiscard]] static bool updateShortcut(const Shortcut &oldShortcut, const Shortcut &newShortcut, View *view = nullptr);
};
}

View File

@@ -1,10 +1,5 @@
#pragma once
#include <hex/api/imhex_api.hpp>
#include <hex/api/event.hpp>
#include <hex/helpers/fs.hpp>
#include <hex/helpers/utils.hpp>
#include <hex/helpers/tar.hpp>
/**
@@ -16,6 +11,10 @@
*/
namespace hex {
namespace prv {
class Provider;
}
class ProjectFile {
public:
struct Handler {

View File

@@ -7,7 +7,6 @@
#include <set>
#include <span>
#include <string_view>
#include <vector>
#include <nlohmann/json_fwd.hpp>

View File

@@ -7,7 +7,7 @@
#include <vector>
#include <span>
#include <wolv/io/file.hpp>
#include <wolv/io/fs.hpp>
namespace hex {

View File

@@ -7,11 +7,8 @@
#include <string>
#include <vector>
#include <hex/helpers/fmt.hpp>
#include <wolv/io/file.hpp>
#include <wolv/utils/guards.hpp>
#include <wolv/utils/string.hpp>
#if defined(OS_WEB)
#include <emscripten/fetch.h>

View File

@@ -6,6 +6,9 @@
#include <curl/curl.h>
#include <hex/helpers/logger.hpp>
#include <hex/helpers/fmt.hpp>
#include <wolv/utils/string.hpp>
namespace hex {
@@ -34,22 +37,22 @@ namespace hex {
curl_mime_data_cb(part, file.getSize(),
[](char *buffer, size_t size, size_t nitems, void *arg) -> size_t {
auto file = static_cast<FILE*>(arg);
auto handle = static_cast<FILE*>(arg);
return fread(buffer, size, nitems, file);
return fread(buffer, size, nitems, handle);
},
[](void *arg, curl_off_t offset, int origin) -> int {
auto file = static_cast<FILE*>(arg);
auto handle = static_cast<FILE*>(arg);
if (fseek(file, offset, origin) != 0)
if (fseek(handle, offset, origin) != 0)
return CURL_SEEKFUNC_CANTSEEK;
else
return CURL_SEEKFUNC_OK;
},
[](void *arg) {
auto file = static_cast<FILE*>(arg);
auto handle = static_cast<FILE*>(arg);
fclose(file);
fclose(handle);
},
file.getHandle());
curl_mime_filename(part, fileName.c_str());

View File

@@ -1,13 +1,13 @@
#pragma once
#include <hex.hpp>
#include <hex/api/plugin_manager.hpp>
#include <string>
#include <imgui.h>
#include <imgui_internal.h>
#include <hex.hpp>
#include <hex/api/plugin_manager.hpp>
#include <wolv/utils/string.hpp>
#include <wolv/utils/preproc.hpp>

View File

@@ -9,7 +9,6 @@
#include <variant>
#include <vector>
#include <hex/api/imhex_api.hpp>
#include <hex/providers/overlay.hpp>
#include <hex/helpers/fs.hpp>

View File

@@ -2,13 +2,16 @@
#include <hex/api/imhex_api.hpp>
#include <hex/api/event.hpp>
#include <hex/providers/provider.hpp>
#include <map>
#include <utility>
namespace hex {
namespace prv {
class Provider;
}
template<typename T>
class PerProvider {
public:
@@ -16,7 +19,7 @@ namespace hex {
PerProvider(const PerProvider&) = delete;
PerProvider(PerProvider&&) = delete;
PerProvider& operator=(const PerProvider&) = delete;
PerProvider& operator=(PerProvider&&) = delete;
PerProvider& operator=(PerProvider &&) = delete;
PerProvider(T data) : m_data({ { ImHexApi::Provider::get(), std::move(data) } }) { this->onCreate(); }

View File

@@ -8,9 +8,9 @@
#include <imgui.h>
#include <hex/ui/imgui_imhex_extensions.h>
#include <hex/helpers/utils.hpp>
#include <hex/api/task.hpp>
#include <hex/helpers/utils.hpp>
namespace hex {

View File

@@ -10,6 +10,7 @@
#include <fonts/codicons_font.h>
#include <hex/api/imhex_api.hpp>
#include <hex/api/keybinding.hpp>
#include <hex/api/event.hpp>
#include <hex/providers/provider.hpp>
#include <hex/providers/provider_data.hpp>
@@ -19,8 +20,6 @@
#include <functional>
#include <string>
#include <vector>
namespace hex {

View File

@@ -1,4 +1,5 @@
#include <hex/api/content_registry.hpp>
#include <hex/api/keybinding.hpp>
#include <hex/helpers/fs.hpp>
#include <hex/helpers/logger.hpp>
@@ -711,7 +712,7 @@ namespace hex {
log::debug("Added new menu item to menu {} with priority {}", wolv::util::combineStrings(unlocalizedMainMenuNames, " -> "), priority);
impl::getMenuItems().insert({
priority, { unlocalizedMainMenuNames, shortcut, function, enabledCallback }
priority, impl::MenuItem { unlocalizedMainMenuNames, std::make_unique<Shortcut>(shortcut), view, function, enabledCallback }
});
if (shortcut != Shortcut::None) {
@@ -727,14 +728,14 @@ namespace hex {
unlocalizedMainMenuNames.emplace_back(impl::SubMenuValue);
impl::getMenuItems().insert({
priority, { unlocalizedMainMenuNames, {}, function, enabledCallback }
priority, impl::MenuItem { unlocalizedMainMenuNames, std::make_unique<Shortcut>(), nullptr, function, enabledCallback }
});
}
void addMenuItemSeparator(std::vector<std::string> unlocalizedMainMenuNames, u32 priority) {
unlocalizedMainMenuNames.emplace_back(impl::SeparatorValue);
impl::getMenuItems().insert({
priority, { unlocalizedMainMenuNames, {}, []{}, []{ return true; } }
priority, impl::MenuItem { unlocalizedMainMenuNames, std::make_unique<Shortcut>(), nullptr, []{}, []{ return true; } }
});
}
@@ -803,21 +804,33 @@ namespace hex {
namespace ContentRegistry::Provider {
void impl::addProviderName(const std::string &unlocalizedName) {
log::debug("Registered new provider: {}", unlocalizedName);
getEntries().push_back(unlocalizedName);
}
namespace impl {
void add(const std::string &typeName, ProviderCreationFunction creationFunction) {
(void)EventManager::subscribe<RequestCreateProvider>([expectedName = typeName, creationFunction](const std::string &name, bool skipLoadInterface, bool selectProvider, prv::Provider **provider) {
if (name != expectedName) return;
prv::Provider *newProvider = creationFunction();
ImHexApi::Provider::add(newProvider, skipLoadInterface, selectProvider);
if (provider != nullptr)
*provider = newProvider;
});
}
std::vector<std::string> &getEntries() {
static std::vector<std::string> providerNames;
return providerNames;
}
void addProviderName(const std::string &unlocalizedName) {
log::debug("Registered new provider: {}", unlocalizedName);
getEntries().push_back(unlocalizedName);
}
}

View File

@@ -1,6 +1,6 @@
#include <hex/helpers/fs.hpp>
#include <hex/api/content_registry.hpp>
#include <hex/api/imhex_api.hpp>
#include <hex/api/project_file_manager.hpp>
#include <hex/helpers/logger.hpp>
#include <hex/helpers/fmt.hpp>

View File

@@ -2,6 +2,7 @@
#include <imgui.h>
#include <imgui_internal.h>
#include <imgui_impl_opengl3_loader.h>
#undef IMGUI_DEFINE_MATH_OPERATORS
#define STB_IMAGE_IMPLEMENTATION

View File

@@ -32,6 +32,8 @@
#ifndef __gl3w_h_
#define __gl3w_h_
#include <GL/gl.h>
#if __has_include(<KHR/khrplatform.h>)
#include <KHR/khrplatform.h>
#else