src/eric7/EricWidgets/EricStringListEditWidget.py

Wed, 13 Jul 2022 14:55:47 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 13 Jul 2022 14:55:47 +0200
branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9473
3f23dbf37dbe
permissions
-rw-r--r--

Reformatted the source code using the 'Black' utility.

4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
3 # Copyright (c) 2015 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to edit a list of strings.
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
10 from PyQt6.QtCore import (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
11 pyqtSlot,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
12 pyqtSignal,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
13 Qt,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
14 QSortFilterProxyModel,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
15 QStringListModel,
7252
c5e3705073eb Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
16 )
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
17 from PyQt6.QtWidgets import QWidget, QInputDialog, QLineEdit
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
19 from .Ui_EricStringListEditWidget import Ui_EricStringListEditWidget
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
22 class EricStringListEditWidget(QWidget, Ui_EricStringListEditWidget):
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 Class implementing a dialog to edit a list of strings.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
25
5858
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
26 @signal setToDefault() emitted to request the default list of values
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
28
5858
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
29 setToDefault = pyqtSignal()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
30
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 def __init__(self, parent=None):
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
34
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @param parent reference to the parent widget (QWidget)
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
37 super().__init__(parent)
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 self.setupUi(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
39
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.__model = QStringListModel(self)
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.__proxyModel = QSortFilterProxyModel(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
42 self.__proxyModel.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.__proxyModel.setSourceModel(self.__model)
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.stringList.setModel(self.__proxyModel)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
45
5858
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
46 self.defaultButton.hide()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
47
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
48 self.searchEdit.textChanged.connect(self.__proxyModel.setFilterFixedString)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
49
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.removeButton.clicked.connect(self.stringList.removeSelected)
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 self.removeAllButton.clicked.connect(self.stringList.removeAll)
5858
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
52 self.defaultButton.clicked.connect(self.setToDefault)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
53
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 def setList(self, stringList):
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 Public method to set the list of strings to be edited.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
57
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @param stringList list of strings to be edited (list of string)
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.__model.setStringList(stringList)
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.__model.sort(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
62
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 def getList(self):
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 Public method to get the edited list of strings.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
66
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 @return edited list of string (list of string)
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 return self.__model.stringList()[:]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
70
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 def setListWhatsThis(self, txt):
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 Public method to set a what's that help text for the string list.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
74
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 @param txt help text to be set (string)
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 self.stringList.setWhatsThis(txt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
78
5858
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
79 def setDefaultVisible(self, visible):
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
80 """
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
81 Public method to show or hide the default button.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
82
5858
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
83 @param visible flag indicating the visibility of the default button
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
84 @type bool
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
85 """
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
86 self.defaultButton.setVisible(visible)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
87
7592
f79dc58bdf62 MicroPython: added a dialog zo ignore unknown serial devices and to manage this list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
88 def setAddVisible(self, visible):
f79dc58bdf62 MicroPython: added a dialog zo ignore unknown serial devices and to manage this list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
89 """
f79dc58bdf62 MicroPython: added a dialog zo ignore unknown serial devices and to manage this list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
90 Public method to show or hide the add button.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
91
7592
f79dc58bdf62 MicroPython: added a dialog zo ignore unknown serial devices and to manage this list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
92 @param visible flag indicating the visibility of the add button
f79dc58bdf62 MicroPython: added a dialog zo ignore unknown serial devices and to manage this list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
93 @type bool
f79dc58bdf62 MicroPython: added a dialog zo ignore unknown serial devices and to manage this list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
94 """
f79dc58bdf62 MicroPython: added a dialog zo ignore unknown serial devices and to manage this list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
95 self.addButton.setVisible(visible)
f79dc58bdf62 MicroPython: added a dialog zo ignore unknown serial devices and to manage this list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
96 self.addLine.setVisible(visible)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
97
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 @pyqtSlot()
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 def on_addButton_clicked(self):
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 Private slot to add an entry to the list.
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 """
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 entry, ok = QInputDialog.getText(
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 self,
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 self.tr("Add Entry"),
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 self.tr("Enter the entry to add to the list:"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
107 QLineEdit.EchoMode.Normal,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
108 )
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 if ok and entry != "" and entry not in self.__model.stringList():
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 self.__model.insertRow(self.__model.rowCount())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
111 self.__model.setData(self.__model.index(self.__model.rowCount() - 1), entry)
4093
8dd5c3a49b82 Created a generic widget for editing a list of strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.__model.sort(0)

eric ide

mercurial