Source code for mosviz.widgets.toolbars

import os

from glue.viewers.common.qt.toolbar import BasicToolbar
from glue.viewers.common.qt.tool import Tool

from qtpy.QtWidgets import QAction, QComboBox, QMenu, QToolButton, QWidgetAction
from qtpy.QtGui import QIcon
from qtpy.QtCore import Qt

from .. import ICON_DIR

__all__ = ['CyclePreviousTool', 'CycleForwardTool', 'MOSViewerToolbar']


[docs]class CyclePreviousTool(Tool): def __init__(self, viewer, toolbar=None): super(CyclePreviousTool, self).__init__(viewer=viewer) self.tool_id = 'mv:previous' self.action_text = "Previous" self.tool_tip = "Previous source in selection" self.shortcut = "P" self.checkable = False self.toolbar = toolbar
[docs] def activate(self): pass
[docs]class CycleForwardTool(Tool): def __init__(self, viewer, toolbar=None): super(CycleForwardTool, self).__init__(viewer=viewer) self.tool_id = 'mv:next' self.action_text = "Next" self.tool_tip = "Next source in selection" self.shortcut = "N" self.checkable = False self.toolbar = toolbar
[docs] def activate(self): pass
[docs]class MOSViewerToolbar(BasicToolbar): def __init__(self, *args, **kwargs): super(MOSViewerToolbar, self).__init__(*args, **kwargs) self.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) # Define the toolbar actions self.cycle_previous_action = QAction( QIcon(os.path.join(ICON_DIR, "Previous-96.png")), "Previous", self) self.cycle_next_action = QAction( QIcon(os.path.join(ICON_DIR, "Next-96.png")), "Next", self) self.exposure_previous_action = QAction( QIcon(os.path.join(ICON_DIR, "Previous-96.png")), "Previous exp.", self) self.exposure_next_action = QAction( QIcon(os.path.join(ICON_DIR, "Next-96.png")), "Next exp.", self) # Include the dropdown widgets self.source_select = QComboBox() self.exposure_select = QComboBox() # Add the items to the toolbar self.addAction(self.cycle_previous_action) self.addAction(self.cycle_next_action) self.addWidget(self.source_select) self.addAction(self.exposure_previous_action) self.addAction(self.exposure_next_action) self.addWidget(self.exposure_select) # Include a button to open spectrum in specviz self.open_specviz = QAction( QIcon(os.path.join(ICON_DIR, "External-96.png")), "Open in SpecViz", self) # Create a tool button to hold the lock axes menu object tool_button = QToolButton(self) tool_button.setText("Axes Settings") tool_button.setIcon(QIcon(os.path.join(ICON_DIR, "Settings-96.png"))) tool_button.setPopupMode(QToolButton.InstantPopup) tool_button.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) # Create a menu for the axes settings drop down self.settings_menu = QMenu(self) # Add lock x axis action self.lock_x_action = QAction("Lock spectral axis", self.settings_menu) self.lock_x_action.setCheckable(True) # Add lock y axis action self.lock_y_action = QAction("Lock vertical displacement axis", self.settings_menu) self.lock_y_action.setCheckable(True) # Add the actions to the menu self.settings_menu.addAction(self.lock_x_action) self.settings_menu.addAction(self.lock_y_action) # Set the menu object on the tool button tool_button.setMenu(self.settings_menu) # Create a widget action object to hold the tool button, this way the # toolbar behaves the way it's expected to tool_button_action = QWidgetAction(self) tool_button_action.setDefaultWidget(tool_button) self.addAction(tool_button_action) self.addSeparator() self.addAction(self.open_specviz)