E5Gui/E5LineEdit.py

Sun, 29 Jun 2014 20:13:56 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 29 Jun 2014 20:13:56 +0200
changeset 3656
441956d8fce5
parent 3591
2f2a4a76dd22
child 3776
ccb6eacb50e5
permissions
-rw-r--r--

Started porting eric5 to PyQt5.

55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
3160
209a07d7e401 Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2990
diff changeset
3 # Copyright (c) 2009 - 2014 Detlev Offenbach <detlev@die-offenbachs.de>
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
7 Module implementing specialized line edits.
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
3145
a9de05d4a22f # __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3057
diff changeset
10 from __future__ import unicode_literals
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2401
diff changeset
11
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
12 from PyQt5.QtCore import pyqtSignal, Qt, QEvent, qVersion
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
13 from PyQt5.QtGui import QPainter, QPalette
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
14 from PyQt5.QtWidgets import QLineEdit, QStyle, QWidget, QHBoxLayout, \
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
15 QBoxLayout, QLayout, QApplication, QSpacerItem, QSizePolicy, \
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
16 QStyleOptionFrame
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
17
2206
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
18 import UI.PixmapCache
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
19
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
20
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
21 class E5LineEditSideWidget(QWidget):
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
22 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
23 Class implementing the side widgets for the line edit class.
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
24 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
25 sizeHintChanged = pyqtSignal()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
26
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
27 def __init__(self, parent=None):
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
28 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
29 Constructor
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
30
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
31 @param parent reference to the parent widget (QWidget)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
32 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2401
diff changeset
33 super(E5LineEditSideWidget, self).__init__(parent)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
34
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
35 def event(self, evt):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
36 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
37 Public method to handle events.
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
38
2953
703452a2876f Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2401
diff changeset
39 @param evt reference to the event (QEvent)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
40 @return flag indicating, whether the event was recognized (boolean)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
41 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
42 if evt.type() == QEvent.LayoutRequest:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
43 self.sizeHintChanged.emit()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
44 return QWidget.event(self, evt)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
46
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 class E5LineEdit(QLineEdit):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 Class implementing a line edit widget showing some inactive text.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
51 LeftSide = 0
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
52 RightSide = 1
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
53
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
54 def __init__(self, parent=None, inactiveText=""):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 Constructor
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @param parent reference to the parent widget (QWidget)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 @param inactiveText text to be shown on inactivity (string)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2401
diff changeset
61 super(E5LineEdit, self).__init__(parent)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
63 self.setMinimumHeight(22)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
64
1964
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
65 if qVersion() < "4.7.0":
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
66 self.__inactiveText = inactiveText
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
67 else:
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
68 self.setPlaceholderText(inactiveText)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
69
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
70 self.__mainLayout = QHBoxLayout(self)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
71 self.__mainLayout.setContentsMargins(0, 0, 0, 0)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
72 self.__mainLayout.setSpacing(0)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
73
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
74 self.__leftMargin = 0
2206
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
75 self.__leftWidget = E5LineEditSideWidget(self)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
76 self.__leftWidget.resize(0, 0)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
77 self.__leftLayout = QHBoxLayout(self.__leftWidget)
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
78 self.__leftLayout.setContentsMargins(0, 0, 2, 0)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
79 if QApplication.isRightToLeft():
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
80 self.__leftLayout.setDirection(QBoxLayout.RightToLeft)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
81 else:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
82 self.__leftLayout.setDirection(QBoxLayout.LeftToRight)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
83 self.__leftLayout.setSizeConstraint(QLayout.SetFixedSize)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
84
2206
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
85 self.__rightWidget = E5LineEditSideWidget(self)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
86 self.__rightWidget.resize(0, 0)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
87 self.__rightLayout = QHBoxLayout(self.__rightWidget)
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
88 self.__rightLayout.setContentsMargins(0, 0, 2, 0)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
89 if self.isRightToLeft():
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
90 self.__rightLayout.setDirection(QBoxLayout.RightToLeft)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
91 else:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
92 self.__rightLayout.setDirection(QBoxLayout.LeftToRight)
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
93
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
94 horizontalSpacer = QSpacerItem(
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
95 0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
96 self.__mainLayout.addWidget(
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
97 self.__leftWidget, 0, Qt.AlignVCenter | Qt.AlignLeft)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
98 self.__mainLayout.addItem(horizontalSpacer)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
99 self.__mainLayout.addWidget(
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
100 self.__rightWidget, 0, Qt.AlignVCenter | Qt.AlignRight)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
101 if self.isRightToLeft():
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
102 self.__mainLayout.setDirection(QBoxLayout.RightToLeft)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
103 else:
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
104 self.__mainLayout.setDirection(QBoxLayout.LeftToRight)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
105
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
106 self.setWidgetSpacing(3)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
107 self.__leftWidget.sizeHintChanged.connect(self._updateTextMargins)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
108 self.__rightWidget.sizeHintChanged.connect(self._updateTextMargins)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
109
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
110 def setLeftMargin(self, margin):
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
111 """
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
112 Public method to set the left margin.
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
113
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
114 @param margin left margin in pixel (integer)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
115 """
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
116 self.__leftMargin = margin
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
117
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
118 def leftMargin(self):
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
119 """
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
120 Public method to get the size of the left margin.
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
121
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
122 @return left margin in pixel (integer)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
123 """
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
124 return self.__leftMargin
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
125
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
126 def event(self, evt):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
127 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
128 Public method to handle events.
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
129
2953
703452a2876f Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2401
diff changeset
130 @param evt reference to the event (QEvent)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
131 @return flag indicating, whether the event was recognized (boolean)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
132 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
133 if evt.type() == QEvent.LayoutDirectionChange:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
134 if self.isRightToLeft():
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
135 self.__mainLayout.setDirection(QBoxLayout.RightToLeft)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
136 self.__leftLayout.setDirection(QBoxLayout.RightToLeft)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
137 self.__rightLayout.setDirection(QBoxLayout.RightToLeft)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
138 else:
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
139 self.__mainLayout.setDirection(QBoxLayout.LeftToRight)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
140 self.__leftLayout.setDirection(QBoxLayout.LeftToRight)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
141 self.__rightLayout.setDirection(QBoxLayout.LeftToRight)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
142 return QLineEdit.event(self, evt)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
143
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
144 def paintEvent(self, evt):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
145 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
146 Protected method handling a paint event.
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
147
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
148 @param evt reference to the paint event (QPaintEvent)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
149 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2401
diff changeset
150 super(E5LineEdit, self).paintEvent(evt)
653
0540f3c52b46 Changed the web browser to give it a more modern look.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 643
diff changeset
151
1964
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
152 if qVersion() < "4.7.0":
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
153 if not self.text() and \
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
154 self.__inactiveText and \
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
155 not self.hasFocus():
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
156 panel = QStyleOptionFrame()
1964
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
157 self.initStyleOption(panel)
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
158 textRect = self.style().subElementRect(
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
159 QStyle.SE_LineEditContents, panel, self)
1964
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
160 textRect.adjust(2, 0, 0, 0)
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
161 left = self.textMargin(self.LeftSide)
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
162 right = self.textMargin(self.RightSide)
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
163 textRect.adjust(left, 0, -right, 0)
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
164 painter = QPainter(self)
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
165 painter.setPen(self.palette().brush(
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
166 QPalette.Disabled, QPalette.Text).color())
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
167 painter.drawText(
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
168 textRect, Qt.AlignLeft | Qt.AlignVCenter,
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
169 self.__inactiveText)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
170
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
171 def _updateTextMargins(self):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
172 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
173 Protected slot to update the text margins.
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
174 """
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
175 if self.__leftMargin == 0:
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
176 left = self.__leftWidget.sizeHint().width()
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
177 else:
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
178 left = self.__leftMargin
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
179 right = self.__rightWidget.sizeHint().width()
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
180 top = 0
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
181 bottom = 0
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
182 self.setTextMargins(left, top, right, bottom)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
183
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
184 def addWidget(self, widget, position):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
185 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
186 Public method to add a widget to a side.
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
187
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
188 @param widget reference to the widget to add (QWidget)
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
189 @param position position to add to (E5LineEdit.LeftSide,
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
190 E5LineEdit.RightSide)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
191 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
192 if widget is None:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
193 return
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
194
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
195 if self.isRightToLeft():
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
196 if position == self.LeftSide:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
197 position = self.RightSide
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
198 else:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
199 position = self.LeftSide
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
200 if position == self.LeftSide:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
201 self.__leftLayout.addWidget(widget)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
202 else:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
203 self.__rightLayout.insertWidget(1, widget)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
204
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
205 def removeWidget(self, widget):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
206 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
207 Public method to remove a widget from a side.
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
208
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
209 @param widget reference to the widget to remove (QWidget)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
210 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
211 if widget is None:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
212 return
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
213
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
214 self.__leftLayout.removeWidget(widget)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
215 self.__rightLayout.removeWidget(widget)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
216 widget.hide()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
217
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
218 def widgetSpacing(self):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
219 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
220 Public method to get the side widget spacing.
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
221
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
222 @return side widget spacing (integer)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
223 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
224 return self.__leftLayout.spacing()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
225
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
226 def setWidgetSpacing(self, spacing):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
227 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
228 Public method to set the side widget spacing.
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
229
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
230 @param spacing side widget spacing (integer)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
231 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
232 self.__leftLayout.setSpacing(spacing)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
233 self.__rightLayout.setSpacing(spacing)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
234 self._updateTextMargins()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
235
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
236 def textMargin(self, position):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
237 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
238 Public method to get the text margin for a side.
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
239
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
240 @param position side to get margin for (E5LineEdit.LeftSide,
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
241 E5LineEdit.RightSide)
2953
703452a2876f Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2401
diff changeset
242 @return text margin (integer)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
243 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
244 spacing = self.__rightLayout.spacing()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
245 w = 0
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
246 if position == self.LeftSide:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
247 w = self.__leftWidget.sizeHint().width()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
248 else:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
249 w = self.__rightWidget.sizeHint().width()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
250 if w == 0:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
251 return 0
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
252 return w + spacing * 2
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 def inactiveText(self):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 Public method to get the inactive text.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257
2953
703452a2876f Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2401
diff changeset
258 @return inactive text (string)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 """
1964
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
260 if qVersion() < "4.7.0":
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
261 return self.__inactiveText
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
262 else:
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
263 return self.placeholderText()
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 def setInactiveText(self, inactiveText):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 Public method to set the inactive text.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 @param inactiveText text to be shown on inactivity (string)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 """
1964
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
271 if qVersion() < "4.7.0":
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
272 self.__inactiveText = inactiveText
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
273 self.update()
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
274 else:
6a6a53f2d086 Added a filter edit to filter the configuration tree to the configuration dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
275 self.setPlaceholderText(inactiveText)
2206
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
276
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
277
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
278 class E5ClearableLineEdit(E5LineEdit):
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
279 """
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
280 Class implementing a line edit widget showing some inactive text and a
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
281 clear button, if it has some contents.
2206
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
282 """
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
283 def __init__(self, parent=None, inactiveText="",
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
284 side=E5LineEdit.RightSide):
2206
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
285 """
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
286 Constructor
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
287
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
288 @param parent reference to the parent widget (QWidget)
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
289 @keyparam inactiveText text to be shown on inactivity (string)
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
290 @keyparam side side the clear button should be shown at
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
291 (E5LineEdit.RightSide, E5LineEdit.LeftSide)
2206
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
292 """
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
293 assert side in [E5LineEdit.RightSide, E5LineEdit.LeftSide]
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
294
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2401
diff changeset
295 super(E5ClearableLineEdit, self).__init__(parent, inactiveText)
2206
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
296
2401
4f428de32b69 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
297 from E5Gui.E5LineEditButton import E5LineEditButton
2206
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
298 self.__clearButton = E5LineEditButton(self)
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
299 self.__clearButton.setIcon(UI.PixmapCache.getIcon("clearLeft.png"))
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
300 self.addWidget(self.__clearButton, side)
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
301 self.__clearButton.setVisible(False)
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
302
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
303 self.__clearButton.clicked.connect(self.clear)
2206
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
304 self.textChanged.connect(self.__textChanged)
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
305
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
306 def __textChanged(self, txt):
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
307 """
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
308 Private slot to handle changes of the text.
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
309
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
310 @param txt text (string)
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
311 """
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
312 self.__clearButton.setVisible(txt != "")

eric ide

mercurial