Loading...
Searching...
No Matches
InsertContentInInterval.hpp
1#pragma once
2#include <Process/Dataflow/Cable.hpp>
3#include <Process/ExpandMode.hpp>
4
5#include <Scenario/Application/Menus/ScenarioCopy.hpp>
6#include <Scenario/Commands/ScenarioCommandFactory.hpp>
7#include <Scenario/Document/Interval/Slot.hpp>
8
9#include <score/command/Command.hpp>
10#include <score/model/Identifier.hpp>
11#include <score/model/path/Path.hpp>
12#include <score/tools/std/HashMap.hpp>
13
14#include <ossia/detail/json.hpp>
15
16#include <QPointF>
17#include <QRectF>
18
19struct DataStreamInput;
20struct DataStreamOutput;
21namespace Process
22{
23class ProcessModel;
24}
25namespace Scenario
26{
27class IntervalModel;
28
29namespace Command
30{
32SCORE_PLUGIN_SCENARIO_EXPORT
33QRectF copiedProcessesRect(const rapidjson::Value::Array& sourceProcesses);
34
35class SCORE_PLUGIN_SCENARIO_EXPORT PasteProcessesInInterval final : public score::Command
36{
37 SCORE_COMMAND_DECL(
38 CommandFactoryName(), PasteProcessesInInterval, "Paste processes in a interval")
39public:
42 rapidjson::Value& copy, const IntervalModel& targetInterval, ExpandMode mode,
43 QPointF origin);
44
45 void undo(const score::DocumentContext& ctx) const override;
46 void redo(const score::DocumentContext& ctx) const override;
47
48protected:
49 void serializeImpl(DataStreamInput&) const override;
50 void deserializeImpl(DataStreamOutput&) override;
51
52private:
53 Path<IntervalModel> m_target;
54 ExpandMode m_mode{ExpandMode::GrowShrink};
55 QPointF m_origin{};
56
57 std::vector<Id<Process::ProcessModel>> m_ids_processes;
58 std::vector<QByteArray> m_json_processes;
59
60 Rack m_oldRack;
61 FullRack m_oldFullRack;
62
63 CopiedCables m_cables;
64};
65}
66}
The Path class is a typesafe wrapper around ObjectPath.
Definition Path.hpp:52
Definition InsertContentInInterval.hpp:36
Definition IntervalModel.hpp:50
The Command class.
Definition Command.hpp:34
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
Main plug-in of score.
Definition ConnectionsList.hpp:22
Definition DataStreamHelpers.hpp:99
Definition DataStreamHelpers.hpp:103
Definition ScenarioCopy.hpp:88
Definition DocumentContext.hpp:18