From git at ins.uni-bonn.de Sun Feb 7 07:06:57 2016 From: git at ins.uni-bonn.de (git at ins.uni-bonn.de) Date: Sun, 7 Feb 2016 07:06:57 +0100 (CET) Subject: [Molecuilder-devel] [SCM] branch stable updated. v1.5.1 Message-ID: <20160207060658.33B375FD6F@saturn.ins.uni-bonn.de> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "". The branch, stable has been updated via 69a4206f578e3716755e03e48a082cebd3b0db64 (commit) via 9ae11c8ffa4dc0d34f93a07bcb120ad35c686947 (commit) via 3690e473417f286de3e772d934f7ae47120b763c (commit) via d1831e68610ffad961ff27e9f13c54a4ae810a1d (commit) via e38750985965a330bae6c625523a373491b95349 (commit) via d26fb7625dde5c4fa08b01ff2fa421d45b545931 (commit) via 6a922b176cac1093a59e5316e5fc5f8b18a99813 (commit) via 9a8a6bb95a3a7a6f0fa93fc6a5b64041d47de9c7 (commit) via e39e7a39013eb9930f8d044d1a2c5297df13da96 (commit) via e3e52ab3453d1812f2502d0534b424543c3505e8 (commit) via 62d092e08dbdb67e4f00547587c38322bf8bb828 (commit) via 17e4fde191dda907bf7bd206803886c13e02d440 (commit) via 445ce6d3846182eaf130a6a73ea863d0a443e6f0 (commit) via cceb8cfe148cf346613694b5f15bde9f95e63393 (commit) via 92232f71902106c7de16c1208aa802471f88fbb1 (commit) via cee9e8b8d814bc0aaefacaf9bdc81d5ca2f2876b (commit) via b1c5f46c2e8356c3a5cb7319f77fe3e21793f787 (commit) via 0d90534c2cfcca7121d5161e6f235225bdb4c0df (commit) via 7537d191a569f0b72f4ef6db9b9ae70d575a463f (commit) via 00d815ca595052983db7c34a5f62e31c775c680e (commit) via 6e73f5af95ffb4eb1a979d776df10f17828e74f9 (commit) via ff347fc31ed5cd23e7ad30c79dd005ca9145acb2 (commit) via 20bb3b83b5704876159d8aeede5c88f78cb27559 (commit) via 94db134a7b8bcdb17a2134fe1c6ca1aed4aded49 (commit) via a06378771ff430b3ce4652d680ae761a08426668 (commit) via 59e799680d2829d1437a7c22cb6820332ca100a5 (commit) via ceaab1dbd47046505deba359f3a96512689de872 (commit) via b61bd5e8f51d73a916f0e0a2fcd4dcadcf84dfd8 (commit) via 6227207a85bc7078c5be7985f12def5bac3f8287 (commit) via 3c6b4067162cb45d4e7ac87de102c3c8683d0a5b (commit) via 2f429ef69adf29a1bf0267338e9cecd1fb5b238c (commit) via 3b1c369fabf5039957cb70e0059346c668d0eebf (commit) via c85c2e7c1a8f696987bf232998d8eef09d386b99 (commit) via 4f8079f804337514271581f8a67c750b656f2fbb (commit) via e3c4c532b457c1d83d8ac94e74300e037b757ace (commit) via 6c30ab3e28b74461e5739b1fae84da32b57c8642 (commit) via d79ca1b812618b68d1781fb9ef48651c790f66f0 (commit) via 2a7dbe1527726bfd2bc8d6793a86c59deefc3fdf (commit) via 83a425eb7c3e26118a81096a43c79ffe877b2113 (commit) via ce98747dfef7546f47996405283750bc34c9ad5d (commit) via d200ae2e4a4f8002d6ef527fd7bfa418be477b9c (commit) via 057c8a49f208862ececbcb5c1adeaf0566d89313 (commit) via 9593d16ae241f82c256733f785601e2e0cfb9b29 (commit) via c20839bcb1af30decfbda10a56579a6b43c683be (commit) via dace6c77620134a6d8c643e895a7d94794d97f13 (commit) via 08d9df7e636ea0df65e73df162455c8f47deb448 (commit) via ba353982fb33936c0b6e4c92a14dba221dc08c56 (commit) from bff5e273091c20e062b35677796d4f022e572385 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 69a4206f578e3716755e03e48a082cebd3b0db64 Author: Frederik Heber Date: Thu Jan 21 13:48:19 2016 +0100 Set version to 1.5.1. - MoleCuilder library is now 15:1:0. - Codename "Volleyball" (the 5-1 formation in volleyball has only a single setter with five possible attackers). commit 9ae11c8ffa4dc0d34f93a07bcb120ad35c686947 Author: Frederik Heber Date: Sat Feb 6 23:38:33 2016 +0100 DEBIANFIX: requiring libcodepatterns instead of ..-dev variant. commit 3690e473417f286de3e772d934f7ae47120b763c Merge: d1831e6 62d092e Author: Frederik Heber Date: Tue Feb 2 18:50:29 2016 +0100 Merge branch 'Enhancing_Interdistance' into Candidate_v1.5.1 commit d1831e68610ffad961ff27e9f13c54a4ae810a1d Merge: e387509 b61bd5e Author: Frederik Heber Date: Tue Feb 2 18:50:22 2016 +0100 Merge branch 'Fix_debianpackage' into Candidate_v1.5.1 commit e38750985965a330bae6c625523a373491b95349 Merge: d26fb76 dace6c7 Author: Frederik Heber Date: Sun Jan 31 13:47:23 2016 +0100 Merge branch 'Fix_molecuilderguitest_with_valgrind' into Candidate_v1.5.1 commit d26fb7625dde5c4fa08b01ff2fa421d45b545931 Merge: 6a922b1 2f429ef Author: Frederik Heber Date: Sun Jan 31 13:47:12 2016 +0100 Merge branch 'Better_HBondDistances' into Candidate_v1.5.1 commit 6a922b176cac1093a59e5316e5fc5f8b18a99813 Merge: 9a8a6bb e39e7a3 Author: Frederik Heber Date: Sun Jan 31 13:47:04 2016 +0100 Merge branch 'Molecule_Enhanced_BoundingBox' into Candidate_v1.5.1 commit 9a8a6bb95a3a7a6f0fa93fc6a5b64041d47de9c7 Merge: 08d9df7 ceaab1d Author: Frederik Heber Date: Sun Jan 31 13:46:56 2016 +0100 Merge branch 'AtomAlwaysHasMolecule' into Candidate_v1.5.1 commit e39e7a39013eb9930f8d044d1a2c5297df13da96 Author: Frederik Heber Date: Mon Aug 31 14:38:50 2015 +0200 Implemented more efficient per-molecule bounding box information. - molecule now has internal bimaps to know the extent of itself in a cheap way, right map needs to be multiset_of to allow for non-unique values. - moved BoundingBoxInfo from GLMolObject to molecule. - is itself a Cacheable and is requested from GLMoleculeObject_molecule on new channel BoundingBoxChanged. - Cacheable listens to AtomInserted, AtomRemoved, and AtomMoved. - in molecule::changeAtomId() we also change BoundingBoxSweepingAxis entry. commit e3e52ab3453d1812f2502d0534b424543c3505e8 Author: Frederik Heber Date: Sat Jan 30 18:46:50 2016 +0100 FIX: BondGraph::Createdjacency compare atoms on position in memory. - this caused every and again failures in tests as an atom with an earlier id might end up at a "later" memory position resulting in flipped positions in e.g. PDB CONECT entries (regression tests molecules remove failed). ----------------------------------------------------------------------- Summary of changes: LinearAlgebra-debug.pc.in | 2 +- MoleCuilder.pc.in | 1 + configure.ac | 56 +++-- debian/changelog | 16 +- debian/control | 18 +- debian/copyright | 2 +- m4/ax_codepatterns.m4 | 14 +- m4/qwt.m4 | 6 + makeDebianPackage.sh | 3 +- src/Actions/AtomAction/AddAction.cpp | 113 ++++++--- src/Actions/AtomAction/AddAction.def | 4 +- src/Actions/AtomAction/SaturateAction.cpp | 2 +- .../AnalyseFragmentationResultsAction.cpp | 40 +++- .../FragmentationAction/FragmentationAction.cpp | 15 +- .../FragmentationAutomationAction.cpp | 8 +- .../FragmentationAutomationAction.def | 11 +- .../WorldAction/SetBoundaryConditionsAction.def | 2 +- src/Atom/atom.cpp | 5 +- src/Element/element.cpp | 4 +- src/Element/elements_db.cpp | 50 ++-- src/Element/unittests/ElementUnitTest.cpp | 4 +- .../Automation/ResultContainer_impl.hpp | 2 +- .../Automation/VMGFragmentController.cpp | 9 +- .../Automation/VMGFragmentController.hpp | 4 +- src/Fragmentation/Exporters/ExportGraph_ToJobs.cpp | 2 +- src/Fragmentation/Exporters/SaturatedBond.cpp | 6 +- src/Fragmentation/Interfragmenter.cpp | 258 ++++++++++++++------- src/Fragmentation/Interfragmenter.hpp | 72 +++++- src/Fragmentation/Makefile.am | 7 - .../Containers/FragmentationLongRangeResults.cpp | 50 +++- .../Containers/FragmentationLongRangeResults.hpp | 19 +- .../Containers/FragmentationShortRangeResults.cpp | 2 +- .../Summation/Containers/MPQCData.hpp | 13 +- .../Summation/Containers/MPQCDataFused.hpp | 4 +- src/Fragmentation/Summation/Containers/VMGData.cpp | 4 +- src/Fragmentation/Summation/Containers/VMGData.hpp | 13 +- .../Summation/Containers/VMGDataFused.hpp | 10 +- .../Summation/Containers/VMGDataMap.hpp | 42 +++- .../Summation/Containers/VMGData_printKeyNames.hpp | 5 +- .../Summation/Converter/DataConverter.hpp | 39 +++- src/Fragmentation/Summation/Makefile.am | 7 - .../Summation/SetValues/FragmentForces.cpp} | 82 ++++--- .../Summation/SetValues/FragmentForces.hpp | 71 ++++++ src/Fragmentation/Summation/SetValues/Makefile.am | 2 + src/Graph/BondGraph.hpp | 12 +- src/Jobs/ChargeSmearer.cpp | 166 +++++++++++++ src/Jobs/ChargeSmearer.hpp | 141 +++++++++++ src/Jobs/InterfaceVMGJob.cpp | 59 +++-- src/Jobs/InterfaceVMGJob.hpp | 6 + src/Jobs/MPQCCommandJob.cpp | 4 +- src/Jobs/Makefile.am | 9 +- src/Jobs/VMGJob.cpp | 8 +- src/Jobs/VMGJob.hpp | 8 +- src/Jobs/WindowGrid_converter.cpp | 61 +++-- src/Jobs/WindowGrid_converter.hpp | 3 +- src/Makefile.am | 2 +- src/Parameters/Specifics/Value_element.cpp | 14 +- src/Parameters/Specifics/Value_elements.cpp | 16 +- src/Parser/MpqcParser.cpp | 13 ++ src/Parser/MpqcParser_Parameters.cpp | 24 ++ src/Parser/MpqcParser_Parameters.hpp | 14 ++ src/Parser/unittests/ParserMpqcUnitTest.cpp | 4 + src/UIElements/CommandLineUI/CommandLineParser.cpp | 4 +- .../Query/ElementCommandLineQuery.cpp | 15 +- .../Query/ElementsCommandLineQuery.cpp | 43 +++- src/UIElements/Makefile.am | 42 +++- src/UIElements/Views/Qt4/Plotting/Makefile.am | 30 ++- .../Views/Qt4/Qt3D/GLMoleculeObject_molecule.cpp | 12 +- .../Views/Qt4/Qt3D/GLMoleculeObject_molecule.hpp | 27 +-- src/World.cpp | 2 +- src/controller_MPQCCommandJob.cpp | 2 +- src/molecule.cpp | 113 +++++++-- src/molecule.hpp | 75 ++++++ tests/GuiChecks/atlocal.in | 1 + tests/Python/AllActions/options.dat | 1 + tests/regression/Atoms/Add/post/test.in | 1 + tests/regression/Atoms/Add/post/test.pdb | 2 +- tests/regression/Atoms/Remove/post/test.in | 1 + .../Atoms/Saturate/post/saturated_carbon.xyz | 10 +- .../Atoms/Saturate/post/saturated_nitrogen.xyz | 8 +- tests/regression/Parser/Mpqc/post/doublewater.in | 1 + tests/regression/Parser/Mpqc/post/empty.in | 1 + tests/regression/Parser/Mpqc/post/test.in | 1 + tests/regression/Parser/Mpqc/post/testCLHF.in | 1 + tests/regression/Parser/Mpqc/post/testCLKS.in | 1 + tests/regression/Parser/Mpqc/post/testMBPT2.in | 1 + tests/regression/Parser/Mpqc/post/testMBPT2_R12.in | 1 + tests/regression/Parser/Mpqc/pre/testCLHF.in | 1 + tests/regression/Parser/Mpqc/pre/testCLHF_n.in | 1 + .../Parser/Mpqc/pre/testCLHF_n_ascend_ids.in | 1 + .../Parser/Mpqc/pre/testCLHF_n_mixed_ids.in | 1 + tests/regression/Parser/Mpqc/pre/testCLKS.in | 1 + tests/regression/Parser/Mpqc/pre/testMBPT2.in | 1 + tests/regression/Parser/Mpqc/pre/testMBPT2_R12.in | 1 + tests/regression/Parser/Mpqc/pre/water.in | 1 + .../Parser/SetParameters/Mpqc/post/testCLHF.in | 1 + .../Parser/SetParameters/Mpqc/pre/testCLHF.in | 1 + 97 files changed, 1638 insertions(+), 431 deletions(-) copy src/{Jobs/MPQCJob.cpp => Fragmentation/Summation/SetValues/FragmentForces.cpp} (50%) create mode 100644 src/Fragmentation/Summation/SetValues/FragmentForces.hpp create mode 100644 src/Jobs/ChargeSmearer.cpp create mode 100644 src/Jobs/ChargeSmearer.hpp hooks/post-receive -- From git at ins.uni-bonn.de Sun Feb 7 07:06:58 2016 From: git at ins.uni-bonn.de (git at ins.uni-bonn.de) Date: Sun, 7 Feb 2016 07:06:58 +0100 (CET) Subject: [Molecuilder-devel] [SCM] annotated tag v1.5.1 created. v1.5.1 Message-ID: <20160207060658.410805FD6E@saturn.ins.uni-bonn.de> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "". The annotated tag, v1.5.1 has been created at 8628c5ce0731da346d2e96b8261e2218d4b3667b (tag) tagging 69a4206f578e3716755e03e48a082cebd3b0db64 (commit) replaces v1.5.0 tagged by Frederik Heber on Sat Feb 6 23:39:44 2016 +0100 - Log ----------------------------------------------------------------- Incorporated libcodepatterns rename and other fixes for debian packaging. More efficient bounding box in molecule, effectively O(log N). Enhanced hbond distances with more values and consolidated from optimization calculations. VMG forces now are also working for the long-range part. Interdistance now combines couples of fragments till a given order. Smearing of electronic charge distributions greatly improves electronic long-range component. This version contains the following branches: 69a4206 Candidate_v1.5.1 (setting version and updating debian information) 62d092e Enhancing_Interdistance (combining two fragments up to given order and additional smearing of electronic charge component) 7537d19 Fix_VMGForces (long-range forces are now stored and written to file) b61bd5e Fix_debianpackaging (various fixes for creating debian package) dace6c7 Fix_molecuilderguitest_with_valgrind (fix to guitest and valgrind) 2f429ef Better_HBondDistances (more values and also taken from VSpeShape optimization calculations) e39e7a31Molecule_Enhanced_BoundingBox (more efficient way of maintaining a good bounding box of each molecule) ceaab1d AtomAlwaysHasMolecule (atom always associated with a (possibly new) molecule to make it always visible in GUI) 08d9df7 Rename_libcodepatterns (renaming codepatterns -> libcodepatterns) Frederik Heber (47): Package CodePatterns is now called libcodepatterns. FIX: Rename codepatterns -> libcodepatterns. FIX: tests/GuiChecks/atlocal lacked valgrind variable. FIX: Shared libraries's Makefile.am rules are now consistent. FIX: Picking maximum axis length in ExportGraph_ToJobs for MPQCJob. FIX: When there's just a single fragment, don't remove the fullsolution. Added new SetValues FragmentForces. Added extraction of long-range forces from VMGData's array f. Split off sampled_potential im VMGDataMap_t into separate fusion container. FIX: Help on SetBoundaryConditionsAction did not have capitalized condition name. FIX: SaturateAction would use double instead of single hydrogen bond length. Assertion in SaturateBond now states element. MpqcParser additionally allows to save optimization jobs. Added Hbonddistance and -angle for sodium (Na). FIX: Element's HBondDistance and HBondAngle were not initialized as -1. Entered HBondDistance results from VSpeShape into elements_db. Elements are now parsed as string (and tried for being int). Changed debian files to heber at molecuilder.com and changed boost dep. Added all required libboost.. to Build-depends. Fixed levmar m4 to use pkgconfig and locate. AddAtom now adds a molecule (atom always associated with a molecule). FIX: World needs to first destroy the atom, then release its ids. FIX: Removed double coding in molecule::erase(). Again changes to obtain correct longrange forces, also forces are optional. MPQCData now also uses FragmentForces (instead of typedef forcevector). Added gathering of full and longrange forces into extra file. Added debugging changes to InterfaceVMGJob on force summation. FIX: Need to divide by global number of particles, when summing later, in ExportSolution. Removing setting net force to zero and setting hasForce to true. Exracted several functions out of Interfragmenter::operator(). Interfragmenter now combines two fragments up to (in sum) till MaxOrder. Added Interfragmenter::findLargestCutoff() to find largest Rcut not causing additional inter-fragments. Adding warning when inter-distance is given less then minimum required rcut. Added ChargeSmearer that is only compiled for CONDVMG. Modified WindowGrid_converter::addWindowOntoGrid(): first reset, then write values. Added new option DoSmearElectronicCharges to FragmentationAutomationAction. Rewrote ChargeSmearer to use visitor pattern. FIX: BondGraph::Createdjacency compare atoms on position in memory. Implemented more efficient per-molecule bounding box information. Merge branch 'AtomAlwaysHasMolecule' into Candidate_v1.5.1 Merge branch 'Molecule_Enhanced_BoundingBox' into Candidate_v1.5.1 Merge branch 'Better_HBondDistances' into Candidate_v1.5.1 Merge branch 'Fix_molecuilderguitest_with_valgrind' into Candidate_v1.5.1 Merge branch 'Fix_debianpackage' into Candidate_v1.5.1 Merge branch 'Enhancing_Interdistance' into Candidate_v1.5.1 DEBIANFIX: requiring libcodepatterns instead of ..-dev variant. Set version to 1.5.1. ----------------------------------------------------------------------- hooks/post-receive -- From git at ins.uni-bonn.de Sat Feb 20 10:04:36 2016 From: git at ins.uni-bonn.de (git at ins.uni-bonn.de) Date: Sat, 20 Feb 2016 10:04:36 +0100 (CET) Subject: [Molecuilder-devel] [SCM] branch Delay_MoleculeRemoved created. v1.5.1-97-g2ab346b Message-ID: <20160220090436.C98995FD70@saturn.ins.uni-bonn.de> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "". The branch, Delay_MoleculeRemoved has been created at 2ab346bcd181e1e10519dfaf059aa12f4f18f525 (commit) - Log ----------------------------------------------------------------- commit 2ab346bcd181e1e10519dfaf059aa12f4f18f525 Author: Frederik Heber Date: Tue Feb 16 09:32:23 2016 +0100 GLWorldScene also takes note of empty molecule. - this is for the case when a molecule is signalled empty before it signals ready for removal. This may happen cause the empty and the removal signal come from different sources, empty from GLMoleculeObject_molecule and removal from the board. commit d4bb8e15de0d028d802c313f15f03ab815fe52eb Author: Frederik Heber Date: Sun Feb 14 19:49:24 2016 +0100 FIX: QtObservedAtom's AtomMoleculeIndex was not informed of molecule index changes. - hence, we return the QtObservedMolecule of the molecule to which the atom is associated. And this reference is updated whenever the associated molecule changes. - getAtomMoleculeIndex() -> getAtomMolecule(). - signal renamed moleculeIndexChanged -> moleculeChanged. commit 8fac83241dd570c90c2bb0764d03605a59774f34 Author: Frederik Heber Date: Sun Feb 14 13:33:22 2016 +0100 tempcommit: Enhanced docu commit 20a1e9520ec99c1c5797e908233b65eb611adf6b Author: Frederik Heber Date: Fri Oct 23 17:21:16 2015 +0200 DROPME: Removed logging into QtLogBox for debugging. commit a9813320bbb63feb3ecdb108ca6130acd57b4fe7 Author: Frederik Heber Date: Sun Feb 14 13:30:26 2016 +0100 tempcommit: Merge with 46973b3c commit cac1c1056f4866c23d6d954fda1314581bc49778 Author: Frederik Heber Date: Sun Feb 14 13:29:24 2016 +0100 FIX: emit changed signal before moleculeEmptied. commit 46973b3c6009b987df2d1a2f18e88bc51e2b7d11 Author: Frederik Heber Date: Sat Feb 13 16:43:33 2016 +0100 GLWorldScene RemovedMolecules now uses QtObservedMolecule* as key. - moleculeId_t is not unique, a new molecule of the same id might have already been instantiated. The shared_ptrs live till the end, hence the memory address can be safely used as unique key to the respective molecule instance. - signatures of signal removeMolecule() and slots moleculeRemoved() and moleculeEmptied() changed from id to this ptr. commit c528fd1d4072d78990470faa4b0628122e9dfa36 Author: Frederik Heber Date: Sat Feb 13 16:30:05 2016 +0100 FIX: GLWorldScene's moleculesAtomRemoved was checking QtObservedAtomMap. - however, the atom may already be a different one. Also, we do not even need it as we obtain the molecule from QtObservedMolecule directly. - also, molecule may no longer be present in MoleculesInSceneMap but still in RemovedMolecules and no molecule with same id already instantiated ... commit 3f00190ead3a1e2b5aa3eb0db5f48c0f64055e39 Author: Frederik Heber Date: Sat Feb 13 15:50:41 2016 +0100 SignedOn_t in QtObservedInstanceBoard is again just a set. - we do not need multiple entries for molecule anymore. commit d595d10d97ff28d917460646b119cff66c665b20 Author: Frederik Heber Date: Sat Feb 13 15:48:14 2016 +0100 Removed last...removed in QtObservedInstanceBoard. - this does not do anything useful anymore, we may just pass the id we obtained from ObservedValuesContainer as Qt signal. commit a0e8a35992485bc183af33fdace406503ea4b49c Author: Frederik Heber Date: Sat Feb 13 15:47:51 2016 +0100 tempcommit: Removed atomDelayed stuff in QtObservedInstanceBoard's header. commit 34e47cb6848c3cda1b210a0e7f317c2a924d8bc3 Author: Frederik Heber Date: Sun Dec 13 15:22:16 2015 +0100 TEMP: Decreased waiting times in QtGUI's test mode. commit 178c147450531d80569a189fe4c34af69de4e4a5 Author: Frederik Heber Date: Wed Jan 27 22:29:01 2016 +0100 AtomInserted/Removed of QtObservedMolecule sends ptr as unique key. - this is used to associate the atom with the right molecule. This is needed in case when the molecule is deleted and a new one with the same id is created. If signals are delayed, we need to know which atomInserted/Removed signal to associated with which GLMoleculeObject_molecule. commit 2220ee136e81b70f32f8f2aa3fb5dcc0356c8fff Author: Frederik Heber Date: Wed Jan 27 22:24:07 2016 +0100 GLWorldScene places GLMoleculeObject_molecule into extra list before removal. - GLMoleculeObject_molecule sends signal when no atoms are left. - GLMoleculeObject_molecule is destroyed when signal is obtained and we have placed it in removal list before. commit c7622c49ce87c648ab2e12d8b4cc15ac6e2b1283 Author: Frederik Heber Date: Fri Jan 8 14:53:48 2016 +0100 Removed RefCounted... again. commit b9c95d65f97a99999c0747693845e4399ce64509 Author: Frederik Heber Date: Wed Jan 6 09:36:58 2016 +0100 All ..Inserted/..Removed signals now go through GLWorldScene. - this should enforce synchronicity of the signals. If we mix direct and queued connections, then this cannot be ensured. - the idea is that GLWorldScene gets all Inserted/Removed signals for atoms and molecules from the QtObservedInstanceBoard. It connects to each QtObservedMolecule and thus can call the GLMoleculeObject_molecule's atomInserted, atomRemoved functions in sequence. - removed RemovalMolecules, no longer needed. - we now enforce with mutexes that instantation of molecule and MissedStateMap do not interfere, i.e. it is always perfectly clear whether to push a signal into the Map or whether to call the function of the present GLMolObj_mol. - FIX: MoleculesInScene_mutex has not been used properly, now is. - DOCU: Updated construct qt-gu documentation with the new concept. commit db0b591344484f5d9444cdfb8463beb1f54adb6e Author: Frederik Heber Date: Thu Jan 7 17:48:51 2016 +0100 FIX: GLMoleculeObject_.. does not care whether selection state did not change. - maybe we just got the event too late and actually two changes occured in between. commit 239282d0a3f78dfb3708317c784b5d231ecd4fbf Author: Frederik Heber Date: Thu Jan 7 13:00:38 2016 +0100 FIX: Making sure that atomInserted is received from same source in GLWorldScene and GLMoleculeObject_molecule. - otherwise we cannot guarantee that the events are processed in order. commit 391db539061b5ea01288e04e0be7c2af7c038d28 Author: Frederik Heber Date: Tue Jan 26 17:16:19 2016 +0100 FIX: indexChanged from QtObserved... transmit both old and new id. commit aaff9d0b03031d940f0393147343bae28357e429 Author: Frederik Heber Date: Thu Jan 7 11:28:10 2016 +0100 QtObserved... now count the subjectKilled() from the containes values. - we no longer loop this through the ObservedValuesContainer. - also initObservedValues() is not longer a static function but now used inside the QtObserved..'s cstor. commit 9effd271fd2b270a2b85bada2ab23aa04c779b6e Author: Frederik Heber Date: Wed Jan 6 18:34:22 2016 +0100 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. commit c0eb7d3e362158cb0c0b7fa9aad6c8fe73f97fe1 Author: Frederik Heber Date: Wed Jan 6 18:11:16 2016 +0100 Combined checks into checkRemoval() in ObservedValuesContainer. commit 6af47207350e353430f1f7797d21b49ff4334644 Author: Frederik Heber Date: Tue Jan 5 23:26:38 2016 +0100 FIX: Added mutex to ObservedValuesContainer to ensure atomic access. commit 0763d47c85d68f48b090823b77f9880a69cdd8a0 Author: Frederik Heber Date: Tue Jan 5 23:24:10 2016 +0100 QtElementList must not use atom but only QtObservedAtom. commit f28676387f23eef7e5309120f4d23161308b9f0f Author: Frederik Heber Date: Tue Jan 5 23:22:56 2016 +0100 CHECK: Don't admonish empty missed states in GLWorldScene? - skipped in subsequent loop anyway. commit eac949c47715473df2e2eab0d7ed6010ce0209d7 Author: Frederik Heber Date: Tue Jan 5 23:22:13 2016 +0100 GLMoleculeObject_atom and .._molecule don't get QtObserved... right away. - needs to be checked for empty instance first. commit 49304ec9c3204630839da64e6ab794283945030c Author: Frederik Heber Date: Tue Jan 5 23:20:13 2016 +0100 CHECK: tempcommit: Removed Cacheable of TesselationHull for GLMoleculeObject_molecule. - this may cause hiccups with the observed instances with the O/O system and makes no sense anyway as it gets updated all the time? commit af8b2740086778f0b354ff713720f2fc4656756b Author: Frederik Heber Date: Tue Jan 5 23:19:00 2016 +0100 QtMoleculeList must not use QtObservedMolecules in lists but only request them on need. commit bf9bae4a21412ed9f848c008daf4da68a17341ed Author: Frederik Heber Date: Tue Jan 5 23:17:39 2016 +0100 ObservedValuesContainer now asserts that observedinstance has been requested at least once before deletion. - this should prevent that the observed instance is instantiated and deleted before the signal has gotten through to the GUI. - get() returns NULL when not present. commit f9ea954a9527c505fe36e310ee6f51bbade0055b Author: Frederik Heber Date: Wed Dec 30 19:42:38 2015 +0100 FIX: ObservesValuesContainer uses internal struct for two iterators for observedvalues. - we need these two additional iterators (apart from the deque) in order to step through the created instances one-by-one as they are expected in this manner by the QtGUI which, though lacking behind, is trying to process all the seen events. commit 0ce43805b209245ae6fcbc802c627f0d009497be Author: Frederik Heber Date: Wed Dec 30 15:28:53 2015 +0100 FIX: ObservedValuesContainer uses deque for internal observed values. - it may happen that an atom is created before the _visual representation_ got destroyed (and hence it's QtObserved... would be destroyed). In that case the QtObservedInstanceBoard fails with an assertion. - Now, we use a deque. At the front end, we have all the observedvalues that have not yet been deleted, on the back end we have the observedvalues to the currently active instance. - removed unused getRefCount(). commit 5da4fd30e48f36d4ecd9bac041f73a2e6ac8887b Author: Frederik Heber Date: Mon Dec 28 20:20:43 2015 +0100 Removed QtSelectionChangedAgent. - it is no longer used. We either listen to molecule/atom's selection changes directly or to all of them via the respective relay, i.e. MoleculeObserver. commit 9a1db189144ea0b278de8d9c0ad29d385949ebbb Author: Frederik Heber Date: Mon Dec 28 20:14:32 2015 +0100 Removed QtSelectionAgent usage in QtMoleculeListView. - instead we subscribe to MoleculeObserver directly. commit 415db69ecabe7f555661f1e7579b0b8d075c3a64 Author: Frederik Heber Date: Mon Dec 28 18:12:08 2015 +0100 Removed QtSelectionUsage in GLWorldView and related. - instead GLMoleculeObject_.. directly use observedvalue to get notified when they have been (un)selected. commit e4b42e22f8a68f638ef2a9df3aa12c10386cbb9b Author: Frederik Heber Date: Mon Dec 28 12:43:34 2015 +0100 Added ObservedValue for selection status of atoms and molecules to QtObserved... commit e6c198b4be118612cea65aa257f28621f5b16701 Author: Frederik Heber Date: Sun Dec 13 17:06:18 2015 +0100 FIX: QtObservedInstanceBoard needs to allow delayed atomInserted from World. - we may get the notification from molecule before we get the insertion from the World. Hence, we store any ids obtained from molecule insertion if the set of the new atom's observed values have not been generated yet. commit 04e569ce2099047b583a12650c5ebcde3a49961b Author: Frederik Heber Date: Sun Dec 13 15:22:39 2015 +0100 QtInfoBox disconnects signals. commit e7bb881ed9f58e2c22dd0869961b5bd9a55016b5 Author: Frederik Heber Date: Sun Dec 13 15:15:58 2015 +0100 FIX: ObservedValue need to be removed with a bit of delay. - ObservedValue has higher priority than e.g. QtObservedAtom. Hence, will also receive subjectKilled() before QtObservedAtom does. But right after all of these are received(), ObservedValueContainer will remove the instance which drops the shared ptr's count to zero (because Observer/Observables do not store shared_ptr but only ptrs!) and its dstor is called. Therefore, QtObservedAtom cannot access the ObservedValue any longer and this is against how the design was meant to be (ObservedValue lives at least as long as respective side in Qt needs access to its information). commit 4ba1b53e8d95205782eda4a858e07c33adfac38a Author: Frederik Heber Date: Mon Jan 25 15:15:23 2016 +0100 QtObservedAtom, ..Molecule, and ObservedValue_wCallback have flag to indicate invalid callback. - due to Qt's signal/slot destruction, which follows no proper order, we need to invalidate callback when their owners are destroyed. Each has a note-function() that flips the boolean to show the callbacks invalidity. - TODO: So far this is not nice, especially w.r.t to ObservedValue_wCallback because of templatization. We cannot place them in a loop and this makes this very error-prone once more Values are added ... commit 6f11c4fe477cec9427f318924dd3d0369c4d6612 Author: Frederik Heber Date: Fri Oct 30 17:07:39 2015 +0100 FIX: Qt's parent properly set from QtMainWindow's point of view. commit a0cf64018031e9496781d57fbef8cdaec91e6cba Author: Frederik Heber Date: Fri Oct 30 15:07:55 2015 +0100 Equipped QtInfoBox with mutex and split clearTabs(). - this avoids a memory corruption with signal/slots as the first atomRemoved() signal also removes the molecule and hence the QtObservedMolecule ptr who is the recipient of the subsequent moleculeRemoved() signal. commit c65382fc37f5b6f7c05ab057f888984bc5e4b599 Author: Frederik Heber Date: Fri Oct 30 12:54:29 2015 +0100 FIX: All ObservedValue getters now return const references. - this should avoid some unnecessary copying. commit 91832398adba0d5709e15d89cda4f6e24bea5851 Author: Frederik Heber Date: Fri Oct 30 12:06:30 2015 +0100 QtInfoBox now obtains information completely from QtObservedInstanceBoard and ObservedValues. commit e85a5ad57177978407f0a20c917d463485ea19bd Author: Frederik Heber Date: Wed Jan 20 21:02:22 2016 +0100 Extended QtObservedMolecule by Center, NonHydrogenCount, and BondCount. commit f2bb5d23965a2ee076a0defa547b06efbb7cf0d3 Author: Frederik Heber Date: Wed Jan 20 21:04:06 2016 +0100 Extended QtObservedAtom by Name and Molecule. commit 3cc1074b484f32fa2adb1c83e1af02ccdb23daf2 Author: Frederik Heber Date: Mon Dec 28 07:15:14 2015 +0100 Removed molecule's AboutToBeRemoved channel. commit a8b0d1002ec1a33d463ce79203c7659ea1342d5f Author: Frederik Heber Date: Thu Oct 29 23:21:30 2015 +0100 All QtMoleculeItem now heed QtObservedMolecule and QtMoleculeList takes InstanceBoard. - QtMoleculeItems no longer use Observer/Observable but get updates via signal/slot from QtObservedMolecule. - QtMoleculeList listens to its molecule signals. commit c5224fe04c74e9e8ba4b0d4de21c886a9a92f6e6 Author: Frederik Heber Date: Thu Oct 29 22:55:51 2015 +0100 Added AtomCount and FormulaChanged to QtObservedMolecule. commit 132ffdd62ee515e3d415cd8a3638a22137276828 Author: Frederik Heber Date: Thu Oct 29 19:38:02 2015 +0100 FIX: ObservedValue_wCallback needs to call callback() only on last channel's signOff(). commit 47a352f3cec8a123ee22d88ecee2d1d041a4a828 Author: Frederik Heber Date: Thu Oct 29 15:41:13 2015 +0100 ObservedValuesContainer now stores QtObserved.. instances directly. - we need this as QtObservedAtom and ..Molecule must signOn() to World's instance right away. If later requests to ObservedValuesContainer::get() cause new signOn()s, then these might fail. - we now work with QtObserved..::ptr directly everywhere. commit d60447008a45476644c41a76ca5613715cd8f8d1 Author: Frederik Heber Date: Mon Jan 25 15:07:59 2016 +0100 Moved countSubjectKilled related code from QtObservedInstanceBoard into ObservedValuesContainer. - this avoids some more duplicated code. commit ea7aa119dca805ba2726e17315bfed05895acfdc Author: Frederik Heber Date: Thu Oct 29 13:52:29 2015 +0100 Extracted all ObservedValue functionality out of GLMoleculeObject_molecule. - see previous commit for explanations. commit 4f4f230d4c5db356e10b4d799e2c8b413773a772 Author: Frederik Heber Date: Thu Oct 29 11:46:45 2015 +0100 Extracted all ObservedValue functionality out of GLMoleculeObject_atom. - i.e. GLMoleculeObject_atom is reduced to simple displaying, updated via Qt signals. These signals are connected to a QtObservedAtom which in turn now contains all the ObservedValue functionality. - this is preparatory for having a single (Observed)Atom as representer of its associated World's atom in the QtGui part of the code. commit 59470e71db3b190bd2a12c44b61c4de5c616916c Author: Frederik Heber Date: Thu Oct 29 10:52:10 2015 +0100 Extracted functions handling refcounting of ObservedValues into ObservedValuesContainer. - this avoids a lot of code duplication. commit a4276876e2a9d6c9687febd0327f4688a63e1da2 Author: Frederik Heber Date: Wed Oct 28 14:57:10 2015 +0100 Added rudimentary getter and returner for ObservedAtom/..Molecule() to InstanceBoard. commit f6f122b85ec7c94026afa0f4b08367484aae48d7 Author: Frederik Heber Date: Wed Oct 28 14:24:10 2015 +0100 Added QtObservedAtom and ..Molecule() instances. commit 21d0652520527d71c5cea3ba8e2681f4f08b9bce Author: Frederik Heber Date: Wed Oct 28 14:23:09 2015 +0100 Moved and renamed QtInstanceInformationBoard -> QtObservedInstanceBoard. - this is preparatory for adding ObservedAtom and ObservedMolecule classes that combine all observed information on either type. commit ee5160a077a48901ce7f835e992ed264db812227 Author: Frederik Heber Date: Mon Jan 25 10:09:33 2016 +0100 Changed connections between GLWorldScene, GLWorldView and GLMoleculeObject_molecule. commit a65e0b67ed0a6b6fd6b35cb956b20c0d4f9ad33d Author: Frederik Heber Date: Mon Jan 25 12:09:33 2016 +0100 GLMoleculeObject_atom, _bond, _molecule all use QtInstanceInformationBoard passed via GLWorldScene. commit c85bb1e66c4f9743fdf0a2b8870aa26fc38e431a Author: Frederik Heber Date: Fri Oct 23 17:13:14 2015 +0200 FIX: QtMoleculeItem not signing off after subjectKilled(). commit 9140be0febff13d22ce6bcb71d21138fddcd35bf Author: Frederik Heber Date: Sat Oct 17 17:42:17 2015 +0200 Added QtInstanceInformationBoard that handles ObservedValues through the QtGui interface. - this is meant as a instantiator of all ObservedValue's needed by QtGui for representing information from the World. The ObservedValue's are instantiated separately w.r.t. to the instance for the visual representation. This is light-weight and can be performed in the same thread, while the visual representation's instantiation can be done elsewhere and there we just need to access the ready ObservedValue's that exist as long as they are needed by the QtGui. commit f57e61aaf0b459993a691b4a9cff578b6345c375 Author: Frederik Heber Date: Mon Jan 25 12:01:10 2016 +0100 Changed GLMoleculeObject_...:countSubjectKilled() to taking id parameter. - this is a precursor for when the ObservedValues reside with QtInstanceInformationBoard. - enhanced ObservedValue_wCallback to take a bound getIndex function(). - additionally, we route internally to ObservedValue::get() and this gets us out of the painful situation where we need to supply an index getter to the ObservedValue that monitors the index (and hence must be present already to bind to its get function). commit 6b45920ff0a52121d125e701e7fb4d85ed58fd98 Author: Frederik Heber Date: Sat Oct 17 15:28:19 2015 +0200 GLMoleculeObject_bond's ObservedValues is now all static. - again, the same change as with .._molecule and .._atom. commit 6eaa82e7a26f048c6512b94dea2eb302298822c7 Author: Frederik Heber Date: Sat Oct 17 14:55:30 2015 +0200 GLMoleculeObject_atom's ObservedValues is now all static. - this is equivalent to the changes to GLMoleculeObject_molecule. commit 321c7dea664c07848c54013a3e15d9ecf01fe4fb Author: Frederik Heber Date: Sat Oct 17 14:40:14 2015 +0200 GLMoleculeObject_molecule's ObservedValues is now all static. - this is preparatory for extracting their instantation to an external class InstanceInformationBoard that keeps track of the lives of instances in the World that are needed inside QtGui (e.g. for visual representation). commit 05ba5b55fb52838ab990c6dd31b204452e6bcb0a Author: Frederik Heber Date: Sat Oct 17 14:18:30 2015 +0200 FIX: GLMoleculeObject_molecule::updateAtoms() used DisplayAtoms directly. - we need an old and a new set, i.e. the difference needs to be discernable between updates. However, so far we updated the old set directly, too. commit cc3c8e1e36354a11e275092cff6288dad75ad8a9 Author: Frederik Heber Date: Fri Oct 23 17:17:43 2015 +0200 FIX: QtInfoBox only updatePage() when ref still present (no subjectKilled() yet). commit 10bbe9b776c5a20167fd7cc820200b66ef1588c3 Author: Frederik Heber Date: Fri Oct 16 13:51:16 2015 +0200 FIX: All ObservedValue's of GLMoleculeObject_atom/bond/molecule wrapped into vector. - the idea is that a GLMoleculeObject may only remove itself _after_ each and every contained Observer has gotten the subjectKilled() signal from the Observables. Only then will destroying the Object and its members thereby not cause any signOff() which try to access Observables or their channels which are no longer present. This can be imagined as a graph where we have to start destroying object at the very bottom. - This is the avoid the following conflict: A superior object gets note of a molecule to be removed. It sends the visual representation a signal to remove itself, which causes it to use signOff(). On a parallel track (in another thread) we have the observed object calling subjectKilled() to inform any Observer about its immediate destruction. These two tracks collide. Now, we let first pass all subjectKilled() and when the last Observable has gotten its signal, we begin destroying the visual rep. - rerouted signal/slots accordingly. commit 8658fc191ae135c34f2d21313b756c55ffb61e6f Author: Frederik Heber Date: Fri Oct 16 10:59:22 2015 +0200 FIX: GLMoleculeObject_molecule::subjectKilled() should not call deactivateObserver(). - we just take note that we are signedOff. commit f3bd2cebfbc61b098881c201fa969063c01f349b Author: Frederik Heber Date: Fri Oct 16 10:58:31 2015 +0200 FIX: GLWorldScene has additional moleculePrepared... slots and signals. - i.e. we first insert into MoleculesInMap via direct connection and then signal is emitted (queued) to construct the actual GLMoleculeObject_molecule. commit 429e503bff3e82beb64c71600ed21b706bd81c22 Author: Frederik Heber Date: Fri Oct 16 10:56:48 2015 +0200 FIX: GLMoleculeObject_molecule still contained hack to get upper bound on molecule's bounding box. - we don't longer need the hack as we have the molecule cleverly updating the box and an ObservedValue. commit df79560385cd2d9459b42a93e582168727c21890 Author: Frederik Heber Date: Thu Oct 15 11:08:37 2015 +0200 QtFavoriteActions uses ObservedValue for checking last queued action's name. commit e009eea1371a8dd4558fbc793246af4e1e9d0f24 Author: Frederik Heber Date: Wed Dec 30 11:19:10 2015 +0100 Deleted MoleculeListClass. - finally ... some veeeery old legacy stuff is gone. commit 2ed9a4294dd146843081650daa89354695eec349 Author: Frederik Heber Date: Wed Dec 30 11:02:58 2015 +0100 Removed molecules_deprecated from World and unnecessary includes of MoleculeListClass and all insert/erase. - this goes along the lines of removing "remove me when we don't need MoleculeCistClass anymore". commit 4d216e26ad3517403f70279e309b2ee4c6842ee2 Author: Frederik Heber Date: Wed Dec 30 11:16:33 2015 +0100 Replaced MoleculeListClass in ExportGraph by vector of molecules. - AddHydrogenCorrection did never really worked and is dropped (was commented out in .._ToFiles anyway). commit 33a5aabd092cc7765f707789b6ba4a3490028790 Author: Frederik Heber Date: Wed Dec 30 11:06:45 2015 +0100 Replaced MoleculeListClass in analysis_bonds by vector of molecules. - TESTFIX: also adapted CountBondsUnitTest. commit b57db5a78544db163b3c6275983ec9b213a26827 Author: Frederik Heber Date: Wed Dec 30 11:06:27 2015 +0100 Removed FindEmbeddingHole which lacked implementation so far. commit d83b52100dfec33f4ddd2815582827bace607492 Author: Frederik Heber Date: Tue Dec 29 22:41:30 2015 +0100 FIX: molecule's BoundingBoxSweepingAxis used unordered set of atomids. - this needs to be an ordered set to prevent O(N) access on updating values. commit c432d18f42e325a2f169a2653fd49bdfc32bc24a Author: Frederik Heber Date: Tue Dec 29 20:50:22 2015 +0100 Removed molecule's resetFormula() and doCountBonds() and doCountNoNonHydrogen(). - we don't do these as Cacheables anymore. commit 8969b61553800ba52878de3b91c89c6f23fa1090 Author: Frederik Heber Date: Tue Dec 29 20:49:43 2015 +0100 Molecule now has maps with old values for bond counts and element number per atom. - this allows to update the total bond count and the formula in an O(N log N) fashion. commit 6cb80f99db5a2450db0eb06fc18d7e8c8a147d00 Author: Frederik Heber Date: Wed Dec 30 10:27:51 2015 +0100 atom now uses associate... and disassociatedAtomWithMolecule(). - this is used to gather all functions that need to be called when a new atom joins a molecule such as signing on to certain channels or updating certain internal values of the molecule. commit 478f022aa5d48250ed57122715799e60483eb0be Author: Frederik Heber Date: Tue Dec 29 15:23:09 2015 +0100 Extracted common code out of Molecule/AtomObserver into EntityObserver. - also all channels are generated as a static vector via boost::assign. - removed AtomObserverStub, does not work anymore with extracted EntityObserver. commit 65ca0d1d41b6372eed995b8e5a54c2b5e0f6b615 Author: Frederik Heber Date: Mon Dec 28 16:10:47 2015 +0100 Added MoleculeObserver as pendant to AtomObserver for molecules. commit d039bd4461ac831022e029952a45b02e44ad5b28 Author: Frederik Heber Date: Mon Dec 28 16:09:49 2015 +0100 FIX: AtomObserver was not up-to-date with respect to atom's channels. commit bef4ed290985bf049b3536347e3c5e79836e5364 Author: Frederik Heber Date: Mon Dec 28 07:28:10 2015 +0100 Added template functions to (un)set vector of instances in a row. commit b4c2efb00fce28e93f0bcb27e2a40f04ecab3449 Author: Frederik Heber Date: Mon Dec 28 07:18:42 2015 +0100 Added select() and unselect() functions to atom and molecule, also SelectionChanged channel. - this allows for more specific selection changs to be signalled. - this extends the current World's SelectionChanged channel that informs about selection changes by a more fine-grained/instance-specific change signalling. commit 5f2a4375a503f5f31dfa656ba5565c3ca8b2d919 Author: Frederik Heber Date: Sun Dec 27 22:08:26 2015 +0100 FIX: Fixed wrong paths for adjacency and trianglematcher in regression and GuiChecks tests. commit 9a3d6d6f5cecf9270f4ee3c29a4c29745e026d52 Author: Frederik Heber Date: Fri Oct 30 12:36:21 2015 +0100 FIX: molecuilder.py is now loaded after GUI is done initializing. - otherwise consequences of loaded session (atoms, ...) are not displayed. - originally, this was done on purpose as it is quicker to just load stuff into the world and then tell the GUI to show what's there. However, now, due to constraints with different threads, this is no longer possible. commit 5bae86fe04b56eef1124d392a765338281d24e2b Author: Frederik Heber Date: Wed Jan 20 21:02:03 2016 +0100 Added Cacheable MoleculeCenter to molecule which is cleverly updated. commit 918a6c769ce4a33562acd67bec9f9a666ad82db8 Author: Frederik Heber Date: Wed Jan 20 21:03:52 2016 +0100 Added extra signal MoleculeChanged to AtomObservable. commit 8ad68b373314b5f34d43573103b2586c095bf875 Author: Frederik Heber Date: Wed Oct 28 13:09:43 2015 +0100 AddAction and UndoRedoHelpers' AddAtomsFromAtomicInfo use recreate..(). commit 5cf34106ca5c1b4a21a25e3e9adb431e3c4d9404 Author: Frederik Heber Date: Wed Oct 28 13:08:04 2015 +0100 Added recreateAtom() and recreateMolecule() to World. - in order to overcome problems with Qt signals being delayed so much that in between sending and receiving the id of a newly instantiated atom has changed, we need to set the right id (after undo/redo commands) right away. For this, these two new functions are well-suited. commit 840d02f1fb7052798b00efee6a12f7321a6c9c33 Author: Frederik Heber Date: Fri Oct 23 17:21:37 2015 +0200 FIX: not using const ref in binding updateBoundingBox() for molecule. commit 7eec6456e9c2eb4a4374698da0f448bfa54864bc Author: Frederik Heber Date: Sat Oct 17 14:42:13 2015 +0200 FIX: World needs to first destroy the molecule, then release its ids. - this is similar to the change for the atom. commit 4965d9f2a24a4bb68714efa5b3489fe9b1452f2f Author: Frederik Heber Date: Fri Oct 16 21:48:20 2015 +0200 FIX: World::destroy..() did not emit SelectionChanged signal. commit 50c45feb1ed40d339274e6c14569d5ece8740d03 Author: Frederik Heber Date: Wed Oct 14 11:18:05 2015 +0200 FIX: Fitting domain to window on QtMainWindow's init. commit e2c2b1d3b49c0c109d15999a9c101eaf6f3bfe17 Author: Frederik Heber Date: Mon Dec 14 10:57:37 2015 +0100 World's ObservedContainer no longer observe. - This requires CodePatterns 1.3.1 from now on. - I had misunderstood what Till had planed with these ObservedContainers for a long time: I though they would cause an OBSERVE signal for every iterator step but this is not the case. Rather they accumulate all OBSERVE signals to have them fire AFTER the loop is done. This is achieved through the depth count of the observer protectors. - Sadly, this runs against what we do with the lastchangedatom. We need the information right away as we the Observer/Observable stuff does not transport any information and always updating all is way too costly. - Hence, in CodePatterns we have implemented an UnobservedIterator which is used in ObservedContainer and does not cause any OBSERVE signals. - The source of the problem was createAtom() in a loop over selectedAtoms and these atoms not getting created (w.r.t QtInstanceBoard) before the molecule's got note of it (cause they are at depth 1). ----------------------------------------------------------------------- hooks/post-receive --