def __init__(self): super().__init__(None) self.default_style = None self.widgetlist = [] self.thirdparty_plugins = [] self.shortcut_data = [] self.prefs_dialog_instance = None self._PLUGINS = OrderedDict() self._EXTERNAL_PLUGINS = OrderedDict() self._INTERNAL_PLUGINS = OrderedDict() self._APPLICATION_TOOLBARS = MagicMock() self.console = Mock() self.sig_main_interpreter_changed = Mock() self.preferences = Preferences(self, CONF) self.register_plugin(self.preferences) # Load shortcuts for tests for context, name, __ in CONF.iter_shortcuts(): self.shortcut_data.append((None, context, name, None, None)) for attr in ['mem_status', 'cpu_status']: mock_attr = Mock() setattr(mock_attr, 'toolTip', lambda: '') setattr(mock_attr, 'setToolTip', lambda x: '') setattr(mock_attr, 'prefs_dialog_instance', lambda: '') setattr(self, attr, mock_attr)
def load_shortcuts(self): """Load shortcuts and assign to table model.""" # item[1] -> context, item[2] -> name # Data might be capitalized so we user lower() # See: spyder-ide/spyder/#12415 shortcut_data = set([(item[1].lower(), item[2].lower()) for item in self.shortcut_data]) shortcut_data = list(sorted(set(shortcut_data))) shortcuts = [] for context, name, keystr in CONF.iter_shortcuts(): if (context, name) in shortcut_data: context = context.lower() name = name.lower() # Only add to table actions that are registered from the main # window shortcut = Shortcut(context, name, keystr) shortcuts.append(shortcut) shortcuts = sorted(shortcuts, key=lambda item: item.context+item.name) # Store the original order of shortcuts for i, shortcut in enumerate(shortcuts): shortcut.index = i self.source_model.shortcuts = shortcuts self.source_model.scores = [0]*len(shortcuts) self.source_model.rich_text = [s.name for s in shortcuts] self.source_model.reset() self.adjust_cells() self.sortByColumn(CONTEXT, Qt.AscendingOrder)
def __init__(self, parent): super().__init__(parent) self.default_style = None self.widgetlist = [] self.thirdparty_plugins = [] self.shortcut_data = [] self.prefs_dialog_instance = None self._APPLICATION_TOOLBARS = MagicMock() self.console = Mock() # To provide command line options for plugins that need them sys_argv = [sys.argv[0]] # Avoid options passed to pytest self._cli_options = get_options(sys_argv)[0] PLUGIN_REGISTRY.reset() PLUGIN_REGISTRY.sig_plugin_ready.connect(self.register_plugin) PLUGIN_REGISTRY.register_plugin(self, Preferences) # Load shortcuts for tests for context, name, __ in CONF.iter_shortcuts(): self.shortcut_data.append((None, context, name, None, None)) for attr in ['mem_status', 'cpu_status']: mock_attr = Mock() setattr(mock_attr, 'toolTip', lambda: '') setattr(mock_attr, 'setToolTip', lambda x: '') setattr(mock_attr, 'prefs_dialog_instance', lambda: '') setattr(self, attr, mock_attr)
def load_shortcuts(shortcut_table): # Load shortcuts from CONF shortcut_data = [] for context, name, __ in CONF.iter_shortcuts(): shortcut_data.append((None, context, name, None, None)) shortcut_table.set_shortcut_data(shortcut_data) shortcut_table.load_shortcuts() return shortcut_table
def load_shortcuts_data(): """ Load shortcuts from CONF for testing. """ shortcut_data = [] for context, name, __ in CONF.iter_shortcuts(): context = context.lower() name = name.lower() shortcut_data.append((None, context, name, None, None)) return shortcut_data
def load_shortcuts(self): """Load shortcuts and assign to table model.""" shortcuts = [] for context, name, keystr in CONF.iter_shortcuts(): shortcut = Shortcut(context, name, keystr) shortcuts.append(shortcut) shortcuts = sorted(shortcuts, key=lambda x: x.context + x.name) # Store the original order of shortcuts for i, shortcut in enumerate(shortcuts): shortcut.index = i self.source_model.shortcuts = shortcuts self.source_model.scores = [0] * len(shortcuts) self.source_model.rich_text = [s.name for s in shortcuts] self.source_model.reset() self.adjust_cells() self.sortByColumn(CONTEXT, Qt.AscendingOrder)
def __init__(self): self.default_style = None self.widgetlist = [] self.thirdparty_plugins = [] self.shortcut_data = [] # Load shortcuts for tests for context, name, __ in CONF.iter_shortcuts(): self.shortcut_data.append((None, context, name, None, None)) for attr in ['mem_status', 'cpu_status']: mock_attr = Mock() setattr(mock_attr, 'toolTip', lambda: '') setattr(mock_attr, 'setToolTip', lambda x: '') setattr(mock_attr, 'is_supported', lambda: True) setattr(self, attr, mock_attr)
def __init__(self): super().__init__(None) self.default_style = None self.widgetlist = [] self.thirdparty_plugins = [] self.shortcut_data = [] self.prefs_dialog_instance = None self._APPLICATION_TOOLBARS = MagicMock() self.console = Mock() PLUGIN_REGISTRY.sig_plugin_ready.connect(self.register_plugin) # Load shortcuts for tests for context, name, __ in CONF.iter_shortcuts(): self.shortcut_data.append((None, context, name, None, None)) for attr in ['mem_status', 'cpu_status']: mock_attr = Mock() setattr(mock_attr, 'toolTip', lambda: '') setattr(mock_attr, 'setToolTip', lambda x: '') setattr(mock_attr, 'prefs_dialog_instance', lambda: '') setattr(self, attr, mock_attr)
def load_shortcuts(self): """Load shortcuts and assign to table model.""" # item[1] -> context, item[2] -> name shortcut_data = [(item[1], item[2]) for item in self.shortcut_data] shortcuts = [] for context, name, keystr in CONF.iter_shortcuts(): if (context, name) in shortcut_data: # Only add to table actions that are registered from the main # window shortcut = Shortcut(context, name, keystr) shortcuts.append(shortcut) shortcuts = sorted(shortcuts, key=lambda x: x.context + x.name) # Store the original order of shortcuts for i, shortcut in enumerate(shortcuts): shortcut.index = i self.source_model.shortcuts = shortcuts self.source_model.scores = [0] * len(shortcuts) self.source_model.rich_text = [s.name for s in shortcuts] self.source_model.reset() self.adjust_cells() self.sortByColumn(CONTEXT, Qt.AscendingOrder)
def __init__(self, parent=None): QDialog.__init__(self, parent=parent) self._shortcuts_summary_title = SHORTCUTS_SUMMARY_TITLE # Calculate font and amount of elements in each column # according screen size width, height = self.get_screen_resolution() font_size = height / 80 font_size = max(min(font_size, MAX_FONT_SIZE), MIN_FONT_SIZE) shortcuts_column = (height - 8 * font_size) / (font_size + 16) # Widgets style = """ QDialog { margin:0px; padding:0px; border-radius: 2px; }""" self.setStyleSheet(style) font_names = QFont() font_names.setPointSize(font_size) font_names.setBold(True) font_keystr = QFont() font_keystr.setPointSize(font_size) font_title = QFont() font_title.setPointSize(font_size + 2) font_title.setBold(True) title_label = QLabel(self._shortcuts_summary_title) title_label.setAlignment(Qt.AlignCenter) title_label.setFont(font_title) # iter over shortcuts and create GroupBox for each context # with shortcuts in a grid columns_layout = QHBoxLayout() added_shortcuts = 0 group = None # group shortcuts by context shortcuts = groupby(sorted(CONF.iter_shortcuts()), key=itemgetter(0)) for __, group_shortcuts in shortcuts: for i, (context, name, keystr) in enumerate(group_shortcuts): # start of every column if added_shortcuts == 0: column_layout = QVBoxLayout() # at start of new context add previous context group if i == 0 and added_shortcuts > 0: column_layout.addWidget(group) # create group at start of column or context if added_shortcuts == 0 or i == 0: if context == '_': context = 'Global' group = QGroupBox(context.capitalize()) group.setFont(font_names) group_layout = QGridLayout() group.setLayout(group_layout) # Count space for titles added_shortcuts += 1 # Widgets label_name = QLabel(name.capitalize().replace('_', ' ')) label_name.setFont(font_names) keystr = QKeySequence(keystr).toString(QKeySequence.NativeText) label_keystr = QLabel(keystr) label_keystr.setFont(font_keystr) group_layout.addWidget(label_name, i, 0) group_layout.addWidget(label_keystr, i, 1) added_shortcuts += 1 if added_shortcuts >= shortcuts_column: column_layout.addWidget(group) columns_layout.addLayout(column_layout) added_shortcuts = 0 column_layout.addWidget(group) column_layout.addStretch() # avoid lasts sections to appear too big columns_layout.addLayout(column_layout) # Scroll widget self.scroll_widget = QWidget() self.scroll_widget.setLayout(columns_layout) self.scroll_area = QScrollArea() self.scroll_area.setWidget(self.scroll_widget) # widget setup self.setWindowFlags(Qt.FramelessWindowHint) self.setWindowOpacity(0.95) # layout self._layout = QVBoxLayout() self._layout.addWidget(title_label) self._layout.addWidget(self.scroll_area) self.setLayout(self._layout) self.setGeometry(0, 0, width, height)