def _view_prefs_panel(): prefs = editorpersistance.prefs # Widgets force_english_check = Gtk.CheckButton() force_english_check.set_active(prefs.use_english_always) display_splash_check = Gtk.CheckButton() display_splash_check.set_active(prefs.display_splash_screen) buttons_combo = Gtk.ComboBoxText() buttons_combo.append_text(_("Glass")) buttons_combo.append_text(_("Simple")) if prefs.buttons_style == editorpersistance.GLASS_STYLE: buttons_combo.set_active(0) else: buttons_combo.set_active(1) dark_combo = Gtk.ComboBoxText() dark_combo.append_text(_("Light Theme")) dark_combo.append_text(_("Dark Theme")) if prefs.dark_theme == True: dark_combo.set_active(1) else: dark_combo.set_active(0) theme_combo = Gtk.ComboBoxText() for theme in gui._THEME_COLORS: theme_combo.append_text(theme[4]) theme_combo.set_active(prefs.theme_fallback_colors) audio_levels_combo = Gtk.ComboBoxText() audio_levels_combo.append_text(_("Display All Levels")) audio_levels_combo.append_text(_("Display Levels On Request")) if prefs.display_all_audio_levels == True: audio_levels_combo.set_active(0) else: audio_levels_combo.set_active(1) # Layout row0 = _row(guiutils.get_checkbox_row_box(force_english_check, Gtk.Label(label=_("Use English texts on localized OS")))) row1 = _row(guiutils.get_checkbox_row_box(display_splash_check, Gtk.Label(label=_("Display splash screen")))) row2 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Buttons style:")), buttons_combo, PREFERENCES_LEFT)) row3 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Icons and color optimized for:")), dark_combo, PREFERENCES_LEFT)) row4 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Theme detection fail fallback colors:")), theme_combo, PREFERENCES_LEFT)) row5 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Default audio levels display:")), audio_levels_combo, PREFERENCES_LEFT)) vbox = Gtk.VBox(False, 2) vbox.pack_start(row0, False, False, 0) 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(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) return vbox, (force_english_check, display_splash_check, buttons_combo, dark_combo, theme_combo, audio_levels_combo)
def _edit_prefs_panel(): prefs = editorpersistance.prefs # Widgets auto_play_in_clip_monitor = gtk.CheckButton() auto_play_in_clip_monitor.set_active(prefs.auto_play_in_clip_monitor) auto_center_on_stop = gtk.CheckButton() auto_center_on_stop.set_active(prefs.auto_center_on_play_stop) spin_adj = gtk.Adjustment(prefs.default_grfx_length, 1, 15000, 1) gfx_length_spin = gtk.SpinButton(spin_adj) gfx_length_spin.set_numeric(True) trim_exit_on_empty = gtk.CheckButton() trim_exit_on_empty.set_active(prefs.empty_click_exits_trims) quick_enter_trim = gtk.CheckButton() quick_enter_trim.set_active(prefs.quick_enter_trims) remember_clip_frame = gtk.CheckButton() remember_clip_frame.set_active(prefs.remember_monitor_clip_frame) # Layout row1 = guiutils.get_checkbox_row_box( auto_play_in_clip_monitor, gtk.Label(_("Autoplay new Clips in Clip Monitor"))) row2 = guiutils.get_checkbox_row_box( auto_center_on_stop, gtk.Label(_("Center Current Frame on Playback Stop"))) row4 = guiutils.get_two_column_box( gtk.Label(_("Graphics default length:")), gfx_length_spin, PREFERENCES_LEFT) row5 = guiutils.get_checkbox_row_box( trim_exit_on_empty, gtk.Label(_("Trim Modes exit on empty click"))) row6 = guiutils.get_checkbox_row_box( quick_enter_trim, gtk.Label(_("Quick enter Trim Modes"))) row7 = guiutils.get_checkbox_row_box( remember_clip_frame, gtk.Label(_("Remember Monitor Clip Frame"))) vbox = gtk.VBox(False, 2) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row7, 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) return align, (auto_play_in_clip_monitor, auto_center_on_stop, gfx_length_spin, trim_exit_on_empty, quick_enter_trim, remember_clip_frame)
def _edit_prefs_panel(): prefs = editorpersistance.prefs # Widgets spin_adj = Gtk.Adjustment(prefs.default_grfx_length, 1, 15000, 1) gfx_length_spin = Gtk.SpinButton() gfx_length_spin.set_adjustment(spin_adj) gfx_length_spin.set_numeric(True) overwrite_clip_drop = Gtk.ComboBoxText() active = 0 if prefs.overwrite_clip_drop == False: active = 1 overwrite_clip_drop.append_text(_("Overwrite blanks")) overwrite_clip_drop.append_text(_("Always insert")) overwrite_clip_drop.set_active(active) cover_delete = Gtk.CheckButton() cover_delete.set_active(prefs.trans_cover_delete) active = 0 if prefs.mouse_scroll_action_is_zoom == False: active = 1 mouse_scroll_action = Gtk.ComboBoxText() mouse_scroll_action.append_text(_("Zoom, Control to Scroll Horizontal")) mouse_scroll_action.append_text(_("Scroll Horizontal, Control to Zoom")) mouse_scroll_action.set_active(active) hide_file_ext_button = Gtk.CheckButton() if hasattr(prefs, 'hide_file_ext'): hide_file_ext_button.set_active(prefs.hide_file_ext) # Layout row4 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Graphics default length:")), gfx_length_spin, PREFERENCES_LEFT)) row8 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Media drag'n'drop action on non-V1 tracks:")), overwrite_clip_drop, PREFERENCES_LEFT)) row9 = _row(guiutils.get_checkbox_row_box(cover_delete, Gtk.Label(label=_("Cover Transition/Fade clips on delete if possible")))) # Jul-2016 - SvdB - For play_pause button row11 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Mouse Middle Button Scroll Action:")), mouse_scroll_action, PREFERENCES_LEFT)) row12 = _row(guiutils.get_checkbox_row_box(hide_file_ext_button, Gtk.Label(label=_("Hide file extensions when importing Clips")))) # Apr-2017 - SvdB - For Fast Forward / Reverse options vbox = Gtk.VBox(False, 2) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row9, False, False, 0) vbox.pack_start(row8, False, False, 0) vbox.pack_start(row11, False, False, 0) vbox.pack_start(row12, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) # Jul-2016 - SvdB - Added play_pause_button # Apr-2017 - SvdB - Added ffwd / rev values return vbox, (gfx_length_spin, overwrite_clip_drop, cover_delete, mouse_scroll_action, hide_file_ext_button)
def _general_options_panel(): prefs = editorpersistance.prefs # Widgets open_in_last_opened_check = Gtk.CheckButton() open_in_last_opened_check.set_active(prefs.open_in_last_opended_media_dir) open_in_last_rendered_check = Gtk.CheckButton() open_in_last_rendered_check.set_active(prefs.remember_last_render_dir) default_profile_combo = Gtk.ComboBoxText() profiles = mltprofiles.get_profiles() for profile in profiles: default_profile_combo.append_text(profile[0]) default_profile_combo.set_active(mltprofiles.get_default_profile_index()) spin_adj = Gtk.Adjustment(prefs.undos_max, editorpersistance.UNDO_STACK_MIN, editorpersistance.UNDO_STACK_MAX, 1) undo_max_spin = Gtk.SpinButton.new_with_range(editorpersistance.UNDO_STACK_MIN, editorpersistance.UNDO_STACK_MAX, 1) undo_max_spin.set_adjustment(spin_adj) undo_max_spin.set_numeric(True) autosave_combo = Gtk.ComboBoxText() AUTO_SAVE_OPTS = ((-1, _("No Autosave")),(1, _("1 min")),(2, _("2 min")),(5, _("5 min"))) for i in range(0, len(AUTO_SAVE_OPTS)): time, desc = AUTO_SAVE_OPTS[i] autosave_combo.append_text(desc) autosave_combo.set_active(prefs.auto_save_delay_value_index) load_order_combo = Gtk.ComboBoxText() load_order_combo.append_text(_("Absolute paths first, relative second")) load_order_combo.append_text(_("Relative paths first, absolute second")) load_order_combo.append_text(_("Absolute paths only")) load_order_combo.set_active(prefs.media_load_order) # Layout row1 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Default Profile:")), default_profile_combo, PREFERENCES_LEFT)) row2 = _row(guiutils.get_checkbox_row_box(open_in_last_opened_check, Gtk.Label(label=_("Remember last media directory")))) row3 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Undo stack size:")), undo_max_spin, PREFERENCES_LEFT)) row5 = _row(guiutils.get_checkbox_row_box(open_in_last_rendered_check, Gtk.Label(label=_("Remember last render directory")))) row6 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Autosave for crash recovery every:")), autosave_combo, PREFERENCES_LEFT)) row9 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Media look-up order on load:")), load_order_combo, PREFERENCES_LEFT)) vbox = Gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row3, False, False, 0) vbox.pack_start(row9, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) return vbox, (default_profile_combo, open_in_last_opened_check, open_in_last_rendered_check, undo_max_spin, load_order_combo)
def _view_prefs_panel(): prefs = editorpersistance.prefs # Widgets force_english_check = Gtk.CheckButton() force_english_check.set_active(prefs.use_english_always) display_splash_check = Gtk.CheckButton() display_splash_check.set_active(prefs.display_splash_screen) buttons_combo = Gtk.ComboBoxText() buttons_combo.append_text(_("Glass")) buttons_combo.append_text(_("Simple")) if prefs.buttons_style == editorpersistance.GLASS_STYLE: buttons_combo.set_active(0) else: buttons_combo.set_active(1) dark_combo = Gtk.ComboBoxText() dark_combo.append_text(_("Light Theme")) dark_combo.append_text(_("Dark Theme")) if prefs.dark_theme == True: dark_combo.set_active(1) else: dark_combo.set_active(0) # Layout row0 = guiutils.get_checkbox_row_box(force_english_check, Gtk.Label(label=_("Use English texts on localized OS"))) row1 = guiutils.get_checkbox_row_box(display_splash_check, Gtk.Label(label=_("Display splash screen"))) row2 = guiutils.get_two_column_box(Gtk.Label(label=_("Buttons style:")), buttons_combo, PREFERENCES_LEFT) row3 = guiutils.get_two_column_box( Gtk.Label(label=_("Icons and color optimized for:")), dark_combo, PREFERENCES_LEFT ) vbox = Gtk.VBox(False, 2) vbox.pack_start(row0, False, False, 0) 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) align = Gtk.Alignment.new(0.5, 0.5, 1.0, 1.0) align.set_padding(12, 0, 12, 12) align.add(vbox) return align, (force_english_check, display_splash_check, buttons_combo, dark_combo)
def _edit_prefs_panel(): prefs = editorpersistance.prefs # Widgets auto_play_in_clip_monitor = gtk.CheckButton() auto_play_in_clip_monitor.set_active(prefs.auto_play_in_clip_monitor) auto_center_on_stop = gtk.CheckButton() auto_center_on_stop.set_active(prefs.auto_center_on_play_stop) spin_adj = gtk.Adjustment(prefs.default_grfx_length, 1, 15000, 1) gfx_length_spin = gtk.SpinButton(spin_adj) gfx_length_spin.set_numeric(True) trim_exit_on_empty = gtk.CheckButton() trim_exit_on_empty.set_active(prefs.empty_click_exits_trims) quick_enter_trim = gtk.CheckButton() quick_enter_trim.set_active(prefs.quick_enter_trims) remember_clip_frame = gtk.CheckButton() remember_clip_frame.set_active(prefs.remember_monitor_clip_frame) # Layout row1 = guiutils.get_checkbox_row_box(auto_play_in_clip_monitor, gtk.Label(_("Autoplay new Clips in Clip Monitor"))) row2 = guiutils.get_checkbox_row_box(auto_center_on_stop, gtk.Label(_("Center Current Frame on Playback Stop"))) row4 = guiutils.get_two_column_box(gtk.Label(_("Graphics default length:")), gfx_length_spin, PREFERENCES_LEFT) row5 = guiutils.get_checkbox_row_box(trim_exit_on_empty, gtk.Label(_("Trim Modes exit on empty click"))) row6 = guiutils.get_checkbox_row_box(quick_enter_trim, gtk.Label(_("Quick enter Trim Modes"))) row7 = guiutils.get_checkbox_row_box(remember_clip_frame, gtk.Label(_("Remember Monitor Clip Frame"))) vbox = gtk.VBox(False, 2) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row7, 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) return align, (auto_play_in_clip_monitor, auto_center_on_stop, gfx_length_spin, trim_exit_on_empty, quick_enter_trim, remember_clip_frame)
def _edit_prefs_panel(): prefs = editorpersistance.prefs # Widgets auto_play_in_clip_monitor = Gtk.CheckButton() auto_play_in_clip_monitor.set_active(prefs.auto_play_in_clip_monitor) auto_center_on_stop = Gtk.CheckButton() auto_center_on_stop.set_active(prefs.auto_center_on_play_stop) spin_adj = Gtk.Adjustment(prefs.default_grfx_length, 1, 15000, 1) gfx_length_spin = Gtk.SpinButton() gfx_length_spin.set_adjustment(spin_adj) gfx_length_spin.set_numeric(True) trim_exit_on_empty = Gtk.CheckButton() trim_exit_on_empty.set_active(prefs.empty_click_exits_trims) quick_enter_trim = Gtk.CheckButton() quick_enter_trim.set_active(prefs.quick_enter_trims) remember_clip_frame = Gtk.CheckButton() remember_clip_frame.set_active(prefs.remember_monitor_clip_frame) overwrite_clip_drop = Gtk.ComboBoxText() active = 0 if prefs.overwrite_clip_drop == False: active = 1 overwrite_clip_drop.append_text(_("Overwrite blanks")) overwrite_clip_drop.append_text(_("Always insert")) overwrite_clip_drop.set_active(active) cover_delete = Gtk.CheckButton() cover_delete.set_active(prefs.trans_cover_delete) # Layout row1 = _row(guiutils.get_checkbox_row_box(auto_play_in_clip_monitor, Gtk.Label(label=_("Autoplay new Clips in Clip Monitor")))) row2 = _row(guiutils.get_checkbox_row_box(auto_center_on_stop, Gtk.Label(label=_("Center Current Frame on Playback Stop")))) row4 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Graphics default length:")), gfx_length_spin, PREFERENCES_LEFT)) row5 = _row(guiutils.get_checkbox_row_box(trim_exit_on_empty, Gtk.Label(label=_("Trim Modes exit on empty click")))) row6 = _row(guiutils.get_checkbox_row_box(quick_enter_trim, Gtk.Label(label=_("Quick enter Trim Modes")))) row7 = _row(guiutils.get_checkbox_row_box(remember_clip_frame, Gtk.Label(label=_("Remember Monitor Clip Frame")))) row8 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Media drag'n'drop action on non-V1 tracks")), overwrite_clip_drop, PREFERENCES_LEFT)) row9 = _row(guiutils.get_checkbox_row_box(cover_delete, Gtk.Label(label=_("Cover Transition/Fade clips on delete if possible")))) vbox = Gtk.VBox(False, 2) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row7, False, False, 0) vbox.pack_start(row8, False, False, 0) vbox.pack_start(row9, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) return vbox, (auto_play_in_clip_monitor, auto_center_on_stop, gfx_length_spin, trim_exit_on_empty, quick_enter_trim, remember_clip_frame, overwrite_clip_drop, cover_delete)
def _performance_panel(): # Jan-2017 - SvdB # Add a panel for performance settings. The first setting is allowing multiple threads to render # the files. This is used for the real_time parameter to mlt in renderconsumer.py. # The effect depends on the computer running the program. # Max. number of threads is set to number of CPU cores. Default is 1. # Allow Frame Dropping should help getting real time output on low performance computers. prefs = editorpersistance.prefs warning_icon = Gtk.Image.new_from_stock(Gtk.STOCK_DIALOG_WARNING, Gtk.IconSize.DIALOG) warning_label = Gtk.Label(label=_( "Changing these values may cause problems with playback and rendering.\nThe safe values are Render Threads:1, Allow Frame Dropping: No." )) spin_adj = Gtk.Adjustment(value=prefs.perf_render_threads, lower=1, upper=multiprocessing.cpu_count(), step_incr=1) perf_render_threads = Gtk.SpinButton(adjustment=spin_adj) #perf_render_threads.set_adjustment(spin_adj) perf_render_threads.set_numeric(True) perf_drop_frames = Gtk.CheckButton() perf_drop_frames.set_active(prefs.perf_drop_frames) # Tooltips perf_render_threads.set_tooltip_text( _("Between 1 and the number of CPU Cores")) perf_drop_frames.set_tooltip_text( _("Allow Frame Dropping for real-time rendering, when needed")) # Layout row0 = _row(guiutils.get_left_justified_box([warning_icon, warning_label])) row1 = _row( guiutils.get_two_column_box(Gtk.Label(label=_("Render Threads:")), perf_render_threads, PREFERENCES_LEFT)) row2 = _row( guiutils.get_checkbox_row_box( perf_drop_frames, Gtk.Label(label=_("Allow Frame Dropping")))) vbox = Gtk.VBox(False, 2) vbox.pack_start(row0, False, False, 0) vbox.pack_start(guiutils.pad_label(12, 12), False, False, 0) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) return vbox, (perf_render_threads, perf_drop_frames)
def _view_prefs_panel(): prefs = editorpersistance.prefs # Widgets display_splash_check = gtk.CheckButton() display_splash_check.set_active(prefs.display_splash_screen) buttons_combo = gtk.combo_box_new_text() buttons_combo.append_text(_("Glass")) buttons_combo.append_text(_("Simple")) if prefs.buttons_style == editorpersistance.GLASS_STYLE: buttons_combo.set_active(0) else: buttons_combo.set_active(1) dark_combo = gtk.combo_box_new_text() dark_combo.append_text(_("Light Theme")) dark_combo.append_text(_("Dark Theme")) if prefs.dark_theme == True: dark_combo.set_active(1) else: dark_combo.set_active(0) # Layout row1 = guiutils.get_checkbox_row_box(display_splash_check, gtk.Label(_("Display splash screen"))) row2 = guiutils.get_two_column_box(gtk.Label(_("Buttons style:")), buttons_combo, PREFERENCES_LEFT) row3 = guiutils.get_two_column_box( gtk.Label(_("Icons and color optimized for:")), dark_combo, PREFERENCES_LEFT) 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) align = gtk.Alignment(0.5, 0.5, 1.0, 1.0) align.set_padding(12, 0, 12, 12) align.add(vbox) return align, (display_splash_check, buttons_combo, dark_combo)
def _performance_panel(): # Jan-2017 - SvdB # Add a panel for performance settings. The first setting is allowing multiple threads to render # the files. This is used for the real_time parameter to mlt in renderconsumer.py. # The effect depends on the computer running the program. # Max. number of threads is set to number of CPU cores. Default is 1. # Allow Frame Dropping should help getting real time output on low performance computers. prefs = editorpersistance.prefs # Widgets spin_adj = Gtk.Adjustment(prefs.perf_render_threads, 1, multiprocessing.cpu_count(), 1) perf_render_threads = Gtk.SpinButton() perf_render_threads.set_adjustment(spin_adj) perf_render_threads.set_numeric(True) perf_drop_frames = Gtk.CheckButton() perf_drop_frames.set_active(prefs.perf_drop_frames) # Tooltips perf_render_threads.set_tooltip_text( _("Between 1 and the number of CPU Cores")) perf_drop_frames.set_tooltip_text( _("Allow Frame Dropping for real-time rendering, when needed")) # Layout row1 = _row( guiutils.get_two_column_box(Gtk.Label(label=_("Render Threads:")), perf_render_threads, PREFERENCES_LEFT)) row2 = _row( guiutils.get_checkbox_row_box( perf_drop_frames, Gtk.Label(label=_("Allow Frame Dropping")))) 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) guiutils.set_margins(vbox, 12, 0, 12, 12) return vbox, (perf_render_threads, perf_drop_frames)
def _performance_panel(): # Jan-2017 - SvdB # Add a panel for performance settings. The first setting is allowing multiple threads to render # the files. This is used for the real_time parameter to mlt in renderconsumer.py. # The effect depends on the computer running the program. # Max. number of threads is set to number of CPU cores. Default is 1. # Allow Frame Dropping should help getting real time output on low performance computers. prefs = editorpersistance.prefs warning_icon = Gtk.Image.new_from_stock(Gtk.STOCK_DIALOG_WARNING, Gtk.IconSize.DIALOG) warning_label = Gtk.Label(label=_("Changing these values may cause problems with playback and rendering.\nThe safe values are Render Threads:1, Allow Frame Dropping: No.")) # Widgets spin_adj = Gtk.Adjustment(prefs.perf_render_threads, 1, multiprocessing.cpu_count(), 1) perf_render_threads = Gtk.SpinButton() perf_render_threads.set_adjustment(spin_adj) perf_render_threads.set_numeric(True) perf_drop_frames = Gtk.CheckButton() perf_drop_frames.set_active(prefs.perf_drop_frames) # Tooltips perf_render_threads.set_tooltip_text(_("Between 1 and the number of CPU Cores")) perf_drop_frames.set_tooltip_text(_("Allow Frame Dropping for real-time rendering, when needed")) # Layout row0 = _row(guiutils.get_left_justified_box([warning_icon, warning_label])) row1 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Render Threads:")), perf_render_threads, PREFERENCES_LEFT)) row2 = _row(guiutils.get_checkbox_row_box(perf_drop_frames, Gtk.Label(label=_("Allow Frame Dropping")))) vbox = Gtk.VBox(False, 2) vbox.pack_start(row0, False, False, 0) vbox.pack_start(guiutils.pad_label(12, 12), False, False, 0) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) return vbox, (perf_render_threads, perf_drop_frames)
def __init__(self): GObject.GObject.__init__(self) self.set_modal(True) self.set_transient_for(gui.editor_window.window) self.set_title(_("Add Media From Folder")) self.connect("delete-event", lambda w, e: _close_window()) file_chooser = Gtk.FileChooserButton(_("Select Folder")) file_chooser.set_size_request(250, 25) if ((editorpersistance.prefs.open_in_last_opended_media_dir == True) and (editorpersistance.prefs.last_opened_media_dir != None)): file_chooser.set_current_folder( editorpersistance.prefs.last_opened_media_dir) else: file_chooser.set_current_folder(os.path.expanduser("~") + "/") file_chooser.set_action(Gtk.FileChooserAction.SELECT_FOLDER) self.file_chooser = file_chooser row1 = guiutils.get_two_column_box( Gtk.Label(label=_("Add Media from Folder:")), file_chooser, 220) recursively_checkbox = Gtk.CheckButton() recursively_checkbox.set_active(False) recursively_label = Gtk.Label(label=_("Search subfolders")) self.recursively_checkbox = recursively_checkbox row3 = guiutils.get_checkbox_row_box(recursively_checkbox, recursively_label) action_select = Gtk.ComboBoxText() action_select.append_text(_("All Media Files")) action_select.append_text(_("Video Files")) action_select.append_text(_("Audio Files")) action_select.append_text(_("Image Files")) action_select.set_active(0) self.action_select = action_select action_label = Gtk.Label(label=_("File types to add:")) row4 = guiutils.get_two_column_box(action_label, action_select, 220) use_extension_checkbox = Gtk.CheckButton() use_extension_checkbox.set_active(False) self.use_extension_checkbox = use_extension_checkbox use_extension_label = Gtk.Label(label=_("Filter by file extension")) row5 = guiutils.get_checkbox_row_box(use_extension_checkbox, use_extension_label) extension_entry = Gtk.Entry.new() extension_entry.set_max_width_chars(6) extension_entry_box = Gtk.HBox(False, 0) extension_entry_box.pack_start(extension_entry, False, False, 0) extension_entry_box.pack_start(guiutils.pad_label(200, 10), True, True, 0) self.extension_entry = extension_entry extension_label = Gtk.Label(label=_("File extension:")) extension_entry.set_sensitive(False) extension_label.set_sensitive(False) row6 = guiutils.get_two_column_box(extension_label, extension_entry_box, 100) self.files_view = Gtk.TextView() self.files_view.set_sensitive(False) self.files_view.set_pixels_above_lines(2) self.files_view.set_left_margin(2) self.files_view.set_sensitive(False) self.files_view.set_editable(False) text_buffer = Gtk.TextBuffer() text_buffer.set_text(_("No files loaded.")) self.files_view.set_buffer(text_buffer) self.files_view.set_sensitive(False) sw = Gtk.ScrolledWindow() sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) sw.add(self.files_view) sw.set_size_request(500, 200) # 500 here sets window width. scroll_frame = Gtk.Frame() scroll_frame.add(sw) load_button = Gtk.Button(_("Load Add Files Set")) load_button.connect("clicked", lambda w: _load_add_files_clicked()) self.load_info = Gtk.Label(_("Files to load: ") + _("Not Set")) row9 = Gtk.HBox(False, 0) row9.pack_start(self.load_info, False, False, 0) row9.pack_start(Gtk.Label(), True, True, 0) row9.pack_start(load_button, False, False, 0) guiutils.set_margins(row9, 4, 24, 0, 0) close_button = Gtk.Button(_("Close")) close_button.connect("clicked", lambda w: _close_clicked()) self.add_button = Gtk.Button(_("Add Media")) self.add_button.connect("clicked", lambda w: _do_folder_media_import()) self.add_button.set_sensitive(False) self.load_info_2 = Gtk.Label() row8 = Gtk.HBox(False, 0) row8.pack_start(self.load_info_2, False, False, 0) row8.pack_start(Gtk.Label(), True, True, 0) row8.pack_start(close_button, False, False, 0) row8.pack_start(self.add_button, False, False, 0) maximum_select = Gtk.ComboBoxText() maximum_select.append_text(_("29")) maximum_select.append_text(_("49")) maximum_select.append_text(_("99")) maximum_select.append_text(_("199")) maximum_select.set_active(0) self.maximum_select = maximum_select maximum_label = Gtk.Label(label=_("Max. number of files to import:")) row7 = guiutils.get_two_column_box(maximum_label, maximum_select, 220) guiutils.set_margins(row7, 0, 12, 0, 0) activateble_widgets = (action_label, action_select, extension_label, extension_entry) use_extension_checkbox.connect("toggled", _use_extension_toggled, activateble_widgets) vbox = Gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(guiutils.pad_label(12, 24), False, False, 0) vbox.pack_start(row3, False, False, 0) vbox.pack_start(guiutils.pad_label(12, 8), 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(row7, False, False, 0) vbox.pack_start(scroll_frame, False, False, 0) vbox.pack_start(row9, False, False, 0) vbox.pack_start(row8, False, False, 0) alignment = guiutils.set_margins(vbox, 8, 8, 12, 12) self.add(alignment) self.set_position(Gtk.WindowPosition.CENTER) self.show_all()
def _general_options_panel(): prefs = editorpersistance.prefs # Widgets open_in_last_opened_check = Gtk.CheckButton() open_in_last_opened_check.set_active(prefs.open_in_last_opended_media_dir) open_in_last_rendered_check = Gtk.CheckButton() open_in_last_rendered_check.set_active(prefs.remember_last_render_dir) default_profile_combo = Gtk.ComboBoxText() profiles = mltprofiles.get_profiles() for profile in profiles: default_profile_combo.append_text(profile[0]) default_profile_combo.set_active(mltprofiles.get_default_profile_index()) spin_adj = Gtk.Adjustment(value=prefs.undos_max, lower=editorpersistance.UNDO_STACK_MIN, upper=editorpersistance.UNDO_STACK_MAX, step_incr=1) undo_max_spin = Gtk.SpinButton.new_with_range(editorpersistance.UNDO_STACK_MIN, editorpersistance.UNDO_STACK_MAX, 1) undo_max_spin.set_adjustment(spin_adj) undo_max_spin.set_numeric(True) autosave_combo = Gtk.ComboBoxText() # Aug-2019 - SvdB - AS - This is now initialized in app.main # Using editorpersistance.prefs.AUTO_SAVE_OPTS as source # AUTO_SAVE_OPTS = ((-1, _("No Autosave")),(1, _("1 min")),(2, _("2 min")),(5, _("5 min"))) for i in range(0, len(editorpersistance.prefs.AUTO_SAVE_OPTS)): time, desc = editorpersistance.prefs.AUTO_SAVE_OPTS[i] autosave_combo.append_text(desc) autosave_combo.set_active(prefs.auto_save_delay_value_index) load_order_combo = Gtk.ComboBoxText() load_order_combo.append_text(_("Absolute paths first, relative second")) load_order_combo.append_text(_("Relative paths first, absolute second")) load_order_combo.append_text(_("Absolute paths only")) load_order_combo.set_active(prefs.media_load_order) render_folder_select = Gtk.FileChooserButton.new (_("Select Default Render Folder"), Gtk.FileChooserAction.SELECT_FOLDER) if prefs.default_render_directory == None or prefs.default_render_directory == appconsts.USER_HOME_DIR \ or (not os.path.exists(prefs.default_render_directory)) \ or (not os.path.isdir(prefs.default_render_directory)): render_folder_select.set_current_folder_uri(os.path.expanduser("~") + "/") else: render_folder_select.set_current_folder_uri(prefs.default_render_directory) disk_cache_warning_combo = Gtk.ComboBoxText() disk_cache_warning_combo.append_text(_("Off")) disk_cache_warning_combo.append_text(_("500 MB")) disk_cache_warning_combo.append_text(_("1 GB")) disk_cache_warning_combo.append_text(_("2 GB")) disk_cache_warning_combo.set_active(prefs.disk_space_warning) # Layout row1 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Default Profile:")), default_profile_combo, PREFERENCES_LEFT)) row2 = _row(guiutils.get_checkbox_row_box(open_in_last_opened_check, Gtk.Label(label=_("Remember last media directory")))) row3 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Undo stack size:")), undo_max_spin, PREFERENCES_LEFT)) row5 = _row(guiutils.get_checkbox_row_box(open_in_last_rendered_check, Gtk.Label(label=_("Remember last render directory")))) row6 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Autosave for crash recovery every:")), autosave_combo, PREFERENCES_LEFT)) row9 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Media look-up order on load:")), load_order_combo, PREFERENCES_LEFT)) row10 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Default render directory:")), render_folder_select, PREFERENCES_LEFT)) row11 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Warning on Disk Cache Size:")), disk_cache_warning_combo, PREFERENCES_LEFT)) vbox = Gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row10, False, False, 0) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row3, False, False, 0) vbox.pack_start(row9, False, False, 0) vbox.pack_start(row11, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) # Aug-2019 - SvdB - AS - Added autosave_combo return vbox, ( default_profile_combo, open_in_last_opened_check, open_in_last_rendered_check, undo_max_spin, load_order_combo, autosave_combo, render_folder_select, disk_cache_warning_combo)
def _view_prefs_panel(): prefs = editorpersistance.prefs # Widgets force_english_check = Gtk.CheckButton() force_english_check.set_active(prefs.use_english_always) display_splash_check = Gtk.CheckButton() display_splash_check.set_active(prefs.display_splash_screen) # Feb-2017 - SvdB - For full file names show_full_file_names = Gtk.CheckButton() show_full_file_names.set_active(prefs.show_full_file_names) buttons_combo = Gtk.ComboBoxText() buttons_combo.append_text(_("Glass")) buttons_combo.append_text(_("Simple")) buttons_combo.append_text(_("No Decorations")) buttons_combo.set_active( prefs.buttons_style ) dark_combo = Gtk.ComboBoxText() dark_combo.append_text(_("Flowblade Theme")) dark_combo.append_text(_("Dark Theme")) dark_combo.append_text(_("Light Theme")) dark_combo.set_active(prefs.theme) theme_combo = Gtk.ComboBoxText() for theme in gui._THEME_COLORS: theme_combo.append_text(theme[4]) theme_combo.set_active(prefs.theme_fallback_colors) audio_levels_combo = Gtk.ComboBoxText() audio_levels_combo.append_text(_("Display All Levels")) audio_levels_combo.append_text(_("Display Levels On Request")) if prefs.display_all_audio_levels == True: audio_levels_combo.set_active(0) else: audio_levels_combo.set_active(1) window_mode_combo = Gtk.ComboBoxText() window_mode_combo.append_text(_("Single Window")) window_mode_combo.append_text(_("Two Windows")) if prefs.global_layout == appconsts.SINGLE_WINDOW: window_mode_combo.set_active(0) else: window_mode_combo.set_active(1) tracks_combo = Gtk.ComboBoxText() tracks_combo.append_text(_("Normal - 50px, 25px")) tracks_combo.append_text(_("Double for HiDPI - 100px, 50px")) tracks_combo.set_active(prefs.double_track_hights) top_row_layout = Gtk.ComboBoxText() top_row_layout.append_text(_("3 panels if width awailable")) top_row_layout.append_text(_("2 panels always")) top_row_layout.set_active(prefs.top_row_layout) # Layout row00 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Application window mode:")), window_mode_combo, PREFERENCES_LEFT)) row0 = _row(guiutils.get_checkbox_row_box(force_english_check, Gtk.Label(label=_("Use English texts on localized OS")))) row1 = _row(guiutils.get_checkbox_row_box(display_splash_check, Gtk.Label(label=_("Display splash screen")))) row2 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Buttons style:")), buttons_combo, PREFERENCES_LEFT)) row3 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Theme request, icons and colors:")), dark_combo, PREFERENCES_LEFT)) row4 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Theme detection fail fallback colors:")), theme_combo, PREFERENCES_LEFT)) row5 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Default audio levels display:")), audio_levels_combo, PREFERENCES_LEFT)) row7 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Tracks Heights:")), tracks_combo, PREFERENCES_LEFT)) # Feb-2017 - SvdB - For full file names row6 = _row(guiutils.get_checkbox_row_box(show_full_file_names, Gtk.Label(label=_("Show Full File names")))) row8 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Top row layout:")), top_row_layout, PREFERENCES_LEFT)) vbox = Gtk.VBox(False, 2) vbox.pack_start(row00, False, False, 0) vbox.pack_start(row0, False, False, 0) 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(row7, False, False, 0) # Feb-2017 - SvdB - For full file names vbox.pack_start(row6, False, False, 0) vbox.pack_start(row8, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) # Feb-2017 - SvdB - Added code for full file names return vbox, (force_english_check, display_splash_check, buttons_combo, dark_combo, theme_combo, audio_levels_combo, window_mode_combo, show_full_file_names, tracks_combo, top_row_layout)
def _edit_prefs_panel(): prefs = editorpersistance.prefs # Widgets auto_play_in_clip_monitor = Gtk.CheckButton() auto_play_in_clip_monitor.set_active(prefs.auto_play_in_clip_monitor) auto_center_on_stop = Gtk.CheckButton() auto_center_on_stop.set_active(prefs.auto_center_on_play_stop) spin_adj = Gtk.Adjustment(prefs.default_grfx_length, 1, 15000, 1) gfx_length_spin = Gtk.SpinButton() gfx_length_spin.set_adjustment(spin_adj) gfx_length_spin.set_numeric(True) trim_exit_on_empty = Gtk.CheckButton() trim_exit_on_empty.set_active(prefs.empty_click_exits_trims) quick_enter_trim = Gtk.CheckButton() quick_enter_trim.set_active(prefs.quick_enter_trims) remember_clip_frame = Gtk.CheckButton() remember_clip_frame.set_active(prefs.remember_monitor_clip_frame) overwrite_clip_drop = Gtk.ComboBoxText() active = 0 if prefs.overwrite_clip_drop == False: active = 1 overwrite_clip_drop.append_text(_("Overwrite blanks")) overwrite_clip_drop.append_text(_("Always insert")) overwrite_clip_drop.set_active(active) cover_delete = Gtk.CheckButton() cover_delete.set_active(prefs.trans_cover_delete) # Jul-2016 - SvdB - For play_pause button play_pause_button = Gtk.CheckButton() # The following test is to make sure play_pause can be used for the initial value. If not found, then leave uninitialized if hasattr(prefs, 'play_pause'): play_pause_button.set_active(prefs.play_pause) # Layout row1 = _row( guiutils.get_checkbox_row_box( auto_play_in_clip_monitor, Gtk.Label(label=_("Autoplay new Clips in Clip Monitor")))) row2 = _row( guiutils.get_checkbox_row_box( auto_center_on_stop, Gtk.Label(label=_("Center Current Frame on Playback Stop")))) row4 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Graphics default length:")), gfx_length_spin, PREFERENCES_LEFT)) row5 = _row( guiutils.get_checkbox_row_box( trim_exit_on_empty, Gtk.Label(label=_("Trim Modes exit on empty click")))) row6 = _row( guiutils.get_checkbox_row_box( quick_enter_trim, Gtk.Label(label=_("Quick enter Trim Modes")))) row7 = _row( guiutils.get_checkbox_row_box( remember_clip_frame, Gtk.Label(label=_("Remember Monitor Clip Frame")))) row8 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Media drag'n'drop action on non-V1 tracks")), overwrite_clip_drop, PREFERENCES_LEFT)) row9 = _row( guiutils.get_checkbox_row_box( cover_delete, Gtk.Label( label=_("Cover Transition/Fade clips on delete if possible")))) # Jul-2016 - SvdB - For play_pause button row10 = _row( guiutils.get_checkbox_row_box( play_pause_button, Gtk.Label(label=_("Enable single Play/Pause button")))) vbox = Gtk.VBox(False, 2) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row7, False, False, 0) vbox.pack_start(row8, False, False, 0) vbox.pack_start(row9, False, False, 0) # Jul-2016 - SvdB - For play_pause button vbox.pack_start(row10, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) # Jul-2016 - SvdB - Added play_pause_button return vbox, (auto_play_in_clip_monitor, auto_center_on_stop, gfx_length_spin, trim_exit_on_empty, quick_enter_trim, remember_clip_frame, overwrite_clip_drop, cover_delete, play_pause_button)
def _view_prefs_panel(): prefs = editorpersistance.prefs # Widgets force_english_check = Gtk.CheckButton() force_english_check.set_active(prefs.use_english_always) force_language_combo = Gtk.ComboBoxText() force_language_combo.append_text(_("None")) force_language_combo.append_text(_("English")) force_language_combo.append_text(_("Chinese, Simplified")) force_language_combo.append_text(_("Chinese, Traditional")) force_language_combo.append_text(_("Czech")) force_language_combo.append_text(_("French")) force_language_combo.append_text(_("German")) force_language_combo.append_text(_("Hungarian")) force_language_combo.append_text(_("Italian")) force_language_combo.append_text(_("Polish")) force_language_combo.append_text(_("Russian")) force_language_combo.append_text(_("Spanish")) force_language_combo.append_text(_("Ukranian")) # THIS NEEDS TO BE UPDATED WHEN LANGUAGES ARE ADDED!!! lang_list = [ "None", "English", "zh_CN", "zh_TW", "cs", "fr", "de", "hu", "it", "pl", "ru", "es", "uk" ] active_index = lang_list.index(prefs.force_language) force_language_combo.set_active(active_index) force_language_combo.lang_codes = lang_list display_splash_check = Gtk.CheckButton() display_splash_check.set_active(prefs.display_splash_screen) # Feb-2017 - SvdB - For full file names show_full_file_names = Gtk.CheckButton() show_full_file_names.set_active(prefs.show_full_file_names) buttons_combo = Gtk.ComboBoxText() buttons_combo.append_text(_("Glass")) buttons_combo.append_text(_("Simple")) buttons_combo.append_text(_("No Decorations")) buttons_combo.set_active(prefs.buttons_style) dark_combo = Gtk.ComboBoxText() dark_combo.append_text(_("Flowblade Theme")) dark_combo.append_text(_("Dark Theme")) dark_combo.append_text(_("Light Theme")) dark_combo.set_active(prefs.theme) theme_combo = Gtk.ComboBoxText() for theme in gui._THEME_COLORS: theme_combo.append_text(theme[4]) theme_combo.set_active(prefs.theme_fallback_colors) audio_levels_combo = Gtk.ComboBoxText() audio_levels_combo.append_text(_("Display All Levels")) audio_levels_combo.append_text(_("Display Levels On Request")) if prefs.display_all_audio_levels == True: audio_levels_combo.set_active(0) else: audio_levels_combo.set_active(1) window_mode_combo = Gtk.ComboBoxText() window_mode_combo.append_text(_("Single Window")) window_mode_combo.append_text(_("Two Windows")) if prefs.global_layout == appconsts.SINGLE_WINDOW: window_mode_combo.set_active(0) else: window_mode_combo.set_active(1) tracks_combo = Gtk.ComboBoxText() tracks_combo.append_text(_("Normal - 50px, 25px")) tracks_combo.append_text(_("Double for HiDPI - 100px, 50px")) # Aug-2019 - SvdB - BB tracks_combo.set_active(prefs.double_track_hights) top_row_layout = Gtk.ComboBoxText() top_row_layout.append_text(_("3 panels if width (1450px+) available")) top_row_layout.append_text(_("2 panels always")) top_row_layout.set_active(prefs.top_row_layout) monitors_data = utils.get_display_monitors_size_data() layout_monitor = Gtk.ComboBoxText() combined_w, combined_h = monitors_data[0] layout_monitor.append_text( _("Full Display area: ") + str(combined_w) + " x " + str(combined_h)) if len(monitors_data) >= 3: for monitor_index in range(1, len(monitors_data)): monitor_w, monitor_h = monitors_data[monitor_index] layout_monitor.append_text( _("Monitor ") + str(monitor_index) + ": " + str(monitor_w) + " x " + str(monitor_h)) layout_monitor.set_active(prefs.layout_display_index) # Layout row00 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Application window mode:")), window_mode_combo, PREFERENCES_LEFT)) #row0 = _row(guiutils.get_checkbox_row_box(force_english_check, Gtk.Label(label=_("Use English texts on localized OS")))) row9 = _row( guiutils.get_two_column_box(Gtk.Label(label=_("Force Language:")), force_language_combo, PREFERENCES_LEFT)) row1 = _row( guiutils.get_checkbox_row_box( display_splash_check, Gtk.Label(label=_("Display splash screen")))) row2 = _row( guiutils.get_two_column_box(Gtk.Label(label=_("Buttons style:")), buttons_combo, PREFERENCES_LEFT)) row3 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Theme request, icons and colors:")), dark_combo, PREFERENCES_LEFT)) row4 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Theme detection fail fallback colors:")), theme_combo, PREFERENCES_LEFT)) row5 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Default audio levels display:")), audio_levels_combo, PREFERENCES_LEFT)) row7 = _row( guiutils.get_two_column_box(Gtk.Label(label=_("Tracks Heights:")), tracks_combo, PREFERENCES_LEFT)) # Feb-2017 - SvdB - For full file names row6 = _row( guiutils.get_checkbox_row_box( show_full_file_names, Gtk.Label(label=_("Show Full File names")))) row8 = _row( guiutils.get_two_column_box(Gtk.Label(label=_("Top row layout:")), top_row_layout, PREFERENCES_LEFT)) row10 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Do GUI layout based on:")), layout_monitor, PREFERENCES_LEFT)) vbox = Gtk.VBox(False, 2) vbox.pack_start(row00, False, False, 0) vbox.pack_start(row10, False, False, 0) vbox.pack_start(row9, False, False, 0) 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(row7, False, False, 0) # Feb-2017 - SvdB - For full file names vbox.pack_start(row6, False, False, 0) vbox.pack_start(row8, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) # Feb-2017 - SvdB - Added code for full file names return vbox, (force_language_combo, display_splash_check, buttons_combo, dark_combo, theme_combo, audio_levels_combo, window_mode_combo, show_full_file_names, tracks_combo, top_row_layout, layout_monitor)
def _edit_prefs_panel(): prefs = editorpersistance.prefs # Widgets spin_adj = Gtk.Adjustment(value=prefs.default_grfx_length, lower=1, upper=15000, step_incr=1) gfx_length_spin = Gtk.SpinButton() gfx_length_spin.set_adjustment(spin_adj) gfx_length_spin.set_numeric(True) cover_delete = Gtk.CheckButton() cover_delete.set_active(prefs.trans_cover_delete) active = 0 if prefs.mouse_scroll_action_is_zoom == False: active = 1 mouse_scroll_action = Gtk.ComboBoxText() mouse_scroll_action.append_text(_("Zoom, Control to Scroll Horizontal")) mouse_scroll_action.append_text(_("Scroll Horizontal, Control to Zoom")) mouse_scroll_action.set_active(active) active = 0 if prefs.scroll_horizontal_dir_up_forward == False: active = 1 hor_scroll_dir = Gtk.ComboBoxText() hor_scroll_dir.append_text(_("Scroll Up Forward")) hor_scroll_dir.append_text(_("Scroll Down Forward")) hor_scroll_dir.set_active(active) active = 0 if prefs.single_click_effects_editor_load == True: active = 1 effects_editor_clip_load = Gtk.ComboBoxText() effects_editor_clip_load.append_text(_("On Double Click")) effects_editor_clip_load.append_text(_("On Single Click")) effects_editor_clip_load.set_active(active) hide_file_ext_button = Gtk.CheckButton() if hasattr(prefs, 'hide_file_ext'): hide_file_ext_button.set_active(prefs.hide_file_ext) # Layout row4 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Graphics default length:")), gfx_length_spin, PREFERENCES_LEFT)) row9 = _row( guiutils.get_checkbox_row_box( cover_delete, Gtk.Label( label=_("Cover Transition/Fade clips on delete if possible")))) # Jul-2016 - SvdB - For play_pause button row11 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Mouse Middle Button Scroll Action:")), mouse_scroll_action, PREFERENCES_LEFT)) row13 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Mouse Horizontal Scroll Direction:")), hor_scroll_dir, PREFERENCES_LEFT)) row12 = _row( guiutils.get_checkbox_row_box( hide_file_ext_button, Gtk.Label(label=_("Hide file extensions when importing Clips")))) row15 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Open Clip in Effects Editor")), effects_editor_clip_load, PREFERENCES_LEFT)) # Apr-2017 - SvdB - For Fast Forward / Reverse options vbox = Gtk.VBox(False, 2) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row9, False, False, 0) vbox.pack_start(row11, False, False, 0) vbox.pack_start(row13, False, False, 0) vbox.pack_start(row12, False, False, 0) vbox.pack_start(row15, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) # Jul-2016 - SvdB - Added play_pause_button # Apr-2017 - SvdB - Added ffwd / rev values return vbox, (gfx_length_spin, cover_delete, mouse_scroll_action, hide_file_ext_button, hor_scroll_dir, effects_editor_clip_load)
def _edit_prefs_panel(): prefs = editorpersistance.prefs # Widgets auto_play_in_clip_monitor = Gtk.CheckButton() auto_play_in_clip_monitor.set_active(prefs.auto_play_in_clip_monitor) auto_center_on_stop = Gtk.CheckButton() auto_center_on_stop.set_active(prefs.auto_center_on_play_stop) spin_adj = Gtk.Adjustment(prefs.default_grfx_length, 1, 15000, 1) gfx_length_spin = Gtk.SpinButton() gfx_length_spin.set_adjustment(spin_adj) gfx_length_spin.set_numeric(True) trim_exit_on_empty = Gtk.CheckButton() trim_exit_on_empty.set_active(prefs.empty_click_exits_trims) quick_enter_trim = Gtk.CheckButton() quick_enter_trim.set_active(prefs.quick_enter_trims) remember_clip_frame = Gtk.CheckButton() remember_clip_frame.set_active(prefs.remember_monitor_clip_frame) overwrite_clip_drop = Gtk.ComboBoxText() active = 0 if prefs.overwrite_clip_drop == False: active = 1 overwrite_clip_drop.append_text(_("Overwrite blanks")) overwrite_clip_drop.append_text(_("Always insert")) overwrite_clip_drop.set_active(active) cover_delete = Gtk.CheckButton() cover_delete.set_active(prefs.trans_cover_delete) # Jul-2016 - SvdB - For play_pause button play_pause_button = Gtk.CheckButton() # The following test is to make sure play_pause can be used for the initial value. If not found, then leave uninitialized if hasattr(prefs, 'play_pause'): play_pause_button.set_active(prefs.play_pause) active = 0 if prefs.mouse_scroll_action_is_zoom == False: active = 1 mouse_scroll_action = Gtk.ComboBoxText() mouse_scroll_action.append_text(_("Zoom, Control to Scroll Horizontal")) mouse_scroll_action.append_text(_("Scroll Horizontal, Control to Zoom")) mouse_scroll_action.set_active(active) hide_file_ext_button = Gtk.CheckButton() if hasattr(prefs, 'hide_file_ext'): hide_file_ext_button.set_active(prefs.hide_file_ext) auto_center_on_updown = Gtk.CheckButton() auto_center_on_updown.set_active(prefs.center_on_arrow_move) # Apr-2017 - SvdB - For FF/Rev speed options if hasattr(prefs, 'ffwd_rev_shift'): spin_adj = Gtk.Adjustment(prefs.ffwd_rev_shift, 1, 10, 1) else: spin_adj = Gtk.Adjustment(1, 1, 10, 1) ffwd_rev_shift_spin = Gtk.SpinButton() ffwd_rev_shift_spin.set_adjustment(spin_adj) ffwd_rev_shift_spin.set_numeric(True) if hasattr(prefs, 'ffwd_rev_ctrl'): spin_adj = Gtk.Adjustment(prefs.ffwd_rev_ctrl, 1, 10, 1) else: spin_adj = Gtk.Adjustment(10, 1, 10, 1) ffwd_rev_ctrl_spin = Gtk.SpinButton() ffwd_rev_ctrl_spin.set_adjustment(spin_adj) ffwd_rev_ctrl_spin.set_numeric(True) if hasattr(prefs, 'ffwd_rev_caps'): spin_adj = Gtk.Adjustment(prefs.ffwd_rev_caps, 1, 10, 1) else: spin_adj = Gtk.Adjustment(1, 1, 10, 1) ffwd_rev_caps_spin = Gtk.SpinButton() ffwd_rev_caps_spin.set_adjustment(spin_adj) ffwd_rev_caps_spin.set_numeric(True) # Layout row1 = _row(guiutils.get_checkbox_row_box(auto_play_in_clip_monitor, Gtk.Label(label=_("Autoplay new Clips in Clip Monitor")))) row2 = _row(guiutils.get_checkbox_row_box(auto_center_on_stop, Gtk.Label(label=_("Center Current Frame on Playback Stop")))) row13 = _row(guiutils.get_checkbox_row_box(auto_center_on_updown, Gtk.Label(label=_("Center Current Frame after Up/Down Arrow")))) row4 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Graphics default length:")), gfx_length_spin, PREFERENCES_LEFT)) row5 = _row(guiutils.get_checkbox_row_box(trim_exit_on_empty, Gtk.Label(label=_("Trim Modes exit on empty click")))) row6 = _row(guiutils.get_checkbox_row_box(quick_enter_trim, Gtk.Label(label=_("Quick enter Trim Modes")))) row7 = _row(guiutils.get_checkbox_row_box(remember_clip_frame, Gtk.Label(label=_("Remember Monitor Clip Frame")))) row8 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Media drag'n'drop action on non-V1 tracks")), overwrite_clip_drop, PREFERENCES_LEFT)) row9 = _row(guiutils.get_checkbox_row_box(cover_delete, Gtk.Label(label=_("Cover Transition/Fade clips on delete if possible")))) # Jul-2016 - SvdB - For play_pause button row10 = _row(guiutils.get_checkbox_row_box(play_pause_button, Gtk.Label(label=_("Enable single Play/Pause button")))) row11 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Mouse Middle Button Scroll Action")), mouse_scroll_action, PREFERENCES_LEFT)) row12 = _row(guiutils.get_checkbox_row_box(hide_file_ext_button, Gtk.Label(label=_("Hide file extensions when importing Clips")))) # Apr-2017 - SvdB - For Fast Forward / Reverse options row14 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Fast Forward / Reverse Speed for Shift Key:")), ffwd_rev_shift_spin, PREFERENCES_LEFT)) row14.set_tooltip_text(_("Speed of Forward / Reverse will be multiplied by this value if Shift Key is held (Only using KEYS).\n" \ "Enabling multiple modifier keys will multiply the set values.\n" \ "E.g. if Shift is set to " + str(prefs.ffwd_rev_shift) + " and Ctrl to " + str(prefs.ffwd_rev_ctrl) + \ ", holding Shift + Ctrl will result in up to " + str(prefs.ffwd_rev_shift * prefs.ffwd_rev_ctrl) + "x speed.\n" \ "(Effective maximum speed depends on underlying software and/or hardware limitations)")) row15 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Fast Forward / Reverse Speed for Control Key:")), ffwd_rev_ctrl_spin, PREFERENCES_LEFT)) row15.set_tooltip_text(_("Speed of Forward / Reverse will be multiplied by this value if Ctrl Key is held (Only using KEYS).")) row16 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Fast Forward / Reverse Speed for Caps Lock Key:")), ffwd_rev_caps_spin, PREFERENCES_LEFT)) row16.set_tooltip_text(_("Speed of Forward / Reverse will be multiplied by this value if Caps Lock is set (Only using KEYS).")) vbox = Gtk.VBox(False, 2) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row13, False, False, 0) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row7, False, False, 0) vbox.pack_start(row8, False, False, 0) vbox.pack_start(row9, False, False, 0) # Jul-2016 - SvdB - For play_pause button vbox.pack_start(row10, False, False, 0) vbox.pack_start(row11, False, False, 0) vbox.pack_start(row12, False, False, 0) # Apr-2017 - SvdB - For ffwd / rev speed vbox.pack_start(row14, False, False, 0) vbox.pack_start(row15, False, False, 0) vbox.pack_start(row16, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) # Jul-2016 - SvdB - Added play_pause_button # Apr-2017 - SvdB - Added ffwd / rev values return vbox, (auto_play_in_clip_monitor, auto_center_on_stop, gfx_length_spin, trim_exit_on_empty, quick_enter_trim, remember_clip_frame, overwrite_clip_drop, cover_delete, play_pause_button, mouse_scroll_action, hide_file_ext_button, auto_center_on_updown, ffwd_rev_shift_spin, ffwd_rev_ctrl_spin, ffwd_rev_caps_spin)
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 _general_options_panel(folder_select_clicked_cb, render_folder_select_clicked_cb): prefs = editorpersistance.prefs # Widgets open_in_last_opened_check = gtk.CheckButton() open_in_last_opened_check.set_active(prefs.open_in_last_opended_media_dir) open_in_last_rendered_check = gtk.CheckButton() open_in_last_rendered_check.set_active(prefs.remember_last_render_dir) default_profile_combo = gtk.combo_box_new_text() profiles = mltprofiles.get_profiles() for profile in profiles: default_profile_combo.append_text(profile[0]) default_profile_combo.set_active(mltprofiles.get_default_profile_index()) spin_adj = gtk.Adjustment(prefs.undos_max, editorpersistance.UNDO_STACK_MIN, editorpersistance.UNDO_STACK_MAX, 1) undo_max_spin = gtk.SpinButton(spin_adj) undo_max_spin.set_numeric(True) folder_select = gtk.Button(_("Select Folder")) # thumbnails folder_select.connect("clicked", folder_select_clicked_cb) render_folder_select = gtk.Button(_("Select Folder")) render_folder_select.connect("clicked", render_folder_select_clicked_cb) autosave_combo = gtk.combo_box_new_text() for i in range(0, len(editorpersistance.prefs.AUTO_SAVE_OPTS)): time, desc = editorpersistance.prefs.AUTO_SAVE_OPTS[i] autosave_combo.append_text(desc) autosave_combo.set_active(prefs.auto_save_delay_value_index) load_order_combo = gtk.combo_box_new_text() load_order_combo.append_text("Absolute paths first, relative second") load_order_combo.append_text("Relative paths first, absolute second") load_order_combo.append_text("Absolute paths only") load_order_combo.set_active(prefs.media_load_order) # Layout row1 = guiutils.get_two_column_box(gtk.Label(_("Default Profile:")), default_profile_combo, PREFERENCES_LEFT) row2 = guiutils.get_checkbox_row_box( open_in_last_opened_check, gtk.Label(_("Remember last media directory"))) row3 = guiutils.get_two_column_box(gtk.Label(_("Undo stack size:")), undo_max_spin, PREFERENCES_LEFT) row4 = guiutils.get_two_column_box(gtk.Label(_("Thumbnail folder:")), folder_select, PREFERENCES_LEFT) row5 = guiutils.get_checkbox_row_box( open_in_last_rendered_check, gtk.Label(_("Remember last render directory"))) row6 = guiutils.get_two_column_box( gtk.Label(_("Autosave for crash recovery every:")), autosave_combo, PREFERENCES_LEFT) row8 = guiutils.get_two_column_box(gtk.Label(_("Rendered Clips folder:")), render_folder_select, PREFERENCES_LEFT) row9 = guiutils.get_two_column_box( gtk.Label(_("Media look-up order on load:")), load_order_combo, PREFERENCES_LEFT) vbox = gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row3, False, False, 0) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row8, False, False, 0) vbox.pack_start(row9, 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) return align, (default_profile_combo, open_in_last_opened_check, open_in_last_rendered_check, undo_max_spin, load_order_combo)
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 _view_prefs_panel(): prefs = editorpersistance.prefs # Widgets force_english_check = Gtk.CheckButton() force_english_check.set_active(prefs.use_english_always) display_splash_check = Gtk.CheckButton() display_splash_check.set_active(prefs.display_splash_screen) # Feb-2017 - SvdB - For full file names show_full_file_names = Gtk.CheckButton() show_full_file_names.set_active(prefs.show_full_file_names) buttons_combo = Gtk.ComboBoxText() buttons_combo.append_text(_("Glass")) buttons_combo.append_text(_("Simple")) if prefs.buttons_style == editorpersistance.GLASS_STYLE: buttons_combo.set_active(0) else: buttons_combo.set_active(1) dark_combo = Gtk.ComboBoxText() dark_combo.append_text(_("Light Theme")) dark_combo.append_text(_("Dark Theme")) if prefs.dark_theme == True: dark_combo.set_active(1) else: dark_combo.set_active(0) theme_combo = Gtk.ComboBoxText() for theme in gui._THEME_COLORS: theme_combo.append_text(theme[4]) theme_combo.set_active(prefs.theme_fallback_colors) audio_levels_combo = Gtk.ComboBoxText() audio_levels_combo.append_text(_("Display All Levels")) audio_levels_combo.append_text(_("Display Levels On Request")) if prefs.display_all_audio_levels == True: audio_levels_combo.set_active(0) else: audio_levels_combo.set_active(1) window_mode_combo = Gtk.ComboBoxText() window_mode_combo.append_text(_("Single Window")) window_mode_combo.append_text(_("Two Windows")) if prefs.global_layout == appconsts.SINGLE_WINDOW: window_mode_combo.set_active(0) else: window_mode_combo.set_active(1) tracks_combo = Gtk.ComboBoxText() tracks_combo.append_text(_("Normal - 50px, 25px")) tracks_combo.append_text(_("Double for HiDPI - 100px, 50px")) tracks_combo.set_active(prefs.double_track_hights) # Layout row00 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Application window mode:")), window_mode_combo, PREFERENCES_LEFT)) row0 = _row(guiutils.get_checkbox_row_box(force_english_check, Gtk.Label(label=_("Use English texts on localized OS")))) row1 = _row(guiutils.get_checkbox_row_box(display_splash_check, Gtk.Label(label=_("Display splash screen")))) row2 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Buttons style:")), buttons_combo, PREFERENCES_LEFT)) row3 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Theme request, icons and colors:")), dark_combo, PREFERENCES_LEFT)) row4 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Theme detection fail fallback colors:")), theme_combo, PREFERENCES_LEFT)) row5 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Default audio levels display:")), audio_levels_combo, PREFERENCES_LEFT)) row7 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Tracks Heights:")), tracks_combo, PREFERENCES_LEFT)) # Feb-2017 - SvdB - For full file names row6 = _row(guiutils.get_checkbox_row_box(show_full_file_names, Gtk.Label(label=_("Show Full File names")))) vbox = Gtk.VBox(False, 2) vbox.pack_start(row00, False, False, 0) vbox.pack_start(row0, False, False, 0) 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(row7, False, False, 0) # Feb-2017 - SvdB - For full file names vbox.pack_start(row6, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) # Feb-2017 - SvdB - Added code for full file names return vbox, (force_english_check, display_splash_check, buttons_combo, dark_combo, theme_combo, audio_levels_combo, window_mode_combo, show_full_file_names, tracks_combo)
def _general_options_panel(folder_select_clicked_cb, render_folder_select_clicked_cb): prefs = editorpersistance.prefs # Widgets open_in_last_opened_check = Gtk.CheckButton() open_in_last_opened_check.set_active(prefs.open_in_last_opended_media_dir) open_in_last_rendered_check = Gtk.CheckButton() open_in_last_rendered_check.set_active(prefs.remember_last_render_dir) default_profile_combo = Gtk.ComboBoxText() profiles = mltprofiles.get_profiles() for profile in profiles: default_profile_combo.append_text(profile[0]) default_profile_combo.set_active(mltprofiles.get_default_profile_index()) spin_adj = Gtk.Adjustment(prefs.undos_max, editorpersistance.UNDO_STACK_MIN, editorpersistance.UNDO_STACK_MAX, 1) undo_max_spin = Gtk.SpinButton.new_with_range(editorpersistance.UNDO_STACK_MIN, editorpersistance.UNDO_STACK_MAX, 1) undo_max_spin.set_adjustment(spin_adj) undo_max_spin.set_numeric(True) folder_select = Gtk.Button(_("Select Folder")) # thumbnails folder_select.connect("clicked" , folder_select_clicked_cb) render_folder_select = Gtk.Button(_("Select Folder")) render_folder_select.connect("clicked" , render_folder_select_clicked_cb) autosave_combo = Gtk.ComboBoxText() AUTO_SAVE_OPTS = ((-1, _("No Autosave")),(1, _("1 min")),(2, _("2 min")),(5, _("5 min"))) for i in range(0, len(AUTO_SAVE_OPTS)): time, desc = AUTO_SAVE_OPTS[i] autosave_combo.append_text(desc) autosave_combo.set_active(prefs.auto_save_delay_value_index) load_order_combo = Gtk.ComboBoxText() load_order_combo.append_text("Absolute paths first, relative second") load_order_combo.append_text("Relative paths first, absolute second") load_order_combo.append_text("Absolute paths only") load_order_combo.set_active(prefs.media_load_order) # Layout row1 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Default Profile:")), default_profile_combo, PREFERENCES_LEFT)) row2 = _row(guiutils.get_checkbox_row_box(open_in_last_opened_check, Gtk.Label(label=_("Remember last media directory")))) row3 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Undo stack size:")), undo_max_spin, PREFERENCES_LEFT)) row4 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Thumbnail folder:")), folder_select, PREFERENCES_LEFT)) row5 = _row(guiutils.get_checkbox_row_box(open_in_last_rendered_check, Gtk.Label(label=_("Remember last render directory")))) row6 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Autosave for crash recovery every:")), autosave_combo, PREFERENCES_LEFT)) row8 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Rendered Clips folder:")), render_folder_select, PREFERENCES_LEFT)) row9 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Media look-up order on load:")), load_order_combo, PREFERENCES_LEFT)) vbox = Gtk.VBox(False, 2) vbox.pack_start(row1, False, False, 0) vbox.pack_start(row6, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row5, False, False, 0) vbox.pack_start(row3, False, False, 0) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row8, False, False, 0) vbox.pack_start(row9, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) return vbox, (default_profile_combo, open_in_last_opened_check, open_in_last_rendered_check, undo_max_spin, load_order_combo)
def get_transition_panel(trans_data): type_combo_box = Gtk.ComboBoxText() name, t_service_id = mlttransitions.rendered_transitions[0] type_combo_box.append_text(name) name, t_service_id = mlttransitions.rendered_transitions[1] type_combo_box.append_text(name) name, t_service_id = mlttransitions.rendered_transitions[2] type_combo_box.append_text(name) type_combo_box.set_active(0) type_row = get_two_column_box(Gtk.Label(label=_("Type:")), type_combo_box) wipe_luma_combo_box = Gtk.ComboBoxText() keys = list(mlttransitions.wipe_lumas.keys()) keys.sort() for k in keys: wipe_luma_combo_box.append_text(k) wipe_luma_combo_box.set_active(0) wipe_label = Gtk.Label(label=_("Wipe Pattern:")) wipe_row = get_two_column_box(wipe_label, wipe_luma_combo_box) color_button = Gtk.ColorButton.new_with_rgba(Gdk.RGBA(0, 0, 0, 1)) color_button_box = guiutils.get_left_justified_box([color_button]) color_label = Gtk.Label(label=_("Dip Color:")) color_row = get_two_column_box(color_label, color_button_box) wipe_luma_combo_box.set_sensitive(False) color_button.set_sensitive(False) wipe_label.set_sensitive(False) color_label.set_sensitive(False) transition_type_widgets = (type_combo_box, wipe_luma_combo_box, color_button, wipe_label, color_label) type_combo_box.connect( "changed", lambda w, e: _transition_type_changed(transition_type_widgets), None) length_entry = Gtk.Entry() trans_length = 30 if editorstate.transition_length > 0: # use last invocation length if available trans_length = editorstate.transition_length length_entry.set_text(str(trans_length)) length_row = get_two_column_box(Gtk.Label(label=_("Length:")), length_entry) filler = Gtk.Label() filler.set_size_request(10, 10) out_clip_label = Gtk.Label( label=_("First Clip Out Handle Available/Required:")) out_clip_value = Gtk.Label(label=str(trans_data["from_handle"]) + _(" frame(s)")) in_clip_label = Gtk.Label( label=_("Second Clip In Handle Available/Required:")) in_clip_value = Gtk.Label(label=str(trans_data["to_handle"]) + _(" frame(s)")) in_clip_label = Gtk.Label(label=_("Second Clip In Handle:")) in_clip_value = Gtk.Label(label=str(trans_data["to_handle"]) + _(" frame(s)")) steal_frames = Gtk.CheckButton() steal_frames.set_active(editorstate.steal_frames) steal_check_row = guiutils.get_checkbox_row_box( steal_frames, Gtk.Label(label=_("Steal frames from clips if needed"))) out_handle_row = get_two_column_box(out_clip_label, out_clip_value) in_handle_row = get_two_column_box(in_clip_label, in_clip_value) # Encoding widgets encodings_cb = Gtk.ComboBoxText() for encoding in renderconsumer.encoding_options: encodings_cb.append_text(encoding.name) encodings_cb.set_active(0) quality_cb = Gtk.ComboBoxText() transition_widgets = (encodings_cb, quality_cb) encodings_cb.connect( "changed", lambda w, e: _transition_encoding_changed(transition_widgets), None) _fill_transition_quality_combo_box(transition_widgets, 10) _set_saved_encoding(transition_widgets) # Build panel edit_vbox = Gtk.VBox(False, 2) edit_vbox.pack_start(type_row, False, False, 0) edit_vbox.pack_start(length_row, False, False, 0) edit_vbox.pack_start(wipe_row, False, False, 0) edit_vbox.pack_start(color_row, False, False, 0) data_vbox = Gtk.VBox(False, 2) data_vbox.pack_start(out_handle_row, False, False, 0) data_vbox.pack_start(in_handle_row, False, False, 0) data_vbox.pack_start(guiutils.pad_label(4, 4), False, False, 0) data_vbox.pack_start(steal_check_row, False, False, 0) enconding_vbox = Gtk.VBox(False, 2) enconding_vbox.pack_start(encodings_cb, False, False, 0) enconding_vbox.pack_start(quality_cb, False, False, 0) vbox = Gtk.VBox(False, 2) vbox.pack_start(get_named_frame(_("Transition Options"), edit_vbox), True, True, 0) vbox.pack_start(get_named_frame(_("Encoding"), enconding_vbox), True, True, 0) vbox.pack_start(get_named_frame(_("Media Overlap info"), data_vbox), True, True, 0) alignment = guiutils.set_margins(vbox, 12, 24, 12, 12) return (alignment, type_combo_box, length_entry, encodings_cb, quality_cb, wipe_luma_combo_box, color_button, steal_frames)
def _playback_prefs_panel(): prefs = editorpersistance.prefs # Widgets auto_center_on_stop = Gtk.CheckButton() auto_center_on_stop.set_active(prefs.auto_center_on_play_stop) # Jul-2016 - SvdB - For play_pause button play_pause_button = Gtk.CheckButton() # The following test is to make sure play_pause can be used for the initial value. If not found, then leave uninitialized if hasattr(prefs, 'play_pause'): play_pause_button.set_active(prefs.play_pause) auto_center_on_updown = Gtk.CheckButton() auto_center_on_updown.set_active(prefs.center_on_arrow_move) follow_move_range = Gtk.CheckButton() follow_move_range.set_active(prefs.playback_follow_move_tline_range) # Apr-2017 - SvdB - For FF/Rev speed options if hasattr(prefs, 'ffwd_rev_shift'): spin_adj = Gtk.Adjustment(value=prefs.ffwd_rev_shift, lower=1, upper=10, step_incr=1) else: spin_adj = Gtk.Adjustment(value=1, lower=1, upper=10, step_incr=1) ffwd_rev_shift_spin = Gtk.SpinButton() ffwd_rev_shift_spin.set_adjustment(spin_adj) ffwd_rev_shift_spin.set_numeric(True) if hasattr(prefs, 'ffwd_rev_ctrl'): spin_adj = Gtk.Adjustment(value=prefs.ffwd_rev_ctrl, lower=1, upper=10, step_incr=1) else: spin_adj = Gtk.Adjustment(value=10, lower=1, upper=10, step_incr=1) ffwd_rev_ctrl_spin = Gtk.SpinButton() ffwd_rev_ctrl_spin.set_adjustment(spin_adj) ffwd_rev_ctrl_spin.set_numeric(True) if hasattr(prefs, 'ffwd_rev_caps'): spin_adj = Gtk.Adjustment(value=prefs.ffwd_rev_caps, lower=1, upper=10, step_incr=1) else: spin_adj = Gtk.Adjustment(value=1, lower=1, upper=10, step_incr=1) ffwd_rev_caps_spin = Gtk.SpinButton() ffwd_rev_caps_spin.set_adjustment(spin_adj) ffwd_rev_caps_spin.set_numeric(True) loop_clips = Gtk.CheckButton() loop_clips.set_active(prefs.loop_clips) # Layout row2 = _row( guiutils.get_checkbox_row_box( auto_center_on_stop, Gtk.Label(label=_("Center Current Frame on Playback Stop")))) row13 = _row( guiutils.get_checkbox_row_box( auto_center_on_updown, Gtk.Label(label=_("Center Current Frame after Up/Down Arrow")))) # Jul-2016 - SvdB - For play_pause button row10 = _row( guiutils.get_checkbox_row_box( play_pause_button, Gtk.Label(label=_("Enable single Play/Pause button")))) # Apr-2017 - SvdB - For Fast Forward / Reverse options row14 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Fast Forward / Reverse Speed for Shift Key:")), ffwd_rev_shift_spin, PREFERENCES_LEFT)) row14.set_tooltip_text(_("Speed of Forward / Reverse will be multiplied by this value if Shift Key is held (Only using KEYS).\n" \ "Enabling multiple modifier keys will multiply the set values.\n" \ "E.g. if Shift is set to " + str(prefs.ffwd_rev_shift) + " and Ctrl to " + str(prefs.ffwd_rev_ctrl) + \ ", holding Shift + Ctrl will result in up to " + str(prefs.ffwd_rev_shift * prefs.ffwd_rev_ctrl) + "x speed.\n" \ "(Effective maximum speed depends on underlying software and/or hardware limitations)")) row15 = _row( guiutils.get_two_column_box( Gtk.Label( label=_("Fast Forward / Reverse Speed for Control Key:")), ffwd_rev_ctrl_spin, PREFERENCES_LEFT)) row15.set_tooltip_text( _("Speed of Forward / Reverse will be multiplied by this value if Ctrl Key is held (Only using KEYS)." )) row16 = _row( guiutils.get_two_column_box( Gtk.Label( label=_("Fast Forward / Reverse Speed for Caps Lock Key:")), ffwd_rev_caps_spin, PREFERENCES_LEFT)) row16.set_tooltip_text( _("Speed of Forward / Reverse will be multiplied by this value if Caps Lock is set (Only using KEYS)." )) row17 = _row( guiutils.get_checkbox_row_box( follow_move_range, Gtk.Label(label=_("Move Timeline to follow Playback")))) row18 = _row( guiutils.get_checkbox_row_box( loop_clips, Gtk.Label(label=_("Loop Media Clips on Monitor")))) vbox = Gtk.VBox(False, 2) vbox.pack_start(row17, False, False, 0) vbox.pack_start(row18, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row13, False, False, 0) # Jul-2016 - SvdB - For play_pause button vbox.pack_start(row10, False, False, 0) # Apr-2017 - SvdB - For ffwd / rev speed vbox.pack_start(row14, False, False, 0) vbox.pack_start(row15, False, False, 0) vbox.pack_start(row16, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) # Jul-2016 - SvdB - Added play_pause_button # Apr-2017 - SvdB - Added ffwd / rev values return vbox, (auto_center_on_stop, play_pause_button, auto_center_on_updown, ffwd_rev_shift_spin, ffwd_rev_ctrl_spin, ffwd_rev_caps_spin, follow_move_range, loop_clips)
def _edit_prefs_panel(): prefs = editorpersistance.prefs # Widgets spin_adj = Gtk.Adjustment(prefs.default_grfx_length, 1, 15000, 1) gfx_length_spin = Gtk.SpinButton() gfx_length_spin.set_adjustment(spin_adj) gfx_length_spin.set_numeric(True) """ overwrite_clip_drop = Gtk.ComboBoxText() active = 0 if prefs.overwrite_clip_drop == False: active = 1 overwrite_clip_drop.append_text(_("Overwrite blanks")) overwrite_clip_drop.append_text(_("Always insert")) overwrite_clip_drop.set_active(active) """ kf_edit_playhead_move = Gtk.CheckButton() kf_edit_playhead_move.set_active(prefs.kf_edit_init_affects_playhead) cover_delete = Gtk.CheckButton() cover_delete.set_active(prefs.trans_cover_delete) active = 0 if prefs.mouse_scroll_action_is_zoom == False: active = 1 mouse_scroll_action = Gtk.ComboBoxText() mouse_scroll_action.append_text(_("Zoom, Control to Scroll Horizontal")) mouse_scroll_action.append_text(_("Scroll Horizontal, Control to Zoom")) mouse_scroll_action.set_active(active) active = 0 if prefs.scroll_horizontal_dir_up_forward == False: active = 1 hor_scroll_dir = Gtk.ComboBoxText() hor_scroll_dir.append_text(_("Scroll Up Forward")) hor_scroll_dir.append_text(_("Scroll Down Forward")) hor_scroll_dir.set_active(active) hide_file_ext_button = Gtk.CheckButton() if hasattr(prefs, 'hide_file_ext'): hide_file_ext_button.set_active(prefs.hide_file_ext) # Layout row4 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Graphics default length:")), gfx_length_spin, PREFERENCES_LEFT)) #row8 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Media drag'n'drop action on non-V1 tracks:")), overwrite_clip_drop, PREFERENCES_LEFT)) row9 = _row(guiutils.get_checkbox_row_box(cover_delete, Gtk.Label(label=_("Cover Transition/Fade clips on delete if possible")))) # Jul-2016 - SvdB - For play_pause button row11 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Mouse Middle Button Scroll Action:")), mouse_scroll_action, PREFERENCES_LEFT)) row13 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Mouse Horizontal Scroll Direction:")), hor_scroll_dir, PREFERENCES_LEFT)) row14 = _row(guiutils.get_checkbox_row_box(kf_edit_playhead_move, Gtk.Label(label=_("Move Playhead to Clip start on keyframe edit init")))) row12 = _row(guiutils.get_checkbox_row_box(hide_file_ext_button, Gtk.Label(label=_("Hide file extensions when importing Clips")))) # Apr-2017 - SvdB - For Fast Forward / Reverse options vbox = Gtk.VBox(False, 2) vbox.pack_start(row4, False, False, 0) vbox.pack_start(row9, False, False, 0) #vbox.pack_start(row8, False, False, 0) vbox.pack_start(row11, False, False, 0) vbox.pack_start(row13, False, False, 0) vbox.pack_start(row14, False, False, 0) vbox.pack_start(row12, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) # Jul-2016 - SvdB - Added play_pause_button # Apr-2017 - SvdB - Added ffwd / rev values return vbox, (gfx_length_spin, cover_delete, mouse_scroll_action, hide_file_ext_button, hor_scroll_dir, kf_edit_playhead_move)
def _playback_prefs_panel(): prefs = editorpersistance.prefs # Widgets auto_center_on_stop = Gtk.CheckButton() auto_center_on_stop.set_active(prefs.auto_center_on_play_stop) # Jul-2016 - SvdB - For play_pause button play_pause_button = Gtk.CheckButton() # The following test is to make sure play_pause can be used for the initial value. If not found, then leave uninitialized if hasattr(prefs, 'play_pause'): play_pause_button.set_active(prefs.play_pause) auto_center_on_updown = Gtk.CheckButton() auto_center_on_updown.set_active(prefs.center_on_arrow_move) follow_move_range = Gtk.CheckButton() follow_move_range.set_active(prefs.playback_follow_move_tline_range) # Apr-2017 - SvdB - For FF/Rev speed options if hasattr(prefs, 'ffwd_rev_shift'): spin_adj = Gtk.Adjustment(prefs.ffwd_rev_shift, 1, 10, 1) else: spin_adj = Gtk.Adjustment(1, 1, 10, 1) ffwd_rev_shift_spin = Gtk.SpinButton() ffwd_rev_shift_spin.set_adjustment(spin_adj) ffwd_rev_shift_spin.set_numeric(True) if hasattr(prefs, 'ffwd_rev_ctrl'): spin_adj = Gtk.Adjustment(prefs.ffwd_rev_ctrl, 1, 10, 1) else: spin_adj = Gtk.Adjustment(10, 1, 10, 1) ffwd_rev_ctrl_spin = Gtk.SpinButton() ffwd_rev_ctrl_spin.set_adjustment(spin_adj) ffwd_rev_ctrl_spin.set_numeric(True) if hasattr(prefs, 'ffwd_rev_caps'): spin_adj = Gtk.Adjustment(prefs.ffwd_rev_caps, 1, 10, 1) else: spin_adj = Gtk.Adjustment(1, 1, 10, 1) ffwd_rev_caps_spin = Gtk.SpinButton() ffwd_rev_caps_spin.set_adjustment(spin_adj) ffwd_rev_caps_spin.set_numeric(True) # Layout #row1 = _row(guiutils.get_checkbox_row_box(auto_play_in_clip_monitor, Gtk.Label(label=_("Autoplay new Clips in Clip Monitor")))) row2 = _row(guiutils.get_checkbox_row_box(auto_center_on_stop, Gtk.Label(label=_("Center Current Frame on Playback Stop")))) row13 = _row(guiutils.get_checkbox_row_box(auto_center_on_updown, Gtk.Label(label=_("Center Current Frame after Up/Down Arrow")))) # Jul-2016 - SvdB - For play_pause button row10 = _row(guiutils.get_checkbox_row_box(play_pause_button, Gtk.Label(label=_("Enable single Play/Pause button")))) # Apr-2017 - SvdB - For Fast Forward / Reverse options row14 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Fast Forward / Reverse Speed for Shift Key:")), ffwd_rev_shift_spin, PREFERENCES_LEFT)) row14.set_tooltip_text(_("Speed of Forward / Reverse will be multiplied by this value if Shift Key is held (Only using KEYS).\n" \ "Enabling multiple modifier keys will multiply the set values.\n" \ "E.g. if Shift is set to " + str(prefs.ffwd_rev_shift) + " and Ctrl to " + str(prefs.ffwd_rev_ctrl) + \ ", holding Shift + Ctrl will result in up to " + str(prefs.ffwd_rev_shift * prefs.ffwd_rev_ctrl) + "x speed.\n" \ "(Effective maximum speed depends on underlying software and/or hardware limitations)")) row15 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Fast Forward / Reverse Speed for Control Key:")), ffwd_rev_ctrl_spin, PREFERENCES_LEFT)) row15.set_tooltip_text(_("Speed of Forward / Reverse will be multiplied by this value if Ctrl Key is held (Only using KEYS).")) row16 = _row(guiutils.get_two_column_box(Gtk.Label(label=_("Fast Forward / Reverse Speed for Caps Lock Key:")), ffwd_rev_caps_spin, PREFERENCES_LEFT)) row16.set_tooltip_text(_("Speed of Forward / Reverse will be multiplied by this value if Caps Lock is set (Only using KEYS).")) row17 = _row(guiutils.get_checkbox_row_box(follow_move_range, Gtk.Label(label=_("Move Timeline to follow Playback")))) vbox = Gtk.VBox(False, 2) vbox.pack_start(row17, False, False, 0) vbox.pack_start(row2, False, False, 0) vbox.pack_start(row13, False, False, 0) # Jul-2016 - SvdB - For play_pause button vbox.pack_start(row10, False, False, 0) # Apr-2017 - SvdB - For ffwd / rev speed vbox.pack_start(row14, False, False, 0) vbox.pack_start(row15, False, False, 0) vbox.pack_start(row16, False, False, 0) vbox.pack_start(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) # Jul-2016 - SvdB - Added play_pause_button # Apr-2017 - SvdB - Added ffwd / rev values return vbox, (auto_center_on_stop, play_pause_button, auto_center_on_updown, ffwd_rev_shift_spin, ffwd_rev_ctrl_spin, ffwd_rev_caps_spin, follow_move_range)
def _view_prefs_panel(): prefs = editorpersistance.prefs # Widgets force_english_check = Gtk.CheckButton() force_english_check.set_active(prefs.use_english_always) display_splash_check = Gtk.CheckButton() display_splash_check.set_active(prefs.display_splash_screen) buttons_combo = Gtk.ComboBoxText() buttons_combo.append_text(_("Glass")) buttons_combo.append_text(_("Simple")) if prefs.buttons_style == editorpersistance.GLASS_STYLE: buttons_combo.set_active(0) else: buttons_combo.set_active(1) dark_combo = Gtk.ComboBoxText() dark_combo.append_text(_("Light Theme")) dark_combo.append_text(_("Dark Theme")) if prefs.dark_theme == True: dark_combo.set_active(1) else: dark_combo.set_active(0) theme_combo = Gtk.ComboBoxText() for theme in gui._THEME_COLORS: theme_combo.append_text(theme[4]) theme_combo.set_active(prefs.theme_fallback_colors) audio_levels_combo = Gtk.ComboBoxText() audio_levels_combo.append_text(_("Display All Levels")) audio_levels_combo.append_text(_("Display Levels On Request")) if prefs.display_all_audio_levels == True: audio_levels_combo.set_active(0) else: audio_levels_combo.set_active(1) # Layout row0 = _row( guiutils.get_checkbox_row_box( force_english_check, Gtk.Label(label=_("Use English texts on localized OS")))) row1 = _row( guiutils.get_checkbox_row_box( display_splash_check, Gtk.Label(label=_("Display splash screen")))) row2 = _row( guiutils.get_two_column_box(Gtk.Label(label=_("Buttons style:")), buttons_combo, PREFERENCES_LEFT)) row3 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Icons and color optimized for:")), dark_combo, PREFERENCES_LEFT)) row4 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Theme detection fail fallback colors:")), theme_combo, PREFERENCES_LEFT)) row5 = _row( guiutils.get_two_column_box( Gtk.Label(label=_("Default audio levels display:")), audio_levels_combo, PREFERENCES_LEFT)) vbox = Gtk.VBox(False, 2) vbox.pack_start(row0, False, False, 0) 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(Gtk.Label(), True, True, 0) guiutils.set_margins(vbox, 12, 0, 12, 12) return vbox, (force_english_check, display_splash_check, buttons_combo, dark_combo, theme_combo, audio_levels_combo)