def getVersionSchemaDir(version=None): if version is None: version = currentVersion versionName = get_version_name(version) schemaDir = vistrails_root_directory() schemaDir = os.path.join(vistrails_root_directory(), 'db', 'versions', versionName, 'schemas', 'sql') return schemaDir
def getVersionSchemaDir(version=None): if version is None: version = currentVersion versionName = get_version_name(version) schemaDir = os.path.join(vistrails_root_directory(), 'db', 'versions', versionName, 'schemas', 'sql') return schemaDir
def setupSplashScreen(self): """ setupSplashScreen() -> None Create the splash-screen at startup """ if self.temp_configuration.check('showSplash'): splashPath = (system.vistrails_root_directory() + "/gui/resources/images/vistrails_splash.png") pixmap = QtGui.QPixmap(splashPath) self.splashScreen = QtGui.QSplashScreen(pixmap, QtCore.Qt.WindowStaysOnTopHint) self.splashScreen.show()
def uvcdat_vistrails_branch(): git_dir = os.path.join(vistrails_root_directory(), '..') with Chdir(git_dir): release = "" if core.requirements.executable_file_exists('git'): lines = [] result = execute_cmdline(['git', 'rev-parse', '--abbrev-ref', 'HEAD' ], lines) if len(lines) == 1: if result == 0: release = lines[0].strip() return release
def importWidgetModules(basicWidgets): """ importWidgetModules(basicWidgets: widget) -> None Find all widget package under ./widgets/* to add to the spreadsheet registry """ packageName = __name__.lower().endswith('.init') and __name__[:-5] or __name__ widgetDir = (vistrails_root_directory()+ '/'+string.replace(packageName, '.', '/')+'/widgets/') candidates = os.listdir(widgetDir) for folder in candidates: if os.path.isdir(widgetDir+folder) and folder!='.svn': addWidget(packageName+'.widgets.'+folder)
def uvcdat_vistrails_branch(): git_dir = os.path.join(vistrails_root_directory(), '..') with Chdir(git_dir): release = "update_before_release" if core.requirements.executable_file_exists('git'): lines = [] result = execute_cmdline(['git', 'rev-parse', '--abbrev-ref', 'HEAD' ], lines) if len(lines) == 1: if result == 0: release = lines[0].strip() return release
def uvcdat_revision(): """uvcdat_revision() -> str When run on a working copy, shows the current git hash else shows the latest release revision """ git_dir = os.path.join(vistrails_root_directory(), '..') with Chdir(git_dir): release = "" if core.requirements.executable_file_exists('git'): lines = [] result = execute_cmdline(['git', 'describe', '--tags', ], lines) if len(lines) == 1: if result == 0: release = lines[0].strip() return release
def uvcdat_revision(): """uvcdat_revision() -> str When run on a working copy, shows the current git hash else shows the latest release revision """ git_dir = os.path.join(vistrails_root_directory(), '..') with Chdir(git_dir): release = "<update_before_release>" if core.requirements.executable_file_exists('git'): lines = [] result = execute_cmdline(['git', 'describe', '--always', '--abbrev=12'], lines) if len(lines) == 1: if result == 0: release = lines[0].strip(" \n") return release
def updateContents(self, inputPorts): if self.view == None: self.view = pvsp.CreateRenderView() renWin = self.view.GetRenderWindow() self.SetRenderWindow(renWin) iren = renWin.GetInteractor() iren.SetNonInteractiveRenderDelay(0) iren.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera()) # Load the uvcdat logo and use it for overlay logoPath = ( system.vistrails_root_directory() + "/gui/uvcdat/resources/images/uvcdat_logo_transparent.png") reader = vtk.vtkPNGReader() reader.SetFileName(logoPath) reader.Update() imageActor = vtk.vtkImageActor() imageActor.SetInputData(reader.GetOutput()) self.overlayRenderer = vtk.vtkRenderer() self.overlayRenderer.AddActor(imageActor) renWin.SetNumberOfLayers(renWin.GetNumberOfLayers() + 1) self.overlayRenderer.SetLayer(renWin.GetNumberOfLayers() - 1) renWin.AddRenderer(self.overlayRenderer) self.overlayRenderer.SetViewport(0.7, 0, 1.0, 0.3) del self.view.Representations[:] # Fetch variables from the input port (location, representations) = inputPorts for rep in representations: rep.set_view(self.view) rep.execute() # Set view specific properties self.view.CenterAxesVisibility = 0 self.view.Background = [0.6, 0.6, 0.6] self.view.ResetCamera() self.view.StillRender() QCellWidget.updateContents(self, inputPorts)
def updateContents(self, inputPorts): if self.view == None: self.view = pvsp.CreateRenderView() renWin = self.view.GetRenderWindow() self.SetRenderWindow(renWin) iren = renWin.GetInteractor() iren.SetNonInteractiveRenderDelay(0) iren.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera()) # Load the uvcdat logo and use it for overlay logoPath = system.vistrails_root_directory() + "/gui/uvcdat/resources/images/uvcdat_logo_transparent.png" reader = vtk.vtkPNGReader() reader.SetFileName(logoPath) reader.Update() imageActor = vtk.vtkImageActor() imageActor.SetInput(reader.GetOutput()) self.overlayRenderer = vtk.vtkRenderer() self.overlayRenderer.AddActor(imageActor) renWin.SetNumberOfLayers(renWin.GetNumberOfLayers() + 1) self.overlayRenderer.SetLayer(renWin.GetNumberOfLayers() - 1) renWin.AddRenderer(self.overlayRenderer) self.overlayRenderer.SetViewport(0.7, 0, 1.0, 0.3) del self.view.Representations[:] # Fetch variables from the input port (location, representations) = inputPorts for rep in representations: rep.set_view(self.view) rep.execute() # Set view specific properties self.view.CenterAxesVisibility = 0 self.view.Background = [0.6, 0.6, 0.6] self.view.ResetCamera() self.view.StillRender() QCellWidget.updateContents(self, inputPorts)
class PortItem(QtGui.QTreeWidgetItem): null_icon = QtGui.QIcon() eye_icon = QtGui.QIcon(os.path.join(vistrails_root_directory(), 'gui/resources/images/eye.png')) eye_disabled_icon = \ QtGui.QIcon(os.path.join(vistrails_root_directory(), 'gui/resources/images/eye_gray.png')) conn_icon = \ QtGui.QIcon(os.path.join(vistrails_root_directory(), 'gui/resources/images/connection.png')) def __init__(self, port_spec, is_connected, is_optional, is_visible, parent=None): QtGui.QTreeWidgetItem.__init__(self, parent) # self.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled) self.setFlags(QtCore.Qt.ItemIsEnabled) # self.setCheckState(0, QtCore.Qt.Unchecked) self.port_spec = port_spec self.is_connected = is_connected self.is_optional = is_optional self.is_visible = is_visible self.build_item(port_spec, is_connected, is_optional, is_visible) def visible(self): return not self.is_optional or self.is_visible def set_visible(self, visible): self.is_visible = visible if visible: self.setIcon(0, PortItem.eye_icon) else: self.setIcon(0, PortItem.null_icon) def get_visible(self): return self.visible_checkbox def get_connected(self): return self.connected_checkbox def is_constant(self): return get_module_registry().is_method(self.port_spec) def build_item(self, port_spec, is_connected, is_optional, is_visible): if not is_optional: self.setIcon(0, PortItem.eye_disabled_icon) elif is_visible: self.setIcon(0, PortItem.eye_icon) # if port_spec is not a method, make it gray if is_connected: self.setIcon(1, PortItem.conn_icon) self.setText(2, port_spec.name) if not self.is_constant(): self.setForeground(2, QtGui.QBrush(QtGui.QColor.fromRgb(128,128,128))) self.visible_checkbox = QtGui.QCheckBox() self.connected_checkbox = QtGui.QCheckBox() def contextMenuEvent(self, event, widget): if self.port_spec is None: return act = QtGui.QAction("View Documentation", widget) act.setStatusTip("View method documentation") QtCore.QObject.connect(act, QtCore.SIGNAL("triggered()"), self.view_documentation) menu = QtGui.QMenu(widget) menu.addAction(act) menu.exec_(event.globalPos()) def view_documentation(self): descriptor = self.treeWidget().module.module_descriptor port_type = self.treeWidget().port_type widget = QPortDocumentation(descriptor, port_type, self.port_spec.name) widget.setAttribute(QtCore.Qt.WA_DeleteOnClose) widget.exec_()
class ParameterEntry(QtGui.QTreeWidgetItem): plus_icon = QtGui.QIcon(os.path.join(vistrails_root_directory(), 'gui/resources/images/plus.png')) minus_icon = QtGui.QIcon(os.path.join(vistrails_root_directory(), 'gui/resources/images/minus.png')) def __init__(self, port_spec, function=None, parent=None): QtGui.QTreeWidgetItem.__init__(self, parent) self.setFirstColumnSpanned(True) self.port_spec = port_spec self.function = function def build_widget(self, widget_accessor, with_alias=True): reg = get_module_registry() # widget = QtGui.QDockWidget() # widget.setFeatures(QtGui.QDockWidget.DockWidgetClosable | # QtGui.QDockWidget.DockWidgetVerticalTitleBar) widget = QtGui.QWidget() h_layout = QtGui.QHBoxLayout() h_layout.insertSpacing(0, 10) h_layout.setMargin(2) h_layout.setSpacing(2) v_layout = QtGui.QVBoxLayout() v_layout.setAlignment(QtCore.Qt.AlignVCenter) delete_button = QtGui.QToolButton() delete_button.setIconSize(QtCore.QSize(8,8)) delete_button.setIcon(ParameterEntry.minus_icon) def delete_method(): if self.function is not None: self.group_box.parent().parent().parent().delete_method( self, self.port_spec.name, self.function.real_id) else: self.group_box.parent().parent().parent().delete_method( self, self.port_spec.name, None) QtCore.QObject.connect(delete_button, QtCore.SIGNAL("clicked()"), delete_method) v_layout.addWidget(delete_button) add_button = QtGui.QToolButton() add_button.setIcon(ParameterEntry.plus_icon) add_button.setIconSize(QtCore.QSize(8,8)) def add_method(): self.group_box.parent().parent().parent().add_method( self.port_spec.name) QtCore.QObject.connect(add_button, QtCore.SIGNAL("clicked()"), add_method) v_layout.addWidget(add_button) h_layout.addLayout(v_layout) self.my_widgets = [] self.my_labels = [] self.group_box = QtGui.QGroupBox() layout = QtGui.QGridLayout() layout.setMargin(5) layout.setSpacing(5) layout.setColumnStretch(1,1) self.group_box.setFocusPolicy(QtCore.Qt.ClickFocus) self.group_box.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) self.group_box.palette().setColor(QtGui.QPalette.Window, CurrentTheme.METHOD_SELECT_COLOR) if self.function is not None: params = self.function.parameters else: params = [None,] * len(self.port_spec.descriptors()) for i, (desc, param) in enumerate(izip(self.port_spec.descriptors(), params)): #print 'adding desc', desc.name ps_label = '' if self.port_spec.labels is not None and \ len(self.port_spec.labels) > i: ps_label = str(self.port_spec.labels[i]) # label = QHoverAliasLabel(p.alias, p.type, ps_label) widget_class = widget_accessor(desc.module) if param is not None: obj = param else: obj = Parameter(desc) if with_alias: label = AliasLabel(obj.alias, obj.type, ps_label) self.my_labels.append(label) else: label = QtGui.QLabel(obj.type) param_widget = widget_class(obj, self.group_box) self.my_widgets.append(param_widget) layout.addWidget(label, i, 0) layout.addWidget(param_widget, i, 1) self.group_box.setLayout(layout) def updateMethod(): if self.function is not None: real_id = self.function.real_id else: real_id = -1 self.group_box.parent().parent().parent().update_method( self, self.port_spec.name, self.my_widgets, self.my_labels, real_id) def check_alias(name): controller = self.group_box.parent().parent().parent().controller if controller: return controller.check_alias(name) return False self.group_box.updateMethod = updateMethod self.group_box.check_alias = check_alias h_layout.addWidget(self.group_box) widget.setLayout(h_layout) return widget def get_widget(self): return self.build_widget(get_widget_class, True)