Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
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
Beispiel #5
0
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
Beispiel #6
0
 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)
Beispiel #7
0
    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)
Beispiel #8
0
    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)
Beispiel #9
0
    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)
Beispiel #10
0
    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)