#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()
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();
}