1 
2 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
3 
4 /*
5     Rosegarden
6     A MIDI and audio sequencer and musical notation editor.
7     Copyright 2000-2021 the Rosegarden development team.
8 
9     Other copyrights also apply to some parts of this work.  Please
10     see the AUTHORS file and individual file headers for details.
11 
12     This program is free software; you can redistribute it and/or
13     modify it under the terms of the GNU General Public License as
14     published by the Free Software Foundation; either version 2 of the
15     License, or (at your option) any later version.  See the file
16     COPYING included with this distribution for more information.
17 */
18 
19 #ifndef RG_SEGMENTQUICKCOPYCOMMAND_H
20 #define RG_SEGMENTQUICKCOPYCOMMAND_H
21 
22 #include "document/Command.h"
23 #include <QString>
24 #include <QCoreApplication>
25 
26 
27 
28 
29 namespace Rosegarden
30 {
31 
32 class Segment;
33 class Composition;
34 
35 
36 class SegmentQuickCopyCommand : public NamedCommand
37 {
38     Q_DECLARE_TR_FUNCTIONS(Rosegarden::SegmentQuickCopyCommand)
39 
40 public:
41     SegmentQuickCopyCommand(Segment *segment);
42     ~SegmentQuickCopyCommand() override;
43 
44     void execute() override;
45     void unexecute() override;
46 
47     // return pointer to new copy
getCopy()48     Segment* getCopy() { return m_newSegment; }
49 
getGlobalName()50     static QString getGlobalName() { return tr("Quick-Copy Segment"); }
51 
52 private:
53     Composition *m_composition;
54     Segment     *m_originalSegment;
55     std::string  m_originalLabel;
56     Segment     *m_newSegment;
57     bool m_detached;
58 };
59 
60 
61 
62 }
63 
64 #endif
65