def __init__(self, path="UploadVideo.ui", root="frmUploadVideo", domain="LibreShot", form=None, project=None, filename=None, service_name=None, **kwargs): SimpleGtkBuilderApp.__init__(self, os.path.join(project.UI_DIR, path), root, domain, **kwargs) # Add language support _ = Language_Init.Translator(project).lang.gettext self._ = _ self.form = form self.project = project self.filename = filename self.upload_manager = UploadManager(project, self.form.settings) # Init filename (if any passed in) if self.filename: self.fileFilename.set_filename(self.filename) # Init upload services dropdown upload_model = self.cboUploadService.get_model() upload_model.clear() self.upload_services = self.upload_manager.get_services() upload_types = self.upload_services.keys() upload_types.sort() # loop through export to options for option in upload_types: # append profile to list self.cboUploadService.append_text(option) # get default upload service if service_name: # service name passed into form default_upload_service = service_name else: # get default from settings default_upload_service = self.form.settings.app_state[ "upload_service"] if default_upload_service in upload_types: self.set_dropdown_values(default_upload_service, self.cboUploadService) else: self.set_dropdown_values(upload_types[0], self.cboUploadService)
def __init__(self, path="ExportVideo.ui", root="frmExportVideo", domain="LibreShot", form=None, project=None, **kwargs): SimpleGtkBuilderApp.__init__(self, os.path.join(project.UI_DIR, path), root, domain, **kwargs) # Add language support _ = Language_Init.Translator(project).lang.gettext self._ = _ # set important vars self.form = form self.project = project self.original_project_type = self.project.project_type # remember the original project type (i.e. mlt_profile) # Show all controls on this screen self.frmExportVideo.show_all() # set window as MODAL (so they can't mess up the export) self.frmExportVideo.set_modal(True) self.invalid_codecs = [] # init the project type properties self.init_properties(self.cmbProjectType.get_active_text()) # set the export file name self.txtFileName.set_text(self.project.name) # set the export folder as the project folder (if any) if ".libreshot" in self.project.folder: # This is the libreshot default project (set the folder to 'DESKTOP') self.fileExportFolder.set_current_folder(self.project.DESKTOP) else: # Set project folder self.fileExportFolder.set_current_folder(self.project.folder) # init the list of possible project types / profiles self.profile_list = profiles.mlt_profiles(self.project).get_profile_list() # loop through each profile, and add it to the dropdown for file_name, p in self.profile_list: # append profile to list self.cmbProjectType.append_text(p.description()) export_options = [_("Video & Audio"), _("Image Sequence")] # loop through export to options for option in export_options: # append profile to list self.cboExportTo.append_text(option) export_types_model = self.cboExportType.get_model() export_types_model.clear() export_types = [_("Export to Folder"), _("Upload to Web")] # loop through export to options for option in export_types: # append profile to list self.cboExportType.append_text(option) self.set_dropdown_values(_("Export to Folder"), self.cboExportType) upload_model = self.cboUploadServices.get_model() upload_model.clear() self.upload_manager = UploadManager(project, self.form.settings) self.upload_services = self.upload_manager.get_services() upload_types = self.upload_services.keys() upload_types.sort() # loop through export to options for option in upload_types: # append profile to list self.cboUploadServices.append_text(option) self.set_dropdown_values(_("YouTube"), self.cboUploadServices) #populate the format/codec drop downs #formats format_model = self.cboVIdeoFormat.get_model() format_model.clear() for format in self.form.vformats: self.cboVIdeoFormat.append_text(format) #video codecs vcodecs_model = self.cboVideoCodec.get_model() vcodecs_model.clear() for vcodec in self.form.vcodecs: self.cboVideoCodec.append_text(vcodec) #audio codecs acodecs_model = self.cboAudioCodec.get_model() acodecs_model.clear() # Add 'none' audio codec self.cboAudioCodec.append_text( "none" ) for acodec in self.form.acodecs: # Add the rest of the audio codecs self.cboAudioCodec.append_text(acodec) # set the dropdown boxes self.set_project_type_dropdown() self.set_export_to_dropdown() #load the simple project type dropdown presets = [] for file in os.listdir(self.project.EXPORT_PRESETS_DIR): xmldoc = xml.parse(os.path.join(self.project.EXPORT_PRESETS_DIR,file)) type = xmldoc.getElementsByTagName("type") presets.append(_(type[0].childNodes[0].data)) #exclude duplicates presets = list(set(presets)) for item in sorted(presets): self.cboSimpleProjectType.append_text(item) #indicate that exporting cancelled self.cancelled = False # create the infobar displaying the missing codec message self.use_infobar = True self.last_error = None try: self.infobar = gtk.InfoBar() self.content = self.infobar.get_content_area() self.label = gtk.Label() self.image = gtk.Image() self.image.set_from_stock(gtk.STOCK_DIALOG_WARNING, gtk.ICON_SIZE_DIALOG) self.content.add(self.image) self.content.add(self.label) self.vbox1.pack_start(self.infobar) self.vbox1.reorder_child(self.infobar, 3) self.infobar.set_message_type(gtk.MESSAGE_WARNING) except: # older version of pygtk can not create an InfoBar self.use_infobar = False