class CodeWindow: ''' Source code window Author: Jan Vorcak <*****@*****.**> ''' def __init__(self, filename, filepath): ''' Initialize builder class and reads objects from xml @param filename - filename to be used @param filepath - source code filepath ''' self._builder = Gtk.Builder() self._builder.add_from_file('windows/code_window.xml') self._window = self._builder.get_object('code_window') self._code_frame = self._builder.get_object('code_frame') self._error_image = self._builder.get_object('error_image') self._error_label = self._builder.get_object('error_label') self._error_box = self._builder.get_object('error_box') self._button_toolbar = self._builder.get_object('button_toolbar') self._statusbar = self._builder.get_object('statusbar') self._pylint_button = self._builder.get_object('pylint_button') self._spinner = self._builder.get_object('spinner') self._scanning_label = self._builder.get_object('scanning_label') self._save_button = self._builder.get_object('save_button') self._builder.connect_signals(self) self._filename = filename self._filepath = filepath if gsm.get(gsm.EDITOR) == gsm.VISUAL_EDITOR: self._editor = GeditEditor(filename, filepath, self) else: self._editor = VimEditor(filename, filepath) self._button_toolbar.set_visible(False) self._code_frame.add(self._editor.get_component()) self._window.connect("delete-event", self.exit) self._window.set_title("%s : %s" % (filename, filepath)) def show_all(self): self._window.show() self._error_box.set_visible(False) def present(self): self._window.present() def run_pylint(self, parent=None): ''' This method runs pylint agains the currently opened file Author: Jan Vorcak <*****@*****.**> ''' LOGILAB_MANAGER.astng_cache.clear() self._editor.clear_tags() plugins = [] pylintrc = None linter = TextBufferLinter() linter.init_linter(EditorReporter(self._editor), pylintrc) linter.set_scanning_items(self._scanning_label, self._spinner) linter.load_default_plugins() linter.load_plugin_modules(plugins) linter.read_config_file() linter.load_config_file() linter.set_buffer(self._editor.buff) linter.start() def ignore_message_clicked(self, button): self._error_box.set_visible(False) self._editor.ignore_current_tag() self.run_pylint() def disable_message_clicked(self, button): self._error_box.set_visible(False) pmm.ignore_code(self._editor.error_tag.msg_code) self.run_pylint() def save(self, parent): self._editor.save() def set_lineno(self, lineno): self._editor.set_lineno(lineno) def exit(self, event, data): ''' Needs to be unregistered from WindowManager when closing ''' w = WindowManager() w.unregister(self._filepath)