add Autosave continuous backups by Andras Reuss and Andrew-R
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / menuattachtransition.C
index 13307fb9fc695f522a9176fa99d33788c3a24d87..52e3dd389e3babe36df6311d946c91bdcde82970 100644 (file)
@@ -73,9 +73,9 @@ void TransitionDialogThread::start()
 {
        if(!transition_names.total)
        {
-               strcpy(transition_title, data_type == TRACK_AUDIO ?
-                       mwindow->edl->session->default_atransition :
-                       mwindow->edl->session->default_vtransition);
+//             strcpy(transition_title, data_type == TRACK_AUDIO ?
+//                     mwindow->edl->session->default_atransition :
+//                     mwindow->edl->session->default_vtransition);
 
 // Construct listbox names
                ArrayList<PluginServer*> plugindb;
@@ -112,6 +112,17 @@ void TransitionDialogThread::handle_close_event(int result)
 {
        if(!result)
        {
+       // Re-search plugindb and use untranslated plugin name
+                       ArrayList<PluginServer*> plugindb;
+               mwindow->search_plugindb(data_type == TRACK_AUDIO,
+                       data_type == TRACK_VIDEO, 0, 1, 0, plugindb);
+               for(int i = 0; i < plugindb.total; i++) {
+                       const char *title = _(plugindb.values[i]->title);
+                       if( !strcmp(transition_title, title)) {
+                       strcpy(transition_title, N_(plugindb.values[i]->title));
+                       }
+               }
+       
                mwindow->paste_transitions(data_type, transition_title);
        }
 }
@@ -123,7 +134,7 @@ TransitionDialog::TransitionDialog(MWindow *mwindow,
  : BC_Window(_("Attach Transition"), x, y,
        mwindow->session->transitiondialog_w,
        mwindow->session->transitiondialog_h,
-       320, 240, 1, 0, 1)
+       xS(320), yS(240), 1, 0, 1)
 {
        this->mwindow = mwindow;
        this->thread = thread;
@@ -144,12 +155,26 @@ int TransitionSetDefault::handle_event()
        TransitionDialogThread *thread = (TransitionDialogThread *)window->thread;
        const char *transition_title = thread->transition_title;
        EDL *edl = window->mwindow->edl;
+       
+       // Re-search plugindb and use untranslated plugin name
+               
+               ArrayList<PluginServer*> plugindb;
+               thread->mwindow->search_plugindb(thread->data_type == TRACK_AUDIO,
+                       thread->data_type == TRACK_VIDEO, 0, 1, 0, plugindb);
+               for(int i = 0; i < plugindb.total; i++) {
+                       const char *title = _(plugindb.values[i]->title);
+                       if( !strcmp(transition_title, title)) {
+                       strcpy(thread->transition_title_untranslated, N_(plugindb.values[i]->title));
+                       }
+               }
+       
+       
        switch( thread->data_type ) {
        case TRACK_AUDIO:
-               strcpy(edl->session->default_atransition, transition_title);
+               strcpy(edl->session->default_atransition, thread->transition_title_untranslated);
                break;
        case TRACK_VIDEO:
-               strcpy(edl->session->default_vtransition, transition_title);
+               strcpy(edl->session->default_vtransition, thread->transition_title_untranslated);
                break;
        }
        window->set_default_text->update(transition_title);
@@ -170,21 +195,21 @@ TransitionDefaultText::~TransitionDefaultText()
 
 void TransitionDialog::create_objects()
 {
-       int x = 10;
-       int y = 10;
+       int x = xS(10);
+       int y = yS(10);
 
        lock_window("TransitionDialog::create_objects");
        add_subwindow(name_title = new BC_Title(x, y, _("Select transition from list")));
-       y += name_title->get_h() + 5;
+       y += name_title->get_h() + yS(5);
        add_subwindow(name_list = new TransitionDialogName(thread,
                &thread->transition_names,
                x,
                y,
                get_w() - x - x,
-               get_h() - y - BC_OKButton::calculate_h() - 100));
-       y += name_list->get_h() + 20;
+               get_h() - y - BC_OKButton::calculate_h() - yS(100)));
+       y += name_list->get_h() + yS(20);
        add_subwindow(set_default = new TransitionSetDefault(this, x, y));
-       y += set_default->get_h() + 10;
+       y += set_default->get_h() + yS(10);
        const char *default_transition = "";
        EDL *edl = mwindow->edl;
        switch( thread->data_type ) {
@@ -196,7 +221,7 @@ void TransitionDialog::create_objects()
                break;
        }
        add_subwindow(set_default_text = new TransitionDefaultText(this, x, y,
-                       get_w()-x-20, default_transition));
+                       get_w()-x-xS(20), default_transition));
        if( thread->number >= 0 ) {
                name_list->update_selection(&thread->transition_names, thread->number, 0);
                name_list->draw_items(0);
@@ -210,22 +235,21 @@ void TransitionDialog::create_objects()
 
 int TransitionDialog::resize_event(int w, int h)
 {
-       int x = 10;
-       int y = 10;
+       int x = xS(10);
+       int y = yS(10);
 
        name_title->reposition_window(x, y);
-       y += name_title->get_h() + 5;
+       y += name_title->get_h() + yS(5);
        name_list->reposition_window(x, y,
-               w - x - x, h - y - BC_OKButton::calculate_h() - 100);
-       y += name_list->get_h() + 20;
+               w - x - x, h - y - BC_OKButton::calculate_h() - yS(100));
+       y += name_list->get_h() + yS(20);
        set_default->reposition_window(x, y);
-       y += set_default->get_h() + 10;
-       set_default_text->reposition_window(x, y, get_w()-x-20);
+       y += set_default->get_h() + yS(10);
+       set_default_text->reposition_window(x, y, get_w()-x-xS(20));
        return 1;
 }
 
 
-
 TransitionDialogName::TransitionDialogName(TransitionDialogThread *thread,
        ArrayList<BC_ListBoxItem*> *standalone_data, int x, int y, int w, int h)
  : BC_ListBox(x,
@@ -252,6 +276,3 @@ int TransitionDialogName::selection_changed()
        return 1;
 }
 
-
-
-