GUI Advanced search tool: save config at every change, not only when running a query

This commit is contained in:
Jean-Francois Dockes 2018-04-20 09:32:54 +02:00
parent 3c1013907a
commit f156b9df09
2 changed files with 17 additions and 12 deletions

View File

@ -86,7 +86,7 @@ void AdvSearch::init()
// Create preconfigured clauses // Create preconfigured clauses
for (unsigned int i = 0; i < iclausescnt; i++) { for (unsigned int i = 0; i < iclausescnt; i++) {
addClause(initclausetypes[i]); addClause(initclausetypes[i], false);
} }
// Tune initial state according to last saved // Tune initial state according to last saved
{ {
@ -97,7 +97,7 @@ void AdvSearch::init()
(*cit)->tpChange(prefs.advSearchClauses[i]); (*cit)->tpChange(prefs.advSearchClauses[i]);
cit++; cit++;
} else { } else {
addClause(prefs.advSearchClauses[i]); addClause(prefs.advSearchClauses[i], false);
} }
} }
} }
@ -158,18 +158,17 @@ void AdvSearch::saveCnf()
{ {
// Save my state // Save my state
prefs.advSearchClauses.clear(); prefs.advSearchClauses.clear();
for (vector<SearchClauseW *>::iterator cit = m_clauseWins.begin(); for (const auto& clause : m_clauseWins) {
cit != m_clauseWins.end(); cit++) { prefs.advSearchClauses.push_back(clause->sTpCMB->currentIndex());
prefs.advSearchClauses.push_back((*cit)->sTpCMB->currentIndex());
} }
} }
void AdvSearch::addClause() void AdvSearch::addClause(bool updsaved)
{ {
addClause(0); addClause(0, updsaved);
} }
void AdvSearch::addClause(int tp) void AdvSearch::addClause(int tp, bool updsaved)
{ {
SearchClauseW *w = new SearchClauseW(clauseFRM); SearchClauseW *w = new SearchClauseW(clauseFRM);
m_clauseWins.push_back(w); m_clauseWins.push_back(w);
@ -181,9 +180,12 @@ void AdvSearch::addClause(int tp)
} else { } else {
delClausePB->setEnabled(false); delClausePB->setEnabled(false);
} }
if (updsaved) {
saveCnf();
}
} }
void AdvSearch::delClause() void AdvSearch::delClause(bool updsaved)
{ {
if (m_clauseWins.size() <= iclausescnt) if (m_clauseWins.size() <= iclausescnt)
return; return;
@ -194,6 +196,9 @@ void AdvSearch::delClause()
} else { } else {
delClausePB->setEnabled(false); delClausePB->setEnabled(false);
} }
if (updsaved) {
saveCnf();
}
} }
void AdvSearch::delAFiltypPB_clicked() void AdvSearch::delAFiltypPB_clicked()

View File

@ -59,9 +59,9 @@ public slots:
virtual void fromSearch(std::shared_ptr<Rcl::SearchData> sdata); virtual void fromSearch(std::shared_ptr<Rcl::SearchData> sdata);
virtual void browsePB_clicked(); virtual void browsePB_clicked();
virtual void saveFileTypes(); virtual void saveFileTypes();
virtual void delClause(); virtual void delClause(bool updsaved=true);
virtual void addClause(); virtual void addClause(bool updsaved=true);
virtual void addClause(int); virtual void addClause(int, bool updsaved=true);
virtual void slotHistoryNext(); virtual void slotHistoryNext();
virtual void slotHistoryPrev(); virtual void slotHistoryPrev();