|
a/src/qtgui/guiutils.cpp |
|
b/src/qtgui/guiutils.cpp |
|
... |
|
... |
85 |
SETTING_RW(prefs.resArea, "/Recoll/geometry/resArea", Int, 0);
|
85 |
SETTING_RW(prefs.resArea, "/Recoll/geometry/resArea", Int, 0);
|
86 |
SETTING_RW(prefs.ssearchTypSav, "/Recoll/prefs/ssearchTypSav", Bool, 0);
|
86 |
SETTING_RW(prefs.ssearchTypSav, "/Recoll/prefs/ssearchTypSav", Bool, 0);
|
87 |
SETTING_RW(prefs.ssearchTyp, "/Recoll/prefs/simpleSearchTyp", Int, 3);
|
87 |
SETTING_RW(prefs.ssearchTyp, "/Recoll/prefs/simpleSearchTyp", Int, 3);
|
88 |
SETTING_RW(prefs.startWithAdvSearchOpen,
|
88 |
SETTING_RW(prefs.startWithAdvSearchOpen,
|
89 |
"/Recoll/prefs/startWithAdvSearchOpen", Bool, false);
|
89 |
"/Recoll/prefs/startWithAdvSearchOpen", Bool, false);
|
90 |
SETTING_RW(prefs.previewHtml,
|
90 |
SETTING_RW(prefs.previewHtml, "/Recoll/prefs/previewHtml", Bool, true);
|
91 |
"/Recoll/prefs/previewHtml", Bool, true);
|
|
|
92 |
|
91 |
|
93 |
QString advSearchClauses;
|
92 |
QString advSearchClauses;
|
|
|
93 |
const int maxclauselistsize = 20;
|
|
|
94 |
if (writing) {
|
|
|
95 |
// Limit clause list size to non-absurd size
|
|
|
96 |
if (prefs.advSearchClauses.size() > maxclauselistsize) {
|
|
|
97 |
prefs.advSearchClauses.resize(maxclauselistsize);
|
|
|
98 |
}
|
|
|
99 |
for (auto clause : prefs.advSearchClauses) {
|
|
|
100 |
char buf[20];
|
|
|
101 |
sprintf(buf, "%d ", clause);
|
|
|
102 |
advSearchClauses += QString::fromUtf8(buf);
|
|
|
103 |
}
|
|
|
104 |
}
|
94 |
QString ascdflt;
|
105 |
QString ascdflt;
|
95 |
if (writing) {
|
|
|
96 |
for (vector<int>::iterator it = prefs.advSearchClauses.begin();
|
|
|
97 |
it != prefs.advSearchClauses.end(); it++) {
|
|
|
98 |
char buf[20];
|
|
|
99 |
sprintf(buf, "%d ", *it);
|
|
|
100 |
advSearchClauses += QString::fromUtf8(buf);
|
|
|
101 |
}
|
|
|
102 |
}
|
|
|
103 |
SETTING_RW(advSearchClauses, "/Recoll/prefs/adv/clauseList", String, ascdflt);
|
106 |
SETTING_RW(advSearchClauses, "/Recoll/prefs/adv/clauseList", String, ascdflt);
|
104 |
if (!writing) {
|
107 |
if (!writing) {
|
105 |
list<string> clauses;
|
108 |
vector<string> clauses;
|
106 |
stringToStrings((const char *)advSearchClauses.toUtf8(), clauses);
|
109 |
stringToStrings(qs2utf8s(advSearchClauses), clauses);
|
107 |
for (list<string>::iterator it = clauses.begin();
|
110 |
// There was a long-lurking bug where the clause list was
|
108 |
it != clauses.end(); it++) {
|
111 |
// growing to absurd sizes. The prefs.advSearchClauses clear()
|
|
|
112 |
// call was missing (ok with the now false initial assumption
|
|
|
113 |
// that the prefs were read once per session), which was
|
|
|
114 |
// causing a doubling of the size each time the prefs were
|
|
|
115 |
// read. Should be fixed, but in any case, limit the clause
|
|
|
116 |
// list to a non-absurd size.
|
|
|
117 |
if (clauses.size() > maxclauselistsize) {
|
|
|
118 |
clauses.resize(maxclauselistsize);
|
|
|
119 |
}
|
|
|
120 |
prefs.advSearchClauses.clear();
|
|
|
121 |
prefs.advSearchClauses.reserve(clauses.size());
|
|
|
122 |
for (auto clause : clauses) {
|
109 |
prefs.advSearchClauses.push_back(atoi(it->c_str()));
|
123 |
prefs.advSearchClauses.push_back(atoi(clause.c_str()));
|
110 |
}
|
124 |
}
|
111 |
}
|
125 |
}
|
112 |
|
126 |
|
113 |
SETTING_RW(prefs.ssearchOnWS, "/Recoll/prefs/reslist/autoSearchOnWS",
|
127 |
SETTING_RW(prefs.ssearchOnWS, "/Recoll/prefs/reslist/autoSearchOnWS",
|
114 |
Bool, false);
|
128 |
Bool, false);
|