ProjectFlask/FlaskBabelExtension/PyBabelProjectExtension.py

changeset 29
a8817ea36587
parent 27
b73e9af0d496
child 30
76c86fe13f36
equal deleted inserted replaced
28:71cd3bbf825f 29:a8817ea36587
22 import Utilities 22 import Utilities
23 23
24 24
25 class PyBabelProject(QObject): 25 class PyBabelProject(QObject):
26 """ 26 """
27 Class implementing the Flask project support. 27 Class implementing the flask-babel project support.
28 """ 28 """
29 def __init__(self, plugin, project, parent=None): 29 def __init__(self, plugin, project, parent=None):
30 """ 30 """
31 Constructor 31 Constructor
32 32
41 41
42 self.__plugin = plugin 42 self.__plugin = plugin
43 self.__project = project 43 self.__project = project
44 44
45 self.__e5project = e5App().getObject("Project") 45 self.__e5project = e5App().getObject("Project")
46 # TODO: move virtual env stuff to Project
46 self.__virtualEnvManager = e5App().getObject("VirtualEnvManager") 47 self.__virtualEnvManager = e5App().getObject("VirtualEnvManager")
47 48
48 self.__hooksInstalled = False 49 self.__hooksInstalled = False
49 50
50 def initActions(self): 51 def initActions(self):
51 """ 52 """
52 Public method to define the Flask actions. 53 Public method to define the flask-babel actions.
53 """ 54 """
54 self.actions = [] 55 self.actions = []
55 56
56 self.pybabelConfigAct = E5Action( 57 self.pybabelConfigAct = E5Action(
57 self.tr('Configure PyBabel'), 58 self.tr('Configure PyBabel'),
58 self.tr('Configure Py&Babel'), 59 self.tr('&Configure PyBabel'),
59 0, 0, 60 0, 0,
60 self, 'flask_config_pybabel') 61 self, 'flask_config_pybabel')
61 self.pybabelConfigAct.setStatusTip(self.tr( 62 self.pybabelConfigAct.setStatusTip(self.tr(
62 'Shows a dialog to edit the configuration for pybabel')) 63 'Shows a dialog to edit the configuration for pybabel'))
63 self.pybabelConfigAct.setWhatsThis(self.tr( 64 self.pybabelConfigAct.setWhatsThis(self.tr(
85 self.__installFlaskBabel) 86 self.__installFlaskBabel)
86 self.actions.append(self.pybabelInstallAct) 87 self.actions.append(self.pybabelInstallAct)
87 88
88 self.pybabelAvailabilityAct = E5Action( 89 self.pybabelAvailabilityAct = E5Action(
89 self.tr('Check flask-babel Availability'), 90 self.tr('Check flask-babel Availability'),
90 self.tr('&Check flask-babel Availability'), 91 self.tr('Check flask-babel &Availability'),
91 0, 0, 92 0, 0,
92 self, 'flask_check_pybabel') 93 self, 'flask_check_pybabel')
93 self.pybabelAvailabilityAct.setStatusTip(self.tr( 94 self.pybabelAvailabilityAct.setStatusTip(self.tr(
94 'Check the availability of the flask-babel extension')) 95 'Check the availability of the flask-babel extension'))
95 self.pybabelAvailabilityAct.setWhatsThis(self.tr( 96 self.pybabelAvailabilityAct.setWhatsThis(self.tr(
100 self.__checkAvailability) 101 self.__checkAvailability)
101 self.actions.append(self.pybabelAvailabilityAct) 102 self.actions.append(self.pybabelAvailabilityAct)
102 103
103 def initMenu(self): 104 def initMenu(self):
104 """ 105 """
105 Public method to initialize the Flask menu. 106 Public method to initialize the flask-babel menu.
106 107
107 @return the menu generated 108 @return the menu generated
108 @rtype QMenu 109 @rtype QMenu
109 """ 110 """
110 menu = QMenu(self.tr("Translations")) 111 menu = QMenu(self.tr("Translations"))
198 199
199 def determineCapability(self): 200 def determineCapability(self):
200 """ 201 """
201 Public method to determine the availability of flask-babel. 202 Public method to determine the availability of flask-babel.
202 """ 203 """
203 available = self.flaskBabelAvailable() 204 available = self.__flaskBabelAvailable()
204 self.__project.setCapability("pybabel", available) 205 self.__project.setCapability("pybabel", available)
205 206
206 self.pybabelConfigAct.setEnabled(available) 207 self.pybabelConfigAct.setEnabled(available)
207 self.pybabelInstallAct.setEnabled(not available) 208 self.pybabelInstallAct.setEnabled(not available)
208 209
221 222
222 ################################################################## 223 ##################################################################
223 ## slots and methods below implement i18n and l10n support 224 ## slots and methods below implement i18n and l10n support
224 ################################################################## 225 ##################################################################
225 226
226 def flaskBabelAvailable(self): 227 def __flaskBabelAvailable(self):
227 """ 228 """
228 Public method to check, if the 'flask-babel' package is available. 229 Private method to check, if the 'flask-babel' package is available.
229 230
230 @return flag indicating the availability of 'flask-babel' 231 @return flag indicating the availability of 'flask-babel'
231 @rtype bool 232 @rtype bool
232 """ 233 """
233 venvName = self.__plugin.getPreferences("VirtualEnvironmentNamePy3") 234 venvName = self.__plugin.getPreferences("VirtualEnvironmentNamePy3")

eric ide

mercurial