7 Module implementing a dialog to edit the flask-babel configuration. |
7 Module implementing a dialog to edit the flask-babel configuration. |
8 """ |
8 """ |
9 |
9 |
10 import os |
10 import os |
11 |
11 |
12 from PyQt5.QtCore import pyqtSlot, Qt |
12 from PyQt6.QtCore import pyqtSlot, Qt |
13 from PyQt5.QtWidgets import QDialog, QDialogButtonBox |
13 from PyQt6.QtWidgets import QDialog, QDialogButtonBox |
14 |
14 |
15 from E5Gui.E5PathPicker import E5PathPickerModes |
15 from EricWidgets.EricPathPicker import EricPathPickerModes |
16 from E5Gui.E5Application import e5App |
16 from EricWidgets.EricApplication import ericApp |
17 |
17 |
18 from .Ui_PyBabelConfigDialog import Ui_PyBabelConfigDialog |
18 from .Ui_PyBabelConfigDialog import Ui_PyBabelConfigDialog |
19 |
19 |
20 |
20 |
21 class PyBabelConfigDialog(QDialog, Ui_PyBabelConfigDialog): |
21 class PyBabelConfigDialog(QDialog, Ui_PyBabelConfigDialog): |
32 @type QWidget |
32 @type QWidget |
33 """ |
33 """ |
34 super().__init__(parent) |
34 super().__init__(parent) |
35 self.setupUi(self) |
35 self.setupUi(self) |
36 |
36 |
37 self.__e5project = e5App().getObject("Project") |
37 self.__ericProject = ericApp().getObject("Project") |
38 |
38 |
39 self.configFilePicker.setMode( |
39 self.configFilePicker.setMode( |
40 E5PathPickerModes.SaveFileEnsureExtensionMode) |
40 EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE) |
41 self.configFilePicker.setFilters(self.tr( |
41 self.configFilePicker.setFilters(self.tr( |
42 "Configuration Files (*.cfg);;" |
42 "Configuration Files (*.cfg);;" |
43 "All Files (*)" |
43 "All Files (*)" |
44 )) |
44 )) |
45 self.configFilePicker.setDefaultDirectory( |
45 self.configFilePicker.setDefaultDirectory( |
46 self.__e5project.getProjectPath()) |
46 self.__ericProject.getProjectPath()) |
47 |
47 |
48 self.translationsDirectoryPicker.setMode( |
48 self.translationsDirectoryPicker.setMode( |
49 E5PathPickerModes.DirectoryMode) |
49 EricPathPickerModes.DIRECTORY_MODE) |
50 self.translationsDirectoryPicker.setDefaultDirectory( |
50 self.translationsDirectoryPicker.setDefaultDirectory( |
51 self.__e5project.getProjectPath()) |
51 self.__ericProject.getProjectPath()) |
52 |
52 |
53 self.catalogFilePicker.setMode( |
53 self.catalogFilePicker.setMode( |
54 E5PathPickerModes.SaveFileEnsureExtensionMode) |
54 EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE) |
55 self.catalogFilePicker.setFilters(self.tr( |
55 self.catalogFilePicker.setFilters(self.tr( |
56 "Message Catalog Files (*.pot);;" |
56 "Message Catalog Files (*.pot);;" |
57 "All Files (*)" |
57 "All Files (*)" |
58 )) |
58 )) |
59 self.catalogFilePicker.setDefaultDirectory( |
59 self.catalogFilePicker.setDefaultDirectory( |
60 self.__e5project.getProjectPath()) |
60 self.__ericProject.getProjectPath()) |
61 |
61 |
62 self.configFilePicker.setFocus(Qt.OtherFocusReason) |
62 self.configFilePicker.setFocus(Qt.FocusReason.OtherFocusReason) |
63 |
63 |
64 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) |
64 self.buttonBox.button( |
|
65 QDialogButtonBox.StandardButton.Ok).setEnabled(False) |
65 |
66 |
66 if "configFile" in configuration: |
67 if "configFile" in configuration: |
67 self.configFilePicker.setText( |
68 self.configFilePicker.setText( |
68 self.__e5project.getAbsoluteUniversalPath( |
69 self.__ericProject.getAbsoluteUniversalPath( |
69 configuration["configFile"])) |
70 configuration["configFile"])) |
70 if "translationsDirectory" in configuration: |
71 if "translationsDirectory" in configuration: |
71 self.translationsDirectoryPicker.setText( |
72 self.translationsDirectoryPicker.setText( |
72 self.__e5project.getAbsoluteUniversalPath( |
73 self.__ericProject.getAbsoluteUniversalPath( |
73 configuration["translationsDirectory"])) |
74 configuration["translationsDirectory"])) |
74 if "domain" in configuration: |
75 if "domain" in configuration: |
75 self.domainEdit.setText(configuration["domain"]) |
76 self.domainEdit.setText(configuration["domain"]) |
76 if "catalogFile" in configuration: |
77 if "catalogFile" in configuration: |
77 self.catalogFilePicker.setText( |
78 self.catalogFilePicker.setText( |
78 self.__e5project.getAbsoluteUniversalPath( |
79 self.__ericProject.getAbsoluteUniversalPath( |
79 configuration["catalogFile"])) |
80 configuration["catalogFile"])) |
80 if "markersList" in configuration: |
81 if "markersList" in configuration: |
81 self.markersEdit.setText(" ".join(configuration["markersList"])) |
82 self.markersEdit.setText(" ".join(configuration["markersList"])) |
82 |
83 |
83 msh = self.minimumSizeHint() |
84 msh = self.minimumSizeHint() |
89 |
90 |
90 @return pybabel configuration |
91 @return pybabel configuration |
91 @rtype dict |
92 @rtype dict |
92 """ |
93 """ |
93 configuration = { |
94 configuration = { |
94 "configFile": self.__e5project.getRelativeUniversalPath( |
95 "configFile": |
95 self.configFilePicker.text()), |
96 self.__ericProject.getRelativeUniversalPath( |
96 "translationsDirectory": self.__e5project.getRelativeUniversalPath( |
97 self.configFilePicker.text()), |
97 self.translationsDirectoryPicker.text()), |
98 "translationsDirectory": |
|
99 self.__ericProject.getRelativeUniversalPath( |
|
100 self.translationsDirectoryPicker.text()), |
98 } |
101 } |
99 |
102 |
100 domain = self.domainEdit.text() |
103 domain = self.domainEdit.text() |
101 if domain: |
104 if domain: |
102 configuration["domain"] = domain |
105 configuration["domain"] = domain |
108 # use a default name made of translations dir and domain |
111 # use a default name made of translations dir and domain |
109 catalogFile = os.path.join( |
112 catalogFile = os.path.join( |
110 configuration["translationsDirectory"], |
113 configuration["translationsDirectory"], |
111 "{0}.pot".format(configuration["domain"])) |
114 "{0}.pot".format(configuration["domain"])) |
112 configuration["catalogFile"] = ( |
115 configuration["catalogFile"] = ( |
113 self.__e5project.getRelativeUniversalPath(catalogFile) |
116 self.__ericProject.getRelativeUniversalPath(catalogFile) |
114 ) |
117 ) |
115 |
118 |
116 if self.markersEdit.text(): |
119 if self.markersEdit.text(): |
117 configuration["markersList"] = self.markersEdit.text().split() |
120 configuration["markersList"] = self.markersEdit.text().split() |
118 |
121 |