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 #include "dceditcommands.h"
21 #include "dccreator.h"
24 #include "dccontainer.h"
26 #include "dccellcode.h"
28 #include "dcaxonterminal.h"
29 #include "dcreceptor.h"
30 #include "dcvpagecomponent.h"
31 #include "dcvccellcode.h"
32 #include "utils/dcskeltoncreatorutil.h"
34 #include "dctreeviewwidget.h"
36 // -----------------------------
37 DCStartAddAxonTerminalCommandFromAxon::DCStartAddAxonTerminalCommandFromAxon(const void *requester, DCCreator *creator, DCCell *ownerCell)
38 : DCCommand(requester, creator), d_ownerCell(ownerCell)
43 void DCStartAddAxonTerminalCommandFromAxon::redo()
45 DCAxon *axon = d_ownerCell->getAxon();
46 bool r = getScene()->startTerminalEditForAxon(getRequester(), axon);
47 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
51 void DCStartAddAxonTerminalCommandFromAxon::undo()
53 getScene()->finishTerminalEdit(getRequester());
57 // -----------------------------
58 DCStartAddAxonTerminalCommandFromReceptor::DCStartAddAxonTerminalCommandFromReceptor(const void *requester, DCCreator *creator, DCCell *ownerCell, const QString &receptorName)
59 : DCCommand(requester, creator), d_ownerCell(ownerCell), d_receptorName(receptorName)
64 void DCStartAddAxonTerminalCommandFromReceptor::redo()
66 DCReceptor *receptor = d_ownerCell->createReceptor(d_receptorName);
67 bool r = getScene()->startTerminalEditForReceptor(getRequester(), receptor);
68 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
71 void DCStartAddAxonTerminalCommandFromReceptor::undo()
73 getScene()->finishTerminalEdit(getRequester());
74 d_ownerCell->removeReceptor(d_receptorName);
78 // -----------------------------
79 DCCommitAddAxonTerminalCommand::DCCommitAddAxonTerminalCommand(const void *requester, DCCreator *creator, DCAxon *axon, DCCell *receptorCell, const QString &receptorName)
80 : DCCommand(requester, creator), d_receptorCell(receptorCell),d_receptor(NULL), d_receptorName(receptorName), d_isAdded(false)
82 d_axonCell = axon->getOwnerCell();
85 DCCommitAddAxonTerminalCommand::DCCommitAddAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *axonCell, DCReceptor *receptor)
86 : DCCommand(requester, creator), d_axonCell(axonCell), d_receptor(receptor), d_receptorName(""), d_isAdded(false)
88 d_receptorCell = dynamic_cast<DCCell*>(d_receptor->getOwnerCell());
91 void DCCommitAddAxonTerminalCommand::redo()
96 d_isAdded = d_axonCell->connectTo(d_receptorName.toStdString(), d_receptorCell);
97 r = getScene()->finishTerminalEdit(getRequester());
101 TKAxonTerminal *terminal = d_axonCell->getAxon()->addTerminal();
104 d_receptor->setTarget(terminal);
107 r = getScene()->finishTerminalEdit(getRequester());
109 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
112 void DCCommitAddAxonTerminalCommand::undo()
119 DCAxon *axon = dynamic_cast <DCAxon*>(d_axonCell->getAxon());
120 DCReceptor *receptor = d_receptorCell->getReceptor(d_receptorName);
121 if (axon && receptor)
123 DCAxonTerminal *terminal = dynamic_cast<DCAxonTerminal*>(receptor->getTarget());
124 d_receptorCell->removeReceptor(d_receptorName);
125 axon->removeAxonTerminal(terminal);
130 DCAxon *axon = dynamic_cast <DCAxon*>(d_axonCell->getAxon());
131 QString receptorName = QString::fromStdString(d_receptorCell->getReceptorName(d_receptor));
132 DCAxonTerminal *terminal = dynamic_cast<DCAxonTerminal*>(d_receptor->getTarget());
134 d_receptorCell->removeReceptor(receptorName);
135 axon->removeAxonTerminal(terminal);
141 DCRemoveAxonTerminalCommand::DCRemoveAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *axonCell, DCAxonTerminal *terminal)
142 : DCCommand(requester, creator), d_cell(axonCell), d_axonTerminal(terminal), d_receptorName(""), d_isDeleted(false)
147 DCRemoveAxonTerminalCommand::DCRemoveAxonTerminalCommand(const void *requester, DCCreator *creator, DCCell *receptorCell, const QString &receptorName)
148 : DCCommand(requester, creator), d_cell(receptorCell), d_axonTerminal(NULL), d_receptorName(receptorName), d_isDeleted(false)
153 void DCRemoveAxonTerminalCommand::redo()
158 //delete from axon terminal
159 DCReceptor *receptor = dynamic_cast<DCReceptor*>(d_axonTerminal->getTarget());
160 DCAxon *axon = dynamic_cast <DCAxon*>(d_axonTerminal->getOwner());
161 if (receptor && axon)
163 DCCell *targetCell = dynamic_cast<DCCell*>(receptor->getOwnerCell());
164 QString receptorName = QString::fromStdString(targetCell->getReceptorName(receptor));
165 d_isDeleted = targetCell->removeReceptor(receptorName);
167 r = axon->removeAxonTerminal(d_axonTerminal);
172 //delete from receptor name
173 DCReceptor *receptor = d_cell->getReceptor(d_receptorName);
174 DCAxonTerminal *terminal = dynamic_cast<DCAxonTerminal*>(receptor->getTarget());
175 DCAxon *axon = dynamic_cast<DCAxon*>(terminal->getOwner());
176 d_isDeleted = d_cell->removeReceptor(d_receptorName);
178 r = axon->removeAxonTerminal(terminal);
180 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
183 void DCRemoveAxonTerminalCommand::undo()
185 qDebug() << "TODO undo DCDeleteAxonTermianlCommand";
190 DCStartCellCodeEditCommand::DCStartCellCodeEditCommand(const void *requester, DCCreator *creator, DCCell *ownerCell)
191 : DCCommand(requester, creator), d_cell(ownerCell)
196 void DCStartCellCodeEditCommand::redo()
198 bool r =getScene()->startCellCodeEdit(getRequester(), d_cell);
199 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
202 void DCStartCellCodeEditCommand::undo()
208 DCFinishCellCodeEditCommand::DCFinishCellCodeEditCommand(const void *requester, DCCreator *creator)
209 : DCCommand(requester, creator)
214 void DCFinishCellCodeEditCommand::redo()
216 bool r = getScene()->finishCellCodeEdit(getRequester());
217 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
220 void DCFinishCellCodeEditCommand::undo()
226 /*--------------------------------*/
227 DCAssignCellCodeClassToCellCommand::DCAssignCellCodeClassToCellCommand(const void *requester, DCCreator *creator, DCCell *cell, DCCellCode *cellCode)
228 : DCCommand(requester, creator), d_cell(cell), d_cellCode(cellCode), d_prevClass(NULL)
233 void DCAssignCellCodeClassToCellCommand::redo()
238 d_prevClass = d_cell->getCellCode();
239 r = d_cell->setCellCode(d_cellCode, NULL);
241 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
244 void DCAssignCellCodeClassToCellCommand::undo()
246 if (d_cell && d_prevClass)
248 d_cell->setCellCode(d_prevClass, NULL);
254 /*--------------------------------*/
255 DCUnassignCellCodeClassFromCellCommand::DCUnassignCellCodeClassFromCellCommand(const void *requester, DCCreator *creator, DCCell *cell)
256 : DCCommand(requester, creator), d_cell(cell), d_prevClass(NULL)
261 void DCUnassignCellCodeClassFromCellCommand::redo()
266 d_prevClass = d_cell->getCellCode();
267 r = d_cell->setCellCode(getContainer()->getEmptyCellCodeClass(), NULL);
269 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
272 void DCUnassignCellCodeClassFromCellCommand::undo()
274 if (d_cell && d_prevClass)
276 d_cell->setCellCode(d_prevClass, NULL);
282 /*--------------------------------*/
284 DCAddCellCodeClassCommand::DCAddCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, const QString &name, const QString &type)
285 : DCCommand(requester, creator), d_container(container), d_name(name), d_type(type)
290 void DCAddCellCodeClassCommand::redo()
292 bool r = d_container->addCellCode(d_name.toStdString(), d_type.toStdString(), DCSkeltonCreatorUtil::getDefaultCellCodeClassScript().toStdString()) != NULL;
293 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
296 void DCAddCellCodeClassCommand::undo()
300 /*--------------------------------*/
302 DCMoveCellCodeClassCommand::DCMoveCellCodeClassCommand(const void *requester, DCCreator *creator, const QString &name, const QString &type)
303 : DCCommand(requester, creator), d_name(name), d_type(type)
307 DCMoveCellCodeClassCommand::~DCMoveCellCodeClassCommand()
311 void DCMoveCellCodeClassCommand::redo()
316 void DCMoveCellCodeClassCommand::undo()
322 /*--------------------------------*/
324 DCChangeCellCodeClassTypeCommand::DCChangeCellCodeClassTypeCommand(const void *requester, DCCreator *creator, DCCellCode *cellCode, const QString& newType)
325 : DCCommand(requester, creator), d_cellCode(cellCode), d_type(newType)
330 void DCChangeCellCodeClassTypeCommand::redo()
333 if (getContainer()->getIsScriptable(d_type))
335 d_cellCode->changeType(d_type);
337 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
340 void DCChangeCellCodeClassTypeCommand::undo()
346 /*--------------------------------*/
348 DCRemoveCellCodeClassCommand::DCRemoveCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, DCCellCode *cellCode)
349 : DCCommand(requester, creator), d_container(container)
351 d_cellCodes.append(cellCode);
354 DCRemoveCellCodeClassCommand::DCRemoveCellCodeClassCommand(const void *requester, DCCreator *creator, DCContainer *container, const QList<DCCellCode *> &cellcodes)
355 : DCCommand(requester, creator), d_container(container), d_cellCodes(cellcodes)
359 DCRemoveCellCodeClassCommand::~DCRemoveCellCodeClassCommand()
363 void DCRemoveCellCodeClassCommand::redo()
367 for (int i = 0; i < d_cellCodes.length(); i++)
369 if (!d_container->removeCellCode(d_cellCodes.at(i)))
375 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
378 void DCRemoveCellCodeClassCommand::undo()
383 /*--------------------------------*/
385 DCAddCellCommand::DCAddCellCommand(const void *requester, DCCreator *creator, DCContainer *container, const QString &path, const QString &name, const QString &type, float pageX, float pageY)
386 : DCCommand(requester, creator), d_container(container), d_path(path), d_name(name), d_type(type), d_pageX(pageX), d_pageY(pageY)
391 void DCAddCellCommand::redo()
396 if (d_container->getIsScriptable(d_type))
397 cell = dynamic_cast<DCCell*>(d_container->addCell(d_path.toStdString(), d_name.toStdString(), d_type.toStdString(), DCSkeltonCreatorUtil::getDefaultCustomScript().toStdString()));
399 cell = dynamic_cast<DCCell*>(d_container->addCell(d_path.toStdString(), d_name.toStdString(), d_type.toStdString(), ""));
404 cell->setViewPageX(d_pageX);
405 cell->setViewPageY(d_pageY);
406 cell->getVComponent()->setSelected(true,true);
407 getController()->selectPage(this, cell->getPageBelonging(), false);
408 if (getController()->getPersMode() != DCCreator::DC_PERSMODE_PAGEEDIT)
410 getController()->changePersMode(this, DCCreator::DC_PERSMODE_PAGEEDIT);
413 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
416 void DCAddCellCommand::undo()
421 /*--------------------------------*/
423 DCChangeCellTypeCommand::DCChangeCellTypeCommand(const void *requester, DCCreator *creator, DCCell* cell, const QString &newType)
424 : DCCommand(requester, creator), d_cell(cell), d_type(newType)
429 void DCChangeCellTypeCommand::redo()
434 if (!getContainer()->getIsScriptable(d_type))
436 d_cell->setCellCode(getContainer()->getEmptyCellCodeClass(), NULL);
437 d_cell->saveCustomScript("");
440 if (d_cell->getIsCellCodeClassAssgined())
446 d_cell->changeType(d_type);
450 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
453 void DCChangeCellTypeCommand::undo()
458 /*--------------------------------*/
460 DCRenameCellCommand::DCRenameCellCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString &newName)
461 : DCCommand(requester, creator), d_cell(cell), d_name(newName)
463 d_location = QString::fromStdString(cell->getLocation());
466 DCRenameCellCommand::DCRenameCellCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString &newLocation, const QString &newName)
467 : DCCommand(requester, creator), d_cell(cell), d_location(newLocation), d_name(newName)
472 DCRenameCellCommand::~DCRenameCellCommand()
477 void DCRenameCellCommand::redo()
482 if (d_location != QString::fromStdString(d_cell->getLocation()))
484 DCVCPage *page = getScene()->getPage(d_location.toStdString());
487 d_cell->getVComponent()->changePageBelonging(page);
488 r = getContainer()->moveCell(d_cell, d_location);
496 r = getContainer()->renameCell(d_cell, d_name);
499 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
502 void DCRenameCellCommand::undo()
507 /*--------------------------------*/
509 DCMoveCellCommand::DCMoveCellCommand(const void *requester, DCCreator *creator, DCCell *cell, DCVCPage *newPage)
510 : DCCommand(requester, creator), d_cell(cell), d_page(newPage)
514 DCMoveCellCommand::~DCMoveCellCommand()
519 void DCMoveCellCommand::redo()
523 if (d_page && d_cell)
525 d_cell->getVComponent()->changePageBelonging(d_page);
529 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
532 void DCMoveCellCommand::undo()
537 /*--------------------------------*/
539 DCRemoveCellCommand::DCRemoveCellCommand(const void *requester, DCCreator *creator, DCContainer *container, DCCell* cell)
540 : DCCommand(requester, creator), d_container(container)
542 d_cells.append(cell);
545 DCRemoveCellCommand::DCRemoveCellCommand(const void *requester, DCCreator *creator, DCContainer *container, const QList<DCCell*> &cells)
546 : DCCommand(requester, creator), d_container(container), d_cells(cells)
550 DCRemoveCellCommand::~DCRemoveCellCommand()
555 void DCRemoveCellCommand::redo()
558 for (int i = 0; i < d_cells.length(); i++)
560 if (!d_container->removeCell(d_cells.at(i)))
565 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
568 void DCRemoveCellCommand::undo()
573 /*--------------------------------*/
574 DCAddPageCommand::DCAddPageCommand(const void *requester, DCCreator *creator, const QString &containerBasedPath)
575 : DCCommand(requester, creator), d_path(containerBasedPath), d_page(NULL)
580 void DCAddPageCommand::redo()
582 if (!getController())
585 DCTreeViewWidget::selectWhenFilePathAdded(getContainer()->containerBasedPathToSysFilePath(d_path));
586 d_page = getScene()->addPage(d_path.toStdString());
587 bool r = getController()->savePage(d_page);
588 getController()->selectPage(getRequester(), d_page, false);
589 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
592 void DCAddPageCommand::undo()
597 /*--------------------------------*/
598 DCMovePageCommand::DCMovePageCommand(const void *requester, DCCreator *creator, const QString &oldContainerBasedPathName, const QString &newContainerBasedPathName)
599 : DCCommand(requester, creator), d_oldPath(oldContainerBasedPathName), d_newPath(newContainerBasedPathName)
603 DCMovePageCommand::~DCMovePageCommand()
605 qDebug() << "DCRenamePageCommand removed..";
608 void DCMovePageCommand::redo()
612 DCVCPage *oldPage = getScene()->getPage(d_oldPath.toStdString());
613 if (getContainer() && oldPage && !getScene()->getIsPageExist(d_newPath.toStdString()))
615 DCTreeViewWidget::selectWhenFilePathAdded(getContainer()->containerBasedPathToSysFilePath(d_newPath));
616 DCVCPage *newPage = getContainer()->movePage(d_oldPath, d_newPath);
617 getController()->selectPage(getRequester(), newPage, false);
621 r = getController()->saveAll(false);
625 //TODO show error message?
626 DCTreeViewWidget::selectWhenFilePathAdded("");
629 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
632 void DCMovePageCommand::undo()
638 /*--------------------------------*/
639 DCRemovePageCommand::DCRemovePageCommand(const void *requester, DCCreator *creator, DCVCPage *page)
640 : DCCommand(requester, creator), d_page(page)
645 DCRemovePageCommand::~DCRemovePageCommand()
647 qDebug() << "DCRemovePageCommand removed..";
650 void DCRemovePageCommand::redo()
656 setCommandResult(DCCommand::DCCOMMAND_FAILED);
660 const QList<DCVPageComponent*> *vcells = d_page->getCells();
661 const QList<DCVPageComponent*> *vcellCodeClasses = d_page->getCellCodeClasses();
663 QList<DCCellCode*> cellcodes;
664 for (int i = 0; i < vcellCodeClasses->length(); i++)
666 DCCellCode *cellCode = dynamic_cast<DCVCCellCode*>(vcellCodeClasses->at(i))->getOwnerCellCodeClass();
668 cellcodes.append(cellCode);
671 if (cellcodes.length()>0)
673 DCCommand *command = new DCRemoveCellCodeClassCommand(getRequester(), getController(), getContainer(), cellcodes);
674 d_undoStack.push(command);
676 if (command->getCommandResult() != DCCommand::DCCOMMAND_SUCCEEDED)
680 QList<DCCell*> cells;
681 for (int i = 0; i < vcells->length(); i++)
683 DCCell *cell = vcells->at(i)->getOwnerCell();
688 if (cells.length()>0)
690 DCCommand *command = new DCRemoveCellCommand(getRequester(), getController(), getContainer(), cells);
691 d_undoStack.push(command);
693 if (command->getCommandResult() != DCCommand::DCCOMMAND_SUCCEEDED)
697 QString filePath = QString::fromStdString(getContainer()->getContainerRootPath());
698 filePath.append(d_page->getLocationPath());
700 QString sceneSettingFilePath = getScene()->getSceneSettingFilePathForPage(d_page);
703 if (!dir.remove(filePath))
707 dir.remove(sceneSettingFilePath);
709 if (!getScene()->removePage(d_page))
714 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
717 void DCRemovePageCommand::undo()
722 /*--------------------------------*/
723 DCAddDirectoryCommand::DCAddDirectoryCommand(const void *requester, DCCreator *creator, const QString &sysFilePath)
724 : DCCommand(requester, creator), d_path(sysFilePath)
729 void DCAddDirectoryCommand::redo()
731 bool r = DCTreeViewWidget::addDirectory(d_path);
732 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
735 void DCAddDirectoryCommand::undo()
740 /*--------------------------------*/
741 DCRenameDirectoryCommand::DCRenameDirectoryCommand(const void *requester, DCCreator *creator, const QString &sysOldFilePath, const QString &sysNewFilePath)
742 : DCCommand(requester, creator), d_oldPath(sysOldFilePath), d_newPath(sysNewFilePath)
747 void DCRenameDirectoryCommand::redo()
749 DCTreeViewWidget::selectWhenFilePathAdded(d_newPath);
750 bool r = moveComponentsToDirectory(d_oldPath, d_newPath);
753 DCTreeViewWidget::removeDirectory(d_oldPath);
757 //TODO show error message?
758 DCTreeViewWidget::selectWhenFilePathAdded("");
760 getController()->saveAll(false);
763 void DCRenameDirectoryCommand::undo()
768 bool DCRenameDirectoryCommand::moveComponentsToDirectory(const QString &orgSysDirectory, const QString &destSysDirectory)
770 if (QDir(destSysDirectory).exists())
774 if (!dir.mkpath(destSysDirectory))
778 QDir orgDir(orgSysDirectory);
779 QFileInfoList list = orgDir.entryInfoList(QDir::NoDot | QDir::NoDotDot | QDir::AllEntries);
780 for (int i = 0; r && i < list.size(); i++)
782 QFileInfo fileInfo = list.at(i);
783 if (fileInfo.isDir())
785 QDir d(fileInfo.absoluteFilePath());
786 QString newDir = destSysDirectory + "/" + d.dirName();
787 r = moveComponentsToDirectory(fileInfo.absoluteFilePath(), newDir);
791 QString newFile = destSysDirectory + "/" + fileInfo.fileName();
792 QDir newFileDir(newFile);
793 if (!newFileDir.exists())
795 QString oldFileContainerBasedPath = getContainer()->sysFilePathToContainerBasedPath(fileInfo.absoluteFilePath());
796 QString newFileContainerBasedPath = getContainer()->sysFilePathToContainerBasedPath(newFile);
797 if (getScene()->getIsPageExist(oldFileContainerBasedPath))
799 r = getContainer()->movePage(oldFileContainerBasedPath, newFileContainerBasedPath) != NULL;
803 QFile oldFile(fileInfo.absoluteFilePath());
804 if (oldFile.exists())
806 r = oldFile.copy(newFile);
820 /*--------------------------------*/
821 DCRemoveDirectoryCommand::DCRemoveDirectoryCommand(const void *requester, DCCreator *creator, const QString &sysFilePath)
822 : DCCommand(requester, creator), d_path(sysFilePath)
827 void DCRemoveDirectoryCommand::redo()
829 bool r = DCTreeViewWidget::removeDirectory(d_path);
830 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
833 void DCRemoveDirectoryCommand::undo()
838 /*--------------------------------*/
839 DCRenameReceptorNameCommand::DCRenameReceptorNameCommand(const void *requester, DCCreator *creator, DCCell *cell, const QString &oldName, const QString &newName)
840 : DCCommand(requester, creator), d_cell(cell), d_oldName(oldName), d_newName(newName)
845 void DCRenameReceptorNameCommand::redo()
847 bool r = d_cell->renameReceptor(d_oldName, d_newName);
848 setCommandResult(r ? DCCommand::DCCOMMAND_SUCCEEDED : DCCommand::DCCOMMAND_FAILED);
851 void DCRenameReceptorNameCommand::undo()