Ignore:
Timestamp:
Feb 14, 2016, 12:34:28 PM (9 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
62a0ee
Parents:
e7ed12
git-author:
Frederik Heber <heber@…> (01/06/16 17:34:22)
git-committer:
Frederik Heber <heber@…> (02/14/16 12:34:28)
Message:

QtObservedInstanceBoard now sends QtObserved..::ptr around in signals.

  • this should get rid of the problem that we need to keep the QtObservedAtom until it was requested at least once. And we don't know for how long. Now, we simply place the shared_ptr into the signal (to which it seems to be copied) and hence a representation of the atoms remains valid.
  • cstor of GLMoleculeObject_.. take Observed.. as ref.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.cpp

    re7ed12 r1b07b1  
    8484    QObject *parent,
    8585    QtObservedInstanceBoard &_board,
    86     QtObservedMolecule::ptr _ObservedMolecule) :
     86    QtObservedMolecule::ptr &_ObservedMolecule) :
    8787  GLMoleculeObject((QGLSceneNode *)NULL, parent),
    8888  owner(NULL),
     
    9999    QObject *parent,
    100100    QtObservedInstanceBoard &_board,
    101     QtObservedMolecule::ptr _ObservedMolecule) :
     101    QtObservedMolecule::ptr &_ObservedMolecule) :
    102102  GLMoleculeObject(mesh, parent),
    103103  owner(NULL),
     
    125125  connect (ObservedMolecule.get(), SIGNAL(boundingboxChanged()), this, SLOT(resetBoundingBox()));
    126126  connect (ObservedMolecule.get(), SIGNAL(indexChanged()), this, SLOT(resetIndex()));
    127   connect (ObservedMolecule.get(), SIGNAL(atomInserted(const atomId_t)), this, SLOT(atomInserted(const atomId_t)));
     127  connect (ObservedMolecule.get(), SIGNAL(atomInserted(QtObservedAtom::ptr)), this, SLOT(atomInserted(QtObservedAtom::ptr)));
    128128  connect (ObservedMolecule.get(), SIGNAL(atomRemoved(const atomId_t)), this, SLOT(atomRemoved(const atomId_t)));
    129129  connect (ObservedMolecule.get(), SIGNAL(selectedChanged()), this, SLOT(resetSelected()));
     
    357357 * @param _atom atom to add
    358358 */
    359 void GLMoleculeObject_molecule::atomInserted(const atomId_t _id)
    360 {
    361   LOG(3, "INFO: GLMoleculeObject_molecule: Received signal atomInserted for atom "+toString(_id)+".");
    362 
    363   const QtObservedAtom::ptr _atom = board.getObservedAtom(_id);
     359void GLMoleculeObject_molecule::atomInserted(QtObservedAtom::ptr _atom)
     360{
     361  const atomId_t atomid = _atom->getAtomIndex();
     362  LOG(3, "INFO: GLMoleculeObject_molecule: Received signal atomInserted for atom "+toString(atomid)+".");
     363
    364364  if (_atom) {
    365365    GLMoleculeObject_atom *atomObject =
     
    369369            _atom);
    370370    ASSERT( atomObject != NULL,
    371         "GLMoleculeObject_molecule::atomInserted - could not create atom object for "+toString(_id));
    372     AtomNodeMap::iterator iter = AtomsinSceneMap.find(_id);
     371        "GLMoleculeObject_molecule::atomInserted - could not create atom object for "+toString(atomid));
     372    AtomNodeMap::iterator iter = AtomsinSceneMap.find(atomid);
    373373    ASSERT(iter == AtomsinSceneMap.end(),
    374         "GLMoleculeObject_molecule::atomInserted - same atom with id "+toString(_id)+" added again.");
    375     AtomsinSceneMap.insert( make_pair(_id, atomObject) );
     374        "GLMoleculeObject_molecule::atomInserted - same atom with id "+toString(atomid)+" added again.");
     375    AtomsinSceneMap.insert( make_pair(atomid, atomObject) );
    376376
    377377    qRegisterMetaType<atomId_t>("atomId_t");
     
    387387
    388388    if (m_objectId  == -1)
    389       setObjectId(_id);
     389      setObjectId(atomid);
    390390
    391391    emit changed();
Note: See TracChangeset for help on using the changeset viewer.