示例#1
0
    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")
示例#2
0
    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)
示例#3
0
文件: app.py 项目: MrPablozOne/kaira
    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)
示例#4
0
文件: app.py 项目: cie0037/kaira
    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")
示例#5
0
文件: cmdutils.py 项目: Kobzol/kaira
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)
示例#6
0
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)