PluginProjectKivy.py

changeset 11
a3a738778142
parent 3
b7e3e3b131ea
child 13
2edce8c1ad5b
equal deleted inserted replaced
10:ffbc3df63559 11:a3a738778142
22 # Start-of-Header 22 # Start-of-Header
23 name = "Kivy Project Plugin" 23 name = "Kivy Project Plugin"
24 author = "Detlev Offenbach <detlev@die-offenbachs.de>" 24 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
25 autoactivate = True 25 autoactivate = True
26 deactivateable = True 26 deactivateable = True
27 version = "1.0.0" 27 version = "1.0.1"
28 className = "ProjectKivyPlugin" 28 className = "ProjectKivyPlugin"
29 packageName = "ProjectKivy" 29 packageName = "ProjectKivy"
30 shortDescription = "Project support for Kivy projects." 30 shortDescription = "Project support for Kivy projects."
31 longDescription = """This plugin implements project support for Kivy projects.""" 31 longDescription = \
32 """This plugin implements project support for Kivy projects."""
32 needsRestart = False 33 needsRestart = False
33 pyqtApi = 2 34 pyqtApi = 2
34 # End-of-Header 35 # End-of-Header
35 36
36 error = "" 37 error = ""
38 39
39 def apiFiles(language): 40 def apiFiles(language):
40 """ 41 """
41 Module function to return the API files made available by this plugin. 42 Module function to return the API files made available by this plugin.
42 43
44 @param language language to get API file for (string)
43 @return list of API filenames (list of string) 45 @return list of API filenames (list of string)
44 """ 46 """
45 if language in ["Python2"]: 47 if language in ["Python2"]:
46 apisDir = \ 48 apisDir = \
47 os.path.join(os.path.dirname(__file__), "ProjectKivy", "APIs") 49 os.path.join(os.path.dirname(__file__), "ProjectKivy", "APIs")
93 Public method to activate this plugin. 95 Public method to activate this plugin.
94 96
95 @return tuple of None and activation status (boolean) 97 @return tuple of None and activation status (boolean)
96 """ 98 """
97 try: 99 try:
98 self.__e5project.registerProjectType("Kivy", self.trUtf8("Kivy"), 100 self.__e5project.registerProjectType(
99 self.fileTypesCallback, 101 "Kivy", self.trUtf8("Kivy"), self.fileTypesCallback,
100 lexerAssociationCallback=self.lexerAssociationCallback, 102 lexerAssociationCallback=self.lexerAssociationCallback,
101 progLanguages=["Python2"]) 103 progLanguages=["Python2"])
102 except TypeError: 104 except TypeError:
103 # for backward compatibility 105 # for backward compatibility
104 self.__e5project.registerProjectType("Kivy", self.trUtf8("Kivy"), 106 self.__e5project.registerProjectType(
105 self.fileTypesCallback, 107 "Kivy", self.trUtf8("Kivy"), self.fileTypesCallback,
106 lexerAssociationCallback=self.lexerAssociationCallback) 108 lexerAssociationCallback=self.lexerAssociationCallback)
107 109
108 from Project.ProjectBrowser import SourcesBrowserFlag, FormsBrowserFlag, \ 110 from Project.ProjectBrowser import SourcesBrowserFlag, \
109 TranslationsBrowserFlag, OthersBrowserFlag 111 FormsBrowserFlag, TranslationsBrowserFlag, OthersBrowserFlag
110 Preferences.setProjectBrowserFlagsDefault("Kivy", 112 Preferences.setProjectBrowserFlagsDefault(
111 SourcesBrowserFlag | \ 113 "Kivy",
112 FormsBrowserFlag | \ 114 SourcesBrowserFlag |
113 TranslationsBrowserFlag | \ 115 FormsBrowserFlag |
116 TranslationsBrowserFlag |
114 OthersBrowserFlag, 117 OthersBrowserFlag,
115 ) 118 )
116 119
117 LEXERS[self.KivyLexerKey] = self.KivyLexerEntry 120 LEXERS[self.KivyLexerKey] = self.KivyLexerEntry
118 import QScintilla.Lexers 121 import QScintilla.Lexers
119 if self.__ui.versionIsNewer('5.3.5', '20130611'): 122 if self.__ui.versionIsNewer('5.3.5', '20130611'):
120 QScintilla.Lexers.registerLexer( 123 QScintilla.Lexers.registerLexer(
121 "Kivy", 124 "Kivy",
122 self.trUtf8("Kivy"), 125 self.trUtf8("Kivy"),
123 "dummy.kv", 126 "dummy.kv",
124 self.getLexer, 127 self.getLexer,
125 [self.trUtf8('Kivy Files (*.kv *.kivy)')], 128 [self.trUtf8('Kivy Files (*.kv *.kivy)')],
126 [self.trUtf8('Kivy Files (*.kv)')], 129 [self.trUtf8('Kivy Files (*.kv)')],
127 ['*.kv', '*.kivy'] 130 ['*.kv', '*.kivy']
128 ) 131 )
129 else: 132 else:
130 # work around a bug in older versions 133 # work around a bug in older versions
131 QScintilla.Lexers.registerLexer( 134 QScintilla.Lexers.registerLexer(
132 "Kivy", 135 "Kivy",
133 self.trUtf8("Kivy"), 136 self.trUtf8("Kivy"),
134 "dummy.kv", 137 "dummy.kv",
135 self.getLexer, 138 self.getLexer,
136 self.trUtf8('Kivy Files (*.kv *.kivy)'), 139 self.trUtf8('Kivy Files (*.kv *.kivy)'),
137 self.trUtf8('Kivy Files (*.kv)'), 140 self.trUtf8('Kivy Files (*.kv)'),
138 ['*.kv', '*.kivy'] 141 ['*.kv', '*.kivy']
139 ) 142 )
140 143
158 Private method to load the translation file. 161 Private method to load the translation file.
159 """ 162 """
160 if self.__ui is not None: 163 if self.__ui is not None:
161 loc = self.__ui.getLocale() 164 loc = self.__ui.getLocale()
162 if loc and loc != "C": 165 if loc and loc != "C":
163 locale_dir = \ 166 locale_dir = os.path.join(
164 os.path.join(os.path.dirname(__file__), "ProjectKivy", "i18n") 167 os.path.dirname(__file__), "ProjectKivy", "i18n")
165 translation = "django_%s" % loc 168 translation = "django_%s" % loc
166 translator = QTranslator(None) 169 translator = QTranslator(None)
167 loaded = translator.load(translation, locale_dir) 170 loaded = translator.load(translation, locale_dir)
168 if loaded: 171 if loaded:
169 self.__translator = translator 172 self.__translator = translator
170 e5App().installTranslator(self.__translator) 173 e5App().installTranslator(self.__translator)
171 else: 174 else:
172 print("Warning: translation file '{0}' could not be loaded.".format( 175 print("Warning: translation file '{0}' could not be"
173 translation)) 176 " loaded.".format(translation))
174 print("Using default.") 177 print("Using default.")
175 178
176 def fileTypesCallback(self): 179 def fileTypesCallback(self):
177 """ 180 """
178 Public method get the filetype associations of the Kivy project type. 181 Public method get the filetype associations of the Kivy project type.
193 """ 196 """
194 Public method to get the lexer association of the Kivy project type for 197 Public method to get the lexer association of the Kivy project type for
195 a file. 198 a file.
196 199
197 @param filename name of the file (string) 200 @param filename name of the file (string)
198 @return name of the lexer (string) (Pygments lexers are prefixed with 'Pygments|') 201 @return name of the lexer (string) (Pygments lexers are prefixed with
202 'Pygments|')
199 """ 203 """
200 for pattern, language in self.lexerAssociations.items(): 204 for pattern, language in self.lexerAssociations.items():
201 if fnmatch.fnmatch(filename, pattern): 205 if fnmatch.fnmatch(filename, pattern):
202 return language 206 return language
203 207

eric ide

mercurial