Changeset 2c97ad


Ignore:
Timestamp:
Apr 11, 2018, 6:29:57 AM (7 years ago)
Author:
Frederik Heber <frederik.heber@…>
Branches:
Candidate_v1.6.1, ChemicalSpaceEvaluator, Gui_displays_atomic_force_velocity, PythonUI_with_named_parameters, TremoloParser_IncreasedPrecision
Children:
8819d2
Parents:
8c5e2a
git-author:
Frederik Heber <frederik.heber@…> (08/09/17 15:36:42)
git-committer:
Frederik Heber <frederik.heber@…> (04/11/18 06:29:57)
Message:

QtTimeLine has an additional QSpinBox.

Location:
src/UIElements
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/Qt4/QtMainWindow.hpp

    r8c5e2a r2c97ad  
    3232class QtMoleculeList;
    3333class QtShapeController;
     34class QtTimeLine;
    3435class StringView;
    3536class GLWorldView;
     
    3839class QtToolBar;
    3940class QCloseEvent;
    40 class QSlider;
    4141
    4242class QtObservedInstanceBoard;
     
    7070  QtMenu<QMenuBar> *MainMenu;
    7171  QtToolBar *toolbar;
    72   QSlider *timeline;
     72  QtTimeLine *timeline;
    7373  QtLogBox *logBox;
    7474  QtLogBox *errorlogBox;
  • src/UIElements/Views/Qt4/QtTimeLine.cpp

    r8c5e2a r2c97ad  
    4747
    4848QtTimeLine::QtTimeLine(QWidget * _parent) :
    49     QSlider (Qt::Horizontal, _parent),
     49    QWidget(_parent),
    5050    Observer("QtTimeLine"),
    5151    atomobserver_enlisted(false),
    52     worldtime_enlisted(false)
     52    worldtime_enlisted(false),
     53    SetWorldTime_called(false)
    5354{
     55  slider = new QSlider(Qt::Horizontal, this);
    5456  // set initial values
    55   QSlider::setMinimum(0);
    56   QSlider::setMaximum(0);
    57   QSlider::setValue(0);
    58   QSlider::setTickInterval(1);
    59   QSlider::setSingleStep(1);
    60   QSlider::setTracking(true);
     57  slider->setMinimum(0);
     58  slider->setMaximum(0);
     59  slider->setValue(0);
     60  slider->setTickInterval(1);
     61  slider->setSingleStep(1);
     62  slider->setTracking(true);
     63
     64  spinbox = new QSpinBox(this);
     65  spinbox->setMinimum(0);
     66  spinbox->setMaximum(0);
     67  spinbox->setValue(0);
     68
     69  layout = new QHBoxLayout(this);
     70  layout->addWidget(slider);
     71  layout->addWidget(spinbox);
    6172
    6273  // sign on to observable
     
    6778
    6879  // connect to QSlider's valueChanged() signal
    69   bool result = connect(this,SIGNAL(valueChanged(int)),this,SLOT(StepUpdate(int)));
     80  bool result = connect(slider,SIGNAL(valueChanged(int)),this,SLOT(StepUpdate(int)));
     81  result = result && connect(spinbox,SIGNAL(valueChanged(int)),this,SLOT(StepUpdate(int)));
    7082  if (!result)
    7183    ELOG(0, "Could not connect to QSlider::valueChanged.");
     
    8496  boost::recursive_mutex::scoped_lock lock(refill_mutex);
    8597
    86   QSlider::paintEvent(event);
     98//  layout->paintEvent(event);
    8799}
    88100
     
    109121
    110122  if (static_cast<WorldTime *>(publisher) == WorldTime::getPointer()) {
     123    SetWorldTime_called = false;
    111124    const int timestep = WorldTime::getTime();
    112125    // check whether we are beyond maximum
    113     if (timestep > QSlider::maximum())
    114       QSlider::setMaximum(timestep);
     126    if (timestep > slider->maximum()) {
     127      slider->setMaximum(timestep);
     128      spinbox->setMaximum(timestep);
     129    }
    115130    // set slider position to new time step
    116     QSlider::setValue( timestep );
     131    slider->setValue( timestep );
     132    spinbox->setValue( timestep );
    117133  } else
    118134    //if (static_cast<AtomObserver *>(publisher) == AtomObserver::getPointer())
     
    121137    const atom *_atom = dynamic_cast<const atom *>(publisher);
    122138    const int MaxTrajectory = _atom->getTrajectorySize()-1;
    123     if (MaxTrajectory > QSlider::maximum())
    124       QSlider::setMaximum(MaxTrajectory);
     139    if (MaxTrajectory > slider->maximum()) {
     140      slider->setMaximum(MaxTrajectory);
     141      spinbox->setMaximum(MaxTrajectory);
     142    }
    125143  }
    126144}
     
    130148  boost::recursive_mutex::scoped_lock lock(refill_mutex);
    131149
    132   if (WorldTime::getTime() != (unsigned int)position)
    133     MoleCuilder::WorldSetWorldTime(position);
     150  if (!SetWorldTime_called) {
     151    if (WorldTime::getTime() != (unsigned int)position) {
     152      SetWorldTime_called = true;
     153      MoleCuilder::WorldSetWorldTime(position);
     154    }
     155  }
    134156}
  • src/UIElements/Views/Qt4/QtTimeLine.hpp

    r8c5e2a r2c97ad  
    1414#endif
    1515
     16#include <QtGui/QHBoxLayout>
    1617#include <QtGui/QSlider>
     18#include <QtGui/QSpinBox>
    1719
    1820#include <boost/thread/recursive_mutex.hpp>
     
    2022#include "CodePatterns/Observer/Observer.hpp"
    2123
    22 class QtTimeLine : public QSlider, public Observer
     24class QtTimeLine : public QWidget, public Observer
    2325{
    2426  Q_OBJECT
     
    4345  bool worldtime_enlisted;
    4446
     47  QSlider *slider;
     48  QSpinBox *spinbox;
     49  QHBoxLayout *layout;
     50
     51  //!> states whether we are expecting a notification from the worldtime
     52  bool SetWorldTime_called;
     53
    4554  mutable boost::recursive_mutex refill_mutex;
    4655};
Note: See TracChangeset for help on using the changeset viewer.