Files
panopainter/src/legacy_document_image_import_services.cpp

58 lines
1.5 KiB
C++

#include "pch.h"
#include "legacy_document_image_import_services.h"
#include "canvas.h"
#include "canvas_modes.h"
#include <utility>
namespace pp::panopainter {
namespace {
class LegacyDocumentImageImportServices final : public pp::app::DocumentImageImportServices {
public:
LegacyDocumentImageImportServices(Canvas* canvas, CanvasModeTransform* import_mode, Image image) noexcept
: canvas_(canvas)
, import_mode_(import_mode)
, image_(std::move(image))
{
}
void import_equirectangular(std::string_view import_path) override
{
if (canvas_)
canvas_->import_equirectangular(std::string(import_path));
}
void enter_transform_import(std::string_view) override
{
if (!canvas_ || !import_mode_)
return;
import_mode_->m_action = CanvasModeTransform::ActionType::Import;
import_mode_->m_source_image = std::move(image_);
Canvas::set_mode(kCanvasMode::Import);
}
private:
Canvas* canvas_ = nullptr;
CanvasModeTransform* import_mode_ = nullptr;
Image image_;
};
} // namespace
pp::foundation::Status execute_legacy_document_image_import_plan(
const pp::app::DocumentImageImportPlan& plan,
std::string_view path,
Canvas* canvas,
CanvasModeTransform* import_mode,
Image image)
{
LegacyDocumentImageImportServices services(canvas, import_mode, std::move(image));
return pp::app::execute_document_image_import_plan(plan, path, services);
}
} // namespace pp::panopainter