Preferences/ConfigurationPages/TerminalPage.py

Mon, 26 Dec 2011 19:32:02 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 26 Dec 2011 19:32:02 +0100
branch
5_1_x
changeset 1510
e75ecf2bd9dd
parent 791
9ec2ac20e54e
permissions
-rw-r--r--

Updated copyright for 2012.

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

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

"""
Module implementing the Terminal configuration page.
"""

from PyQt4.QtCore import pyqtSlot

from .ConfigurationPageBase import ConfigurationPageBase
from .Ui_TerminalPage import Ui_TerminalPage

import Preferences
import Utilities

class TerminalPage(ConfigurationPageBase, Ui_TerminalPage):
    """
    Class implementing the Terminal configuration page.
    """
    def __init__(self):
        """
        Constructor
        """
        ConfigurationPageBase.__init__(self)
        self.setupUi(self)
        self.setObjectName("TerminalPage")
        
        if Utilities.isWindowsPlatform():
            self.shellGroup.setEnabled(False)
        else:
            self.shellCombo.addItems(["ash", "bash", "csh", "ksh", "sh", "tcsh", "zsh"])
        
        # set initial values
        self.linenowidthSlider.setValue(
            Preferences.getTerminal("LinenoWidth"))
        self.linenoCheckBox.setChecked(
            Preferences.getTerminal("LinenoMargin"))
        self.syntaxHighlightingCheckBox.setChecked(
            Preferences.getTerminal("SyntaxHighlightingEnabled"))
        self.historySpinBox.setValue(
            Preferences.getTerminal("MaxHistoryEntries"))
        
        self.monospacedFont = Preferences.getTerminal("MonospacedFont")
        self.monospacedFontSample.setFont(self.monospacedFont)
        self.monospacedCheckBox.setChecked(
            Preferences.getTerminal("UseMonospacedFont"))
        self.marginsFont = Preferences.getTerminal("MarginsFont")
        self.marginsFontSample.setFont(self.marginsFont)
        
        self.shellCombo.setEditText(
            Preferences.getTerminal("Shell"))
        self.interactiveCheckBox.setChecked(
            Preferences.getTerminal("ShellInteractive"))
        
    def save(self):
        """
        Public slot to save the Shell configuration.
        """
        Preferences.setTerminal("LinenoWidth",
            self.linenowidthSlider.value())
        Preferences.setTerminal("LinenoMargin",
            self.linenoCheckBox.isChecked())
        Preferences.setTerminal("SyntaxHighlightingEnabled",
            self.syntaxHighlightingCheckBox.isChecked())
        Preferences.setTerminal("MaxHistoryEntries",
            self.historySpinBox.value())
        
        Preferences.setTerminal("MonospacedFont", self.monospacedFont)
        Preferences.setTerminal("UseMonospacedFont",
            self.monospacedCheckBox.isChecked())
        Preferences.setTerminal("MarginsFont", self.marginsFont)
        
        Preferences.setTerminal("Shell", 
            self.shellCombo.currentText())
        Preferences.setTerminal("ShellInteractive", 
            self.interactiveCheckBox.isChecked())
        
    @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)
        
    @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)
        
    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
    """
    page = TerminalPage()
    return page

eric ide

mercurial