14 from PyQt4.QtGui import QSizePolicy, QSpacerItem, QWidget, QPixmap, QTreeWidget, \ |
14 from PyQt4.QtGui import QSizePolicy, QSpacerItem, QWidget, QPixmap, QTreeWidget, \ |
15 QStackedWidget, QDialog, QSplitter, QScrollArea, QApplication, QDialogButtonBox, \ |
15 QStackedWidget, QDialog, QSplitter, QScrollArea, QApplication, QDialogButtonBox, \ |
16 QFrame, QVBoxLayout, QTreeWidgetItem, QLabel |
16 QFrame, QVBoxLayout, QTreeWidgetItem, QLabel |
17 |
17 |
18 from E5Gui.E5Application import e5App |
18 from E5Gui.E5Application import e5App |
19 from E5Gui.E5LineEdit import E5LineEdit |
19 from E5Gui.E5LineEdit import E5ClearableLineEdit |
20 from E5Gui.E5LineEditButton import E5LineEditButton |
|
21 from E5Gui import E5MessageBox |
20 from E5Gui import E5MessageBox |
22 from E5Gui.E5MainWindow import E5MainWindow |
21 from E5Gui.E5MainWindow import E5MainWindow |
23 |
22 |
24 import QScintilla.Lexers |
23 import QScintilla.Lexers |
25 |
24 |
405 self.configListWidget = QWidget(self.configSplitter) |
404 self.configListWidget = QWidget(self.configSplitter) |
406 self.leftVBoxLayout = QVBoxLayout(self.configListWidget) |
405 self.leftVBoxLayout = QVBoxLayout(self.configListWidget) |
407 self.leftVBoxLayout.setMargin(0) |
406 self.leftVBoxLayout.setMargin(0) |
408 self.leftVBoxLayout.setSpacing(0) |
407 self.leftVBoxLayout.setSpacing(0) |
409 self.leftVBoxLayout.setObjectName("leftVBoxLayout") |
408 self.leftVBoxLayout.setObjectName("leftVBoxLayout") |
410 self.configListFilter = E5LineEdit(self, self.trUtf8("Enter filter text...")) |
409 self.configListFilter = E5ClearableLineEdit(self, |
|
410 self.trUtf8("Enter filter text...")) |
411 self.configListFilter.setObjectName("configListFilter") |
411 self.configListFilter.setObjectName("configListFilter") |
412 self.leftVBoxLayout.addWidget(self.configListFilter) |
412 self.leftVBoxLayout.addWidget(self.configListFilter) |
413 self.configList = QTreeWidget() |
413 self.configList = QTreeWidget() |
414 self.configList.setObjectName("configList") |
414 self.configList.setObjectName("configList") |
415 self.leftVBoxLayout.addWidget(self.configList) |
415 self.leftVBoxLayout.addWidget(self.configList) |
416 |
|
417 self.__clearButton = E5LineEditButton(self) |
|
418 self.__clearButton.setIcon(UI.PixmapCache.getIcon("clearLeft.png")) |
|
419 self.configListFilter.addWidget(self.__clearButton, E5LineEdit.RightSide) |
|
420 self.__clearButton.setVisible(False) |
|
421 self.__clearButton.clicked[()].connect(self.configListFilter.clear) |
|
422 self.configListFilter.textChanged.connect(self.__filterTextChanged) |
416 self.configListFilter.textChanged.connect(self.__filterTextChanged) |
423 |
417 |
424 self.scrollArea = QScrollArea(self.configSplitter) |
418 self.scrollArea = QScrollArea(self.configSplitter) |
425 self.scrollArea.setFrameShape(QFrame.NoFrame) |
419 self.scrollArea.setFrameShape(QFrame.NoFrame) |
426 self.scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) |
420 self.scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) |
490 """ |
484 """ |
491 Private slot to handle a change of the filter. |
485 Private slot to handle a change of the filter. |
492 |
486 |
493 @param filter text of the filter line edit (string) |
487 @param filter text of the filter line edit (string) |
494 """ |
488 """ |
495 self.__clearButton.setVisible(filter != "") |
|
496 |
|
497 self.__filterChildItems(self.configList.invisibleRootItem(), filter) |
489 self.__filterChildItems(self.configList.invisibleRootItem(), filter) |
498 |
490 |
499 def __filterChildItems(self, parent, filter): |
491 def __filterChildItems(self, parent, filter): |
500 """ |
492 """ |
501 Private method to filter child items based on a filter string. |
493 Private method to filter child items based on a filter string. |