E5Gui/E5Completers.py

changeset 55
b5c84934de9c
child 529
86332f558b7b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/E5Gui/E5Completers.py	Wed Jan 13 18:53:58 2010 +0000
@@ -0,0 +1,89 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2007 - 2010 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing various kinds of completers.
+"""
+
+from PyQt4.QtCore import QDir
+from PyQt4.QtGui import QCompleter, QDirModel, QStringListModel
+
+class E5FileCompleter(QCompleter):
+    """
+    Class implementing a completer for file names.
+    """
+    def __init__(self, parent = None, 
+                 completionMode = QCompleter.PopupCompletion, 
+                 showHidden = False):
+        """
+        Constructor
+        
+        @param parent parent widget of the completer (QWidget)
+        @keyparam completionMode completion mode of the 
+            completer (QCompleter.CompletionMode)
+        @keyparam showHidden flag indicating to show hidden entries as well (boolean)
+        """
+        QCompleter.__init__(self, parent)
+        self.__model = QDirModel(self)
+        if showHidden:
+            self.__model.setFilter(\
+                QDir.Filters(QDir.Dirs | QDir.Files | QDir.Drives | \
+                             QDir.AllDirs | QDir.Hidden))
+        else:
+            self.__model.setFilter(\
+                QDir.Filters(QDir.Dirs | QDir.Files | QDir.Drives | QDir.AllDirs))
+        self.setModel(self.__model)
+        self.setCompletionMode(completionMode)
+        if parent:
+            parent.setCompleter(self)
+
+class E5DirCompleter(QCompleter):
+    """
+    Class implementing a completer for directory names.
+    """
+    def __init__(self, parent = None, 
+                 completionMode = QCompleter.PopupCompletion, 
+                 showHidden = False):
+        """
+        Constructor
+        
+        @param parent parent widget of the completer (QWidget)
+        @keyparam completionMode completion mode of the 
+            completer (QCompleter.CompletionMode)
+        @keyparam showHidden flag indicating to show hidden entries as well (boolean)
+        """
+        QCompleter.__init__(self, parent)
+        self.__model = QDirModel(self)
+        if showHidden:
+            self.__model.setFilter(\
+                QDir.Filters(QDir.Drives | QDir.AllDirs | QDir.Hidden))
+        else:
+            self.__model.setFilter(\
+                QDir.Filters(QDir.Drives | QDir.AllDirs))
+        self.setModel(self.__model)
+        self.setCompletionMode(completionMode)
+        if parent:
+            parent.setCompleter(self)
+
+class E5StringListCompleter(QCompleter):
+    """
+    Class implementing a completer for strings lists.
+    """
+    def __init__(self, parent = None, strings = [],
+                 completionMode = QCompleter.PopupCompletion):
+        """
+        Constructor
+        
+        @param parent parent widget of the completer (QWidget)
+        @param strings list of string to load into the completer (list of strings)
+        @keyparam completionMode completion mode of the 
+            completer (QCompleter.CompletionMode)
+        """
+        QCompleter.__init__(self, parent)
+        self.__model = QStringListModel(strings, parent)
+        self.setModel(self.__model)
+        self.setCompletionMode(completionMode)
+        if parent:
+            parent.setCompleter(self)
\ No newline at end of file

eric ide

mercurial