Switch to unified view

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);