fix for title color in old edl xml, fix default edit popup color value
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / editpopup.C
index cbe07b5d5044302fb653bee06d82fbf41f8e6a60..34aadc468797c4eba2746b7e29b44a27a4d4359a 100644 (file)
@@ -116,7 +116,7 @@ EditPopupCopy::EditPopupCopy(MWindow *mwindow, EditPopup *popup)
 
 int EditPopupCopy::handle_event()
 {
-       mwindow->selected_to_clipboard(0);
+       mwindow->selected_edits_to_clipboard(0);
        return 1;
 }
 
@@ -131,7 +131,7 @@ EditPopupCopyPack::EditPopupCopyPack(MWindow *mwindow, EditPopup *popup)
 
 int EditPopupCopyPack::handle_event()
 {
-       mwindow->selected_to_clipboard(1);
+       mwindow->selected_edits_to_clipboard(1);
        return 1;
 }
 
@@ -332,7 +332,22 @@ void EditUserTitleDialogThread::handle_done_event(int result)
        if( result ) return;
        MWindow *mwindow = edit_title->mwindow;
        EditPopup *popup = edit_title->popup;
-       strcpy(popup->edit->user_title, window->title_text->get_text());
+       EDL *edl = mwindow->edl;
+       const char *text = window->title_text->get_text();
+       int count = 0;
+       for( Track *track=edl->tracks->first; track; track=track->next ) {
+               if( !track->record ) continue;
+               for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+                       if( !edit->is_selected ) continue;
+                       strcpy(edit->user_title, text);
+                       ++count;
+               }
+       }
+       if( count )
+               edl->tracks->clear_selected_edits();
+       else if( popup->edit ) {
+               strcpy(popup->edit->user_title, text);
+       }
        mwindow->gui->lock_window("EditUserTitleDialogThread::handle_done_event");
        mwindow->gui->draw_canvas(1, 0);
        mwindow->gui->flash_canvas(1);
@@ -408,10 +423,11 @@ int EditPopupTitleColor::handle_event()
 {
        if( popup->edit ) {
                int color = popup->mwindow->get_title_color(popup->edit);
-               if( color < 0 ) color = popup->mwindow->theme->get_color_title_bg();
+               if( !color ) color = popup->mwindow->theme->get_color_title_bg();
                delete color_picker;
-               color_picker = new EditTitleColorPicker(popup);
-               color_picker->start_window(color, -1, 1);
+               color_picker = new EditTitleColorPicker(popup, color);
+               int alpha = (~color>>24) & 0xff;
+               color_picker->start_window(color & 0xffffff, alpha, 1);
        }
        return 1;
 }
@@ -425,30 +441,32 @@ EditTitleColorDefault::EditTitleColorDefault(
 
 int EditTitleColorDefault::handle_event()
 {
-       int color = color_picker->popup->mwindow->theme->get_color_title_bg();
-       color_picker->update_gui(color, -1);
+       const int color = 0, alpha = 0xff;
+       color_picker->color = color | (~alpha << 24);
+       color_picker->update_gui(color, alpha);
        return 1;
 }
 
-EditTitleColorPicker::EditTitleColorPicker(EditPopup *popup)
- : ColorPicker(0, _("Bar Color"))
+EditTitleColorPicker::EditTitleColorPicker(EditPopup *popup, int color)
+ : ColorPicker(1, _("Bar Color"))
 {
        this->popup = popup;
-       color = -1;
+       this->color = color;
 }
 EditTitleColorPicker::~EditTitleColorPicker()
 {
 }
 void EditTitleColorPicker::create_objects(ColorWindow *gui)
 {
-       int y = gui->get_h() - BC_CancelButton::calculate_h() - 50;
-       int x = gui->get_w() - BC_GenericButton::calculate_w(gui, _("default")) - 15;
+       int y = gui->get_h() - BC_CancelButton::calculate_h() + 10;
+       int x = gui->get_w() - BC_CancelButton::calculate_w() - 10;
+       x -= BC_GenericButton::calculate_w(gui, _("default")) + 15;
        gui->add_subwindow(new EditTitleColorDefault(this, x, y));
 }
 
 int EditTitleColorPicker::handle_new_color(int color, int alpha)
 {
-       this->color = color;
+       this->color = color | (~alpha << 24);
        return 1;
 }