ProjectFlask/PyBabelConfigDialog.py

Thu, 19 Nov 2020 20:19:55 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 19 Nov 2020 20:19:55 +0100
changeset 15
3f5c05eb2d5f
parent 14
d2da14b2a233
child 16
dd3f6bfb85f7
permissions
-rw-r--r--

Continued 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
14
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
35 self.__e5project = e5App().getObject("Project")
13
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
14
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
37 self.configFilePicker.setMode(
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
38 E5PathPickerModes.SaveFileEnsureExtensionMode)
13
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.configFilePicker.setFilters(self.tr(
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 "Configuration Files (*.cfg);;"
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 "All Files (*)"
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 ))
14
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
43 self.configFilePicker.setDefaultDirectory(
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
44 self.__e5project.getProjectPath())
13
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
14
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
46 self.catalogFilePicker.setMode(
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
47 E5PathPickerModes.SaveFileEnsureExtensionMode)
13
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.catalogFilePicker.setFilters(self.tr(
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 "Message Catalog Files (*.pot);;"
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 "All Files (*)"
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 ))
14
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
52 self.catalogFilePicker.setDefaultDirectory(
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
53 self.__e5project.getProjectPath())
13
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 self.configFilePicker.setFocus(Qt.OtherFocusReason)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 if "configFile" in configuration:
14
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
60 self.configFilePicker.setText(
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
61 self.__e5project.getAbsoluteUniversalPath(
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
62 configuration["configFile"]))
13
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 if "catalogFile" in configuration:
14
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
64 self.catalogFilePicker.setText(
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
65 self.__e5project.getAbsoluteUniversalPath(
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
66 configuration["catalogFile"]))
13
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 if "markersList" in configuration:
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.markersEdit.setText(" ".join(configuration["markersList"]))
14
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
69
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
70 msh = self.minimumSizeHint()
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
71 self.resize(max(self.width(), msh.width()), msh.height())
13
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 def getConfiguration(self):
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 Public method to get the entered configuration data.
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 @return pybabel configuration
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 @rtype dict
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 configuration = {
14
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
81 "configFile": self.__e5project.getRelativeUniversalPath(
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
82 self.configFilePicker.text()),
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
83 "catalogFile": self.__e5project.getRelativeUniversalPath(
d2da14b2a233 Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
84 self.catalogFilePicker.text()),
13
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 }
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 if self.markersEdit.text():
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 configuration["markersList"] = self.markersEdit.text().split()
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 return configuration
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 def __updateOK(self):
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 enable = (
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 bool(self.configFilePicker.text()) and
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 bool(self.catalogFilePicker.text())
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 )
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(enable)
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 @pyqtSlot(str)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 def on_configFilePicker_textChanged(self, txt):
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 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
102
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 @param txt configuration file name
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 @type str
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 self.__updateOK()
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 @pyqtSlot(str)
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 def on_catalogFilePicker_textChanged(self, txt):
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 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
112
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 @param txt configuration file name
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 @type str
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 """
ed33cdfca13d Started implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 self.__updateOK()

eric ide

mercurial