refresh frame fix, dblclk proxy viewer fix, vicon refresh fix for awdw resize, fix...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / proxypopup.C
index 225b21bd3db129968f42d682e21c97ffbb9e2136..40a29ded973a3f3bcb3523bb6730c9ea3940d45e 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include "assetedit.h"
+#include "assetremove.h"
 #include "proxypopup.h"
 #include "awindow.h"
 #include "awindowgui.h"
@@ -57,6 +58,8 @@ ProxyPopup::~ProxyPopup()
 
 void ProxyPopup::create_objects()
 {
+       BC_MenuItem *menu_item;
+       BC_SubMenu *submenu;
        add_item(info = new ProxyPopupInfo(mwindow, this));
        add_item(format = new AWindowListFormat(mwindow, gui));
        add_item(new ProxyPopupSort(mwindow, this));
@@ -64,6 +67,10 @@ void ProxyPopup::create_objects()
        add_item(view_window = new ProxyPopupViewWindow(mwindow, this));
        add_item(new ProxyPopupCopy(mwindow, this));
        add_item(new ProxyPopupPaste(mwindow, this));
+       add_item(menu_item = new BC_MenuItem(_("Remove...")));
+       menu_item->add_submenu(submenu = new BC_SubMenu());
+       submenu->add_submenuitem(new ProxyPopupProjectRemove(mwindow, this));
+       submenu->add_submenuitem(new ProxyPopupDiskRemove(mwindow, this));
 }
 
 void ProxyPopup::paste_assets()
@@ -73,7 +80,7 @@ void ProxyPopup::paste_assets()
        mwindow->gui->lock_window("ProxyPopup::paste_assets");
        mwindow->cwindow->gui->lock_window("ProxyPopup::paste_assets");
 
-       gui->collect_assets(1);
+       gui->collect_assets();
        mwindow->paste_assets(mwindow->edl->local_session->get_selectionstart(1),
                mwindow->edl->tracks->first, 0);   // do not overwrite
 
@@ -85,7 +92,7 @@ void ProxyPopup::paste_assets()
 int ProxyPopup::update()
 {
        format->update();
-       gui->collect_assets(1);
+       gui->collect_assets();
        return 0;
 }
 
@@ -133,7 +140,7 @@ ProxyPopupSort::~ProxyPopupSort()
 
 int ProxyPopupSort::handle_event()
 {
-       mwindow->awindow->gui->sort_assets(0);
+       mwindow->awindow->gui->sort_assets();
        return 1;
 }
 
@@ -245,6 +252,48 @@ int ProxyPopupPaste::handle_event()
 }
 
 
+ProxyPopupProjectRemove::ProxyPopupProjectRemove(MWindow *mwindow, ProxyPopup *popup)
+ : BC_MenuItem(_("Remove from project"))
+{
+       this->mwindow = mwindow;
+       this->popup = popup;
+}
+
+ProxyPopupProjectRemove::~ProxyPopupProjectRemove()
+{
+}
+
+int ProxyPopupProjectRemove::handle_event()
+{
+       popup->gui->collect_assets();
+       mwindow->remove_assets_from_project(1, 1,
+               mwindow->session->drag_assets,
+               mwindow->session->drag_clips);
+       return 1;
+}
+
+
+ProxyPopupDiskRemove::ProxyPopupDiskRemove(MWindow *mwindow, ProxyPopup *popup)
+ : BC_MenuItem(_("Remove from disk"))
+{
+       this->mwindow = mwindow;
+       this->popup = popup;
+}
+
+
+ProxyPopupDiskRemove::~ProxyPopupDiskRemove()
+{
+}
+
+int ProxyPopupDiskRemove::handle_event()
+{
+       popup->gui->collect_assets();
+       mwindow->awindow->asset_remove->start();
+       return 1;
+}
+
+
+
 ProxyListMenu::ProxyListMenu(MWindow *mwindow, AWindowGUI *gui)
  : BC_PopupMenu(0, 0, 0, "", 0)
 {