Changeset 1187c5 for src/UIElements
- Timestamp:
- Feb 26, 2016, 9:54:40 AM (9 years ago)
- 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:
- 4a187d
- Parents:
- 640cbd
- git-author:
- Frederik Heber <heber@…> (02/14/16 18:49:24)
- git-committer:
- Frederik Heber <heber@…> (02/26/16 09:54:40)
- Location:
- src/UIElements
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/Qt4/InstanceBoard/QtObservedAtom.cpp
r640cbd r1187c5 82 82 QtObservedAtom::AtomElementChannels(1, AtomObservable::ElementChanged); 83 83 const Observable::channels_t 84 QtObservedAtom::AtomMolecule IndexChannels(1, AtomObservable::MoleculeChanged);84 QtObservedAtom::AtomMoleculeChannels(1, AtomObservable::MoleculeChanged); 85 85 const Observable::channels_t 86 86 QtObservedAtom::AtomNameChannels(1, AtomObservable::NameChanged); … … 120 120 boost::any_cast<ObservedValue_wCallback<ListOfBonds_t, atomId_t> *>(ObservedValues[AtomBonds])->noteCallBackIsGone(); 121 121 boost::any_cast<ObservedValue_wCallback<atomicNumber_t, atomId_t> *>(ObservedValues[AtomElement])->noteCallBackIsGone(); 122 boost::any_cast<ObservedValue_wCallback< moleculeId_t, atomId_t> *>(ObservedValues[AtomMoleculeIndex])->noteCallBackIsGone();122 boost::any_cast<ObservedValue_wCallback<QtObservedMolecule*, atomId_t> *>(ObservedValues[AtomMolecule])->noteCallBackIsGone(); 123 123 boost::any_cast<ObservedValue_wCallback<std::string, atomId_t> *>(ObservedValues[AtomName])->noteCallBackIsGone(); 124 124 boost::any_cast<ObservedValue_wCallback<Vector, atomId_t> *>(ObservedValues[AtomPosition])->noteCallBackIsGone(); … … 175 175 } 176 176 177 moleculeId_tQtObservedAtom::updateMoleculeIndex(177 QtObservedMolecule* QtObservedAtom::updateMoleculeIndex( 178 178 const boost::function<const atomId_t ()> &_getAtomIndex) 179 179 { 180 180 const atom * const _atom = getAtomConst(_getAtomIndex()); 181 181 if ((_atom != NULL) && (_atom->getMolecule() != NULL)) { 182 return _atom->getMolecule()->getId(); 182 const moleculeId_t molid = _atom->getMolecule()->getId(); 183 QtObservedMolecule* mol = board.getObservedMolecule(molid).get(); 184 if (mol != NULL) 185 return mol; 186 else 187 return (QtObservedMolecule*)NULL; 183 188 } else { 184 return ( moleculeId_t)0;189 return (QtObservedMolecule*)NULL; 185 190 } 186 191 } … … 279 284 break; 280 285 case AtomObservable::MoleculeChanged: 281 emit molecule indexChanged();286 emit moleculeChanged(); 282 287 break; 283 288 case AtomObservable::NameChanged: … … 367 372 const boost::function<atomicNumber_t ()> AtomElementUpdater( 368 373 boost::bind(&QtObservedAtom::updateElement, AtomIndexGetter)); 369 const boost::function< moleculeId_t ()> AtomMoleculeIndexUpdater(370 boost::bind(&QtObservedAtom::updateMoleculeIndex, AtomIndexGetter));374 const boost::function<QtObservedMolecule* ()> AtomMoleculeUpdater( 375 boost::bind(&QtObservedAtom::updateMoleculeIndex, this, AtomIndexGetter)); 371 376 const boost::function<std::string ()> AtomNameUpdater( 372 377 boost::bind(&QtObservedAtom::updateName, AtomIndexGetter)); … … 392 397 _subjectKilled, 393 398 AtomIndexGetter); 394 _ObservedValues[AtomMolecule Index] = new ObservedValue_wCallback<moleculeId_t, atomId_t>(395 _atomref, 396 AtomMolecule IndexUpdater,397 "AtomMolecule Index"+toString(_id),398 AtomMolecule IndexUpdater(),399 AtomMolecule IndexChannels,399 _ObservedValues[AtomMolecule] = new ObservedValue_wCallback<QtObservedMolecule*, atomId_t>( 400 _atomref, 401 AtomMoleculeUpdater, 402 "AtomMolecule"+toString(_id), 403 AtomMoleculeUpdater(), 404 AtomMoleculeChannels, 400 405 _subjectKilled, 401 406 AtomIndexGetter); … … 432 437 delete boost::any_cast<ObservedValue_wCallback<ListOfBonds_t, atomId_t> *>(_ObservedValues[AtomBonds]); 433 438 delete boost::any_cast<ObservedValue_wCallback<atomicNumber_t, atomId_t> *>(_ObservedValues[AtomElement]); 434 delete boost::any_cast<ObservedValue_wCallback< moleculeId_t, atomId_t> *>(_ObservedValues[AtomMoleculeIndex]);439 delete boost::any_cast<ObservedValue_wCallback<QtObservedMolecule*, atomId_t> *>(_ObservedValues[AtomMolecule]); 435 440 delete boost::any_cast<ObservedValue_wCallback<std::string, atomId_t> *>(_ObservedValues[AtomName]); 436 441 delete boost::any_cast<ObservedValue_wCallback<Vector, atomId_t> *>(_ObservedValues[AtomPosition]); … … 454 459 } 455 460 456 const moleculeId_t& QtObservedAtom::getAtomMoleculeIndex() const457 { 458 return boost::any_cast<ObservedValue_wCallback< moleculeId_t, atomId_t> *>(ObservedValues[AtomMoleculeIndex])->get();461 QtObservedMolecule* const QtObservedAtom::getAtomMolecule() const 462 { 463 return boost::any_cast<ObservedValue_wCallback<QtObservedMolecule*, atomId_t> *>(ObservedValues[AtomMolecule])->get(); 459 464 } 460 465 -
src/UIElements/Qt4/InstanceBoard/QtObservedAtom.hpp
r640cbd r1187c5 31 31 class atom; 32 32 class QtObservedInstanceBoard; 33 class QtObservedMolecule; 33 34 34 35 /** This instance is the ObservedValue representation of a World's atom. … … 122 123 * \return atom's molecule index 123 124 */ 124 const moleculeId_t& getAtomMoleculeIndex() const;125 QtObservedMolecule* const getAtomMolecule() const; 125 126 126 127 /** Getter to atom's selected status. … … 134 135 void bondsChanged(); 135 136 void elementChanged(); 136 void molecule indexChanged();137 void moleculeChanged(); 137 138 void nameChanged(); 138 139 void positionChanged(); … … 155 156 static atomicNumber_t updateElement( 156 157 const boost::function<const atomId_t ()> &_getAtomIndex); 157 static moleculeId_tupdateMoleculeIndex(158 QtObservedMolecule* updateMoleculeIndex( 158 159 const boost::function<const atomId_t ()> &_getAtomIndex); 159 160 static std::string updateName( … … 173 174 AtomElement, 174 175 //!> contains the current atom's molecule index 175 AtomMolecule Index,176 AtomMolecule, 176 177 //!> contains the current atom position 177 178 AtomName, … … 235 236 static const Observable::channels_t AtomElementChannels; 236 237 //!> list of channels when molecule index needs to update 237 static const Observable::channels_t AtomMolecule IndexChannels;238 static const Observable::channels_t AtomMoleculeChannels; 238 239 //!> list of channels when name needs to update 239 240 static const Observable::channels_t AtomNameChannels; -
src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp
r640cbd r1187c5 197 197 { 198 198 const atomId_t atomid = _atom->getAtomIndex(); 199 const atomId_t atommolid = _atom->getAtomMoleculeIndex(); 200 const atomId_t molid = _mol->getMolIndex(); 201 ASSERT( molid == atommolid, 202 "GLWorldScene::moleculesAtomInserted() - atom "+toString(atomid)+" claims to belong to mol " 203 +toString(atommolid)+" but signal came from QtObservedMolecule with id " 204 +toString(molid)+"."); 199 QtObservedMolecule* const atommol = _atom->getAtomMolecule(); 200 // this ASSERT cannot work: The same molecule may get reassigned to a different 201 // molecule, when e.g. the time step changes (which triggers an update-molecules). 202 // The GUI is slow and may lack behind and thus get to execute the event 203 // moleculeAtomInserted when the change has been already been done. 204 // ASSERT( (atommol == NULL) || (_mol == atommol), 205 // "GLWorldScene::moleculesAtomInserted() - atom "+toString(atomid) 206 // +" claims to belong to QtObservedMolecule "+toString(atommol) 207 // +" but signal came from QtObservedMolecule "+toString(_mol)+"."); 205 208 LOG(3, "INFO: GLWorldScene: Received signal atomInserted for atom "+toString(atomid)+"."); 209 const moleculeId_t molid = _mol->getMolIndex(); 206 210 207 211 // check of molecule is already present -
src/UIElements/Views/Qt4/QtInfoBox.cpp
r640cbd r1187c5 139 139 connect(curAtom.get(), SIGNAL(atomRemoved()), this, SLOT(clearAtomTab())); 140 140 141 const moleculeId_t molid = curAtom->getAtomMoleculeIndex(); 141 QtObservedMolecule * const mol = curAtom->getAtomMolecule(); 142 const moleculeId_t molid = mol->getMolIndex(); 142 143 if (molid != (moleculeId_t)-1) { 143 144 QtObservedMolecule::ptr curMolecule = board->getObservedMolecule(molid); 145 ASSERT( mol == curMolecule.get(), 146 "QtInfoBox::showAtom() - mol "+toString(mol) 147 +" obtained from atom does not match mol "+toString(curMolecule.get()) 148 +" obtained via id "+toString(molid)); 144 149 if (curMolecule) { 145 150 page_mol = new QtMoleculeInfoPage(curMolecule, this);
Note:
See TracChangeset
for help on using the changeset viewer.