QScintilla/TypingCompleters/CompleterBase.py

Thu, 12 Aug 2010 16:11:13 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 12 Aug 2010 16:11:13 +0200
changeset 500
c3abc7895a01
parent 13
1af94a91f439
child 791
9ec2ac20e54e
permissions
-rw-r--r--

Continued porting signal/slot usage to the new API.

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

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

"""
Module implementing a base class for all typing completers.

Typing completers are classes that implement some convenience actions,
that are performed while the user is typing (e.g. insert ')' when the
user types '(').
"""

from PyQt4.QtCore import QObject

class CompleterBase(QObject):
    """
    Class implementing the base class for all completers.
    """
    def __init__(self, editor, parent = None):
        """
        Constructor
        
        @param editor reference to the editor object (QScintilla.Editor)
        @param parent reference to the parent object (QObject)
            If parent is None, we set the editor as the parent.
        """
        if parent is None:
            parent = editor
        
        QObject.__init__(self, parent)
        
        self.editor = editor
        self.enabled = False
    
    def setEnabled(self, enable):
        """
        Public slot to set the enabled state.
        
        @param enabled flag indicating the new state (boolean)
        """
        if enable:
            if not self.enabled:
                self.editor.SCN_CHARADDED.connect(self.charAdded)
        else:
            if self.enabled:
                self.editor.SCN_CHARADDED.disconnect(self.charAdded)
        self.enabled = enable
    
    def isEnabled(self):
        """
        Public method to get the enabled state.
        """
        return self.enabled
    
    def charAdded(self, charNumber):
        """
        Public slot called to handle the user entering a character.
        
        Note 1: this slot must be overridden by subclasses implementing the
        specific behavior for the language.
        
        Note 2: charNumber can be greater than 255 because the editor is
        in UTF-8 mode by default.
        
        @param charNumber value of the character entered (integer)
        """
        pass    # just do nothing
    
    def readSettings(self):
        """
        Public slot called to reread the configuration parameters.
        
        Note: this slot should be overridden by subclasses having
        configurable parameters.
        """
        pass    # just do nothing

eric ide

mercurial