fixes for png colormodels
[goodguy/history.git] / cinelerra-5.1 / cinelerra / formattools.C
index d6f275993e225a44b32a7353b4cf26a8ff96678d..e8cbef4e8c38dda4260a54980cc799cb861bbe6b 100644 (file)
@@ -62,13 +62,10 @@ FormatTools::FormatTools(MWindow *mwindow,
        format_button = 0;
        format_text = 0;
        audio_title = 0;
-       audio_switch = 0;
        video_title = 0;
-       video_switch = 0;
        channels_title = 0;
        channels_button = 0;
        multiple_files = 0;
-       file_entries = 0;
        w = window->get_w();
 
        recording = 0;
@@ -104,12 +101,6 @@ SET_TRACE
        if(vparams_thread) delete vparams_thread;
 SET_TRACE
        if(channels_tumbler) delete channels_tumbler;
-SET_TRACE
-       if(file_entries)
-       {
-               file_entries->remove_all_objects();
-               delete file_entries;
-       }
 }
 
 void FormatTools::create_objects(int &init_x,
@@ -141,19 +132,6 @@ void FormatTools::create_objects(int &init_x,
        this->prompt_video_compression = prompt_video_compression;
        this->strategy = strategy;
 
-
-       file_entries = new ArrayList<BC_ListBoxItem*>;
-       FileSystem fs;
-       char string[BCTEXTLEN];
-// Load current directory
-       fs.update(getcwd(string, BCTEXTLEN));
-       for(int i = 0; i < fs.total_files(); i++)
-       {
-               file_entries->append(
-                       new BC_ListBoxItem(
-                               fs.get_entry(i)->get_name()));
-       }
-
 //printf("FormatTools::create_objects 1\n");
 
 // Modify strategy depending on render farm
@@ -186,9 +164,9 @@ void FormatTools::create_objects(int &init_x,
                                        path_textbox, 10, px, y, 300, 100);
                window->add_subwindow(path_recent);
                path_recent->load_items(File::formattostr(asset->format));
-               px += path_recent->get_w() + 8;
+               px += path_recent->get_w();
                window->add_subwindow(path_button = new BrowseButton(
-                       mwindow, window, path_textbox, px, y, asset->path,
+                       mwindow->theme, window, path_textbox, px, y, asset->path,
                        _("Output to file"), _("Select a file to write to:"), 0));
 
 // Set w for user.
@@ -359,17 +337,17 @@ void FormatTools::update_format()
 {
        if( do_audio && prompt_audio && audio_switch ) {
                audio_switch->update(asset->audio_data);
-               if( !asset->audio_data )
-                       audio_switch->disable();
-               else
+               if( File::renders_audio(asset) )
                        audio_switch->enable();
+               else
+                       audio_switch->disable();
        }
        if( do_video && prompt_video && video_switch ) {
                video_switch->update(asset->video_data);
-               if( !asset->video_data )
-                       video_switch->disable();
-               else
+               if( File::renders_video(asset) )
                        video_switch->enable();
+               else
+                       video_switch->disable();
        }
        if( asset->format == FILE_FFMPEG ) {
                ffmpeg_type->show();
@@ -473,11 +451,8 @@ void FormatTools::update(Asset *asset, int *strategy)
 
        if(path_textbox)
                path_textbox->update(asset->path);
-       format_text->update(File::formattostr(plugindb, asset->format));
-       if(do_audio && prompt_audio && audio_switch)
-               audio_switch->update(asset->audio_data);
-       if(do_video && prompt_video && video_switch)
-               video_switch->update(asset->video_data);
+       format_text->update(File::formattostr(asset->format));
+       update_format();
        if(strategy)
        {
                multiple_files->update(strategy);
@@ -749,11 +724,7 @@ FormatPathText::~FormatPathText()
 }
 int FormatPathText::handle_event()
 {
-// Suggestions
-       calculate_suggestions(format->file_entries);
-
-
-
+       calculate_suggestions();
        strcpy(format->asset->path, get_text());
        format->handle_event();
        return 1;
@@ -812,17 +783,18 @@ int FormatFormat::handle_event()
 {
        BC_ListBoxItem *selection = get_selection(0, 0);
        if( selection ) {
-               int new_format = File::strtoformat(format->plugindb, get_selection(0, 0)->get_text());
+               int new_format = File::strtoformat(get_selection(0, 0)->get_text());
 //             if(new_format != format->asset->format)
                {
                        Asset *asset = format->asset;
                        asset->format = new_format;
-                       asset->audio_data = File::supports_audio(asset->format);
-                       asset->video_data = File::supports_video(asset->format);
+                       asset->audio_data = File::renders_audio(asset);
+                       asset->video_data = File::renders_video(asset);
                        asset->ff_audio_options[0] = 0;
                        asset->ff_video_options[0] = 0;
                        format->format_text->update(selection->get_text());
-                       format->update_extension();
+                       if( !format->use_brender )
+                               format->update_extension();
                        format->close_format_windows();
                        if (format->path_recent) format->path_recent->
                                load_items(File::formattostr(format->asset->format));