def get_project_info_panel(): project_name_label = Gtk.Label(label=PROJECT().name) name_row = guiutils.get_left_justified_box([project_name_label]) name_panel = guiutils.get_named_frame(_("Name"), name_row, 4) profile = PROJECT().profile desc_label = Gtk.Label(label=profile.description()) info_box = guicomponents.get_profile_info_small_box(profile) vbox = Gtk.VBox() vbox.pack_start(guiutils.get_left_justified_box([desc_label]), False, True, 0) vbox.pack_start(info_box, False, True, 0) profile_panel = guiutils.get_named_frame(_("Profile"), vbox, 4) events_list = ProjectEventListView() events_list.fill_data_model() events_panel = guiutils.get_named_frame(_("Project Events"), events_list, 4) project_info_vbox = Gtk.VBox() project_info_vbox.pack_start(name_panel, False, True, 0) project_info_vbox.pack_start(profile_panel, False, True, 0) project_info_vbox.set_size_request(250, PROJECT_INFO_PANEL_HEIGHT) project_info_hbox = Gtk.HBox() project_info_hbox.pack_start(project_info_vbox, False, False, 0) project_info_hbox.pack_start(events_panel, True, True, 0) widgets.project_name_label = project_name_label widgets.desc_label = desc_label widgets.info_box = info_box widgets.events_list = events_list return project_info_hbox
def get_project_info_panel(): project_name_label = gtk.Label(PROJECT().name) name_row = guiutils.get_left_justified_box([project_name_label]) name_panel = guiutils.get_named_frame(_("Name"), name_row, 4) profile = PROJECT().profile desc_label = gtk.Label(profile.description()) info_box = guicomponents.get_profile_info_small_box(profile) vbox = gtk.VBox() vbox.pack_start(guiutils.get_left_justified_box([desc_label]), False, True, 0) vbox.pack_start(info_box, False, True, 0) profile_panel = guiutils.get_named_frame(_("Profile"), vbox, 4) events_list = ProjectEventListView() events_list.set_size_request(270, 300) events_list.fill_data_model() events_panel = guiutils.get_named_frame(_("Project Events"), events_list, 4) project_info_vbox = gtk.VBox() project_info_vbox.pack_start(name_panel, False, True, 0) project_info_vbox.pack_start(profile_panel, False, True, 0) project_info_vbox.pack_start(events_panel, True, True, 0) align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) align.set_padding(0, 0, 0, 0) align.add(project_info_vbox) widgets.project_name_label = project_name_label widgets.desc_label = desc_label widgets.info_box = info_box widgets.events_list = events_list return align
def get_render_panel_left(render_widgets): small_height = editorstate.screen_size_small_height() file_opts_panel = guiutils.get_named_frame(_("File"), render_widgets.file_panel.vbox, 4) profile_panel = guiutils.get_named_frame(_("Render Profile"), render_widgets.profile_panel.vbox, 4) if small_height == False: encoding_panel = guiutils.get_named_frame( _("Encoding Format"), render_widgets.encoding_panel.vbox, 4) render_type_panel = guiutils.get_named_frame( _("Render Type"), render_widgets.render_type_panel.vbox, 4) render_panel = Gtk.VBox() render_panel.pack_start(file_opts_panel, False, False, 0) render_panel.pack_start(render_type_panel, False, False, 0) render_panel.pack_start(profile_panel, False, False, 0) if small_height == False: render_panel.pack_start(encoding_panel, False, False, 0) render_panel.pack_start(Gtk.Label(), True, True, 0) elif editorstate.SCREEN_HEIGHT == 900: # 900px height screens need most small height fixes but not this encoding_panel = guiutils.get_named_frame( _("Encoding Format"), render_widgets.encoding_panel.vbox, 4) render_panel.pack_start(encoding_panel, False, False, 0) render_panel.pack_start(Gtk.Label(), True, True, 0) return render_panel
def get_render_panel_left(render_widgets): small_height = (editorstate.SCREEN_HEIGHT < 898) file_opts_panel = guiutils.get_named_frame(_("File"), render_widgets.file_panel.vbox, 4) profile_panel = guiutils.get_named_frame(_("Render Profile"), render_widgets.profile_panel.vbox, 4) if small_height == False: encoding_panel = guiutils.get_named_frame( _("Encoding Format"), render_widgets.encoding_panel.vbox, 4) render_type_panel = guiutils.get_named_frame( _("Render Type"), render_widgets.render_type_panel.vbox, 4) render_panel = Gtk.VBox() render_panel.pack_start(file_opts_panel, False, False, 0) render_panel.pack_start(render_type_panel, False, False, 0) render_panel.pack_start(profile_panel, False, False, 0) if small_height == False: render_panel.pack_start(encoding_panel, False, False, 0) render_panel.pack_start(Gtk.Label(), True, True, 0) return render_panel
def _get_panel_and_create_editors(objects, pane_title, editors): panels = [] for obj in objects: # object is [name, type, editors_list] see blenderprojectinit.py editors_data_list = obj[2] editors_panel = Gtk.VBox(True, 2) for editor_data in editors_data_list: prop_path, label_text, tooltip, editor_type, value = editor_data editor_type = int(editor_type) editor = get_editor(editor_type, (obj[0], prop_path), label_text, value, tooltip) editor.blender_editor_data = editor_data # We need this the later to apply the changes. editors.append(editor) editors_panel.pack_start(editor, False, False, 0) if len(editors_data_list) > 0: if len(obj[1]) > 0: panel_text = obj[0] + " - " + obj[1] else: panel_text = obj[0] panel = guiutils.get_named_frame(panel_text, editors_panel) panels.append(panel) pane = Gtk.VBox(False, 2) for panel in panels: pane.pack_start(panel, False, False, 0) if len(panels) == 0: return None return guiutils.get_named_frame(pane_title, pane)
def get_render_panel_right(render_widgets, render_clicked_cb, to_queue_clicked_cb): small_height = (editorstate.SCREEN_HEIGHT < 898) if small_height: encoding_panel = guiutils.get_named_frame(_("Encoding Format"), render_widgets.encoding_panel.vbox, 4) opts_panel = guiutils.get_named_frame(_("Render Args"), render_widgets.args_panel.vbox, 4) bin_row = Gtk.HBox() bin_row.pack_start(guiutils.get_pad_label(10, 8), False, False, 0) bin_row.pack_start(Gtk.Label(label=_("Open File in Bin:")), False, False, 0) bin_row.pack_start(guiutils.get_pad_label(10, 2), False, False, 0) bin_row.pack_start(render_widgets.args_panel.open_in_bin, False, False, 0) bin_row.pack_start(Gtk.Label(), True, True, 0) range_row = Gtk.HBox() range_row.pack_start(guiutils.get_pad_label(10, 8), False, False, 0) if not editorstate.screen_size_small_width(): range_row.pack_start(Gtk.Label(label=_("Render Range:")), False, False, 0) range_row.pack_start(guiutils.get_pad_label(10, 2), False, False, 0) range_row.pack_start(render_widgets.range_cb, True, True, 0) buttons_panel = Gtk.HBox() buttons_panel.pack_start(guiutils.get_pad_label(10, 8), False, False, 0) buttons_panel.pack_start(render_widgets.reset_button, False, False, 0) if not editorstate.screen_size_small_width(): buttons_panel.pack_start(Gtk.Label(), True, True, 0) buttons_panel.pack_start(render_widgets.queue_button, False, False, 0) buttons_panel.pack_start(Gtk.Label(), True, True, 0) buttons_panel.pack_start(render_widgets.render_button, False, False, 0) render_widgets.queue_button.connect("clicked", to_queue_clicked_cb, None) render_widgets.render_button.connect("clicked", render_clicked_cb, None) render_panel = Gtk.VBox() if small_height: render_panel.pack_start(encoding_panel, False, False, 0) render_panel.pack_start(opts_panel, True, True, 0) #render_panel.pack_start(Gtk.Label(), True, True, 0) else: render_panel.pack_start(opts_panel, True, True, 0) if small_height == False: render_panel.pack_start(guiutils.get_pad_label(10, 22), False, False, 0) render_panel.pack_start(bin_row, False, False, 0) else: render_panel.pack_start(Gtk.Label(), True, True, 0) render_panel.pack_start(range_row, False, False, 0) if small_height == False: render_panel.pack_start(guiutils.get_pad_label(10, 12), False, False, 0) else: render_panel.pack_start(guiutils.get_pad_label(10, 4), False, False, 0) render_panel.pack_start(buttons_panel, False, False, 0) return render_panel
def get_enconding_panel(render_data): file_opts_panel = guiutils.get_named_frame(_("File"), widgets.file_panel.vbox, 4) profile_panel = guiutils.get_named_frame(_("Render Profile"), widgets.profile_panel.vbox, 4) encoding_panel = guiutils.get_named_frame(_("Encoding Format"), widgets.encoding_panel.vbox, 4) render_type_panel = guiutils.get_named_frame( _("Render Type"), widgets.render_type_panel.vbox, 4) render_panel = Gtk.VBox() render_panel.pack_start(file_opts_panel, False, False, 0) render_panel.pack_start(render_type_panel, False, False, 0) render_panel.pack_start(profile_panel, False, False, 0) render_panel.pack_start(encoding_panel, False, False, 0) if render_data != None: widgets.file_panel.movie_name.set_text(render_data.file_name) widgets.file_panel.extension_label.set_text(render_data.file_extension) widgets.file_panel.out_folder.set_current_folder( render_data.render_dir + "/") widgets.encoding_panel.encoding_selector.widget.set_active( render_data.encoding_option_index) widgets.encoding_panel.quality_selector.widget.set_active( render_data.quality_option_index) widgets.profile_panel.out_profile_combo.widget.set_active( render_data.profile_index) widgets.profile_panel.use_project_profile_check.set_active( render_data.use_default_profile) widgets.render_type_panel.presets_selector.widget.set_active( render_data.presets_index) widgets.render_type_panel.type_combo.set_active( render_data.use_preset_encodings) return render_panel
def get_top_level_project_info_panel(): project_name_label = Gtk.Label(label=PROJECT().name) name_row = guiutils.get_left_justified_box([project_name_label]) name_panel = guiutils.get_named_frame(_("Project"), name_row, 0, 6, 4, _("A <b>Project</b> contains one or more <b>Sequences</b> of edited media and a collection of media files stored in <b>Bins.</b>")) profile = PROJECT().profile desc_label = Gtk.Label(label=profile.description()) info_box = guicomponents.get_profile_info_small_box(profile) vbox = Gtk.VBox() vbox.pack_start(guiutils.get_left_justified_box([desc_label]), False, True, 0) vbox.pack_start(info_box, False, True, 0) profile_panel = guiutils.get_named_frame(_("Profile"), vbox, 0, 6, 4, _("<b>Profile</b> determines frame rate per second, image size in pixels and pixel aspect ratio for all <b>Sequences</b> in <b>Project</b> .")) events_list = ProjectEventListView() events_list.fill_data_model() events_panel = guiutils.get_named_frame(_("Project Events"), events_list, 0) project_info_vbox = Gtk.VBox() project_info_vbox.pack_start(name_panel, False, True, 0) project_info_vbox.pack_start(profile_panel, False, True, 0) guiutils.set_margins(project_info_vbox, 4,4,4,4) widgets.project_name_label = project_name_label widgets.desc_label = desc_label widgets.info_box = info_box widgets.events_list = events_list return project_info_vbox
def get_render_panel_left(render_widgets, add_audio_panel, normal_height): file_opts_panel = guiutils.get_named_frame(_("File"), render_widgets.file_panel.vbox, 4) render_type_panel = guiutils.get_named_frame(_("Render Type"), render_widgets.render_type_panel.vbox, 4) profile_panel = guiutils.get_named_frame(_("Render Profile"), render_widgets.profile_panel.vbox, 4) encoding_panel = guiutils.get_named_frame(_("Encoding Format"), render_widgets.encoding_panel.vbox, 4) render_panel = gtk.VBox() render_panel.pack_start(file_opts_panel, False, False, 0) render_panel.pack_start(render_type_panel, False, False, 0) render_panel.pack_start(profile_panel, False, False, 0) render_panel.pack_start(encoding_panel, False, False, 0) render_panel.pack_start(gtk.Label(), True, True, 0) return render_panel
def get_encoding_panel(render_data, create_container_file_panel=False): # We are making two kinds of panels here: # - panel for G'Mic tool # - panels for Clip Containers render settings if create_container_file_panel == False: file_panel_title = _("File") else: file_panel_title = _("Save Location") file_opts_panel = guiutils.get_named_frame(file_panel_title, widgets.file_panel.vbox, 4) if create_container_file_panel == False: profile_panel = guiutils.get_named_frame(_("Render Profile"), widgets.profile_panel.vbox, 4) encoding_panel = guiutils.get_named_frame(_("Encoding Format"), widgets.encoding_panel.vbox, 4) if create_container_file_panel == True: widgets.video_clip_panel = RenderVideoClipPanel(encoding_panel) video_clip_panel = guiutils.get_named_frame(_("Video Clip"), widgets.video_clip_panel.vbox, 4) else: widgets.video_clip_panel = None render_panel = Gtk.VBox() render_panel.pack_start(file_opts_panel, False, False, 0) if create_container_file_panel == False: render_panel.pack_start(profile_panel, False, False, 0) render_panel.pack_start(encoding_panel, False, False, 0) else: render_panel.pack_start(video_clip_panel, False, False, 0) if render_data != None: widgets.file_panel.movie_name.set_text(render_data.file_name) widgets.file_panel.extension_label.set_text(render_data.file_extension) widgets.file_panel.out_folder.set_current_folder(render_data.render_dir + "/") widgets.encoding_panel.encoding_selector.categorised_combo.set_selected(mltprofiles.get_profile_for_index(render_data.encoding_option_index).description()) widgets.encoding_panel.quality_selector.widget.set_active(render_data.quality_option_index) profile_desc = mltprofiles.get_profile_for_index(render_data.profile_index).description() widgets.profile_panel.out_profile_combo.categories_combo.set_selected(profile_desc) widgets.profile_panel.use_project_profile_check.set_active(render_data.use_default_profile) if create_container_file_panel == True: video_clip_combo_index = render_location_combo_index = 0 if render_data.do_video_render == False: video_clip_combo_index = 1 if render_data.save_internally == False: render_location_combo_index = 1 widgets.video_clip_panel.video_clip_combo.set_active(video_clip_combo_index) widgets.file_panel.render_location_combo.set_active(render_location_combo_index) widgets.file_panel.frame_name.set_text(render_data.frame_name) return render_panel
def __init__(self): self.dialog = Gtk.Dialog( _("Timeline Render Settings"), gui.editor_window.window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Close"), Gtk.ResponseType.CLOSE)) # Encoding self.enc_select = Gtk.ComboBoxText() encodings = renderconsumer.proxy_encodings if len( encodings ) < 1: # no encoding options available, system does not have right codecs # display info ? pass for encoption in encodings: self.enc_select.append_text(encoption.name) current_enc = editorpersistance.prefs.tline_render_encoding if current_enc >= len( encodings): # current encoding selection not available current_enc = 0 editorpersistance.prefs.tline_render_encoding = 0 editorpersistance.save() self.enc_select.set_active(current_enc) self.enc_select.connect( "changed", lambda w, e: self.encoding_changed(w.get_active()), None) self.size_select = Gtk.ComboBoxText() self.size_select.append_text(_("Project Image Size")) self.size_select.append_text(_("Half Project Image Size")) self.size_select.append_text(_("Quarter Project Image Size")) self.size_select.set_active(editorpersistance.prefs.tline_render_size) self.size_select.connect( "changed", lambda w, e: self.size_changed(w.get_active()), None) row_enc = Gtk.HBox(False, 2) row_enc.pack_start(Gtk.Label(), True, True, 0) row_enc.pack_start(self.enc_select, False, False, 0) row_enc.pack_start(self.size_select, False, False, 0) row_enc.pack_start(Gtk.Label(), True, True, 0) vbox_enc = Gtk.VBox(False, 2) vbox_enc.pack_start(row_enc, False, False, 0) vbox_enc.pack_start(guiutils.pad_label(8, 12), False, False, 0) panel_encoding = guiutils.get_named_frame(_("Render Encoding"), vbox_enc) # Pane vbox = Gtk.VBox(False, 2) vbox.pack_start(panel_encoding, False, False, 0) guiutils.set_margins(vbox, 8, 12, 12, 12) self.dialog.vbox.pack_start(vbox, True, True, 0) dialogutils.set_outer_margins(self.dialog.vbox) self.dialog.connect('response', dialogutils.dialog_destroy) self.dialog.show_all()
def get_editors_panel(self): self.editors_list = guicomponents.MultiTextColumnListView(5) guiutils.set_margins(self.editors_list, 0, 12, 0, 6) self.editors_list.set_size_request(900, 360) titles = [_("Property Path"), _("Label"), _("Info"), _("Type"), _("Value")] self.editors_list.set_column_titles(titles) # --- widgets add_button = Gtk.Button(label=_("Add Editor")) add_button.connect("clicked", lambda w: self.add_clicked()) self.delete_button = Gtk.Button(label=_("Delete Editor")) self.delete_button.set_sensitive(False) self.delete_button.connect("clicked", lambda w: self.delete_clicked()) self.obj_path_entry = Gtk.Entry() self.editor_label_entry = Gtk.Entry() self.tooltip_info_entry = Gtk.Entry() self.default_value_entry = Gtk.Entry() self.default_value_entry.set_text(simpleeditors.DEFAULT_VALUES[simpleeditors.SIMPLE_EDITOR_STRING]) self.editor_select = simpleeditors.get_simple_editor_selector(0, self.editor_selection_changed) # --- object path row right. self.obj_path_label = Gtk.Label() self.obj_path_label.set_use_markup(True) obj_path_row_right = Gtk.HBox(False, 2) obj_path_row_right.pack_start(guiutils.pad_label(4, 4), False, False, 0) obj_path_row_right.pack_start(self.obj_path_label, False, False, 0) obj_path_row_right.pack_start(self.obj_path_entry, False, False, 0) # --- panels editor_add_right = Gtk.VBox(False, 2) editor_add_right.pack_start(add_button, False, False, 0) editor_add_right.pack_start(Gtk.Label(), True, True, 0) editor_add_left = Gtk.VBox(True, 2) editor_add_left.pack_start(guiutils.bold_label(_("New Editor Properties")), False, False, 0) editor_add_left.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Blender Object Property Path:")), obj_path_row_right, EDITOR_PANEL_LEFT_LABEL_WIDTH), False, False, 0) editor_add_left.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Editor Label:")), self.editor_label_entry, EDITOR_PANEL_LEFT_LABEL_WIDTH), False, False, 0) editor_add_left.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Tooltip Info:")), self.tooltip_info_entry, EDITOR_PANEL_LEFT_LABEL_WIDTH), False, False, 0) editor_add_left.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Editor Type:")), self.editor_select, EDITOR_PANEL_LEFT_LABEL_WIDTH), False, False, 0) editor_add_left.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Default Value:")), self.default_value_entry, EDITOR_PANEL_LEFT_LABEL_WIDTH), False, False, 0) add_row = guiutils.get_two_column_box(editor_add_right, editor_add_left, EDITOR_PANEL_BUTTON_WIDTH) delete_row = guiutils.get_two_column_box(self.delete_button , Gtk.Label(), EDITOR_PANEL_BUTTON_WIDTH) vbox = Gtk.VBox(False, 2) vbox.pack_start(self.editors_list, True, True, 0) vbox.pack_start(add_row, False, False, 0) vbox.pack_start(delete_row, False, False, 0) panel = Gtk.VBox(True, 2) self.object_editors_frame = guiutils.get_named_frame("to be replaced", vbox) panel.pack_start(self.object_editors_frame, True, True, 0) return panel
def get_render_panel_left(render_widgets, add_audio_panel, normal_height): file_opts_panel = guiutils.get_named_frame(_("File"), render_widgets.file_panel.vbox, 4) render_type_panel = guiutils.get_named_frame( _("Render Type"), render_widgets.render_type_panel.vbox, 4) profile_panel = guiutils.get_named_frame(_("Render Profile"), render_widgets.profile_panel.vbox, 4) encoding_panel = guiutils.get_named_frame( _("Encoding Format"), render_widgets.encoding_panel.vbox, 4) render_panel = gtk.VBox() render_panel.pack_start(file_opts_panel, False, False, 0) render_panel.pack_start(render_type_panel, False, False, 0) render_panel.pack_start(profile_panel, False, False, 0) render_panel.pack_start(encoding_panel, False, False, 0) render_panel.pack_start(gtk.Label(), True, True, 0) return render_panel
def get_targets_panel(self): self.targets_list = guicomponents.TextTextListView() self.fill_targets_list() self.targets_frame = guiutils.get_named_frame(_("Blender Project Objects"), self.targets_list) vbox = Gtk.VBox(True, 2) vbox.pack_start(self.targets_frame, True, True, 0) return vbox
def get_render_panel_left(render_widgets): small_height = editorstate.screen_size_small_height() file_opts_panel = guiutils.get_named_frame(_("File"), render_widgets.file_panel.vbox, 4) profile_panel = guiutils.get_named_frame(_("Render Profile"), render_widgets.profile_panel.vbox, 4) if small_height == False: encoding_panel = guiutils.get_named_frame(_("Encoding Format"), render_widgets.encoding_panel.vbox, 4) render_type_panel = guiutils.get_named_frame(_("Render Type"), render_widgets.render_type_panel.vbox, 4) render_panel = Gtk.VBox() render_panel.pack_start(file_opts_panel, False, False, 0) if small_height == False: render_panel.pack_start(render_type_panel, False, False, 0) render_panel.pack_start(profile_panel, False, False, 0) if small_height == False: render_panel.pack_start(encoding_panel, False, False, 0) render_panel.pack_start(Gtk.Label(), True, True, 0) return render_panel
def get_top_level_project_info_panel(): project_name_label = Gtk.Label(label=PROJECT().name) name_row = guiutils.get_left_justified_box([project_name_label]) name_panel = guiutils.get_named_frame( _("Project"), name_row, 0, 6, 4, _("A <b>Project</b> contains one or more <b>Sequences</b> of edited media and a collection of media files stored in <b>Bins.</b>" )) profile = PROJECT().profile desc_label = Gtk.Label(label=profile.description()) info_box = guicomponents.get_profile_info_small_box(profile) vbox = Gtk.VBox() vbox.pack_start(guiutils.get_left_justified_box([desc_label]), False, True, 0) vbox.pack_start(info_box, False, True, 0) profile_panel = guiutils.get_named_frame( _("Profile"), vbox, 0, 6, 4, _("<b>Profile</b> determines frame rate per second, image size in pixels and pixel aspect ratio for all <b>Sequences</b> in <b>Project</b> ." )) events_list = ProjectEventListView() events_list.fill_data_model() events_panel = guiutils.get_named_frame(_("Project Events"), events_list, 0) project_info_vbox = Gtk.VBox() project_info_vbox.pack_start(name_panel, False, True, 0) project_info_vbox.pack_start(profile_panel, False, True, 0) guiutils.set_margins(project_info_vbox, 4, 4, 4, 4) widgets.project_name_label = project_name_label widgets.desc_label = desc_label widgets.info_box = info_box widgets.events_list = events_list return project_info_vbox
def _get_factory_profiles_panel(user_profiles_list): # Factory all_profiles_list = guicomponents.ProfileListView( _("Visible").encode('utf-8')) all_profiles_list.fill_data_model(mltprofiles.get_factory_profiles()) hide_selected_button = Gtk.Button(_("Hide Selected")) hidden_profiles_list = guicomponents.ProfileListView( _("Hidden").encode('utf-8')) hidden_profiles_list.fill_data_model(mltprofiles.get_hidden_profiles()) unhide_selected_button = Gtk.Button(_("Unhide Selected")) stop_icon = Gtk.Image.new_from_file(respaths.IMAGE_PATH + "bothways.png") BUTTON_WIDTH = 120 BUTTON_HEIGHT = 28 hide_selected_button.set_size_request(BUTTON_WIDTH, BUTTON_HEIGHT) unhide_selected_button.set_size_request(BUTTON_WIDTH, BUTTON_HEIGHT) # callbacks hide_selected_button.connect( "clicked", lambda w, e: _hide_selected_clicked( all_profiles_list, hidden_profiles_list), None) unhide_selected_button.connect( "clicked", lambda w, e: _unhide_selected_clicked( all_profiles_list, hidden_profiles_list), None) top_hbox = Gtk.HBox(True, 2) top_hbox.pack_start(all_profiles_list, True, True, 0) top_hbox.pack_start(hidden_profiles_list, True, True, 0) bottom_hbox = Gtk.HBox(False, 2) bottom_hbox.pack_start(hide_selected_button, False, False, 0) bottom_hbox.pack_start(Gtk.Label(), True, True, 0) bottom_hbox.pack_start(stop_icon, False, False, 0) bottom_hbox.pack_start(Gtk.Label(), True, True, 0) bottom_hbox.pack_start(unhide_selected_button, False, False, 0) factory_vbox = Gtk.VBox(False, 2) factory_vbox.pack_start(top_hbox, True, True, 0) factory_vbox.pack_start(bottom_hbox, False, False, 0) vbox = Gtk.VBox(True, 2) vbox.pack_start( guiutils.get_named_frame(_("Factory Profiles"), factory_vbox), True, True, 0) return vbox
def get_render_panel_right(render_widgets, render_clicked_cb, to_queue_clicked_cb): opts_panel = guiutils.get_named_frame(_("Render Args"), render_widgets.args_panel.vbox, 4) bin_row = gtk.HBox() bin_row.pack_start(guiutils.get_pad_label(10, 8), False, False, 0) bin_row.pack_start(gtk.Label(_("Open File in Bin:")), False, False, 0) bin_row.pack_start(guiutils.get_pad_label(10, 2), False, False, 0) bin_row.pack_start(render_widgets.args_panel.open_in_bin, False, False, 0) bin_row.pack_start(gtk.Label(), True, True, 0) range_row = gtk.HBox() range_row.pack_start(guiutils.get_pad_label(10, 8), False, False, 0) range_row.pack_start(gtk.Label(_("Render Range:")), False, False, 0) range_row.pack_start(guiutils.get_pad_label(10, 2), False, False, 0) range_row.pack_start(render_widgets.range_cb, True, True, 0) buttons_panel = gtk.HBox() buttons_panel.pack_start(guiutils.get_pad_label(10, 8), False, False, 0) buttons_panel.pack_start(render_widgets.reset_button, False, False, 0) buttons_panel.pack_start(gtk.Label(), True, True, 0) buttons_panel.pack_start(render_widgets.queue_button, False, False, 0) buttons_panel.pack_start(gtk.Label(), True, True, 0) buttons_panel.pack_start(render_widgets.render_button, False, False, 0) render_widgets.queue_button.connect("clicked", to_queue_clicked_cb, None) render_widgets.render_button.connect("clicked", render_clicked_cb, None) render_panel = gtk.VBox() render_panel.pack_start(opts_panel, True, True, 0) render_panel.pack_start(guiutils.get_pad_label(10, 22), False, False, 0) render_panel.pack_start(bin_row, False, False, 0) render_panel.pack_start(range_row, False, False, 0) render_panel.pack_start(guiutils.get_pad_label(10, 12), False, False, 0) render_panel.pack_start(buttons_panel, False, False, 0) return render_panel
def _get_factory_profiles_panel(user_profiles_list): # Factory all_profiles_list = guicomponents.ProfileListView(_("Visible").encode('utf-8')) all_profiles_list.fill_data_model(mltprofiles.get_factory_profiles()) hide_selected_button = gtk.Button(_("Hide Selected")) hidden_profiles_list = guicomponents.ProfileListView(_("Hidden").encode('utf-8')) hidden_profiles_list.fill_data_model(mltprofiles.get_hidden_profiles()) unhide_selected_button = gtk.Button(_("Unhide Selected")) stop_icon = gtk.image_new_from_file(respaths.IMAGE_PATH + "bothways.png") BUTTON_WIDTH = 120 BUTTON_HEIGHT = 28 hide_selected_button.set_size_request(BUTTON_WIDTH, BUTTON_HEIGHT) unhide_selected_button.set_size_request(BUTTON_WIDTH, BUTTON_HEIGHT) # callbacks hide_selected_button.connect("clicked",lambda w,e: _hide_selected_clicked(all_profiles_list, hidden_profiles_list), None) unhide_selected_button.connect("clicked",lambda w,e: _unhide_selected_clicked(all_profiles_list, hidden_profiles_list), None) top_hbox = gtk.HBox(True, 2) top_hbox.pack_start(all_profiles_list, True, True, 0) top_hbox.pack_start(hidden_profiles_list, True, True, 0) bottom_hbox = gtk.HBox(False, 2) bottom_hbox.pack_start(hide_selected_button, False, False, 0) bottom_hbox.pack_start(gtk.Label(), True, True, 0) bottom_hbox.pack_start(stop_icon, False, False, 0) bottom_hbox.pack_start(gtk.Label(), True, True, 0) bottom_hbox.pack_start(unhide_selected_button, False, False, 0) factory_vbox = gtk.VBox(False, 2) factory_vbox.pack_start(top_hbox, True, True, 0) factory_vbox.pack_start(bottom_hbox, False, False, 0) vbox = gtk.VBox(True, 2) vbox.pack_start(guiutils.get_named_frame(_("Factory Profiles"), factory_vbox), True, True, 0) return vbox
def show_blender_container_clip_program_editor(callback, blender_objects): # Create panels for objects panels = [] editors = [] for obj in blender_objects: # object is [name, type, editors_list] see blenderprojectinit.py editors_data_list = obj[2] editors_panel = Gtk.VBox(True, 2) for editor_data in editors_data_list: prop_path, label_text, tooltip, editor_type, value = editor_data editor_type = int(editor_type) editor = get_editor(editor_type, (obj[0], prop_path), label_text, value, tooltip) editor.blender_editor_data = editor_data # We need this the later to apply the changes. editors.append(editor) editors_panel.pack_start(editor, False, False, 0) if len(editors_data_list) > 0: panel = guiutils.get_named_frame(obj[0] + " - " + obj[1], editors_panel) panels.append(panel) # Create and show dialog dialog = Gtk.Dialog(_("Blender Project Edit"), gui.editor_window.window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel"), Gtk.ResponseType.REJECT, _("Save Changes"), Gtk.ResponseType.ACCEPT)) pane = Gtk.VBox(False, 2) for panel in panels: pane.pack_start(panel, False, False, 0) alignment = dialogutils.get_default_alignment(pane) dialogutils.set_outer_margins(dialog.vbox) dialog.vbox.pack_start(alignment, True, True, 0) dialog.set_default_response(Gtk.ResponseType.REJECT) dialog.set_resizable(False) dialog.connect('response', callback, editors) dialog.show_all()
def __init__(self): self.dialog = gtk.Dialog(_("JACK Audio Manager"), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("Close").encode('utf-8'), gtk.RESPONSE_CLOSE)) start_up_label = gtk.Label(_("Start JACK output on application start-up")) self.startup_check_button = gtk.CheckButton() if editorpersistance.prefs.jack_start_up_op == appconsts.JACK_ON_START_UP_YES: self.startup_check_button.set_active(True) self.startup_check_button.connect("toggled", lambda w,e: start_op_changed(w), None) start_row = guiutils.get_checkbox_row_box(self.startup_check_button, start_up_label) self.frequency_select = gtk.combo_box_new_text() cur_value_index = 0 count = 0 for freq in _jack_frequencies: self.frequency_select.append_text(str(freq)) if freq == editorpersistance.prefs.jack_frequency: cur_value_index = count count = count + 1 self.frequency_select.set_active(cur_value_index) self.frequency_select.connect("changed", lambda w,e: frequency_changed(w.get_active()), None) freq_row = guiutils.get_two_column_box_right_pad(gtk.Label("JACK frequency Hz:"), self.frequency_select, 190, 15) self.output_type_select = gtk.combo_box_new_text() self.output_type_select.append_text(_("Audio")) self.output_type_select.append_text(_("Sync Master Timecode")) # Indexes correspond with appconsts.JACK_OUT_AUDIO, appconsts.JACK_OUT_SYNC values self.output_type_select.set_active(editorpersistance.prefs.jack_output_type) self.output_type_select.connect("changed", lambda w,e: output_type_changed(w.get_active()), None) output_row = guiutils.get_two_column_box_right_pad(gtk.Label("JACK output type:"), self.output_type_select, 190, 15) vbox_props = gtk.VBox(False, 2) vbox_props.pack_start(freq_row, False, False, 0) vbox_props.pack_start(output_row, False, False, 0) vbox_props.pack_start(start_row, False, False, 0) vbox_props.pack_start(guiutils.pad_label(8, 12), False, False, 0) props_frame = guiutils.get_named_frame(_("Properties"), vbox_props) self.jack_output_status_value = gtk.Label("<b>OFF</b>") self.jack_output_status_value.set_use_markup(True) self.jack_output_status_label = gtk.Label("JACK output is ") status_row = guiutils.get_centered_box([self.jack_output_status_label, self.jack_output_status_value]) self.dont_use_button = gtk.Button(_("Stop JACK Output")) self.use_button = gtk.Button(_("Start JACK Output")) self.use_button.connect("clicked", lambda w: use_jack_clicked(self)) self.dont_use_button.connect("clicked", lambda w: _convert_to_original_media_project()) self.set_gui_state() c_box_2 = gtk.HBox(True, 8) c_box_2.pack_start(self.dont_use_button, True, True, 0) c_box_2.pack_start(self.use_button, True, True, 0) row2_onoff = gtk.HBox(False, 2) row2_onoff.pack_start(gtk.Label(), True, True, 0) row2_onoff.pack_start(c_box_2, False, False, 0) row2_onoff.pack_start(gtk.Label(), True, True, 0) vbox_onoff = gtk.VBox(False, 2) vbox_onoff.pack_start(guiutils.pad_label(12, 4), False, False, 0) vbox_onoff.pack_start(status_row, False, False, 0) vbox_onoff.pack_start(guiutils.pad_label(12, 12), False, False, 0) vbox_onoff.pack_start(row2_onoff, False, False, 0) onoff_frame = guiutils.get_named_frame(_("Output Status"), vbox_onoff) # Pane vbox = gtk.VBox(False, 2) vbox.pack_start(props_frame, False, False, 0) vbox.pack_start(onoff_frame, False, False, 0) alignment = gtk.Alignment(0.5, 0.5, 1.0, 1.0) alignment.set_padding(12, 12, 12, 12) alignment.add(vbox) self.dialog.vbox.pack_start(alignment, True, True, 0) dialogutils.default_behaviour(self.dialog) self.dialog.connect('response', dialogutils.dialog_destroy) self.dialog.show_all() global _dialog _dialog = self
def __init__(self): self.dialog = Gtk.Dialog( _("JACK Audio Manager"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Close").encode('utf-8'), Gtk.ResponseType.CLOSE)) start_up_label = Gtk.Label( label=_("Start JACK output on application start-up")) self.startup_check_button = Gtk.CheckButton() if editorpersistance.prefs.jack_start_up_op == appconsts.JACK_ON_START_UP_YES: self.startup_check_button.set_active(True) self.startup_check_button.connect("toggled", lambda w, e: start_op_changed(w), None) start_row = guiutils.get_checkbox_row_box(self.startup_check_button, start_up_label) self.frequency_select = Gtk.ComboBoxText() cur_value_index = 0 count = 0 for freq in _jack_frequencies: self.frequency_select.append_text(str(freq)) if freq == editorpersistance.prefs.jack_frequency: cur_value_index = count count = count + 1 self.frequency_select.set_active(cur_value_index) self.frequency_select.connect( "changed", lambda w, e: frequency_changed(w.get_active()), None) freq_row = guiutils.get_two_column_box_right_pad( Gtk.Label(label="JACK frequency Hz:"), self.frequency_select, 190, 15) self.output_type_select = Gtk.ComboBoxText() self.output_type_select.append_text(_("Audio")) self.output_type_select.append_text(_("Sync Master Timecode")) # Indexes correspond with appconsts.JACK_OUT_AUDIO, appconsts.JACK_OUT_SYNC values self.output_type_select.set_active( editorpersistance.prefs.jack_output_type) self.output_type_select.connect( "changed", lambda w, e: output_type_changed(w.get_active()), None) output_row = guiutils.get_two_column_box_right_pad( Gtk.Label(label="JACK output type:"), self.output_type_select, 190, 15) vbox_props = Gtk.VBox(False, 2) vbox_props.pack_start(freq_row, False, False, 0) vbox_props.pack_start(output_row, False, False, 0) vbox_props.pack_start(start_row, False, False, 0) vbox_props.pack_start(guiutils.pad_label(8, 12), False, False, 0) props_frame = guiutils.get_named_frame(_("Properties"), vbox_props) self.jack_output_status_value = Gtk.Label(label="<b>OFF</b>") self.jack_output_status_value.set_use_markup(True) self.jack_output_status_label = Gtk.Label(label="JACK output is ") status_row = guiutils.get_centered_box( [self.jack_output_status_label, self.jack_output_status_value]) self.dont_use_button = Gtk.Button(_("Stop JACK Output")) self.use_button = Gtk.Button(_("Start JACK Output")) self.use_button.connect("clicked", lambda w: use_jack_clicked(self)) self.dont_use_button.connect( "clicked", lambda w: _convert_to_original_media_project()) self.set_gui_state() c_box_2 = Gtk.HBox(True, 8) c_box_2.pack_start(self.dont_use_button, True, True, 0) c_box_2.pack_start(self.use_button, True, True, 0) row2_onoff = Gtk.HBox(False, 2) row2_onoff.pack_start(Gtk.Label(), True, True, 0) row2_onoff.pack_start(c_box_2, False, False, 0) row2_onoff.pack_start(Gtk.Label(), True, True, 0) vbox_onoff = Gtk.VBox(False, 2) vbox_onoff.pack_start(guiutils.pad_label(12, 4), False, False, 0) vbox_onoff.pack_start(status_row, False, False, 0) vbox_onoff.pack_start(guiutils.pad_label(12, 12), False, False, 0) vbox_onoff.pack_start(row2_onoff, False, False, 0) onoff_frame = guiutils.get_named_frame(_("Output Status"), vbox_onoff) # Pane vbox = Gtk.VBox(False, 2) vbox.pack_start(props_frame, False, False, 0) vbox.pack_start(onoff_frame, False, False, 0) alignment = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) alignment.set_padding(12, 12, 12, 12) alignment.add(vbox) self.dialog.vbox.pack_start(alignment, True, True, 0) dialogutils.default_behaviour(self.dialog) self.dialog.connect('response', dialogutils.dialog_destroy) self.dialog.show_all() global _dialog _dialog = self
def __init__(self): self.dialog = Gtk.Dialog( _("Proxy Manager"), gui.editor_window.window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Close Manager").encode('utf-8'), Gtk.ResponseType.CLOSE)) # Encoding self.enc_select = Gtk.ComboBoxText() encodings = renderconsumer.proxy_encodings if len( encodings ) < 1: # no encoding options available, system does not have right codecs # display info pass for encoption in encodings: self.enc_select.append_text(encoption.name) current_enc = editorstate.PROJECT().proxy_data.encoding if current_enc >= len( encodings): # current encoding selection not available current_enc = 0 editorstate.PROJECT().proxy_data.encoding = 0 self.enc_select.set_active(current_enc) self.enc_select.connect( "changed", lambda w, e: self.encoding_changed(w.get_active()), None) self.size_select = Gtk.ComboBoxText() self.size_select.append_text(_("Project Image Size")) self.size_select.append_text(_("Half Project Image Size")) self.size_select.append_text(_("Quarter Project Image Size")) self.size_select.set_active(editorstate.PROJECT().proxy_data.size) self.size_select.connect( "changed", lambda w, e: self.size_changed(w.get_active()), None) row_enc = Gtk.HBox(False, 2) row_enc.pack_start(Gtk.Label(), True, True, 0) row_enc.pack_start(self.enc_select, False, False, 0) row_enc.pack_start(self.size_select, False, False, 0) row_enc.pack_start(Gtk.Label(), True, True, 0) vbox_enc = Gtk.VBox(False, 2) vbox_enc.pack_start(row_enc, False, False, 0) vbox_enc.pack_start(guiutils.pad_label(8, 12), False, False, 0) panel_encoding = guiutils.get_named_frame(_("Proxy Encoding"), vbox_enc) # Mode media_files = editorstate.PROJECT().media_files video_files = 0 proxy_files = 0 for k, media_file in media_files.iteritems(): if media_file.type == appconsts.VIDEO: video_files = video_files + 1 if media_file.has_proxy_file == True or media_file.is_proxy_file == True: proxy_files = proxy_files + 1 proxy_status_label = Gtk.Label(label=_("Proxy Stats:")) proxy_status_value = Gtk.Label(label=str(proxy_files) + _(" proxy file(s) for ") + str(video_files) + _(" video file(s)")) row_proxy_status = guiutils.get_two_column_box_right_pad( proxy_status_label, proxy_status_value, 150, 150) proxy_mode_label = Gtk.Label(label=_("Current Proxy Mode:")) self.proxy_mode_value = Gtk.Label() self.set_mode_display_value() row_proxy_mode = guiutils.get_two_column_box_right_pad( proxy_mode_label, self.proxy_mode_value, 150, 150) self.convert_progress_bar = Gtk.ProgressBar() self.convert_progress_bar.set_text(_("Press Button to Change Mode")) self.use_button = Gtk.Button(_("Use Proxy Media")) self.dont_use_button = Gtk.Button(_("Use Original Media")) self.set_convert_buttons_state() self.use_button.connect("clicked", lambda w: _convert_to_proxy_project()) self.dont_use_button.connect( "clicked", lambda w: _convert_to_original_media_project()) c_box_2 = Gtk.HBox(True, 8) c_box_2.pack_start(self.use_button, True, True, 0) c_box_2.pack_start(self.dont_use_button, True, True, 0) row2_onoff = Gtk.HBox(False, 2) row2_onoff.pack_start(Gtk.Label(), True, True, 0) row2_onoff.pack_start(c_box_2, False, False, 0) row2_onoff.pack_start(Gtk.Label(), True, True, 0) vbox_onoff = Gtk.VBox(False, 2) vbox_onoff.pack_start(row_proxy_status, False, False, 0) vbox_onoff.pack_start(row_proxy_mode, False, False, 0) vbox_onoff.pack_start(guiutils.pad_label(12, 12), False, False, 0) vbox_onoff.pack_start(self.convert_progress_bar, False, False, 0) vbox_onoff.pack_start(row2_onoff, False, False, 0) panel_onoff = guiutils.get_named_frame(_("Project Proxy Mode"), vbox_onoff) # Pane vbox = Gtk.VBox(False, 2) vbox.pack_start(panel_encoding, False, False, 0) vbox.pack_start(panel_onoff, False, False, 0) guiutils.set_margins(vbox, 8, 12, 12, 12) self.dialog.vbox.pack_start(vbox, True, True, 0) dialogutils.set_outer_margins(self.dialog.vbox) self.dialog.connect('response', dialogutils.dialog_destroy) self.dialog.show_all()
def __init__(self): GObject.GObject.__init__(self) self.set_title(_("Titler")) self.connect("delete-event", lambda w, e:close_titler()) if editorstate.screen_size_small_height() == True: global TEXT_LAYER_LIST_HEIGHT, TEXT_VIEW_HEIGHT, VIEW_EDITOR_HEIGHT TEXT_LAYER_LIST_HEIGHT = 150 TEXT_VIEW_HEIGHT = 180 VIEW_EDITOR_HEIGHT = 450 if editorstate.screen_size_small_height() == True: global VIEW_EDITOR_WIDTH VIEW_EDITOR_WIDTH = 680 self.block_updates = False self.view_editor = vieweditor.ViewEditor(PLAYER().profile, VIEW_EDITOR_WIDTH, VIEW_EDITOR_HEIGHT) self.view_editor.active_layer_changed_listener = self.active_layer_changed self.guides_toggle = vieweditor.GuidesViewToggle(self.view_editor) add_b = Gtk.Button(_("Add")) del_b = Gtk.Button(_("Delete")) add_b.connect("clicked", lambda w:self._add_layer_pressed()) del_b.connect("clicked", lambda w:self._del_layer_pressed()) add_del_box = Gtk.HBox() add_del_box = Gtk.HBox(True,1) add_del_box.pack_start(add_b, True, True, 0) add_del_box.pack_start(del_b, True, True, 0) center_h_icon = Gtk.Image.new_from_file(respaths.IMAGE_PATH + "center_horizontal.png") center_v_icon = Gtk.Image.new_from_file(respaths.IMAGE_PATH + "center_vertical.png") center_h = Gtk.Button() center_h.set_image(center_h_icon) center_h.connect("clicked", lambda w:self._center_h_pressed()) center_v = Gtk.Button() center_v.set_image(center_v_icon) center_v.connect("clicked", lambda w:self._center_v_pressed()) self.layer_list = TextLayerListView(self._layer_selection_changed, self._layer_visibility_toggled) self.layer_list.set_size_request(TEXT_LAYER_LIST_WIDTH, TEXT_LAYER_LIST_HEIGHT) self.text_view = Gtk.TextView() self.text_view.set_pixels_above_lines(2) self.text_view.set_left_margin(2) self.text_view.get_buffer().connect("changed", self._text_changed) self.sw = Gtk.ScrolledWindow() self.sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.ALWAYS) self.sw.add(self.text_view) self.sw.set_size_request(TEXT_VIEW_WIDTH, TEXT_VIEW_HEIGHT) scroll_frame = Gtk.Frame() scroll_frame.add(self.sw) self.tc_display = guicomponents.MonitorTCDisplay() self.tc_display.use_internal_frame = True self.tc_display.widget.set_valign(Gtk.Align.CENTER) self.pos_bar = positionbar.PositionBar() self.pos_bar.set_listener(self.position_listener) self.pos_bar.update_display_from_producer(PLAYER().producer) self.pos_bar.mouse_release_listener = self.pos_bar_mouse_released pos_bar_frame = Gtk.Frame() pos_bar_frame.add(self.pos_bar.widget) pos_bar_frame.set_shadow_type(Gtk.ShadowType.ETCHED_IN) pos_bar_frame.set_valign(Gtk.Align.CENTER) font_map = PangoCairo.font_map_get_default() unsorted_families = font_map.list_families() if len(unsorted_families) == 0: print "No font families found in system! Titler will not work." self.font_families = sorted(unsorted_families, key=lambda family: family.get_name()) self.font_family_indexes_for_name = {} combo = Gtk.ComboBoxText() indx = 0 for family in self.font_families: combo.append_text(family.get_name()) self.font_family_indexes_for_name[family.get_name()] = indx indx += 1 combo.set_active(0) self.font_select = combo self.font_select.connect("changed", self._edit_value_changed) adj = Gtk.Adjustment(float(DEFAULT_FONT_SIZE), float(1), float(300), float(1)) self.size_spin = Gtk.SpinButton() self.size_spin.set_adjustment(adj) self.size_spin.connect("changed", self._edit_value_changed) self.size_spin.connect("key-press-event", self._key_pressed_on_widget) font_main_row = Gtk.HBox() font_main_row.pack_start(self.font_select, True, True, 0) font_main_row.pack_start(guiutils.pad_label(5, 5), False, False, 0) font_main_row.pack_start(self.size_spin, False, False, 0) self.bold_font = Gtk.ToggleButton() self.italic_font = Gtk.ToggleButton() bold_icon = Gtk.Image.new_from_stock(Gtk.STOCK_BOLD, Gtk.IconSize.BUTTON) italic_icon = Gtk.Image.new_from_stock(Gtk.STOCK_ITALIC, Gtk.IconSize.BUTTON) self.bold_font.set_image(bold_icon) self.italic_font.set_image(italic_icon) self.bold_font.connect("clicked", self._edit_value_changed) self.italic_font.connect("clicked", self._edit_value_changed) self.left_align = Gtk.RadioButton(None) self.center_align = Gtk.RadioButton.new_from_widget(self.left_align) self.right_align = Gtk.RadioButton.new_from_widget(self.left_align) left_icon = Gtk.Image.new_from_stock(Gtk.STOCK_JUSTIFY_LEFT, Gtk.IconSize.BUTTON) center_icon = Gtk.Image.new_from_stock(Gtk.STOCK_JUSTIFY_CENTER, Gtk.IconSize.BUTTON) right_icon = Gtk.Image.new_from_stock(Gtk.STOCK_JUSTIFY_RIGHT, Gtk.IconSize.BUTTON) self.left_align.set_image(left_icon) self.center_align.set_image(center_icon) self.right_align.set_image(right_icon) self.left_align.set_mode(False) self.center_align.set_mode(False) self.right_align.set_mode(False) self.left_align.connect("clicked", self._edit_value_changed) self.center_align.connect("clicked", self._edit_value_changed) self.right_align.connect("clicked", self._edit_value_changed) self.color_button = Gtk.ColorButton.new_with_rgba(Gdk.RGBA(red=1.0, green=1.0, blue=1.0, alpha=1.0)) self.color_button.connect("color-set", self._edit_value_changed) buttons_box = Gtk.HBox() buttons_box.pack_start(Gtk.Label(), True, True, 0) buttons_box.pack_start(self.bold_font, False, False, 0) buttons_box.pack_start(self.italic_font, False, False, 0) buttons_box.pack_start(guiutils.pad_label(5, 5), False, False, 0) buttons_box.pack_start(self.left_align, False, False, 0) buttons_box.pack_start(self.center_align, False, False, 0) buttons_box.pack_start(self.right_align, False, False, 0) buttons_box.pack_start(guiutils.pad_label(5, 5), False, False, 0) buttons_box.pack_start(self.color_button, False, False, 0) buttons_box.pack_start(Gtk.Label(), True, True, 0) load_layers = Gtk.Button(_("Load Layers")) load_layers.connect("clicked", lambda w:self._load_layers_pressed()) save_layers = Gtk.Button(_("Save Layers")) save_layers.connect("clicked", lambda w:self._save_layers_pressed()) clear_layers = Gtk.Button(_("Clear All")) clear_layers.connect("clicked", lambda w:self._clear_layers_pressed()) layers_save_buttons_row = Gtk.HBox() layers_save_buttons_row.pack_start(save_layers, False, False, 0) layers_save_buttons_row.pack_start(load_layers, False, False, 0) layers_save_buttons_row.pack_start(Gtk.Label(), True, True, 0) adj = Gtk.Adjustment(float(0), float(0), float(3000), float(1)) self.x_pos_spin = Gtk.SpinButton() self.x_pos_spin.set_adjustment(adj) self.x_pos_spin.connect("changed", self._position_value_changed) self.x_pos_spin.connect("key-press-event", self._key_pressed_on_widget) adj = Gtk.Adjustment(float(0), float(0), float(3000), float(1)) self.y_pos_spin = Gtk.SpinButton() self.y_pos_spin.set_adjustment(adj) self.y_pos_spin.connect("changed", self._position_value_changed) self.y_pos_spin.connect("key-press-event", self._key_pressed_on_widget) adj = Gtk.Adjustment(float(0), float(0), float(3000), float(1)) self.rotation_spin = Gtk.SpinButton() self.rotation_spin.set_adjustment(adj) self.rotation_spin.connect("changed", self._position_value_changed) self.rotation_spin.connect("key-press-event", self._key_pressed_on_widget) undo_pos = Gtk.Button() undo_icon = Gtk.Image.new_from_stock(Gtk.STOCK_UNDO, Gtk.IconSize.BUTTON) undo_pos.set_image(undo_icon) next_icon = Gtk.Image.new_from_file(respaths.IMAGE_PATH + "next_frame_s.png") prev_icon = Gtk.Image.new_from_file(respaths.IMAGE_PATH + "prev_frame_s.png") prev_frame = Gtk.Button() prev_frame.set_image(prev_icon) prev_frame.connect("clicked", lambda w:self._prev_frame_pressed()) next_frame = Gtk.Button() next_frame.set_image(next_icon) next_frame.connect("clicked", lambda w:self._next_frame_pressed()) self.scale_selector = vieweditor.ScaleSelector(self) timeline_box = Gtk.HBox() timeline_box.pack_start(self.tc_display.widget, False, False, 0) timeline_box.pack_start(guiutils.pad_label(12, 12), False, False, 0) timeline_box.pack_start(pos_bar_frame, True, True, 0) timeline_box.pack_start(guiutils.pad_label(12, 12), False, False, 0) timeline_box.pack_start(prev_frame, False, False, 0) timeline_box.pack_start(next_frame, False, False, 0) timeline_box.pack_start(self.guides_toggle, False, False, 0) timeline_box.pack_start(self.scale_selector, False, False, 0) timeline_box.set_margin_top(6) timeline_box.set_margin_bottom(6) positions_box = Gtk.HBox() positions_box.pack_start(Gtk.Label(), True, True, 0) positions_box.pack_start(Gtk.Label(label="X:"), False, False, 0) positions_box.pack_start(self.x_pos_spin, False, False, 0) positions_box.pack_start(guiutils.pad_label(40, 5), False, False, 0) positions_box.pack_start(Gtk.Label(label="Y:"), False, False, 0) positions_box.pack_start(self.y_pos_spin, False, False, 0) #positions_box.pack_start(Gtk.Label(label=_("Angle")), False, False, 0) #positions_box.pack_start(self.rotation_spin, False, False, 0) positions_box.pack_start(guiutils.pad_label(40, 5), False, False, 0) positions_box.pack_start(center_h, False, False, 0) positions_box.pack_start(center_v, False, False, 0) positions_box.pack_start(Gtk.Label(), True, True, 0) controls_panel_1 = Gtk.VBox() controls_panel_1.pack_start(add_del_box, False, False, 0) controls_panel_1.pack_start(self.layer_list, False, False, 0) controls_panel_1.pack_start(layers_save_buttons_row, False, False, 0) controls_panel_2 = Gtk.VBox() controls_panel_2.pack_start(scroll_frame, True, True, 0) controls_panel_2.pack_start(font_main_row, False, False, 0) controls_panel_2.pack_start(buttons_box, False, False, 0) controls_panel = Gtk.VBox() controls_panel.pack_start(guiutils.get_named_frame(_("Active Layer"),controls_panel_2), True, True, 0) controls_panel.pack_start(guiutils.get_named_frame(_("Layers"),controls_panel_1), False, False, 0) view_editor_editor_buttons_row = Gtk.HBox() view_editor_editor_buttons_row.pack_start(positions_box, False, False, 0) view_editor_editor_buttons_row.pack_start(Gtk.Label(), True, True, 0) keep_label = Gtk.Label(label=_("Keep Layers When Closed")) self.keep_layers_check = Gtk.CheckButton() self.keep_layers_check.set_active(_keep_titler_data) self.keep_layers_check.connect("toggled", self._keep_layers_toggled) open_label = Gtk.Label(label=_("Open Saved Title In Bin")) self.open_in_current_check = Gtk.CheckButton() self.open_in_current_check.set_active(_open_saved_in_bin) self.open_in_current_check.connect("toggled", self._open_saved_in_bin) exit_b = guiutils.get_sized_button(_("Close"), 150, 32) exit_b.connect("clicked", lambda w:close_titler()) save_titles_b = guiutils.get_sized_button(_("Save Title Graphic"), 150, 32) save_titles_b.connect("clicked", lambda w:self._save_title_pressed()) editor_buttons_row = Gtk.HBox() editor_buttons_row.pack_start(Gtk.Label(), True, True, 0) editor_buttons_row.pack_start(keep_label, False, False, 0) editor_buttons_row.pack_start(self.keep_layers_check, False, False, 0) editor_buttons_row.pack_start(guiutils.pad_label(24, 2), False, False, 0) editor_buttons_row.pack_start(open_label, False, False, 0) editor_buttons_row.pack_start(self.open_in_current_check, False, False, 0) editor_buttons_row.pack_start(guiutils.pad_label(24, 2), False, False, 0) editor_buttons_row.pack_start(exit_b, False, False, 0) editor_buttons_row.pack_start(save_titles_b, False, False, 0) editor_panel = Gtk.VBox() editor_panel.pack_start(self.view_editor, True, True, 0) editor_panel.pack_start(timeline_box, False, False, 0) editor_panel.pack_start(guiutils.get_in_centering_alignment(view_editor_editor_buttons_row), False, False, 0) editor_panel.pack_start(guiutils.pad_label(2, 24), True, True, 0) editor_panel.pack_start(editor_buttons_row, False, False, 0) editor_row = Gtk.HBox() editor_row.pack_start(controls_panel, False, False, 0) editor_row.pack_start(editor_panel, True, True, 0) alignment = guiutils.set_margins(editor_row, 8,8,8,8) self.add(alignment) self.layer_list.fill_data_model() self._update_gui_with_active_layer_data() self.show_all() self.connect("size-allocate", lambda w, e:self.window_resized()) self.connect("window-state-event", lambda w, e:self.window_resized())
def __init__(self): self.dialog = gtk.Dialog(_("Proxy Manager"), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("Close Manager").encode('utf-8'), gtk.RESPONSE_CLOSE)) # Encoding self.enc_select = gtk.combo_box_new_text() encodings = renderconsumer.proxy_encodings if len(encodings) < 1: # no encoding options available, system does not have right codecs # display info pass for encoption in encodings: self.enc_select.append_text(encoption.name) current_enc = editorstate.PROJECT().proxy_data.encoding if current_enc >= len(encodings): # current encoding selection not available current_enc = 0 editorstate.PROJECT().proxy_data.encoding = 0 self.enc_select.set_active(current_enc) self.enc_select.connect("changed", lambda w,e: self.encoding_changed(w.get_active()), None) self.size_select = gtk.combo_box_new_text() self.size_select.append_text(_("Project Image Size")) self.size_select.append_text(_("Half Project Image Size")) self.size_select.append_text(_("Quarter Project Image Size")) self.size_select.set_active(editorstate.PROJECT().proxy_data.size) self.size_select.connect("changed", lambda w,e: self.size_changed(w.get_active()), None) row_enc = gtk.HBox(False, 2) row_enc.pack_start(gtk.Label(), True, True, 0) row_enc.pack_start(self.enc_select, False, False, 0) row_enc.pack_start(self.size_select, False, False, 0) row_enc.pack_start(gtk.Label(), True, True, 0) vbox_enc = gtk.VBox(False, 2) vbox_enc.pack_start(row_enc, False, False, 0) vbox_enc.pack_start(guiutils.pad_label(8, 12), False, False, 0) panel_encoding = guiutils.get_named_frame(_("Proxy Encoding"), vbox_enc) # Mode media_files = editorstate.PROJECT().media_files video_files = 0 proxy_files = 0 for k, media_file in media_files.iteritems(): if media_file.type == appconsts.VIDEO: video_files = video_files + 1 if media_file.has_proxy_file == True or media_file.is_proxy_file == True: proxy_files = proxy_files + 1 proxy_status_label = gtk.Label(_("Proxy Stats:")) proxy_status_value = gtk.Label(str(proxy_files) + _(" proxy file(s) for ") + str(video_files) + _(" video file(s)")) row_proxy_status = guiutils.get_two_column_box_right_pad(proxy_status_label, proxy_status_value, 150, 150) proxy_mode_label = gtk.Label(_("Current Proxy Mode:")) self.proxy_mode_value = gtk.Label() self.set_mode_display_value() row_proxy_mode = guiutils.get_two_column_box_right_pad(proxy_mode_label, self.proxy_mode_value, 150, 150) self.convert_progress_bar = gtk.ProgressBar() self.convert_progress_bar.set_text(_("Press Button to Change Mode")) self.use_button = gtk.Button(_("Use Proxy Media")) self.dont_use_button = gtk.Button(_("Use Original Media")) self.set_convert_buttons_state() self.use_button.connect("clicked", lambda w: _convert_to_proxy_project()) self.dont_use_button.connect("clicked", lambda w: _convert_to_original_media_project()) c_box_2 = gtk.HBox(True, 8) c_box_2.pack_start(self.use_button, True, True, 0) c_box_2.pack_start(self.dont_use_button, True, True, 0) row2_onoff = gtk.HBox(False, 2) row2_onoff.pack_start(gtk.Label(), True, True, 0) row2_onoff.pack_start(c_box_2, False, False, 0) row2_onoff.pack_start(gtk.Label(), True, True, 0) vbox_onoff = gtk.VBox(False, 2) vbox_onoff.pack_start(row_proxy_status, False, False, 0) vbox_onoff.pack_start(row_proxy_mode, False, False, 0) vbox_onoff.pack_start(guiutils.pad_label(12, 12), False, False, 0) vbox_onoff.pack_start(self.convert_progress_bar, False, False, 0) vbox_onoff.pack_start(row2_onoff, False, False, 0) panel_onoff = guiutils.get_named_frame(_("Project Proxy Mode"), vbox_onoff) # Pane vbox = gtk.VBox(False, 2) vbox.pack_start(panel_encoding, False, False, 0) vbox.pack_start(panel_onoff, False, False, 0) alignment = gtk.Alignment(0.5, 0.5, 1.0, 1.0) alignment.set_padding(12, 12, 12, 12) alignment.add(vbox) self.dialog.vbox.pack_start(alignment, True, True, 0) dialogutils.default_behaviour(self.dialog) self.dialog.connect('response', dialogutils.dialog_destroy) self.dialog.show_all()
def __init__(self, callback, clip, container_action, program_info_json): GObject.GObject.__init__(self) self.connect("delete-event", lambda w, e: self.cancel()) self.callback = callback self.clip = clip self.container_action = container_action self.orig_program_info_json = copy.deepcopy( program_info_json ) # We need to sabvre this for 'Cancel'because doing a preview updates edited values # in containeractions.BlenderContainerActions.render_blender_preview(). self.preview_frame = -1 # -1 used as flag that no preview renders ongoing and new one can be started # Create panels for objects editors = [] blender_objects = program_info_json["objects"] materials = program_info_json["materials"] curves = program_info_json["curves"] self.editors = editors objs_panel = _get_panel_and_create_editors(blender_objects, _("Objects"), editors) materials_panel = _get_panel_and_create_editors( materials, _("Materials"), editors) curves_panel = _get_panel_and_create_editors(curves, _("Curves"), editors) pane = Gtk.VBox(False, 2) if objs_panel != None: pane.pack_start(objs_panel, False, False, 0) if materials_panel != None: pane.pack_start(materials_panel, False, False, 0) if curves_panel != None: pane.pack_start(curves_panel, False, False, 0) # Put in scrollpane if too many editors for screensize. n_editors = len(editors) add_scroll = False if editorstate.screen_size_small_height() == True and n_editors > 4: add_scroll = True h = 500 elif editorstate.screen_size_small_height( ) == True and editorstate.screen_size_large_height( ) == False and n_editors > 5: add_scroll = True h = 600 elif editorstate.screen_size_large_height() == True and n_editors > 6: add_scroll = True h = 700 if add_scroll == True: sw = Gtk.ScrolledWindow() sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) sw.add(pane) sw.set_size_request(400, h) if add_scroll == True: editors_panel = sw else: editors_panel = pane cancel_b = guiutils.get_sized_button(_("Cancel"), 150, 32) cancel_b.connect("clicked", lambda w: self.cancel()) save_b = guiutils.get_sized_button(_("Save Changes"), 150, 32) save_b.connect("clicked", lambda w: self.save()) buttons_box = Gtk.HBox(False, 2) buttons_box.pack_start(Gtk.Label(), True, True, 0) buttons_box.pack_start(cancel_b, False, False, 0) buttons_box.pack_start(save_b, False, False, 0) self.preview_panel = PreviewPanel(self, clip) preview_box = Gtk.VBox(False, 2) preview_box.pack_start(self.preview_panel, True, True, 0) preview_box.pack_start(guiutils.pad_label(2, 24), False, False, 0) preview_box.pack_start(buttons_box, False, False, 0) main_box = Gtk.HBox(False, 2) main_box.pack_start( guiutils.get_named_frame(_("Editors"), editors_panel), False, False, 0) main_box.pack_start( guiutils.get_named_frame(_("Preview"), preview_box), False, False, 0) alignment = guiutils.set_margins( main_box, 8, 8, 8, 8) #dialogutils.get_default_alignment(main_box) self.set_modal(True) self.set_transient_for(gui.editor_window.window) self.set_position(Gtk.WindowPosition.CENTER) self.set_title( _("Blender Project Edit - ") + self.container_action.container_data.get_program_name() + ".blend") self.set_resizable(False) self.add(alignment) self.show_all()
def __init__(self): GObject.GObject.__init__(self) self.set_title(_("Titler")) self.connect("delete-event", lambda w, e: close_titler()) if editorstate.screen_size_small_height() == True: global TEXT_LAYER_LIST_HEIGHT, TEXT_VIEW_HEIGHT, VIEW_EDITOR_HEIGHT TEXT_LAYER_LIST_HEIGHT = 150 TEXT_VIEW_HEIGHT = 180 VIEW_EDITOR_HEIGHT = 450 if editorstate.screen_size_small_height() == True: global VIEW_EDITOR_WIDTH VIEW_EDITOR_WIDTH = 680 self.block_updates = False self.view_editor = vieweditor.ViewEditor(PLAYER().profile, VIEW_EDITOR_WIDTH, VIEW_EDITOR_HEIGHT) self.view_editor.active_layer_changed_listener = self.active_layer_changed self.guides_toggle = vieweditor.GuidesViewToggle(self.view_editor) add_b = Gtk.Button(_("Add")) del_b = Gtk.Button(_("Delete")) add_b.connect("clicked", lambda w: self._add_layer_pressed()) del_b.connect("clicked", lambda w: self._del_layer_pressed()) add_del_box = Gtk.HBox() add_del_box = Gtk.HBox(True, 1) add_del_box.pack_start(add_b, True, True, 0) add_del_box.pack_start(del_b, True, True, 0) center_h_icon = Gtk.Image.new_from_file(respaths.IMAGE_PATH + "center_horizontal.png") center_v_icon = Gtk.Image.new_from_file(respaths.IMAGE_PATH + "center_vertical.png") center_h = Gtk.Button() center_h.set_image(center_h_icon) center_h.connect("clicked", lambda w: self._center_h_pressed()) center_v = Gtk.Button() center_v.set_image(center_v_icon) center_v.connect("clicked", lambda w: self._center_v_pressed()) self.layer_list = TextLayerListView(self._layer_selection_changed, self._layer_visibility_toggled) self.layer_list.set_size_request(TEXT_LAYER_LIST_WIDTH, TEXT_LAYER_LIST_HEIGHT) self.text_view = Gtk.TextView() self.text_view.set_pixels_above_lines(2) self.text_view.set_left_margin(2) self.text_view.get_buffer().connect("changed", self._text_changed) self.sw = Gtk.ScrolledWindow() self.sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.ALWAYS) self.sw.add(self.text_view) self.sw.set_size_request(TEXT_VIEW_WIDTH, TEXT_VIEW_HEIGHT) scroll_frame = Gtk.Frame() scroll_frame.add(self.sw) self.tc_display = guicomponents.MonitorTCDisplay() self.tc_display.use_internal_frame = True self.tc_display.widget.set_valign(Gtk.Align.CENTER) self.pos_bar = positionbar.PositionBar() self.pos_bar.set_listener(self.position_listener) self.pos_bar.update_display_from_producer(PLAYER().producer) self.pos_bar.mouse_release_listener = self.pos_bar_mouse_released pos_bar_frame = Gtk.Frame() pos_bar_frame.add(self.pos_bar.widget) pos_bar_frame.set_shadow_type(Gtk.ShadowType.ETCHED_IN) pos_bar_frame.set_valign(Gtk.Align.CENTER) font_map = PangoCairo.font_map_get_default() unsorted_families = font_map.list_families() if len(unsorted_families) == 0: print "No font families found in system! Titler will not work." self.font_families = sorted(unsorted_families, key=lambda family: family.get_name()) self.font_family_indexes_for_name = {} combo = Gtk.ComboBoxText() indx = 0 for family in self.font_families: combo.append_text(family.get_name()) self.font_family_indexes_for_name[family.get_name()] = indx indx += 1 combo.set_active(0) self.font_select = combo self.font_select.connect("changed", self._edit_value_changed) adj = Gtk.Adjustment(float(DEFAULT_FONT_SIZE), float(1), float(300), float(1)) self.size_spin = Gtk.SpinButton() self.size_spin.set_adjustment(adj) self.size_spin.connect("changed", self._edit_value_changed) self.size_spin.connect("key-press-event", self._key_pressed_on_widget) font_main_row = Gtk.HBox() font_main_row.pack_start(self.font_select, True, True, 0) font_main_row.pack_start(guiutils.pad_label(5, 5), False, False, 0) font_main_row.pack_start(self.size_spin, False, False, 0) self.bold_font = Gtk.ToggleButton() self.italic_font = Gtk.ToggleButton() bold_icon = Gtk.Image.new_from_stock(Gtk.STOCK_BOLD, Gtk.IconSize.BUTTON) italic_icon = Gtk.Image.new_from_stock(Gtk.STOCK_ITALIC, Gtk.IconSize.BUTTON) self.bold_font.set_image(bold_icon) self.italic_font.set_image(italic_icon) self.bold_font.connect("clicked", self._edit_value_changed) self.italic_font.connect("clicked", self._edit_value_changed) self.left_align = Gtk.RadioButton(None) self.center_align = Gtk.RadioButton.new_from_widget(self.left_align) self.right_align = Gtk.RadioButton.new_from_widget(self.left_align) left_icon = Gtk.Image.new_from_stock(Gtk.STOCK_JUSTIFY_LEFT, Gtk.IconSize.BUTTON) center_icon = Gtk.Image.new_from_stock(Gtk.STOCK_JUSTIFY_CENTER, Gtk.IconSize.BUTTON) right_icon = Gtk.Image.new_from_stock(Gtk.STOCK_JUSTIFY_RIGHT, Gtk.IconSize.BUTTON) self.left_align.set_image(left_icon) self.center_align.set_image(center_icon) self.right_align.set_image(right_icon) self.left_align.set_mode(False) self.center_align.set_mode(False) self.right_align.set_mode(False) self.left_align.connect("clicked", self._edit_value_changed) self.center_align.connect("clicked", self._edit_value_changed) self.right_align.connect("clicked", self._edit_value_changed) self.color_button = Gtk.ColorButton.new_with_rgba( Gdk.RGBA(red=1.0, green=1.0, blue=1.0, alpha=1.0)) self.color_button.connect("color-set", self._edit_value_changed) buttons_box = Gtk.HBox() buttons_box.pack_start(Gtk.Label(), True, True, 0) buttons_box.pack_start(self.bold_font, False, False, 0) buttons_box.pack_start(self.italic_font, False, False, 0) buttons_box.pack_start(guiutils.pad_label(5, 5), False, False, 0) buttons_box.pack_start(self.left_align, False, False, 0) buttons_box.pack_start(self.center_align, False, False, 0) buttons_box.pack_start(self.right_align, False, False, 0) buttons_box.pack_start(guiutils.pad_label(5, 5), False, False, 0) buttons_box.pack_start(self.color_button, False, False, 0) buttons_box.pack_start(Gtk.Label(), True, True, 0) load_layers = Gtk.Button(_("Load Layers")) load_layers.connect("clicked", lambda w: self._load_layers_pressed()) save_layers = Gtk.Button(_("Save Layers")) save_layers.connect("clicked", lambda w: self._save_layers_pressed()) clear_layers = Gtk.Button(_("Clear All")) clear_layers.connect("clicked", lambda w: self._clear_layers_pressed()) layers_save_buttons_row = Gtk.HBox() layers_save_buttons_row.pack_start(save_layers, False, False, 0) layers_save_buttons_row.pack_start(load_layers, False, False, 0) layers_save_buttons_row.pack_start(Gtk.Label(), True, True, 0) adj = Gtk.Adjustment(float(0), float(0), float(3000), float(1)) self.x_pos_spin = Gtk.SpinButton() self.x_pos_spin.set_adjustment(adj) self.x_pos_spin.connect("changed", self._position_value_changed) self.x_pos_spin.connect("key-press-event", self._key_pressed_on_widget) adj = Gtk.Adjustment(float(0), float(0), float(3000), float(1)) self.y_pos_spin = Gtk.SpinButton() self.y_pos_spin.set_adjustment(adj) self.y_pos_spin.connect("changed", self._position_value_changed) self.y_pos_spin.connect("key-press-event", self._key_pressed_on_widget) adj = Gtk.Adjustment(float(0), float(0), float(3000), float(1)) self.rotation_spin = Gtk.SpinButton() self.rotation_spin.set_adjustment(adj) self.rotation_spin.connect("changed", self._position_value_changed) self.rotation_spin.connect("key-press-event", self._key_pressed_on_widget) undo_pos = Gtk.Button() undo_icon = Gtk.Image.new_from_stock(Gtk.STOCK_UNDO, Gtk.IconSize.BUTTON) undo_pos.set_image(undo_icon) next_icon = Gtk.Image.new_from_file(respaths.IMAGE_PATH + "next_frame_s.png") prev_icon = Gtk.Image.new_from_file(respaths.IMAGE_PATH + "prev_frame_s.png") prev_frame = Gtk.Button() prev_frame.set_image(prev_icon) prev_frame.connect("clicked", lambda w: self._prev_frame_pressed()) next_frame = Gtk.Button() next_frame.set_image(next_icon) next_frame.connect("clicked", lambda w: self._next_frame_pressed()) self.scale_selector = vieweditor.ScaleSelector(self) timeline_box = Gtk.HBox() timeline_box.pack_start(self.tc_display.widget, False, False, 0) timeline_box.pack_start(guiutils.pad_label(12, 12), False, False, 0) timeline_box.pack_start(pos_bar_frame, True, True, 0) timeline_box.pack_start(guiutils.pad_label(12, 12), False, False, 0) timeline_box.pack_start(prev_frame, False, False, 0) timeline_box.pack_start(next_frame, False, False, 0) timeline_box.pack_start(self.guides_toggle, False, False, 0) timeline_box.pack_start(self.scale_selector, False, False, 0) timeline_box.set_margin_top(6) timeline_box.set_margin_bottom(6) positions_box = Gtk.HBox() positions_box.pack_start(Gtk.Label(), True, True, 0) positions_box.pack_start(Gtk.Label(label="X:"), False, False, 0) positions_box.pack_start(self.x_pos_spin, False, False, 0) positions_box.pack_start(guiutils.pad_label(40, 5), False, False, 0) positions_box.pack_start(Gtk.Label(label="Y:"), False, False, 0) positions_box.pack_start(self.y_pos_spin, False, False, 0) #positions_box.pack_start(Gtk.Label(label=_("Angle")), False, False, 0) #positions_box.pack_start(self.rotation_spin, False, False, 0) positions_box.pack_start(guiutils.pad_label(40, 5), False, False, 0) positions_box.pack_start(center_h, False, False, 0) positions_box.pack_start(center_v, False, False, 0) positions_box.pack_start(Gtk.Label(), True, True, 0) controls_panel_1 = Gtk.VBox() controls_panel_1.pack_start(add_del_box, False, False, 0) controls_panel_1.pack_start(self.layer_list, False, False, 0) controls_panel_1.pack_start(layers_save_buttons_row, False, False, 0) controls_panel_2 = Gtk.VBox() controls_panel_2.pack_start(scroll_frame, True, True, 0) controls_panel_2.pack_start(font_main_row, False, False, 0) controls_panel_2.pack_start(buttons_box, False, False, 0) controls_panel = Gtk.VBox() controls_panel.pack_start( guiutils.get_named_frame(_("Active Layer"), controls_panel_2), True, True, 0) controls_panel.pack_start( guiutils.get_named_frame(_("Layers"), controls_panel_1), False, False, 0) view_editor_editor_buttons_row = Gtk.HBox() view_editor_editor_buttons_row.pack_start(positions_box, False, False, 0) view_editor_editor_buttons_row.pack_start(Gtk.Label(), True, True, 0) keep_label = Gtk.Label(label=_("Keep Layers When Closed")) self.keep_layers_check = Gtk.CheckButton() self.keep_layers_check.set_active(_keep_titler_data) self.keep_layers_check.connect("toggled", self._keep_layers_toggled) open_label = Gtk.Label(label=_("Open Saved Title In Bin")) self.open_in_current_check = Gtk.CheckButton() self.open_in_current_check.set_active(_open_saved_in_bin) self.open_in_current_check.connect("toggled", self._open_saved_in_bin) exit_b = guiutils.get_sized_button(_("Close"), 150, 32) exit_b.connect("clicked", lambda w: close_titler()) save_titles_b = guiutils.get_sized_button(_("Save Title Graphic"), 150, 32) save_titles_b.connect("clicked", lambda w: self._save_title_pressed()) editor_buttons_row = Gtk.HBox() editor_buttons_row.pack_start(Gtk.Label(), True, True, 0) editor_buttons_row.pack_start(keep_label, False, False, 0) editor_buttons_row.pack_start(self.keep_layers_check, False, False, 0) editor_buttons_row.pack_start(guiutils.pad_label(24, 2), False, False, 0) editor_buttons_row.pack_start(open_label, False, False, 0) editor_buttons_row.pack_start(self.open_in_current_check, False, False, 0) editor_buttons_row.pack_start(guiutils.pad_label(24, 2), False, False, 0) editor_buttons_row.pack_start(exit_b, False, False, 0) editor_buttons_row.pack_start(save_titles_b, False, False, 0) editor_panel = Gtk.VBox() editor_panel.pack_start(self.view_editor, True, True, 0) editor_panel.pack_start(timeline_box, False, False, 0) editor_panel.pack_start( guiutils.get_in_centering_alignment( view_editor_editor_buttons_row), False, False, 0) editor_panel.pack_start(guiutils.pad_label(2, 24), True, True, 0) editor_panel.pack_start(editor_buttons_row, False, False, 0) editor_row = Gtk.HBox() editor_row.pack_start(controls_panel, False, False, 0) editor_row.pack_start(editor_panel, True, True, 0) alignment = guiutils.set_margins(editor_row, 8, 8, 8, 8) self.add(alignment) self.layer_list.fill_data_model() self._update_gui_with_active_layer_data() self.show_all() self.connect("size-allocate", lambda w, e: self.window_resized()) self.connect("window-state-event", lambda w, e: self.window_resized())
def _get_user_profiles_panel(): # User profiles view user_profiles_list = guicomponents.ProfileListView() user_profiles_list.fill_data_model(mltprofiles.get_user_profiles()) delete_selected_button = gtk.Button(_("Delete Selected")) user_vbox = gtk.VBox(False, 2) user_vbox.pack_start(user_profiles_list, True, True, 0) user_vbox.pack_start(guiutils.get_right_justified_box([delete_selected_button]), False, False, 0) # Create profile panel default_profile_index = mltprofiles.get_default_profile_index() default_profile = mltprofiles.get_default_profile() load_profile_button = gtk.Button(_("Load Profile Values")) load_profile_combo = gtk.combo_box_new_text() profiles = mltprofiles.get_profiles() for profile in profiles: load_profile_combo.append_text(profile[0]) load_profile_combo.set_active(default_profile_index) description = gtk.Entry() description.set_text("User Created Profile") f_rate_num = gtk.Entry() f_rate_num.set_text(str(25)) f_rate_dem = gtk.Entry() f_rate_dem.set_text(str(1)) width = gtk.Entry() width.set_text(str(720)) height = gtk.Entry() height.set_text(str(576)) s_rate_num = gtk.Entry() s_rate_num.set_text(str(15)) s_rate_dem = gtk.Entry() s_rate_dem.set_text(str(16)) d_rate_num = gtk.Entry() d_rate_num.set_text(str(4)) d_rate_dem = gtk.Entry() d_rate_dem.set_text(str(3)) progressive = gtk.CheckButton() progressive.set_active(False) save_button = gtk.Button(_("Save New Profile")) widgets = (load_profile_combo, description, f_rate_num, f_rate_dem, width, height, s_rate_num, s_rate_dem, d_rate_num, d_rate_dem, progressive) _fill_new_profile_panel_widgets(default_profile, widgets) # build panel profile_row = gtk.HBox(False,0) profile_row.pack_start(load_profile_combo, False, False, 0) profile_row.pack_start(gtk.Label(), True, True, 0) profile_row.pack_start(load_profile_button, False, False, 0) row0 = guiutils.get_two_column_box(gtk.Label(_("Description.:")), description, PROFILE_MANAGER_LEFT) row1 = guiutils.get_two_column_box(gtk.Label(_("Frame rate num.:")), f_rate_num, PROFILE_MANAGER_LEFT) row2 = guiutils.get_two_column_box(gtk.Label(_("Frame rate den.:")), f_rate_dem, PROFILE_MANAGER_LEFT) row3 = guiutils.get_two_column_box(gtk.Label(_("Width:")), width, PROFILE_MANAGER_LEFT) row4 = guiutils.get_two_column_box(gtk.Label(_("Height:")), height, PROFILE_MANAGER_LEFT) row5 = guiutils.get_two_column_box(gtk.Label(_("Sample aspect num.:")), s_rate_num, PROFILE_MANAGER_LEFT) row6 = guiutils.get_two_column_box(gtk.Label(_("Sample aspect den.:")), s_rate_dem, PROFILE_MANAGER_LEFT) row7 = guiutils.get_two_column_box(gtk.Label(_("Display aspect num.:")), d_rate_num, PROFILE_MANAGER_LEFT) row8 = guiutils.get_two_column_box(gtk.Label(_("Display aspect den.:")), d_rate_dem, PROFILE_MANAGER_LEFT) row9 = guiutils.get_two_column_box(gtk.Label(_("Progressive:")), progressive, PROFILE_MANAGER_LEFT) save_row = gtk.HBox(False,0) save_row.pack_start(gtk.Label(), True, True, 0) save_row.pack_start(save_button, False, False, 0) create_vbox = gtk.VBox(False, 2) create_vbox.pack_start(profile_row, False, False, 0) create_vbox.pack_start(guiutils.get_pad_label(10, 10), False, False, 0) create_vbox.pack_start(row0, False, False, 0) create_vbox.pack_start(row1, False, False, 0) create_vbox.pack_start(row2, False, False, 0) create_vbox.pack_start(row3, False, False, 0) create_vbox.pack_start(row4, False, False, 0) create_vbox.pack_start(row5, False, False, 0) create_vbox.pack_start(row6, False, False, 0) create_vbox.pack_start(row7, False, False, 0) create_vbox.pack_start(row8, False, False, 0) create_vbox.pack_start(row9, False, False, 0) create_vbox.pack_start(guiutils.get_pad_label(10, 10), False, False, 0) create_vbox.pack_start(save_row, False, False, 0) # callbacks load_profile_button.connect("clicked",lambda w,e: _load_values_clicked(widgets), None) save_button.connect("clicked",lambda w,e: _save_profile_clicked(widgets, user_profiles_list), None) delete_selected_button.connect("clicked",lambda w,e: _delete_user_profiles_clicked(user_profiles_list), None) vbox = gtk.VBox(False, 2) vbox.pack_start(guiutils.get_named_frame(_("Create User Profile"), create_vbox), False, False, 0) vbox.pack_start(guiutils.get_named_frame(_("User Profiles"), user_vbox), True, True, 0) return (vbox, user_profiles_list)
def __init__(self, callback, clip, container_action, script_data_object): GObject.GObject.__init__(self) self.connect("delete-event", lambda w, e: self.cancel()) self.callback = callback self.clip = clip self.container_action = container_action self.script_data_object = copy.deepcopy(script_data_object) self.preview_frame = -1 # -1 used as flag that no preview renders ongoing and new one can be started # Create panels for objects self.editor_widgets = [] editors_list = self.script_data_object["editors_list"] for editor_data in editors_list: name, type, value = editor_data editor_type = int(type) self.editor_widgets.append( _get_editor(editor_type, name, name, value, "")) editors_v_panel = Gtk.VBox(True, 2) for w in self.editor_widgets: editors_v_panel.pack_start(w, False, False, 0) pane = Gtk.VBox(False, 2) if len(self.editor_widgets) != 0: pane.pack_start(editors_v_panel, False, False, 0) else: pane.pack_start(Gtk.Label(_("No Editors for this script")), False, False, 0) # Put in scrollpane if too many editors for screensize. n_editors = len(self.editor_widgets) add_scroll = False if editorstate.screen_size_small_height() == True and n_editors > 4: add_scroll = True h = 500 elif editorstate.screen_size_small_height( ) == True and editorstate.screen_size_large_height( ) == False and n_editors > 5: add_scroll = True h = 600 elif editorstate.screen_size_large_height() == True and n_editors > 6: add_scroll = True h = 700 if add_scroll == True: sw = Gtk.ScrolledWindow() sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) sw.add(pane) sw.set_size_request(400, h) if add_scroll == True: editors_panel = sw else: editors_panel = pane cancel_b = guiutils.get_sized_button(_("Cancel"), 150, 32) cancel_b.connect("clicked", lambda w: self.cancel()) save_b = guiutils.get_sized_button(_("Save Changes"), 150, 32) save_b.connect("clicked", lambda w: self.save()) buttons_box = Gtk.HBox(False, 2) buttons_box.pack_start(Gtk.Label(), True, True, 0) buttons_box.pack_start(cancel_b, False, False, 0) buttons_box.pack_start(save_b, False, False, 0) self.preview_panel = PreviewPanel(self, clip) preview_box = Gtk.VBox(False, 2) preview_box.pack_start(self.preview_panel, True, True, 0) preview_box.pack_start(guiutils.pad_label(2, 24), False, False, 0) preview_box.pack_start(buttons_box, False, False, 0) main_box = Gtk.HBox(False, 2) main_box.pack_start( guiutils.get_named_frame(_("Editors"), editors_panel), False, False, 0) main_box.pack_start( guiutils.get_named_frame(_("Preview"), preview_box), False, False, 0) alignment = guiutils.set_margins( main_box, 8, 8, 8, 8) #dialogutils.get_default_alignment(main_box) self.set_modal(True) self.set_transient_for(gui.editor_window.window) self.set_position(Gtk.WindowPosition.CENTER) self.set_title( _("Media Plugin Values Edit - ") + self.container_action.container_data.get_program_name()) self.set_resizable(False) self.add(alignment) self.show_all()