aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/function/GlobalSettingStation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/function/GlobalSettingStation.cpp')
-rw-r--r--src/core/function/GlobalSettingStation.cpp39
1 files changed, 39 insertions, 0 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