Changes in src/Actions/small_actions.cpp [d56640:520c8b]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/small_actions.cpp
rd56640 r520c8b 14 14 /****** ChangeMoleculeNameAction *****/ 15 15 16 // memento to remember the state when undoing 17 18 class ChangeMoleculeNameState : public ActionState { 19 public: 20 ChangeMoleculeNameState(molecule* _mol,std::string _lastName) : 21 mol(_mol), 22 lastName(_lastName) 23 {} 24 molecule* mol; 25 std::string lastName; 26 }; 27 28 const char ChangeMoleculeNameAction::NAME[] = "Change filename of Molecule"; 16 char ChangeMoleculeNameAction::NAME[] = "Change filename of Molecule"; 29 17 30 18 ChangeMoleculeNameAction::ChangeMoleculeNameAction(MoleculeListClass *_molecules) : … … 36 24 {} 37 25 38 Action::state_ptr ChangeMoleculeNameAction::performCall() {26 void ChangeMoleculeNameAction::call() { 39 27 string filename; 40 28 molecule *mol = NULL; 41 Dialog *dialog = UIFactory::get Instance().makeDialog();29 Dialog *dialog = UIFactory::get()->makeDialog(); 42 30 43 31 dialog->queryMolecule("Enter index of molecule: ",&mol,molecules); 44 32 dialog->queryString("Enter name: ",&filename); 33 if(dialog->display()) { 34 mol->setName(filename); 35 } 45 36 46 if(dialog->display()) {47 string oldName = mol->getName();48 mol->setName(filename);49 delete dialog;50 return Action::state_ptr(new ChangeMoleculeNameState(mol,oldName));51 }52 37 delete dialog; 53 return Action::failure;54 38 } 55 39 56 Action::state_ptr ChangeMoleculeNameAction::performUndo(Action::state_ptr _state) { 57 ChangeMoleculeNameState *state = dynamic_cast<ChangeMoleculeNameState*>(_state.get()); 58 ASSERT(state,"State passed to ChangeMoleculeNameAction::performUndo did not have correct type"); 40 void ChangeMoleculeNameAction::undo() { 59 41 60 string newName = state->mol->getName();61 state->mol->setName(state->lastName);62 63 return Action::state_ptr(new ChangeMoleculeNameState(state->mol,newName));64 }65 66 Action::state_ptr ChangeMoleculeNameAction::performRedo(Action::state_ptr _state){67 // Undo and redo have to do the same for this action68 return performUndo(_state);69 42 } 70 43 71 44 bool ChangeMoleculeNameAction::canUndo() { 72 return true;45 return false; 73 46 } 74 47
Note:
See TracChangeset
for help on using the changeset viewer.