def _create_actions(self): tree = self.ui.layerTree sep = QtWidgets.QAction("", tree) sep.setSeparator(True) tree.addAction(sep) # Actions relating to I/O self._actions['save_data'] = ExportDataAction(self) self._actions['save_subset'] = ExportSubsetAction(self) self._actions['import_subset_mask'] = ImportSubsetMaskAction(self) self._actions['export_subset_mask'] = ExportSubsetMaskAction(self) self._actions['copy'] = CopyAction(self) self._actions['paste'] = PasteAction(self) self._actions['paste_special'] = PasteSpecialAction(self) self._actions['invert'] = Inverter(self) self._actions['new'] = NewAction(self) self._actions['clear'] = ClearAction(self) self._actions['delete'] = DeleteAction(self) self._actions['facet'] = FacetAction(self) self._actions['metadata'] = MetadataAction(self) self._actions['merge'] = MergeAction(self) self._actions['maskify'] = MaskifySubsetAction(self) self._actions['link'] = LinkAction(self) sep = QtWidgets.QAction("", tree) sep.setSeparator(True) tree.addAction(sep) a = action("Add/edit arithmetic attributes", self, tip="Add/edit attributes derived from existing ones") tree.addAction(a) a.triggered.connect(nonpartial(self._create_component)) self._actions['new_component'] = a a = action("Reorder/rename data attributes", self, tip="Reorder/rename data attributes") tree.addAction(a) a.triggered.connect(nonpartial(self._manage_components)) self._actions['manage_components'] = a # Add user-defined layer actions. Note that _asdict is actually a public # method, but just has an underscore to prevent conflict with # namedtuple attributes. for item in layer_action: self._actions[item.label] = UserAction(self, **item._asdict()) # right click pulls up menu tree.setContextMenuPolicy(Qt.ActionsContextMenu)
def _make_mode(self, name, tip, icon, mode): a = action(name, self, tip, icon) a.setCheckable(True) a.triggered.connect(nonpartial(set_mode, mode)) self._group.addAction(a) self.addAction(a) self._modes[mode] = a label = name.split()[0].lower().replace('&', '') self._modes[label] = mode
def _create_actions(self): tree = self.ui.layerTree sep = QtWidgets.QAction("", tree) sep.setSeparator(True) tree.addAction(sep) # Actions relating to I/O self._actions['save_data'] = ExportDataAction(self) self._actions['save_subset'] = ExportSubsetAction(self) self._actions['import_subset_mask'] = ImportSubsetMaskAction(self) self._actions['export_subset_mask'] = ExportSubsetMaskAction(self) self._actions['copy'] = CopyAction(self) self._actions['paste'] = PasteAction(self) self._actions['paste_special'] = PasteSpecialAction(self) self._actions['invert'] = Inverter(self) self._actions['new'] = NewAction(self) self._actions['clear'] = ClearAction(self) self._actions['delete'] = DeleteAction(self) self._actions['facet'] = FacetAction(self) self._actions['merge'] = MergeAction(self) self._actions['maskify'] = MaskifySubsetAction(self) self._actions['link'] = LinkAction(self) # new component definer separator = QtWidgets.QAction("sep", tree) separator.setSeparator(True) tree.addAction(separator) a = action("Define new component", self, tip="Define a new component using python expressions") tree.addAction(a) a.triggered.connect(nonpartial(self._create_component)) self._actions['new_component'] = a # user-defined layer actions for name, callback, tooltip, icon in single_subset_action: self._actions[name] = SingleSubsetUserAction(self, callback, name=name, tooltip=tooltip, icon=icon) # right click pulls up menu tree.setContextMenuPolicy(Qt.ActionsContextMenu)
def _create_actions(self): """ Create and connect actions, store in _actions dict """ self._actions = {} a = action("&New Data Viewer", self, tip="Open a new visualization window in the current tab", shortcut=QtGui.QKeySequence.New) a.triggered.connect(self._choose_new_data_viewer_nodata) self._actions['viewer_new'] = a if len(qt_client.members) == 0: a.setEnabled(False) a = action("New Fixed Layout Tab", self, tip="Create a new tab with a fixed layout") a.triggered.connect(self.choose_new_fixed_layout_tab) self._actions['fixed_layout_tab_new'] = a if len(qt_fixed_layout_tab.members) == 0: a.setEnabled(False) a = action('New &Tab', self, shortcut=QtGui.QKeySequence.AddTab, tip='Add a new tab') a.triggered.connect(self.new_tab) self._actions['tab_new'] = a a = action('&Rename Tab', self, shortcut="Ctrl+R", tip='Set a new label for the current tab') a.triggered.connect(nonpartial(self.tab_bar.choose_rename_tab)) self._actions['tab_rename'] = a a = action('&Gather Windows', self, tip='Gather plot windows side-by-side', shortcut='Ctrl+G') a.triggered.connect(self.gather_current_tab) self._actions['gather'] = a a = action('&Export Session', self, tip='Save the current session') a.triggered.connect(self._choose_save_session) self._actions['session_save'] = a # Add file loader as first item in File menu for convenience. We then # also add it again below in the Import menu for consistency. a = action("&Open Data Set", self, tip="Open a new data set", shortcut=QtGui.QKeySequence.Open) a.triggered.connect(self._import_helper._choose_load_data_wizard) self._actions['data_new'] = a # We now populate the "Import data" menu from glue.config import importer acts = [] # Add default file loader (later we can add this to the registry) a = action("Import from file", self, tip="Import from file") a.triggered.connect(self._import_helper._choose_load_data_wizard) acts.append(a) for label, data_importer in importer: a = action(label, self, tip=label) a.triggered.connect( nonpartial(self._import_helper._choose_load_data, data_importer)) acts.append(a) self._actions['data_importers'] = acts from glue.config import exporters if len(exporters) > 0: acts = [] for e in exporters: label, saver, checker, mode = e a = action(label, self, tip='Export the current session to %s format' % label) a.triggered.connect( nonpartial(self._export_helper._choose_export_session, saver, checker, mode)) acts.append(a) self._actions['session_export'] = acts a = action('Open S&ession', self, tip='Restore a saved session') a.triggered.connect(self._restore_session) self._actions['session_restore'] = a a = action('Reset S&ession', self, tip='Reset session to clean state') a.triggered.connect(self._reset_session) self._actions['session_reset'] = a a = action('Export D&ata/Subsets', self, tip='Export data to a file') a.triggered.connect(self._choose_save_data) self._actions['export_data'] = a a = action("Undo", self, tip='Undo last action', shortcut=QtGui.QKeySequence.Undo) a.triggered.connect(self.undo) a.setEnabled(False) self._actions['undo'] = a a = action("Redo", self, tip='Redo last action', shortcut=QtGui.QKeySequence.Redo) a.triggered.connect(self.redo) a.setEnabled(False) self._actions['redo'] = a # Create actions for menubar plugins from glue.config import menubar_plugin acts = [] for label, function in menubar_plugin: a = action(label, self, tip=label) a.triggered.connect( nonpartial(function, self.session, self.data_collection)) acts.append(a) self._actions['plugins'] = acts a = action('&Plugin Manager', self, tip='Open plugin manager') a.triggered.connect(self.plugin_manager) self._actions['plugin_manager'] = a
def _create_actions(self): """ Create and connect actions, store in _actions dict """ self._actions = {} a = action("&New Data Viewer", self, tip="Open a new visualization window in the current tab", shortcut=QtGui.QKeySequence.New) a.triggered.connect(nonpartial(self.choose_new_data_viewer)) self._actions['viewer_new'] = a a = action('New &Tab', self, shortcut=QtGui.QKeySequence.AddTab, tip='Add a new tab') a.triggered.connect(nonpartial(self.new_tab)) self._actions['tab_new'] = a a = action('&Rename Tab', self, shortcut="Ctrl+R", tip='Set a new label for the current tab') a.triggered.connect(nonpartial(self.tab_bar.rename_tab)) self._actions['tab_rename'] = a a = action('&Gather Windows', self, tip='Gather plot windows side-by-side', shortcut='Ctrl+G') a.triggered.connect(nonpartial(self.gather_current_tab)) self._actions['gather'] = a a = action('&Save Session', self, tip='Save the current session') a.triggered.connect(nonpartial(self._choose_save_session)) self._actions['session_save'] = a # Add file loader as first item in File menu for convenience. We then # also add it again below in the Import menu for consistency. a = action("&Open Data Set", self, tip="Open a new data set", shortcut=QtGui.QKeySequence.Open) a.triggered.connect(nonpartial(self._choose_load_data, data_wizard)) self._actions['data_new'] = a # We now populate the "Import data" menu from glue.config import importer acts = [] # Add default file loader (later we can add this to the registry) a = action("Import from file", self, tip="Import from file") a.triggered.connect(nonpartial(self._choose_load_data, data_wizard)) acts.append(a) for i in importer: label, data_importer = i a = action(label, self, tip=label) a.triggered.connect(nonpartial(self._choose_load_data, data_importer)) acts.append(a) self._actions['data_importers'] = acts from glue.config import exporters if len(exporters) > 0: acts = [] for e in exporters: label, saver, checker, mode = e a = action(label, self, tip='Export the current session to %s format' % label) a.triggered.connect(nonpartial(self._choose_export_session, saver, checker, mode)) acts.append(a) self._actions['session_export'] = acts a = action('Open S&ession', self, tip='Restore a saved session') a.triggered.connect(nonpartial(self._restore_session)) self._actions['session_restore'] = a a = action('Reset S&ession', self, tip='Reset session to clean state') a.triggered.connect(nonpartial(self._reset_session)) self._actions['session_reset'] = a a = action("Undo", self, tip='Undo last action', shortcut=QtGui.QKeySequence.Undo) a.triggered.connect(nonpartial(self.undo)) a.setEnabled(False) self._actions['undo'] = a a = action("Redo", self, tip='Redo last action', shortcut=QtGui.QKeySequence.Redo) a.triggered.connect(nonpartial(self.redo)) a.setEnabled(False) self._actions['redo'] = a # Create actions for menubar plugins from glue.config import menubar_plugin acts = [] for label, function in menubar_plugin: a = action(label, self, tip=label) a.triggered.connect(nonpartial(function, self.session, self.data_collection)) acts.append(a) self._actions['plugins'] = acts a = action('&Plugin Manager', self, tip='Open plugin manager') a.triggered.connect(nonpartial(self.plugin_manager)) self._actions['plugin_manager'] = a