Preferences/ConfigurationPages/ShellPage.py

Sun, 04 Nov 2018 17:20:11 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 04 Nov 2018 17:20:11 +0100
changeset 6581
8eb6220f2bb7
parent 6048
82ad8ec9548c
child 6645
ad476851d7e0
permissions
-rw-r--r--

Shell: changed code to start the shell/debugger backend with an unmodified PATH setting and added some more special commands (see what's this help of the shell).

# -*- coding: utf-8 -*-

# Copyright (c) 2006 - 2018 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Module implementing the Shell configuration page.
"""

from __future__ import unicode_literals

from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QFontDialog

from .ConfigurationPageBase import ConfigurationPageBase
from .Ui_ShellPage import Ui_ShellPage

import Preferences

try:
    MonospacedFontsOption = QFontDialog.MonospacedFonts
except AttributeError:
    MonospacedFontsOption = QFontDialog.FontDialogOptions(0x10)

from QScintilla.Shell import ShellHistoryStyle


class ShellPage(ConfigurationPageBase, Ui_ShellPage):
    """
    Class implementing the Shell configuration page.
    """
    def __init__(self):
        """
        Constructor
        """
        super(ShellPage, self).__init__()
        self.setupUi(self)
        self.setObjectName("ShellPage")
        
        self.shellHistoryStyleComboBox.addItem(
            self.tr("Disabled"), ShellHistoryStyle.Disabled.value)
        self.shellHistoryStyleComboBox.addItem(
            self.tr("Linux Style"), ShellHistoryStyle.LinuxStyle.value)
        self.shellHistoryStyleComboBox.addItem(
            self.tr("Windows Style"), ShellHistoryStyle.WindowsStyle.value)
        
        # set initial values
        self.shellLinenoCheckBox.setChecked(
            Preferences.getShell("LinenoMargin"))
        self.shellWordWrapCheckBox.setChecked(
            Preferences.getShell("WrapEnabled"))
        self.shellACEnabledCheckBox.setChecked(
            Preferences.getShell("AutoCompletionEnabled"))
        self.shellCTEnabledCheckBox.setChecked(
            Preferences.getShell("CallTipsEnabled"))
        self.shellSyntaxHighlightingCheckBox.setChecked(
            Preferences.getShell("SyntaxHighlightingEnabled"))
        self.rememberCheckBox.setChecked(
            Preferences.getShell("StartWithMostRecentlyUsedEnvironment"))
        self.shellHistorySpinBox.setValue(
            Preferences.getShell("MaxHistoryEntries"))
        index = self.shellHistoryStyleComboBox.findData(
            Preferences.getShell("HistoryStyle").value)
        self.shellHistoryStyleComboBox.setCurrentIndex(index)
        self.shellHistoryWrapCheckBox.setChecked(
            Preferences.getShell("HistoryWrap"))
        self.shellHistoryCursorKeysCheckBox.setChecked(
            Preferences.getShell("HistoryNavigateByCursor"))
        self.stdOutErrCheckBox.setChecked(
            Preferences.getShell("ShowStdOutErr"))
        
        self.monospacedFont = Preferences.getShell("MonospacedFont")
        self.monospacedFontSample.setFont(self.monospacedFont)
        self.monospacedCheckBox.setChecked(
            Preferences.getShell("UseMonospacedFont"))
        self.marginsFont = Preferences.getShell("MarginsFont")
        self.marginsFontSample.setFont(self.marginsFont)
        
    def save(self):
        """
        Public slot to save the Shell configuration.
        """
        Preferences.setShell(
            "LinenoMargin",
            self.shellLinenoCheckBox.isChecked())
        Preferences.setShell(
            "WrapEnabled",
            self.shellWordWrapCheckBox.isChecked())
        Preferences.setShell(
            "AutoCompletionEnabled",
            self.shellACEnabledCheckBox.isChecked())
        Preferences.setShell(
            "CallTipsEnabled",
            self.shellCTEnabledCheckBox.isChecked())
        Preferences.setShell(
            "SyntaxHighlightingEnabled",
            self.shellSyntaxHighlightingCheckBox.isChecked())
        Preferences.setShell(
            "StartWithMostRecentlyUsedEnvironment",
            self.rememberCheckBox.isChecked())
        Preferences.setShell(
            "MaxHistoryEntries",
            self.shellHistorySpinBox.value())
        Preferences.setShell(
            "HistoryStyle",
            ShellHistoryStyle(self.shellHistoryStyleComboBox.currentData()))
        Preferences.setShell(
            "HistoryWrap",
            self.shellHistoryWrapCheckBox.isChecked())
        Preferences.setShell(
            "HistoryNavigateByCursor",
            self.shellHistoryCursorKeysCheckBox.isChecked())
        Preferences.setShell(
            "ShowStdOutErr",
            self.stdOutErrCheckBox.isChecked())
        
        Preferences.setShell("MonospacedFont", self.monospacedFont)
        Preferences.setShell(
            "UseMonospacedFont",
            self.monospacedCheckBox.isChecked())
        Preferences.setShell("MarginsFont", self.marginsFont)
        
    @pyqtSlot()
    def on_monospacedFontButton_clicked(self):
        """
        Private method used to select the font to be used as the monospaced
        font.
        """
        self.monospacedFont = self.selectFont(
            self.monospacedFontSample, self.monospacedFont,
            options=MonospacedFontsOption)
        
    @pyqtSlot()
    def on_linenumbersFontButton_clicked(self):
        """
        Private method used to select the font for the editor margins.
        """
        self.marginsFont = self.selectFont(
            self.marginsFontSample, self.marginsFont,
            options=MonospacedFontsOption)
        
    def polishPage(self):
        """
        Public slot to perform some polishing actions.
        """
        self.monospacedFontSample.setFont(self.monospacedFont)
        self.marginsFontSample.setFont(self.marginsFont)
    

def create(dlg):
    """
    Module function to create the configuration page.
    
    @param dlg reference to the configuration dialog
    @return reference to the instantiated page (ConfigurationPageBase)
    """
    page = ShellPage()
    return page

eric ide

mercurial