Changeset f2d5ce for src/UIElements/Qt4


Ignore:
Timestamp:
Dec 26, 2025, 9:40:14 PM (2 weeks ago)
Author:
Frederik Heber <frederik.heber@…>
Branches:
Candidate_v1.7.1, stable
Children:
c8cb0d
Parents:
bdd1d0
git-author:
Frederik Heber <frederik.heber@…> (12/10/25 10:20:56)
git-committer:
Frederik Heber <frederik.heber@…> (12/26/25 21:40:14)
Message:

QtTimeLine no longers queries WorldTime directly.

Location:
src/UIElements/Qt4
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/Qt4/InstanceBoard/QtObservedInstanceBoard.cpp

    rbdd1d0 rf2d5ce  
    5151#include "Descriptors/MoleculeIdDescriptor.hpp"
    5252#include "molecule.hpp"
     53#include "UIElements/Qt4/InstanceBoard/ObservedMaximumAtomTrajectorySize.hpp"
    5354#include "UIElements/Qt4/InstanceBoard/ObservedValuesContainer_impl.hpp"
    5455#include "World.hpp"
     56#include "WorldTime.hpp"
     57
     58// static entities
     59const Observable::channels_t
     60WorldTimeChannels(1, WorldTime::TimeChanged);
     61
     62const Observable::channels_t
     63MaximumTrajectorySizeChannels(1, ObservedMaximumAtomTrajectorySize::MaximumChanged);
    5564
    5665QtObservedInstanceBoard::QtObservedInstanceBoard(QWidget * _parent) :
     
    5867  Observer("QtObservedInstanceBoard"),
    5968  WorldSignedOn(false),
     69  WorldTimeSignedOn(false),
     70  MaximumAtomTrajectorySizeSignedOn(false),
    6071  atomObservedValues(
    6172      "atom",
     
    6980      "molecule",
    7081      *this,
    71       boost::bind(&QtObservedInstanceBoard::moleculecountsubjectKilled, this, _1))
     82      boost::bind(&QtObservedInstanceBoard::moleculecountsubjectKilled, this, _1)),
     83  worldTime(
     84    WorldTime::getPointer(),
     85    WorldTime::getTime,
     86    "WorldTime",
     87    0,
     88    WorldTimeChannels),
     89  maximumAtomTrajectorySize(
     90    ObservedMaximumAtomTrajectorySize::getPointer(),
     91    boost::bind(
     92      &ObservedMaximumAtomTrajectorySize::GetMaximumAtomTrajectorySize,
     93      boost::cref(ObservedMaximumAtomTrajectorySize::getConstInstance())
     94    ),
     95    "MaximumAtomTrajectorySize",
     96    0,
     97    MaximumTrajectorySizeChannels)
    7298{
    7399  qRegisterMetaType<ObservedValue_Index_t>("ObservedValue_Index_t");
     
    80106  World::getInstance().signOn(this, World::MoleculeInserted, GlobalObservableInfo::PriorityLevel(int(-10)));
    81107  WorldSignedOn = true;
     108  WorldTime::getInstance().signOn(this, WorldTime::TimeChanged);
     109  WorldTimeSignedOn = true;
     110  ObservedMaximumAtomTrajectorySize::getInstance().signOn(this, ObservedMaximumAtomTrajectorySize::MaximumChanged);
     111  MaximumAtomTrajectorySizeSignedOn = true;
    82112}
    83113
     
    87117    World::getInstance().signOff(this, World::AtomInserted);
    88118    World::getInstance().signOff(this, World::MoleculeInserted);
     119  }
     120  if (WorldTimeSignedOn) {
     121    WorldTime::getInstance().signOff(this, WorldTime::TimeChanged);
     122  }
     123  if (MaximumAtomTrajectorySizeSignedOn) {
     124    ObservedMaximumAtomTrajectorySize::getInstance().signOff(this, ObservedMaximumAtomTrajectorySize::MaximumChanged);
    89125  }
    90126  // sign off from all remaining molecules, bonds, and atoms
     
    121157      MoleculeSignedOn.erase(iter);
    122158    } else {
    123       ASSERT(0,
    124           "QtObservedInstanceBoard::subjectKilled() - could not find signedOn for atom/molecule "+toString(publisher));
     159      if (static_cast<World *>(publisher) == World::getPointer()) {
     160        WorldSignedOn = false;
     161      } else if (static_cast<WorldTime *>(publisher) == WorldTime::getPointer()) {
     162        WorldTimeSignedOn = false;
     163      } else if (static_cast<ObservedMaximumAtomTrajectorySize *>(publisher) == ObservedMaximumAtomTrajectorySize::getPointer()) {
     164        MaximumAtomTrajectorySizeSignedOn = false;
     165      } else {
     166        ASSERT(0,
     167            "QtObservedInstanceBoard::subjectKilled() - could not find signedOn for atom/molecule "+toString(publisher));
     168      }
    125169    }
    126170  }
     
    217261      }
    218262      default:
    219         ASSERT(0, "QtObservedInstanceBoard::recieveNotification() - we cannot get here.");
     263        ASSERT(0, "QtObservedInstanceBoard::recieveNotification() - we cannot get here for Molecule.");
    220264        break;
    221265    }
     
    277321      }
    278322      default:
    279         ASSERT(0, "QtObservedInstanceBoard::recieveNotification() - we cannot get here.");
    280         break;
     323        ASSERT(0, "QtObservedInstanceBoard::recieveNotification() - we cannot get here for Atom.");
     324        break;
     325    }
     326  } else if (static_cast<ObservedMaximumAtomTrajectorySize *>(publisher) == ObservedMaximumAtomTrajectorySize::getPointer()) {
     327    switch (notification->getChannelNo()) {
     328      case ObservedMaximumAtomTrajectorySize::MaximumChanged:
     329      {
     330#ifdef LOG_OBSERVER
     331        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that maximum atom tractory size has changed.";
     332#endif
     333        LOG(3, "DEBUG: InformationBoard got MaximumChanged signal from ObservedMaximumAtomTrajectorySize.");
     334        emit MaximumAtomTrajectoryChanged();
     335        break;
     336      }
     337      default:
     338      {
     339        ASSERT(0, "QtObservedInstanceBoard::recieveNotification() - we cannot get here for ObservedMaximumAtomTrajectorySize.");
     340        break;
     341      }
     342    }
     343  } else if (static_cast<WorldTime *>(publisher) == WorldTime::getPointer()) {
     344    switch (notification->getChannelNo()) {
     345      case WorldTime::TimeChanged:
     346      {
     347#ifdef LOG_OBSERVER
     348        observerLog().addMessage() << "++ Observer " << observerLog().getName(static_cast<Observer *>(this)) << " received notification that WorldTime has changed.";
     349#endif
     350        LOG(3, "DEBUG: InformationBoard got TimeChanged signal from WorldTime.");
     351        emit WorldTimeChanged();
     352        break;
     353      }
     354      default:
     355      {
     356        ASSERT(0, "QtObservedInstanceBoard::recieveNotification() - we cannot get here for WorldTime.");
     357        break;
     358      }
    281359    }
    282360  } else {
     
    373451}
    374452
     453const ObservedValue<unsigned int>& QtObservedInstanceBoard::getObservedWorldTime()
     454{
     455  return worldTime;
     456}
     457
     458const ObservedValue<int>& QtObservedInstanceBoard::getObservedMaximumAtomTrajectorySize()
     459{
     460  return maximumAtomTrajectorySize;
     461}
     462
    375463void QtObservedInstanceBoard::markObservedAtomAsConnected(ObservedValue_Index_t _id)
    376464{
  • src/UIElements/Qt4/InstanceBoard/QtObservedInstanceBoard.hpp

    rbdd1d0 rf2d5ce  
    2525#include <boost/function.hpp>
    2626
     27#include "CodePatterns/ObservedValue.hpp"
    2728#include "CodePatterns/Observer/Observer.hpp"
    2829
     
    9495  QtObservedMolecule::ptr getObservedMolecule(const moleculeId_t _id);
    9596  QtObservedMolecule::ptr getObservedMolecule(ObservedValue_Index_t _id);
     97  const ObservedValue<unsigned int>& getObservedWorldTime();
     98  const ObservedValue<int>& getObservedMaximumAtomTrajectorySize();
    9699  void markObservedAtomAsConnected(ObservedValue_Index_t _id);
    97100  void markObservedAtomAsDisconnected(ObservedValue_Index_t _id);
     
    114117  void moleculeRemoved(ObservedValue_Index_t _molid);
    115118  void moleculeIndexChanged(const moleculeId_t _oldid, const moleculeId_t _newid);
     119  void WorldTimeChanged();
     120  void MaximumAtomTrajectoryChanged();
    116121
    117122private:
     
    124129  bool WorldSignedOn;
    125130
     131  //!> indicating whether we are still signedOn to World or not
     132  bool WorldTimeSignedOn;
     133 
     134  //!> indicating whether we are still signedOn to MaximumAtomTrajectorySize observable
     135  bool MaximumAtomTrajectorySizeSignedOn;
     136
    126137  typedef std::multiset<Observable *> SignedOn_t;
    127138  //!> map indicating to which atom we are currently signed on
     
    129140  //!> map indicating to which molecule we are currently signed on
    130141  SignedOn_t MoleculeSignedOn;
     142
    131143
    132144  //!> "templated typedef" for an id to index map.
     
    173185  //!> container with all ObservedValues for each molecule, associated by id
    174186  ObservedValuesContainer<QtObservedMolecule, ObservedValue_Index_t> moleculeObservedValues;
     187  //!> observed value for the world's time
     188  ObservedValue<unsigned int> worldTime;
     189  //!> observed value for the largest atom trajectory siye (i.e., current number of world time steps)
     190  ObservedValue<int> maximumAtomTrajectorySize;
    175191};
    176192
  • src/UIElements/Qt4/QtMainWindow.cpp

    rbdd1d0 rf2d5ce  
    120120  shapeController = new QtShapeController(worldTab);
    121121
    122   timeline = new QtTimeLine(this);
     122  timeline = new QtTimeLine(InstanceBoard, this);
    123123
    124124  infoBox = new QtInfoBox(InstanceBoard);
Note: See TracChangeset for help on using the changeset viewer.