ProjectFlask/PyBabelConfigDialog.py

Wed, 18 Nov 2020 20:16:06 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 18 Nov 2020 20:16:06 +0100
changeset 13
ed33cdfca13d
child 14
d2da14b2a233
permissions
-rw-r--r--

Started implementing pybabel translations support.

13
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2020 Detlev Offenbach <detlev@die-offenbachs.de>
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to edit the PyBabel configuration.
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt5.QtCore import pyqtSlot, Qt
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt5.QtWidgets import QDialog, QDialogButtonBox
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from E5Gui.E5PathPicker import E5PathPickerModes
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from E5Gui.E5Application import e5App
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from .Ui_PyBabelConfigDialog import Ui_PyBabelConfigDialog
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 class PyBabelConfigDialog(QDialog, Ui_PyBabelConfigDialog):
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Class implementing a dialog to edit the PyBabel configuration.
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def __init__(self, configuration, parent=None):
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Constructor
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @param configuration current pybabel configuration
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @type dict
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @param parent reference to the parent widget
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 @type QWidget
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 super(PyBabelConfigDialog, self).__init__(parent)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self.setupUi(self)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 e5project = e5App().getObject("Project")
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.configFilePicker.setMode(E5PathPickerModes.OpenFileMode)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 self.configFilePicker.setFilters(self.tr(
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 "Configuration Files (*.cfg);;"
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 "All Files (*)"
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 ))
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.configFilePicker.setDefaultDirectory(e5project.getProjectPath())
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.catalogFilePicker.setMode(E5PathPickerModes.OpenFileMode)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.catalogFilePicker.setFilters(self.tr(
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 "Message Catalog Files (*.pot);;"
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 "All Files (*)"
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 ))
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.catalogFilePicker.setDefaultDirectory(e5project.getProjectPath())
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 self.configFilePicker.setFocus(Qt.OtherFocusReason)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 if "configFile" in configuration:
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.configFilePicker.setText(configuration["configFile"])
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 if "catalogFile" in configuration:
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.catalogFilePicker.setText(configuration["catalogFile"])
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 if "markersList" in configuration:
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.markersEdit.setText(" ".join(configuration["markersList"]))
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 def getConfiguration(self):
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 Public method to get the entered configuration data.
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 @return pybabel configuration
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 @rtype dict
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 configuration = {
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 "configFile": self.configFilePicker.text(),
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 "catalogFile": self.catalogFilePicker.text(),
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 }
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 if self.markersEdit.text():
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 configuration["markersList"] = self.markersEdit.text().split()
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 return configuration
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 def __updateOK(self):
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 enable = (
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 bool(self.configFilePicker.text()) and
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 bool(self.catalogFilePicker.text())
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 )
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(enable)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 @pyqtSlot(str)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 def on_configFilePicker_textChanged(self, txt):
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 Private slot to handle a change of the configuration file name.
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 @param txt configuration file name
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 @type str
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self.__updateOK()
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 @pyqtSlot(str)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 def on_catalogFilePicker_textChanged(self, txt):
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 Private slot to handle a change of the catalog file name.
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 @param txt configuration file name
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 @type str
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 self.__updateOK()

eric ide

mercurial