X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fawindowgui.C;h=8b3bd1a2f07c36137171489cba3d8feac1c53457;hb=6338f0b010dfd93ae6a823970d853cfdd5279500;hp=b93b354e51161851c0624693e7c57d0f368ee66c;hpb=a9288f4aa494cc2e76d5eb2f54e2a7561c4a35b4;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/awindowgui.C b/cinelerra-5.1/cinelerra/awindowgui.C index b93b354e..8b3bd1a2 100644 --- a/cinelerra-5.1/cinelerra/awindowgui.C +++ b/cinelerra-5.1/cinelerra/awindowgui.C @@ -519,15 +519,21 @@ VFrame *AWindowGUI::get_picon(const char *name, const char *plugin_icons) { char png_path[BCTEXTLEN]; char *pp = png_path, *ep = pp + sizeof(png_path)-1; - snprintf(pp, ep-pp, "%s/picon_%s/%s.png", + snprintf(pp, ep-pp, "%s/picon/%s/%s.png", File::get_plugin_path(), plugin_icons, name); + if( access(png_path, R_OK) ) return 0; return VFramePng::vframe_png(png_path,0,0); } VFrame *AWindowGUI::get_picon(const char *name) { VFrame *vframe = get_picon(name, mwindow->preferences->plugin_icons); - if( !vframe ) vframe = get_picon(name, DEFAULT_PICON); + if( !vframe ) { + char png_name[BCSTRLEN], *pp = png_name, *ep = pp + sizeof(png_name)-1; + snprintf(pp, ep-pp, "%s.png", name); + unsigned char *data = mwindow->theme->get_image_data(png_name); + if( data ) vframe = new VFramePng(data, 0.); + } return vframe; } @@ -839,17 +845,19 @@ void AWindowRemovePlugin::handle_close_event(int result) snprintf(index_path, sizeof(index_path), "%s/%s", mwindow->preferences->plugin_dir, PLUGIN_FILE); remove(index_path); + char picon_path[BCTEXTLEN]; FileSystem fs; - fs.update(File::get_plugin_path()); + snprintf(picon_path, sizeof(picon_path), "%s/picon", + File::get_plugin_path()); + char png_name[BCSTRLEN], png_path[BCTEXTLEN]; + plugin->get_plugin_png_name(png_name); + fs.update(picon_path); for( int i=0; ipath; if( !fs.is_dir(fs_path) ) continue; - char *cp = strrchr(fs_path,'/'); - cp = !cp ? fs_path : cp+1; - if( strncmp("picon_", cp, 6) ) continue; - char png_path[BCTEXTLEN]; - if( !plugin->get_plugin_png_path(png_path, cp+6) ) - remove(png_path); + snprintf(png_path, sizeof(picon_path), "%s/%s", + fs_path, png_name); + remove(png_path); } delete plugin; plugin = 0; awindow->gui->async_update_assets();