check the stripchars options when adding an external index
This commit is contained in:
+18
-6
@@ -41,7 +41,7 @@ RclConfig *theconfig;
|
||||
const char *PrefsPack::dfltResListFormat =
|
||||
"<table><tr><td><a href='%U'><img src='%I' width='64'></a></td>"
|
||||
"<td>%L <i>%S</i> <b>%T</b><br>"
|
||||
"<span style='white-space:nowrap'>%M %D</span> <i>%U</i> %i<br>"
|
||||
"<span style='white-space:nowrap'><i>%M</i> %D</span> <i>%U</i> %i<br>"
|
||||
"%A %K</td></tr></table>"
|
||||
;
|
||||
|
||||
@@ -290,10 +290,16 @@ void rwSettings(bool writing)
|
||||
prefs.allExtraDbs.end(), dbdir) !=
|
||||
prefs.allExtraDbs.end())
|
||||
continue;
|
||||
if (!Rcl::Db::testDbDir(dbdir)) {
|
||||
bool stripped;
|
||||
if (!Rcl::Db::testDbDir(dbdir, &stripped)) {
|
||||
LOGERR(("Not a xapian index: [%s]\n", dbdir.c_str()));
|
||||
continue;
|
||||
}
|
||||
if (stripped != o_index_stripchars) {
|
||||
LOGERR(("Incompatible character stripping: [%s]\n",
|
||||
dbdir.c_str()));
|
||||
continue;
|
||||
}
|
||||
prefs.allExtraDbs.push_back(dbdir);
|
||||
}
|
||||
}
|
||||
@@ -305,8 +311,11 @@ void rwSettings(bool writing)
|
||||
// actually there: useful for removable volumes.
|
||||
for (list<string>::iterator it = prefs.activeExtraDbs.begin();
|
||||
it != prefs.activeExtraDbs.end();) {
|
||||
if (!Rcl::Db::testDbDir(*it)) {
|
||||
LOGINFO(("Not a xapian index: [%s]\n", it->c_str()));
|
||||
bool stripped;
|
||||
if (!Rcl::Db::testDbDir(*it, &stripped) ||
|
||||
stripped != o_index_stripchars) {
|
||||
LOGINFO(("Not a Xapian index or char stripping differs: [%s]\n",
|
||||
it->c_str()));
|
||||
it = prefs.activeExtraDbs.erase(it);
|
||||
} else {
|
||||
it++;
|
||||
@@ -327,8 +336,11 @@ void rwSettings(bool writing)
|
||||
prefs.activeExtraDbs.end(), dbdir) !=
|
||||
prefs.activeExtraDbs.end())
|
||||
continue;
|
||||
if (!Rcl::Db::testDbDir(dbdir)) {
|
||||
LOGERR(("Not a xapian index: [%s]\n", dbdir.c_str()));
|
||||
bool strpd;
|
||||
if (!Rcl::Db::testDbDir(dbdir, &strpd) ||
|
||||
strpd != o_index_stripchars) {
|
||||
LOGERR(("Not a Xapian dir or diff. char stripping: [%s]\n",
|
||||
dbdir.c_str()));
|
||||
continue;
|
||||
}
|
||||
prefs.activeExtraDbs.push_back(dbdir);
|
||||
|
||||
@@ -533,11 +533,18 @@ void UIPrefsDialog::addExtraDbPB_clicked()
|
||||
|
||||
LOGDEB(("ExtraDbDial: got: [%s]\n", dbdir.c_str()));
|
||||
path_catslash(dbdir);
|
||||
if (!Rcl::Db::testDbDir(dbdir)) {
|
||||
bool stripped;
|
||||
if (!Rcl::Db::testDbDir(dbdir, &stripped)) {
|
||||
QMessageBox::warning(0, "Recoll",
|
||||
tr("The selected directory does not appear to be a Xapian index"));
|
||||
return;
|
||||
}
|
||||
if (o_index_stripchars != stripped) {
|
||||
QMessageBox::warning(0, "Recoll",
|
||||
tr("Cant add index with different case/diacritics"
|
||||
" stripping option"));
|
||||
return;
|
||||
}
|
||||
if (samedir(dbdir, theconfig->getDbDir())) {
|
||||
QMessageBox::warning(0, "Recoll",
|
||||
tr("This is the main/local index!"));
|
||||
|
||||
Reference in New Issue
Block a user