示例#1
0
文件: File.py 项目: ag-sd/py
 def __init__(self, file, url=None):
     self.file = file
     self.file_name = os.path.split(file)[1]
     self.url = url
     mime_type = _mime_database.mimeTypeForFile(file)
     os_info = os.stat(file)
     self.file_size = os_info.st_size
     self.access_time = os_info.st_atime
     self.modify_time = os_info.st_mtime
     self.create_time = os_info.st_ctime
     self.mime_type_name = mime_type.name()
     self.mime_type_icon_name = mime_type.iconName()
     self.status = EncoderStatus.READING_METADATA
     self.output_file_dir = TransCodaSettings.get_output_dir()
     self.encoder = TransCodaSettings.get_encoder_name()
     self.encoder_props = TransCodaSettings.get_encoder(
     ) if self.encoder is not None else None
     self.output_file = ""
     self.update_output_file()
     self.history_result = None
     self.encode_start_time = None
     self.encode_end_time = None
     self.encode_output_size = None
     self.encode_command = None
     self.encode_percent = None
     self.encode_messages = None
     self.encode_cpu_time = None
     self.encode_compression_ratio = None
     self.meta_data = {}
示例#2
0
文件: TransCodaApp.py 项目: ag-sd/py
 def settings_changed(self, setting, _):
     valid_keys = {SettingsKeys.encoder_path}
     if setting in valid_keys:
         self.encoder.setText(TransCodaSettings.get_encoder_name())
     self.tool_bar.set_encode_state(file_count=self.main_panel.row_count(),
                                    encoder_name=TransCodaSettings.get_encoder_name(),
                                    output_dir=TransCodaSettings.get_output_dir())
示例#3
0
文件: TransCodaApp.py 项目: ag-sd/py
 def jobs_complete_event(self, all_results, time_taken):
     self.progressbar.setValue(self.progressbar.maximum())
     self.executor = None
     self.statusBar().showMessage(f"Processed {len(all_results)} files in {time_taken} seconds", msecs=400)
     self.set_window_title()
     self.tool_bar.encoding_finished(file_count=self.main_panel.row_count(),
                                     encoder_name=TransCodaSettings.get_encoder_name(),
                                     output_dir=TransCodaSettings.get_output_dir())
     self.reset_timer()
示例#4
0
文件: TransCodaApp.py 项目: ag-sd/py
 def files_changed_event(self, is_added, files):
     if is_added:
         self.statusBar().showMessage("Scanning files please wait...")
         scanner = CommonUtils.FileScanner(files, recurse=True, is_qfiles=True)
         self.statusBar().showMessage(f"Loading files into {TransCoda.__APP_NAME__}")
         # Add files first
         total_added = self.main_panel.add_files(scanner.files)
         # Fetch and enrich with metadata
         batches = []
         for batch in CommonUtils.batch(list(scanner.files), batch_size=20):
             retriever = FileMetaDataExtractor(batch, batch_size=len(batch))
             retriever.signals.result.connect(self.result_received_event)
             batches.append(retriever)
         # UX
         self.begin_tasks(batches, f"Fetching meta-data for {total_added} files", total_added)
     self.tool_bar.set_encode_state(file_count=self.main_panel.row_count(),
                                    encoder_name=TransCodaSettings.get_encoder_name(),
                                    output_dir=TransCodaSettings.get_output_dir())
示例#5
0
文件: TransCodaApp.py 项目: ag-sd/py
    def init_ui(self):
        encoder_name = TransCodaSettings.get_encoder_name()
        self.main_panel.set_items(TransCodaSettings.get_encode_list())
        self.main_panel.files_changed_event.connect(self.files_changed_event)
        self.main_panel.menu_item_event.connect(self.action_event)
        self.tool_bar.set_encode_state(file_count=self.main_panel.row_count(),
                                       encoder_name=encoder_name,
                                       output_dir=TransCodaSettings.get_output_dir())
        self.tool_bar.button_pressed.connect(self.action_event)
        self.addToolBar(QtCore.Qt.LeftToolBarArea, self.tool_bar)
        self.setCentralWidget(self.main_panel)
        self.statusBar().addPermanentWidget(QVLine())
        if encoder_name:
            self.encoder.setText(TransCodaSettings.get_encoder_name())
        else:
            self.encoder.setText("No encoder selected.")
        self.terminal_btn.setIcon(TransCoda.theme.ico_terminal)
        self.terminal_btn.setFlat(True)
        self.terminal_btn.setToolTip("Show Encoder Logs")
        self.terminal_btn.clicked.connect(self.show_encode_logs)
        self.statusBar().addPermanentWidget(self.encoder, 0)
        self.statusBar().addPermanentWidget(QVLine())
        self.statusBar().addPermanentWidget(self.progressbar, 0)
        self.statusBar().addPermanentWidget(self.terminal_btn, 0)

        self.setMinimumSize(800, 600)
        self.setWindowTitle(TransCoda.__APP_NAME__)
        self.setWindowIcon(TransCoda.theme.ico_app_icon)
        self.timer.timeout.connect(self.timer_timeout_event)
        self.timer.setInterval(6000)
        self.timer.setSingleShot(True)
        TransCodaSettings.settings.settings_change_event.connect(self.settings_changed)
        TransCodaSettings.settings.load_ui(self, TransCoda.logger)
        self.show()
        # Executed after the show, where all dimensions are calculated
        self.progressbar.setFixedWidth(self.progressbar.width())
        self.progressbar.setVisible(False)
示例#6
0
文件: File.py 项目: ag-sd/py
 def output_dir_changed(self):
     self.output_file_dir = TransCodaSettings.get_output_dir()
     self.update_output_file()