Plan cloud browse decisions in app core

This commit is contained in:
2026-06-02 23:39:03 +02:00
parent 3a78361aea
commit 8a7db3bca8
9 changed files with 174 additions and 4 deletions

View File

@@ -1,5 +1,7 @@
#pragma once
#include <string_view>
namespace pp::app {
enum class CloudUploadAction {
@@ -8,6 +10,16 @@ enum class CloudUploadAction {
prompt_publish,
};
enum class CloudBrowseAction {
unavailable_no_canvas,
show_browser,
};
enum class CloudDownloadSelectionAction {
wait_for_selection,
start_download,
};
struct CloudUploadPlan {
CloudUploadAction action = CloudUploadAction::unavailable_no_canvas;
bool save_before_upload = false;
@@ -29,4 +41,19 @@ struct CloudUploadPlan {
return { CloudUploadAction::prompt_publish, has_unsaved_changes };
}
[[nodiscard]] constexpr CloudBrowseAction plan_cloud_browse(bool has_canvas) noexcept
{
return has_canvas
? CloudBrowseAction::show_browser
: CloudBrowseAction::unavailable_no_canvas;
}
[[nodiscard]] constexpr CloudDownloadSelectionAction plan_cloud_download_selection(
std::string_view selected_file) noexcept
{
return selected_file.empty()
? CloudDownloadSelectionAction::wait_for_selection
: CloudDownloadSelectionAction::start_download;
}
}