- Timestamp:
- Aug 5, 2015, 5:32:08 PM (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:
- 6c16a0
- Parents:
- 009e2e2
- git-author:
- Frederik Heber <heber@…> (06/21/15 04:49:13)
- git-committer:
- Frederik Heber <heber@…> (08/05/15 17:32:08)
- Location:
- src/UIElements/Views/Qt4/MoleculeList
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/Views/Qt4/MoleculeList/QtMoleculeItem.cpp
r009e2e2 r3e52834 61 61 movetype(_movetype), 62 62 channellist(_channellist), 63 IsSignedOn(false),63 owner(NULL), 64 64 dirty(true), 65 65 emitDirtyState(_emitDirtyState) … … 74 74 getMolecule(MoleculeById(molid)); 75 75 if (mol != NULL) { 76 if (!IsSignedOn) 77 for (channellist_t::const_iterator channeliter = channellist.begin(); 78 channeliter != channellist.end(); ++channeliter) 79 mol->signOn(this, *channeliter); 80 IsSignedOn = true; 76 owner = static_cast<const Observable *>(mol); 77 for (channellist_t::const_iterator channeliter = channellist.begin(); 78 channeliter != channellist.end(); ++channeliter) 79 owner->signOn(this, *channeliter); 81 80 } 82 81 } … … 84 83 void QtMoleculeItem::signOffFromMolecule() 85 84 { 86 const molecule * const mol = const_cast<const World &>(World::getInstance()). 87 getMolecule(MoleculeById(molid)); 88 if (mol != NULL) { 89 if (IsSignedOn) 90 for (channellist_t::const_iterator channeliter = channellist.begin(); 91 channeliter != channellist.end(); ++channeliter) 92 mol->signOff(this, *channeliter); 85 if (owner != NULL) { 86 for (channellist_t::const_iterator channeliter = channellist.begin(); 87 channeliter != channellist.end(); ++channeliter) 88 owner->signOff(this, *channeliter); 89 owner = NULL; 93 90 } 94 IsSignedOn = false;95 91 } 96 92 … … 136 132 void QtMoleculeItem::subjectKilled(Observable *publisher) 137 133 { 138 IsSignedOn = false;134 signOffFromMolecule(); 139 135 dirty = false; 140 136 } -
src/UIElements/Views/Qt4/MoleculeList/QtMoleculeItem.hpp
r009e2e2 r3e52834 40 40 public: 41 41 //!> typedef for a list of notification channels required, to know when to update 42 typedef std::list<molecule::NotificationType>channellist_t;42 typedef Observable::channels_t channellist_t; 43 43 44 44 //!> enum states whether an item's formula changed or not … … 100 100 const channellist_t &channellist; 101 101 102 //!> states whether we are still signed on to molecule103 bool IsSignedOn;102 //!> the Observable we are signed on, also indicates whether we are sign on (not NULL) 103 const Observable * owner; 104 104 105 105 //!> states that this item needs to be updated -
src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_atomcount.hpp
r009e2e2 r3e52834 15 15 16 16 #include "UIElements/Views/Qt4/MoleculeList/QtMoleculeItem.hpp" 17 18 #include "CodePatterns/ObservedValue.hpp" 17 19 18 20 #include "Descriptors/MoleculeIdDescriptor.hpp" … … 33 35 const moleculeId_t _molid, 34 36 emitDirtyState_t _emitDirtyState) : 35 QtMoleculeItem(_molid, channellist_atomcount, QtMoleculeItem::NeedsMove, _emitDirtyState) 37 QtMoleculeItem(_molid, channellist_atomcount, QtMoleculeItem::NeedsMove, _emitDirtyState), 38 molref(getMolecule()), 39 atomcount( 40 molref, 41 boost::bind(&QtMoleculeItem_atomcount::updateAtomCount, this), 42 "MoleculeItem_atomcount_"+toString(_molid), 43 updateAtomCount(), 44 channellist_atomcount) 36 45 { 37 46 // cannot call pure virtual function in QtMoleculeItem's cstor 38 47 internal_updateState(); 48 } 49 50 int updateAtomCount() const 51 { 52 const molecule * const mol = getMolecule(); 53 if (mol != NULL) 54 return mol->getAtomCount(); 55 else 56 return -1; 39 57 } 40 58 … … 44 62 void internal_updateState() 45 63 { 46 const molecule * mol = const_cast<const World &>(World::getInstance()). 47 getMolecule(MoleculeById(molid)); 48 if (mol != NULL) 49 setText(QString::number(mol->getAtomCount())); 50 else 51 setText(QString::number(-1)); 64 setText(QString::number(atomcount.get())); 52 65 } 53 66 54 67 //!> notification channels of molecule specific to this molecule item, required for update 55 68 static const QtMoleculeItem::channellist_t channellist_atomcount; 69 70 //!> temporary value for molecule 71 const molecule * const molref; 72 73 //!> contains visibility state 74 ObservedValue<int> atomcount; 56 75 }; 57 76 -
src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_formula.hpp
r009e2e2 r3e52834 18 18 #include <string> 19 19 20 #include "CodePatterns/ObservedValue.hpp" 21 20 22 #include "Descriptors/MoleculeIdDescriptor.hpp" 21 23 #include "Formula.hpp" … … 36 38 const moleculeId_t _molid, 37 39 emitDirtyState_t _emitDirtyState) : 38 QtMoleculeItem(_molid, channellist_formula, QtMoleculeItem::NeedsMove, _emitDirtyState) 40 QtMoleculeItem(_molid, channellist_formula, QtMoleculeItem::NeedsMove, _emitDirtyState), 41 molref(getMolecule()), 42 formula( 43 molref, 44 boost::bind(&QtMoleculeItem_formula::updateFormula, this), 45 "MoleculeItem_formula_"+toString(_molid), 46 updateFormula(), 47 channellist_formula) 39 48 { 40 49 // cannot call pure virtual function in QtMoleculeItem's cstor 41 50 internal_updateState(); 51 } 52 53 std::string updateFormula() const 54 { 55 const molecule * const mol = getMolecule(); 56 if (mol != NULL) 57 return mol->getFormula().toString(); 58 else 59 return std::string(); 42 60 } 43 61 … … 47 65 void internal_updateState() 48 66 { 49 const molecule * mol = const_cast<const World &>(World::getInstance()). 50 getMolecule(MoleculeById(molid)); 51 if (mol != NULL) 52 setText(QString(mol->getFormula().toString().c_str())); 53 else 54 setText(QString("")); 67 setText(QString(formula.get().c_str())); 55 68 } 56 69 57 70 //!> notification channels of molecule specific to this molecule item, required for update 58 71 static const QtMoleculeItem::channellist_t channellist_formula; 72 73 //!> temporary value for molecule 74 const molecule * const molref; 75 76 //!> contains visibility state 77 ObservedValue<std::string> formula; 59 78 }; 60 79 -
src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_name.hpp
r009e2e2 r3e52834 15 15 16 16 #include "UIElements/Views/Qt4/MoleculeList/QtMoleculeItem.hpp" 17 18 #include "CodePatterns/ObservedValue.hpp" 17 19 18 20 #include "Descriptors/MoleculeIdDescriptor.hpp" … … 33 35 const moleculeId_t _molid, 34 36 emitDirtyState_t _emitDirtyState) : 35 QtMoleculeItem(_molid, channellist_name, QtMoleculeItem::DoesNotMove, _emitDirtyState) 37 QtMoleculeItem(_molid, channellist_name, QtMoleculeItem::DoesNotMove, _emitDirtyState), 38 molref(getMolecule()), 39 name( 40 molref, 41 boost::bind(&QtMoleculeItem_name::updateName, this), 42 "MoleculeItem_name_"+toString(_molid), 43 updateName(), 44 channellist_name) 36 45 { 37 46 // cannot call pure virtual function in QtMoleculeItem's cstor 38 47 internal_updateState(); 48 } 49 50 std::string updateName() const 51 { 52 const molecule * const mol = getMolecule(); 53 if (mol != NULL) 54 return mol->getName(); 55 else 56 return std::string(); 39 57 } 40 58 … … 44 62 void internal_updateState() 45 63 { 46 const molecule * mol = const_cast<const World &>(World::getInstance()). 47 getMolecule(MoleculeById(molid)); 48 if (mol != NULL) 49 setText(QString(mol->getName().c_str())); 50 else 51 setText(QString("to be removed")); 64 setText(QString(name.get().c_str())); 52 65 } 53 66 54 67 //!> notification channels of molecule specific to this molecule item, required for update 55 68 static const QtMoleculeItem::channellist_t channellist_name; 69 70 //!> temporary value for molecule 71 const molecule * const molref; 72 73 //!> contains visibility state 74 ObservedValue<std::string> name; 56 75 }; 57 76 -
src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_visibility.hpp
r009e2e2 r3e52834 29 29 const moleculeId_t _molid, 30 30 emitDirtyState_t _emitDirtyState) : 31 QtMoleculeItem(_molid, channellist_visibility, QtMoleculeItem::DoesNotMove, _emitDirtyState) 32 { 31 QtMoleculeItem(_molid, channellist_visibility, QtMoleculeItem::DoesNotMove, _emitDirtyState) { 33 32 setFlags(flags() | Qt::ItemIsUserCheckable); 34 33 setCheckState(Qt::Unchecked);
Note:
See TracChangeset
for help on using the changeset viewer.