X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Fdeleteallindexes.C;h=c600a4550b0813f7f4e402a024b645ae542b1145;hb=2e48b660e37eb5c661264d601211e16cb6cd6e89;hp=485f00c855db2efed77bbaeff20bd2b070f3f844;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/deleteallindexes.C b/cinelerra-5.1/cinelerra/deleteallindexes.C index 485f00c8..c600a455 100644 --- a/cinelerra-5.1/cinelerra/deleteallindexes.C +++ b/cinelerra-5.1/cinelerra/deleteallindexes.C @@ -34,11 +34,13 @@ #define gettext_noop(String) String #define N_(String) gettext_noop (String) -DeleteAllIndexes::DeleteAllIndexes(MWindow *mwindow, PreferencesWindow *pwindow, int x, int y) - : BC_GenericButton(x, y, _("Delete existing indexes")), Thread() +DeleteAllIndexes::DeleteAllIndexes(MWindow *mwindow, PreferencesWindow *pwindow, + int x, int y, const char *text, const char *filter) + : BC_GenericButton(x, y, text), Thread() { this->mwindow = mwindow; this->pwindow = pwindow; + this->filter = filter; } DeleteAllIndexes::~DeleteAllIndexes() @@ -51,52 +53,23 @@ int DeleteAllIndexes::handle_event() return 1; } -static int test_filter(const char *string, const char *filter) -{ - return (strlen(string) > strlen(filter) && - !strcmp(string + strlen(string) - strlen(filter), filter)); -} - void DeleteAllIndexes::run() { - char string[BCTEXTLEN], string1[BCTEXTLEN], string2[BCTEXTLEN]; -// prepare directory + char string1[BCTEXTLEN], string2[BCTEXTLEN]; strcpy(string1, pwindow->thread->preferences->index_directory); FileSystem dir; dir.update(pwindow->thread->preferences->index_directory); dir.complete_path(string1); -// prepare filter - const char *filter1 = ".idx"; - const char *filter2 = ".toc"; - const char *filter3 = ".mkr"; - -// pwindow->disable_window(); - sprintf(string, _("Delete all indexes in %s?"), string1); -// QuestionWindow confirm(mwindow); -// confirm.create_objects(string, 0); - -// int result = confirm.run_window(); - - int result = 0; - if(!result) - { - for(int i = 0; i < dir.dir_list.total; i++) - { - result = 1; - sprintf(string2, "%s%s", string1, dir.dir_list.values[i]->name); -// test filter - if(test_filter(string2, filter1) || - test_filter(string2, filter2) || - test_filter(string2, filter3)) - { - remove(string2); + + for( int i=0; iname; + if( FileSystem::test_filter(fn, filter) ) continue; + sprintf(string2, "%s%s", string1, dir.dir_list.values[i]->name); + remove(string2); printf("DeleteAllIndexes::run %s\n", string2); - } - } } pwindow->thread->redraw_indexes = 1; -// pwindow->enable_window(); } @@ -116,6 +89,7 @@ ConfirmDeleteAllIndexes::~ConfirmDeleteAllIndexes() void ConfirmDeleteAllIndexes::create_objects() { + lock_window("ConfirmDeleteAllIndexes::create_objects"); int x = 10, y = 10; add_subwindow(new BC_Title(x, y, string)); @@ -123,6 +97,7 @@ void ConfirmDeleteAllIndexes::create_objects() add_subwindow(new BC_OKButton(x, y)); x = get_w() - 100; add_subwindow(new BC_CancelButton(x, y)); + unlock_window(); }