Changeset b65879 for src/UIElements


Ignore:
Timestamp:
Apr 18, 2016, 10:33:41 PM (9 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:
743eab
Parents:
55443e
git-author:
Frederik Heber <heber@…> (03/21/16 19:44:17)
git-committer:
Frederik Heber <heber@…> (04/18/16 22:33:41)
Message:

QtMoleculeItems do not store ObservedMolecule::ptr any longer.

  • it is given as parameter in updateState().
  • in the cstor they only get it to initiate the item text properly.
Location:
src/UIElements/Views/Qt4/MoleculeList
Files:
8 edited

Legend:

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

    r55443e rb65879  
    3939#include "CodePatterns/MemDebug.hpp"
    4040
    41 QtMoleculeItem::QtMoleculeItem(
    42     QtObservedMolecule::ptr &_ObservedMolecule) :
    43   ObservedMolecule(_ObservedMolecule),
    44   dirty(true)
     41QtMoleculeItem::QtMoleculeItem()
    4542{
    4643  setFlags(flags() | Qt::ItemIsSelectable);
     
    5047{
    5148}
    52 
    53 void QtMoleculeItem::updateState()
    54 {
    55   if (dirty) {
    56     internal_updateState();
    57     dirty = false;
    58   }
    59 }
  • src/UIElements/Views/Qt4/MoleculeList/QtMoleculeItem.hpp

    r55443e rb65879  
    4141  enum COLUMNTYPES {NAME,VISIBILITY,ATOMCOUNT,FORMULA,OCCURRENCE,COLUMNTYPES_MAX};
    4242
    43   QtMoleculeItem(
    44       QtObservedMolecule::ptr &_ObservedMolecule);
     43  QtMoleculeItem();
    4544  virtual ~QtMoleculeItem();
    4645
    4746  /** Update the state of this item.
    4847   *
     48   * \param _ObservedMolecule object to update state from
    4949   */
    50   void updateState();
     50  virtual void updateState(const QtObservedMolecule::ptr &_ObservedMolecule) = 0;
    5151
    5252  /** Returns the type of this QtMoleculeItem, i.e. the column in QtMoleculeList.
     
    5656  virtual QtMoleculeItem::COLUMNTYPES getType() const = 0;
    5757
    58   /** Getter to the observed molecule in this item.
    59    *
    60    * \return const ref to ObservedMolecule for this item
    61    */
    62   const QtObservedMolecule::ptr& getMolecule() const
    63   { return ObservedMolecule; }
    64 
    6558  /** Getter for the id of the observed molecule for this item.
    6659   *
    6760   * \return id of the observed molecule
    6861   */
    69   const moleculeId_t getMoleculeId() const
    70   { return ObservedMolecule->getMolIndex(); }
    71 
    72 protected:
    73   /** This function needs to be implemented to make the specific update.
    74    *
    75    */
    76   virtual void internal_updateState() = 0;
    77 
    78   //!> ptr to ObservedMolecule we follow
    79   const QtObservedMolecule::ptr ObservedMolecule;
    80 
    81 private:
    82   //!> states that this item needs to be updated
    83   bool dirty;
     62  virtual const moleculeId_t getMoleculeId() const
     63  { return -1; }
    8464};
    8565
  • src/UIElements/Views/Qt4/MoleculeList/QtMoleculeList.cpp

    r55443e rb65879  
    513513      AQ.queueAction("change-single-molecule-name", MoleCuilder::Action::NonInteractive);
    514514    } else {
    515       assert_cast<QtMoleculeItem *>(item)->updateState();
     515      board->getObservedMolecule(
     516          assert_cast<QtMoleculeItem *>(item)->getMoleculeId());
    516517    }
    517518  }
     
    587588  if (old_formula != new_formula) {
    588589    QtMoleculeItem *const molitem = MoleculeIdToItem(molid);
     590    // update items
     591    getSpecificMoleculeItem(molitem, QtMoleculeItem::FORMULA)->updateState(_mol);
     592    getSpecificMoleculeItem(molitem, QtMoleculeItem::ATOMCOUNT)->updateState(_mol);
    589593    LOG(3, "DEBUG: Moving item " << molitem);
    590594    // remove from formula<->molecule bimap with old formula
     
    610614void QtMoleculeList::nameChanged(const QtObservedMolecule::ptr _mol)
    611615{
     616  // we need the id as identifier to the items
     617  const moleculeId_t molid = _mol->getMolIndex();
    612618  // nothing to do, item updates itself
    613   LOG(3, "DEBUG: QtMoleculeList got nameChangd for id " << _mol->getMolIndex());
    614 }
     619  LOG(3, "DEBUG: QtMoleculeList got nameChangd for id " << molid);
     620  QtMoleculeItem *const molitem = MoleculeIdToItem(molid);
     621  // update items
     622  getSpecificMoleculeItem(molitem, QtMoleculeItem::NAME)->updateState(_mol);
     623}
  • src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_atomcount.hpp

    r55443e rb65879  
    2727
    2828  QtMoleculeItem_atomcount(
    29       QtObservedMolecule::ptr &_ObservedMolecule) :
    30         QtMoleculeItem(_ObservedMolecule)
     29      QtObservedMolecule::ptr &_ObservedMolecule)
    3130  {
    3231    // cannot call pure virtual function in QtMoleculeItem's cstor
    33     internal_updateState();
     32    updateState(_ObservedMolecule);
    3433  }
    3534
    3635  /** Performs the update of the molecule's atomcount.
    3736   *
     37   * \param _ObservedMolecule object to update state from
    3838   */
    39   void internal_updateState()
     39  void updateState(const QtObservedMolecule::ptr &_ObservedMolecule)
    4040  {
    41     setText(QString::number(ObservedMolecule->getAtomCount()));
     41    setText(QString::number(_ObservedMolecule->getAtomCount()));
    4242  }
    4343
  • src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_formula.hpp

    r55443e rb65879  
    2929
    3030  QtMoleculeItem_formula(
    31       QtObservedMolecule::ptr &_ObservedMolecule) :
    32         QtMoleculeItem(_ObservedMolecule)
     31      QtObservedMolecule::ptr &_ObservedMolecule)
    3332  {
    3433    // cannot call pure virtual function in QtMoleculeItem's cstor
    35     internal_updateState();
     34    updateState(_ObservedMolecule);
    3635  }
    3736
    3837  /** Performs the update of the molecule's formula.
    3938   *
     39   * \param _ObservedMolecule object to update state from
    4040   */
    41   void internal_updateState()
     41  void updateState(const QtObservedMolecule::ptr &_ObservedMolecule)
    4242  {
    43     setText(QString(ObservedMolecule->getMolFormula().c_str()));
     43    setText(QString(_ObservedMolecule->getMolFormula().c_str()));
    4444  }
    4545
  • src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_name.hpp

    r55443e rb65879  
    2828  QtMoleculeItem_name(
    2929      QtObservedMolecule::ptr &_ObservedMolecule) :
    30         QtMoleculeItem(_ObservedMolecule)
     30        id(_ObservedMolecule->getMolIndex())
    3131  {
    3232    // cannot call pure virtual function in QtMoleculeItem's cstor
    33     internal_updateState();
     33    updateState(_ObservedMolecule);
    3434  }
    3535
    3636  /** Performs the update of the molecule's name.
    3737   *
     38   * \param _ObservedMolecule object to update state from
    3839   */
    39   void internal_updateState()
     40  void updateState(const QtObservedMolecule::ptr &_ObservedMolecule)
    4041  {
    41     setText(QString(ObservedMolecule->getMolName().c_str()));
     42    setText(QString(_ObservedMolecule->getMolName().c_str()));
    4243  }
    4344
    4445  QtMoleculeItem::COLUMNTYPES getType() const
    4546  { return QtMoleculeItem::NAME; }
     47
     48  /** Getter for the id of the observed molecule for this item.
     49   *
     50   * \return id of the observed molecule
     51   */
     52  const moleculeId_t getMoleculeId() const
     53  { return id; }
     54
     55private:
     56  const moleculeId_t id;
    4657};
    4758
  • src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_occurrence.hpp

    r55443e rb65879  
    2727
    2828  QtMoleculeItem_occurrence(
    29       QtObservedMolecule::ptr &_ObservedMolecule) :
    30         QtMoleculeItem(_ObservedMolecule)
     29      QtObservedMolecule::ptr &_ObservedMolecule)
    3130  {
    3231    // cannot call pure virtual function in QtMoleculeItem's cstor
    33     internal_updateState();
     32    updateState(_ObservedMolecule);
    3433  }
    3534
    3635  /** Performs the update of the molecule's occurrence.
    3736   *
     37   * \param _ObservedMolecule object to update state from
    3838   */
    39   void internal_updateState()
     39  void updateState(const QtObservedMolecule::ptr &_ObservedMolecule)
    4040  {
    4141    setText(QString(""));
  • src/UIElements/Views/Qt4/MoleculeList/SpecificItems/QtMoleculeItem_visibility.hpp

    r55443e rb65879  
    2828  QtMoleculeItem_visibility(
    2929      QtObservedMolecule::ptr &_ObservedMolecule) :
    30         QtMoleculeItem(_ObservedMolecule)
     30        id(_ObservedMolecule->getMolIndex())
    3131  {
    3232    setFlags(flags() | Qt::ItemIsUserCheckable);
    3333    setCheckState(Qt::Unchecked);
    3434    // cannot call pure virtual function in QtMoleculeItem's cstor
    35     internal_updateState();
     35    updateState(_ObservedMolecule);
    3636  }
    3737
    3838  /** Performs the update of the molecule's visibility.
    3939   *
     40   * \param _ObservedMolecule object to update state from
    4041   */
    41   void internal_updateState()
     42  void updateState(const QtObservedMolecule::ptr &_ObservedMolecule)
    4243  {}
    4344
    4445  QtMoleculeItem::COLUMNTYPES getType() const
    4546  { return QtMoleculeItem::VISIBILITY; }
     47
     48  /** Getter for the id of the observed molecule for this item.
     49   *
     50   * \return id of the observed molecule
     51   */
     52  const moleculeId_t getMoleculeId() const
     53  { return id; }
     54
     55private:
     56  const moleculeId_t id;
    4657};
    4758
Note: See TracChangeset for help on using the changeset viewer.