Loading...
Searching...
No Matches
ScenarioPasteElementsAfter.hpp
1#pragma once
2#include <Process/Dataflow/Cable.hpp>
3
4#include <Scenario/Application/Menus/ScenarioCopy.hpp>
5#include <Scenario/Commands/ScenarioCommandFactory.hpp>
6
7#include <score/command/Command.hpp>
8#include <score/model/Identifier.hpp>
9#include <score/model/path/Path.hpp>
10#include <score/selection/Selection.hpp>
11#include <score/tools/std/Optional.hpp>
12
13#include <ossia/detail/flat_map.hpp>
14#include <ossia/detail/json.hpp>
15
16namespace Scenario
17{
18struct Point;
19class EventModel;
20class StateModel;
21class TimeSyncModel;
22class IntervalModel;
23namespace Command
24{
25class SCORE_PLUGIN_SCENARIO_EXPORT ScenarioPasteElementsAfter final
26 : public score::Command
27{
28 SCORE_COMMAND_DECL(
29 CommandFactoryName(), ScenarioPasteElementsAfter, "Paste elements after sync")
30public:
32 const Scenario::ProcessModel& path, const Scenario::TimeSyncModel& attach_sync,
33 const rapidjson::Value& obj, double scale);
34
35 void undo(const score::DocumentContext& ctx) const override;
36 void redo(const score::DocumentContext& ctx) const override;
37
38protected:
39 void serializeImpl(DataStreamInput&) const override;
40 void deserializeImpl(DataStreamOutput&) override;
41
42private:
44 Id<TimeSyncModel> m_attachSync;
45 std::vector<Id<EventModel>> m_eventsToAttach;
46
47 // TODO std::vector...
48 std::vector<Id<TimeSyncModel>> m_ids_timesyncs;
49 std::vector<Id<IntervalModel>> m_ids_intervals;
50 std::vector<Id<EventModel>> m_ids_events;
51 std::vector<Id<StateModel>> m_ids_states;
52
53 std::vector<QByteArray> m_json_timesyncs;
54 std::vector<QByteArray> m_json_intervals;
55 std::vector<QByteArray> m_json_events;
56 std::vector<QByteArray> m_json_states;
57
58 CopiedCables m_cables;
59};
60}
61}
The Path class is a typesafe wrapper around ObjectPath.
Definition Path.hpp:52
Definition ScenarioPasteElementsAfter.hpp:27
The core hierarchical and temporal process of score.
Definition ScenarioModel.hpp:37
Definition TimeSyncModel.hpp:34
The id_base_t class.
Definition Identifier.hpp:57
The Command class.
Definition Command.hpp:34
Main plug-in of score.
Definition score-plugin-dataflow/Dataflow/PortItem.hpp:13
Definition DataStreamHelpers.hpp:99
Definition DataStreamHelpers.hpp:103
Definition ScenarioCopy.hpp:87
Definition DocumentContext.hpp:18