Plan cloud upload decisions in app core

This commit is contained in:
2026-06-02 23:34:58 +02:00
parent 6e3296469a
commit 3a78361aea
10 changed files with 217 additions and 8 deletions

View File

@@ -1,19 +1,29 @@
#include "pch.h"
#include "app.h"
#include "app_core/document_cloud.h"
#include "util.h"
#include "node_progress_bar.h"
#include "node_dialog_cloud.h"
void App::cloud_upload()
{
if (!canvas)
const bool has_canvas = canvas != nullptr;
const auto plan = pp::app::plan_cloud_upload(
has_canvas,
has_canvas && Canvas::I->m_newdoc,
has_canvas && Canvas::I->m_unsaved);
switch (plan.action)
{
case pp::app::CloudUploadAction::unavailable_no_canvas:
return;
if (Canvas::I->m_newdoc)
{
case pp::app::CloudUploadAction::show_save_required_warning:
message_box("Warning", "This document needs to be saved before upload.");
return;
case pp::app::CloudUploadAction::prompt_publish:
break;
}
else
{
auto upload_thread = [this] {
BT_SetTerminate();
@@ -42,7 +52,6 @@ void App::cloud_upload()
m->btn_cancel->on_click = [this, m, upload_thread](Node*) {
m->destroy();
};
}
}
void App::cloud_upload_all()