Docker-in-Docker (DinD) capabilities of public runners deactivated. More info

Commit c6ba9341 authored by Jérémie Dudouet's avatar Jérémie Dudouet
Browse files

Merge branch 'preprod' into 'master'

Preprod, including last Cubix developments

See merge request !35
parents 67041426 e65bfbb3
Pipeline #27225 passed with stage
in 3 minutes and 28 seconds
......@@ -18,7 +18,7 @@ compile:
- mv gammaware adf
- cd ..
- echo "Compilation of ADF..."
- python scripts/gRaySoftware.py --cmake="-DCMAKE_BUILD_TYPE=debug -- -j 4" --adf= conf compile install
- python scripts/gRaySoftware.py --cmake="-DCMAKE_BUILD_TYPE=Debug -- -j 4" --adf= conf compile install
- cd LYON
- cp -r ../../gammaware/ .
- mv gammaware gw
......@@ -28,7 +28,7 @@ compile:
- export LD_LIBRARY_PATH=$ROOTSYS/lib/:$LD_LIBRARY_PATH
- echo "Compilation with ROOT..."
- echo $PWD
- python scripts/gRaySoftware.py --cmake="-DCMAKE_BUILD_TYPE=debug -- -j 4" --gw= conf compile install
- python scripts/gRaySoftware.py --cmake="-DCMAKE_BUILD_TYPE=Debug -- -j 4" --gw= conf compile install
- cd LYON/gw/
- mkdir -p cppcheck_output
- cppcheck --xml --xml-version=2 --enable=style,performance,portability,unusedFunction -i config -i debug -i cmake -i demos -i doc -i doxyfiles -i icons -i macros -i ndb -i scripts . 2> cppcheck_output/output.xml
......
......@@ -79,19 +79,12 @@ STRING(REGEX REPLACE "^([0-9]+)\\.[0-9][0-9]+\\/[0-9][0-9]+.*" "\\1" found_root_
STRING(REGEX REPLACE "^[0-9]+\\.([0-9][0-9])+\\/[0-9][0-9]+.*" "\\1" found_root_minor_vers "${ROOTVERSION}")
STRING(REGEX REPLACE "^[0-9]+\\.[0-9][0-9]+\\/([0-9][0-9]+).*" "\\1" found_root_patch_vers "${ROOTVERSION}")
IF (found_root_major_vers LESS 5)
MESSAGE( FATAL_ERROR "Invalid ROOT version \"${ROOTERSION}\", at least major version 4 is required, e.g. \"5.00/00\"")
ENDIF (found_root_major_vers LESS 5)
#
SET(RDICTIONNARY 0)
IF (found_root_major_vers LESS 6)
include(Root5NewMacros)
MESSAGE("[Gw] Dictionary Build using ROOTCINT")
ELSE(found_root_major_vers LESS 6)
include(Root6NewMacros)
SET(RDICTIONNARY 1)
MESSAGE("[Gw] Dictionary Build using ROOTCLING ")
ENDIF(found_root_major_vers LESS 6)
MESSAGE( FATAL_ERROR "Invalid ROOT version \"${ROOTERSION}\", at least major version 6 is required, e.g. \"6.00/00\"")
ENDIF (found_root_major_vers LESS 6)
#
include(Root6NewMacros)
MESSAGE("[Gw] Dictionary Build using ROOTCLING ")
#
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-uninitialized -Wno-unused-function -Wno-unused-result -Wno-unused-variable -Wno-overloaded-virtual -Wno-switch")
......@@ -100,7 +93,6 @@ MESSAGE("[GW from ROOT] C Compiler ${CMAKE_C_COMPILER}")
MESSAGE("[GW from ROOT] C++ Compiler ${CMAKE_CXX_COMPILER}")
MESSAGE("[GW from ROOT] Compiler Flags: ${CMAKE_CXX_FLAGS} ")
#----------------------------------------------------------------------------
# configuration for all modules
#
......@@ -144,26 +136,17 @@ endif()
option(DO_DEV "If ON, the GWDEV library is also built" OFF)
option(DO_ILL "If ON, the GWILL library is also built" OFF)
#
add_subdirectory (src/root/core)
add_subdirectory (src/root/physics)
add_subdirectory (src/root/tools)
add_subdirectory (src/system)
add_subdirectory (src/root/gem)
add_subdirectory (src/adf)
add_subdirectory (src/root/adfe)
add_subdirectory (src/system)
add_subdirectory (src/root)
add_subdirectory (src/deprecated)
add_subdirectory (src/root/gui)
#
if ( DO_DEV )
if ( DO_DEV )
add_subdirectory (src/dev)
endif()
#set ( DO_ILL true )
if ( DO_ILL )
add_subdirectory (src/root/ILL)
endif()
#----------------------------------------------------------------------------
# Global configure/install/copies
#
......
......@@ -52,16 +52,9 @@ endforeach()
#
# Dictionnary from one file only 'a la ROOT' + internal and external dependencies
#
if ( RDICTIONNARY EQUAL 1 )
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} MODULE ${GWLIBNAME} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h OPTIONS "")
set( EXTRA_EXTERNAL_LIBRARIES Core Graf MathCore XMLParser Hist Gui )
# MESSAGE("[GW-CLING]")
else ()
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h)
set( EXTRA_EXTERNAL_LIBRARIES Core Cint Graf MathCore XMLParser Hist Gui)
# MESSAGE("[GW-CINT]")
endif()
set(EXTRA_INTERNAL_LIBRARIES GWCORE GWADF GWADFE GWPHYSICS GWTOOLS GWGEM GWSYSTEM)
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} MODULE ${GWLIBNAME} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h OPTIONS "")
set(EXTRA_INTERNAL_LIBRARIES GWCORE)
#
foreach( f ${without_dictionnaries} )
......@@ -105,9 +98,7 @@ install(TARGETS ${GWLIBNAME} RUNTIME DESTINATION bin
#
install(FILES ${headers} DESTINATION ${GW_INCLUDE_DIR} COMPONENT headers )
if ( with_dictionnaries )
if ( RDICTIONNARY EQUAL 1 )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
endif()
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}.rootmap DESTINATION lib COMPONENT libraries )
endif()
......
......@@ -59,15 +59,7 @@ endforeach()
#
# Dictionnary from one file only 'a la ROOT' + internal and external dependencies
#
if ( RDICTIONNARY EQUAL 1 )
# ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} MODULE ${GWLIBNAME} LINKDEF LinkDef.h OPTIONS "")
set( EXTRA_EXTERNAL_LIBRARIES Core Graf MathCore XMLParser Hist Thread Gpad )
# MESSAGE("[GW-CLING]")
else ()
# ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h)
set( EXTRA_EXTERNAL_LIBRARIES Core Cint Graf MathCore XMLParser Hist Thread Gpad)
# MESSAGE("[GW-CINT]")
endif()
set(EXTRA_INTERNAL_LIBRARIES GWCORE GWADF GWADFE GWPHYSICS GWTOOLS GWGEM GWSYSTEM GWDEPRECATED)
......@@ -106,9 +98,7 @@ install(TARGETS ${GWLIBNAME} RUNTIME DESTINATION bin
#
install(FILES ${headers} DESTINATION ${GW_INCLUDE_DIR} COMPONENT headers )
if ( with_dictionnaries )
if ( RDICTIONNARY EQUAL 1 )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
endif()
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}.rootmap DESTINATION lib COMPONENT libraries )
endif()
......
......@@ -27,6 +27,7 @@
#include "TMath.h"
#include "TThread.h"
#include "TMutex.h"
using namespace ADF;
......
......@@ -5,10 +5,16 @@
#----------------------------------------------------------------------------
# Add modules
#
add_subdirectory (adfe)
add_subdirectory (core)
add_subdirectory (physics)
add_subdirectory (tools)
add_subdirectory (gem)
add_subdirectory (gui)
#set ( DO_ILL true )
if ( DO_ILL )
add_subdirectory (ILL)
endif()
......@@ -54,16 +54,8 @@ endforeach()
#
# Dictionnary from one file only 'a la ROOT' + internal and external dependencies
#
if ( RDICTIONNARY EQUAL 1 )
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} MODULE ${GWLIBNAME} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h OPTIONS "")
set( EXTRA_EXTERNAL_LIBRARIES Core Graf MathCore Gpad Hist Tree RIO Thread Net )
# MESSAGE("[GW-CLING]")
else ()
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h)
set( EXTRA_EXTERNAL_LIBRARIES Core Cint Graf MathCore Gpad Hist Tree RIO Thread Net )
# MESSAGE("[GW-CINT]")
endif()
set(EXTRA_INTERNAL_LIBRARIES GWCORE GWADF GWPHYSICS)
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} MODULE ${GWLIBNAME} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h OPTIONS "")
set(EXTRA_INTERNAL_LIBRARIES GWADF )
#
foreach( f ${without_dictionnaries} )
......@@ -109,9 +101,7 @@ install(TARGETS ${GWLIBNAME} RUNTIME DESTINATION bin
#
install(FILES ${headers} DESTINATION ${GW_INCLUDE_DIR} COMPONENT headers )
if ( with_dictionnaries )
if ( RDICTIONNARY EQUAL 1 )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
endif()
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}.rootmap DESTINATION lib COMPONENT libraries )
endif()
......
......@@ -59,15 +59,9 @@ endforeach()
#
# Dictionnary from one file only 'a la ROOT' + internal and external dependencies
#
if ( RDICTIONNARY EQUAL 1 )
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} MODULE ${GWLIBNAME} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h OPTIONS "")
set( EXTRA_EXTERNAL_LIBRARIES Core Graf MathCore Gpad Hist Tree RIO Thread Net TreePlayer)
# MESSAGE("[GW-CLING]")
else ()
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h)
set( EXTRA_EXTERNAL_LIBRARIES Core Graf MathCore Gpad Hist Tree RIO Thread Net TreePlayer)
# MESSAGE("[GW-CINT]")
endif()
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} MODULE ${GWLIBNAME} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h OPTIONS "")
set( EXTRA_EXTERNAL_LIBRARIES Thread Net TreePlayer)
set(EXTRA_INTERNAL_LIBRARIES GWCORE GWADF GWPHYSICS)
#
......@@ -113,9 +107,7 @@ install(TARGETS ${GWLIBNAME} RUNTIME DESTINATION bin
#
install(FILES ${headers} DESTINATION ${GW_INCLUDE_DIR} COMPONENT headers )
if ( with_dictionnaries )
if ( RDICTIONNARY EQUAL 1 )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
endif()
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}.rootmap DESTINATION lib COMPONENT libraries )
endif()
......
......@@ -77,17 +77,8 @@ endforeach()
#
# Dictionnary from one file only 'a la ROOT' + internal and external dependencies
#
if ( RDICTIONNARY EQUAL 1 )
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} MODULE ${GWLIBNAME} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h OPTIONS "")
set( EXTRA_EXTERNAL_LIBRARIES Core Graf MathCore XMLParser Hist Gui )
# MESSAGE("[GW-CLING]")
else ()
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h)
set( EXTRA_EXTERNAL_LIBRARIES Core Cint Graf MathCore XMLParser Hist Gui )
# MESSAGE("[GW-CINT]")
endif()
set(EXTRA_INTERNAL_LIBRARIES GWCORE)
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} MODULE ${GWLIBNAME} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h OPTIONS "")
set( EXTRA_EXTERNAL_LIBRARIES Core Graf MathCore XMLParser Hist Gui)
#
foreach( f ${without_dictionnaries} )
set(sources ${sources} ${CMAKE_CURRENT_SOURCE_DIR}/${f}.cpp)
......@@ -133,9 +124,7 @@ install(TARGETS ${GWLIBNAME}
#
install(FILES ${headers} DESTINATION ${GW_INCLUDE_DIR} COMPONENT headers )
if ( with_dictionnaries )
if ( RDICTIONNARY EQUAL 1 )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
endif()
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}.rootmap DESTINATION lib COMPONENT libraries )
endif()
......
......@@ -123,6 +123,7 @@ namespace { // anonymous namespace for specifics to Angular Distribution. Hidden
return result;
}
// ROOT suitable function to draw angular distribution up to order 4.
#ifdef R__HAS_MATHMORE
Double_t Wth(Double_t *x, Double_t *par)
{
Double_t p2,p4;
......@@ -131,6 +132,7 @@ namespace { // anonymous namespace for specifics to Angular Distribution. Hidden
return par[0]+par[1]*p2+par[2]*p4;
}
#endif
Double_t WthDeg(Double_t *x, Double_t *par)
{
Double_t p2,p4;
......
......@@ -57,30 +57,15 @@ endforeach()
#
# Dictionnary from one file only 'a la ROOT' + internal and external dependencies
#
if ( RDICTIONNARY EQUAL 1 )
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} MODULE ${GWLIBNAME} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h OPTIONS "")
find_library(ISMATHMORE MathMore)
if(NOT ISMATHMORE)
set( EXTRA_EXTERNAL_LIBRARIES Core Graf MathCore XMLParser Hist Physics Gui Spectrum Tree RIO Gpad )
MESSAGE("[GW-GEM] Compiled without MathMore")
else()
set( EXTRA_EXTERNAL_LIBRARIES Core Graf MathCore MathMore XMLParser Hist Physics Gui Spectrum Tree RIO Gpad )
MESSAGE("[GW-GEM] Compiled with MathMore")
endif()
# MESSAGE("[GW-CLING]")
else ()
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h)
find_library(ISMATHMORE MathMore)
if(NOT ISMATHMORE)
set( EXTRA_EXTERNAL_LIBRARIES Core Graf MathCore XMLParser Hist Physics Gui Spectrum Tree RIO Gpad )
MESSAGE("[GW-GEM] Compiled without MathMore")
else()
set( EXTRA_EXTERNAL_LIBRARIES Core Graf MathCore MathMore XMLParser Hist Physics Gui Spectrum Tree RIO Gpad )
MESSAGE("[GW-GEM] Compiled with MathMore")
endif()
# MESSAGE("[GW-CINT]")
ROOT_GENERATE_DICTIONARY(G__${GWLIBNAME} ${headers} MODULE ${GWLIBNAME} LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/LinkDef.h OPTIONS "")
find_library(ISMATHMORE MathMore PATHS $ENV{ROOTSYS}/lib)
if(NOT ISMATHMORE)
MESSAGE("[GW-GEM] Compiled without MathMore")
else()
set( EXTRA_EXTERNAL_LIBRARIES MathMore )
MESSAGE("[GW-GEM] Compiled with MathMore")
endif()
set(EXTRA_INTERNAL_LIBRARIES GWCORE GWPHYSICS GWTOOLS GWSYSTEM )
set(EXTRA_INTERNAL_LIBRARIES GWTOOLS GWSYSTEM )
#
foreach( f ${without_dictionnaries} )
......@@ -124,9 +109,7 @@ install(TARGETS ${GWLIBNAME} RUNTIME DESTINATION bin
#
install(FILES ${headers} DESTINATION ${GW_INCLUDE_DIR} COMPONENT headers )
if ( with_dictionnaries )
if ( RDICTIONNARY EQUAL 1 )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
endif()
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}_rdict.pcm DESTINATION lib COMPONENT libraries )
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${GWLIBNAME}.rootmap DESTINATION lib COMPONENT libraries )
endif()
......
......@@ -5,12 +5,7 @@
#----------------------------------------------------------------------------
# Add modules
#
if (found_root_major_vers LESS 6)
MESSAGE( "ERROR: Invalid ROOT version \"${ROOTERSION}\", at least major version 6 is required for Cubix, e.g. \"6.00/00\"")
MESSAGE( "[GW] !!! Cubix ignored")
else()
add_subdirectory (cubix)
endif (found_root_major_vers LESS 6)
add_subdirectory (cubix)
......
......@@ -38,10 +38,10 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread -Wno-unused-paramete
# root
INCLUDE_DIRECTORIES( ${ROOT_INCLUDE_DIR} )
LINK_DIRECTORIES( ${ROOT_LIBRARY_DIR} )
SET(EXTRA_EXTERNAL_LIBRARIES ${EXTRA_EXTERNAL_LIBRARIES} Core MathCore Hist Gui Gpad Graf RIO Matrix Physics Thread MultiProc Spectrum)
SET(EXTRA_EXTERNAL_LIBRARIES ${EXTRA_EXTERNAL_LIBRARIES} Matrix)
# gw
set(EXTRA_INTERNAL_LIBRARIES GWCORE GWPHYSICS GWTOOLS GWSYSTEM )
set(EXTRA_INTERNAL_LIBRARIES GWPHYSICS )
####################
### define files ###
......
......@@ -18,6 +18,7 @@
#include "TGListTree.h"
#include "TClass.h"
#include "TCanvas.h"
#include "TCutG.h"
using namespace std;
......@@ -59,7 +60,7 @@ CXFileList::CXFileList(const TGCompositeFrame *MotherFrame, UInt_t w, UInt_t h)
fMenu->AddEntry("Lar&ge Icons",kLVLargeIcons);
fMenu->AddEntry("S&mall Icons",kLVSmallIcons);
fMenu->AddEntry("&List", kLVList);
// fMenu->AddEntry("&Details", kLVDetails);
// fMenu->AddEntry("&Details", kLVDetails);
fMenu->Connect("Activated(Int_t)","CXFileList",this,"DoMenu(Int_t)");
TGHorizontalFrame *h3 = new TGHorizontalFrame(fv2,10,10);
......@@ -91,7 +92,7 @@ CXFileList::CXFileList(const TGCompositeFrame *MotherFrame, UInt_t w, UInt_t h)
Resize();
DoMenu(kLVSmallIcons);
DoMenu(kLVList);
}
void CXFileList::DoubleClicked(TGListTreeItem *item, Int_t a_int)
......@@ -99,20 +100,15 @@ void CXFileList::DoubleClicked(TGListTreeItem *item, Int_t a_int)
TGListTree *sender = (TGListTree *)gTQSender;
const TGWindow *parent = sender->GetParent()->GetParent()->GetParent();
if(parent == fBrowser)
{
if(parent == fBrowser){
TObject *obj = (TObject *) item->GetUserData();
if(obj)
{
if(obj){
obj->IsA()->SetName("");
TString filename = fBrowser->FullPathName(item);
if(gSystem->IsFileInIncludePath(filename) && filename.EndsWith(".root"))
{
DisplayFile(filename);
}
}
}
}
......@@ -120,7 +116,6 @@ void CXFileList::DoubleClicked(TGListTreeItem *item, Int_t a_int)
CXFileList::~CXFileList()
{
// Cleanup.
delete fContents;
fMain->DeleteWindow(); // deletes fMain
......@@ -130,15 +125,21 @@ CXFileList::~CXFileList()
void CXFileList::DoMenu(Int_t mode)
{
// Switch view mode.
if (mode<10) {
if (mode<10)
fContents->SetViewMode((EListViewMode)mode);
} else {
else
delete this;
}
}
void CXFileList::DisplayFile(const TString &fname)
{
//Close the last opened file
if(fCurrentFile){
fCurrentFile->Close();
fCurrentFile = nullptr;
fFolders.clear();
}
// Display content of ROOT file.
TFile *file = TFile::Open(fname);
fContents->RemoveAll();
......@@ -155,7 +156,7 @@ void CXFileList::DisplayFile(const TString &fname)
TGLVEntry *entry = new TGLVEntry(fContents,name,cname);
entry->SetSubnames(key->GetTitle());
if(cname=="TList")
if(cname=="TList" || cname=="TDirectoryFile")
entry->SetPictures(gClient->GetPicture("folder_s.xpm"),gClient->GetPicture("folder_t.xpm"));
if(cname=="TCutG")
entry->SetPictures(gClient->GetPicture("bld_cut.png"),gClient->GetPicture("bld_cut.png"));
......@@ -168,49 +169,53 @@ void CXFileList::DisplayFile(const TString &fname)
entry->SetUserData((void*)StrDup(fname));
}
fMain->Resize();
fParent = file;
if(fParentFile && file!=fParentFile){
fParentFile->Close();
}
fParentFile = file;
fCurrentFile = file;
fFolders.push_back(file);
}
void CXFileList::DisplayList(TList *list)
{
// Display content of ROOT file.
TString Name = fParentFile->GetName();
TString Name = fCurrentFile->GetName();
TObjArray *arr = Name.Tokenize("/");
Name = arr->Last()->GetName();
delete arr;
TGLVEntry *entry = new TGLVEntry(fContents,Name,fParentFile->ClassName());
entry->SetUserData((void*)StrDup(fParentFile->GetName()));
fContents->RemoveAll();
// fContents->AddFile(gSystem->WorkingDirectory());
fContents->AddItem(entry);
fContents->SetPagePosition(0,0);
// fContents->SetColHeaders("Name","Title");
// fContents->SetColHeaders("Name","Title");
TObject *Folder = fFolders.back();
TGLVEntry *entry = nullptr;
if(fFolders.size()>1){
entry = new TGLVEntry(fContents,"..",Folder->ClassName());
entry->SetUserData((void*)StrDup(Folder->GetName()));
entry->SetPictures(gClient->GetPicture("folder_s.xpm"),gClient->GetPicture("folder_t.xpm"));
fContents->AddItem(entry);
}
TIter next(list);
TObject *key;
while ((key=(TObject*)next())) {
if(Folder->InheritsFrom(TDirectoryFile::Class_Name())){
key = ((TDirectoryFile*)Folder)->Get(key->GetName());
}
TString cname = key->ClassName();
TString name = key->GetName();
TGLVEntry *entry = new TGLVEntry(fContents,name,cname);
entry->SetSubnames(key->GetTitle());
fContents->AddItem(entry);
if(cname=="TList")
if(cname==TList::Class_Name() || cname==TDirectoryFile::Class_Name())
entry->SetPictures(gClient->GetPicture("folder_s.xpm"),gClient->GetPicture("folder_t.xpm"));
if(cname=="TCutG")
if(cname==TCutG::Class_Name())
entry->SetPictures(gClient->GetPicture("bld_cut.png"),gClient->GetPicture("bld_cut.png"));
if(cname.BeginsWith("TGraph"))
if(cname.BeginsWith(TGraph::Class_Name()))
entry->SetPictures(gClient->GetPicture("graph.xpm"),gClient->GetPicture("graph.xpm"));
// user data is a filename
......@@ -219,44 +224,34 @@ void CXFileList::DisplayList(TList *list)
fMain->Resize();
}
void CXFileList::DisplayDirectory(const TString &fname)
{
// Display content of directory.
fContents->SetDefaultHeaders();
gSystem->ChangeDirectory(fname);
fContents->ChangeDirectory(fname);
fContents->DisplayDirectory();
fContents->AddFile(".."); // up level directory
fContents->Sort(EFSSortMode::kSortByName);
fMain->Resize();
}
void CXFileList::DisplayObject(const TString& fname,const TString& name)
{
// Browse object located in file.
TDirectory *sav = gDirectory;
TObject* obj = nullptr;
TObject *CurrentFolder = fFolders.back();
if(fParent->InheritsFrom("TFile"))
obj = fParentFile->Get(name);
else if(fParent->InheritsFrom("TList"))
obj = fParent->FindObject(name);
if(name==".."){
fFolders.pop_back();
obj=fFolders.back();
fFolders.pop_back();
}
else if(CurrentFolder->InheritsFrom(TList::Class_Name()))
obj = ((TList*)CurrentFolder)->FindObject(name);
else if(CurrentFolder->InheritsFrom(TDirectoryFile::Class_Name()))
obj = ((TDirectoryFile*)CurrentFolder)->Get(name);
if(obj == nullptr){
DisplayFile(fParentFile->GetName());
DisplayFile(fCurrentFile->GetName());
return;
}
if (obj)
{
if (!obj->IsFolder())
{
if (!obj->IsFolder()){
TString CanvasName = fMainWindow->GetCanvas()->GetName();
if(CanvasName.BeginsWith("GxG"))
{
if(CanvasName.BeginsWith("GxG")){
cout<<" cannot plot in a Tab dedicated to Gamma Gamma projections" << endl;
return;
}
......@@ -268,12 +263,10 @@ void CXFileList::DisplayObject(const TString& fname,const TString& name)
if(gPad && (obj->InheritsFrom("TH1")
|| obj->InheritsFrom("TGraph")
|| obj->InheritsFrom("TF1")))
{
|| obj->InheritsFrom("TF1"))){
obj->Draw(fBrowser->GetDrawOption());
if(obj->InheritsFrom("TH1"))
{
if(obj->InheritsFrom("TH1")){
TH1 *hist = (TH1*)obj;
hist->SetDirectory(nullptr);
}
......@@ -281,8 +274,7 @@ void CXFileList::DisplayObject(const TString& fname,const TString& name)
gPad->Update();
gPad->GetFrame()->SetBit(TObject::kCannotPick);
}
else if(gPad && obj->InheritsFrom("TCanvas"))
{
else if(gPad && obj->InheritsFrom("TCanvas")){
TCanvas *canvas_in = (TCanvas*)obj;
CXCanvas *canvas_out = fMainWindow->GetCanvas();
canvas_out->cd();
......@@ -290,30 +282,27 @@ void CXFileList::DisplayObject(const TString& fname,const TString& name)
Int_t idraw = 0;
for(int i=0 ; i<canvas_in->GetListOfPrimitives()->GetEntries() ; i++)
{
for(int i=0 ; i<canvas_in->GetListOfPrimitives()->GetEntries() ; i++){
TObject *o = canvas_in->GetListOfPrimitives()->At(i);
if(idraw==0)
{
if(idraw==0){
idraw++;