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.");
146 messageVerbose(
"AODCollHandleBase::recheckCutStatusOfAllVisibleHandles");
179 messageVerbose(
"AODCollHandleBase::recheckCutStatusOfAllNotVisibleHandles");
182 messageVerbose(
"AODCollHandleBase::recheckCutStatusOfAllNotVisibleHandles - not yet loaded. Aborting.");
205 messageVerbose(
"AODCollHandleBase::recheckCutStatusOfAllHandles()");
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;
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
void updateObjectBrowser()
Update object browser QTreeWidgetItem.
void updateMaterial()
Called after some configuration related to material changes.
virtual void update3DObjects()
Called after some configuration changes, or when the object is first created. Must be overloaded by c...
void setVisible(bool)
use by the collection handle.
virtual void fillObjectBrowser(QList< QTreeWidgetItem * > &list)
Create and fill the object browser QTreeWidgetItem.
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.