ATLAS Offline Software
Public Types | Signals | Public Member Functions | Static Public Member Functions | Protected Types | Protected Slots | Protected Member Functions | Private Types | Private Slots | Private Member Functions | Private Attributes | List of all members
Example3DChannel3 Class Reference

#include <Example3DChannel3.h>

Inheritance diagram for Example3DChannel3:
Collaboration diagram for Example3DChannel3:

Public Types

enum  Type {
  UNKNOWN = 0, THREEDIMENSIONAL, TWODIMENSIONAL, HISTOGRAM,
  NUMBERS
}
 

Signals

void message (QString)
 
void uniqueNameChanged (const QString &)
 
void systemRefreshInfoChanged (QString sysrefreshing, int nsysOn, int nsysOnRefreshed)
 

Public Member Functions

 Example3DChannel3 ()
 
void init ()
 
virtual ~Example3DChannel3 ()
 
void create ()
 
virtual QPixmap getSnapshot (bool transp=false, int width=0, bool batch=false)
 
virtual void lastOfActiveSystemsRefreshed ()
 
virtual void systemRefreshed (IVP1System *)
 
virtual void systemErased (IVP1System *)
 
virtual QByteArray saveState ()
 
virtual void restoreFromState (QByteArray)
 
void launchStereoEditor ()
 
bool isAntiAliasing ()
 
bool setAntiAliasing (bool)
 
Type type () const
 
void setUpdatesEnabled (bool enable)
 
virtual void goingToNextEvent ()
 
virtual bool isAccumulator () const
 
void setRunEvtNumber (int runnumber, unsigned long long eventnumber)
 
const QString & name () const
 
const QString unique_name () const
 
const QString & information () const
 
const QString & contact_info () const
 

Static Public Member Functions

static QString str (const QString &s)
 
static QString str (const char *c)
 
static QString str (const bool b)
 
static QString str (const QColor &)
 
static QString str (const SbColor &)
 
static QString str (const VP1Interval &)
 
static QString str (const SbVec2d &)
 
static QString str (const SbVec2f &)
 
static QString str (const SbVec2s &)
 
static QString str (const SbVec3d &)
 
static QString str (const SbVec3f &)
 
static QString str (const SbVec3s &)
 
static QString str (const SbVec4d &)
 
static QString str (const SbVec4f &)
 
static QString str (short int n)
 
static QString str (unsigned short int n)
 
static QString str (long n)
 
static QString str (ulong n)
 
static QString str (int n)
 
static QString str (uint n)
 
static QString str (qlonglong n)
 
static QString str (qulonglong n)
 
static QString str (const double &d)
 
static QString str (const float &f)
 
static QString str (const void *)
 
template<class T >
static QString str (const T *t)
 
template<class T >
static QString str (const QFlags< T > &f)
 
template<class T >
static QString str (const HepGeom::BasicVector3D< T > &t)
 
static QString str (const Amg::Vector3D &t)
 
template<class T >
static QString str (const QList< T > &t)
 

Protected Types

enum  SystemOption {
  AllowAll = 0x0000, DisallowExtraDisplayWidget = 0x0002, DisallowSwitchable =0x0004, DisallowController = 0x0008,
  StartDisabled = 0x0010, DisallowCameraAccess = 0x0060
}
 

Protected Slots

void showControlsForSystem ()
 

Protected Member Functions

void addSystem (IVP13DSystem *, const SystemOptions &options=AllowAll)
 
void addSystem (IVP13DSystemSimple *, const SystemOptions &options=AllowAll)
 
void dockResized ()
 
void stopSpinning ()
 
void registerRenderArea (VP1ExaminerViewer *)
 
virtual void uncreate ()
 
void turnOn (IVP1System *)
 
void turnOff (IVP1System *, const bool &immediateErase=true)
 
void getRunEvtNumber (int &runnumber, unsigned long long &eventnumber)
 
void setEvtTimestamp (unsigned timestamp)
 
void getEvtTimestamp (unsigned &timestamp)
 
void registerController (QWidget *)
 
void registerSystem (IVP1System *)
 

Private Types

enum  State { CONSTRUCTED =0, READY, UNCREATED }
 

Private Slots

void toggleSystemActive ()
 
void updateSnapshotDim ()
 
void setImageFromPresets ()
 

Private Member Functions

unsigned cloneID () const
 
QWidget * controllerWidget ()
 
void emitRefreshInfoChanged ()
 
bool hasRefreshingSystem ()
 
void setCloneID (unsigned id)
 
const std::set< IVP1System * > & systems ()
 
void deleteControllers ()
 
State state () const
 
void setState (const State &)
 
void setCanRegister (const bool &controller, const bool &system)
 

Private Attributes

Impm_d
 

Detailed Description

Definition at line 20 of file Example3DChannel3.h.

Member Enumeration Documentation

◆ State

enum IVP1ChannelWidget::State
privateinherited
Enumerator
CONSTRUCTED 
READY 
UNCREATED 

Definition at line 130 of file IVP1ChannelWidget.h.

130 { CONSTRUCTED=0, READY, UNCREATED };

◆ SystemOption

Enumerator
AllowAll 
DisallowExtraDisplayWidget 
DisallowSwitchable 
DisallowController 
StartDisabled 
DisallowCameraAccess 

Definition at line 33 of file IVP13DStandardChannelWidget.h.

33  {
34  AllowAll = 0x0000,
35  DisallowExtraDisplayWidget = 0x0002,//Any extra display widget provided by this wont be present in the GUI
36  DisallowSwitchable=0x0004,//User can not turn 3d objects from this system on/off.
37  DisallowController = 0x0008,//Any custom controller provided by this wont be present in the GUI
38  StartDisabled = 0x0010,
39  DisallowCameraAccess = 0x0060
40  };

◆ Type

enum IVP1ChannelWidget::Type
inherited
Enumerator
UNKNOWN 
THREEDIMENSIONAL 
TWODIMENSIONAL 
HISTOGRAM 
NUMBERS 

Definition at line 46 of file IVP1ChannelWidget.h.

Constructor & Destructor Documentation

◆ Example3DChannel3()

Example3DChannel3::Example3DChannel3 ( )

Definition at line 19 of file Example3DChannel3.cxx.

21  "This channel is an example of a 3D"
22  " channel which displays the 3D scene"
23  " delivered by the Example3DSystem3 (along with geometry).",
24  "Thomas.Kittelmann@cern.ch")
25 {
26 }

◆ ~Example3DChannel3()

virtual Example3DChannel3::~Example3DChannel3 ( )
inlinevirtual

Definition at line 28 of file Example3DChannel3.h.

28 {}

Member Function Documentation

◆ addSystem() [1/2]

void IVP13DStandardChannelWidget::addSystem ( IVP13DSystem system,
const SystemOptions &  options = AllowAll 
)
protectedinherited

Definition at line 135 of file IVP13DStandardChannelWidget.cxx.

135  {
136 
137 
138  bool switchable = ! (options & DisallowSwitchable);
139  bool allowController = ! (options & DisallowController);
140  bool allowExtraDisplayWidget = ! (options & DisallowExtraDisplayWidget);
141  bool startDisabled = (options & StartDisabled);
142 
143  registerSystem(system);
144  if (!( options & DisallowCameraAccess ))
145  m_d->systemsAllowedCameraList << system;
146 
147  SoSeparator * sysroot = system->getSceneGraph();
148  assert(!m_d->system2rootNodes.contains(system));
149  m_d->system2rootNodes.insert(system,sysroot);
150  m_d->root->addChild(sysroot);
151 
152  m_d->system2switchable << QPair<IVP1System*,bool>(system,switchable);
153 
154  assert(!m_d->system2startdisabled.contains(system));
155  m_d->system2startdisabled.insert(system,startDisabled);
156  assert(m_d->system2startdisabled.contains(system));
157 
158  if (allowController) {
159  m_d->systemsAllowedControllers << system;
160  connect(system,SIGNAL(itemFromSystemSelected()),this,SLOT(showControlsForSystem()));
161  }
162 
163  if (allowExtraDisplayWidget)
165 }

◆ addSystem() [2/2]

void IVP13DStandardChannelWidget::addSystem ( IVP13DSystemSimple sys,
const SystemOptions &  options = AllowAll 
)
protectedinherited

Definition at line 430 of file IVP13DStandardChannelWidget.cxx.

431 {
433 }

◆ cloneID()

unsigned IVP1ChannelWidget::cloneID ( ) const
privateinherited

Definition at line 197 of file IVP1ChannelWidget.cxx.

198 {
199  return m_d->cloneid;
200 }

◆ contact_info()

const QString & IVP1ChannelWidget::contact_info ( ) const
inherited

Definition at line 191 of file IVP1ChannelWidget.cxx.

192 {
193  return m_d->contact_info;
194 }

◆ controllerWidget()

QWidget * IVP1ChannelWidget::controllerWidget ( )
privateinherited

Definition at line 77 of file IVP1ChannelWidget.cxx.

78 {
79  return m_d->controller;
80 }

◆ create()

void IVP13DStandardChannelWidget::create ( )
virtualinherited

Reimplemented from IVP1ChannelWidget.

Definition at line 168 of file IVP13DStandardChannelWidget.cxx.

168  {
169 
170  //Set up the controller.
171  QWidget * snapshotgroupbox = new QWidget();
172  m_d->uisnapshot.setupUi(snapshotgroupbox);
173 
174  VP1ColorSelectButton * colorselectbutton_dummy;
179  colorselectbutton_dummy,
180  snapshotgroupbox,true ));
181  short x,y;
182  SoOffscreenRenderer::getMaximumResolution().getValue(x,y);
183 
184  // now the range is set in the ui file.
185 // m_d->uisnapshot.spinBox_width->setRange ( 1, x/4 - 10 );
186 // m_d->uisnapshot.spinBox_height->setRange ( 1, y/4 - 10 );
187 
188  connect(m_d->uisnapshot.checkBox_as_shown,SIGNAL(toggled(bool)),this,SLOT(updateSnapshotDim()));
189  connect(m_d->uisnapshot.spinBox_width,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
190  connect(m_d->uisnapshot.spinBox_height,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
191  connect(m_d->uisnapshot.radioButton_width,SIGNAL(toggled(bool)),this,SLOT(updateSnapshotDim()));
192  connect(m_d->uisnapshot.radioButton_height,SIGNAL(toggled(bool)),this,SLOT(updateSnapshotDim()));
193 
194  connect(m_d->uisnapshot.groupBox_imagePresets,SIGNAL(toggled(bool)),this,SLOT(setImageFromPresets()));
195  connect(m_d->uisnapshot.radioButton_720p,SIGNAL(toggled(bool)),this,SLOT(setImageFromPresets()));
196  connect(m_d->uisnapshot.radioButton_1080p,SIGNAL(toggled(bool)),this,SLOT(setImageFromPresets()));
197  connect(m_d->uisnapshot.radioButton_4K,SIGNAL(toggled(bool)),this,SLOT(setImageFromPresets()));
198  connect(m_d->uisnapshot.radioButton_8K,SIGNAL(toggled(bool)),this,SLOT(setImageFromPresets()));
199 
200 
201  // m_d->systemsAllowedControllers.clear();
202  m_d->system2switchable.clear();
203 
204  QMapIterator<QCheckBox*,IVP1System*> it(m_d->checkbox2system);
205  while (it.hasNext()) {
206  it.next();
207 
208  assert(m_d->system2startdisabled.contains(it.value()));
209  if (m_d->system2startdisabled[it.value()]) {
210  it.key()->setChecked(false);
211  m_d->updateSystemState(it.key());
212  }
213 
214  connect(it.key(),SIGNAL(toggled(bool)),this,SLOT(toggleSystemActive()));
215 
216  }
217 
218  QTimer::singleShot(0, this, SLOT(updateSnapshotDim()));
219 
220 
221  //Setup viewer (with possible splitter for extra widgets):
222  QList<QPair<QString,QWidget*> > sysname2extradisplay;
224  QWidget * edwidget = sys->buildExtraDisplayWidget();
225  if (edwidget)
226  sysname2extradisplay << QPair<QString,QWidget*>(sys->name(),edwidget);
227  }
228 
229  if (sysname2extradisplay.count()==0) {
231  setMinimumSize(m_d->min3dx,m_d->min3dy);
232  } else if (sysname2extradisplay.count()==1) {
233  m_d->setupSplitter(sysname2extradisplay.front().second);
234  } else if (sysname2extradisplay.count()>1) {
235  VP1TabWidget * tabWidget = new VP1TabWidget();
236  for (int i = 0; i < sysname2extradisplay.count(); ++i) {
237  tabWidget->addTab(sysname2extradisplay.at(i).second,sysname2extradisplay.at(i).first);
238  }
239  tabWidget->setCurrentIndex(0);
240  m_d->setupSplitter(tabWidget);
241  }
242 
243  registerRenderArea(m_d->viewer);//remember this...
244 
246  m_d->viewer->setGLRenderAction(new SoLineHighlightRenderAction());
247  //m_d->viewer->setGLRenderAction(new SoBoxHighlightRenderAction());
248 
249  // Default Transparency Type
250  // m_d->viewer->setTransparencyType( SoGLRenderAction::DELAYED_BLEND ); // old
251  m_d->viewer->setTransparencyType( SoGLRenderAction::BLEND ); // this looks better for geometry volumes
252 
253  //Setup camera info:
255  sys->registerViewer(m_d->viewer);
256 
257 
258  /* We want to change the default value for the "As shown" option
259  * At the beginning the option was set to True by default, but
260  * the most used setting when creating event displays for ATLAS is
261  * False, because we want to save the full image as a snapshot,
262  * without the frame and buttons from VP1.
263  * So we now set it to False by default.
264  * (We do that with setChecked() in order to not having to change
265  * the whole logics behind.
266  */
267  m_d->uisnapshot.checkBox_as_shown->setChecked(false); // fixme: check if that works, or if it's still TRUE
268 
269 }

◆ deleteControllers()

void IVP1ChannelWidget::deleteControllers ( )
privateinherited

Definition at line 161 of file IVP1ChannelWidget.cxx.

162 {
164  for (it=m_d->systems.begin();it!=itE;++it) {
165  // assert((*it)->state()==IVP1System::ERASED);
166  if (*it)
167  (*it)->deleteController();
168  }
169  if (m_d->controller)
170  m_d->controller->deleteLater();
171  m_d->controller = 0;
172 }

◆ dockResized()

void IVP13DStandardChannelWidget::dockResized ( )
protectedvirtualinherited

Reimplemented from IVP1ChannelWidget.

Definition at line 620 of file IVP13DStandardChannelWidget.cxx.

621 {
622  VP1Msg::messageVerbose("IVP13DStandardChannelWidget::dockResized()");
623  QTimer::singleShot(0, this, SLOT(updateSnapshotDim()));
625 }

◆ emitRefreshInfoChanged()

void IVP1ChannelWidget::emitRefreshInfoChanged ( )
privateinherited

Definition at line 268 of file IVP1ChannelWidget.cxx.

269 {
270  int nsysOn(0), nsysOnRefreshed(0);
271  QString sysrefreshing;
273  for (it=m_d->systems.begin();it!=itE;++it) {
274  if ((*it)->activeState()==IVP1System::ON) {
275  ++nsysOn;
276  if((*it)->state()==IVP1System::REFRESHED)
277  ++nsysOnRefreshed;
278  if ((*it)->isRefreshing()) {
279  assert(sysrefreshing.isEmpty());
280  sysrefreshing=(*it)->name();
281  }
282  }
283  }
284  //Fixme: Only emit if actually changed.
285  systemRefreshInfoChanged(sysrefreshing, nsysOn, nsysOnRefreshed);
286 }

◆ getEvtTimestamp()

void IVP1ChannelWidget::getEvtTimestamp ( unsigned &  timestamp)
protectedinherited

Definition at line 262 of file IVP1ChannelWidget.cxx.

263 {
264  timestamp = m_d->timestamp;
265 }

◆ getRunEvtNumber()

void IVP1ChannelWidget::getRunEvtNumber ( int &  runnumber,
unsigned long long &  eventnumber 
)
protectedinherited

Definition at line 255 of file IVP1ChannelWidget.cxx.

256 {
258  eventnumber = m_d->eventnumber;
259 }

◆ getSnapshot()

QPixmap IVP13DStandardChannelWidget::getSnapshot ( bool  transp = false,
int  width = 0,
bool  batch = false 
)
virtualinherited

Reimplemented from IVP13DChannelWidget.

Definition at line 443 of file IVP13DStandardChannelWidget.cxx.

444 {
445  VP1Msg::messageDebug("IVP13DStandardChannelWidget::getSnapshot() - transparent bkg: "+QString::number(transp)+" , width: "+QString::number(width)+" , batch: "+QString::number(batch));
446  // SoToVRML2Action tovrml2;
447  // tovrml2.apply(m_d->selection);
448  // SoVRMLGroup *newroot = tovrml2.getVRML2SceneGraph();
449  // newroot->ref();
450  // SoOutput out;
451  // out.openFile("out.wrl");
452  // out.setHeaderString("#VRML V2.0 utf8");
453  // SoWriteAction wra(&out);
454  // wra.apply(newroot);
455  // out.closeFile();
456 
457 
458  VP1Msg::messageVerbose("checkBox_as_shown: " + QString::number(m_d->uisnapshot.checkBox_as_shown->isChecked()) );
459  VP1Msg::messageVerbose("spinBox_width: " + QString::number(m_d->uisnapshot.spinBox_width->value()) );
460  VP1Msg::messageVerbose("spinBox_height: " + QString::number(m_d->uisnapshot.spinBox_height->value()) );
461  VP1Msg::messageVerbose("checkBox_transp: " + QString::number(m_d->uisnapshot.checkBox_transp->isChecked()) );
462 
463  if (m_d->uisnapshot.checkBox_as_shown->isChecked()) {
464  VP1Msg::messageVerbose("'As shown' option checked - using IVP13DChannelWidget::getSnapshot()");
466  }
467  VP1Msg::messageVerbose("'As shown' option NOT checked");
468 
469  // if width is set programmatically, we set the new value in the GUI field
470  int original_width = 0;
471  if (width) {
472  VP1Msg::messageVerbose("'width' passed at function call. Setting the value of the GUI field to: " + QString::number(width));
473  original_width = m_d->uisnapshot.spinBox_width->value();
474  m_d->uisnapshot.spinBox_width->setValue( width );
475  }
476 
477 
478  // if transparent bkg is requested programmatically, we force it
479  if (transp) {
480  VP1Msg::messageVerbose("'transp' option set - using VP1QtInventorUtils::renderToPixmap() with transp set to 'true'");
482  m_d->uisnapshot.spinBox_width->value(),
483  m_d->uisnapshot.spinBox_height->value(),
484  true);
485  }
486 
487  // if changed programatically, set the width back to the original value set by the user
488  if (width) m_d->uisnapshot.spinBox_width->setValue( original_width );
489 
490  // default, with user's preferences from the GUI
491  VP1Msg::messageVerbose("save the screenshot with the default tool (with settings from GUI) - using VP1QtInventorUtils::renderToPixmap()");
493  m_d->uisnapshot.spinBox_width->value(),
494  m_d->uisnapshot.spinBox_height->value(),
495  m_d->uisnapshot.checkBox_transp->isChecked());
496 
497  //return QPixmap(); // for DEBUG
498 
499 }

◆ goingToNextEvent()

void IVP13DChannelWidget::goingToNextEvent ( )
virtualinherited

Reimplemented from IVP1ChannelWidget.

Definition at line 114 of file IVP13DChannelWidget.cxx.

115 {
116  //Stop spinning and abort any ongoing animations:
117  m_d->it = m_d->renderareas.begin();
118  for (;m_d->it!=m_d->itE;++(m_d->it)) {
119  VP1ExaminerViewer* ra = *(m_d->it);
120  if (ra->getTypeId().isDerivedFrom(SoQtViewer::getClassTypeId())) {
121  VP1CameraHelper::abortAnyCurrentZoom(static_cast<SoQtViewer*>(ra)->getCamera());
122  if (ra->getTypeId().isDerivedFrom(SoQtExaminerViewer::getClassTypeId())) {
123  if (static_cast<SoQtExaminerViewer*>(ra)->isAnimating())
124  static_cast<SoQtExaminerViewer*>(ra)->stopAnimating();
125  }
126  }
127  }
128 }

◆ hasRefreshingSystem()

bool IVP1ChannelWidget::hasRefreshingSystem ( )
privateinherited

Definition at line 289 of file IVP1ChannelWidget.cxx.

289  {
291  for (it=m_d->systems.begin();it!=itE;++it) {
292  if ((*it)->isRefreshing())
293  return true;
294  }
295  return false;
296 }

◆ information()

const QString & IVP1ChannelWidget::information ( ) const
inherited

Definition at line 185 of file IVP1ChannelWidget.cxx.

186 {
187  return m_d->information;
188 }

◆ init()

void Example3DChannel3::init ( )
virtual

Implements IVP1ChannelWidget.

Definition at line 28 of file Example3DChannel3.cxx.

◆ isAccumulator()

bool IVP1ChannelWidget::isAccumulator ( ) const
virtualinherited

Definition at line 83 of file IVP1ChannelWidget.cxx.

84 {
85  return false;
86 }

◆ isAntiAliasing()

bool IVP13DStandardChannelWidget::isAntiAliasing ( )
virtualinherited

Reimplemented from IVP1ChannelWidget.

Definition at line 100 of file IVP13DStandardChannelWidget.cxx.

101 {
102  return m_d->viewer->isAntiAlias();
103 }

◆ lastOfActiveSystemsRefreshed()

void IVP13DStandardChannelWidget::lastOfActiveSystemsRefreshed ( )
virtualinherited

Reimplemented from IVP1ChannelWidget.

Definition at line 331 of file IVP13DStandardChannelWidget.cxx.

332 {
333  VP1Msg::messageVerbose("IVP13DStandardChannelWidget::lastOfActiveSystemsRefreshed() called.");
334 
335  if (m_d->need_initial_viewall) {
336  m_d->viewer->viewAll();
338  m_d->need_initial_viewall=false;
339  }
340 
341  if(VP1QtUtils::environmentVariableIsSet("VP1_SCREENSHOTS_DIR"))
342  m_d->autoSnapshot();
343 
344  if (m_d->viewer->startTourEachEvent())
345  m_d->viewer->startTour();
346 
347  // apparently this is the last method called when all systems have been drawn
348  // so we call here the renderPixmap() method is we are in "batch-mode"
349 
350 
351 
352 }

◆ launchStereoEditor()

void IVP13DStandardChannelWidget::launchStereoEditor ( )
inherited

Definition at line 86 of file IVP13DStandardChannelWidget.cxx.

87 {
89 }

◆ message

void IVP1ChannelWidget::message ( QString  )
signalinherited

◆ name()

const QString & IVP1ChannelWidget::name ( ) const
inherited

Definition at line 180 of file IVP1ChannelWidget.cxx.

181 {
182  return m_d->name;
183 }

◆ registerController()

void IVP1ChannelWidget::registerController ( QWidget *  w)
protectedinherited

Definition at line 210 of file IVP1ChannelWidget.cxx.

211 {
212  assert(m_d->canregistercontroller&&"Please only register controllers during create()");
213  assert(m_d->state==CONSTRUCTED);
214  assert(w&&"IVP1ChannelWidget::registerController(...) called with null pointer!!");
215  assert(!m_d->controller&&"IVP1ChannelWidget::registerController(...) called twice!!");
216  m_d->controller = w;
217  w->setParent(0);
218 }

◆ registerRenderArea()

void IVP13DChannelWidget::registerRenderArea ( VP1ExaminerViewer ra)
protectedinherited

Definition at line 94 of file IVP13DChannelWidget.cxx.

95 {
96  if (!ra) {
97  message("Error - tried to register NULL render area!");
98  return;
99  }
100 
102 
103  m_d->renderareas.push_back(ra);
104  m_d->itE = m_d->renderareas.end();
105 
106  //To make sure that it is the actual 3D widget that gets focus when
107  //we e.g. click anywhere else in the widget where the render area is
108  //placed within:
109  if (ra->getParentWidget()&&ra->getWidget())
110  ra->getParentWidget()->setFocusProxy(ra->getWidget());
111 }

◆ registerSystem()

void IVP1ChannelWidget::registerSystem ( IVP1System s)
protectedinherited

Definition at line 221 of file IVP1ChannelWidget.cxx.

222 {
223  assert(m_d->canregistersystem&&"Please only register systems during the channel constructor");
224  assert(m_d->state==CONSTRUCTED);
225  assert(m_d->systems.find(s)==m_d->systems.end()&&"IVP1ChannelWidget::registerSystem(...) called twice on the same system!!");
226  m_d->systems.insert(s);
227  s->setChannel(this);
228 }

◆ restoreFromState()

void IVP13DStandardChannelWidget::restoreFromState ( QByteArray  ba)
virtualinherited

Reimplemented from IVP13DChannelWidget.

Definition at line 771 of file IVP13DStandardChannelWidget.cxx.

772 {
773  VP1Msg::messageVerbose("IVP13DStandardChannelWidget::restoreFromState");
774 
775  // ===> Setup stream for getting the contents of the byteArray:
776  QBuffer buffer(&ba);
777  buffer.open(QIODevice::ReadOnly);
778  QDataStream state(&buffer);
779  // ===> Check version and pass on state info to base class:
780  qint32 version;
781  state >> version;
782 
783  message("Configuration file version: " + QString::number(version) );
784 
785  if (version<0||version>7) {
786  message("Warning: State data in .vp1 file is in wrong format - ignoring!");
787  return;
788  }
789 
790  QByteArray basestate;
791  state >> basestate;
793 
794 
795  // ===> Decode the state info:
796 
797  if (version == 7)
799 
800  if (version<=3) {
801  QColor bgdcol_dummy;
802  state >> bgdcol_dummy;
803  }
804 
805  //Switch systems on/off:
806  QMap<QString, bool> sysname2turnedon;
807  state >> sysname2turnedon;
808  QMap<QCheckBox*,IVP1System*>::const_iterator it = m_d->checkbox2system.constBegin();
809  while (it != m_d->checkbox2system.constEnd()) {
810  if (sysname2turnedon.contains(it.key()->text())) {
811  if (sysname2turnedon[it.key()->text()]!=it.key()->isChecked())
812  it.key()->setChecked(sysname2turnedon[it.key()->text()]);
813  } else {
814  message("Warning: Config data does not contain information about switched state of subsystem '"+it.key()->text()+"'");
815  }
816  ++it;
817  }
818 
819  if (version<=2) {
820  // We stop here to avoid too messy code.
821  buffer.close();
822  return;
823  }
824 
825  //Splitter:
826  QByteArray splitstate;
827  state >> splitstate;
829  m_d->extradisplaywidget_splitter->restoreState(splitstate);
830 
831  //Viewer settings:
832  QByteArray ba_viewer;
833  state >> ba_viewer;
834  m_d->viewer->restoreFromState(ba_viewer);//Fixme: reset camera???
835  m_d->need_initial_viewall = false;
836 
837  //Snapshot parameters:
838  bool aa_dummy, transp, widthfixed, as_shown;
839  if (version<=3)
840  state >> aa_dummy;
841  state >> transp; state >> widthfixed; state >> as_shown;
842  m_d->uisnapshot.checkBox_transp->setChecked(transp);
843  m_d->uisnapshot.checkBox_as_shown->setChecked(as_shown);
844  if (widthfixed) {
845  m_d->uisnapshot.radioButton_width->setChecked(true);
846  m_d->uisnapshot.radioButton_height->setChecked(false);
847  } else {
848  m_d->uisnapshot.radioButton_width->setChecked(false);
849  m_d->uisnapshot.radioButton_height->setChecked(true);
850  }
851  if (!as_shown) {
852  qint32 fixval;
853  state >> fixval;
854  if (widthfixed)
855  m_d->uisnapshot.spinBox_width->setValue(fixval);
856  else
857  m_d->uisnapshot.spinBox_height->setValue(fixval);
858  }
859 
860  QString tabname;
861  state >> tabname;
862  if (m_d->tabwidget) {
863  for (int i = 0; i < m_d->tabwidget->count(); ++i) {
864  if (m_d->tabwidget->tabText(i) == tabname) {
865  m_d->tabwidget->setCurrentIndex(i);
866  break;
867  }
868  }
869  }
870 
871  if (version==5) {
872  bool b;
873  state >> b;
874  }
875 
876 
877  // ===> Finish up:
878  buffer.close();
879 }

◆ saveState()

QByteArray IVP13DStandardChannelWidget::saveState ( )
virtualinherited

Reimplemented from IVP13DChannelWidget.

Definition at line 628 of file IVP13DStandardChannelWidget.cxx.

629 {
630  VP1Msg::messageVerbose("IVP13DStandardChannelWidget::saveState");
631 
632 
633  // NEW VERSION
634 
635 //
636 // // ===> Setup stream writing to a byteArray:
637 // QByteArray byteArray;
638 // QBuffer buffer(&byteArray);
639 // buffer.open(QIODevice::WriteOnly);
640 // QDataStream out(&buffer);
641 //
642 // /*
643 // * --- GET DATA TO BE SAVED ---
644 // */
645 //
646 // //Systems turned on/off:
647 // //Fixme: Make sure that if you have two copies of the same system,
648 // //that the text in the checkbox gets appended some stuff like [1],
649 // //[2], etc., so that the strings used here will be unique.
650 // QMap<QString, bool> sysname2turnedon;
651 // QMap<QCheckBox*,IVP1System*>::const_iterator it = m_d->checkbox2system.constBegin();
652 // while (it != m_d->checkbox2system.constEnd()) {
653 // sysname2turnedon.insert(it.key()->text(),it.key()->isChecked());
654 // ++it;
655 // }
656 //
657 //
658 // // snapshot settings
659 // bool transp_checked = m_d->uisnapshot.checkBox_transp->isChecked();
660 // bool widthfixed = m_d->uisnapshot.radioButton_width->isChecked();
661 // bool as_shown = m_d->uisnapshot.checkBox_as_shown->isChecked();
662 //
663 // bool locked_ratio = m_d->uisnapshot.checkBox_lockRatio->isChecked();
664 //
665 // qint32 width = (qint32)(m_d->uisnapshot.spinBox_width->value());
666 // qint32 height = (qint32)(m_d->uisnapshot.spinBox_height->value());
667 //
668 // // image presets
669 // bool isUsingPreset = m_d->uisnapshot.groupBox_imagePresets->isChecked();
670 // bool is720p = m_d->uisnapshot.radioButton_720p->isChecked();
671 // bool is1080p = m_d->uisnapshot.radioButton_1080p->isChecked();
672 // bool is4K = m_d->uisnapshot.radioButton_4K->isChecked();
673 // bool is8K = m_d->uisnapshot.radioButton_8K->isChecked();
674 //
675 // // active tab
676 // QString tab_index = (m_d->tabwidget ? m_d->tabwidget->tabText(m_d->tabwidget->currentIndex()) : QString("") );
677 //
678 //
679 // /*
680 // * --- WRITE DATA ---
681 // */
682 //
683 // // ------- SAVE -------
684 // out << (qint32)7; //version
685 // out << IVP13DChannelWidget::saveState();//Always include state info from the base class.
686 // out << sysname2turnedon;
687 // out << ( m_d->extradisplaywidget_splitter ? m_d->extradisplaywidget_splitter->saveState() : QByteArray() );
688 // out << m_d->viewer->saveState();
689 // out << transp_checked;
690 // out << widthfixed;
691 // out << as_shown;
692 // out << locked_ratio; // new in v. 7
693 // out << width; // new in v. 7
694 // out << height; // new in v. 7
695 // out << isUsingPreset; // new in v. 7
696 // out << is720p; // new in v. 7
697 // out << is1080p; // new in v. 7
698 // out << is4K; // new in v. 7
699 // out << is8K; // new in v. 7
700 // out << tab_index;
701 // // --------------------
702 //
703 // // ===> Finish up:
704 // buffer.close();
705 // return byteArray;
706 //
707 //
708 
709 
710 
711  // OLD VERSION
712 
713  // ===> Setup stream writing to a byteArray:
714  QByteArray byteArray;
715  QBuffer buffer(&byteArray);
716  buffer.open(QIODevice::WriteOnly);
717  QDataStream out(&buffer);
718 
719  // ===> Write Data:
720 
721  //Version & base state:
722  out << (qint32)6; //version
723  out << IVP13DChannelWidget::saveState();//Always include state info from the base class.
724 
725  //version 3 had bgd color output here;
726 
727  //Systems turned on/off:
728  //Fixme: Make sure that if you have two copies of the same system,
729  //that the text in the checkbox gets appended some stuff like [1],
730  //[2], etc., so that the strings used here will be unique.
731  QMap<QString, bool> sysname2turnedon;
732  QMap<QCheckBox*,IVP1System*>::const_iterator it = m_d->checkbox2system.constBegin();
733  while (it != m_d->checkbox2system.constEnd()) {
734  sysname2turnedon.insert(it.key()->text(),it.key()->isChecked());
735  ++it;
736  }
737 
738  //Versions 3+ follow here.
739 
740  out << sysname2turnedon;
741 
742  out << ( m_d->extradisplaywidget_splitter ? m_d->extradisplaywidget_splitter->saveState() : QByteArray() );
743 
744  out << m_d->viewer->saveState();
745 
746  //version <=3 had bool here.
747 
748  out << m_d->uisnapshot.checkBox_transp->isChecked();
749  bool widthfixed = m_d->uisnapshot.radioButton_width->isChecked();
750  bool as_shown = m_d->uisnapshot.checkBox_as_shown->isChecked();
751  out << widthfixed;
752  out << as_shown;
753  if (!as_shown)
754  out << (qint32)(widthfixed ? m_d->uisnapshot.spinBox_width->value() : m_d->uisnapshot.spinBox_height->value());
755 
756  if (m_d->tabwidget)
757  out << m_d->tabwidget->tabText(m_d->tabwidget->currentIndex());
758  else
759  out << QString("");
760 
761  //In version 5 we output a bool here.
762 
763  // ===> Finish up:
764  buffer.close();
765  return byteArray;
766 
767 
768 }

◆ setAntiAliasing()

bool IVP13DStandardChannelWidget::setAntiAliasing ( bool  aa)
virtualinherited

Reimplemented from IVP1ChannelWidget.

Definition at line 93 of file IVP13DStandardChannelWidget.cxx.

94 {
96  return true;
97 }

◆ setCanRegister()

void IVP1ChannelWidget::setCanRegister ( const bool &  controller,
const bool &  system 
)
privateinherited

Definition at line 299 of file IVP1ChannelWidget.cxx.

300 {
303 }

◆ setCloneID()

void IVP1ChannelWidget::setCloneID ( unsigned  id)
privateinherited

Definition at line 203 of file IVP1ChannelWidget.cxx.

204 {
205  m_d->cloneid=id;
207 }

◆ setEvtTimestamp()

void IVP1ChannelWidget::setEvtTimestamp ( unsigned  timestamp)
protectedinherited

Definition at line 96 of file IVP1ChannelWidget.cxx.

97 {
98  m_d->timestamp = timestamp;
99 }

◆ setImageFromPresets

void IVP13DStandardChannelWidget::setImageFromPresets ( )
privateslotinherited

Definition at line 502 of file IVP13DStandardChannelWidget.cxx.

503 {
504  VP1Msg::messageDebug("IVP13DStandardChannelWidget::setImageFromPresets()");
505 
506  disconnect(m_d->uisnapshot.spinBox_width,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
507  disconnect(m_d->uisnapshot.spinBox_height,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
508 
509  if (m_d->uisnapshot.radioButton_720p->isChecked()) {
510  m_d->uisnapshot.spinBox_width->setValue(1280);
511  m_d->uisnapshot.spinBox_height->setValue(720);
512  }
513  else if (m_d->uisnapshot.radioButton_1080p->isChecked()) {
514  m_d->uisnapshot.spinBox_width->setValue(1920);
515  m_d->uisnapshot.spinBox_height->setValue(1080);
516  }
517  else if (m_d->uisnapshot.radioButton_4K->isChecked()) {
518  m_d->uisnapshot.spinBox_width->setValue(4096);
519  m_d->uisnapshot.spinBox_height->setValue(2160);
520  }
521  else if (m_d->uisnapshot.radioButton_8K->isChecked()) {
522  m_d->uisnapshot.spinBox_width->setValue(8192);
523  m_d->uisnapshot.spinBox_height->setValue(4320);
524  }
525  else {
526  VP1Msg::messageDebug("ERROR! Sender unknown!!");
527  }
528 
529  connect(m_d->uisnapshot.spinBox_width,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
530  connect(m_d->uisnapshot.spinBox_height,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
531 
532  // update
534 }

◆ setRunEvtNumber()

void IVP1ChannelWidget::setRunEvtNumber ( int  runnumber,
unsigned long long  eventnumber 
)
inherited

Definition at line 89 of file IVP1ChannelWidget.cxx.

90 {
92  m_d->eventnumber = eventnumber;
93 }

◆ setState()

void IVP1ChannelWidget::setState ( const State s)
privateinherited

Definition at line 108 of file IVP1ChannelWidget.cxx.

109 {
110 
111 #ifndef NDEBUG
112  assert(s!=CONSTRUCTED);
113  if (s==READY) {
114  assert(m_d->state==CONSTRUCTED);
115  }
116  if (s==UNCREATED) {
117  assert(m_d->state==READY);
118  }
119 #endif
120  m_d->state = s;
121 }

◆ setUpdatesEnabled()

void IVP13DChannelWidget::setUpdatesEnabled ( bool  enable)
inherited

Definition at line 83 of file IVP13DChannelWidget.cxx.

84 {
85  m_d->it = m_d->renderareas.begin();
86  for (;m_d->it!=m_d->itE;++(m_d->it)) {
87  (*(m_d->it))->setAutoRedraw(enable);
88  }
89  IVP1ChannelWidget::setUpdatesEnabled(enable);
90 }

◆ showControlsForSystem

void IVP13DStandardChannelWidget::showControlsForSystem ( )
protectedslotinherited

Definition at line 882 of file IVP13DStandardChannelWidget.cxx.

883 {
884  if (!m_d->tabwidget)
885  return;
886  IVP1System * sys = static_cast<IVP1System*>(sender());
887  if (!sys) {
888  message("showControlsForSystem Error: Unable to determine system identity.");
889  return;
890  }
891  if (!m_d->sys2tabpage.contains(sys)) {
892  //Dont send warning here. The system in question might simply not have a controller!
893  return;
894  }
895 
896  int index = m_d->tabwidget->indexOf(m_d->sys2tabpage[sys]);
897  if (index<0||!m_d->tabwidget->isTabEnabled(index)) {
898  message("Warning: Asked to show controller for a disabled system. Surely you jest?");
899  return;
900  }
901  m_d->tabwidget->setCurrentIndex(index);
902 }

◆ state()

IVP1ChannelWidget::State IVP1ChannelWidget::state ( ) const
privateinherited

Definition at line 102 of file IVP1ChannelWidget.cxx.

103 {
104  return m_d->state;
105 }

◆ stopSpinning()

void IVP13DStandardChannelWidget::stopSpinning ( )
protectedinherited

Definition at line 436 of file IVP13DStandardChannelWidget.cxx.

437 {
438  if (m_d->viewer->isAnimating())
439  m_d->viewer->stopAnimating();
440 }

◆ str() [1/30]

static QString VP1String::str ( const Amg::Vector3D t)
inlinestaticinherited

Definition at line 98 of file VP1String.h.

98 { return "("+str(t.x())+", "+str(t.y())+", "+str(t.z())+")"; }

◆ str() [2/30]

static QString VP1String::str ( const bool  b)
inlinestaticinherited

Definition at line 53 of file VP1String.h.

53 { return b?"True":"False"; }

◆ str() [3/30]

static QString VP1String::str ( const char *  c)
inlinestaticinherited

Definition at line 50 of file VP1String.h.

50 { return c; }

◆ str() [4/30]

static QString VP1String::str ( const double &  d)
inlinestaticinherited

Definition at line 81 of file VP1String.h.

81 { return QString::number(d); }

◆ str() [5/30]

static QString VP1String::str ( const float &  f)
inlinestaticinherited

Definition at line 82 of file VP1String.h.

82 { return QString::number(f); }

◆ str() [6/30]

template<class T >
static QString VP1String::str ( const HepGeom::BasicVector3D< T > &  t)
inlinestaticinherited

Definition at line 95 of file VP1String.h.

95 { return "("+str(t.x())+", "+str(t.y())+", "+str(t.z())+")"; }

◆ str() [7/30]

QString VP1String::str ( const QColor &  c)
staticinherited

Definition at line 30 of file VP1String.cxx.

31 {
32  return c.isValid() ? c.name() : "Invalid";
33 }

◆ str() [8/30]

template<class T >
static QString VP1String::str ( const QFlags< T > &  f)
inlinestaticinherited

Definition at line 91 of file VP1String.h.

91 { return "0x"+QString::number(f, 16).toUpper().rightJustified(8,'0'); }

◆ str() [9/30]

template<class T >
static QString VP1String::str ( const QList< T > &  t)
inlinestaticinherited

Definition at line 102 of file VP1String.h.

102 { return "QList of size"+QString::number(t.size()); }

◆ str() [10/30]

static QString VP1String::str ( const QString &  s)
inlinestaticinherited

Definition at line 49 of file VP1String.h.

49 { return s; }

◆ str() [11/30]

QString VP1String::str ( const SbColor &  c)
staticinherited

Definition at line 36 of file VP1String.cxx.

37 {
39 }

◆ str() [12/30]

QString VP1String::str ( const SbVec2d &  v)
staticinherited

Definition at line 61 of file VP1String.cxx.

61 { double x,y; v.getValue(x,y); return "("+str(x)+", "+str(y)+")"; }

◆ str() [13/30]

QString VP1String::str ( const SbVec2f &  v)
staticinherited

Definition at line 62 of file VP1String.cxx.

62 { float x,y; v.getValue(x,y); return "("+str(x)+", "+str(y)+")"; }

◆ str() [14/30]

QString VP1String::str ( const SbVec2s &  v)
staticinherited

Definition at line 63 of file VP1String.cxx.

63 { short x,y; v.getValue(x,y); return "("+str(x)+", "+str(y)+")"; }

◆ str() [15/30]

QString VP1String::str ( const SbVec3d &  v)
staticinherited

Definition at line 64 of file VP1String.cxx.

64 { double x,y,z; v.getValue(x,y,z); return "("+str(x)+", "+str(y)+", "+str(z)+")"; }

◆ str() [16/30]

QString VP1String::str ( const SbVec3f &  v)
staticinherited

Definition at line 65 of file VP1String.cxx.

65 { float x,y,z; v.getValue(x,y,z); return "("+str(x)+", "+str(y)+", "+str(z)+")"; }

◆ str() [17/30]

QString VP1String::str ( const SbVec3s &  v)
staticinherited

Definition at line 66 of file VP1String.cxx.

66 { short x,y,z; v.getValue(x,y,z); return "("+str(x)+", "+str(y)+", "+str(z)+")"; }

◆ str() [18/30]

QString VP1String::str ( const SbVec4d &  v)
staticinherited

Definition at line 67 of file VP1String.cxx.

67 { double x,y,z,t; v.getValue(x,y,z,t); return "("+str(x)+", "+str(y)+", "+str(z)+", "+str(t)+")"; }

◆ str() [19/30]

QString VP1String::str ( const SbVec4f &  v)
staticinherited

Definition at line 68 of file VP1String.cxx.

68 { float x,y,z,t; v.getValue(x,y,z,t); return "("+str(x)+", "+str(y)+", "+str(z)+", "+str(t)+")"; }

◆ str() [20/30]

template<class T >
static QString VP1String::str ( const T *  t)
inlinestaticinherited

Definition at line 87 of file VP1String.h.

87 { return str(static_cast<const void* >(t)); }

◆ str() [21/30]

QString VP1String::str ( const void *  p)
staticinherited

Definition at line 48 of file VP1String.cxx.

49 {
50  if (p) {
51  std::ostringstream s;
52  s << p;
53  // Explicitly naming QString here avoids a cppcheck warning.
54  return QString (s.str().c_str());
55  } else {
56  return "NULL";
57  }
58 }

◆ str() [22/30]

QString VP1String::str ( const VP1Interval i)
staticinherited

Definition at line 42 of file VP1String.cxx.

43 {
44  return i.toString();
45 }

◆ str() [23/30]

static QString VP1String::str ( int  n)
inlinestaticinherited

Definition at line 77 of file VP1String.h.

77 { return QString::number(n); }

◆ str() [24/30]

static QString VP1String::str ( long  n)
inlinestaticinherited

Definition at line 75 of file VP1String.h.

75 { return QString::number(n); }

◆ str() [25/30]

static QString VP1String::str ( qlonglong  n)
inlinestaticinherited

Definition at line 79 of file VP1String.h.

79 { return QString::number(n); }

◆ str() [26/30]

static QString VP1String::str ( qulonglong  n)
inlinestaticinherited

Definition at line 80 of file VP1String.h.

80 { return QString::number(n); }

◆ str() [27/30]

static QString VP1String::str ( short int  n)
inlinestaticinherited

Definition at line 73 of file VP1String.h.

73 { return QString::number(n); }

◆ str() [28/30]

static QString VP1String::str ( uint  n)
inlinestaticinherited

Definition at line 78 of file VP1String.h.

78 { return QString::number(n); }

◆ str() [29/30]

static QString VP1String::str ( ulong  n)
inlinestaticinherited

Definition at line 76 of file VP1String.h.

76 { return QString::number(n); }

◆ str() [30/30]

static QString VP1String::str ( unsigned short int  n)
inlinestaticinherited

Definition at line 74 of file VP1String.h.

74 { return QString::number(n); }

◆ systemErased()

void IVP13DStandardChannelWidget::systemErased ( IVP1System sys)
virtualinherited

Reimplemented from IVP1ChannelWidget.

Definition at line 360 of file IVP13DStandardChannelWidget.cxx.

361 {
362  IVP13DSystem * sys3d = static_cast<IVP13DSystem*>(sys);
363  if (sys3d)
364  sys3d->deselectAll();
365 }

◆ systemRefreshed()

void IVP13DStandardChannelWidget::systemRefreshed ( IVP1System )
virtualinherited

Reimplemented from IVP1ChannelWidget.

Definition at line 355 of file IVP13DStandardChannelWidget.cxx.

356 {
357 }

◆ systemRefreshInfoChanged

void IVP1ChannelWidget::systemRefreshInfoChanged ( QString  sysrefreshing,
int  nsysOn,
int  nsysOnRefreshed 
)
signalinherited

◆ systems()

const std::set< IVP1System * > & IVP1ChannelWidget::systems ( )
privateinherited

Definition at line 231 of file IVP1ChannelWidget.cxx.

232 {
233  return m_d->systems;
234 }

◆ toggleSystemActive

void IVP13DStandardChannelWidget::toggleSystemActive ( )
privateslotinherited

Definition at line 368 of file IVP13DStandardChannelWidget.cxx.

369 {
370  QCheckBox * cb = static_cast<QCheckBox*>(sender()); assert(cb);
371  m_d->updateSystemState(cb);
372 }

◆ turnOff()

void IVP1ChannelWidget::turnOff ( IVP1System s,
const bool &  immediateErase = true 
)
protectedinherited

Definition at line 246 of file IVP1ChannelWidget.cxx.

247 {
248  assert(s->channel()==this);
249  assert(m_d->systems.find(s)!=m_d->systems.end());
250  s->setActiveState(IVP1System::OFF,!immediateErase);
252 }

◆ turnOn()

void IVP1ChannelWidget::turnOn ( IVP1System s)
protectedinherited

Definition at line 237 of file IVP1ChannelWidget.cxx.

238 {
239  assert(s->channel()==this);
240  assert(m_d->systems.find(s)!=m_d->systems.end());
241  s->setActiveState(IVP1System::ON);
243 }

◆ type()

Type IVP13DChannelWidget::type ( ) const
inlinevirtualinherited

Implements IVP1ChannelWidget.

Definition at line 40 of file IVP13DChannelWidget.h.

40 { return THREEDIMENSIONAL; };

◆ uncreate()

void IVP1ChannelWidget::uncreate ( )
protectedvirtualinherited

Definition at line 155 of file IVP1ChannelWidget.cxx.

156 {
157  assert(m_d->state==READY);
158 }

◆ unique_name()

const QString IVP1ChannelWidget::unique_name ( ) const
inherited

Definition at line 175 of file IVP1ChannelWidget.cxx.

176 {
177  return m_d->name+(m_d->cloneid?" ["+QString::number(m_d->cloneid)+"]":QString(""));//Fixme: make sure that it is forbidden to end a name with ' [.*]'!
178 }

◆ uniqueNameChanged

void IVP1ChannelWidget::uniqueNameChanged ( const QString &  )
signalinherited

◆ updateSnapshotDim

void IVP13DStandardChannelWidget::updateSnapshotDim ( )
privateslotinherited

Definition at line 538 of file IVP13DStandardChannelWidget.cxx.

539 {
540  VP1Msg::messageDebug("IVP13DStandardChannelWidget::updateSnapshotDim()");
541 
542  // if (!m_d->uisnapshot.checkBox_as_shown)
543 // return;
544 // if (sender()==m_d->uisnapshot.spinBox_width)
545 // m_d->uisnapshot.radioButton_width->setChecked(true);
546 // else if (sender()==m_d->uisnapshot.spinBox_height)
547 // m_d->uisnapshot.radioButton_height->setChecked(true);
548 
549  if (!m_d->uisnapshot.checkBox_as_shown)
550  return;
551 
552  if (sender()==m_d->uisnapshot.spinBox_width)
553  m_d->uisnapshot.radioButton_width->setChecked(true);
554  else if (sender()==m_d->uisnapshot.spinBox_height)
555  m_d->uisnapshot.radioButton_height->setChecked(true);
556 
557  /*
558  * Get widget width and height
559  * Note: the method "getNormalWidget" is from the "SoQtGLWidget" class
560  * and it returns a QWidget object
561  */
562  int onscreen_width = m_d->viewer->getNormalWidget()->geometry().width();
563  int onscreen_height = m_d->viewer->getNormalWidget()->geometry().height();
564 
565  if ( m_d->uisnapshot.checkBox_as_shown->isChecked() ) {
566  disconnect(m_d->uisnapshot.spinBox_width,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
567  disconnect(m_d->uisnapshot.spinBox_height,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
568  m_d->uisnapshot.spinBox_width->setValue(onscreen_width);
569  m_d->uisnapshot.spinBox_height->setValue(onscreen_height);
570  connect(m_d->uisnapshot.spinBox_width,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
571  connect(m_d->uisnapshot.spinBox_height,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
572  } else {
573  if (m_d->uisnapshot.checkBox_lockRatio->isChecked()) {
574  VP1Msg::messageDebug("checkBox_lockRatio is checked - updating only rendering size");
575  if (m_d->uisnapshot.radioButton_width->isChecked()) {
576  disconnect(m_d->uisnapshot.spinBox_height,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
577  m_d->uisnapshot.spinBox_height->setValue(static_cast<int>(m_d->uisnapshot.spinBox_width->value()*static_cast<double>(onscreen_height)/onscreen_width+0.5));
578  connect(m_d->uisnapshot.spinBox_height,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
579  } else {
580  disconnect(m_d->uisnapshot.spinBox_width,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
581  m_d->uisnapshot.spinBox_width->setValue(static_cast<int>(m_d->uisnapshot.spinBox_height->value()*static_cast<double>(onscreen_width)/onscreen_height+0.5));
582  connect(m_d->uisnapshot.spinBox_width,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
583  }
584  }
585  else {
586  VP1Msg::messageDebug("checkBox_lockRatio is NOT checked - Updating the widget size as well");
587 
588 // if (m_d->uisnapshot.radioButton_width->isChecked() ) {
589 // int newWidth = static_cast<int>(m_d->uisnapshot.spinBox_width->value() * static_cast<double>(onscreen_height) / m_d->uisnapshot.spinBox_height->value() + 0.5);
590 // m_d->viewer->getNormalWidget()->resize(newWidth, onscreen_height);
591 // } else if (m_d->uisnapshot.radioButton_height->isChecked()) {
592 // int newHeight = static_cast<int>( onscreen_width * static_cast<double>(m_d->uisnapshot.spinBox_height->value()) / m_d->uisnapshot.spinBox_width->value() + 0.5);
593 // m_d->viewer->resize(onscreen_width, newHeight);
594 // }
595 
596  }
597  }
598 
599  //Finally, ensure that we are within the ranges:
600  if (m_d->uisnapshot.spinBox_width->value()>=m_d->uisnapshot.spinBox_width->maximum()) {
601  disconnect(m_d->uisnapshot.spinBox_width,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
602  disconnect(m_d->uisnapshot.spinBox_height,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
603  m_d->uisnapshot.spinBox_width->setValue(m_d->uisnapshot.spinBox_width->maximum());
604  m_d->uisnapshot.spinBox_height->setValue(static_cast<int>(m_d->uisnapshot.spinBox_width->value()*static_cast<double>(onscreen_height)/onscreen_width+0.5));
605  connect(m_d->uisnapshot.spinBox_width,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
606  connect(m_d->uisnapshot.spinBox_height,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
607  }
608  if (m_d->uisnapshot.spinBox_height->value()>=m_d->uisnapshot.spinBox_height->maximum()) {
609  disconnect(m_d->uisnapshot.spinBox_width,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
610  disconnect(m_d->uisnapshot.spinBox_height,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
611  m_d->uisnapshot.spinBox_height->setValue(m_d->uisnapshot.spinBox_height->maximum());
612  m_d->uisnapshot.spinBox_width->setValue(static_cast<int>(m_d->uisnapshot.spinBox_height->value()*static_cast<double>(onscreen_width)/onscreen_width+0.5));
613  connect(m_d->uisnapshot.spinBox_width,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
614  connect(m_d->uisnapshot.spinBox_height,SIGNAL(valueChanged(int)),this,SLOT(updateSnapshotDim()));
615  }
616 
617 }

Member Data Documentation

◆ m_d

Imp* IVP13DStandardChannelWidget::m_d
privateinherited

Definition at line 71 of file IVP13DStandardChannelWidget.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
IVP1ChannelWidget::registerSystem
void registerSystem(IVP1System *)
Definition: IVP1ChannelWidget.cxx:221
IVP13DStandardChannelWidget::DisallowExtraDisplayWidget
@ DisallowExtraDisplayWidget
Definition: IVP13DStandardChannelWidget.h:35
IVP13DStandardChannelWidget::Imp::detectorViewButtons
bool detectorViewButtons
Definition: IVP13DStandardChannelWidget.cxx:49
VP1TabWidget::tabText
QString tabText(int) const
Definition: VP1TabWidget.cxx:291
IVP1ChannelWidget::Imp::canregistersystem
bool canregistersystem
Definition: IVP1ChannelWidget.cxx:39
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
IVP13DStandardChannelWidget::Imp::extradisplaywidget_splitter
QSplitter * extradisplaywidget_splitter
Definition: IVP13DStandardChannelWidget.cxx:77
IVP13DStandardChannelWidget::Imp::systemsAllowedExtraDisplayWidgets
QList< IVP13DSystem * > systemsAllowedExtraDisplayWidgets
Definition: IVP13DStandardChannelWidget.cxx:57
Example3DChannel3
Definition: Example3DChannel3.h:20
IVP1ChannelWidget::Imp::systems
std::set< IVP1System * > systems
Definition: IVP1ChannelWidget.cxx:35
IVP13DStandardChannelWidget::setImageFromPresets
void setImageFromPresets()
Definition: IVP13DStandardChannelWidget.cxx:502
index
Definition: index.py:1
hist_file_dump.d
d
Definition: hist_file_dump.py:137
IVP13DStandardChannelWidget::updateSnapshotDim
void updateSnapshotDim()
Definition: IVP13DStandardChannelWidget.cxx:538
IVP1ChannelWidget::TWODIMENSIONAL
@ TWODIMENSIONAL
Definition: IVP1ChannelWidget.h:46
IVP13DStandardChannelWidget::Imp::need_initial_viewall
bool need_initial_viewall
Definition: IVP13DStandardChannelWidget.cxx:52
IVP1ChannelWidget::Imp::information
const QString information
Definition: IVP1ChannelWidget.cxx:32
fillPileUpNoiseLumi.connect
string connect
Definition: fillPileUpNoiseLumi.py:70
IVP13DStandardChannelWidget::Imp::sys2tabpage
QMap< IVP1System *, QWidget * > sys2tabpage
Definition: IVP13DStandardChannelWidget.cxx:74
IVP13DStandardChannelWidget::StartDisabled
@ StartDisabled
Definition: IVP13DStandardChannelWidget.h:38
VP1ExaminerViewer::setSceneGraph
virtual void setSceneGraph(SoNode *)
Definition: VP1ExaminerViewer.cxx:3115
IVP1ChannelWidget::dockResized
virtual void dockResized()
Definition: IVP1ChannelWidget.cxx:315
skel.it
it
Definition: skel.GENtoEVGEN.py:396
VP1GeoFlags::BeamPipe
@ BeamPipe
Definition: VP1GeoFlags.h:52
IVP1ChannelWidget::registerController
void registerController(QWidget *)
Definition: IVP1ChannelWidget.cxx:210
IVP13DChannelWidget::saveState
virtual QByteArray saveState()
Definition: IVP13DChannelWidget.cxx:180
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
IVP13DStandardChannelWidget::DisallowSwitchable
@ DisallowSwitchable
Definition: IVP13DStandardChannelWidget.h:36
IVP13DChannelWidget::m_d
Imp * m_d
Definition: IVP13DChannelWidget.h:56
IVP1ChannelWidget::NUMBERS
@ NUMBERS
Definition: IVP1ChannelWidget.h:46
IVP1ChannelWidget::Imp::contact_info
const QString contact_info
Definition: IVP1ChannelWidget.cxx:33
IVP1ChannelWidget::emitRefreshInfoChanged
void emitRefreshInfoChanged()
Definition: IVP1ChannelWidget.cxx:268
IVP1ChannelWidget::HISTOGRAM
@ HISTOGRAM
Definition: IVP1ChannelWidget.h:46
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Preparation.batch
batch
Definition: Preparation.py:49
VP1ExaminerViewer::setTransparencyType
virtual void setTransparencyType(SoGLRenderAction::TransparencyType)
Definition: VP1ExaminerViewer.cxx:1731
IVP13DStandardChannelWidget::Imp::setupSplitter
void setupSplitter(QWidget *rightwidget)
Definition: IVP13DStandardChannelWidget.cxx:272
IVP1ChannelWidget::unique_name
const QString unique_name() const
Definition: IVP1ChannelWidget.cxx:175
IVP13DStandardChannelWidget::Imp::uisnapshot
Ui::VP13DStandardChannelSnapShotGroupBox uisnapshot
Definition: IVP13DStandardChannelWidget.cxx:64
IVP1ChannelWidget::Imp::state
State state
Definition: IVP1ChannelWidget.cxx:37
x
#define x
VP1String::str
static QString str(const QString &s)
Definition: VP1String.h:49
VP1CHANNELNAMEINPLUGIN
#define VP1CHANNELNAMEINPLUGIN(cls, nme)
Definition: IVP1ChannelWidget.h:139
VP1ColorSelectButton
Definition: VP1ColorSelectButton.h:20
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
IVP1ChannelWidget::systemRefreshInfoChanged
void systemRefreshInfoChanged(QString sysrefreshing, int nsysOn, int nsysOnRefreshed)
VP1ExaminerViewer::viewAll
virtual void viewAll()
Definition: VP1ExaminerViewer.cxx:1457
TruthTest.itE
itE
Definition: TruthTest.py:25
IVP13DSystem::getSceneGraph
virtual SoSeparator * getSceneGraph() const =0
VP1TabWidget
Definition: VP1TabWidget.h:45
IVP13DStandardChannelWidget::DisallowController
@ DisallowController
Definition: IVP13DStandardChannelWidget.h:37
IVP13DStandardChannelWidget::DisallowCameraAccess
@ DisallowCameraAccess
Definition: IVP13DStandardChannelWidget.h:39
IVP13DStandardChannelWidget::Imp::system2rootNodes
QMap< IVP13DSystem *, SoSeparator * > system2rootNodes
Definition: IVP13DStandardChannelWidget.cxx:53
IVP13DStandardChannelWidget::toggleSystemActive
void toggleSystemActive()
Definition: IVP13DStandardChannelWidget.cxx:368
IVP13DChannelWidget::Imp::it
std::vector< VP1ExaminerViewer * >::iterator it
Definition: IVP13DChannelWidget.cxx:39
IVP1ChannelWidget::Imp::controller
QWidget * controller
Definition: IVP1ChannelWidget.cxx:36
VP1GeometrySystem
Definition: VP1GeometrySystem.h:33
IVP13DStandardChannelWidget::Imp::root
SoSeparator * root
Definition: IVP13DStandardChannelWidget.cxx:50
IVP1System
Definition: IVP1System.h:36
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
createCoolChannelIdFile.buffer
buffer
Definition: createCoolChannelIdFile.py:12
IVP13DChannelWidget::restoreFromState
virtual void restoreFromState(QByteArray)
Definition: IVP13DChannelWidget.cxx:214
VP1CameraHelper::abortAnyCurrentZoom
static void abortAnyCurrentZoom(SoCamera *camera)
Definition: VP1CameraHelper.cxx:265
IVP1ChannelWidget::UNKNOWN
@ UNKNOWN
Definition: IVP1ChannelWidget.h:46
lumiFormat.i
int i
Definition: lumiFormat.py:85
z
#define z
IVP13DChannelWidget::Imp::itE
std::vector< VP1ExaminerViewer * >::iterator itE
Definition: IVP13DChannelWidget.cxx:39
IVP1ChannelWidget::Imp::canregistercontroller
bool canregistercontroller
Definition: IVP1ChannelWidget.cxx:38
IVP1ChannelWidget::CONSTRUCTED
@ CONSTRUCTED
Definition: IVP1ChannelWidget.h:130
IVP13DStandardChannelWidget::Imp::systemsAllowedCameraList
QList< IVP13DSystem * > systemsAllowedCameraList
Definition: IVP13DStandardChannelWidget.cxx:60
beamspotman.n
n
Definition: beamspotman.py:731
VP1ExaminerViewer::startTour
void startTour()
Definition: VP1ExaminerViewer.cxx:1164
IVP13DStandardChannelWidget::AllowAll
@ AllowAll
Definition: IVP13DStandardChannelWidget.h:34
VP1ExaminerViewer::restoreFromState
virtual void restoreFromState(QByteArray)
Definition: VP1ExaminerViewer.cxx:764
IVP1ChannelWidget::UNCREATED
@ UNCREATED
Definition: IVP1ChannelWidget.h:130
IVP1ChannelWidget::Imp::timestamp
unsigned timestamp
Definition: IVP1ChannelWidget.cxx:42
IVP1System::REFRESHED
@ REFRESHED
Definition: IVP1System.h:143
IVP13DStandardChannelWidget::IVP13DStandardChannelWidget
IVP13DStandardChannelWidget(const QString &name, const QString &information, const QString &contact_info, bool detectorViewButtons=true)
Definition: IVP13DStandardChannelWidget.cxx:106
VP1QtUtils::environmentVariableIsSet
static bool environmentVariableIsSet(const QString &name)
Definition: VP1QtUtils.cxx:108
IVP1ChannelWidget::Imp::name
const QString name
Definition: IVP1ChannelWidget.cxx:31
IVP1ChannelWidget::message
void message(QString)
hist_file_dump.f
f
Definition: hist_file_dump.py:135
python.AtlRunQueryLib.options
options
Definition: AtlRunQueryLib.py:379
IVP13DStandardChannelWidget::Imp::system2startdisabled
QMap< IVP1System *, bool > system2startdisabled
Definition: IVP13DStandardChannelWidget.cxx:59
IVP13DStandardChannelWidget::Imp::autoSnapshot
void autoSnapshot()
Definition: IVP13DStandardChannelWidget.cxx:291
IVP1ChannelWidget::uniqueNameChanged
void uniqueNameChanged(const QString &)
VP1ExaminerViewer::launchStereoEditor
void launchStereoEditor()
Definition: VP1ExaminerViewer.cxx:2944
IVP13DChannelWidget::Imp::renderareas
RenderAreaList renderareas
Definition: IVP13DChannelWidget.cxx:41
DeMoScan.runnumber
runnumber
Definition: DeMoScan.py:266
IVP13DChannelWidget::getSnapshot
virtual QPixmap getSnapshot(bool transp=false, int width=0, bool batch=false)
Definition: IVP13DChannelWidget.cxx:131
IVP13DStandardChannelWidget::Imp::viewer
VP1ExaminerViewer * viewer
Definition: IVP13DStandardChannelWidget.cxx:51
IVP1System::ON
@ ON
Definition: IVP1System.h:144
IVP13DStandardChannelWidget::Imp::checkbox2system
QMap< QCheckBox *, IVP1System * > checkbox2system
Definition: IVP13DStandardChannelWidget.cxx:55
VP1QtInventorUtils::sbcol2qcol
static QColor sbcol2qcol(const SbColor &)
Definition: VP1QtInventorUtils.cxx:1142
VP1ExaminerViewer::startTourEachEvent
bool startTourEachEvent() const
Definition: VP1ExaminerViewer.cxx:1172
IVP1ChannelWidget::state
State state() const
Definition: IVP1ChannelWidget.cxx:102
VP1ExaminerViewer::setAntiAlias
void setAntiAlias(bool)
Definition: VP1ExaminerViewer.cxx:1752
IVP13DStandardChannelWidget::addSystem
void addSystem(IVP13DSystem *, const SystemOptions &options=AllowAll)
Definition: IVP13DStandardChannelWidget.cxx:135
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:220
python.selection.number
number
Definition: selection.py:20
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
IVP1ChannelWidget::Imp::eventnumber
unsigned long long eventnumber
Definition: IVP1ChannelWidget.cxx:41
IVP13DStandardChannelWidget::m_d
Imp * m_d
Definition: IVP13DStandardChannelWidget.h:70
VP1Msg::messageVerbose
static void messageVerbose(const QString &)
Definition: VP1Msg.cxx:84
IVP1ChannelWidget::Imp::runnumber
int runnumber
Definition: IVP1ChannelWidget.cxx:40
IVP13DChannelWidget::registerRenderArea
void registerRenderArea(VP1ExaminerViewer *)
Definition: IVP13DChannelWidget.cxx:94
python.PyAthena.v
v
Definition: PyAthena.py:154
get_generator_info.version
version
Definition: get_generator_info.py:33
VP1Msg::messageDebug
static void messageDebug(const QString &)
Definition: VP1Msg.cxx:39
y
#define y
IVP13DStandardChannelWidget::Imp::system2switchable
QList< QPair< IVP1System *, bool > > system2switchable
Definition: IVP13DStandardChannelWidget.cxx:58
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
IVP13DStandardChannelWidget::Imp::tabwidget
VP1TabWidget * tabwidget
Definition: IVP13DStandardChannelWidget.cxx:75
VP1ControllerHelper::compositionController
static QWidget * compositionController(const QList< IVP1System * > &systemsWithControllersAllowed, QMap< IVP1System *, QWidget * > &sys2tabpage, VP1TabWidget *&tabwidget, const QList< QPair< IVP1System *, bool > > &system2switchable, QMap< QCheckBox *, IVP1System * > &checkbox2system, VP1ColorSelectButton *&colorselectbutton, QWidget *extrawidget=0, bool nobgdcolorsel=false)
Definition: VP1ControllerHelper.cxx:28
IVP1ChannelWidget::READY
@ READY
Definition: IVP1ChannelWidget.h:130
IVP13DSystem
Definition: IVP13DSystem.h:31
IVP13DStandardChannelWidget::showControlsForSystem
void showControlsForSystem()
Definition: IVP13DStandardChannelWidget.cxx:882
VP1QtInventorUtils::renderToPixmap
static QPixmap renderToPixmap(VP1ExaminerViewer *ra, int pixels_x, int pixels_y, bool transparent_background=false, double actualRenderedSizeFact=1.0)
Definition: VP1QtInventorUtils.cxx:595
IVP1ChannelWidget::Imp::cloneid
unsigned cloneid
Definition: IVP1ChannelWidget.cxx:34
IVP1ChannelWidget::m_d
Imp * m_d
Definition: IVP1ChannelWidget.h:119
VP1QtInventorUtils::ensureInitLineWidthAndPointSize
static void ensureInitLineWidthAndPointSize(SoQtRenderArea *)
Definition: VP1QtInventorUtils.cxx:1518
VP1ExaminerViewer::storeCameraParametersForReset
void storeCameraParametersForReset()
Definition: VP1ExaminerViewer.cxx:1814
VP1ExaminerViewer::saveState
virtual QByteArray saveState()
Definition: VP1ExaminerViewer.cxx:638
IVP13DStandardChannelWidget::Imp::restoreFromState_v7
void restoreFromState_v7(QDataStream &state)
Definition: IVP13DStandardChannelWidget.cxx:906
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
IVP1ChannelWidget::THREEDIMENSIONAL
@ THREEDIMENSIONAL
Definition: IVP1ChannelWidget.h:46
IVP13DStandardChannelWidget::Imp::min3dx
static const int min3dx
Definition: IVP13DStandardChannelWidget.cxx:70
test_AnalysisBaseEventLoopJob.aa
aa
Definition: test_AnalysisBaseEventLoopJob.py:37
python.compressB64.c
def c
Definition: compressB64.py:93
IVP13DStandardChannelWidget::Imp::updateSystemState
void updateSystemState(QCheckBox *)
Definition: IVP13DStandardChannelWidget.cxx:376
IVP13DSystem::deselectAll
virtual void deselectAll(SoCooperativeSelection *exception_sel=0)
Definition: IVP13DSystem.cxx:331
IVP1System::OFF
@ OFF
Definition: IVP1System.h:144
IVP13DStandardChannelWidget::Imp::systemsAllowedControllers
QList< IVP1System * > systemsAllowedControllers
Definition: IVP13DStandardChannelWidget.cxx:56
Example3DSystem3
Definition: Example3DSystem3.h:26
VP1ExaminerViewer
Definition: VP1ExaminerViewer.h:30
IVP13DStandardChannelWidget::Imp::min3dy
static const int min3dy
Definition: IVP13DStandardChannelWidget.cxx:71
VP1ExaminerViewer::isAntiAlias
bool isAntiAlias() const
Definition: VP1ExaminerViewer.cxx:1743