Changes in src/Actions/small_actions.cpp [520c8b:d56640]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/small_actions.cpp
r520c8b rd56640 14 14 /****** ChangeMoleculeNameAction *****/ 15 15 16 char ChangeMoleculeNameAction::NAME[] = "Change filename of Molecule"; 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"; 17 29 18 30 ChangeMoleculeNameAction::ChangeMoleculeNameAction(MoleculeListClass *_molecules) : … … 24 36 {} 25 37 26 void ChangeMoleculeNameAction::call() {38 Action::state_ptr ChangeMoleculeNameAction::performCall() { 27 39 string filename; 28 40 molecule *mol = NULL; 29 Dialog *dialog = UIFactory::get ()->makeDialog();41 Dialog *dialog = UIFactory::getInstance().makeDialog(); 30 42 31 43 dialog->queryMolecule("Enter index of molecule: ",&mol,molecules); 32 44 dialog->queryString("Enter name: ",&filename); 45 33 46 if(dialog->display()) { 47 string oldName = mol->getName(); 34 48 mol->setName(filename); 49 delete dialog; 50 return Action::state_ptr(new ChangeMoleculeNameState(mol,oldName)); 35 51 } 36 37 52 delete dialog; 53 return Action::failure; 38 54 } 39 55 40 void ChangeMoleculeNameAction::undo() { 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"); 41 59 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 action 68 return performUndo(_state); 42 69 } 43 70 44 71 bool ChangeMoleculeNameAction::canUndo() { 45 return false;72 return true; 46 73 } 47 74
Note:
See TracChangeset
for help on using the changeset viewer.