Route PPBR export directory policy through platform services

This commit is contained in:
2026-06-04 18:01:50 +02:00
parent 148aceb705
commit 52cf7628da
10 changed files with 64 additions and 14 deletions

View File

@@ -187,6 +187,7 @@ public:
[[nodiscard]] bool uses_prepared_file_writes() const;
[[nodiscard]] bool uses_work_directory_document_export_collections() const;
[[nodiscard]] bool disables_network_tls_verification() const;
[[nodiscard]] bool uses_ppbr_export_data_directory_override() const;
[[nodiscard]] bool platform_supports_sonarpen() const;
void start_platform_sonarpen();
void pick_dir(std::function<void(std::string path)> callback);

View File

@@ -196,6 +196,11 @@ bool App::disables_network_tls_verification() const
return active_platform_services().disables_network_tls_verification();
}
bool App::uses_ppbr_export_data_directory_override() const
{
return active_platform_services().uses_ppbr_export_data_directory_override();
}
bool App::platform_supports_sonarpen() const
{
return active_platform_services().supports_sonarpen();

View File

@@ -780,16 +780,14 @@ void NodePanelBrushPreset::add_brush(std::shared_ptr<Brush> brush)
bool NodePanelBrushPreset::export_ppbr(const std::string& path_in, const PPBRInfo& info_data)
{
const auto data_directory_policy = App::I->uses_ppbr_export_data_directory_override()
? pp::assets::PpbrDataDirectoryPolicy::override_directory
: pp::assets::PpbrDataDirectoryPolicy::next_to_package;
const auto export_paths = pp::assets::plan_ppbr_export_paths(
path_in,
info_data.dest_path,
info_data.export_data,
#if __OSX__
pp::assets::PpbrDataDirectoryPolicy::override_directory
#else
pp::assets::PpbrDataDirectoryPolicy::next_to_package
#endif
);
data_directory_policy);
if (!export_paths) {
LOG("export_ppbr invalid path: %s", export_paths.status().message);
return false;

View File

@@ -66,6 +66,7 @@ public:
[[nodiscard]] virtual bool uses_prepared_file_writes() = 0;
[[nodiscard]] virtual bool uses_work_directory_document_export_collections() = 0;
[[nodiscard]] virtual bool disables_network_tls_verification() = 0;
[[nodiscard]] virtual bool uses_ppbr_export_data_directory_override() = 0;
[[nodiscard]] virtual bool supports_sonarpen() = 0;
virtual void start_sonarpen() = 0;
[[nodiscard]] virtual PreparedFileTarget prepare_writable_file(

View File

@@ -455,6 +455,15 @@ public:
return pp::platform::default_disables_network_tls_verification();
}
[[nodiscard]] bool uses_ppbr_export_data_directory_override() override
{
#if defined(__OSX__)
return true;
#else
return false;
#endif
}
[[nodiscard]] bool supports_sonarpen() override
{
#if __IOS__

View File

@@ -464,6 +464,11 @@ public:
return pp::platform::default_disables_network_tls_verification();
}
[[nodiscard]] bool uses_ppbr_export_data_directory_override() override
{
return false;
}
[[nodiscard]] bool supports_sonarpen() override
{
return false;