commandmanager.h
Go to the documentation of this file.
1 #ifndef COMMANDMANAGER_H
2 #define COMMANDMANAGER_H
3 
4 #include <stack>
5 #include <queue>
6 
9 
10 namespace dnai
11 {
12  namespace commands
13  {
15  {
16  private:
21  {
22  public:
23  CommandStack() = default;
24  ~CommandStack() = default;
25 
26  public:
28  {
29  stack.push_back(c);
30  }
31 
32  void pop()
33  {
34  stack.pop_back();
35  }
36 
38  {
39  return stack.back();
40  }
41 
42  bool empty() const
43  {
44  return stack.empty();
45  }
46 
47  void remove(interfaces::ICommand *c)
48  {
49  stack.remove(c);
50  }
51 
52  private:
53  std::list<interfaces::ICommand *> stack;
54  };
55 
56  public:
58 
59  static CommandManager *Instance();
65 
69  void execAll();
70 
75  void exec(interfaces::ICommand * command);
76 
81  void redo(int levels);
82 
87  void undo(int levels);
88 
93  void setConsoleView(views::Console *consoleView);
99 
105 
106  private:
109  std::queue<interfaces::ICommand *> m_doList;
110 
113  };
114  }
115 }
116 
117 #endif // COMMANDMANAGER_H
void redo(int levels)
Exectute the next command.
Definition: commandmanager.cpp:73
void undo(int levels)
Execute the last command.
Definition: commandmanager.cpp:90
bool empty() const
Definition: commandmanager.h:42
static CommandManager * Instance()
Definition: commandmanager.cpp:15
Definition: commandmanager.h:14
void execAll()
Execute all the registers commands.
Definition: commandmanager.cpp:57
void pop()
Definition: commandmanager.h:32
CommandStack m_redoList
Definition: commandmanager.h:108
void exec(interfaces::ICommand *command)
Execute immediatlty the command.
Definition: commandmanager.cpp:37
Definition: consolecontroller.h:12
interfaces::ICommand * top() const
Definition: commandmanager.h:37
const controllers::ConsoleController & console() const
Return the console view.
Definition: commandmanager.cpp:112
void setConsoleView(views::Console *consoleView)
Assign the console view.
Definition: commandmanager.cpp:107
std::queue< interfaces::ICommand * > m_doList
Definition: commandmanager.h:109
std::list< interfaces::ICommand * > stack
Definition: commandmanager.h:53
Definition: console.h:9
Definition: api.h:13
CommandManager()
Definition: commandmanager.cpp:11
CommandStack m_undoList
Definition: commandmanager.h:107
void removeCommand(interfaces::ICommand *c)
Removes a command from undoList or redoList.
Definition: commandmanager.cpp:117
static CommandManager * m_instance
Definition: commandmanager.h:112
void registerCommand(interfaces::ICommand *cmd)
Register a command.
Definition: commandmanager.cpp:23
The CommandStack class behaves like a stack of interface::ICommand * but allow to remove any command ...
Definition: commandmanager.h:20
controllers::ConsoleController m_console
Definition: commandmanager.h:111
Definition: icommand.h:15
void push(interfaces::ICommand *c)
Definition: commandmanager.h:27