E5Gui/E5LineEdit.py

Sat, 06 May 2017 13:43:21 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 06 May 2017 13:43:21 +0200
branch
maintenance
changeset 5730
6422afc7adc4
parent 5726
e1dbd217214a
child 5736
000ea446ff4b
permissions
-rw-r--r--

Merged with default branch in order to prepare the 17.05 release.

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
5389
9b1c800daff3 Updated copyright for 2017.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3 # Copyright (c) 2009 - 2017 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, \
3776
ccb6eacb50e5 Started adding code to make eric6 usable with PyQt5 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
15 QBoxLayout, QLayout, QApplication, QSpacerItem, QSizePolicy
ccb6eacb50e5 Started adding code to make eric6 usable with PyQt5 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
16 if qVersion() >= "5.0.0":
ccb6eacb50e5 Started adding code to make eric6 usable with PyQt5 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
17 from PyQt5.QtWidgets import QStyleOptionFrame
ccb6eacb50e5 Started adding code to make eric6 usable with PyQt5 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
18 else:
ccb6eacb50e5 Started adding code to make eric6 usable with PyQt5 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
19 from PyQt5.QtWidgets import QStyleOptionFrameV2 as QStyleOptionFrame
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
20
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
21 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
22
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
23
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
24 class E5LineEditSideWidget(QWidget):
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
25 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
26 Class implementing the side widgets for the line edit class.
5726
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
27
e1dbd217214a Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
28 @signal sizeHintChanged() emitted to indicate a change of the size hint
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
29 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
30 sizeHintChanged = pyqtSignal()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
31
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
32 def __init__(self, parent=None):
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
33 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
34 Constructor
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
35
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
36 @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
37 """
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
38 super(E5LineEditSideWidget, self).__init__(parent)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
39
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
40 def event(self, evt):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
41 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
42 Public method to handle events.
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
43
2953
703452a2876f Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2401
diff changeset
44 @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
45 @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
46 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
47 if evt.type() == QEvent.LayoutRequest:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
48 self.sizeHintChanged.emit()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
49 return QWidget.event(self, evt)
55
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
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 class E5LineEdit(QLineEdit):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 Class implementing a line edit widget showing some inactive text.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
56 LeftSide = 0
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
57 RightSide = 1
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
58
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
59 def __init__(self, parent=None, inactiveText=""):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 Constructor
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @param parent reference to the parent widget (QWidget)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 @param inactiveText text to be shown on inactivity (string)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
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
66 super(E5LineEdit, self).__init__(parent)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
68 self.setMinimumHeight(22)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
69
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
70 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
71 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
72 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
73 self.setPlaceholderText(inactiveText)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
74
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
75 self.__mainLayout = QHBoxLayout(self)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
76 self.__mainLayout.setContentsMargins(0, 0, 0, 0)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
77 self.__mainLayout.setSpacing(0)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
78
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
79 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
80 self.__leftWidget = E5LineEditSideWidget(self)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
81 self.__leftWidget.resize(0, 0)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
82 self.__leftLayout = QHBoxLayout(self.__leftWidget)
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
83 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
84 if QApplication.isRightToLeft():
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
85 self.__leftLayout.setDirection(QBoxLayout.RightToLeft)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
86 else:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
87 self.__leftLayout.setDirection(QBoxLayout.LeftToRight)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
88 self.__leftLayout.setSizeConstraint(QLayout.SetFixedSize)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
89
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
90 self.__rightWidget = E5LineEditSideWidget(self)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
91 self.__rightWidget.resize(0, 0)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
92 self.__rightLayout = QHBoxLayout(self.__rightWidget)
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
93 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
94 if self.isRightToLeft():
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
95 self.__rightLayout.setDirection(QBoxLayout.RightToLeft)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
96 else:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
97 self.__rightLayout.setDirection(QBoxLayout.LeftToRight)
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
98
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
99 horizontalSpacer = QSpacerItem(
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
100 0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
101 self.__mainLayout.addWidget(
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
102 self.__leftWidget, 0, Qt.AlignVCenter | Qt.AlignLeft)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
103 self.__mainLayout.addItem(horizontalSpacer)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
104 self.__mainLayout.addWidget(
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
105 self.__rightWidget, 0, Qt.AlignVCenter | Qt.AlignRight)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
106 if self.isRightToLeft():
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
107 self.__mainLayout.setDirection(QBoxLayout.RightToLeft)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
108 else:
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
109 self.__mainLayout.setDirection(QBoxLayout.LeftToRight)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
110
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
111 self.setWidgetSpacing(3)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
112 self.__leftWidget.sizeHintChanged.connect(self._updateTextMargins)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
113 self.__rightWidget.sizeHintChanged.connect(self._updateTextMargins)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
114
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
115 def setLeftMargin(self, margin):
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
116 """
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
117 Public method to set the left margin.
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
118
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
119 @param margin left margin in pixel (integer)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
120 """
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
121 self.__leftMargin = margin
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
122
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
123 def leftMargin(self):
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
124 """
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
125 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
126
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
127 @return left margin in pixel (integer)
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
128 """
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
129 return self.__leftMargin
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
130
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
131 def event(self, evt):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
132 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
133 Public method to handle events.
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
134
2953
703452a2876f Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2401
diff changeset
135 @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
136 @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
137 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
138 if evt.type() == QEvent.LayoutDirectionChange:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
139 if self.isRightToLeft():
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
140 self.__mainLayout.setDirection(QBoxLayout.RightToLeft)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
141 self.__leftLayout.setDirection(QBoxLayout.RightToLeft)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
142 self.__rightLayout.setDirection(QBoxLayout.RightToLeft)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
143 else:
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
144 self.__mainLayout.setDirection(QBoxLayout.LeftToRight)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
145 self.__leftLayout.setDirection(QBoxLayout.LeftToRight)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
146 self.__rightLayout.setDirection(QBoxLayout.LeftToRight)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
147 return QLineEdit.event(self, evt)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
148
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
149 def paintEvent(self, evt):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
150 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
151 Protected method handling a paint event.
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
152
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
153 @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
154 """
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
155 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
156
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 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
158 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
159 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
160 not self.hasFocus():
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
161 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
162 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
163 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
164 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
165 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
166 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
167 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
168 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
169 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
170 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
171 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
172 painter.drawText(
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
173 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
174 self.__inactiveText)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
175
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
176 def _updateTextMargins(self):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
177 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
178 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
179 """
2293
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
180 if self.__leftMargin == 0:
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
181 left = self.__leftWidget.sizeHint().width()
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
182 else:
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
183 left = self.__leftMargin
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
184 right = self.__rightWidget.sizeHint().width()
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
185 top = 0
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
186 bottom = 0
ec6c1459f5b3 Fixed an issue caused by Qt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2206
diff changeset
187 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
188
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
189 def addWidget(self, widget, position):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
190 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
191 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
192
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
193 @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
194 @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
195 E5LineEdit.RightSide)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
196 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
197 if widget is None:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
198 return
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
199
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
200 if self.isRightToLeft():
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
201 if position == self.LeftSide:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
202 position = self.RightSide
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
203 else:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
204 position = self.LeftSide
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
205 if position == self.LeftSide:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
206 self.__leftLayout.addWidget(widget)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
207 else:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
208 self.__rightLayout.insertWidget(1, widget)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
209
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
210 def removeWidget(self, widget):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
211 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
212 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
213
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
214 @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
215 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
216 if widget is None:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
217 return
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
218
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
219 self.__leftLayout.removeWidget(widget)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
220 self.__rightLayout.removeWidget(widget)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
221 widget.hide()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
222
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
223 def widgetSpacing(self):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
224 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
225 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
226
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
227 @return side widget spacing (integer)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
228 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
229 return self.__leftLayout.spacing()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
230
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
231 def setWidgetSpacing(self, spacing):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
232 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
233 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
234
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
235 @param spacing side widget spacing (integer)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
236 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
237 self.__leftLayout.setSpacing(spacing)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
238 self.__rightLayout.setSpacing(spacing)
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
239 self._updateTextMargins()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
240
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
241 def textMargin(self, position):
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
242 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
243 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
244
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
245 @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
246 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
247 @return text margin (integer)
643
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
248 """
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
249 spacing = self.__rightLayout.spacing()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
250 w = 0
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
251 if position == self.LeftSide:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
252 w = self.__leftWidget.sizeHint().width()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
253 else:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
254 w = self.__rightWidget.sizeHint().width()
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
255 if w == 0:
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
256 return 0
719db11dd4df Added a line widget with embeddable buttons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
257 return w + spacing * 2
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 def inactiveText(self):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 Public method to get the inactive text.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262
2953
703452a2876f Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2401
diff changeset
263 @return inactive text (string)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 """
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
265 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
266 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
267 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
268 return self.placeholderText()
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 def setInactiveText(self, inactiveText):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 Public method to set the inactive text.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 @param inactiveText text to be shown on inactivity (string)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 """
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
276 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
277 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
278 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
279 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
280 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
281
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
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
283 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
284 """
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
285 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
286 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
287 """
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
288 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
289 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
290 """
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
291 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
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 @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
294 @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
295 @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
296 (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
297 """
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 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
299
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
300 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
301
2401
4f428de32b69 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
302 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
303 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
304 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
305 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
306 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
307
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
308 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
309 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
310
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 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
312 """
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
313 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
314
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
315 @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
316 """
b2da5a8d7f15 Added a line edit widget with an internal clear button to E5LineEdit.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
317 self.__clearButton.setVisible(txt != "")

eric ide

mercurial