add Autosave continuous backups by Andras Reuss and Andrew-R
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / appearanceprefs.C
index 943274717c2ceb82248661e4c8ecf4c9b29e00f8..c80ee26bef23c2a00ff0557087ca65fdbdc33700 100644 (file)
@@ -94,7 +94,12 @@ void AppearancePrefs::create_objects()
        add_subwindow(new BC_Title(x, y, _("Plugin Icons:")));
        add_subwindow(plugin_icons = new ViewPluginIcons(x1, y, pwindow));
        plugin_icons->create_objects();
-       y += plugin_icons->get_h() + ys15;
+       y += plugin_icons->get_h() + ys10;
+       add_subwindow(new BC_Title(x, y, _("Language:")));
+       LayoutLocale *layout_locale;
+       add_subwindow(layout_locale = new LayoutLocale(x1, y, pwindow));
+       layout_locale->create_objects();
+       y += layout_locale->get_h() + ys15;
        x1 = get_w()/2;
 
        int x2 = x1 + xS(160), y2 = y;
@@ -179,9 +184,8 @@ void AppearancePrefs::create_objects()
        y += ys35;
        add_subwindow(title = new BC_Title(x, y, _("Composer BG Color:")));
        int clr_color = pwindow->thread->edl->session->cwindow_clear_color;
-       int clr_alpha = pwindow->thread->edl->session->cwindow_clear_alpha;
         add_subwindow(cwdw_bg_color = new Composer_BG_Color(pwindow,
-               x2, y, xS(80), yS(24), clr_color, clr_alpha));
+               x2, y, xS(80), yS(24), clr_color));
        draw_3d_border(x2-2,y-2, xS(80)+4,xS(24)+4, 1);
        cwdw_bg_color->create_objects();
        x2 += cwdw_bg_color->get_w();
@@ -201,7 +205,7 @@ void AppearancePrefs::create_objects()
        if( y2 < y ) y2 = y;
 
        add_subwindow(new BC_Bar(x0, y2, get_w()-x0 - xs30));
-       y += ys15;
+       y += ys35;
 
        x = x0;  y1 = y;
        add_subwindow(title = new BC_Title(x, y, _("Warnings:"), LARGEFONT,
@@ -210,18 +214,27 @@ void AppearancePrefs::create_objects()
        UseWarnIndecies *idx_warn = new UseWarnIndecies(pwindow, x, y);
        add_subwindow(idx_warn);
        y += idx_warn->get_h() + ys5;
-       UseWarnVersion *ver_warn = new UseWarnVersion(pwindow, x, y);
-       add_subwindow(ver_warn);
-       y += ver_warn->get_h() + ys5;
-       UseWarnStack *stack_warn = new UseWarnStack(pwindow, x, y);
-       add_subwindow(stack_warn);
-       y += stack_warn->get_h() + ys5;
        BD_WarnRoot *bdwr_warn = new BD_WarnRoot(pwindow, x, y);
        add_subwindow(bdwr_warn);
        y += bdwr_warn->get_h() + ys5;
        UseWarnFileRef *warn_ref = new UseWarnFileRef(pwindow, x, y);
        add_subwindow(warn_ref);
        y += warn_ref->get_h() + ys5;
+       
+       add_subwindow(new BC_Bar(x0, y, warn_ref->get_w()-x0 - xs30));
+       y += ys15;
+
+       add_subwindow(title = new BC_Title(x, y, _("Dangerous:"), LARGEFONT,
+               resources->text_default));
+       y += title->get_h() + ys10;
+
+       
+       UseUnsafeGUI *unsafe_gui = new UseUnsafeGUI(pwindow, x, y);
+       add_subwindow(unsafe_gui);
+       y += unsafe_gui->get_h() + ys5;
+       OngoingBackups *ongoing_backups = new OngoingBackups(pwindow, x, y);
+       add_subwindow(ongoing_backups);
+       y += ongoing_backups->get_h() + ys5;
 
        x = get_w() / 3 + xs30;
        y = y1;
@@ -465,6 +478,42 @@ int ViewPluginIconItem::handle_event()
        return 1;
 }
 
+LayoutLocale::LayoutLocale(int x, int y, PreferencesWindow *pwindow)
+ : BC_PopupMenu(x, y, xS(200), pwindow->thread->preferences->locale, 1)
+{
+       this->pwindow = pwindow;
+}
+LayoutLocale::~LayoutLocale()
+{
+}
+
+const char *LayoutLocale::locale_list[] = { LOCALE_LIST, 0 };
+
+void LayoutLocale::create_objects()
+{
+       for( const char *tp, **lp=locale_list; (tp=*lp)!=0; ++lp )
+               add_item(new LayoutLocaleItem(this, tp));
+}
+
+int LayoutLocale::handle_event()
+{
+       return 1;
+}
+
+LayoutLocaleItem::LayoutLocaleItem(LayoutLocale *popup, const char *text)
+ : BC_MenuItem(text)
+{
+       this->popup = popup;
+}
+
+int LayoutLocaleItem::handle_event()
+{
+       popup->set_text(get_text());
+       strcpy(popup->pwindow->thread->preferences->locale, get_text());
+       popup->handle_event();
+       return 1;
+}
+
 ViewLayoutScale::ViewLayoutScale(PreferencesWindow *pwindow,
                AppearancePrefs *aprefs, int x, int y)
  : BC_TumbleTextBox(aprefs,
@@ -611,29 +660,31 @@ int UseWarnIndecies::handle_event()
        return 1;
 }
 
-UseWarnVersion::UseWarnVersion(PreferencesWindow *pwindow, int x, int y)
- : BC_CheckBox(x, y, pwindow->thread->preferences->warn_version,
-       _("EDL version warns if mismatched"))
+UseUnsafeGUI::UseUnsafeGUI(PreferencesWindow *pwindow, int x, int y)
+ : BC_CheckBox(x, y, pwindow->thread->preferences->unsafe_gui,
+       _("Unsafe GUI in batchrender"))
 {
        this->pwindow = pwindow;
+       set_tooltip(_("Save to EDL path option becomes available and will overwrite EDL on disk. \n Warn if jobs/session mismatch option is available but can be unchecked."));
 }
 
-int UseWarnVersion::handle_event()
+int UseUnsafeGUI::handle_event()
 {
-       pwindow->thread->preferences->warn_version = get_value();
+       pwindow->thread->preferences->unsafe_gui = get_value();
        return 1;
 }
 
-UseWarnStack::UseWarnStack(PreferencesWindow *pwindow, int x, int y)
- : BC_CheckBox(x, y, pwindow->thread->preferences->warn_stack,
-       _("Stack warns if reference not modified"))
+OngoingBackups::OngoingBackups(PreferencesWindow *pwindow, int x, int y)
+ : BC_CheckBox(x, y, pwindow->thread->preferences->ongoing_backups,
+       _("Autosave continuous backups"))
 {
        this->pwindow = pwindow;
+       set_tooltip(_("When you stop Cinelerra, all but the newest 50 will be deleted but you risk \n running out of disk space if you do a lot of work without restarting."));
 }
 
-int UseWarnStack::handle_event()
+int OngoingBackups::handle_event()
 {
-       pwindow->thread->preferences->warn_stack = get_value();
+       pwindow->thread->preferences->ongoing_backups = get_value();
        return 1;
 }
 
@@ -727,6 +778,7 @@ AutoRotate::AutoRotate(PreferencesWindow *pwindow, int x, int y)
        _("Auto rotate ffmpeg media"))
 {
        this->pwindow = pwindow;
+       set_tooltip(_("Automatically rotates media if legal rotation metadata in file."));
 }
 
 int AutoRotate::handle_event()
@@ -753,6 +805,7 @@ AutocolorAssets::AutocolorAssets(PreferencesWindow *pwindow, int x, int y)
        _("Autocolor assets"))
 {
        this->pwindow = pwindow;
+       set_tooltip(_("Displays automatically generated color overlay for the \n edits on the timeline that belong to the same media file."));
 }
 
 int AutocolorAssets::handle_event()
@@ -872,6 +925,7 @@ PerpetualSession::PerpetualSession(int x, int y, PreferencesWindow *pwindow)
        pwindow->thread->preferences->perpetual_session, _("Perpetual session"))
 {
        this->pwindow = pwindow;
+       set_tooltip(_("Resume previous session on startup with undo/redo stack saved between sessions. \n On startup, previous project is loaded as if there was no stoppage."));
 }
 
 int PerpetualSession::handle_event()
@@ -885,6 +939,7 @@ CtrlToggle::CtrlToggle(int x, int y, PreferencesWindow *pwindow)
        pwindow->thread->preferences->ctrl_toggle, _("Clears before toggle"))
 {
        this->pwindow = pwindow;
+       set_tooltip(_("Drag and Drop editing - when using LMB on edit,\n clears all selected edits except this one."));
 }
 
 int CtrlToggle::handle_event()
@@ -898,6 +953,7 @@ RectifyAudioToggle::RectifyAudioToggle(int x, int y, PreferencesWindow *pwindow)
        pwindow->thread->preferences->rectify_audio, _("Timeline Rectify Audio"))
 {
        this->pwindow = pwindow;
+       set_tooltip(_("Displays rectified audio showing only positive half of the waveform \n resulting in waveform stretched more over the height of the track."));
 }
 
 int RectifyAudioToggle::handle_event()
@@ -907,8 +963,8 @@ int RectifyAudioToggle::handle_event()
 }
 
 Composer_BG_Color::Composer_BG_Color(PreferencesWindow *pwindow,
-               int x, int y, int w, int h, int color, int alpha)
- : ColorBoxButton(_("Composer BG color"), x, y, w, h, color, alpha, 1)
+               int x, int y, int w, int h, int color)
+ : ColorBoxButton(_("Composer BG color"), x, y, w, h, color, -1, 1)
 {
        this->pwindow = pwindow;
 }
@@ -930,7 +986,6 @@ void Composer_BG_Color::handle_done_event(int result)
 int Composer_BG_Color::handle_new_color(int color, int alpha)
 {
        pwindow->thread->edl->session->cwindow_clear_color = color;
-       pwindow->thread->edl->session->cwindow_clear_alpha = alpha;
        return 1;
 }