Ejemplo n.º 1
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.init_template()

        self.label_backup_directory_path.set_text(
            str(get_app_paths().dir_backup))

        self.list_export_settings_header.set_header_func(
            list_header_nested_func, None)
        self.list_export_settings.set_header_func(list_header_func, None)
        self.list_auto_save_interval.set_header_func(list_header_nested_func,
                                                     None)
        self.list_open_back_directory.set_header_func(list_header_nested_func,
                                                      None)

        # Bind settings to widgets
        s = get_settings()
        s.bind_import_open_video_automatically(
            self.switch_load_video_automatically, "active")
        s.bind_export_qc_document_nick(self.label_nick, "label")
        s.bind_export_append_nick(self.switch_append_nick, "active")
        s.bind_export_write_header(self.switch_write_header, "active")
        s.bind_export_write_header(self.revealer_header_section,
                                   "reveal-child")
        s.bind_export_write_date(self.switch_write_date, "active")
        s.bind_export_write_generator(self.switch_write_generator, "active")
        s.bind_export_write_nick(self.switch_write_nick, "active")
        s.bind_export_write_path(self.switch_write_path, "active")
        s.bind_auto_save_enabled(self.switch_auto_save, "active")
        s.bind_auto_save_enabled(self.revealer_auto_save, "reveal-child")
        s.bind_auto_save_interval(self.spin_btn_auto_save_interval, "value")
Ejemplo n.º 2
0
    def on_button_open_backup_directory_clicked(self, _):
        directory = str(get_app_paths().dir_backup)
        plat = platform.system()

        if plat == "Windows":
            import os
            os.startfile(directory)
        else:
            from gi.repository import Gio
            # The following code should even work on Windows, but it doesn't
            Gio.app_info_launch_default_for_uri(uri="file:///" + directory)
Ejemplo n.º 3
0
    def __init__(self, resource_path: str):
        from mpvqc import get_app_paths
        self.__resource_path = resource_path
        self.__file_path = get_app_paths().dir_config / Path(
            resource_path).name
        self.__file_path.parent.mkdir(parents=True, exist_ok=True)

        self.__content_default = Gio \
            .resources_lookup_data(self.__resource_path, Gio.ResourceLookupFlags.NONE) \
            .get_data() \
            .decode("utf-8")
        self.__content = self.__read()
Ejemplo n.º 4
0
def write_auto_save(video_path, file_content):
    """
    Writes a qc file into the auto save zip.

    :param video_path: the name of the current video file
    :param file_content: the content to write
    """

    today = str(datetime.today())

    zip_name = "{}.zip".format("-".join(today.split("-")[:2]))
    zip_path = path.join(get_app_paths().dir_backup, zip_name)
    zip_file = ZipFile(zip_path, "a" if path.isfile(zip_path) else "w", compression=ZIP_DEFLATED)

    file_name = "{}-{}.txt".format(today.replace(":", "-").replace(" ", "_"), path.splitext(path.basename(video_path))[0])

    try:
        zip_file.writestr(file_name, file_content)
    finally:
        zip_file.close()
Ejemplo n.º 5
0
    def on_realize(self, area):
        self.make_current()

        app_paths = get_app_paths()
        mpv = MPV(vo="libmpv",
                  keep_open="yes",
                  idle="yes",
                  osc="yes",
                  cursor_autohide="no",
                  input_cursor="no",
                  config="yes",
                  input_default_bindings="no",
                  config_dir=app_paths.dir_config,
                  screenshot_directory=app_paths.dir_screenshots,
                  log_handler=print)
        self.__ctx = MpvRenderContext(
            mpv,
            'opengl',
            opengl_init_params={'get_proc_address': self._proc_addr_wrapper})
        self.__ctx.update_cb = self.on_mpv_callback
        self.__mpv.initialize(mpv)
        _set_versioning_metadata(self.__mpv)