Mon, 10 Feb 2014 19:21:55 +0100
Implemented the 'internatinalization' menu and some Python2 compatibility changes.
4
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2014 Detlev Offenbach <detlev@die-offenbachs.de> |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to enter data for the creation of a tag. |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
10
ef5694c0bf3a
Implemented the 'internatinalization' menu and some Python2 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
10 | from __future__ import unicode_literals # __IGNORE_WARNING__ |
ef5694c0bf3a
Implemented the 'internatinalization' menu and some Python2 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
11 | |
4
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from PyQt4.QtCore import Qt |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from PyQt4.QtGui import QDialog, QDialogButtonBox, QVBoxLayout, QLabel |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | from E5Gui.E5LineEdit import E5ClearableLineEdit |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | class DjangoTagInputDialog(QDialog): |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | """ |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | Class implementing a dialog to enter data for the creation of a tag. |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | def __init__(self, labels, defaults=None, parent=None): |
5
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
23 | """ |
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
24 | Constructor |
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
25 | |
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
26 | @param labels list of labels for the entry fields (list of string) |
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
27 | @param defaults list of default values for the entry fields (list |
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
28 | of string) |
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
29 | @param parent reference to the parent widget (QWidget) |
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
30 | """ |
4
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | super(DjangoTagInputDialog, self).__init__(parent) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | assert 0 < len(labels) < 6 # max 5 entries allowed |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | self.__inputs = [] |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | self.__topLayout = QVBoxLayout(self) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | index = 0 |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | for label in labels: |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | self.__topLayout.addWidget(QLabel(label, self)) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | entry = E5ClearableLineEdit(self) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | if defaults and index < len(defaults): |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | entry.setText(defaults[index]) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | self.__inputs.append(entry) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.__topLayout.addWidget(entry) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | index += 1 |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | self.__buttonBox = QDialogButtonBox( |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | QDialogButtonBox.Ok | QDialogButtonBox.Cancel, |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | Qt.Horizontal, self) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | self.__topLayout.addWidget(self.__buttonBox) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.resize(400, self.minimumSizeHint().height()) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | self.setSizeGripEnabled(True) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.__buttonBox.accepted.connect(self.accept) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.__buttonBox.rejected.connect(self.reject) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | self.__inputs[0].selectAll() |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | self.__inputs[0].setFocus() |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | def getData(self): |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | """ |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | Public method to retrieve the entered data. |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | @return tuple containing the text of all entries (tuple of string) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | """ |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | data = [input.text().strip() for input in self.__inputs] |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | return tuple(data) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | @staticmethod |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | def getText(parent, title, labels, defaults=[]): |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | """ |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | Static method to create the dialog and return the entered data. |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | |
5
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
74 | @param parent reference to the parent widget (QWidget) |
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
75 | @param title title of the dialog (string) |
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
76 | @param labels list of labels for the entry fields (list of string) |
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
77 | @param defaults list of default values for the entry fields (list |
e2b08694e945
Completed template tags(except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4
diff
changeset
|
78 | of string) |
4
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | @return tuple of a tuple containing the text of all entries |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | (tuple of string) and a flag indicating the acceptance |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | state (boolean) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | """ |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | dlg = DjangoTagInputDialog(labels, defaults, parent) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | dlg.setWindowTitle(title) |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | if dlg.exec_() == QDialog.Accepted: |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | return dlg.getData(), True |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | else: |
ba04ed0b14a1
Implemented template tags 'f' to 'i' (except 'if').
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | return tuple(), False |