projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refresh frame fix, dblclk proxy viewer fix, vicon refresh fix for awdw resize, fix...
[goodguy/history.git]
/
cinelerra-5.1
/
cinelerra
/
awindowgui.C
diff --git
a/cinelerra-5.1/cinelerra/awindowgui.C
b/cinelerra-5.1/cinelerra/awindowgui.C
index 9be5b66ba743405552d4b4a4a384de0508395173..9f966f75f6a8116087033dd530b7abd62979aa85 100644
(file)
--- a/
cinelerra-5.1/cinelerra/awindowgui.C
+++ b/
cinelerra-5.1/cinelerra/awindowgui.C
@@
-173,12
+173,12
@@
int64_t AssetVIcon::set_seq_no(int64_t no)
int AssetVIcon::get_vx()
{
BC_ListBox *lbox = picon->gui->asset_list;
int AssetVIcon::get_vx()
{
BC_ListBox *lbox = picon->gui->asset_list;
- return lbox->get_item_x(picon);
+ return lbox->get_item_x(picon)
+ ICON_MARGIN
;
}
int AssetVIcon::get_vy()
{
BC_ListBox *lbox = picon->gui->asset_list;
}
int AssetVIcon::get_vy()
{
BC_ListBox *lbox = picon->gui->asset_list;
- return lbox->get_item_y(picon);
+ return lbox->get_item_y(picon)
+ ICON_MARGIN
;
}
void AssetVIcon::load_audio()
}
void AssetVIcon::load_audio()
@@
-1136,6
+1136,10
@@
int AWindowGUI::resize_event(int w, int h)
// view->reposition_window(x, y);
BC_WindowBase::resize_event(w, h);
// view->reposition_window(x, y);
BC_WindowBase::resize_event(w, h);
+ int x0 = 0, x1 = asset_list->get_w();
+ int y0 = asset_list->get_title_h();
+ int y1 = asset_list->get_h();
+ vicon_thread->set_drawing_area(x0,y0, x1,y1);
return 1;
}
return 1;
}
@@
-1672,12
+1676,12
@@
EDL *AWindowGUI::collect_proxy(Indexable *indexable)
int proxy_scale = mwindow->edl->session->proxy_scale;
ProxyRender::from_proxy_path(path, proxy_asset, proxy_scale);
Asset *unproxy_asset = mwindow->edl->assets->get_asset(path);
int proxy_scale = mwindow->edl->session->proxy_scale;
ProxyRender::from_proxy_path(path, proxy_asset, proxy_scale);
Asset *unproxy_asset = mwindow->edl->assets->get_asset(path);
- if( !unproxy_asset || !unproxy_asset->
channel
s ) return 0;
+ if( !unproxy_asset || !unproxy_asset->
layer
s ) return 0;
// make a clip from proxy video tracks and unproxy audio tracks
EDL *proxy_edl = new EDL(mwindow->edl);
proxy_edl->create_objects();
// make a clip from proxy video tracks and unproxy audio tracks
EDL *proxy_edl = new EDL(mwindow->edl);
proxy_edl->create_objects();
+ proxy_edl->set_path(proxy_asset->path);
FileSystem fs; fs.extract_name(path, proxy_asset->path);
FileSystem fs; fs.extract_name(path, proxy_asset->path);
- proxy_edl->set_path(path);
strcpy(proxy_edl->local_session->clip_title, path);
strcpy(proxy_edl->local_session->clip_notes, _("Proxy clip"));
proxy_edl->session->video_tracks = proxy_asset->layers;
strcpy(proxy_edl->local_session->clip_title, path);
strcpy(proxy_edl->local_session->clip_notes, _("Proxy clip"));
proxy_edl->session->video_tracks = proxy_asset->layers;
@@
-1702,18
+1706,17
@@
EDL *AWindowGUI::collect_proxy(Indexable *indexable)
}
}
-void AWindowGUI::collect_assets(
int proxy
)
+void AWindowGUI::collect_assets()
{
mwindow->session->drag_assets->remove_all();
mwindow->session->drag_clips->remove_all();
{
mwindow->session->drag_assets->remove_all();
mwindow->session->drag_clips->remove_all();
- mwindow->session->clear_drag_proxy();
int i = 0; AssetPicon *result;
while( (result = (AssetPicon*)asset_list->get_selection(0, i++)) != 0 ) {
int i = 0; AssetPicon *result;
while( (result = (AssetPicon*)asset_list->get_selection(0, i++)) != 0 ) {
- Indexable *indexable = result->indexable;
EDL *drag_edl;
- if(
proxy && (drag_edl=collect_proxy(indexable)) ) {
- mwindow->session->drag_clips->append(drag_edl);
-
mwindow->session->drag_proxy->append(drag_edl
);
-
continue
;
+ Indexable *indexable = result->indexable;
+ if(
indexable && indexable->is_asset &&
+ indexable->awindow_folder == AW_PROXY_FOLDER ) {
+
EDL *drag_edl = collect_proxy(indexable
);
+
if( drag_edl ) mwindow->session->drag_clips->append(drag_edl)
;
}
if( indexable ) {
mwindow->session->drag_assets->append(indexable);
}
if( indexable ) {
mwindow->session->drag_assets->append(indexable);
@@
-1732,19
+1735,24
@@
void AWindowGUI::copy_picons(ArrayList<BC_ListBoxItem*> *dst,
// Remove current pointers
dst[0].remove_all();
dst[1].remove_all_objects();
// Remove current pointers
dst[0].remove_all();
dst[1].remove_all_objects();
+ BinFolder *bin_folder = folder < AWINDOW_USER_FOLDERS ? 0 :
+ mwindow->edl->get_folder(folder);
// Create new pointers
for( int i = 0; i < src->total; i++ ) {
int visible = folder < 0 ? 1 : 0;
AssetPicon *picon = (AssetPicon*)src->values[i];
picon->sort_key = -1;
// Create new pointers
for( int i = 0; i < src->total; i++ ) {
int visible = folder < 0 ? 1 : 0;
AssetPicon *picon = (AssetPicon*)src->values[i];
picon->sort_key = -1;
- if( !visible && folder >= AWINDOW_USER_FOLDERS && picon->indexable ) {
- picon->sort_key = mwindow->edl->folders.matches_indexable(folder, picon->indexable);
- if( picon->sort_key >= 0 ) visible = 1;
+ if( !visible && bin_folder ) {
+ Indexable *idxbl = bin_folder->is_clips ? picon->edl : picon->indexable;
+ if( idxbl ) {
+ picon->sort_key = mwindow->edl->folders.matches_indexable(folder, idxbl);
+ if( picon->sort_key >= 0 ) visible = 1;
+ }
}
if( !visible && picon->indexable && picon->indexable->awindow_folder == folder )
visible = 1;
}
if( !visible && picon->indexable && picon->indexable->awindow_folder == folder )
visible = 1;
- if( !visible && picon->edl && picon->edl->
awindow_
folder == folder )
+ if( !visible && picon->edl && picon->edl->
local_session->
folder == folder )
visible = 1;
if( visible ) {
const char *text = search_text->get_text();
visible = 1;
if( visible ) {
const char *text = search_text->get_text();
@@
-2067,10
+2075,12
@@
int AWindowFolders::drag_stop()
AssetPicon *picon = (AssetPicon *)(item_no < 0 ? 0 : gui->folders[item_no]);
if( picon && picon->foldernum >= AWINDOW_USER_FOLDERS ) {
BinFolder *folder = mwindow->edl->get_folder(picon->foldernum);
AssetPicon *picon = (AssetPicon *)(item_no < 0 ? 0 : gui->folders[item_no]);
if( picon && picon->foldernum >= AWINDOW_USER_FOLDERS ) {
BinFolder *folder = mwindow->edl->get_folder(picon->foldernum);
- ArrayList<Indexable *> *drags = mwindow->session->drag_assets;
- if( folder && drags ) folder->add_patterns(drags);
+ ArrayList<Indexable *> *drags = folder->is_clips ?
+ ((ArrayList<Indexable *> *)mwindow->session->drag_clips) :
+ ((ArrayList<Indexable *> *)mwindow->session->drag_assets);
+ if( folder && drags && !folder->add_patterns(drags) )
+ flicker(1,30);
mwindow->session->current_operation = ::NO_OPERATION;
mwindow->session->current_operation = ::NO_OPERATION;
- flicker(1,30);
result = 1;
}
}
result = 1;
}
}
@@
-2244,7
+2254,7
@@
void AWindowAssets::draw_background()
int AWindowAssets::drag_start_event()
{
int collect_pluginservers = 0;
int AWindowAssets::drag_start_event()
{
int collect_pluginservers = 0;
- int collect_assets = 0
, proxy = 0
;
+ int collect_assets = 0;
if( BC_ListBox::drag_start_event() ) {
switch( mwindow->edl->session->awindow_folder ) {
if( BC_ListBox::drag_start_event() ) {
switch( mwindow->edl->session->awindow_folder ) {
@@
-2267,9
+2277,6
@@
int AWindowAssets::drag_start_event()
case AW_LABEL_FOLDER:
// do nothing!
break;
case AW_LABEL_FOLDER:
// do nothing!
break;
- case AW_PROXY_FOLDER:
- proxy = 1;
- // fall thru
case AW_MEDIA_FOLDER:
default:
mwindow->session->current_operation = DRAG_ASSET;
case AW_MEDIA_FOLDER:
default:
mwindow->session->current_operation = DRAG_ASSET;
@@
-2290,7
+2297,7
@@
int AWindowAssets::drag_start_event()
}
if( collect_assets ) {
}
if( collect_assets ) {
- gui->collect_assets(
proxy
);
+ gui->collect_assets();
}
return 1;
}
return 1;
@@
-2382,7
+2389,6
@@
int AWindowAssets::drag_stop_event()
BC_ListBox::drag_stop_event();
// since NO_OPERATION is also defined in listbox, we have to reach for global scope...
mwindow->session->current_operation = ::NO_OPERATION;
BC_ListBox::drag_stop_event();
// since NO_OPERATION is also defined in listbox, we have to reach for global scope...
mwindow->session->current_operation = ::NO_OPERATION;
- mwindow->session->clear_drag_proxy();
return 1;
}
return 1;
}