context attributes:
- sg : the SALOME Swig interface
- - studyId : the SALOME studyId that must be used to execute the plugin
- study : the SALOME study object that must be used to execute the plugin
"""
class Context:
def __init__(self,sgpyqt):
self.sg=sgpyqt
- self.studyId=salome.sg.getActiveStudyId()
- self.study= salome.myStudyManager.GetStudyByID(self.studyId)
+ self.study=salome.myStudy
def find_menu(smenu):
lmenus=smenu.split("|")
# MODULES plugins are supposed to be located in the
# installation folder of the module, in the subdirectory
# "share/salome/plugins". We first look for these directories.
- for key in list(os.environ.keys()):
+ searched = []
+ for key in os.environ.keys():
if key.endswith("_ROOT_DIR"):
rootpath=os.environ[key]
dirpath=os.path.join(rootpath,PLUGIN_PATH_PATTERN)
- if os.path.isdir(dirpath) and dirpath not in self.plugindirs:
+ if os.path.isdir(dirpath) and dirpath not in self.plugindirs + searched:
logger.debug("Looking for plugins in the directory %s ..."%dirpath)
walktree(dirpath,self.analyseFile)
+ if dirpath not in self.plugindirs and dirpath not in searched:
+ searched.append(dirpath)
# USER plugins directory
user_dir = os.path.expanduser("~/.config/salome/Plugins")
def importPlugins(self):
"""Execute the salome_plugins file that contains plugins definition """
- studyId=sg.getActiveStudyId()
- if studyId == 0:
- self.menu.clear()
- self.menu.menuAction().setVisible(False)
- return
- elif self.lasttime ==0 or salome.myStudy == None:
+ if self.lasttime ==0 or salome.myStudy == None:
salome.salome_init(embedded=1)
lasttime=0