File indexing completed on 2025-01-05 04:01:14

0001 /*
0002  * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #pragma once
0008 
0009 #include <memory>
0010 #include <functional>
0011 
0012 #include <QDir>
0013 
0014 #include "io/base.hpp"
0015 
0016 namespace glaxnimate::io::avd {
0017 
0018 class AvdParser
0019 {
0020 private:
0021 
0022 
0023 public:
0024     /**
0025      * \throws SvgParseError on error
0026      */
0027     AvdParser(
0028         QIODevice* device,
0029         const QDir& resource_path,
0030         model::Document* document,
0031         const std::function<void(const QString&)>& on_warning = {},
0032         ImportExport* io = nullptr,
0033         QSize forced_size = {},
0034         model::FrameTime default_time = 180
0035     );
0036 
0037     ~AvdParser();
0038 
0039     void parse_to_document();
0040 
0041     class Private;
0042 private:
0043     std::unique_ptr<Private> d;
0044 };
0045 
0046 } // namespace glaxnimate::io::avd