1 // Copyright (c) 2012 Dennco Project
3 // This program is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
13 // You should have received a copy of the GNU General Public License
14 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 // Created by tkawata on Sep-30, 2012.
19 #ifndef DCEDITCOMMANDS_H
20 #define DCEDITCOMMANDS_H
22 #include "dccommand.h"
32 class DCStartAddAxonTerminalCommandFromAxon : public DCCommand
37 DCStartAddAxonTerminalCommandFromAxon(const void *requester, DCCreator *creator, DCCell *ownerCell);
38 virtual ~DCStartAddAxonTerminalCommandFromAxon() {}
44 class DCStartAddAxonTerminalCommandFromReceptor : public DCCommand
47 QString d_receptorName;
50 DCStartAddAxonTerminalCommandFromReceptor(const void *requester, DCCreator *creator, DCCell *ownerCell, const QString &receptorName);
51 virtual ~DCStartAddAxonTerminalCommandFromReceptor() {}
57 //------------------------------------------
59 class DCCommitAddAxonTerminalCommand : public DCCommand
62 DCCell *d_receptorCell;
63 DCReceptor *d_receptor;
64 QString d_receptorName;
68 DCCommitAddAxonTerminalCommand(const void *requester, DCCreator *creator, DCAxon *axon, DCCell *receptorCell, const QString &receptorName);
69 DCCommitAddAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *axonCell, DCReceptor *receptor);
70 virtual ~DCCommitAddAxonTerminalCommand() {}
75 //------------------------------------------
77 class DCRemoveAxonTerminalCommand : public DCCommand
80 DCAxonTerminal *d_axonTerminal;
81 QString d_receptorName;
84 DCRemoveAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *axonCell, DCAxonTerminal *terminal);
85 DCRemoveAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *receptorCell, const QString& receptorName);
86 virtual ~DCRemoveAxonTerminalCommand() {}
91 //------------------------------------------
93 class DCAssignCellCodeClassToCellCommand : public DCCommand
96 DCCellCode *d_cellCode;
97 DCCellCode *d_prevClass;
99 DCAssignCellCodeClassToCellCommand(const void *requester, DCCreator *creator, DCCell *cell, DCCellCode *cellCode);
100 virtual ~DCAssignCellCodeClassToCellCommand() {}
105 //------------------------------------------
107 class DCUnassignCellCodeClassFromCellCommand : public DCCommand
110 DCCellCode *d_prevClass;
112 DCUnassignCellCodeClassFromCellCommand(const void *requester, DCCreator *creator, DCCell *cell);
113 virtual ~DCUnassignCellCodeClassFromCellCommand() {}
118 //------------------------------------------
120 class DCAddCellCodeClassCommand : public DCCommand
122 DCContainer *d_container;
127 DCAddCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, const QString& name, const QString &type);
128 virtual ~DCAddCellCodeClassCommand() {}
133 //------------------------------------------
135 class DCMoveCellCodeClassCommand : public DCCommand
141 DCMoveCellCodeClassCommand(const void *requester, DCCreator *creator, const QString& name, const QString &type);
142 virtual ~DCMoveCellCodeClassCommand();
147 //------------------------------------------
149 class DCChangeCellCodeClassTypeCommand : public DCCommand
151 DCCellCode* d_cellCode;
155 DCChangeCellCodeClassTypeCommand(const void *requester, DCCreator *creator, DCCellCode* cellCode, const QString& newType);
156 virtual ~DCChangeCellCodeClassTypeCommand() {}
161 //------------------------------------------
163 class DCRemoveCellCodeClassCommand : public DCCommand
165 DCContainer *d_container;
166 QList<DCCellCode*> d_cellCodes;
170 DCRemoveCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, DCCellCode* cellCode);
171 DCRemoveCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, const QList<DCCellCode*> &cellcodes);
172 virtual ~DCRemoveCellCodeClassCommand();
177 //------------------------------------------
179 class DCAddCellCommand : public DCCommand
181 DCContainer *d_container;
189 DCAddCellCommand(const void *requester, DCCreator *creator, DCContainer *container, const QString& path, const QString& name, const QString &type, float pageX, float pageY);
190 virtual ~DCAddCellCommand() {}
195 //------------------------------------------
197 class DCChangeCellTypeCommand : public DCCommand
203 DCChangeCellTypeCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString& newType);
204 virtual ~DCChangeCellTypeCommand() {}
209 //------------------------------------------
211 class DCRenameCellCommand : public DCCommand
218 DCRenameCellCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString& newName);
219 DCRenameCellCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString &newLocation, const QString& newName);
220 virtual ~DCRenameCellCommand();
225 //------------------------------------------
227 class DCMoveCellCommand : public DCCommand
233 DCMoveCellCommand(const void *requester, DCCreator *creator, DCCell *cell, DCVCPage *newPage);
234 virtual ~DCMoveCellCommand();
239 //------------------------------------------
241 class DCRemoveCellCommand : public DCCommand
243 DCContainer *d_container;
244 QList<DCCell*> d_cells;
247 DCRemoveCellCommand(const void *requester, DCCreator *creator, DCContainer *container, DCCell *cell);
248 DCRemoveCellCommand(const void *requester, DCCreator *creator, DCContainer *container, const QList<DCCell*> &cells);
249 virtual ~DCRemoveCellCommand();
254 //------------------------------------------
256 class DCAddPageCommand : public DCCommand
261 DCAddPageCommand(const void *requester, DCCreator *creator, const QString& containerBasedPathName);
262 virtual ~DCAddPageCommand() {}
267 //------------------------------------------
269 class DCMovePageCommand : public DCCommand
275 DCMovePageCommand(const void *requester, DCCreator *creator, const QString& oldContainerBasedPathName, const QString& newContainerBasedPathName);
276 virtual ~DCMovePageCommand();
281 //------------------------------------------
283 class DCRemovePageCommand : public DCCommand
286 QUndoStack d_undoStack;
289 DCRemovePageCommand(const void *requester, DCCreator *creator, DCVCPage *page);
290 virtual ~DCRemovePageCommand();
295 //------------------------------------------
297 class DCAddDirectoryCommand : public DCCommand
301 DCAddDirectoryCommand(const void *requester, DCCreator *creator, const QString& sysFilePath);
302 virtual ~DCAddDirectoryCommand() {}
307 //------------------------------------------
309 class DCRenameDirectoryCommand : public DCCommand
315 DCRenameDirectoryCommand(const void *requester, DCCreator *creator, const QString& sysOldDirPath, const QString& sysNewDirPath);
316 virtual ~DCRenameDirectoryCommand() {}
320 bool moveComponentsToDirectory(const QString& orgDirectory, const QString& destDirectory);
323 //------------------------------------------
325 class DCRemoveDirectoryCommand : public DCCommand
329 DCRemoveDirectoryCommand(const void *requester, DCCreator *creator, const QString& sysFilePath);
330 virtual ~DCRemoveDirectoryCommand() {}
335 //------------------------------------------
337 class DCRenameReceptorNameCommand : public DCCommand
344 DCRenameReceptorNameCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString& oldName, const QString& newName);
345 virtual ~DCRenameReceptorNameCommand() {}
350 #endif // DCEDITCOMMANDS_H