font/icon scaling default=1, remove glx probe msgs
[goodguy/history.git] / cinelerra-5.0 / cinelerra / mwindowedit.C
index a8f798df937e935001e8b9eab52b64526b4c8705..17fa1c7c11fe5f712af66c77331e380ba5e61274 100644 (file)
@@ -36,6 +36,7 @@
 #include "edlsession.h"
 #include "filexml.h"
 #include "floatauto.h"
+#include "floatautos.h"
 #include "gwindow.h"
 #include "gwindowgui.h"
 #include "keyframe.h"
@@ -221,8 +222,8 @@ void MWindow::asset_to_all()
                                current;
                                current = NEXT)
                        {
-                               if(current->data_type == TRACK_VIDEO &&
-                                       current->record)
+                               if(current->data_type == TRACK_VIDEO /* &&
+                                       current->record */ )
                                {
                                        current->track_w = w;
                                        current->track_h = h;
@@ -2060,6 +2061,25 @@ void MWindow::shuffle_edits()
        gui->unlock_window();
 }
 
+void MWindow::reverse_edits()
+{
+       gui->lock_window("MWindow::reverse_edits 1");
+
+       undo->update_undo_before();
+       double start = edl->local_session->get_selectionstart();
+       double end = edl->local_session->get_selectionend();
+
+       edl->tracks->reverse_edits(start, end);
+
+       save_backup();
+       undo->update_undo_after(_("reverse edits"), LOAD_EDITS | LOAD_TIMEBAR);
+
+       sync_parameters(CHANGE_EDL);
+       restart_brender();
+       gui->update(0, 1, 1, 0, 0, 0, 0);
+       gui->unlock_window();
+}
+
 void MWindow::align_edits()
 {
        gui->lock_window("MWindow::align_edits 1");
@@ -2152,17 +2172,26 @@ void MWindow::redo_entry(BC_WindowBase *calling_window_gui)
 
        for(int i = 0; i < vwindows.size(); i++)
        {
-               vwindows.get(i)->playback_engine->que->send_command(STOP,
-                       CHANGE_NONE, 
-                       0,
-                       0);
-               vwindows.get(i)->playback_engine->interrupt_playback(0);
+               if(vwindows.get(i)->is_running())
+               {
+                       vwindows.get(i)->playback_engine->que->send_command(STOP,
+                               CHANGE_NONE, 
+                               0,
+                               0);
+                       vwindows.get(i)->playback_engine->interrupt_playback(0);
+               }
        }
 
        cwindow->gui->lock_window("MWindow::redo_entry");
        for(int i = 0; i < vwindows.size(); i++)
        {
-               vwindows.get(i)->gui->lock_window("MWindow::redo_entry 2");
+               if(vwindows.get(i)->is_running())
+               {
+                       if (calling_window_gui != vwindows.get(i)->gui)
+                       {
+                               vwindows.get(i)->gui->lock_window("MWindow::redo_entry 2");
+                       }
+               }
        }
        gui->lock_window();
 
@@ -2183,8 +2212,13 @@ void MWindow::redo_entry(BC_WindowBase *calling_window_gui)
 
        for(int i = 0; i < vwindows.size(); i++)
        {
-               if (calling_window_gui != vwindows.get(i)->gui)
-                       vwindows.get(i)->gui->unlock_window();
+               if(vwindows.get(i)->is_running())
+               {
+                       if (calling_window_gui != vwindows.get(i)->gui)
+                       {
+                               vwindows.get(i)->gui->unlock_window();
+                       }
+               }
        }
 
        cwindow->playback_engine->que->send_command(CURRENT_FRAME, 
@@ -2443,20 +2477,29 @@ void MWindow::undo_entry(BC_WindowBase *calling_window_gui)
                0);
        cwindow->playback_engine->interrupt_playback(0);
 
-
+printf("MWindow::undo_entry %d %d\n", __LINE__, vwindows.size());
        for(int i = 0; i < vwindows.size(); i++)
        {
-               vwindows.get(i)->playback_engine->que->send_command(STOP,
-                       CHANGE_NONE, 
-                       0,
-                       0);
-               vwindows.get(i)->playback_engine->interrupt_playback(0);
+               if(vwindows.get(i)->is_running())
+               {
+                       vwindows.get(i)->playback_engine->que->send_command(STOP,
+                               CHANGE_NONE, 
+                               0,
+                               0);
+                       vwindows.get(i)->playback_engine->interrupt_playback(0);
+               }
        }
 
        cwindow->gui->lock_window("MWindow::undo_entry 1");
        for(int i = 0; i < vwindows.size(); i++)
        {
-               vwindows.get(i)->gui->lock_window("MWindow::undo_entry 4");
+               if(vwindows.get(i)->is_running())
+               {
+                       if (calling_window_gui != vwindows.get(i)->gui)
+                       {
+                               vwindows.get(i)->gui->lock_window("MWindow::undo_entry 4");
+                       }
+               }
        }
        gui->lock_window("MWindow::undo_entry 2");
 
@@ -2479,8 +2522,13 @@ void MWindow::undo_entry(BC_WindowBase *calling_window_gui)
 
        for(int i = 0; i < vwindows.size(); i++)
        {
-               if (calling_window_gui != vwindows.get(i)->gui)
-                       vwindows.get(i)->gui->unlock_window();
+               if(vwindows.get(i)->is_running())
+               {
+                       if (calling_window_gui != vwindows.get(i)->gui)
+                       {
+                               vwindows.get(i)->gui->unlock_window();
+                       }
+               }
        }
        
        if (calling_window_gui != gui)
@@ -2635,3 +2683,4 @@ void MWindow::cut_commercials()
                send_command(CURRENT_FRAME, CHANGE_EDL, edl, 1);
 }
 
+