lock xft, plugin index builder lock, clear clip thumbnails, clear vwin clock, setpoin...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / deleteallindexes.C
index 485f00c855db2efed77bbaeff20bd2b070f3f844..15aa857e9e57a9f1a3dc8efad0101a3f5159c246 100644 (file)
 #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; i<dir.dir_list.total; ++i ) {
+               const char *fn = dir.dir_list.values[i]->name;
+               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();
 }