Ignore:
Timestamp:
Apr 17, 2013, 6:56:32 PM (12 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:
691318
Parents:
79d0b9
git-author:
Frederik Heber <heber@…> (03/18/13 18:34:02)
git-committer:
Frederik Heber <heber@…> (04/17/13 18:56:32)
Message:

FIX: Using fixed Observer in CodePatterns 1.2.6.

  • we now require CodePatterns 1.2.6.
  • Notifications now use subjectKilled() when the Observable they are associated with is destroyed. This allows Observers that are just sign on to a single channel safely sign off.
  • also, derived Observable classes must not remove their Channels and Notifications by themselves. This is done by the Observable base class. Otherwise, subjectKilled() is not called.
  • changed AtomObserver: Is directly connected to the atom class, AtomInserted and AtomRemoved called in its cstor and dstor. The World has nothing to do with it. However, we have to make sure AtomObserver is purged after World.
  • Fixed also some faulty uses of ObserverLog and we always insert into NotificationChannels with static_cast to Observable for clarity.
Location:
src/UIElements/Views/Qt4/Qt3D
Files:
3 edited

Legend:

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

    r79d0b9 r708277  
    8585{
    8686#ifdef LOG_OBSERVER
    87   observerLog().addMessage() << "++ Update of Observer " << observerLog().getName(this) << " from atom "+toString(_atom->getId())+".";
     87  observerLog().addMessage() << "++ Update of Observer " << observerLog().getName(static_cast<Observer *>(this)) << " from atom "+toString(_atom->getId())+".";
    8888#endif
    8989  resetProperties();
     
    158158    // notofication from atom
    159159#ifdef LOG_OBSERVER
    160     observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(this)
     160    observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(static_cast<Observer *>(this))
    161161          << " received notification from atom " << _atom->getId() << " for channel "
    162162          << notification->getChannelNo() << ".";
     
    191191    // notification from world
    192192#ifdef LOG_OBSERVER
    193     observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(this)
     193    observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(static_cast<Observer *>(this))
    194194          << " received notification from world for channel "
    195195          << notification->getChannelNo() << ".";
  • src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_molecule.cpp

    r79d0b9 r708277  
    9191  const molecule *_mol = static_cast<molecule *>(publisher);
    9292#ifdef LOG_OBSERVER
    93   observerLog().addMessage() << "++ Update of Observer " << observerLog().getName(this) << " from molecule "+toString(_molecule->getId())+".";
     93  observerLog().addMessage() << "++ Update of Observer " << observerLog().getName(static_cast<Observer *>(this)) << " from molecule "+toString(_molecule->getId())+".";
    9494#endif
    9595}
     
    103103    // notofication from atom
    104104#ifdef LOG_OBSERVER
    105     observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(this)
     105    observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(static_cast<Observer *>(this))
    106106          << " received notification from molecule " << _molecule->getId() << " for channel "
    107107          << notification->getChannelNo() << ".";
     
    110110    // notification from world
    111111#ifdef LOG_OBSERVER
    112     observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(this)
     112    observerLog().addMessage() << "++ Update of Observer "<< observerLog().getName(static_cast<Observer *>(this))
    113113          << " received notification from world for channel "
    114114          << notification->getChannelNo() << ".";
  • src/UIElements/Views/Qt4/Qt3D/GLWorldView.cpp

    r79d0b9 r708277  
    312312        const atom *_atom = World::getInstance().lastChanged<atom>();
    313313  #ifdef LOG_OBSERVER
    314         observerLog().addMessage() << "++ Observer " << observerLog().getName(this) << " received notification that atom "+toString(_atom->getId())+" has been inserted.";
     314        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that atom "+toString(_atom->getId())+" has been inserted.";
    315315  #endif
    316316        emit atomInserted(_atom);
     
    321321        const atom *_atom = World::getInstance().lastChanged<atom>();
    322322  #ifdef LOG_OBSERVER
    323         observerLog().addMessage() << "++ Observer " << observerLog().getName(this) << " received notification that atom "+toString(_atom->getId())+" has been removed.";
     323        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that atom "+toString(_atom->getId())+" has been removed.";
    324324  #endif
    325325        emit atomRemoved(_atom);
     
    329329      {
    330330  #ifdef LOG_OBSERVER
    331         observerLog().addMessage() << "++ Observer " << observerLog().getName(this) << " received notification that selection has changed.";
     331        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that selection has changed.";
    332332  #endif
    333333        emit worldSelectionChanged();
     
    338338        const molecule *_molecule = World::getInstance().lastChanged<molecule>();
    339339  #ifdef LOG_OBSERVER
    340         observerLog().addMessage() << "++ Observer " << observerLog().getName(this) << " received notification that molecule "+toString(_molecule->getId())+" has been removed.";
     340        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that molecule "+toString(_molecule->getId())+" has been removed.";
    341341  #endif
    342342        emit moleculeInserted(_molecule);
     
    347347        const molecule *_molecule = World::getInstance().lastChanged<molecule>();
    348348  #ifdef LOG_OBSERVER
    349         observerLog().addMessage() << "++ Observer " << observerLog().getName(this) << " received notification that molecule "+toString(_molecule->getId())+" has been removed.";
     349        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that molecule "+toString(_molecule->getId())+" has been removed.";
    350350  #endif
    351351        emit moleculeRemoved(_molecule);
     
    362362        const atom *_atom = dynamic_cast<const atom *>(publisher);
    363363    #ifdef LOG_OBSERVER
    364         observerLog().addMessage() << "++ Observer " << observerLog().getName(this) << " received notification that atom "+toString(_atom->getId())+" has changed its position.";
     364        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that atom "+toString(_atom->getId())+" has changed its position.";
    365365    #endif
    366366        emit changed();
Note: See TracChangeset for help on using the changeset viewer.