X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbcfilebox.C;h=ea9c58f5bf04e40177247b91e604196aca8b832a;hb=62ba04ea5b57d760bb66b65d533598cde044b685;hp=44671608f7302953b6d29fccad9a503d9aca60b6;hpb=ccd23c15fae578be22d48b1a1e8b09cb43d593ae;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bcfilebox.C b/cinelerra-5.1/guicast/bcfilebox.C index 44671608..ea9c58f5 100644 --- a/cinelerra-5.1/guicast/bcfilebox.C +++ b/cinelerra-5.1/guicast/bcfilebox.C @@ -223,7 +223,7 @@ int BC_FileBoxDirectoryText::handle_event() BC_FileBoxFilterText::BC_FileBoxFilterText(int x, int y, BC_FileBox *filebox) - : BC_TextBox(x, y, filebox->get_w() - 50, 1, filebox->get_resources()->filebox_filter) + : BC_TextBox(x, y, filebox->get_w() - x - 50, 1, filebox->get_resources()->filebox_filter) { this->filebox = filebox; } @@ -466,6 +466,7 @@ BC_FileBox::BC_FileBox(int x, int y, const char *init_path, column_type = new int[columns]; column_width = new int[columns]; + filter_title = 0; filter_text = 0; filter_popup = 0; usethis_button = 0; @@ -561,16 +562,17 @@ void BC_FileBox::create_objects() if(!want_directory) { filter_list.append(new BC_ListBoxItem("*")); - filter_list.append(new BC_ListBoxItem("[*.mkv]")); - filter_list.append(new BC_ListBoxItem("[*.mp4]")); + filter_list.append(new BC_ListBoxItem("[*.mkv][*.webm]")); + filter_list.append(new BC_ListBoxItem("[*.mp4][*.MP4]")); filter_list.append(new BC_ListBoxItem("[*.mp2][*.mp3][*.wav]")); filter_list.append(new BC_ListBoxItem("[*.avi][*.mpg][*.m2v][*.m1v][*.mov]")); + filter_list.append(new BC_ListBoxItem("[*.jpg][*.JPG][*.png][*.gif][*.tiff]")); filter_list.append(new BC_ListBoxItem("*.xml")); fs->set_filter(get_resources()->filebox_filter); } create_icons(); - create_tables(); + create_tables(0); add_subwindow(ok_button = new BC_FileBoxOK(this)); if(want_directory) @@ -645,9 +647,11 @@ void BC_FileBox::create_objects() y += textbox->get_h() + 10; if(!want_directory) { - add_subwindow(filter_text = new BC_FileBoxFilterText(x, y, this)); + add_subwindow(filter_title = new BC_Title(x, y, _("Specify filter:"))); + int x1 = x + filter_title->get_w() + 10; + add_subwindow(filter_text = new BC_FileBoxFilterText(x1, y, this)); add_subwindow(filter_popup = - new BC_FileBoxFilterMenu(x + filter_text->get_w(), y, this));; + new BC_FileBoxFilterMenu(x1 + filter_text->get_w(), y, this)); } // listbox has to be active because refresh might be called from newfolder_thread @@ -707,7 +711,8 @@ int BC_FileBox::resize_event(int w, int h) w - 30, 0); - + if(filter_title) filter_title->reposition_window(filter_title->get_x(), + h - (get_h() - filter_title->get_y())); if(filter_text) filter_text->reposition_window(filter_text->get_x(), h - (get_h() - filter_text->get_y()), w - (get_w() - filter_text->get_w()), @@ -749,12 +754,19 @@ int BC_FileBox::resize_event(int w, int h) int BC_FileBox::keypress_event() { - switch(get_keypress()) - { - case 'w': - if(ctrl_down()) set_done(1); - return 1; - break; + switch(get_keypress()) { + case 'a': + if( !ctrl_down() ) break; + refresh(0, 1); + return 1; + case 'z': + if( !ctrl_down() ) break; + refresh(0, 0); + return 1; + case 'w': + if( !ctrl_down() ) break; + set_done(1); + return 1; } return 0; } @@ -792,7 +804,7 @@ static inline int ilen(int64_t v) return len; } -int BC_FileBox::create_tables() +int BC_FileBox::create_tables(int select_all) { delete_tables(); char string[BCTEXTLEN]; @@ -889,6 +901,12 @@ int BC_FileBox::create_tables() } list_column[column_of_type(FILEBOX_EXTENSION)].append(new_item); // } + + if( !is_dir && select_all ) { + int k = list_column[0].size()-1; + for( int j=0; jset_selected(1); + } } return 0; @@ -937,7 +955,7 @@ int BC_FileBox::column_of_type(int type) -int BC_FileBox::refresh(int reset) +int BC_FileBox::refresh(int reset, int select_all) { fs->set_sort_order(sort_order); fs->set_sort_field(column_type[sort_column]); @@ -945,7 +963,7 @@ int BC_FileBox::refresh(int reset) fs->update(0); else fs->update_sort(); - create_tables(); + create_tables(select_all); listbox->set_master_column(column_of_type(FILEBOX_NAME), 0); listbox->update(list_column, column_titles, column_width, columns, reset>0 ? 0 : listbox->get_xposition(),