aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/function/GlobalSettingStation.cpp39
-rw-r--r--src/core/function/GlobalSettingStation.h7
-rw-r--r--src/core/module/ModuleInit.cpp40
3 files changed, 52 insertions, 34 deletions
diff --git a/src/core/function/GlobalSettingStation.cpp b/src/core/function/GlobalSettingStation.cpp
index 26b5d8b8..4c88fde4 100644
--- a/src/core/function/GlobalSettingStation.cpp
+++ b/src/core/function/GlobalSettingStation.cpp
@@ -136,6 +136,41 @@ class GlobalSettingStation::Impl {
return app_modules_path();
}
+ [[nodiscard]] auto GetIntegratedModulePath() const -> QString {
+ const auto exec_binary_path = GetAppDir();
+
+#if defined(__linux__)
+ // AppImage
+ if (!qEnvironmentVariable("APPIMAGE").isEmpty()) {
+ return qEnvironmentVariable("APPDIR") + "/usr/modules";
+ }
+ // Flatpak
+ if (!qEnvironmentVariable("container").isEmpty()) {
+ return "/app/modules";
+ }
+#endif
+
+#if defined(_WIN32) || defined(WIN32)
+
+#ifdef NDEBUG
+ return exec_binary_path + "/../modules";
+#else
+ return exec_binary_path + "/../modules/bin";
+#endif
+
+#endif
+
+#if defined(__APPLE__) && defined(__MACH__)
+
+#ifdef NDEBUG
+ return exec_binary_path + "/../Modules";
+#endif
+
+#endif
+
+ return exec_binary_path + "/modules";
+ }
+
private:
[[nodiscard]] auto app_config_file_path() const -> QString {
return app_config_path_ + "/config.ini";
@@ -205,4 +240,8 @@ void GlobalSettingStation::ClearAllDataObjects() const {
auto GlobalSettingStation::GetConfigPath() const -> QString {
return p_->GetConfigPath();
}
+
+auto GlobalSettingStation::GetIntegratedModulePath() const -> QString {
+ return p_->GetIntegratedModulePath();
+}
} // namespace GpgFrontend \ No newline at end of file
diff --git a/src/core/function/GlobalSettingStation.h b/src/core/function/GlobalSettingStation.h
index e7da0308..f45c0b49 100644
--- a/src/core/function/GlobalSettingStation.h
+++ b/src/core/function/GlobalSettingStation.h
@@ -124,6 +124,13 @@ class GPGFRONTEND_CORE_EXPORT GlobalSettingStation
*/
void ClearAllDataObjects() const;
+ /**
+ * @brief Get the Integrated Module Path object
+ *
+ * @return QString
+ */
+ [[nodiscard]] auto GetIntegratedModulePath() const -> QString;
+
private:
class Impl;
SecureUniquePtr<Impl> p_;
diff --git a/src/core/module/ModuleInit.cpp b/src/core/module/ModuleInit.cpp
index 321f322e..9f282a5f 100644
--- a/src/core/module/ModuleInit.cpp
+++ b/src/core/module/ModuleInit.cpp
@@ -49,45 +49,17 @@ auto SearchModuleFromPath(const QString& mods_path,
}
auto LoadIntegratedMods() -> QMap<QString, bool> {
- const auto exec_binary_path = GlobalSettingStation::GetInstance().GetAppDir();
- QString mods_path = exec_binary_path + "/modules";
+ const auto module_path =
+ GlobalSettingStation::GetInstance().GetIntegratedModulePath();
+ LOG_I() << "loading integrated modules from path:" << module_path;
-#if defined(__linux__)
- // AppImage
- if (!qEnvironmentVariable("APPIMAGE").isEmpty()) {
- mods_path = qEnvironmentVariable("APPDIR") + "/usr/modules";
- }
- // Flatpak
- if (!qEnvironmentVariable("container").isEmpty()) {
- mods_path = "/app/modules";
- }
-#endif
-
-#if defined(_WIN32) || defined(WIN32)
-
-#ifdef NDEBUG
- mods_path = exec_binary_path + "/../modules";
-#else
- mods_path = exec_binary_path + "/../modules/bin";
-#endif
-
-#endif
-
-#if defined(__APPLE__) && defined(__MACH__)
-
-#ifdef NDEBUG
- mods_path = exec_binary_path + "/../Modules";
-#endif
-
-#endif
-
- if (!QDir(mods_path).exists()) {
- LOG_W() << "integrated module directory at path: " << mods_path
+ if (!QDir(module_path).exists()) {
+ LOG_W() << "integrated modules at path: " << module_path
<< " not found, abort...";
return {};
}
- return SearchModuleFromPath(mods_path, true);
+ return SearchModuleFromPath(module_path, true);
}
auto LoadExternalMods() -> QMap<QString, bool> {