Source code for scipion.guiplugin

# NOTE: This is far from ideal.
# We want to register actions in pyworkflow windows.
# Since pyworkflow scans packages, this init will be triggered by pyworkflow and then
# we will register the menu (only works for the project window and not for the "project list" window).
# register plugin menus
import os

from scipion.scripts.kickoff import (getTemplates, chooseTemplate,
                                     resolveTemplate,
                                     importTemplate)
from scipion.utils import getInstallPath, getScriptsPath
from scipion.constants import PLUGIN_MANAGER_PY, PYTHON, KICKOFF


[docs]def launchPluginManager(window): os.system("%s %s" % (PYTHON, os.path.join(getInstallPath(), PLUGIN_MANAGER_PY)))
[docs]def launchTemplates(window): os.system("%s %s" % (PYTHON, os.path.join(getScriptsPath(), KICKOFF)))
# Cancel this for now to prevent an early import of Config and a false initialization from pyworkflow.gui.project import ProjectManagerWindow, ProjectWindow ProjectManagerWindow.registerPluginMenu("Plugin manager", launchPluginManager, None) ProjectManagerWindow.registerPluginMenu("Workflow templates", launchTemplates, None)
[docs]def importFromTemplate(window): templates = getTemplates() chosenTemplate = chooseTemplate(templates, parentWindow=window.getRoot()) if chosenTemplate is not None and resolveTemplate(chosenTemplate, [], showScheduleOption=False, schedule=False, showProjectOption=False, showProject=False, showProjectName=False): importTemplate(chosenTemplate, window)
ProjectWindow.registerPluginMenu("Import workflow template", importFromTemplate, None)