GUI: the size of the restable column widths prefs list doubled each time the dialog was opened. It was properly reset in most cases, but some use schemes would result in monster sizes being saved to the prefs
This commit is contained in:
parent
a619922ba1
commit
49949ca5b3
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2005 Jean-Francois Dockes
|
||||
/* Copyright (C) 2005-2019 Jean-Francois Dockes
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
@ -53,13 +53,13 @@ PrefsPack prefs;
|
||||
// Using the same macro to read/write a setting. insurance against typing
|
||||
// mistakes
|
||||
#define PARS(X) (X)
|
||||
#define SETTING_RW(var, nm, tp, def) \
|
||||
if (writing) { \
|
||||
settings.setValue(nm , var); \
|
||||
} else { \
|
||||
var = settings.value(nm, def).to##tp \
|
||||
(); \
|
||||
}
|
||||
#define SETTING_RW(var, nm, tp, def) \
|
||||
if (writing) { \
|
||||
settings.setValue(nm , var); \
|
||||
} else { \
|
||||
var = settings.value(nm, def).to##tp \
|
||||
(); \
|
||||
}
|
||||
|
||||
/**
|
||||
* Saving and restoring user preferences. These are stored in a global
|
||||
@ -87,7 +87,7 @@ void rwSettings(bool writing)
|
||||
SETTING_RW(prefs.ssearchTypSav, "/Recoll/prefs/ssearchTypSav", Bool, 0);
|
||||
SETTING_RW(prefs.ssearchTyp, "/Recoll/prefs/simpleSearchTyp", Int, 3);
|
||||
SETTING_RW(prefs.startWithAdvSearchOpen,
|
||||
"/Recoll/prefs/startWithAdvSearchOpen", Bool, false);
|
||||
"/Recoll/prefs/startWithAdvSearchOpen", Bool, false);
|
||||
SETTING_RW(prefs.previewHtml, "/Recoll/prefs/previewHtml", Bool, true);
|
||||
SETTING_RW(prefs.previewActiveLinks,
|
||||
"/Recoll/prefs/previewActiveLinks", Bool, false);
|
||||
@ -99,17 +99,17 @@ void rwSettings(bool writing)
|
||||
if (prefs.advSearchClauses.size() > maxclauselistsize) {
|
||||
prefs.advSearchClauses.resize(maxclauselistsize);
|
||||
}
|
||||
for (auto clause : prefs.advSearchClauses) {
|
||||
char buf[20];
|
||||
sprintf(buf, "%d ", clause);
|
||||
advSearchClauses += QString::fromUtf8(buf);
|
||||
}
|
||||
for (auto clause : prefs.advSearchClauses) {
|
||||
char buf[20];
|
||||
sprintf(buf, "%d ", clause);
|
||||
advSearchClauses += QString::fromUtf8(buf);
|
||||
}
|
||||
}
|
||||
QString ascdflt;
|
||||
SETTING_RW(advSearchClauses,"/Recoll/prefs/adv/clauseList", String, ascdflt);
|
||||
if (!writing) {
|
||||
vector<string> clauses;
|
||||
stringToStrings(qs2utf8s(advSearchClauses), clauses);
|
||||
vector<string> clauses;
|
||||
stringToStrings(qs2utf8s(advSearchClauses), clauses);
|
||||
// There was a long-lurking bug where the clause list was
|
||||
// growing to absurd sizes. The prefs.advSearchClauses clear()
|
||||
// call was missing (ok with the now false initial assumption
|
||||
@ -122,29 +122,29 @@ void rwSettings(bool writing)
|
||||
}
|
||||
prefs.advSearchClauses.clear();
|
||||
prefs.advSearchClauses.reserve(clauses.size());
|
||||
for (auto clause : clauses) {
|
||||
prefs.advSearchClauses.push_back(atoi(clause.c_str()));
|
||||
}
|
||||
for (auto clause : clauses) {
|
||||
prefs.advSearchClauses.push_back(atoi(clause.c_str()));
|
||||
}
|
||||
}
|
||||
|
||||
SETTING_RW(prefs.ssearchNoComplete,
|
||||
"/Recoll/prefs/ssearch/noComplete", Bool, false);
|
||||
"/Recoll/prefs/ssearch/noComplete", Bool, false);
|
||||
SETTING_RW(prefs.ssearchStartOnComplete,
|
||||
"/Recoll/prefs/ssearch/startOnComplete", Bool, true);
|
||||
"/Recoll/prefs/ssearch/startOnComplete", Bool, true);
|
||||
SETTING_RW(prefs.filterCtlStyle, "/Recoll/prefs/filterCtlStyle", Int, 0);
|
||||
SETTING_RW(prefs.ssearchAutoPhrase,
|
||||
"/Recoll/prefs/ssearchAutoPhrase", Bool, true);
|
||||
"/Recoll/prefs/ssearchAutoPhrase", Bool, true);
|
||||
SETTING_RW(prefs.ssearchAutoPhraseThreshPC,
|
||||
"/Recoll/prefs/ssearchAutoPhraseThreshPC", Double, 2.0);
|
||||
"/Recoll/prefs/ssearchAutoPhraseThreshPC", Double, 2.0);
|
||||
SETTING_RW(prefs.respagesize, "/Recoll/prefs/reslist/pagelen", Int, 8);
|
||||
SETTING_RW(prefs.collapseDuplicates,
|
||||
"/Recoll/prefs/reslist/collapseDuplicates", Bool, false);
|
||||
"/Recoll/prefs/reslist/collapseDuplicates", Bool, false);
|
||||
SETTING_RW(prefs.showResultsAsTable,
|
||||
"/Recoll/prefs/showResultsAsTable", Bool, false);
|
||||
"/Recoll/prefs/showResultsAsTable", Bool, false);
|
||||
SETTING_RW(prefs.maxhltextmbs, "/Recoll/prefs/preview/maxhltextmbs", Int, 3);
|
||||
|
||||
SETTING_RW(prefs.previewPlainPre,
|
||||
"/Recoll/prefs/preview/plainPre", Int, PrefsPack::PP_PREWRAP);
|
||||
"/Recoll/prefs/preview/plainPre", Int, PrefsPack::PP_PREWRAP);
|
||||
|
||||
// History: used to be able to only set a bare color name. Can now
|
||||
// set any CSS style. Hack on ':' presence to keep compat with old
|
||||
@ -152,7 +152,7 @@ void rwSettings(bool writing)
|
||||
SETTING_RW(prefs.qtermstyle, "/Recoll/prefs/qtermcolor", String,
|
||||
"color: blue");
|
||||
if (!writing && prefs.qtermstyle == "")
|
||||
prefs.qtermstyle = "color: blue";
|
||||
prefs.qtermstyle = "color: blue";
|
||||
{ // histo compatibility hack
|
||||
int colon = prefs.qtermstyle.indexOf(":");
|
||||
int semi = prefs.qtermstyle.indexOf(";");
|
||||
@ -165,140 +165,141 @@ void rwSettings(bool writing)
|
||||
}
|
||||
|
||||
SETTING_RW(prefs.reslistdateformat, "/Recoll/prefs/reslist/dateformat",
|
||||
String," %Y-%m-%d %H:%M:%S %z");
|
||||
String," %Y-%m-%d %H:%M:%S %z");
|
||||
if (!writing && prefs.reslistdateformat == "")
|
||||
prefs.reslistdateformat = " %Y-%m-%d %H:%M:%S %z";
|
||||
prefs.reslistdateformat = " %Y-%m-%d %H:%M:%S %z";
|
||||
prefs.creslistdateformat = (const char*)prefs.reslistdateformat.toUtf8();
|
||||
|
||||
SETTING_RW(prefs.reslistfontfamily, "/Recoll/prefs/reslist/fontFamily",
|
||||
String, "");
|
||||
String, "");
|
||||
SETTING_RW(prefs.reslistfontsize, "/Recoll/prefs/reslist/fontSize", Int,
|
||||
10);
|
||||
10);
|
||||
|
||||
QString rlfDflt = QString::fromUtf8(prefs.dfltResListFormat);
|
||||
if (writing) {
|
||||
if (prefs.reslistformat.compare(rlfDflt)) {
|
||||
settings.setValue("/Recoll/prefs/reslist/format",
|
||||
prefs.reslistformat);
|
||||
} else {
|
||||
settings.remove("/Recoll/prefs/reslist/format");
|
||||
}
|
||||
if (prefs.reslistformat.compare(rlfDflt)) {
|
||||
settings.setValue("/Recoll/prefs/reslist/format",
|
||||
prefs.reslistformat);
|
||||
} else {
|
||||
settings.remove("/Recoll/prefs/reslist/format");
|
||||
}
|
||||
} else {
|
||||
prefs.reslistformat =
|
||||
settings.value("/Recoll/prefs/reslist/format", rlfDflt).toString();
|
||||
prefs.creslistformat = qs2utf8s(prefs.reslistformat);
|
||||
prefs.reslistformat =
|
||||
settings.value("/Recoll/prefs/reslist/format", rlfDflt).toString();
|
||||
prefs.creslistformat = qs2utf8s(prefs.reslistformat);
|
||||
}
|
||||
|
||||
SETTING_RW(prefs.reslistheadertext, "/Recoll/prefs/reslist/headertext",
|
||||
String, "");
|
||||
String, "");
|
||||
SETTING_RW(prefs.qssFile, "/Recoll/prefs/stylesheet", String, "");
|
||||
SETTING_RW(prefs.snipCssFile, "/Recoll/prefs/snippets/cssfile", String, "");
|
||||
SETTING_RW(prefs.queryStemLang, "/Recoll/prefs/query/stemLang", String,
|
||||
"english");
|
||||
"english");
|
||||
SETTING_RW(prefs.useDesktopOpen, "/Recoll/prefs/useDesktopOpen",
|
||||
Bool, true);
|
||||
Bool, true);
|
||||
|
||||
SETTING_RW(prefs.keepSort,
|
||||
"/Recoll/prefs/keepSort", Bool, false);
|
||||
"/Recoll/prefs/keepSort", Bool, false);
|
||||
SETTING_RW(prefs.sortField, "/Recoll/prefs/sortField", String, "");
|
||||
SETTING_RW(prefs.sortActive,
|
||||
"/Recoll/prefs/sortActive", Bool, false);
|
||||
"/Recoll/prefs/sortActive", Bool, false);
|
||||
SETTING_RW(prefs.sortDesc,
|
||||
"/Recoll/prefs/query/sortDesc", Bool, 0);
|
||||
"/Recoll/prefs/query/sortDesc", Bool, 0);
|
||||
if (!writing) {
|
||||
// Handle transition from older prefs which did not store sortColumn
|
||||
// (Active always meant sort by date).
|
||||
if (prefs.sortActive && prefs.sortField.isNull())
|
||||
prefs.sortField = "mtime";
|
||||
// Handle transition from older prefs which did not store sortColumn
|
||||
// (Active always meant sort by date).
|
||||
if (prefs.sortActive && prefs.sortField.isNull())
|
||||
prefs.sortField = "mtime";
|
||||
}
|
||||
|
||||
SETTING_RW(prefs.queryBuildAbstract,
|
||||
"/Recoll/prefs/query/buildAbstract", Bool, true);
|
||||
"/Recoll/prefs/query/buildAbstract", Bool, true);
|
||||
SETTING_RW(prefs.queryReplaceAbstract,
|
||||
"/Recoll/prefs/query/replaceAbstract", Bool, false);
|
||||
"/Recoll/prefs/query/replaceAbstract", Bool, false);
|
||||
SETTING_RW(prefs.syntAbsLen, "/Recoll/prefs/query/syntAbsLen",
|
||||
Int, 250);
|
||||
Int, 250);
|
||||
SETTING_RW(prefs.syntAbsCtx, "/Recoll/prefs/query/syntAbsCtx",
|
||||
Int, 4);
|
||||
Int, 4);
|
||||
// Abstract snippet separator
|
||||
SETTING_RW(prefs.abssep, "/Recoll/prefs/reslist/abssep", String,"…");
|
||||
if (!writing && prefs.abssep == "")
|
||||
prefs.abssep = "…";
|
||||
prefs.abssep = "…";
|
||||
SETTING_RW(prefs.snipwMaxLength, "/Recoll/prefs/snipwin/maxlen", Int, 1000);
|
||||
SETTING_RW(prefs.snipwSortByPage,"/Recoll/prefs/snipwin/bypage", Bool, false);
|
||||
|
||||
SETTING_RW(prefs.autoSuffs, "/Recoll/prefs/query/autoSuffs", String, "");
|
||||
SETTING_RW(prefs.autoSuffsEnable,
|
||||
"/Recoll/prefs/query/autoSuffsEnable", Bool, false);
|
||||
"/Recoll/prefs/query/autoSuffsEnable", Bool, false);
|
||||
|
||||
SETTING_RW(prefs.synFileEnable,
|
||||
"/Recoll/prefs/query/synFileEnable", Bool, false);
|
||||
"/Recoll/prefs/query/synFileEnable", Bool, false);
|
||||
SETTING_RW(prefs.synFile, "/Recoll/prefs/query/synfile", String, "");
|
||||
|
||||
SETTING_RW(prefs.termMatchType, "/Recoll/prefs/query/termMatchType",
|
||||
Int, 0);
|
||||
Int, 0);
|
||||
// This is not really the current program version, just a value to
|
||||
// be used in case we have incompatible changes one day
|
||||
SETTING_RW(prefs.rclVersion, "/Recoll/prefs/rclVersion", Int, 1009);
|
||||
|
||||
// Ssearch combobox history list
|
||||
if (writing) {
|
||||
settings.setValue("/Recoll/prefs/query/ssearchHistory",
|
||||
prefs.ssearchHistory);
|
||||
settings.setValue("/Recoll/prefs/query/ssearchHistory",
|
||||
prefs.ssearchHistory);
|
||||
} else {
|
||||
prefs.ssearchHistory =
|
||||
settings.value("/Recoll/prefs/query/ssearchHistory").toStringList();
|
||||
prefs.ssearchHistory =
|
||||
settings.value("/Recoll/prefs/query/ssearchHistory").toStringList();
|
||||
}
|
||||
|
||||
// Ignored file types (advanced search)
|
||||
if (writing) {
|
||||
settings.setValue("/Recoll/prefs/query/asearchIgnFilTyps",
|
||||
prefs.asearchIgnFilTyps);
|
||||
settings.setValue("/Recoll/prefs/query/asearchIgnFilTyps",
|
||||
prefs.asearchIgnFilTyps);
|
||||
} else {
|
||||
prefs.asearchIgnFilTyps =
|
||||
settings.value("/Recoll/prefs/query/asearchIgnFilTyps").toStringList();
|
||||
prefs.asearchIgnFilTyps =
|
||||
settings.value("/Recoll/prefs/query/asearchIgnFilTyps").toStringList();
|
||||
}
|
||||
|
||||
|
||||
// Field list for the restable
|
||||
if (writing) {
|
||||
settings.setValue("/Recoll/prefs/query/restableFields",
|
||||
prefs.restableFields);
|
||||
settings.setValue("/Recoll/prefs/query/restableFields",
|
||||
prefs.restableFields);
|
||||
} else {
|
||||
prefs.restableFields =
|
||||
settings.value("/Recoll/prefs/query/restableFields").toStringList();
|
||||
if (prefs.restableFields.empty()) {
|
||||
prefs.restableFields.push_back("date");
|
||||
prefs.restableFields.push_back("title");
|
||||
prefs.restableFields.push_back("filename");
|
||||
prefs.restableFields.push_back("author");
|
||||
prefs.restableFields.push_back("url");
|
||||
}
|
||||
prefs.restableFields =
|
||||
settings.value("/Recoll/prefs/query/restableFields").toStringList();
|
||||
if (prefs.restableFields.empty()) {
|
||||
prefs.restableFields.push_back("date");
|
||||
prefs.restableFields.push_back("title");
|
||||
prefs.restableFields.push_back("filename");
|
||||
prefs.restableFields.push_back("author");
|
||||
prefs.restableFields.push_back("url");
|
||||
}
|
||||
}
|
||||
|
||||
// restable col widths
|
||||
QString rtcw;
|
||||
if (writing) {
|
||||
for (vector<int>::iterator it = prefs.restableColWidths.begin();
|
||||
it != prefs.restableColWidths.end(); it++) {
|
||||
char buf[20];
|
||||
sprintf(buf, "%d ", *it);
|
||||
rtcw += QString::fromUtf8(buf);
|
||||
}
|
||||
for (vector<int>::iterator it = prefs.restableColWidths.begin();
|
||||
it != prefs.restableColWidths.end(); it++) {
|
||||
char buf[20];
|
||||
sprintf(buf, "%d ", *it);
|
||||
rtcw += QString::fromUtf8(buf);
|
||||
}
|
||||
}
|
||||
SETTING_RW(rtcw, "/Recoll/prefs/query/restableWidths", String,
|
||||
"83 253 132 172 130 ");
|
||||
"83 253 132 172 130 ");
|
||||
if (!writing) {
|
||||
vector<string> widths;
|
||||
stringToStrings((const char *)rtcw.toUtf8(), widths);
|
||||
for (vector<string>::iterator it = widths.begin();
|
||||
it != widths.end(); it++) {
|
||||
prefs.restableColWidths.push_back(atoi(it->c_str()));
|
||||
}
|
||||
prefs.restableColWidths.clear();
|
||||
vector<string> widths;
|
||||
stringToStrings((const char *)rtcw.toUtf8(), widths);
|
||||
for (vector<string>::iterator it = widths.begin();
|
||||
it != widths.end(); it++) {
|
||||
prefs.restableColWidths.push_back(atoi(it->c_str()));
|
||||
}
|
||||
}
|
||||
|
||||
SETTING_RW(prefs.fileTypesByCats, "/Recoll/prefs/query/asearchFilTypByCat",
|
||||
Bool, false);
|
||||
Bool, false);
|
||||
SETTING_RW(prefs.showTrayIcon, "/Recoll/prefs/showTrayIcon", Bool, false);
|
||||
SETTING_RW(prefs.closeToTray, "/Recoll/prefs/closeToTray", Bool, false);
|
||||
SETTING_RW(prefs.showTempFileWarning, "Recoll/prefs/showTempFileWarning",
|
||||
@ -317,64 +318,64 @@ void rwSettings(bool writing)
|
||||
// This are stored inside the dynamic configuration file (aka: history),
|
||||
// as they are likely to depend on RECOLL_CONFDIR.
|
||||
if (writing) {
|
||||
g_dynconf->eraseAll(allEdbsSk);
|
||||
for (const auto& dbdir : prefs.allExtraDbs) {
|
||||
g_dynconf->enterString(allEdbsSk, dbdir);
|
||||
}
|
||||
g_dynconf->eraseAll(allEdbsSk);
|
||||
for (const auto& dbdir : prefs.allExtraDbs) {
|
||||
g_dynconf->enterString(allEdbsSk, dbdir);
|
||||
}
|
||||
|
||||
g_dynconf->eraseAll(actEdbsSk);
|
||||
for (const auto& dbdir : prefs.activeExtraDbs) {
|
||||
g_dynconf->enterString(actEdbsSk, dbdir);
|
||||
g_dynconf->eraseAll(actEdbsSk);
|
||||
for (const auto& dbdir : prefs.activeExtraDbs) {
|
||||
g_dynconf->enterString(actEdbsSk, dbdir);
|
||||
|
||||
}
|
||||
}
|
||||
} else {
|
||||
prefs.allExtraDbs = g_dynconf->getStringEntries<vector>(allEdbsSk);
|
||||
const char *cp;
|
||||
if ((cp = getenv("RECOLL_EXTRA_DBS")) != 0) {
|
||||
vector<string> dbl;
|
||||
stringToTokens(cp, dbl, ":");
|
||||
for (vector<string>::iterator dit = dbl.begin(); dit != dbl.end();
|
||||
dit++) {
|
||||
string dbdir = path_canon(*dit);
|
||||
path_catslash(dbdir);
|
||||
if (std::find(prefs.allExtraDbs.begin(),
|
||||
prefs.allExtraDbs = g_dynconf->getStringEntries<vector>(allEdbsSk);
|
||||
const char *cp;
|
||||
if ((cp = getenv("RECOLL_EXTRA_DBS")) != 0) {
|
||||
vector<string> dbl;
|
||||
stringToTokens(cp, dbl, ":");
|
||||
for (vector<string>::iterator dit = dbl.begin(); dit != dbl.end();
|
||||
dit++) {
|
||||
string dbdir = path_canon(*dit);
|
||||
path_catslash(dbdir);
|
||||
if (std::find(prefs.allExtraDbs.begin(),
|
||||
prefs.allExtraDbs.end(), dbdir) !=
|
||||
prefs.allExtraDbs.end())
|
||||
continue;
|
||||
bool stripped;
|
||||
if (!Rcl::Db::testDbDir(dbdir, &stripped)) {
|
||||
LOGERR("Not a xapian index: [" << dbdir << "]\n");
|
||||
continue;
|
||||
}
|
||||
if (stripped != o_index_stripchars) {
|
||||
LOGERR("Incompatible character stripping: [" << dbdir <<
|
||||
prefs.allExtraDbs.end())
|
||||
continue;
|
||||
bool stripped;
|
||||
if (!Rcl::Db::testDbDir(dbdir, &stripped)) {
|
||||
LOGERR("Not a xapian index: [" << dbdir << "]\n");
|
||||
continue;
|
||||
}
|
||||
if (stripped != o_index_stripchars) {
|
||||
LOGERR("Incompatible character stripping: [" << dbdir <<
|
||||
"]\n");
|
||||
continue;
|
||||
}
|
||||
prefs.allExtraDbs.push_back(dbdir);
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
prefs.allExtraDbs.push_back(dbdir);
|
||||
}
|
||||
}
|
||||
|
||||
// Get the remembered "active external indexes":
|
||||
prefs.activeExtraDbs = g_dynconf->getStringEntries<vector>(actEdbsSk);
|
||||
|
||||
// Clean up the list: remove directories which are not
|
||||
// actually there: useful for removable volumes.
|
||||
for (auto it = prefs.activeExtraDbs.begin();
|
||||
// Clean up the list: remove directories which are not
|
||||
// actually there: useful for removable volumes.
|
||||
for (auto it = prefs.activeExtraDbs.begin();
|
||||
it != prefs.activeExtraDbs.end();) {
|
||||
bool stripped;
|
||||
if (!Rcl::Db::testDbDir(*it, &stripped) ||
|
||||
stripped != o_index_stripchars) {
|
||||
LOGINFO("Not a Xapian index or char stripping differs: [" <<
|
||||
bool stripped;
|
||||
if (!Rcl::Db::testDbDir(*it, &stripped) ||
|
||||
stripped != o_index_stripchars) {
|
||||
LOGINFO("Not a Xapian index or char stripping differs: [" <<
|
||||
*it << "]\n");
|
||||
it = prefs.activeExtraDbs.erase(it);
|
||||
} else {
|
||||
it++;
|
||||
}
|
||||
}
|
||||
it = prefs.activeExtraDbs.erase(it);
|
||||
} else {
|
||||
it++;
|
||||
}
|
||||
}
|
||||
|
||||
// Get active db directives from the environment. This can only add to
|
||||
// the remembered and cleaned up list
|
||||
// Get active db directives from the environment. This can only add to
|
||||
// the remembered and cleaned up list
|
||||
const char *cp4Act;
|
||||
if ((cp4Act = getenv("RECOLL_ACTIVE_EXTRA_DBS")) != 0) {
|
||||
vector<string> dbl;
|
||||
@ -387,9 +388,9 @@ void rwSettings(bool writing)
|
||||
prefs.activeExtraDbs.end(), dbdir) !=
|
||||
prefs.activeExtraDbs.end())
|
||||
continue;
|
||||
bool strpd;
|
||||
bool strpd;
|
||||
if (!Rcl::Db::testDbDir(dbdir, &strpd) ||
|
||||
strpd != o_index_stripchars) {
|
||||
strpd != o_index_stripchars) {
|
||||
LOGERR("Not a Xapian dir or diff. char stripping: [" << (dbdir) << "]\n" );
|
||||
continue;
|
||||
}
|
||||
@ -400,33 +401,33 @@ void rwSettings(bool writing)
|
||||
|
||||
#if 0
|
||||
{
|
||||
list<string>::const_iterator it;
|
||||
fprintf(stderr, "All extra Dbs:\n");
|
||||
for (it = prefs.allExtraDbs.begin();
|
||||
it != prefs.allExtraDbs.end(); it++) {
|
||||
fprintf(stderr, " [%s]\n", it->c_str());
|
||||
}
|
||||
fprintf(stderr, "Active extra Dbs:\n");
|
||||
for (it = prefs.activeExtraDbs.begin();
|
||||
it != prefs.activeExtraDbs.end(); it++) {
|
||||
fprintf(stderr, " [%s]\n", it->c_str());
|
||||
}
|
||||
list<string>::const_iterator it;
|
||||
fprintf(stderr, "All extra Dbs:\n");
|
||||
for (it = prefs.allExtraDbs.begin();
|
||||
it != prefs.allExtraDbs.end(); it++) {
|
||||
fprintf(stderr, " [%s]\n", it->c_str());
|
||||
}
|
||||
fprintf(stderr, "Active extra Dbs:\n");
|
||||
for (it = prefs.activeExtraDbs.begin();
|
||||
it != prefs.activeExtraDbs.end(); it++) {
|
||||
fprintf(stderr, " [%s]\n", it->c_str());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
const string asbdSk = "asearchSbd";
|
||||
if (writing) {
|
||||
while (prefs.asearchSubdirHist.size() > 20)
|
||||
prefs.asearchSubdirHist.pop_back();
|
||||
g_dynconf->eraseAll(asbdSk);
|
||||
for (const auto& qdbd : prefs.asearchSubdirHist) {
|
||||
g_dynconf->enterString(asbdSk, qs2utf8s(qdbd));
|
||||
}
|
||||
while (prefs.asearchSubdirHist.size() > 20)
|
||||
prefs.asearchSubdirHist.pop_back();
|
||||
g_dynconf->eraseAll(asbdSk);
|
||||
for (const auto& qdbd : prefs.asearchSubdirHist) {
|
||||
g_dynconf->enterString(asbdSk, qs2utf8s(qdbd));
|
||||
}
|
||||
} else {
|
||||
vector<string> tl = g_dynconf->getStringEntries<vector>(asbdSk);
|
||||
for (const auto& dbd: tl) {
|
||||
prefs.asearchSubdirHist.push_back(u8s2qs(dbd.c_str()));
|
||||
vector<string> tl = g_dynconf->getStringEntries<vector>(asbdSk);
|
||||
for (const auto& dbd: tl) {
|
||||
prefs.asearchSubdirHist.push_back(u8s2qs(dbd.c_str()));
|
||||
}
|
||||
}
|
||||
if (!writing)
|
||||
@ -437,10 +438,10 @@ string PrefsPack::stemlang()
|
||||
{
|
||||
string stemLang(qs2utf8s(prefs.queryStemLang));
|
||||
if (stemLang == "ALL") {
|
||||
if (theconfig)
|
||||
theconfig->getConfParam("indexstemminglanguages", stemLang);
|
||||
else
|
||||
stemLang = "";
|
||||
if (theconfig)
|
||||
theconfig->getConfParam("indexstemminglanguages", stemLang);
|
||||
else
|
||||
stemLang = "";
|
||||
}
|
||||
return stemLang;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user