Ignore:
Timestamp:
Jan 28, 2015, 7:07:01 PM (10 years ago)
Author:
Frederik Heber <heber@…>
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:
53c1ff
Parents:
bed759
git-author:
Frederik Heber <heber@…> (01/18/15 13:33:42)
git-committer:
Frederik Heber <heber@…> (01/28/15 19:07:01)
Message:

Added a slew of specific QtMoleculeItem for each of the COLUMNs.

  • all are produced solely by the factory and are very specific.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/Views/Qt4/MoleculeList/QtMoleculeItemFactory.cpp

    rbed759 r6d1e0a  
    3333#endif
    3434
     35#include "QtMoleculeItemFactory.hpp"
     36
     37#include "UIElements/Views/Qt4/MoleculeList/QtMoleculeItem.hpp"
     38#include "UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_atomcount.hpp"
     39#include "UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_formula.hpp"
     40#include "UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_name.hpp"
     41#include "UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_occurrence.hpp"
     42#include "UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_visibility.hpp"
     43
    3544#include "CodePatterns/MemDebug.hpp"
    3645
    37 #include "QtMoleculeItemFactory.hpp"
     46#include "CodePatterns/Singleton_impl.hpp"
    3847
     48#include <boost/assign.hpp>
    3949
     50#include "molecule.hpp"
    4051
     52using namespace boost::assign;
     53
     54// instantiate static items of specific QtMoleculeItems
     55const QtMoleculeItem::channellist_t QtMoleculeItem_atomcount::channellist_atomcount;
     56const QtMoleculeItem::channellist_t QtMoleculeItem_formula::channellist_formula;
     57const QtMoleculeItem::channellist_t QtMoleculeItem_name::channellist_name;
     58const QtMoleculeItem::channellist_t QtMoleculeItem_occurrence::channellist_occurrence;
     59const QtMoleculeItem::channellist_t QtMoleculeItem_visibility::channellist_visibility;
     60
     61// some attributes need to be easier to find for molecules
     62// these attributes are skipped so far
     63const int
     64QtMoleculeItemFactory::COLUMNCOUNT =
     65    COLUMNTYPES_MAX;
     66const char *
     67QtMoleculeItemFactory::COLUMNNAMES[QtMoleculeItemFactory::COLUMNCOUNT] =
     68    {"Name","Visibility", "Atoms","Formula","Occurrence"/*,"Size"*/};
     69
     70QtMoleculeItemFactory::QtMoleculeItemFactory()
     71{
     72  // fill all the static channels lists
     73  const_cast<QtMoleculeItem::channellist_t &>(
     74      QtMoleculeItem_name::channellist_name) +=
     75          molecule::MoleculeNameChanged;
     76  const_cast<QtMoleculeItem::channellist_t &>(
     77      QtMoleculeItem_atomcount::channellist_atomcount) +=
     78          molecule::AtomInserted,
     79          molecule::AtomRemoved;
     80  const_cast<QtMoleculeItem::channellist_t &>(
     81      QtMoleculeItem_formula::channellist_formula) =
     82          QtMoleculeItem_atomcount::channellist_atomcount;
     83}
     84
     85QList<QStandardItem *>
     86QtMoleculeItemFactory::createMoleculeItems(
     87    const molecule *_mol,
     88    const QtMoleculeItem::emitDirtyState_t &_emitDirtyState)
     89{
     90  QList<QStandardItem *> molItems;
     91  molItems << new QtMoleculeItem_name(_mol, _emitDirtyState);
     92  molItems << new QtMoleculeItem_visibility(_mol, _emitDirtyState);
     93  molItems << new QtMoleculeItem_atomcount(_mol, _emitDirtyState);
     94  molItems << new QtMoleculeItem_formula(_mol, _emitDirtyState);
     95  molItems << new QtMoleculeItem_occurrence(_mol, _emitDirtyState);
     96  return molItems;
     97}
     98
     99QList<QStandardItem *>
     100QtMoleculeItemFactory::createGroupItems(const std::string &_formula)
     101{
     102  QList<QStandardItem *> groupItems;
     103  // fill item list
     104  QStandardItem *mainitem = new QStandardItem(QString(""));
     105  mainitem->setFlags(mainitem->flags() ^ Qt::ItemIsSelectable);
     106  groupItems << mainitem;
     107
     108  QStandardItem *visitem = new QStandardItem;
     109  visitem->setCheckState(Qt::Unchecked);
     110  visitem->setFlags((visitem->flags() | Qt::ItemIsUserCheckable) ^ Qt::ItemIsSelectable);
     111  groupItems << visitem;
     112
     113  QStandardItem *count_item = new QStandardItem(QString::number(0));
     114  count_item->setFlags(count_item->flags() ^ Qt::ItemIsSelectable);
     115  groupItems << count_item;
     116
     117  QStandardItem *formula_item = new QStandardItem(QString(""));
     118  formula_item->setFlags(formula_item->flags() ^ Qt::ItemIsSelectable);
     119  groupItems << formula_item;
     120
     121  QStandardItem *occ_item = new QStandardItem(QString::number(0));
     122  occ_item->setFlags(occ_item->flags() ^ Qt::ItemIsSelectable);
     123  groupItems << occ_item;
     124
     125  return groupItems;
     126}
     127
     128CONSTRUCT_SINGLETON(QtMoleculeItemFactory)
Note: See TracChangeset for help on using the changeset viewer.