diff -r 31463df17fd5 -r b5c84934de9c E5Gui/E5Completers.py --- /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