33#include <Inventor/nodes/SoSeparator.h>
34#include <Inventor/nodes/SoMaterial.h>
35#include <Inventor/nodes/SoSwitch.h>
36#include "Inventor/nodes/SoDrawStyle.h"
37#include "Inventor/nodes/SoLightModel.h"
45#include <QTreeWidgetItem>
49#include <QElapsedTimer>
116 message(
"Not properly initialized: controller pointer is zero.");
140 handle->setVisible(
visible() &&
cut(handle));
146 messageVerbose(
"AODCollHandleBase::recheckCutStatusOfAllVisibleHandles");
159 if (handle->visible())
179 messageVerbose(
"AODCollHandleBase::recheckCutStatusOfAllNotVisibleHandles");
182 messageVerbose(
"AODCollHandleBase::recheckCutStatusOfAllNotVisibleHandles - not yet loaded. Aborting.");
193 if (!handle->visible())
205 messageVerbose(
"AODCollHandleBase::recheckCutStatusOfAllHandles()");
213 if (handle->visible())
233 handle->update3DObjects();
249 handle->updateMaterial();
382 std::stringstream
ss;
384 QString
section = QString::fromStdString(
ss.str());
389 return QString(
"TODO!");
406 if (
m_dbase->objBrowseTree)
m_dbase->objBrowseTree->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
415 if (
m_dbase->objBrowseTree)
m_dbase->objBrowseTree->setFlags(Qt::ItemFlags());
420 messageVerbose(
"AODCollHandleBase::updateObjectBrowserVisibilityCounts called for "+
name());
422 if (!trkObjBrowser || !
m_dbase->objBrowseTree) {
423 messageVerbose(
"AODCollHandleBase::updateObjectBrowserVisibilityCounts: no common()->controller()->objBrowser() and/or d->objBrowseTree. Aborting");
438 if (!trkObjBrowser) {
439 messageVerbose(
"AODCollHandleBase::fillObjectBrowser: no common()->controller()->objBrowser(). Aborting");
447 trkObjBrowser->setUpdatesEnabled(
false);
449 bool firstTime=
false;
451 m_dbase->objBrowseTree =
new QTreeWidgetItem(0);
453 messageVerbose(
"AODCollHandleBase::fillObjectBrowser: First time so creating QTreeWidgetItem.");
455 int index = trkObjBrowser->indexOfTopLevelItem(
m_dbase->objBrowseTree);
457 messageVerbose(
"Missing from WidgetTree! Will continue but something must be wrong");
461 messageVerbose(
"AODCollHandleBase::fillObjectBrowser about to start looping over handles at "+QString::number(t.elapsed())+
" ms");
463 QList<QTreeWidgetItem *> list;
467 unsigned int numVisible=0;
471 handle->fillObjectBrowser(list);
473 handle->updateObjectBrowser();
478 if (handle->visible() ) numVisible++;
482 QString
text(QString(
": (")+QString::number(numVisible)+QString(
"/")+QString::number(i)+QString(
") visible"));
486 m_dbase->objBrowseTree->addChildren(list);
487 trkObjBrowser->addTopLevelItem(
m_dbase->objBrowseTree);
488 trkObjBrowser->setUpdatesEnabled(
true);
490 messageVerbose(
"AODCollHandleBase::fillObjectBrowser completed in "+QString::number(t.elapsed())+
" ms");
497 messageDebug(
"AODCollHandleBase::assignDefaultMaterial()");
506 return QList<QWidget*>();
515 return serialise.result();
521 messageDebug(
" AODCollHandleBase::setExtraWidgetsState() - ba: " + ba);
538 messageVerbose(
"AODCollHandleBase::colourByComboBoxItemChanged()");
539 messageVerbose(
"Collection detail level combo box changed index");
556 messageDebug(
"Warning: Ignoring state with wrong version");
566 if (extraWidgetState!=QByteArray())
578 serialise.disableUnsavedChecks();
583 return serialise.result();
AODCollHandleBase * theclass
QTreeWidgetItem * objBrowseTree
AODCollHandleBase(AODSysCommonData *, const QString &name, xAOD::Type::ObjectType)
void recheckCutStatus(AODHandleBase *)
const AODSysCommonData * common() const
void recheckCutStatusOfAllHandles()
virtual void setState(const QByteArray &)
Provide specific implementation.
qint32 provideCollTypeID() const
void recheckCutStatusOfAllNotVisibleHandles()
virtual void assignDefaultMaterial(SoMaterial *) const
virtual void handleIterationBegin()=0
void recheckCutStatusOfAllVisibleHandles()
void setExtraWidgetsState(const QByteArray &)
xAOD::Type::ObjectType m_type
virtual QString provideSection() const
QByteArray extraWidgetsState() const
virtual void setupSettingsFromControllerSpecific(const AODSystemController *)
For extensions specific to this collection.
virtual QByteArray persistifiableState() const
Provide specific implementation.
virtual ~AODCollHandleBase()
virtual AODHandleBase * getNextHandle()=0
void setupSettingsFromController(const AODSystemController *)
virtual QString provideSectionToolTip() const
void updateMaterialOfAllHandles()
virtual QList< AODHandleBase * > getHandlesList() const =0
void update3DObjectsOfAllHandles()
AODSysCommonData * m_commonData
void colourByComboBoxItemChanged()
virtual QColor defaultColor() const =0
void collVisibilityChanged(bool)
void updateObjectBrowserVisibilityCounts()
QList< QWidget * > provideExtraWidgetsForGuiRow() const
const QString & name() const
virtual bool cut(AODHandleBase *)=0
VP1ExtraSepLayerHelper * m_sephelper
const AODSystemController * controller() const
const VP1AODSystem * system() const
QTreeWidget * objBrowser() const
Returns a pointer to the Track Object Browser (if it exists).
virtual void deselectAll(SoCooperativeSelection *exception_sel=0)
QByteArray restoreByteArray()
void disableUnrestoredChecks()
void messageVerbose(const QString &) const
void message(const QString &) const
IVP1System * systemBase() const
void messageDebug(const QString &) const
static void setMatColor(SoMaterial *, const double &r, const double &g, const double &b, const double &brightness=0.0, const double &transp=0.0)
virtual void largeChangesEnd()
SoSeparator * collSep() const
All 3D objects from this coll.
virtual void largeChangesBegin()
VP1StdCollection(IVP1System *, const QString &helperClassName)
int count(std::string s, const std::string ®x)
count how many occurances of a regx are in a string
ObjectType
Type of objects that have a representation in the xAOD EDM.