58 lines
1.5 KiB
C++
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
|