From git at ins.uni-bonn.de Fri Jan 8 17:06:52 2016 From: git at ins.uni-bonn.de (git at ins.uni-bonn.de) Date: Fri, 8 Jan 2016 17:06:52 +0100 (CET) Subject: [Molecuilder-devel] [SCM] branch Fix_QtGUI_crashes_continued created. v1.5.0-250-g0921907 Message-ID: <20160108160652.2C43F5FD6F@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, Fix_QtGUI_crashes_continued has been created at 0921907155034f939032245c16467eaab6889d87 (commit) - Log ----------------------------------------------------------------- commit 0921907155034f939032245c16467eaab6889d87 Author: Frederik Heber Date: Fri Jan 8 17:05:43 2016 +0100 FIX: GLWorldScene now silently drops atomRemoved on missing molecules. - atomRemoved can never be the first state in the MoleculeMissedStateMap. Hence, we simply drop it. This may happen because moleculeRemoved comes from a different source, namely QtObservedInstanceMap, while the atomRemoved come from the QtObservedMolecule which tends to live longer than said signal. commit ec321804292a97d34bb26587e3fe2b8b1a43e678 Author: Frederik Heber Date: Fri Jan 8 16:41:41 2016 +0100 tempcommit: no need to check shared_ptr on moleculeInserted, must be valid. commit 2cdcb23f962770ee9cf471544c0581ec4c05a0b8 Author: Frederik Heber Date: Fri Jan 8 15:22:15 2016 +0100 tempcommit: Merge with ee50e14d commit d0b888a94fb428bbcc757e67be14f47893a9fd4a Author: Frederik Heber Date: Fri Jan 8 15:16:45 2016 +0100 tempcommit: Merge with ac2103d commit 09a6c97709e0408e3e5b3fcc3845937a782b96d5 Author: Frederik Heber Date: Fri Jan 8 14:53:48 2016 +0100 tempcommit: Removed RefCounted..., see e57e681 and d078781 commit ac2103d29beb835e86df5fa9cd9e9d8ef7ac8174 Author: Frederik Heber Date: Fri Jan 8 14:39:09 2016 +0100 tempcommit: Removed lastmoleculeatomremoved. - this is possible since we only need atomid on atomRemoved and no longer the molecule. commit db61f2172a50d2287def408b81b96a198ebcc4f1 Author: Frederik Heber Date: Fri Jan 8 14:32:28 2016 +0100 tempcommit: Merge with a9ea4c3 commit 9261a183d06b55cb6e1e021c14a69fa520466461 Author: Frederik Heber Date: Fri Jan 8 14:32:14 2016 +0100 Revert "FIX: QtObservedInstanceBoard needs to allow delayed atomInserted from World." This reverts commit cc163a44c3213da4172f9eac182a2c4b77bb5226. Conflicts: src/UIElements/Qt4/InstanceBoard/QtObservedInstanceBoard.cpp commit a9ea4c30536ba2ff49144db73e6dc0876a0475e3 Author: Frederik Heber Date: Fri Jan 8 11:53:41 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 8a24dbd9cd64e15defe5cc225390da901df3e7bb Author: Frederik Heber Date: Thu Jan 7 18:38:35 2016 +0100 Revert "tempcommit: Using DirectConnection for atom/mol&Inserted/Removed in GLWorldScene." This reverts commit aefccd58536b7616bb4e51dd22617a08fb9d891a. commit ddc5e15177eeb38b6816d7443d99dac43176c368 Author: Frederik Heber Date: Thu Jan 7 17:55:38 2016 +0100 tempcommit: Merge with efd477f9 commit b21b5f47b6e96b21ee1e8025470f71a1ff4450c4 Author: Frederik Heber Date: Thu Jan 7 17:52:14 2016 +0100 tempcommit: Making sure that new molecule is not already contained in MoleculesInSceneMap. Merge with ddf19b58 commit a19108d20bd3fc4a565fec5afbac157482a27831 Author: Frederik Heber Date: Thu Jan 7 17:51:24 2016 +0100 tempcommit: Moved mutex locking to begin of GLWorldScene's atomInserted. Merge with 338e3a86 commit aefccd58536b7616bb4e51dd22617a08fb9d891a Author: Frederik Heber Date: Thu Jan 7 17:50:54 2016 +0100 tempcommit: Using DirectConnection for atom/mol&Inserted/Removed in GLWorldScene. commit cec8e8a3e0446ef39961b9de5e6ea2f42129c310 Author: Frederik Heber Date: Thu Jan 7 17:50:07 2016 +0100 DROPME?: Added mutex to GLMoleculeObject_molecule. - this is to ascertain atomic access to atomInserted/..Removed. commit 74c6c813d6b4d2c251dd5c7f74565a85cb8594a8 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 efd477f9d8864134247cc14138c659f0776f6671 Author: Frederik Heber Date: Thu Jan 7 17:47:51 2016 +0100 tempcommit: FIX: indexChanged from QtObserved... transmit both old and new id. Move before 51d0c6 (~1) commit 51d0c644310219d6d5ab884b74596ee6c2139bb3 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 bbb87b0cf45b9a7a6fb0604d92e3ad9cbcaeb399 Author: Frederik Heber Date: Thu Jan 7 12:49:11 2016 +0100 tempcommit: Merge with ddf19b58 commit 8a9950837f49dee03c8b757d5f974496a247e6db Author: Frederik Heber Date: Thu Jan 7 12:34:29 2016 +0100 tempcommit: Cstors of GLMoleculeObject_... now take ref of QtObserved.. - this should avoid a copy. commit fe7089e1ff5861b194ca4c826ab98c39cbd43719 Author: Frederik Heber Date: Thu Jan 7 11:54:03 2016 +0100 tempcommit: Merge with 2d8c1fd commit 5a566cf1a755228d132e41c20fe04594a6cc29e6 Author: Frederik Heber Date: Thu Jan 7 11:52:41 2016 +0100 tempcommit: Also removed DirectConnection from atomInserted/..Removed in GLWorldScene. commit e9f6499ca33d9ef38769c22f41af92684baeea67 Author: Frederik Heber Date: Thu Jan 7 11:39:05 2016 +0100 Revert "tempcommit: GLWorldScene parses all signals as DirectConnection." This reverts commit f80eaaea3563b692eaa3e489f4b7061080a67972. commit 2d8c1fde07672454df251161b276fe5f132cff12 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 8843889c1ef190f0a24d3be6ad4380626240a0d4 Author: Frederik Heber Date: Thu Jan 7 10:58:49 2016 +0100 tempcommit: GLWorldScene::moleculeInserted used while loop for unknown reasons. - was this meant to parse one state change after the other? Makes no sense if multiple changes are checked for cancellation and effectively only a single change is treated. commit 7ba8e68ccd5a7bfd8e0c25ed3a021a48ee29a6e5 Author: Frederik Heber Date: Thu Jan 7 10:58:44 2016 +0100 tempcommit: Merge with ddf19b58 commit f80eaaea3563b692eaa3e489f4b7061080a67972 Author: Frederik Heber Date: Thu Jan 7 10:56:32 2016 +0100 tempcommit: GLWorldScene parses all signals as DirectConnection. - this should rid us of the problem that moleculeInserted is parsed far too late. Some time later me way want to split the function into two parts: one taking the direct connection and preparing the grounds and the latter function instantiating the visual representation, ... commit d6eb80f3130f333ade51f2daf89295d87ee9b6d5 Author: Frederik Heber Date: Thu Jan 7 10:51:58 2016 +0100 FIX: GLWorldScene did not remove all state changes but only last. - we multiple state changes cancelled each other we still only removed the first. This causes more atomRemoved.. than atomInsertedStates. commit bc46986001df9dd2e61d7c4b92fbdcee2c9c0f50 Author: Frederik Heber Date: Thu Jan 7 10:50:53 2016 +0100 tempcommit: Forgot to change QtMoleculeList::moleculeInserted slot to QtObservedMolecule::ptr. - this should go with the respective change to QtObservedInstanceBoard. commit ddf19b58d1ac3930b454aa85911320a28cb74550 Author: Frederik Heber Date: Wed Jan 6 18:34:22 2016 +0100 tempcommit: 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. commit 3d2e92b0639205634206ea59e81d437de844fffc Author: Frederik Heber Date: Wed Jan 6 18:33:24 2016 +0100 tempcommit: ObservedValuesContainer::get() returns NULL when not present. commit 284abf83904e93341a889f76dc81e93d76218682 Author: Frederik Heber Date: Wed Jan 6 18:12:57 2016 +0100 tempcommit: Removed RequestedObjects from ObservedValuesContainer again. - this is no longer needed since we place the QtObserved... into the emitted signal of the QtObservedInstanceBoard. commit a5689ef9efcc1f990761b481837e03460e140369 Author: Frederik Heber Date: Wed Jan 6 18:11:16 2016 +0100 tempcommit: Combined checks into checkRemoval() in ObservedValuesContainer. commit 454b7a19cf7559fb3da1718904e728cbceba08f1 Author: Frederik Heber Date: Wed Jan 6 09:36:58 2016 +0100 tempcommit: DOCU: Updated Qt docu. Not complete yet, lacks QtObservedInstanceBoard. commit 95f4a381105b7093a1ac773071f329b66b022f97 Author: Frederik Heber Date: Tue Jan 5 23:26:38 2016 +0100 FIX: Added mutex to ObservedValuesContainer to ensure atomic access. commit 5b5d9eb7fb95441ebc7ac69e3ef894dd4bf08282 Author: Frederik Heber Date: Tue Jan 5 23:24:44 2016 +0100 tempcommit: QtInfoBox checks whether QtObserved... is not empty instance. commit 9e3be15c587be3531b8a119782b3a1fc410f1057 Author: Frederik Heber Date: Tue Jan 5 23:24:10 2016 +0100 tempcommit: QtElementList must not use atom but only QtObservedAtom. commit be638d204a999992573c887e23179a07a1c7630d 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 70bf97f94e711c9cf3ababf78189ac26b86394fd Author: Frederik Heber Date: Tue Jan 5 23:22:13 2016 +0100 tempcommit: GLMoleculeObject_atom and .._molecule don't get QtObserved... right away. - needs to be checked for empty instance first. commit 3cd9923ab5c1a376ab5d1511e7dffba778f345ac 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 5392e2ba062445ba88fb6bed8402ec93ebb52995 Author: Frederik Heber Date: Tue Jan 5 23:19:00 2016 +0100 tempcommit: QtMoleculeList must not use QtObservedMolecules in lists but only request them on need. commit dd31d1aa6043ad86163cd7ea9e9952e01c443cc4 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. commit 3e46781a8560df24014d0440462f7777ceb2f12f Author: Frederik Heber Date: Tue Jan 5 16:04:25 2016 +0100 tempcommit: Merge with e57e6813 commit dcc0a282ed0c8e11eb1dc0fb2ce24ce72a95fb0a Author: Frederik Heber Date: Tue Jan 5 16:03:41 2016 +0100 tempcommit: Merge with e228f3ba commit e57e6813337f7b23f99230d3a8763799b039d3e8 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 d0787813dd4c36dbc270d9f829d4cc322177168b 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 90e83e6ae3a1184c1604d0f9b57513eccad8fe13 Author: Frederik Heber Date: Wed Dec 30 13:38:20 2015 +0100 tempcommit: QItemSelection could not be used in signal/slot. Merge with ??? commit b784d8eac83f9216d29184e613c047d2efa0a1d4 Author: Frederik Heber Date: Wed Dec 30 12:14:14 2015 +0100 tempcommit: Merge with ee50e14 commit c9a65da8e53c958bffa0e0dd0301f42580392b3c Author: Frederik Heber Date: Wed Dec 30 11:29:50 2015 +0100 tempcommit: Merge with bbb2e1436e commit 47fce732b348206cdd279110b80a200a7d271e7c Author: Frederik Heber Date: Wed Dec 30 11:19:37 2015 +0100 tempcommit: SortIndex was introduced someplace else in .._ToFiles. Merge with 425b45f commit f02d8aa8ff32ea14579c73582474fcde3c4f14b7 Author: Frederik Heber Date: Wed Dec 30 11:19:10 2015 +0100 Deleted MoleculeListClass. - finally ... some veeeery old legacy stuff is gone. commit 06dbd0e6951d9520b418f6a079fdf76d60acc68b Author: Frederik Heber Date: Wed Dec 30 11:17:36 2015 +0100 Removed molecules_deprecated from World. commit 425b45f24dca7ce6c8b50b24d4f145f46e2359c1 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 bbb2e1436ea2ce70dc939e56012ce98d8cc9eb32 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 625b0bd95fbf61f686957ee83c4892ca4cc2b10a Author: Frederik Heber Date: Wed Dec 30 11:06:27 2015 +0100 Removed FindEmbeddingHole which lacked implementation so far. commit efb2ab366300483a625cbd87e9747993161be3a1 Author: Frederik Heber Date: Wed Dec 30 11:02:58 2015 +0100 Removed 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 e7747c1446d44bfddbd892647a8c5398fad85ae5 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 32f4221997842b58e97cbb884e3073fda9f1b4ec 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 ee50e14d4bad15fd8f511e5dc83c51e88ba77ae3 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 533acaeb3eaf112a055991697406d5eaec3c0701 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 0e7426222c65c3cb0d9d2fb70f2bd2b89d51f8ab Author: Frederik Heber Date: Tue Dec 29 19:54:38 2015 +0100 tempcommit: Merge with 46836ac8 commit 8de4f974c4e1dd56c55f7b30a489931ece3ff288 Author: Frederik Heber Date: Tue Dec 29 16:10:47 2015 +0100 tempcommit: Merge with 3944f4ad9 commit f6d54548592c9ac4b83a48ec5ccecc80412ddd13 Author: Frederik Heber Date: Tue Dec 29 15:42:57 2015 +0100 tempcommit: Removed AtomObserverStub. Does not work anymore with extracted EntityObserver? commit e5be5106b616c4190b7d7cdcc891beeb8546803e Author: Frederik Heber Date: Tue Dec 29 15:25:41 2015 +0100 tempcommit: Forget to change id also for atomInsertionDelayed. Merge with 2df80cf5 commit 7825d1e926534817c504ca4c8d11dd30fcc424fd Author: Frederik Heber Date: Tue Dec 29 15:25:06 2015 +0100 FIX: We did not check for status of identifier change in QtObservedInstanceBoard. commit 3944f4ad9190b7967cbdad05cab0ce97b751f39e 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. commit 68046a88f814a8c567da09151090a56df88f993f Author: Frederik Heber Date: Tue Dec 29 15:22:06 2015 +0100 tempcommit: Merge with d7a4cc7bb1 commit 53f11445f7d82dc3b3c34adbfa7cb78876d243e1 Author: Frederik Heber Date: Mon Dec 28 21:10:33 2015 +0100 tempcommit: Merge with 9bdc30e commit bb0a2b836c413b7275b8a2be7b5d762aedaa6d78 Author: Frederik Heber Date: Mon Dec 28 20:24:17 2015 +0100 tempcommit: Merge with d7a4cc7b commit 3d0c8b30610f17285a317080851d9336bdc61c3a 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 9cee1c7bc51140782c0a5d355943042911f0b292 Author: Frederik Heber Date: Mon Dec 28 20:20:00 2015 +0100 tempcommit: Merge with 7d9de99 commit 46836ac8075ec7699d17d0c1af39aacd924ea26c Author: Frederik Heber Date: Mon Dec 28 20:14:32 2015 +0100 Removed QtSelectionAgent usage in QtMoleculeListView. - instead we subscribe to MoleculeObserver directly. commit e3bfff68f39c14624901c6d26cfced4402cdc58a Author: Frederik Heber Date: Mon Dec 28 20:04:29 2015 +0100 tempcommit: Merge with 54dba3bc - its unit test now has NotifactionObservers for all AtomObservable's channels. commit 7d9de99be2b7eed95bb9b49405f5b170f5accd37 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 d7a4cc7bb19e3e42672d55790eee6563fff79a23 Author: Frederik Heber Date: Mon Dec 28 16:10:47 2015 +0100 Added MoleculeObserver as pendant to AtomObserver for molecules. commit 54dba3bcb986874a7f6ca5eccedfc0a7e758a25d 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 35ef43cb741160b28ec2e458e97d57564e410ddc Author: Frederik Heber Date: Mon Dec 28 13:55:00 2015 +0100 tempcommit: Merge with 1e7b36c8 commit 2c83658e75c3ce622f50c1f73966a442b120426d Author: Frederik Heber Date: Mon Dec 28 12:43:34 2015 +0100 Added ObservedValue for selection status of atoms and molecules to QtObserved... commit 1e7b36c893acbf9ca5ad6c4be72fd5abf3798193 Author: Frederik Heber Date: Mon Dec 28 12:43:28 2015 +0100 tempcommit: Added getSelected(). Merge with e6b6869 commit d3e4fe624daf76b20b270e668cfe6a53ee77cc50 Author: Frederik Heber Date: Mon Dec 28 11:27:48 2015 +0100 tempcommit: Merge with 35263d2 commit de786b0a29b35bec4e79ade66a20736483a881c0 Author: Frederik Heber Date: Mon Dec 28 11:27:31 2015 +0100 tempcommit: Merge with e6b68698 commit 35263d2f4d8f8ad0c81e4594cbb854e3b99f6a63 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 e6b68698280450e664581a05840810e4b7502c28 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 b49bd2dbdcea884a28bcc4ced55601791976e169 Author: Frederik Heber Date: Mon Dec 28 07:15:14 2015 +0100 Removed molecule's AboutToBeRemoved channel. commit 9bdc30ea6b9d1015f27cfea2d815b9c05b7657e1 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. ----------------------------------------------------------------------- hooks/post-receive --