Plan cloud dialog metadata

This commit is contained in:
2026-06-05 08:14:11 +02:00
parent e5526c6d0a
commit f46839bf5c
8 changed files with 190 additions and 26 deletions

View File

@@ -1,7 +1,9 @@
#pragma once
#include "app_core/app_dialog.h"
#include "foundation/result.h"
#include <cstdio>
#include <cstddef>
#include <cstdint>
#include <limits>
@@ -66,6 +68,61 @@ struct CloudTransferProgressPlan {
float fraction = 0.0F;
};
[[nodiscard]] inline AppMessageDialogPlan plan_cloud_save_required_prompt()
{
return plan_app_message_dialog(
"Warning",
"This document needs to be saved before upload.",
false);
}
[[nodiscard]] inline AppMessageDialogPlan plan_cloud_publish_prompt()
{
return plan_app_message_dialog(
"Publish document",
"Would you like to upload to the public domain?",
true,
"Yes",
"No");
}
[[nodiscard]] inline AppMessageDialogPlan plan_cloud_upload_success_prompt()
{
return plan_app_message_dialog(
"Success",
"This document has been succesfully uploaded.",
false);
}
[[nodiscard]] inline AppProgressDialogPlan plan_cloud_upload_progress_dialog()
{
return plan_app_progress_dialog("Uploading", 0);
}
[[nodiscard]] inline AppProgressDialogPlan plan_cloud_bulk_upload_progress_dialog(int progress_total)
{
return plan_app_progress_dialog("Export Pano Image", progress_total);
}
[[nodiscard]] inline AppMessageDialogPlan plan_cloud_download_progress_prompt()
{
return plan_app_message_dialog(
"Downloading",
"Download in progress",
true);
}
[[nodiscard]] inline std::string format_cloud_download_progress_message(float progress_fraction)
{
char buffer[64] {};
std::snprintf(
buffer,
sizeof(buffer),
"Download in progress %.2f%%",
progress_fraction * 100.0F);
return buffer;
}
class CloudServices {
public:
virtual ~CloudServices() = default;