batchrender hang on close, apply pref saves defaults, overwrite/splice tweaks, specif...
[goodguy/history.git] / cinelerra-5.1 / guicast / bcfilebox.C
index 22afff8eda58fb5f295b0a92cb983799d28fa9b4..5d755977c183bfbaa9c424d7234e1021213945f2 100644 (file)
@@ -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;
 }
@@ -254,7 +254,8 @@ int BC_FileBoxFilterMenu::handle_event()
 
 
 BC_FileBoxSizeFormat::BC_FileBoxSizeFormat(int x, int y, BC_FileBox *file_box)
- : BC_Button(x, y, BC_WindowBase::get_resources()->filebox_szfmt_images)
+ : BC_Button(x, y, &BC_WindowBase::get_resources()->
+               filebox_szfmt_images[3*file_box->size_format])
 {
        this->file_box = file_box;
        set_tooltip(_("Size numeric format"));
@@ -268,6 +269,9 @@ int BC_FileBoxSizeFormat::handle_event()
        if( ++file_box->size_format > FILEBOX_SIZE_THOU )
                file_box->size_format = FILEBOX_SIZE_RAW;
        BC_WindowBase::get_resources()->filebox_size_format = file_box->size_format;
+       set_images(&BC_WindowBase::get_resources()->
+               filebox_szfmt_images[3*file_box->size_format]);
+       draw_face(0);
        file_box->refresh(0);
        return 1;
 }
@@ -462,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;
@@ -557,10 +562,11 @@ 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);
        }
@@ -641,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
@@ -703,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()),