def __init__(self, args): self.window = MainWindow(self) self.window.set_size_request(950, 660) self.window.maximize() self.neteditor = None self.project = None self.sources_repository = extensions.SourcesRepository() self._open_welcome_tab() self.grid_size = 1 self.settings = self.load_settings() self.message_parser = re.compile( "\*(?P<location>((?P<id_int>\d+)/(?P<section>[^:]*)|(?P<id_string>[^:]+))" "(:(?P<line>\d+))?):(?P<message>.*)") operation = None arg_index = 0 for arg in args: if arg.startswith("OP:"): operation_class = extensions.operations.get(arg[3:]) if operation_class is None: self.console_write("Invalid operation".format(arg), "error") else: operation = operation_class() continue filename = os.path.abspath(arg) if os.path.isfile(filename): if arg.endswith(".kreport"): self.load_report(arg) elif arg.endswith(".proj"): self.set_project(loader.load_project(filename)) else: source = self.sources_repository.load_source( filename, self) if source is None: operation = None self.console_write( "Do no know how to load '{0}' \n".format(filename), "error") if operation: operation.parameters[arg_index].attach_source( source, 0) arg_index += 1 if len(self.sources_repository) > 0: self.run_tool_window() else: self.console_write("File '{0}' not found\n".format(filename), "error") if operation: operation.execute(self) self.console_write( "Operation '{0}' executed\n".format(operation.name), "info")
def load_project(self): filename = self.run_file_dialog("Open project", "open", "Project", "*.proj") if filename is None: return if filename[-5:] != ".proj": filename = filename + ".proj" p = self._catch_io_error(lambda: loader.load_project(filename)) if p: self.set_project(p)
def __init__(self, args): self.window = MainWindow(self) self.window.set_size_request(950,660) self.neteditor = None self.project = None self.sources_repository = extensions.SourcesRepository() self.group_repository = extensions.GroupRepository() self._open_welcome_tab() self.grid_size = 6 self.settings = self.load_settings() self.message_parser = re.compile( "\*(?P<location>((?P<id_int>\d+)/(?P<section>[^:]*)|(?P<id_string>[^:]+))" "(:(?P<line>\d+))?):(?P<message>.*)") operation = None arg_index = 0 for arg in args: if arg.startswith("OP:"): operation_class = extensions.operations.get(arg[3:]) if operation_class is None: self.console_write("Invalid operation".format(arg), "error") else: operation = operation_class() continue filename = os.path.abspath(arg) if os.path.isfile(filename): if arg.endswith(".kreport"): self.load_report(arg) elif arg.endswith(".proj"): self.set_project(loader.load_project(filename)) else: source = self.sources_repository.load_source(filename, self) group = self.group_repository.load_group(filename, self) if group is None: operation = None self.console_write("Do no know how to load '{0}' \n".format(filename), "error") if source is None: operation = None self.console_write("Do no know how to load '{0}' \n".format(filename), "error") if operation: operation.parameters[arg_index].attach_source(source, 0) operation.parameters[arg_index].attach_group(group, 0) arg_index += 1 if len(self.sources_repository ) > 0 or (self.group_repository) > 0: self.run_tool_window() else: self.console_write("File '{0}' not found\n".format(filename), "error") if operation: operation.execute(self) self.console_write("Operation '{0}' executed\n".format(operation.name), "info")
def export(filename, directory, trace, lib): p = loader.load_project(filename) if trace and lib: target = "libtraced" elif trace: target = "traced" elif lib: target = "lib" else: target = "release" build_config = p.get_build_config(target) if directory is not None: build_config.directory = directory else: build_config.directory = os.path.dirname(filename) p.export(build_config)