Changeset 57608e


Ignore:
Timestamp:
Dec 19, 2025, 10:33:07 PM (13 days ago)
Author:
Frederik Heber <frederik.heber@…>
Branches:
Candidate_v1.7.1, stable
Children:
37d1c3
Parents:
4e124d
git-author:
Frederik Heber <frederik.heber@…> (11/06/25 21:05:00)
git-committer:
Frederik Heber <frederik.heber@…> (12/19/25 22:33:07)
Message:

Attempt to simplify redraw event in Qt View.

Location:
src/UIElements/Views/Qt4/Qt3D
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_atom.cpp

    r4e124d r57608e  
    124124  setArrow(Position, 10.*ObservedAtom->getAtomVelocity(), scaleX(), GLMoleculeObjectVelocity);
    125125  setArrow(Position, 10.*ObservedAtom->getAtomForce(), scaleX(), GLMoleculeObjectForce);
     126 
     127  emit changed();
    126128}
    127129
     
    167169  alignArrow(Velocity, GLMoleculeObjectVelocity);
    168170//  GLMoleculeObjectForce.setScaleZ(Velocity.Norm());
     171 
     172  emit changed();
    169173}
    170174
     
    175179  alignArrow(Force, GLMoleculeObjectForce);
    176180//  GLMoleculeObjectForce.setScaleZ(Force.Norm());
     181 
     182  emit changed();
    177183}
    178184
     
    203209  }
    204210  setScale( radius / 4. );
     211 
     212  emit changed();
    205213}
    206214
  • src/UIElements/Views/Qt4/Qt3D/GLWorldScene.cpp

    r4e124d r57608e  
    202202  connect(board, SIGNAL(bondRemoved(ObservedValue_Index_t)),
    203203      this, SLOT(removeBond(ObservedValue_Index_t)));
    204 
    205 //  connect(this, SIGNAL(updated()), this, SLOT(update()));
    206204}
    207205
     
    313311
    314312  connect (atomObject, SIGNAL(clicked(atomId_t)), this, SLOT(clickAtom(atomId_t)));
    315   connect (atomObject, SIGNAL(changed()), this, SIGNAL(changed()));
    316   connect (atomObject, SIGNAL(hoverChanged(GLMoleculeObject *)), this, SIGNAL(changed()));
     313  connect (atomObject, SIGNAL(changed()), this, SIGNAL(updated()));
    317314  connect (atomObject, SIGNAL(hoverChanged(GLMoleculeObject *)), this, SLOT(hoverChangedSignalled(GLMoleculeObject *)));
    318315
    319   emit changed();
    320   emit changeOccured();
     316        emit sceneChanged();
     317  emit updated();
    321318}
    322319
     
    386383  checkAndRemoveAtom( _atomid );
    387384
    388   emit changed();
    389   emit changeOccured();
     385        emit sceneChanged();
     386  emit updated();
    390387}
    391388
     
    478475              _bond,
    479476              bondsides[i]);
    480       connect (bondObject, SIGNAL(changed()), this, SIGNAL(changed()));
     477      connect (bondObject, SIGNAL(changed()), this, SIGNAL(updated()));
    481478      BondsinSceneMap.insert( std::make_pair(bondid, bondObject) );
    482479    }
    483480  }
    484481
    485   emit changed();
    486   emit changeOccured();
     482        emit sceneChanged();
     483  emit updated();
    487484}
    488485
     
    542539  checkAndRemoveBond( _bondid );
    543540
    544   emit changed();
    545   emit changeOccured();
     541        emit sceneChanged();
     542  emit updated();
    546543}
    547544
     
    654651      +" already present in scene.");
    655652
    656   connect (molObject, SIGNAL(changed()), this, SIGNAL(changed()));
    657   connect (molObject, SIGNAL(changeOccured()), this, SIGNAL(changeOccured()));
    658 
    659   emit changed();
    660   emit changeOccured();
     653  connect (molObject, SIGNAL(changed()), this, SIGNAL(updated()));
     654  connect (molObject, SIGNAL(changeOccured()), this, SIGNAL(updated()));
     655  connect (molObject, SIGNAL(hoverChanged(GLMoleculeObject *)), this, SLOT(hoverChangedSignalled(GLMoleculeObject *)));
     656
     657        emit sceneChanged();
     658  emit updated();
    661659}
    662660
     
    686684  MoleculesinSceneMap.erase(iter);
    687685
    688   emit changed();
    689   emit changeOccured();
     686        emit sceneChanged();
     687  emit updated();
    690688}
    691689
     
    700698  molObject->setVisible(_visible);
    701699
    702   emit changed();
    703   emit changeOccured();
     700        emit sceneChanged();
     701  emit updated();
    704702}
    705703
     
    895893    ELOG(2, "GLWorldScene::addShape() - shape disappeared before we could draw it.");
    896894
    897   emit changed();
     895  emit updated();
    898896}
    899897
     
    906904  ShapesinSceneMap.erase(iter);
    907905
    908   emit changed();
     906  emit updated();
    909907}
    910908
     
    918916  }
    919917
    920   emit changed();
     918  emit updated();
    921919}
    922920
  • src/UIElements/Views/Qt4/Qt3D/GLWorldScene.hpp

    r4e124d r57608e  
    7777
    7878signals:
    79   void changed();
    80 //  void updated();
    81   void changeOccured();
     79  void updated();
     80  void sceneChanged();
    8281  void pressed();
    8382  void released();
  • src/UIElements/Views/Qt4/Qt3D/GLWorldView.cpp

    r4e124d r57608e  
    7171  Observer("GLWorldView"),
    7272  worldscene(NULL),
    73   changesPresent(false),
    74   needsRedraw(false)
     73  changesPresent(false)
    7574{
    7675  worldscene = new GLWorldScene(_board, this);
     
    9190  connect(this, SIGNAL(ShapeAdded(const std::string &)), worldscene, SLOT(addShape(const std::string &)));
    9291  connect(this, SIGNAL(ShapeRemoved(const std::string &)), worldscene, SLOT(removeShape(const std::string &)));
    93 //  connect(this, SIGNAL(TimeChanged()), worldscene, SIGNAL(updated()));
    94   connect(worldscene, SIGNAL(changeOccured()), this, SLOT(changeSignalled()));
    95   connect(this, SIGNAL(changed()), this, SLOT(changeSignalled()));
    9692  connect(worldscene, SIGNAL(hoverChanged(const atomId_t)), this, SLOT(sceneHoverSignalled(const atomId_t)));
    9793  connect(worldscene, SIGNAL(hoverChanged(const moleculeId_t, int)), this, SLOT(sceneHoverSignalled(const moleculeId_t, int)));
    98   connect(worldscene, SIGNAL(hoverEnd()), this, SLOT(sceneHoverEndSignalled()));
    99   //connect(this, SIGNAL(changed()), this, SLOT(updateGL()));
    100   connect(worldscene, SIGNAL(changed()), this, SLOT(sceneChangeSignalled()));
     94  connect(worldscene, SIGNAL(hoverEnd()), this, SLOT(triggerUpdateGL()));
     95  connect(worldscene, SIGNAL(updated()), this, SLOT(triggerUpdateGL()));
     96  connect(this, SIGNAL(updated()), this, SLOT(triggerUpdateGL()));
     97  connect(worldscene, SIGNAL(sceneChanged()), this, SLOT(sceneChangeSignalled()));
    10198  connect(this, SIGNAL(moleculesVisibilityChanged(ObservedValue_Index_t,bool)),
    10299      worldscene, SLOT(moleculesVisibilityChanged(ObservedValue_Index_t,bool)));
     
    325322void GLWorldView::update(Observable *publisher)
    326323{
    327 //  emit changed();
     324//  emit updated();
    328325}
    329326
     
    351348#endif
    352349        needsRedraw = false;
    353         emit changed();
     350        emit updated();
    354351        emit TimeChanged();
    355352        break;
     
    386383}
    387384
    388 void GLWorldView::checkChanges()
    389 {
    390   needsRedraw = false;
    391   updateGL();
    392 }
    393 
    394385void GLWorldView::changeDreiBein()
    395386{
     
    399390  // realize
    400391  needsRedraw = true;
    401   emit changed();
     392  emit updated();
    402393}
    403394
     
    417408  // realize
    418409  needsRedraw = true;
    419   emit changed();
     410  emit updated();
    420411}
    421412
     
    428419}
    429420
    430 void GLWorldView::sceneChangeSignalled()
    431 {
    432   if (needsRedraw){
    433     redrawTimer->singleShot(0, this, SLOT(checkChanges()));
    434     needsRedraw = true;
    435     redrawTimer->start();
    436   }
     421void GLWorldView::triggerUpdateGL()
     422{
     423  redrawTimer->singleShot(0, this, SLOT(updateGL()));
     424  redrawTimer->start();
    437425}
    438426
     
    461449  // Domain box has to be last because of its transparency.
    462450  drawDomainBox(painter);
     451}
     452
     453void GLWorldView::sceneChangeSignalled()
     454{
     455  boost::recursive_mutex::scoped_lock lock(changed_mutex);
     456        changesPresent = true;
    463457}
    464458
     
    504498}
    505499
    506 void GLWorldView::changeSignalled()
    507 {
    508   boost::recursive_mutex::scoped_lock lock(changed_mutex);
    509   changesPresent = true;
    510   updateGL();
    511 }
    512 
    513 
    514500/**
    515501 * Set the current camera control mode.
     
    565551  setStereoType(QGLView::Hardware);
    566552  camera()->setEyeSeparation(0.0);
    567   emit changed();
     553  emit updated();
    568554}
    569555
     
    572558  setStereoType(QGLView::Hardware);
    573559  camera()->setEyeSeparation(defaultEyeSeparation);
    574   emit changed();
     560  emit updated();
    575561}
    576562
     
    579565  setStereoType(QGLView::LeftRight);
    580566  camera()->setEyeSeparation(defaultEyeSeparation);
    581   emit changed();
     567  emit updated();
    582568}
    583569
     
    586572  setStereoType(QGLView::RightLeft);
    587573  camera()->setEyeSeparation(defaultEyeSeparation);
    588   emit changed();
     574  emit updated();
    589575}
    590576
     
    593579  setStereoType(QGLView::TopBottom);
    594580  camera()->setEyeSeparation(defaultEyeSeparation);
    595   emit changed();
     581  emit updated();
    596582}
    597583
     
    600586  setStereoType(QGLView::BottomTop);
    601587  camera()->setEyeSeparation(defaultEyeSeparation);
    602   emit changed();
     588  emit updated();
    603589}
    604590
     
    607593  setStereoType(QGLView::RedCyanAnaglyph);
    608594  camera()->setEyeSeparation(defaultEyeSeparation);
    609   emit changed();
     595  emit updated();
    610596}
    611597
     
    739725void GLWorldView::sceneHoverSignalled(const atomId_t _id)
    740726{
    741   needsRedraw = true;
    742727  emit hoverChanged(_id);
    743   emit changed();
     728  emit updated();
    744729}
    745730
    746731void GLWorldView::sceneHoverSignalled(const moleculeId_t _id, int _i)
    747732{
    748   needsRedraw = true;
    749733  emit hoverChanged(_id, _i);
    750   emit changed();
    751 }
    752 
    753 void GLWorldView::sceneHoverEndSignalled()
    754 {
    755   LOG(1, "GLWorldView::sceneHoverEndSignalled()");
    756   needsRedraw = true;
    757   emit changed();
    758 }
     734  emit updated();
     735}
  • src/UIElements/Views/Qt4/Qt3D/GLWorldView.hpp

    r4e124d r57608e  
    5959
    6060public slots:
    61   void changeSignalled();
    62   void checkChanges();
    6361  void sceneChangeSignalled();
     62  void triggerUpdateGL();
    6463  void sceneHoverSignalled(const atomId_t _id);
    6564  void sceneHoverSignalled(const moleculeId_t _id, int);
    66   void sceneHoverEndSignalled();
    6765  void changeDreiBein();
    6866  void changeDomain();
    6967
    7068signals:
    71   void changed();
     69  void updated();
     70  void sceneUpdated();
    7271  void TimeChanged();
    7372  void worldSelectionChanged();
Note: See TracChangeset for help on using the changeset viewer.