def __init__(self, autosave_file): self.is_shutting_down = False # Window self.window = Gtk.Window(Gtk.WindowType.TOPLEVEL) self.window.connect("delete-event", lambda w, e:self.close_window()) app_icon = GdkPixbuf.Pixbuf.new_from_file(respaths.IMAGE_PATH + "flowbladebatchappicon.png") self.window.set_icon(app_icon) self.last_saved_job = None self.start_time = time.monotonic() self.autosave_file = autosave_file self.render_progress_bar = Gtk.ProgressBar() self.render_progress_bar.set_text("0 %") prog_align = guiutils.set_margins(self.render_progress_bar, 0, 0, 6, 0) prog_align.set_size_request(550, 30) self.elapsed_value = Gtk.Label() self.current_render_value = Gtk.Label() self.items_value = Gtk.Label() est_label = guiutils.get_right_justified_box([guiutils.bold_label(_("Elapsed:"))]) items_label = guiutils.get_right_justified_box([guiutils.bold_label(_("Jobs Remaining Item:"))]) current_label = guiutils.get_right_justified_box([guiutils.bold_label(_("Current Job:"))]) est_label.set_size_request(250, 20) current_label.set_size_request(250, 20) items_label.set_size_request(250, 20) self.status_label = Gtk.Label() self.status_label.set_text(_("Rendering")) cancel_button = Gtk.Button(_("Cancel All Jobs")) cancel_button.connect("clicked", lambda w: self.cancel_all()) control_row = Gtk.HBox(False, 0) control_row.pack_start(self.status_label, False, False, 0) control_row.pack_start(Gtk.Label(), True, True, 0) control_row.pack_start(cancel_button, False, False, 0) info_vbox = Gtk.VBox(False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([est_label, self.elapsed_value]), False, False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([items_label, self.items_value]), False, False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([current_label, self.current_render_value]), False, False, 0) progress_vbox = Gtk.VBox(False, 2) progress_vbox.pack_start(info_vbox, False, False, 0) progress_vbox.pack_start(guiutils.get_pad_label(10, 8), False, False, 0) progress_vbox.pack_start(prog_align, False, False, 0) progress_vbox.pack_start(control_row, False, False, 0) alignment = guiutils.set_margins(progress_vbox, 12, 12, 12, 12) alignment.show_all() # Set pane and show window self.window.add(alignment) self.window.set_title(_("Jobs Render Progress")) self.window.set_position(Gtk.WindowPosition.CENTER) self.window.show_all()
def __init__(self): self.dialog = gtk.Dialog( _("Creating Proxy Files"), gui.editor_window.window, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("Stop").encode('utf-8'), gtk.RESPONSE_REJECT)) self.render_progress_bar = gtk.ProgressBar() self.render_progress_bar.set_text("0 %") prog_align = gtk.Alignment(0.5, 0.5, 1.0, 0.0) prog_align.set_padding(0, 0, 0, 0) prog_align.add(self.render_progress_bar) prog_align.set_size_request(550, 30) self.elapsed_value = gtk.Label() self.current_render_value = gtk.Label() self.items_value = gtk.Label() est_label = guiutils.get_right_justified_box( [guiutils.bold_label(_("Elapsed:"))]) current_label = guiutils.get_right_justified_box( [guiutils.bold_label(_("Current Media File:"))]) items_label = guiutils.get_right_justified_box( [guiutils.bold_label(_("Rendering Item:"))]) est_label.set_size_request(250, 20) current_label.set_size_request(250, 20) items_label.set_size_request(250, 20) info_vbox = gtk.VBox(False, 0) info_vbox.pack_start( guiutils.get_left_justified_box([est_label, self.elapsed_value]), False, False, 0) info_vbox.pack_start( guiutils.get_left_justified_box( [current_label, self.current_render_value]), False, False, 0) info_vbox.pack_start( guiutils.get_left_justified_box([items_label, self.items_value]), False, False, 0) progress_vbox = gtk.VBox(False, 2) progress_vbox.pack_start(info_vbox, False, False, 0) progress_vbox.pack_start(guiutils.get_pad_label(10, 8), False, False, 0) progress_vbox.pack_start(prog_align, False, False, 0) alignment = gtk.Alignment(0.5, 0.5, 1.0, 1.0) alignment.set_padding(12, 12, 12, 12) alignment.add(progress_vbox) alignment.show_all() self.dialog.vbox.pack_start(alignment, True, True, 0) self.dialog.set_has_separator(False) self.dialog.connect('response', self.stop_pressed) self.dialog.show()
def __init__(self): self.dialog = Gtk.Dialog( _("Creating Proxy Files"), gui.editor_window.window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Stop").encode('utf-8'), Gtk.ResponseType.REJECT)) self.render_progress_bar = Gtk.ProgressBar() self.render_progress_bar.set_text("0 %") prog_align = guiutils.set_margins(self.render_progress_bar, 0, 0, 6, 0) prog_align.set_size_request(550, 30) self.elapsed_value = Gtk.Label() self.current_render_value = Gtk.Label() self.items_value = Gtk.Label() est_label = guiutils.get_right_justified_box( [guiutils.bold_label(_("Elapsed:"))]) current_label = guiutils.get_right_justified_box( [guiutils.bold_label(_("Current Media File:"))]) items_label = guiutils.get_right_justified_box( [guiutils.bold_label(_("Rendering Item:"))]) est_label.set_size_request(250, 20) current_label.set_size_request(250, 20) items_label.set_size_request(250, 20) info_vbox = Gtk.VBox(False, 0) info_vbox.pack_start( guiutils.get_left_justified_box([est_label, self.elapsed_value]), False, False, 0) info_vbox.pack_start( guiutils.get_left_justified_box( [current_label, self.current_render_value]), False, False, 0) info_vbox.pack_start( guiutils.get_left_justified_box([items_label, self.items_value]), False, False, 0) progress_vbox = Gtk.VBox(False, 2) progress_vbox.pack_start(info_vbox, False, False, 0) progress_vbox.pack_start(guiutils.get_pad_label(10, 8), False, False, 0) progress_vbox.pack_start(prog_align, False, False, 0) alignment = guiutils.set_margins(progress_vbox, 12, 12, 12, 12) alignment.show_all() self.dialog.vbox.pack_start(alignment, True, True, 0) dialogutils.set_outer_margins(self.dialog.vbox) self.dialog.connect('response', self.stop_pressed) self.dialog.show()
def __init__(self): # Window self.window = Gtk.Window(Gtk.WindowType.TOPLEVEL) self.window.connect("delete-event", lambda w, e:_start_single_render_shutdown()) app_icon = GdkPixbuf.Pixbuf.new_from_file(respaths.IMAGE_PATH + "flowbladesinglerendericon.png") self.window.set_icon(app_icon) self.est_time_left = Gtk.Label() self.current_render = Gtk.Label() self.current_render_time = Gtk.Label() est_r = guiutils.get_right_justified_box([guiutils.bold_label(_("Estimated Left:"))]) current_r = guiutils.get_right_justified_box([guiutils.bold_label(_("File:"))]) current_r_t = guiutils.get_right_justified_box([guiutils.bold_label(_("Elapsed:"))]) est_r.set_size_request(250, 20) current_r.set_size_request(250, 20) current_r_t.set_size_request(250, 20) info_vbox = Gtk.VBox(False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([current_r, self.current_render]), False, False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([current_r_t, self.current_render_time]), False, False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([est_r, self.est_time_left]), False, False, 0) self.stop_render_button = Gtk.Button(_("Stop Render")) self.stop_render_button.connect("clicked", lambda w, e: _start_single_render_shutdown(), None) self.render_progress_bar = Gtk.ProgressBar() self.progress_label = Gtk.Label("0 %") button_row = Gtk.HBox(False, 0) button_row.pack_start(self.progress_label, False, False, 0) button_row.pack_start(Gtk.Label(), True, True, 0) button_row.pack_start(self.stop_render_button, False, False, 0) top_vbox = Gtk.VBox(False, 0) top_vbox.pack_start(info_vbox, False, False, 0) top_vbox.pack_start(guiutils.get_pad_label(12, 12), False, False, 0) top_vbox.pack_start(self.render_progress_bar, False, False, 0) top_vbox.pack_start(guiutils.get_pad_label(12, 12), False, False, 0) top_vbox.pack_start(button_row, False, False, 0) top_align = guiutils.set_margins(top_vbox, 12, 12, 12, 12) top_align.set_size_request(SINGLE_WINDOW_WIDTH, 20) # Set pane and show window self.window.add(top_align) self.window.set_title(_("Flowblade Timeline Render")) self.window.set_position(Gtk.WindowPosition.CENTER) self.window.show_all()
def __init__(self): self.dialog = gtk.Dialog(_("Creating Proxy Files"), gui.editor_window.window, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("Stop").encode('utf-8'), gtk.RESPONSE_REJECT)) self.render_progress_bar = gtk.ProgressBar() self.render_progress_bar.set_text("0 %") prog_align = gtk.Alignment(0.5, 0.5, 1.0, 0.0) prog_align.set_padding(0, 0, 0, 0) prog_align.add(self.render_progress_bar) prog_align.set_size_request(550, 30) self.elapsed_value = gtk.Label() self.current_render_value = gtk.Label() self.items_value = gtk.Label() est_label = guiutils.get_right_justified_box([guiutils.bold_label(_("Elapsed:"))]) current_label = guiutils.get_right_justified_box([guiutils.bold_label(_("Current Media File:"))]) items_label = guiutils.get_right_justified_box([guiutils.bold_label(_("Rendering Item:"))]) est_label.set_size_request(250, 20) current_label.set_size_request(250, 20) items_label.set_size_request(250, 20) info_vbox = gtk.VBox(False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([est_label, self.elapsed_value]), False, False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([current_label, self.current_render_value]), False, False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([items_label, self.items_value]), False, False, 0) progress_vbox = gtk.VBox(False, 2) progress_vbox.pack_start(info_vbox, False, False, 0) progress_vbox.pack_start(guiutils.get_pad_label(10, 8), False, False, 0) progress_vbox.pack_start(prog_align, False, False, 0) alignment = gtk.Alignment(0.5, 0.5, 1.0, 1.0) alignment.set_padding(12, 12, 12, 12) alignment.add(progress_vbox) alignment.show_all() self.dialog.vbox.pack_start(alignment, True, True, 0) self.dialog.set_has_separator(False) self.dialog.connect('response', self.stop_pressed) self.dialog.show()
def __init__(self): self.dialog = Gtk.Dialog(_("Creating Proxy Files"), gui.editor_window.window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Stop").encode('utf-8'), Gtk.ResponseType.REJECT)) self.render_progress_bar = Gtk.ProgressBar() self.render_progress_bar.set_text("0 %") prog_align = guiutils.set_margins(self.render_progress_bar, 0, 0, 6, 0) prog_align.set_size_request(550, 30) self.elapsed_value = Gtk.Label() self.current_render_value = Gtk.Label() self.items_value = Gtk.Label() est_label = guiutils.get_right_justified_box([guiutils.bold_label(_("Elapsed:"))]) current_label = guiutils.get_right_justified_box([guiutils.bold_label(_("Current Media File:"))]) items_label = guiutils.get_right_justified_box([guiutils.bold_label(_("Rendering Item:"))]) est_label.set_size_request(250, 20) current_label.set_size_request(250, 20) items_label.set_size_request(250, 20) info_vbox = Gtk.VBox(False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([est_label, self.elapsed_value]), False, False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([current_label, self.current_render_value]), False, False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([items_label, self.items_value]), False, False, 0) progress_vbox = Gtk.VBox(False, 2) progress_vbox.pack_start(info_vbox, False, False, 0) progress_vbox.pack_start(guiutils.get_pad_label(10, 8), False, False, 0) progress_vbox.pack_start(prog_align, False, False, 0) alignment = guiutils.set_margins(progress_vbox, 12, 12, 12, 12) alignment.show_all() self.dialog.vbox.pack_start(alignment, True, True, 0) dialogutils.set_outer_margins(self.dialog.vbox) self.dialog.connect('response', self.stop_pressed) self.dialog.show()
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 _display_compositor_edit_box(): # This gets called on startup before edit_frame is filled try: widgets.value_edit_frame.remove(widgets.value_edit_box) except: pass global keyframe_editor_widgets keyframe_editor_widgets = [] vbox = Gtk.VBox() # Case: Empty edit frame global compositor if compositor == None: widgets.empty_label = Gtk.Label(label=_("No Compositor")) vbox.pack_start(widgets.empty_label, True, True, 0) vbox.pack_start(Gtk.Label(), True, True, 0) vbox.show_all() widgets.value_edit_box = vbox widgets.value_edit_frame.add(vbox) return # Case: Filled frame compositor_name_label = Gtk.Label(label="<b>" + compositor.name + "</b>") compositor_name_label.set_use_markup(True) vbox.pack_start(compositor_name_label, False, False, 0) vbox.pack_start(guicomponents.EditorSeparator().widget, False, False, 0) # Track editor target_combo = guicomponents.get_compositor_track_select_combo( current_sequence().tracks[compositor.transition.b_track], current_sequence().tracks[compositor.transition.a_track], _target_track_changed) target_row = Gtk.HBox() target_row.pack_start(guiutils.get_pad_label(5, 3), False, False, 0) target_row.pack_start(Gtk.Label(label=_("Destination Track:")), False, False, 0) target_row.pack_start(guiutils.get_pad_label(5, 3), False, False, 0) target_row.pack_start(target_combo, False, False, 0) target_row.pack_start(Gtk.Label(), True, True, 0) vbox.pack_start(target_row, False, False, 0) vbox.pack_start(guicomponents.EditorSeparator().widget, False, False, 0) # Transition editors t_editable_properties = propertyedit.get_transition_editable_properties( compositor) for ep in t_editable_properties: editor_row = propertyeditorbuilder.get_editor_row(ep) if editor_row != None: # Some properties don't have editors vbox.pack_start(editor_row, False, False, 0) vbox.pack_start(guicomponents.EditorSeparator().widget, False, False, 0) # Add keyframe editor widget to be updated for frame changes if such is created. try: editor_type = ep.args[propertyeditorbuilder.EDITOR] except KeyError: editor_type = propertyeditorbuilder.SLIDER # this is the default value if ((editor_type == propertyeditorbuilder.KEYFRAME_EDITOR) or (editor_type == propertyeditorbuilder.KEYFRAME_EDITOR_RELEASE) or (editor_type == propertyeditorbuilder.KEYFRAME_EDITOR_CLIP) or (editor_type == propertyeditorbuilder.FADE_LENGTH) or (editor_type == propertyeditorbuilder.GEOMETRY_EDITOR)): keyframe_editor_widgets.append(editor_row) # Extra editors. Editable properties have already been created with "editor=no_editor" # and will be looked up by editors from clip editor_rows = propertyeditorbuilder.get_transition_extra_editor_rows( compositor, t_editable_properties) for editor_row in editor_rows: # These are added to keyframe editor based on editor type, not based on EditableProperty type as above # because one editor sets values for multiple EditableProperty objects if editor_row.__class__ == keyframeeditor.RotatingGeometryEditor: keyframe_editor_widgets.append(editor_row) vbox.pack_start(editor_row, False, False, 0) vbox.pack_start(guicomponents.EditorSeparator().widget, False, False, 0) hamburger_launcher_surface = cairo.ImageSurface.create_from_png( respaths.IMAGE_PATH + "hamburger_big.png") hamburger_launcher = guicomponents.PressLaunch(_hamburger_launch_pressed, hamburger_launcher_surface, 24, 24) sl_row = guiutils.get_right_justified_box([hamburger_launcher.widget]) vbox.pack_start(sl_row, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) vbox.show_all() scroll_window = Gtk.ScrolledWindow() scroll_window.add_with_viewport(vbox) scroll_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) scroll_window.show_all() widgets.value_edit_box = scroll_window widgets.value_edit_frame.add(scroll_window)
def effect_selection_changed(): global keyframe_editor_widgets # Check we have clip if clip == None: keyframe_editor_widgets = [] return # Check we actually have filters so we can display one. # If not, clear previous filters from view. if len(clip.filters) == 0: vbox = Gtk.VBox(False, 0) vbox.pack_start(Gtk.Label(), False, False, 0) widgets.value_edit_frame.remove(widgets.value_edit_box) widgets.value_edit_frame.add(vbox) vbox.show_all() widgets.value_edit_box = vbox keyframe_editor_widgets = [] return # "changed" get's called twice when adding filter and selecting last # so we use this do this only once if block_changed_update == True: return keyframe_editor_widgets = [] # Get selected row which is also index of filter in clip.filters treeselection = widgets.effect_stack_view.treeview.get_selection() (model, rows) = treeselection.get_selected_rows() # If we don't get legal selection select first filter try: row = rows[0] filter_index = max(row) except: filter_index = 0 filter_object = clip.filters[filter_index] global current_filter_index current_filter_index = filter_index # Create EditableProperty wrappers for properties editable_properties = propertyedit.get_filter_editable_properties( clip, filter_object, filter_index, track, clip_index) # Get editors and set them displayed vbox = Gtk.VBox(False, 0) try: filter_name = translations.filter_names[filter_object.info.name] except KeyError: filter_name = filter_object.info.name filter_name_label = Gtk.Label(label= "<b>" + filter_name + "</b>") filter_name_label.set_use_markup(True) vbox.pack_start(filter_name_label, False, False, 0) vbox.pack_start(guicomponents.EditorSeparator().widget, False, False, 0) if len(editable_properties) > 0: # Create editor row for each editable property for ep in editable_properties: editor_row = propertyeditorbuilder.get_editor_row(ep) if editor_row == None: continue # Set keyframe editor widget to be updated for frame changes if such is created try: editor_type = ep.args[propertyeditorbuilder.EDITOR] except KeyError: editor_type = propertyeditorbuilder.SLIDER # this is the default value if ((editor_type == propertyeditorbuilder.KEYFRAME_EDITOR) or (editor_type == propertyeditorbuilder.KEYFRAME_EDITOR_RELEASE) or (editor_type == propertyeditorbuilder.KEYFRAME_EDITOR_CLIP)): keyframe_editor_widgets.append(editor_row) vbox.pack_start(editor_row, False, False, 0) if not hasattr(editor_row, "no_separator"): vbox.pack_start(guicomponents.EditorSeparator().widget, False, False, 0) # Create NonMltEditableProperty wrappers for properties non_mlteditable_properties = propertyedit.get_non_mlt_editable_properties( clip, filter_object, filter_index) # Extra editors. Editable properties may have already been created # with "editor=no_editor" and now extra editors may be created to edit those # Non mlt properties are added as these are only need with extraeditors editable_properties.extend(non_mlteditable_properties) editor_rows = propertyeditorbuilder.get_filter_extra_editor_rows(filter_object, editable_properties) for editor_row in editor_rows: vbox.pack_start(editor_row, False, False, 0) if not hasattr(editor_row, "no_separator"): vbox.pack_start(guicomponents.EditorSeparator().widget, False, False, 0) vbox.pack_start(guiutils.pad_label(12,12), False, False, 0) #save_b = Gtk.Button(_("Save Params")) #load_b = Gtk.Button(_("Load Params")) hamburger_launcher_surface = cairo.ImageSurface.create_from_png(respaths.IMAGE_PATH + "hamburger_big.png") hamburger_launcher = guicomponents.PressLaunch(_hamburger_launch_pressed, hamburger_launcher_surface, 24, 24) """ widgets.toggle_all = Gtk.Button() widgets.toggle_all.set_image(Gtk.Image.new_from_file(respaths.IMAGE_PATH + "filters_all_toggle.png")) widgets.add_effect_b.connect("clicked", lambda w,e: add_effect_pressed(), None) widgets.del_effect_b.connect("clicked", lambda w,e: delete_effect_pressed(), None) """ sl_row = guiutils.get_right_justified_box([hamburger_launcher.widget]) vbox.pack_start(sl_row, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) else: vbox.pack_start(Gtk.Label(label=_("No editable parameters")), True, True, 0) vbox.show_all() scroll_window = Gtk.ScrolledWindow() scroll_window.add_with_viewport(vbox) scroll_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) scroll_window.show_all() widgets.value_edit_frame.remove(widgets.value_edit_box) widgets.value_edit_frame.add(scroll_window) widgets.value_edit_box = scroll_window
def __init__(self): # Window self.window = Gtk.Window(Gtk.WindowType.TOPLEVEL) self.window.connect("delete-event", lambda w, e:shutdown()) app_icon = GdkPixbuf.Pixbuf.new_from_file(respaths.IMAGE_PATH + "flowbladebatchappicon.png") self.window.set_icon(app_icon) self.est_time_left = Gtk.Label() self.current_render = Gtk.Label() self.current_render_time = Gtk.Label() est_r = guiutils.get_right_justified_box([guiutils.bold_label(_("Estimated Left:"))]) current_r = guiutils.get_right_justified_box([guiutils.bold_label(_("Current Render:"))]) current_r_t = guiutils.get_right_justified_box([guiutils.bold_label(_("Elapsed:"))]) est_r.set_size_request(250, 20) current_r.set_size_request(250, 20) current_r_t.set_size_request(250, 20) info_vbox = Gtk.VBox(False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([current_r, self.current_render]), False, False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([current_r_t, self.current_render_time]), False, False, 0) info_vbox.pack_start(guiutils.get_left_justified_box([est_r, self.est_time_left]), False, False, 0) self.items_rendered = Gtk.Label() items_r = Gtk.Label(label=_("Items Rendered:")) self.render_started_label = Gtk.Label() started_r = Gtk.Label(label=_("Render Started:")) bottom_info_vbox = Gtk.HBox(True, 0) bottom_info_vbox.pack_start(guiutils.get_left_justified_box([items_r, self.items_rendered]), True, True, 0) bottom_info_vbox.pack_start(guiutils.get_left_justified_box([started_r, self.render_started_label]), True, True, 0) self.not_rendering_txt = _("Not Rendering") self.render_progress_bar = Gtk.ProgressBar() self.render_progress_bar.set_text(self.not_rendering_txt) self.remove_selected = Gtk.Button(_("Delete Selected")) self.remove_selected.connect("clicked", lambda w, e: self.remove_selected_clicked(), None) self.remove_finished = Gtk.Button(_("Delete Finished")) self.remove_finished.connect("clicked", lambda w, e: self.remove_finished_clicked(), None) self.reload_button = Gtk.Button(_("Reload Queue")) self.reload_button.connect("clicked", lambda w, e: self.reload_queue(), None) self.render_button = guiutils.get_render_button() self.render_button.connect("clicked", lambda w, e: self.launch_render(), None) self.stop_render_button = Gtk.Button(_("Stop Render")) self.stop_render_button.set_sensitive(False) self.stop_render_button.connect("clicked", lambda w, e: self.abort_render(), None) button_row = Gtk.HBox(False, 0) button_row.pack_start(self.remove_selected, False, False, 0) button_row.pack_start(self.remove_finished, False, False, 0) button_row.pack_start(Gtk.Label(), True, True, 0) button_row.pack_start(self.stop_render_button, False, False, 0) button_row.pack_start(self.render_button, False, False, 0) top_vbox = Gtk.VBox(False, 0) top_vbox.pack_start(info_vbox, False, False, 0) top_vbox.pack_start(guiutils.get_pad_label(12, 12), False, False, 0) top_vbox.pack_start(self.render_progress_bar, False, False, 0) top_vbox.pack_start(guiutils.get_pad_label(12, 12), False, False, 0) top_vbox.pack_start(button_row, False, False, 0) top_align = guiutils.set_margins(top_vbox, 12, 12, 12, 12) self.queue_view = RenderQueueView() self.queue_view.fill_data_model(render_queue) self.queue_view.set_size_request(WINDOW_WIDTH, QUEUE_HEIGHT) bottom_align = guiutils.set_margins(bottom_info_vbox, 0, 2, 8, 8) # Content pane pane = Gtk.VBox(False, 1) pane.pack_start(top_align, False, False, 0) pane.pack_start(self.queue_view, True, True, 0) pane.pack_start(bottom_align, False, False, 0) # Set pane and show window self.window.add(pane) self.window.set_title(_("Flowblade Batch Render")) self.window.set_position(Gtk.WindowPosition.CENTER) self.window.show_all()
def __init__(self): # Window self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.connect("delete-event", lambda w, e: shutdown()) app_icon = gtk.gdk.pixbuf_new_from_file(respaths.IMAGE_PATH + "flowbladebatchappicon.png") self.window.set_icon_list(app_icon) self.est_time_left = gtk.Label() self.current_render = gtk.Label() self.current_render_time = gtk.Label() est_r = guiutils.get_right_justified_box( [guiutils.bold_label(_("Estimated Left:"))]) current_r = guiutils.get_right_justified_box( [guiutils.bold_label(_("Current Render:"))]) current_r_t = guiutils.get_right_justified_box( [guiutils.bold_label(_("Elapsed:"))]) est_r.set_size_request(250, 20) current_r.set_size_request(250, 20) current_r_t.set_size_request(250, 20) info_vbox = gtk.VBox(False, 0) info_vbox.pack_start( guiutils.get_left_justified_box([current_r, self.current_render]), False, False, 0) info_vbox.pack_start( guiutils.get_left_justified_box( [current_r_t, self.current_render_time]), False, False, 0) info_vbox.pack_start( guiutils.get_left_justified_box([est_r, self.est_time_left]), False, False, 0) self.items_rendered = gtk.Label() items_r = gtk.Label(_("Items Rendered:")) self.render_started_label = gtk.Label() started_r = gtk.Label(_("Render Started:")) bottom_info_vbox = gtk.HBox(True, 0) bottom_info_vbox.pack_start( guiutils.get_left_justified_box([items_r, self.items_rendered]), True, True, 0) bottom_info_vbox.pack_start( guiutils.get_left_justified_box( [started_r, self.render_started_label]), True, True, 0) self.not_rendering_txt = _("Not Rendering") self.render_progress_bar = gtk.ProgressBar() self.render_progress_bar.set_text(self.not_rendering_txt) self.remove_selected = gtk.Button(_("Delete Selected")) self.remove_selected.connect( "clicked", lambda w, e: self.remove_selected_clicked(), None) self.remove_finished = gtk.Button(_("Delete Finished")) self.remove_finished.connect( "clicked", lambda w, e: self.remove_finished_clicked(), None) self.reload_button = gtk.Button(_("Reload Queue")) self.reload_button.connect("clicked", lambda w, e: self.reload_queue(), None) self.render_button = guiutils.get_render_button() self.render_button.connect("clicked", lambda w, e: self.launch_render(), None) self.stop_render_button = gtk.Button(_("Stop Render")) self.stop_render_button.set_sensitive(False) self.stop_render_button.connect("clicked", lambda w, e: self.abort_render(), None) button_row = gtk.HBox(False, 0) button_row.pack_start(self.remove_selected, False, False, 0) button_row.pack_start(self.remove_finished, False, False, 0) button_row.pack_start(gtk.Label(), True, True, 0) #button_row.pack_start(self.reload_button, True, True, 0) #button_row.pack_start(gtk.Label(), True, True, 0) button_row.pack_start(self.stop_render_button, False, False, 0) button_row.pack_start(self.render_button, False, False, 0) top_vbox = gtk.VBox(False, 0) top_vbox.pack_start(info_vbox, False, False, 0) top_vbox.pack_start(guiutils.get_pad_label(12, 12), False, False, 0) top_vbox.pack_start(self.render_progress_bar, False, False, 0) top_vbox.pack_start(guiutils.get_pad_label(12, 12), False, False, 0) top_vbox.pack_start(button_row, False, False, 0) top_align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) top_align.set_padding(12, 12, 12, 12) top_align.add(top_vbox) self.queue_view = RenderQueueView() self.queue_view.fill_data_model(render_queue) self.queue_view.set_size_request(WINDOW_WIDTH, QUEUE_HEIGHT) bottom_align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) bottom_align.set_padding(0, 2, 8, 8) bottom_align.add(bottom_info_vbox) # Content pane pane = gtk.VBox(False, 1) pane.pack_start(top_align, False, False, 0) pane.pack_start(self.queue_view, True, True, 0) pane.pack_start(bottom_align, False, False, 0) # Set pane and show window self.window.add(pane) self.window.set_title(_("Flowblade Batch Render")) self.window.set_position(gtk.WIN_POS_CENTER) self.window.show_all()