Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/AtomAction/ChangeElementAction.cpp

    rd74077 rdddbfe  
    1212#include "atom.hpp"
    1313#include "element.hpp"
    14 #include "log.hpp"
    15 #include "vector.hpp"
    16 #include "verbose.hpp"
     14#include "Helpers/Log.hpp"
     15#include "LinearAlgebra/Vector.hpp"
     16#include "Helpers/Verbose.hpp"
     17#include "molecule.hpp"
    1718#include "World.hpp"
    1819
     
    2425#include "UIElements/UIFactory.hpp"
    2526#include "UIElements/Dialog.hpp"
    26 #include "UIElements/ValueStorage.hpp"
     27#include "Actions/ValueStorage.hpp"
    2728
    2829const char AtomChangeElementAction::NAME[] = "change-element";
     
    4041};
    4142
    42 Dialog* AtomChangeElementAction::createDialog() {
    43   Dialog *dialog = UIFactory::getInstance().makeDialog();
     43Dialog* AtomChangeElementAction::fillDialog(Dialog *dialog) {
     44  ASSERT(dialog,"No Dialog given when filling action dialog");
    4445
    4546  dialog->queryElement(NAME, ValueStorage::getInstance().getDescription(NAME));
     
    5152  atom *first = NULL;
    5253  element *elemental = NULL;
     54  molecule *mol = NULL;
    5355
    5456  ValueStorage::getInstance().queryCurrentValue(NAME, elemental);
     
    5759    first = iter->second;
    5860    DoLog(1) && (Log() << Verbose(1) << "Changing atom " << *first << " to element " << elemental->symbol << "." << endl);
    59     first->setType(elemental);
     61    mol = first->getMolecule();
     62    first->removeFromMolecule(); // remove atom
     63    first->type = elemental;
     64    mol->AddAtom(first);  // add atom to ensure correctness of formula
    6065  }
    6166  return Action::success;
Note: See TracChangeset for help on using the changeset viewer.