Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/small_actions.cpp

    rd56640 r520c8b  
    1414/****** ChangeMoleculeNameAction *****/
    1515
    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";
     16char ChangeMoleculeNameAction::NAME[] = "Change filename of Molecule";
    2917
    3018ChangeMoleculeNameAction::ChangeMoleculeNameAction(MoleculeListClass *_molecules) :
     
    3624{}
    3725
    38 Action::state_ptr ChangeMoleculeNameAction::performCall() {
     26void ChangeMoleculeNameAction::call() {
    3927  string filename;
    4028  molecule *mol = NULL;
    41   Dialog *dialog = UIFactory::getInstance().makeDialog();
     29  Dialog *dialog = UIFactory::get()->makeDialog();
    4230
    4331  dialog->queryMolecule("Enter index of molecule: ",&mol,molecules);
    4432  dialog->queryString("Enter name: ",&filename);
     33  if(dialog->display()) {
     34    mol->setName(filename);
     35  }
    4536
    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   }
    5237  delete dialog;
    53   return Action::failure;
    5438}
    5539
    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");
     40void ChangeMoleculeNameAction::undo() {
    5941
    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);
    6942}
    7043
    7144bool ChangeMoleculeNameAction::canUndo() {
    72   return true;
     45  return false;
    7346}
    7447
Note: See TracChangeset for help on using the changeset viewer.