def reload_java_sources(self):
"""Reload completely the sources by asking Androguard
to decompile it again. Useful when:
- an element has been renamed to propagate the info
- the current tab is changed because we do not know what user
did since then, so we need to propagate previous changes as well
"""
log.debug("Getting sources for %s" % self.current_class)
lines = [("COMMENTS", [(
"COMMENT", "// filename:%s\n// digest:%s\n\n" % (
self.current_filename, self.current_digest))])]
method_info_buff = ""
for method in self.current_class.get_methods():
method_info_buff += "// " + str(method) + "\n"
lines.append(("COMMENTS", [(
"COMMENT", method_info_buff + "\n\n")]))
lines.extend(self.current_class.get_source_ext())
# TODO: delete doc when tab is closed? not deleted by "self" :(
if hasattr(self, "doc"):
del self.doc
self.doc = SourceDocument(parent=self, lines=lines)
self.setDocument(self.doc)
# No need to save hightlighter. highlighBlock will automatically be called
# because we passed the QTextDocument to QSyntaxHighlighter constructor
MyHighlighter(self.doc, lexer=JavaLexer())
def reload_java_sources(self):
'''Reload completely the sources by asking Androguard
to decompile it again. Useful when:
- an element has been renamed to propagate the info
- the current tab is changed because we do not know what user
did since then, so we need to propagate previous changes as well
'''
androconf.debug("Getting sources for %s" % self.current_class)
lines = []
lines.append(("COMMENTS", [(
"COMMENT", "// filename:%s\n// digest:%s\n\n" % (
self.current_filename, self.current_digest))]))
method_info_buff = ""
for method in self.current_class.get_methods():
method_info_buff += "// " + str(method) + "\n"
lines.append(("COMMENTS", [(
"COMMENT", method_info_buff + "\n\n")]))
lines.extend(self.current_class.get_source_ext())
#TODO: delete doc when tab is closed? not deleted by "self" :(
if hasattr(self, "doc"):
del self.doc
self.doc = SourceDocument(parent=self, lines=lines)
self.setDocument(self.doc)
#No need to save hightlighter. highlighBlock will automatically be called
#because we passed the QTextDocument to QSyntaxHighlighter constructor
if PYGMENTS:
MyHighlighter(self.doc, lexer=JavaLexer())
else:
androconf.debug("Pygments is not present !")