// **************************************************************************** WindowProperties::~WindowProperties(void) { // Delete the menu properties (if available) if (mWindowMenuProperties) delete mWindowMenuProperties; // Delete all objects from the mHToolbarPropertiesList QVectorIterator<ToolbarProperties*> hList(mHToolbarPropertiesList); ToolbarProperties* toolbarProperties = 0; hList.toFront(); while (hList.hasNext()) { toolbarProperties = hList.next(); if (toolbarProperties) delete toolbarProperties; } mHToolbarPropertiesList.clear(); // Delete all objects from the mVToolbarPropertiesList QVectorIterator<ToolbarProperties*> vList(mVToolbarPropertiesList); vList.toFront(); while (vList.hasNext()) { toolbarProperties = vList.next(); if (toolbarProperties) delete toolbarProperties; } mVToolbarPropertiesList.clear(); // Delete all objects from the mTabPropertiesList QVectorIterator<TabProperties*> tabList(mTabPropertiesList); TabProperties* tabProperties = 0; tabList.toFront(); while (tabList.hasNext()) { tabProperties = tabList.next(); if (tabProperties) delete tabProperties; } mTabPropertiesList.clear(); }
//========================================================================= void hTreeBrowser::populate(TDirectory* currentDirectory, QTreeWidgetItem* parentWItem) { // STDLINE("populate(TDirectory,QTree)",ACRed); QTreeWidgetItem * wItem = NULL; bool create = false ; //currentDirectory->ls() ; TKey * keyH = NULL ; TIter hList(currentDirectory->GetListOfKeys()); while((keyH = (TKey*)hList())) { //If you uncomment this line you will get a //Error in <TBufferFile::ReadClassBuffer>: class: TUUID, attempting to access a wrong version //Every time it tries to read a TFolder or TDirectory object //this->getObjectType(keyH->ReadObj()); std::string objPath = std::string(currentDirectory->GetName()) + std::string("-") + std::string(keyH->GetName()); //std::string objectName = keyH->GetName() ; // STDLINE(keyH->GetName(),ACPurple); if( existingWItems_.find(objPath) == existingWItems_.end()) { wItem = new QTreeWidgetItem(parentWItem) ; existingWItems_[objPath] = wItem ; create = true ; } else { wItem = existingWItems_[objPath] ; create = false ; } if( keyH->IsFolder() ) { if(std::string(keyH->GetClassName()) == "TTree") { if( !create ) continue ; wItem->setText(0, keyH->GetName()) ; wItem->setText(1, "TTree") ; wItem->setIcon(0, tTreeIcon_); } else if (std::string(keyH->GetClassName()) == "TFolder" ) { TFolder * aFolder = (TFolder*)(currentDirectory->GetKey(keyH->GetName())->ReadObj()) ; // Get the folder in memory (this is the trick!) if( create ) { wItem->setText(0, tr(keyH->GetName())) ; wItem->setText(1, tr(keyH->GetClassName())) ; wItem->setIcon(0, folderIcon_); } this->populate(aFolder,wItem) ; } else { currentDirectory->cd(keyH->GetName()); if( create ) { wItem->setText(0, tr(gDirectory->GetName())) ; wItem->setText(1, tr(keyH->GetClassName())) ; wItem->setIcon(0, folderIcon_); } this->populate(gDirectory,wItem) ; } } else { if( !create ) continue ; wItem->setText(0, tr(keyH->GetName())) ; wItem->setText(1, tr(keyH->GetClassName())) ; std::string className = keyH->GetClassName(); if(className == "TCanvas" ) { wItem->setIcon(0, canvasIcon_); } else if( className.find("TH1") != std::string::npos ) { wItem->setIcon(0, TH1Icon_); } else if( className.find("TH2") != std::string::npos ) { wItem->setIcon(0, TH2Icon_); } else if( className.find("TGraph") != std::string::npos ) { wItem->setIcon(0, tGraphIcon_); } else if( className == "TProfile" ) { wItem->setIcon(0, tProfileIcon_); } else { //STDLINE(className + "-" + this->getObjectType(keyH->ReadObj()),ACRed); wItem->setIcon(0, fileIcon_); } } } }