def _make_mode(self, name, tip, icon, mode): a = act(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): """ Create and connect actions, store in _actions dict """ self._actions = {} a = act("&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 = act('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 = act('&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 = act('&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 = act('&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 = act("&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 = act("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 = act(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 = act(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 = act('Open S&ession', self, tip='Restore a saved session') a.triggered.connect(nonpartial(self._restore_session)) self._actions['session_restore'] = a a = act('Reset S&ession', self, tip='Reset session to clean state') a.triggered.connect(nonpartial(self._reset_session)) self._actions['session_reset'] = a a = act("Undo", self, tip='Undo last action', shortcut=QtGui.QKeySequence.Undo) a.triggered.connect(nonpartial(self.undo)) a.setEnabled(False) self._actions['undo'] = a a = act("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 = act(label, self, tip=label) a.triggered.connect(nonpartial(function, self.session, self.data_collection)) acts.append(a) self._actions['plugins'] = acts a = act('&Plugin Manager', self, tip='Open plugin manager') a.triggered.connect(nonpartial(self.plugin_manager)) self._actions['plugin_manager'] = a