1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4     Rosegarden
5     A MIDI and audio sequencer and musical notation editor.
6     Copyright 2000-2021 the Rosegarden development team.
7 
8     Other copyrights also apply to some parts of this work.  Please
9     see the AUTHORS file and individual file headers for details.
10 
11     This program is free software; you can redistribute it and/or
12     modify it under the terms of the GNU General Public License as
13     published by the Free Software Foundation; either version 2 of the
14     License, or (at your option) any later version.  See the file
15     COPYING included with this distribution for more information.
16 */
17 
18 
19 #include "EventInsertionCommand.h"
20 
21 #include "base/Event.h"
22 #include "base/Segment.h"
23 #include "document/BasicCommand.h"
24 
25 
26 namespace Rosegarden
27 {
28 
29 EventInsertionCommand::EventInsertionCommand(Segment &segment, Event *event) :
30     BasicCommand(tr("Insert Event"), segment, event->getAbsoluteTime(),
31                  event->getAbsoluteTime() + event->getDuration()),
32     m_event(event)
33 {
34     // nothing
35 }
36 
37 EventInsertionCommand::~EventInsertionCommand()
38 {
39     delete m_event;
40     // don't want to delete m_lastInsertedEvent, it's just an alias
41 }
42 
43 void EventInsertionCommand::modifySegment()
44 {
45     m_lastInsertedEvent = new Event(*m_event);
46     getSegment().insert(m_lastInsertedEvent);
47 }
48 
49 }
50