43 std::vector<structure::tracks::TrackUuidReference> track_refs,
45 std::optional<structure::tracks::Track::Uuid> target_folder = std::nullopt);
47 void undo ()
override;
48 void redo ()
override;
49 int id ()
const override;
56 bool is_internal_parent (
57 const std::optional<structure::tracks::Track::Uuid> &parent)
const;
63 std::vector<structure::tracks::TrackUuidReference> track_refs_;
66 std::vector<int> original_positions_;
72 std::optional<structure::tracks::Track::Uuid> target_folder_;
75 std::vector<std::optional<structure::tracks::Track::Uuid>>
76 original_folder_parents_;
79 bool target_folder_was_expanded_{
false };
82 std::unordered_set<structure::tracks::Track::Uuid> moved_uuids_;
MoveTracksCommand(structure::tracks::TrackCollection &collection, std::vector< structure::tracks::TrackUuidReference > track_refs, int target_position, std::optional< structure::tracks::Track::Uuid > target_folder=std::nullopt)
Constructs a new MoveTracksCommand.