comparison base/Command.cpp @ 0:fc9323a41f5a

start base : Sonic Visualiser sv1-1.0rc1
author lbajardsilogic
date Fri, 11 May 2007 09:08:14 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:fc9323a41f5a
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2
3 /*
4 Sonic Visualiser
5 An audio file viewer and annotation editor.
6 Centre for Digital Music, Queen Mary, University of London.
7 This file copyright 2006 Chris Cannam.
8
9 This program is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License as
11 published by the Free Software Foundation; either version 2 of the
12 License, or (at your option) any later version. See the file
13 COPYING included with this distribution for more information.
14 */
15
16 #include "Command.h"
17
18 MacroCommand::MacroCommand(QString name) :
19 m_name(name)
20 {
21 }
22
23 MacroCommand::~MacroCommand()
24 {
25 for (size_t i = 0; i < m_commands.size(); ++i) {
26 delete m_commands[i];
27 }
28 }
29
30 void
31 MacroCommand::addCommand(Command *command)
32 {
33 m_commands.push_back(command);
34 }
35
36 void
37 MacroCommand::deleteCommand(Command *command)
38 {
39 for (std::vector<Command *>::iterator i = m_commands.begin();
40 i != m_commands.end(); ++i) {
41
42 if (*i == command) {
43 m_commands.erase(i);
44 delete command;
45 return;
46 }
47 }
48 }
49
50 bool
51 MacroCommand::haveCommands() const
52 {
53 return !m_commands.empty();
54 }
55
56 void
57 MacroCommand::execute()
58 {
59 for (size_t i = 0; i < m_commands.size(); ++i) {
60 m_commands[i]->execute();
61 }
62 }
63
64 void
65 MacroCommand::unexecute()
66 {
67 for (size_t i = 0; i < m_commands.size(); ++i) {
68 m_commands[m_commands.size() - i - 1]->unexecute();
69 }
70 }
71
72 QString
73 MacroCommand::getName() const
74 {
75 return m_name;
76 }
77
78 void
79 MacroCommand::setName(QString name)
80 {
81 m_name = name;
82 }
83