def preferences_dialog(): dialog = Gtk.Dialog(_("Editor Preferences"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), Gtk.ResponseType.REJECT, _("OK").encode('utf-8'), Gtk.ResponseType.ACCEPT)) gen_opts_panel, gen_opts_widgets = _general_options_panel(_thumbs_select_clicked, _renders_select_clicked) edit_prefs_panel, edit_prefs_widgets = _edit_prefs_panel() playback_prefs_panel, playback_prefs_widgets = _playback_prefs_panel() view_pres_panel, view_pref_widgets = _view_prefs_panel() # Jan-2017 - SvdB performance_panel, performance_widgets = _performance_panel() # Apr-2017 - SvdB #shortcuts_panel, shortcuts_widgets = _shortcuts_panel() notebook = Gtk.Notebook() notebook.set_size_request(PREFERENCES_WIDTH, PREFERENCES_HEIGHT) notebook.append_page(gen_opts_panel, Gtk.Label(label=_("General"))) notebook.append_page(edit_prefs_panel, Gtk.Label(label=_("Editing"))) notebook.append_page(playback_prefs_panel, Gtk.Label(label=_("Playback"))) notebook.append_page(view_pres_panel, Gtk.Label(label=_("View"))) notebook.append_page(performance_panel, Gtk.Label(label=_("Performance"))) #notebook.append_page(shortcuts_panel, Gtk.Label(label=_("Shortcuts"))) guiutils.set_margins(notebook, 4, 24, 6, 0) dialog.connect('response', _preferences_dialog_callback, (gen_opts_widgets, edit_prefs_widgets, playback_prefs_widgets, view_pref_widgets, \ performance_widgets)) dialog.vbox.pack_start(notebook, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) # Jul-2016 - SvdB - The next line is to get rid of the message "GtkDialog mapped without a transient parent. This is discouraged." dialog.set_transient_for(gui.editor_window.window) dialog.show_all()
def _color_clip_dialog(callback): dialog = Gtk.Dialog( _("Create Color Clip"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), Gtk.ResponseType.REJECT, _("Create").encode('utf-8'), Gtk.ResponseType.ACCEPT)) name_entry = Gtk.Entry() name_entry.set_text(_("Color Clip")) color_button = Gtk.ColorButton.new_with_rgba(Gdk.RGBA(0, 0, 0, 1)) cb_hbox = Gtk.HBox(False, 0) cb_hbox.pack_start(color_button, False, False, 4) cb_hbox.pack_start(Gtk.Label(), True, True, 0) row1 = guiutils.get_two_column_box(Gtk.Label(label=_("Clip Name:")), name_entry, 200) row2 = guiutils.get_two_column_box(Gtk.Label(label=_("Select Color:")), cb_hbox, 200) vbox = Gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) align = guiutils.set_margins(vbox, 12, 0, 12, 12) selection_widgets = (name_entry, color_button) dialog.connect('response', callback, selection_widgets) dialog.vbox.pack_start(vbox, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.show_all()
def _ising_clip_dialog(callback): dialog = Gtk.Dialog( _("Create Ising Clip"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), Gtk.ResponseType.REJECT, _("Create").encode('utf-8'), Gtk.ResponseType.ACCEPT)) n_box, n_slider = guiutils.get_non_property_slider_row(0, 100, 1) bg_box, bg_slider = guiutils.get_non_property_slider_row(0, 100, 1) sg_box, sg_slider = guiutils.get_non_property_slider_row(0, 100, 1) row1 = guiutils.get_two_column_box( Gtk.Label(label=_("Noise temperature:")), n_box, 200) row2 = guiutils.get_two_column_box(Gtk.Label(label=_("Border growth:")), bg_box, 200) row3 = guiutils.get_two_column_box( Gtk.Label(label=_("Spontanious growth:")), sg_box, 200) vbox = Gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row3, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) vbox.set_size_request(450, 150) align = guiutils.set_margins(vbox, 12, 0, 12, 12) selection_widgets = (n_slider, bg_slider, sg_slider) dialog.connect('response', callback, selection_widgets) dialog.vbox.pack_start(align, True, True, 0) dialogutils.default_behaviour(dialog) dialogutils.set_outer_margins(dialog.vbox) dialog.show_all()
def preferences_dialog(): #global select_thumbnail_dir_callback, select_render_clips_dir_callback #select_thumbnail_dir_callback = select_thumbnail_cb #select_render_clips_dir_callback = select_render_clips_cb dialog = gtk.Dialog(_("Editor Preferences"), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), gtk.RESPONSE_REJECT, _("OK").encode('utf-8'), gtk.RESPONSE_ACCEPT)) gen_opts_panel, gen_opts_widgets = _general_options_panel(_thumbs_select_clicked, _renders_select_clicked) edit_prefs_panel, edit_prefs_widgets = _edit_prefs_panel() view_pres_panel, view_pref_widgets = _view_prefs_panel() notebook = gtk.Notebook() notebook.set_size_request(PREFERENCES_WIDTH, PREFERENCES_HEIGHT) notebook.append_page(gen_opts_panel, gtk.Label(_("General"))) notebook.append_page(edit_prefs_panel, gtk.Label(_("Editing"))) notebook.append_page(view_pres_panel, gtk.Label(_("View"))) dialog.connect('response', _preferences_dialog_callback, (gen_opts_widgets, edit_prefs_widgets, view_pref_widgets)) dialog.vbox.pack_start(notebook, True, True, 0) dialogutils.default_behaviour(dialog) dialog.show_all()
def _ising_clip_dialog(callback): dialog = gtk.Dialog(_("Create Ising Clip"), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), gtk.RESPONSE_REJECT, _("Create").encode('utf-8'), gtk.RESPONSE_ACCEPT)) n_box, n_slider = guiutils.get_non_property_slider_row(0, 100, 1) bg_box, bg_slider = guiutils.get_non_property_slider_row(0, 100, 1) sg_box, sg_slider = guiutils.get_non_property_slider_row(0, 100, 1) row1 = guiutils.get_two_column_box(gtk.Label(_("Noise temperature:")), n_box, 200) row2 = guiutils.get_two_column_box(gtk.Label(_("Border growth:")), bg_box, 200) row3 = guiutils.get_two_column_box(gtk.Label(_("Spontanious growth:")), sg_box, 200) vbox = gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row3, False, False, 0) vbox.pack_start(gtk.Label(), True, True, 0) vbox.set_size_request(450, 150) align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) align.set_padding(12, 0, 12, 12) align.add(vbox) selection_widgets = (n_slider, bg_slider, sg_slider) dialog.connect('response', callback, selection_widgets) dialog.vbox.pack_start(align, True, True, 0) dialogutils.default_behaviour(dialog) dialog.show_all()
def _color_clip_dialog(callback): dialog = gtk.Dialog(_("Create Color Clip"), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), gtk.RESPONSE_REJECT, _("Create").encode('utf-8'), gtk.RESPONSE_ACCEPT)) name_entry = gtk.Entry() name_entry.set_text(_("Color Clip")) color_button = gtk.ColorButton() cb_hbox = gtk.HBox(False, 0) cb_hbox.pack_start(color_button, False, False, 4) cb_hbox.pack_start(gtk.Label(), True, True, 0) row1 = guiutils.get_two_column_box(gtk.Label(_("Clip Name:")), name_entry, 200) row2 = guiutils.get_two_column_box(gtk.Label(_("Select Color:")), cb_hbox, 200) vbox = gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(gtk.Label(), True, True, 0) align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) align.set_padding(12, 0, 12, 12) align.add(vbox) selection_widgets = (name_entry, color_button) dialog.connect('response', callback, selection_widgets) dialog.vbox.pack_start(align, True, True, 0) dialogutils.default_behaviour(dialog) dialog.show_all()
def preferences_dialog(): #global select_thumbnail_dir_callback, select_render_clips_dir_callback #select_thumbnail_dir_callback = select_thumbnail_cb #select_render_clips_dir_callback = select_render_clips_cb dialog = gtk.Dialog(_("Editor Preferences"), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), gtk.RESPONSE_REJECT, _("OK").encode('utf-8'), gtk.RESPONSE_ACCEPT)) gen_opts_panel, gen_opts_widgets = _general_options_panel( _thumbs_select_clicked, _renders_select_clicked) edit_prefs_panel, edit_prefs_widgets = _edit_prefs_panel() view_pres_panel, view_pref_widgets = _view_prefs_panel() notebook = gtk.Notebook() notebook.set_size_request(PREFERENCES_WIDTH, PREFERENCES_HEIGHT) notebook.append_page(gen_opts_panel, gtk.Label(_("General"))) notebook.append_page(edit_prefs_panel, gtk.Label(_("Editing"))) notebook.append_page(view_pres_panel, gtk.Label(_("View"))) dialog.connect('response', _preferences_dialog_callback, (gen_opts_widgets, edit_prefs_widgets, view_pref_widgets)) dialog.vbox.pack_start(notebook, True, True, 0) dialogutils.default_behaviour(dialog) dialog.show_all()
def _color_clip_dialog(callback): dialog = Gtk.Dialog(_("Create Color Clip"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), Gtk.ResponseType.REJECT, _("Create").encode('utf-8'), Gtk.ResponseType.ACCEPT)) name_entry = Gtk.Entry() name_entry.set_text(_("Color Clip")) color_button = Gtk.ColorButton.new_with_rgba(Gdk.RGBA(0,0,0,1)) cb_hbox = Gtk.HBox(False, 0) cb_hbox.pack_start(color_button, False, False, 4) cb_hbox.pack_start(Gtk.Label(), True, True, 0) row1 = guiutils.get_two_column_box(Gtk.Label(label=_("Clip Name:")), name_entry, 200) row2 = guiutils.get_two_column_box(Gtk.Label(label=_("Select Color:")), cb_hbox, 200) vbox = Gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) align = guiutils.set_margins(vbox, 12, 0, 12, 12) selection_widgets = (name_entry, color_button) dialog.connect('response', callback, selection_widgets) dialog.vbox.pack_start(vbox, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.show_all()
def profiles_manager_dialog(): dialog = gtk.Dialog(_("Profiles Manager"), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("Close Manager").encode('utf-8'), gtk.RESPONSE_CLOSE)) panel2, user_profiles_view = _get_user_profiles_panel() alignment2 = gtk.Alignment(0.5, 0.5, 1.0, 1.0) alignment2.set_padding(12, 14, 12, 6) alignment2.add(panel2) panel1 = _get_factory_profiles_panel(user_profiles_view) alignment1 = gtk.Alignment(0.5, 0.5, 1.0, 1.0) alignment1.set_padding(12, 12, 12, 12) alignment1.add(panel1) pane = gtk.HBox(True, 2) pane.pack_start(alignment1, True, True, 0) pane.pack_start(alignment2, True, True, 0) pane.set_size_request(PROFILES_WIDTH * 2, PROFILES_HEIGHT) pane.show_all() dialog.connect('response', dialogutils.dialog_destroy) dialog.vbox.pack_start(pane, True, True, 0) dialogutils.default_behaviour(dialog) dialog.show_all() return dialog
def _ising_clip_dialog(callback): dialog = Gtk.Dialog(_("Create Ising Clip"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), Gtk.ResponseType.REJECT, _("Create").encode('utf-8'), Gtk.ResponseType.ACCEPT)) n_box, n_slider = guiutils.get_non_property_slider_row(0, 100, 1) bg_box, bg_slider = guiutils.get_non_property_slider_row(0, 100, 1) sg_box, sg_slider = guiutils.get_non_property_slider_row(0, 100, 1) row1 = guiutils.get_two_column_box(Gtk.Label(label=_("Noise temperature:")), n_box, 200) row2 = guiutils.get_two_column_box(Gtk.Label(label=_("Border growth:")), bg_box, 200) row3 = guiutils.get_two_column_box(Gtk.Label(label=_("Spontanious growth:")), sg_box, 200) vbox = Gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row3, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) vbox.set_size_request(450, 150) align = guiutils.set_margins(vbox, 12, 0, 12, 12) selection_widgets = (n_slider, bg_slider, sg_slider) dialog.connect('response', callback, selection_widgets) dialog.vbox.pack_start(align, True, True, 0) dialogutils.default_behaviour(dialog) dialogutils.set_outer_margins(dialog.vbox) dialog.show_all()
def preferences_dialog(): dialog = Gtk.Dialog( _("Editor Preferences"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), Gtk.ResponseType.REJECT, _("OK").encode('utf-8'), Gtk.ResponseType.ACCEPT)) gen_opts_panel, gen_opts_widgets = _general_options_panel( _thumbs_select_clicked, _renders_select_clicked) edit_prefs_panel, edit_prefs_widgets = _edit_prefs_panel() view_pres_panel, view_pref_widgets = _view_prefs_panel() notebook = Gtk.Notebook() notebook.set_size_request(PREFERENCES_WIDTH, PREFERENCES_HEIGHT) notebook.append_page(gen_opts_panel, Gtk.Label(label=_("General"))) notebook.append_page(edit_prefs_panel, Gtk.Label(label=_("Editing"))) notebook.append_page(view_pres_panel, Gtk.Label(label=_("View"))) guiutils.set_margins(notebook, 4, 24, 6, 0) dialog.connect('response', _preferences_dialog_callback, (gen_opts_widgets, edit_prefs_widgets, view_pref_widgets)) dialog.vbox.pack_start(notebook, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.show_all()
def preferences_dialog(): dialog = Gtk.Dialog(_("Editor Preferences"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel"), Gtk.ResponseType.REJECT, _("OK"), Gtk.ResponseType.ACCEPT)) gen_opts_panel, gen_opts_widgets = _general_options_panel() edit_prefs_panel, edit_prefs_widgets = _edit_prefs_panel() playback_prefs_panel, playback_prefs_widgets = _playback_prefs_panel() view_pres_panel, view_pref_widgets = _view_prefs_panel() performance_panel, performance_widgets = _performance_panel() notebook = Gtk.Notebook() notebook.set_size_request(PREFERENCES_WIDTH, PREFERENCES_HEIGHT) notebook.append_page(gen_opts_panel, Gtk.Label(label=_("General"))) notebook.append_page(edit_prefs_panel, Gtk.Label(label=_("Editing"))) notebook.append_page(playback_prefs_panel, Gtk.Label(label=_("Playback"))) notebook.append_page(view_pres_panel, Gtk.Label(label=_("View"))) notebook.append_page(performance_panel, Gtk.Label(label=_("Performance"))) guiutils.set_margins(notebook, 4, 24, 6, 0) dialog.connect('response', _preferences_dialog_callback, (gen_opts_widgets, edit_prefs_widgets, playback_prefs_widgets, view_pref_widgets, \ performance_widgets)) dialog.vbox.pack_start(notebook, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.set_transient_for(gui.editor_window.window) dialog.show_all() notebook.set_current_page(0) # gen_opts_widgets
def preferences_dialog(): dialog = Gtk.Dialog( _("Editor Preferences"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel"), Gtk.ResponseType.REJECT, _("OK"), Gtk.ResponseType.ACCEPT)) gen_opts_panel, gen_opts_widgets = _general_options_panel() edit_prefs_panel, edit_prefs_widgets = _edit_prefs_panel() playback_prefs_panel, playback_prefs_widgets = _playback_prefs_panel() view_pres_panel, view_pref_widgets = _view_prefs_panel() # Jan-2017 - SvdB performance_panel, performance_widgets = _performance_panel() # Apr-2017 - SvdB #shortcuts_panel, shortcuts_widgets = _shortcuts_panel() notebook = Gtk.Notebook() notebook.set_size_request(PREFERENCES_WIDTH, PREFERENCES_HEIGHT) notebook.append_page(gen_opts_panel, Gtk.Label(label=_("General"))) notebook.append_page(edit_prefs_panel, Gtk.Label(label=_("Editing"))) notebook.append_page(playback_prefs_panel, Gtk.Label(label=_("Playback"))) notebook.append_page(view_pres_panel, Gtk.Label(label=_("View"))) notebook.append_page(performance_panel, Gtk.Label(label=_("Performance"))) guiutils.set_margins(notebook, 4, 24, 6, 0) dialog.connect('response', _preferences_dialog_callback, (gen_opts_widgets, edit_prefs_widgets, playback_prefs_widgets, view_pref_widgets, \ performance_widgets)) dialog.vbox.pack_start(notebook, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) # Jul-2016 - SvdB - The next line is to get rid of the message "GtkDialog mapped without a transient parent. This is discouraged." dialog.set_transient_for(gui.editor_window.window) dialog.show_all()
def export_screenshot_dialog(callback, frame, parent_window, project_name): cancel_str = _("Cancel").encode("utf-8") ok_str = _("Export Image").encode("utf-8") dialog = Gtk.Dialog( _("Export Frame Image"), parent_window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (cancel_str, Gtk.ResponseType.CANCEL, ok_str, Gtk.ResponseType.YES), ) global _screenshot_img _screenshot_img = guiutils.get_gtk_image_from_file(get_displayed_image_path(), 300) frame_frame = guiutils.get_named_frame_with_vbox(None, [_screenshot_img]) INPUT_LABELS_WITDH = 320 project_name = project_name.strip(".flb") file_name = Gtk.Entry() file_name.set_text(project_name) extension_label = Gtk.Label(label=".png") extension_label.set_size_request(35, 20) name_pack = Gtk.HBox(False, 4) name_pack.pack_start(file_name, True, True, 0) name_pack.pack_start(extension_label, False, False, 0) name_row = guiutils.get_two_column_box(Gtk.Label(label=_("Export file name:")), name_pack, INPUT_LABELS_WITDH) out_folder = Gtk.FileChooserButton(_("Select target folder")) out_folder.set_action(Gtk.FileChooserAction.SELECT_FOLDER) out_folder.set_current_folder(os.path.expanduser("~") + "/") folder_row = guiutils.get_two_column_box(Gtk.Label(label=_("Export folder:")), out_folder, INPUT_LABELS_WITDH) file_type_combo = Gtk.ComboBoxText() for img in _img_types: file_type_combo.append_text(img) file_type_combo.set_active(0) file_type_combo.connect("changed", _file_type_changed, extension_label) file_type_row = guiutils.get_two_column_box(Gtk.Label(label=_("Image type:")), file_type_combo, INPUT_LABELS_WITDH) file_frame = guiutils.get_named_frame_with_vbox(None, [file_type_row, name_row, folder_row]) vbox = Gtk.VBox(False, 2) vbox.pack_start(frame_frame, False, False, 0) vbox.pack_start(guiutils.pad_label(12, 12), False, False, 0) vbox.pack_start(file_frame, False, False, 0) alignment = guiutils.set_margins(vbox, 12, 12, 12, 12) dialog.vbox.pack_start(alignment, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.connect( "response", callback, (file_name, out_folder, file_type_combo, frame) ) # (file_name, out_folder, track_select_combo, cascade_check, op_combo, audio_track_select_combo)) dialog.show_all()
def export_screenshot_dialog(callback, frame, parent_window, project_name): cancel_str = _("Cancel").encode('utf-8') ok_str = _("Export Image").encode('utf-8') dialog = gtk.Dialog(_("Export Frame Image"), parent_window, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (cancel_str, gtk.RESPONSE_CANCEL, ok_str, gtk.RESPONSE_YES)) global _screenshot_img _screenshot_img = guiutils.get_gtk_image_from_file(get_displayed_image_path(), 300) frame_frame = guiutils.get_named_frame_with_vbox(None, [_screenshot_img]) INPUT_LABELS_WITDH = 320 project_name = project_name.strip(".flb") file_name = gtk.Entry() file_name.set_text(project_name) extension_label = gtk.Label(".png") extension_label.set_size_request(35, 20) name_pack = gtk.HBox(False, 4) name_pack.pack_start(file_name, True, True, 0) name_pack.pack_start(extension_label, False, False, 0) name_row = guiutils.get_two_column_box(gtk.Label(_("Export file name:")), name_pack, INPUT_LABELS_WITDH) out_folder = gtk.FileChooserButton(_("Select target folder")) out_folder.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER) out_folder.set_current_folder(os.path.expanduser("~") + "/") folder_row = guiutils.get_two_column_box(gtk.Label(_("Export folder:")), out_folder, INPUT_LABELS_WITDH) file_type_combo = gtk.combo_box_new_text() for img in _img_types: file_type_combo.append_text(img) file_type_combo.set_active(0) file_type_combo.connect("changed", _file_type_changed, extension_label) file_type_row = guiutils.get_two_column_box(gtk.Label(_("Image type:")), file_type_combo, INPUT_LABELS_WITDH) file_frame = guiutils.get_named_frame_with_vbox(None, [file_type_row, name_row, folder_row]) vbox = gtk.VBox(False, 2) vbox.pack_start(frame_frame, False, False, 0) vbox.pack_start(guiutils.pad_label(12, 12), False, False, 0) vbox.pack_start(file_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) dialog.vbox.pack_start(alignment, True, True, 0) dialogutils.default_behaviour(dialog) dialog.connect('response', callback, (file_name, out_folder, file_type_combo, frame)) #(file_name, out_folder, track_select_combo, cascade_check, op_combo, audio_track_select_combo)) dialog.show_all()
def export_screenshot_dialog(callback, frame, parent_window, project_name): cancel_str = _("Cancel").encode('utf-8') ok_str = _("Export Image").encode('utf-8') dialog = Gtk.Dialog(_("Export Frame Image"), parent_window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (cancel_str, Gtk.ResponseType.CANCEL, ok_str, Gtk.ResponseType.YES)) global _screenshot_img _screenshot_img = guiutils.get_gtk_image_from_file(get_displayed_image_path(), 300) frame_frame = guiutils.get_named_frame_with_vbox(None, [_screenshot_img]) INPUT_LABELS_WITDH = 320 project_name = project_name.strip(".flb") file_name = Gtk.Entry() file_name.set_text(project_name) extension_label = Gtk.Label(label=".png") extension_label.set_size_request(35, 20) name_pack = Gtk.HBox(False, 4) name_pack.pack_start(file_name, True, True, 0) name_pack.pack_start(extension_label, False, False, 0) name_row = guiutils.get_two_column_box(Gtk.Label(label=_("Export file name:")), name_pack, INPUT_LABELS_WITDH) out_folder = Gtk.FileChooserButton(_("Select target folder")) out_folder.set_action(Gtk.FileChooserAction.SELECT_FOLDER) out_folder.set_current_folder(os.path.expanduser("~") + "/") folder_row = guiutils.get_two_column_box(Gtk.Label(label=_("Export folder:")), out_folder, INPUT_LABELS_WITDH) file_type_combo = Gtk.ComboBoxText() for img in _img_types: file_type_combo.append_text(img) file_type_combo.set_active(0) file_type_combo.connect("changed", _file_type_changed, extension_label) file_type_row = guiutils.get_two_column_box(Gtk.Label(label=_("Image type:")), file_type_combo, INPUT_LABELS_WITDH) file_frame = guiutils.get_named_frame_with_vbox(None, [file_type_row, name_row, folder_row]) vbox = Gtk.VBox(False, 2) vbox.pack_start(frame_frame, False, False, 0) vbox.pack_start(guiutils.pad_label(12, 12), False, False, 0) vbox.pack_start(file_frame, False, False, 0) alignment = guiutils.set_margins(vbox, 12, 12, 12, 12) dialog.vbox.pack_start(alignment, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.connect('response', callback, (file_name, out_folder, file_type_combo, frame)) #(file_name, out_folder, track_select_combo, cascade_check, op_combo, audio_track_select_combo)) dialog.show_all()
def show_freebar_conf_dialog(): dialog = Gtk.Dialog(_("Free Bar Configuration"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel"), Gtk.ResponseType.REJECT, _("OK"), Gtk.ResponseType.ACCEPT)) panel = _get_freebar_conf_panel() guiutils.set_margins(panel, 4, 24, 6, 0) dialog.connect('response', _freebar_dialog_callback, (None, None)) dialog.vbox.pack_start(panel, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.set_transient_for(gui.editor_window.window) dialog.show_all()
def _color_pulse_clip_dialog(callback): dialog = Gtk.Dialog( _("Create Color Pulse Clip"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), Gtk.ResponseType.REJECT, _("Create").encode('utf-8'), Gtk.ResponseType.ACCEPT)) s1_box, s1_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) s2_box, s2_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) s3_box, s3_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) s4_box, s4_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) m1_box, m1_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) m2_box, m2_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) row1 = guiutils.get_two_column_box(Gtk.Label(label=_("Speed 1:")), s1_box, 200) row2 = guiutils.get_two_column_box(Gtk.Label(label=_("Speed 2:")), s2_box, 200) row3 = guiutils.get_two_column_box(Gtk.Label(label=_("Speed 3:")), s3_box, 200) row4 = guiutils.get_two_column_box(Gtk.Label(label=_("Speed 4:")), s4_box, 200) row5 = guiutils.get_two_column_box(Gtk.Label(label=_("Move 1:")), m1_box, 200) row6 = guiutils.get_two_column_box(Gtk.Label(label=_("Move 2:")), m2_box, 200) vbox = Gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row3, False, False, 0) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) vbox.set_size_request(450, 220) align = guiutils.set_margins(vbox, 12, 0, 12, 12) selection_widgets = (s1_slider, s2_slider, s3_slider, s4_slider, m1_slider, m2_slider) dialog.connect('response', callback, selection_widgets) dialog.vbox.pack_start(align, True, True, 0) dialogutils.default_behaviour(dialog) dialogutils.set_outer_margins(dialog.vbox) dialog.show_all()
def _display_single_instance_window(): GObject.source_remove(timeout_id) primary_txt = _("Batch Render Queue already running!") msg = _("Batch Render Queue application was detected in session dbus.") content = dialogutils.get_warning_message_dialog_panel(primary_txt, msg, True) align = dialogutils.get_default_alignment(content) dialog = Gtk.Dialog("", None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("OK").encode('utf-8'), Gtk.ResponseType.OK)) dialog.vbox.pack_start(align, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.connect('response', _early_exit) dialog.show_all()
def _color_pulse_clip_dialog(callback): dialog = Gtk.Dialog( _("Create Color Pulse Clip"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel").encode("utf-8"), Gtk.ResponseType.REJECT, _("Create").encode("utf-8"), Gtk.ResponseType.ACCEPT), ) s1_box, s1_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) s2_box, s2_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) s3_box, s3_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) s4_box, s4_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) m1_box, m1_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) m2_box, m2_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) row1 = guiutils.get_two_column_box(Gtk.Label(label=_("Speed 1:")), s1_box, 200) row2 = guiutils.get_two_column_box(Gtk.Label(label=_("Speed 2:")), s2_box, 200) row3 = guiutils.get_two_column_box(Gtk.Label(label=_("Speed 3:")), s3_box, 200) row4 = guiutils.get_two_column_box(Gtk.Label(label=_("Speed 4:")), s4_box, 200) row5 = guiutils.get_two_column_box(Gtk.Label(label=_("Move 1:")), m1_box, 200) row6 = guiutils.get_two_column_box(Gtk.Label(label=_("Move 2:")), m2_box, 200) vbox = Gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row3, False, False, 0) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) vbox.set_size_request(450, 220) align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) align.set_padding(12, 0, 12, 12) align.add(vbox) selection_widgets = (s1_slider, s2_slider, s3_slider, s4_slider, m1_slider, m2_slider) dialog.connect("response", callback, selection_widgets) dialog.vbox.pack_start(align, True, True, 0) dialogutils.default_behaviour(dialog) dialog.show_all()
def _display_single_instance_window(): gobject.source_remove(timeout_id) primary_txt = _("Batch Render Queue already running!") msg = _("Batch Render Queue application was detected in session dbus.") #msg = msg1 + msg2 content = dialogutils.get_warning_message_dialog_panel(primary_txt, msg, True) align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) align.set_padding(0, 12, 0, 0) align.add(content) dialog = gtk.Dialog("", None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("OK").encode('utf-8'), gtk.RESPONSE_OK)) dialog.vbox.pack_start(align, True, True, 0) dialogutils.default_behaviour(dialog) dialog.connect('response', _early_exit) dialog.show_all()
def show_disk_management_dialog(): dialog = Gtk.Dialog(_("Disk Cache Manager"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Close").encode('utf-8'), Gtk.ResponseType.CLOSE)) panels = _get_disk_dir_panels() pane = Gtk.VBox(True, 2) for panel in panels: pane.pack_start(panel.vbox, True, True, 0) guiutils.set_margins(pane, 12, 24, 12, 12) dialog.connect('response', dialogutils.dialog_destroy) dialog.vbox.pack_start(pane, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.show_all() return dialog
def _open_image_sequence_dialog(callback, title, rows, data): parent_window = gui.editor_window.window cancel_str = _("Cancel") ok_str = _("Ok") dialog = Gtk.Dialog( title, parent_window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (cancel_str, Gtk.ResponseType.CANCEL, ok_str, Gtk.ResponseType.ACCEPT)) vbox = Gtk.VBox(False, 2) for row in rows: vbox.pack_start(row, False, False, 0) alignment = dialogutils.get_alignment2(vbox) dialog.vbox.pack_start(alignment, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.connect('response', callback, data) dialog.show_all()
def _display_single_instance_window(): gobject.source_remove(timeout_id) primary_txt = _("Batch Render Queue already running!") msg = _("Batch Render Queue application was detected in session dbus.") #msg = msg1 + msg2 content = dialogutils.get_warning_message_dialog_panel( primary_txt, msg, True) align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) align.set_padding(0, 12, 0, 0) align.add(content) dialog = gtk.Dialog("", None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("OK").encode('utf-8'), gtk.RESPONSE_OK)) dialog.vbox.pack_start(align, True, True, 0) dialogutils.default_behaviour(dialog) dialog.connect('response', _early_exit) dialog.show_all()
def _color_pulse_clip_dialog(callback): dialog = gtk.Dialog(_("Create Color Pulse Clip"), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), gtk.RESPONSE_REJECT, _("Create").encode('utf-8'), gtk.RESPONSE_ACCEPT)) s1_box, s1_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) s2_box, s2_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) s3_box, s3_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) s4_box, s4_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) m1_box, m1_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) m2_box, m2_slider = guiutils.get_non_property_slider_row(0, 100, 1, 100) row1 = guiutils.get_two_column_box(gtk.Label(_("Speed 1:")), s1_box, 200) row2 = guiutils.get_two_column_box(gtk.Label(_("Speed 2:")), s2_box, 200) row3 = guiutils.get_two_column_box(gtk.Label(_("Speed 3:")), s3_box, 200) row4 = guiutils.get_two_column_box(gtk.Label(_("Speed 4:")), s4_box, 200) row5 = guiutils.get_two_column_box(gtk.Label(_("Move 1:")), m1_box, 200) row6 = guiutils.get_two_column_box(gtk.Label(_("Move 2:")), m2_box, 200) vbox = gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row3, False, False, 0) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(gtk.Label(), True, True, 0) vbox.set_size_request(450, 220) align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) align.set_padding(12, 0, 12, 12) align.add(vbox) selection_widgets = (s1_slider, s2_slider, s3_slider, s4_slider, m1_slider, m2_slider) dialog.connect('response', callback, selection_widgets) dialog.vbox.pack_start(align, True, True, 0) dialogutils.default_behaviour(dialog) dialog.show_all()
def show_disk_management_dialog(): dialog = Gtk.Dialog(_("Disk Cache Manager"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Close").encode('utf-8'), Gtk.ResponseType.CLOSE)) global _panels _panels = _get_disk_dir_panels() pane = Gtk.VBox(True, 2) for panel in _panels: pane.pack_start(panel.vbox, True, True, 0) guiutils.set_margins(pane, 12, 24, 12, 12) dialog.connect('response', dialogutils.dialog_destroy) dialog.vbox.pack_start(pane, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.show_all() return dialog
def profiles_manager_dialog(): dialog = Gtk.Dialog(_("Profiles Manager"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Close Manager"), Gtk.ResponseType.CLOSE)) panel2, user_profiles_view = _get_user_profiles_panel() guiutils.set_margins(panel2, 12, 14, 12, 6) panel1 = _get_factory_profiles_panel(user_profiles_view) guiutils.set_margins(panel1, 12, 12, 12, 12) pane = Gtk.HBox(True, 2) pane.pack_start(panel1, True, True, 0) pane.pack_start(panel2, True, True, 0) pane.set_size_request(PROFILES_WIDTH * 2, PROFILES_HEIGHT) pane.show_all() dialog.connect('response', dialogutils.dialog_destroy) dialog.vbox.pack_start(pane, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.show_all() return dialog
def profiles_manager_dialog(): dialog = Gtk.Dialog(_("Profiles Manager"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Close Manager").encode('utf-8'), Gtk.ResponseType.CLOSE)) panel2, user_profiles_view = _get_user_profiles_panel() guiutils.set_margins(panel2, 12, 14, 12, 6) panel1 = _get_factory_profiles_panel(user_profiles_view) guiutils.set_margins(panel1, 12, 12, 12, 12) pane = Gtk.HBox(True, 2) pane.pack_start(panel1, True, True, 0) pane.pack_start(panel2, True, True, 0) pane.set_size_request(PROFILES_WIDTH * 2, PROFILES_HEIGHT) pane.show_all() dialog.connect('response', dialogutils.dialog_destroy) dialog.vbox.pack_start(pane, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.show_all() return dialog
def preferences_dialog(): dialog = Gtk.Dialog(_("Editor Preferences"), None, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (_("Cancel").encode('utf-8'), Gtk.ResponseType.REJECT, _("OK").encode('utf-8'), Gtk.ResponseType.ACCEPT)) gen_opts_panel, gen_opts_widgets = _general_options_panel(_thumbs_select_clicked, _renders_select_clicked) edit_prefs_panel, edit_prefs_widgets = _edit_prefs_panel() view_pres_panel, view_pref_widgets = _view_prefs_panel() notebook = Gtk.Notebook() notebook.set_size_request(PREFERENCES_WIDTH, PREFERENCES_HEIGHT) notebook.append_page(gen_opts_panel, Gtk.Label(label=_("General"))) notebook.append_page(edit_prefs_panel, Gtk.Label(label=_("Editing"))) notebook.append_page(view_pres_panel, Gtk.Label(label=_("View"))) guiutils.set_margins(notebook, 4, 24, 6, 0) dialog.connect('response', _preferences_dialog_callback, (gen_opts_widgets, edit_prefs_widgets, view_pref_widgets)) dialog.vbox.pack_start(notebook, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.show_all()
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): 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"), 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 show_slowmo_dialog(media_file, _response_callback): folder, file_name = os.path.split(media_file.path) name, ext = os.path.splitext(file_name) dialog = Gtk.Dialog(_("Render Slow/Fast Motion Video File"), gui.editor_window.window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (Gtk.STOCK_CANCEL, Gtk.ResponseType.REJECT, _("Render").encode('utf-8'), Gtk.ResponseType.ACCEPT)) media_file_label = Gtk.Label(label=_("Source Media File: ")) media_name = Gtk.Label(label="<b>" + media_file.name + "</b>") media_name.set_use_markup(True) SOURCE_PAD = 8 SOURCE_HEIGHT = 20 mf_row = guiutils.get_left_justified_box([media_file_label, guiutils.pad_label(SOURCE_PAD, SOURCE_HEIGHT), media_name]) mark_in = Gtk.Label(label=_("<b>not set</b>")) mark_out = Gtk.Label(label=_("<b>not set</b>")) if media_file.mark_in != -1: mark_in = Gtk.Label(label="<b>" + utils.get_tc_string(media_file.mark_in) + "</b>") if media_file.mark_out != -1: mark_out = Gtk.Label(label="<b>" + utils.get_tc_string(media_file.mark_out) + "</b>") mark_in.set_use_markup(True) mark_out.set_use_markup(True) fb_widgets = utils.EmptyClass() fb_widgets.file_name = Gtk.Entry() fb_widgets.file_name.set_text(name + "_MOTION") fb_widgets.extension_label = Gtk.Label() fb_widgets.extension_label.set_size_request(45, 20) name_row = Gtk.HBox(False, 4) name_row.pack_start(fb_widgets.file_name, True, True, 0) name_row.pack_start(fb_widgets.extension_label, False, False, 4) fb_widgets.out_folder = Gtk.FileChooserButton(_("Select Target Folder")) fb_widgets.out_folder.set_action(Gtk.FileChooserAction.SELECT_FOLDER) fb_widgets.out_folder.set_current_folder(folder) label = Gtk.Label(label=_("Speed %:")) adjustment = Gtk.Adjustment(float(100), float(1), float(600), float(1)) fb_widgets.hslider = Gtk.HScale() fb_widgets.hslider.set_adjustment(adjustment) fb_widgets.hslider.set_draw_value(False) spin = Gtk.SpinButton() spin.set_numeric(True) spin.set_adjustment(adjustment) fb_widgets.hslider.set_digits(0) spin.set_digits(0) slider_hbox = Gtk.HBox(False, 4) slider_hbox.pack_start(fb_widgets.hslider, True, True, 0) slider_hbox.pack_start(spin, False, False, 4) slider_hbox.set_size_request(350,35) hbox = Gtk.HBox(False, 2) hbox.pack_start(guiutils.pad_label(8, 8), False, False, 0) hbox.pack_start(label, False, False, 0) hbox.pack_start(slider_hbox, False, False, 0) profile_selector = ProfileSelector() profile_selector.fill_options() profile_selector.widget.set_sensitive(True) fb_widgets.out_profile_combo = profile_selector.widget quality_selector = RenderQualitySelector() fb_widgets.quality_cb = quality_selector.widget # Encoding encoding_selector = RenderEncodingSelector(quality_selector, fb_widgets.extension_label, None) encoding_selector.encoding_selection_changed() fb_widgets.encodings_cb = encoding_selector.widget objects_list = Gtk.TreeStore(str, bool) objects_list.append(None, [_("Full Source Length"), True]) if media_file.mark_in != -1 and media_file.mark_out != -1: range_available = True else: range_available = False objects_list.append(None, [_("Source Mark In to Mark Out"), range_available]) fb_widgets.render_range = Gtk.ComboBox.new_with_model(objects_list) renderer_text = Gtk.CellRendererText() fb_widgets.render_range.pack_start(renderer_text, True) fb_widgets.render_range.add_attribute(renderer_text, "text", 0) fb_widgets.render_range.add_attribute(renderer_text, 'sensitive', 1) fb_widgets.render_range.set_active(0) fb_widgets.render_range.show() # To update rendered length display clip_length = _get_rendered_slomo_clip_length(media_file, fb_widgets.render_range, 100) clip_length_label = Gtk.Label(label=utils.get_tc_string(clip_length)) fb_widgets.hslider.connect("value-changed", _slomo_speed_changed, media_file, fb_widgets.render_range, clip_length_label) fb_widgets.render_range.connect("changed", _slomo_range_changed, media_file, fb_widgets.hslider, clip_length_label) # Build gui vbox = Gtk.VBox(False, 2) vbox.pack_start(mf_row, False, False, 0) vbox.pack_start(guiutils.get_left_justified_box([Gtk.Label(label=_("Source Mark In: ")), guiutils.pad_label(SOURCE_PAD, SOURCE_HEIGHT), mark_in]), False, False, 0) vbox.pack_start(guiutils.get_left_justified_box([Gtk.Label(label=_("Source_Mark Out: ")), guiutils.pad_label(SOURCE_PAD, SOURCE_HEIGHT), mark_out]), False, False, 0) vbox.pack_start(guiutils.pad_label(18, 12), False, False, 0) vbox.pack_start(hbox, False, False, 0) vbox.pack_start(guiutils.pad_label(18, 12), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Target File:")), name_row, 120), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Target Folder:")), fb_widgets.out_folder, 120), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Target Profile:")), fb_widgets.out_profile_combo, 200), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Target Encoding:")), fb_widgets.encodings_cb, 200), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Target Quality:")), fb_widgets.quality_cb, 200), False, False, 0) vbox.pack_start(guiutils.pad_label(18, 12), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Render Range:")), fb_widgets.render_range, 180), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Rendered Clip Length:")), clip_length_label, 180), False, False, 0) alignment = guiutils.set_margins(vbox, 6, 24, 24, 24) dialog.vbox.pack_start(alignment, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.connect('response', _response_callback, fb_widgets, media_file) dialog.show_all()
def show_reverse_dialog(media_file, default_range_render, _response_callback): folder, file_name = os.path.split(media_file.path) if media_file.is_proxy_file: folder, file_name = os.path.split(media_file.second_file_path) name, ext = os.path.splitext(file_name) dialog = Gtk.Dialog(_("Render Reverse Motion Video File"), gui.editor_window.window, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, (Gtk.STOCK_CANCEL, Gtk.ResponseType.REJECT, _("Render").encode('utf-8'), Gtk.ResponseType.ACCEPT)) media_file_label = Gtk.Label(label=_("Source Media File: ")) media_name = Gtk.Label(label="<b>" + media_file.name + "</b>") media_name.set_use_markup(True) SOURCE_PAD = 8 SOURCE_HEIGHT = 20 mf_row = guiutils.get_left_justified_box([media_file_label, guiutils.pad_label(SOURCE_PAD, SOURCE_HEIGHT), media_name]) mark_in = Gtk.Label(label=_("<b>not set</b>")) mark_out = Gtk.Label(label=_("<b>not set</b>")) if media_file.mark_in != -1: mark_in = Gtk.Label(label="<b>" + utils.get_tc_string(media_file.mark_in) + "</b>") if media_file.mark_out != -1: mark_out = Gtk.Label(label="<b>" + utils.get_tc_string(media_file.mark_out) + "</b>") mark_in.set_use_markup(True) mark_out.set_use_markup(True) fb_widgets = utils.EmptyClass() fb_widgets.file_name = Gtk.Entry() fb_widgets.file_name.set_text(name + "_REVERSE") fb_widgets.extension_label = Gtk.Label() fb_widgets.extension_label.set_size_request(45, 20) name_row = Gtk.HBox(False, 4) name_row.pack_start(fb_widgets.file_name, True, True, 0) name_row.pack_start(fb_widgets.extension_label, False, False, 4) fb_widgets.out_folder = Gtk.FileChooserButton(_("Select Target Folder")) fb_widgets.out_folder.set_action(Gtk.FileChooserAction.SELECT_FOLDER) fb_widgets.out_folder.set_current_folder(folder) label = Gtk.Label(label=_("Speed %:")) adjustment = Gtk.Adjustment(float(-100), float(-600), float(-1), float(1)) fb_widgets.hslider = Gtk.HScale() fb_widgets.hslider.set_adjustment(adjustment) fb_widgets.hslider.set_draw_value(False) spin = Gtk.SpinButton() spin.set_numeric(True) spin.set_adjustment(adjustment) fb_widgets.hslider.set_digits(0) spin.set_digits(0) slider_hbox = Gtk.HBox(False, 4) slider_hbox.pack_start(fb_widgets.hslider, True, True, 0) slider_hbox.pack_start(spin, False, False, 4) slider_hbox.set_size_request(450,35) hbox = Gtk.HBox(False, 2) hbox.pack_start(guiutils.pad_label(8, 8), False, False, 0) hbox.pack_start(slider_hbox, False, False, 0) profile_selector = ProfileSelector() profile_selector.fill_options() profile_selector.widget.set_sensitive(True) fb_widgets.out_profile_combo = profile_selector.widget quality_selector = RenderQualitySelector() fb_widgets.quality_cb = quality_selector.widget # Encoding encoding_selector = RenderEncodingSelector(quality_selector, fb_widgets.extension_label, None) encoding_selector.encoding_selection_changed() fb_widgets.encodings_cb = encoding_selector.widget objects_list = Gtk.TreeStore(str, bool) objects_list.append(None, [_("Full Source Length"), True]) if media_file.mark_in != -1 and media_file.mark_out != -1: range_available = True else: range_available = False objects_list.append(None, [_("Source Mark In to Mark Out"), range_available]) fb_widgets.render_range = Gtk.ComboBox.new_with_model(objects_list) renderer_text = Gtk.CellRendererText() fb_widgets.render_range.pack_start(renderer_text, True) fb_widgets.render_range.add_attribute(renderer_text, "text", 0) fb_widgets.render_range.add_attribute(renderer_text, 'sensitive', 1) if default_range_render == False: fb_widgets.render_range.set_active(0) else: fb_widgets.render_range.set_active(1) fb_widgets.render_range.show() # To update rendered length display clip_length = _get_rendered_slomo_clip_length(media_file, fb_widgets.render_range, 100) clip_length_label = Gtk.Label(label=utils.get_tc_string(clip_length)) fb_widgets.hslider.connect("value-changed", _reverse_speed_changed, media_file, fb_widgets.render_range, clip_length_label) fb_widgets.render_range.connect("changed", _reverse_range_changed, media_file, fb_widgets.hslider, clip_length_label) # Build gui vbox = Gtk.VBox(False, 2) vbox.pack_start(mf_row, False, False, 0) vbox.pack_start(guiutils.get_left_justified_box([Gtk.Label(label=_("Source Mark In: ")), guiutils.pad_label(SOURCE_PAD, SOURCE_HEIGHT), mark_in]), False, False, 0) vbox.pack_start(guiutils.get_left_justified_box([Gtk.Label(label=_("Source Mark Out: ")), guiutils.pad_label(SOURCE_PAD, SOURCE_HEIGHT), mark_out]), False, False, 0) vbox.pack_start(guiutils.pad_label(18, 12), False, False, 0) vbox.pack_start(label, False, False, 0) vbox.pack_start(hbox, False, False, 0) vbox.pack_start(guiutils.pad_label(18, 12), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Target File:")), name_row, 120), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Target Folder:")), fb_widgets.out_folder, 120), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Target Profile:")), fb_widgets.out_profile_combo, 200), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Target Encoding:")), fb_widgets.encodings_cb, 200), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Target Quality:")), fb_widgets.quality_cb, 200), False, False, 0) vbox.pack_start(guiutils.pad_label(18, 12), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Render Range:")), fb_widgets.render_range, 180), False, False, 0) vbox.pack_start(guiutils.get_two_column_box(Gtk.Label(label=_("Rendered Clip Length:")), clip_length_label, 180), False, False, 0) alignment = guiutils.set_margins(vbox, 6, 24, 24, 24) dialog.vbox.pack_start(alignment, True, True, 0) dialogutils.set_outer_margins(dialog.vbox) dialogutils.default_behaviour(dialog) dialog.connect('response', _response_callback, fb_widgets, media_file) dialog.show_all()