Changeset a39d72 for src/UIElements/Views/Qt4/MoleculeList
- Timestamp:
- Aug 5, 2015, 5:32:11 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:
- 07b800
- Parents:
- 015f8c
- git-author:
- Frederik Heber <heber@…> (07/19/15 11:35:26)
- git-committer:
- Frederik Heber <heber@…> (08/05/15 17:32:11)
- Location:
- src/UIElements/Views/Qt4/MoleculeList
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/Views/Qt4/MoleculeList/QtMoleculeList.cpp
r015f8c ra39d72 246 246 } 247 247 248 void QtMoleculeList::addMoleculeItem( 249 QStandardItem *_groupitem, 248 QList<QStandardItem *> QtMoleculeList::createMoleculeItems( 250 249 const moleculeId_t _molid, 251 conststd::string &_molecule_formula)250 std::string &_molecule_formula) 252 251 { 253 252 QList<QStandardItem *> molItems = … … 258 257 QtMoleculeItem *mol_item = dynamic_cast<QtMoleculeItem *>(molItems.front()); 259 258 ASSERT( mol_item != NULL, 260 "QtMoleculeList:: addMoleculeItem() - item from factory was not a QtMoleculeItem?");259 "QtMoleculeList::createMoleculeItems() - item from factory was not a QtMoleculeItem?"); 261 260 { 262 261 boost::recursive_mutex::scoped_lock lock(map_mutex); 263 262 MoleculeItemBiMap.left.insert( std::make_pair(_molid, mol_item) ); 264 LOG(1, "Adding" << _molecule_formula << " for " << _molid << " to MoleculeFormulaMap."); 263 } 264 265 QStandardItem *formulaitem = molItems.at(QtMoleculeItem::FORMULA); 266 ASSERT( formulaitem != NULL, 267 "QtMoleculeList::createMoleculeItems() - Formula item not created by factory?"); 268 _molecule_formula = formulaitem->text().toStdString(); 269 { 270 boost::recursive_mutex::scoped_lock lock(map_mutex); 271 LOG(1, "Adding " << _molecule_formula << " for " << _molid << " to MoleculeFormulaMap."); 265 272 MoleculeFormulaMap.insert( std::make_pair( _molid, _molecule_formula) ); 266 273 } 267 274 // LOG(1, "Inserting molecule " << _mol->getId() << ": " << _mol); 268 _groupitem->appendRow(molItems);275 return molItems; 269 276 } 270 277 … … 274 281 QStandardItem *groupItem = NULL; 275 282 276 const std::string molecule_formula = _mol->getFormula().toString(); 283 // create molecule items and obtain the molecule's formula 284 std::string molecule_formula; 285 QList<QStandardItem *> molItems = createMoleculeItems(_mol->getId(), molecule_formula); 277 286 278 287 // new molecule type -> create new group … … 296 305 "QtMoleculeList::addMolecule() - item with id "+toString(_mol->getId()) 297 306 +" has no parent?"); 298 299 // add molecule 300 addMoleculeItem(groupItem, _mol->getId(), molecule_formula); 307 groupItem->appendRow(molItems); 301 308 302 309 return molecule_formula; … … 552 559 "QtMoleculeList::readdItem() - mol item at "+toString(_molitem->index().row()) 553 560 +" does not have a groupitem?"); 554 const molecule * const mol = _molitem->getMolecule(); 561 // get updated formula from the item 562 QStandardItem *formulaitem = 563 _molitem->parent()->child(_molitem->index().row(), QtMoleculeItem::FORMULA); 564 const std::string molecule_formula = formulaitem->text().toStdString(); 555 565 QList<QStandardItem *> mol_row = _molitem->parent()->takeRow(_molitem->index().row()); 556 566 // .. and re-add where new formula fits 557 std::string molecule_formula; 558 if (mol != NULL) { 559 molecule_formula = mol->getFormula().toString(); 560 if (!isGroupItemPresent(molecule_formula)) { 561 // add new group item and formula entry 562 addGroupItem(groupitem, molecule_formula); 563 } else { 564 groupitem = FormulaToGroupItem(molecule_formula); 565 } 566 ASSERT( groupitem != NULL, 567 "QtMoleculeList::readdItem() - failed to create a sensible new groupitem"); 568 // finally add again 569 groupitem->appendRow(mol_row); 567 if (!isGroupItemPresent(molecule_formula)) { 568 // add new group item and formula entry 569 addGroupItem(groupitem, molecule_formula); 570 570 } else { 571 for (QList<QStandardItem *>::iterator iter = mol_row.begin(); 572 iter != mol_row.end(); ++iter) 573 delete *iter; 574 } 571 groupitem = FormulaToGroupItem(molecule_formula); 572 } 573 ASSERT( groupitem != NULL, 574 "QtMoleculeList::readdItem() - failed to create a sensible new groupitem"); 575 // finally add again 576 groupitem->appendRow(mol_row); 575 577 576 578 return molecule_formula; -
src/UIElements/Views/Qt4/MoleculeList/QtMoleculeList.hpp
r015f8c ra39d72 101 101 std::string addMolecule(const molecule * const _mol); 102 102 void addGroupItem(QStandardItem *&mainitem, const std::string &_molecule_formula); 103 void addMoleculeItem(QStandardItem *_groupitem, const moleculeId_t _molid, conststd::string &molecule_formula);103 QList<QStandardItem *> createMoleculeItems(const moleculeId_t _molid, std::string &molecule_formula); 104 104 void removeMoleculeItem(QtMoleculeItem * const _item); 105 105 int setOccurrence(QStandardItem * const _groupitem); -
src/UIElements/Views/Qt4/MoleculeList/QtMoleculeListView.cpp
r015f8c ra39d72 163 163 164 164 const QtMoleculeList *moleculelist = dynamic_cast<const QtMoleculeList *>(model()); 165 QModelIndex index = moleculelist->MoleculeIdToIndex(_id); 166 ASSERT( !selectionModel()->isSelected(index), 167 "QtMoleculeListView::MoleculeSelected() - row to molecule " 168 +toString(_id)+" is already selected."); 169 170 // select the full row 171 expand(index); 172 selectionModel()->select(index, QItemSelectionModel::Select | QItemSelectionModel::Rows); 165 if (moleculelist->isMoleculeItemPresent(_id)) { 166 QModelIndex index = moleculelist->MoleculeIdToIndex(_id); 167 // ASSERT( !selectionModel()->isSelected(index), 168 // "QtMoleculeListView::MoleculeSelected() - row to molecule " 169 // +toString(_id)+" is already selected."); 170 171 // select the full row 172 expand(index); 173 selectionModel()->select(index, QItemSelectionModel::Select | QItemSelectionModel::Rows); 174 } 173 175 174 176 selecting = false; … … 183 185 184 186 const QtMoleculeList *moleculelist = dynamic_cast<const QtMoleculeList *>(model()); 185 QModelIndex index = moleculelist->MoleculeIdToIndex(_id); 186 ASSERT( selectionModel()->isSelected(index), 187 "QtMoleculeListView::MoleculeSelected() - row to molecule " 188 +toString(_id)+" is already unselected."); 189 190 // unselect the full row 191 expand(index); 192 selectionModel()->select(index, QItemSelectionModel::Deselect | QItemSelectionModel::Rows); 187 if (moleculelist->isMoleculeItemPresent(_id)) { 188 QModelIndex index = moleculelist->MoleculeIdToIndex(_id); 189 // ASSERT( selectionModel()->isSelected(index), 190 // "QtMoleculeListView::MoleculeSelected() - row to molecule " 191 // +toString(_id)+" is already unselected."); 192 193 // unselect the full row 194 expand(index); 195 selectionModel()->select(index, QItemSelectionModel::Deselect | QItemSelectionModel::Rows); 196 } 193 197 194 198 selecting = false;
Note:
See TracChangeset
for help on using the changeset viewer.