diff --git a/src/qtgui/guiutils.cpp b/src/qtgui/guiutils.cpp index 6edb07fc..7cc0d415 100644 --- a/src/qtgui/guiutils.cpp +++ b/src/qtgui/guiutils.cpp @@ -122,10 +122,8 @@ void rwSettings(bool writing) "/Recoll/prefs/showResultsAsTable", Bool, false); SETTING_RW(prefs.maxhltextmbs, "/Recoll/prefs/preview/maxhltextmbs", Int, 3); - // The default is true because I find it more often useful to keep - // indentation than to fold lines. Mileage may vary. SETTING_RW(prefs.previewPlainPre, - "/Recoll/prefs/preview/plainPre", Bool, true); + "/Recoll/prefs/preview/plainPre", Int, PrefsPack::PP_PREWRAP); SETTING_RW(prefs.qtermcolor, "/Recoll/prefs/qtermcolor", String, "blue"); if (!writing && prefs.qtermcolor == "") prefs.qtermcolor = "blue"; diff --git a/src/qtgui/guiutils.h b/src/qtgui/guiutils.h index c1e6df77..6c9bd59e 100644 --- a/src/qtgui/guiutils.h +++ b/src/qtgui/guiutils.h @@ -76,7 +76,8 @@ class PrefsPack { bool previewHtml; // Use
tag to display highlighted text/plain inside html (else
// we use
at end of lines, which lets textedit wrap lines).
- bool previewPlainPre;
+ enum PlainPre {PP_BR, PP_PRE, PP_PREWRAP};
+ int previewPlainPre;
bool collapseDuplicates;
bool showResultsAsTable;
diff --git a/src/qtgui/preview_w.cpp b/src/qtgui/preview_w.cpp
index 04656e3b..309d3eab 100644
--- a/src/qtgui/preview_w.cpp
+++ b/src/qtgui/preview_w.cpp
@@ -82,23 +82,21 @@ public:
virtual string header()
{
- if (m_inputhtml) {
- return cstr_null;
- } else {
- if (prefs.previewPlainPre) {
- m_eolbr = false;
- return string(" "
- "");
- // Note: we could also use the following for
- // line-folding instead of
s This would be
- // possible without recomputing the whole text, much
- // better perfs for toggling wrap/no-wrap:
- //
- } else {
+ if (!m_inputhtml) {
+ switch (prefs.previewPlainPre) {
+ case PrefsPack::PP_BR:
m_eolbr = true;
- return string(" ");
+ return " ";
+ case PrefsPack::PP_PRE:
+ m_eolbr = false;
+ return "";
+ case PrefsPack::PP_PREWRAP:
+ m_eolbr = false;
+ return " "
+ "";
}
}
+ return cstr_null;
}
virtual string startMatch(unsigned int grpidx)
@@ -673,7 +671,18 @@ bool Preview::makeDocCurrent(const Rcl::Doc& doc, int docnum, bool sametab)
}
void Preview::togglePlainPre()
{
- prefs.previewPlainPre = !prefs.previewPlainPre;
+ switch (prefs.previewPlainPre) {
+ case PrefsPack::PP_BR:
+ prefs.previewPlainPre = PrefsPack::PP_PRE;
+ break;
+ case PrefsPack::PP_PRE:
+ prefs.previewPlainPre = PrefsPack::PP_BR;
+ break;
+ case PrefsPack::PP_PREWRAP:
+ default:
+ prefs.previewPlainPre = PrefsPack::PP_PRE;
+ break;
+ }
PreviewTextEdit *editor = currentEditor();
if (editor)
diff --git a/src/qtgui/uiprefs.ui b/src/qtgui/uiprefs.ui
index c4ecf213..7c71947f 100644
--- a/src/qtgui/uiprefs.ui
+++ b/src/qtgui/uiprefs.ui
@@ -133,17 +133,39 @@
-
-
-
- Lines in PRE text are not folded. Using BR loses some indentation.
-
-
- Use <PRE> tags instead of <BR>to display plain text as html in preview.
-
-
- false
-
-
+
+ -
+
+
+ Plain text to HTML line style
+
+
+ Lines in PRE text are not folded. Using BR loses some indentation. PRE + Wrap style may be what you want.
+
+
+
+ -
+
+
+ <BR>
+
+
+
+ -
+
+
+ <PRE>
+
+
+
+ -
+
+
+ <PRE> + wrap
+
+
+
+
-
diff --git a/src/qtgui/uiprefs_w.cpp b/src/qtgui/uiprefs_w.cpp
index e97c8dd3..f33275a1 100644
--- a/src/qtgui/uiprefs_w.cpp
+++ b/src/qtgui/uiprefs_w.cpp
@@ -105,7 +105,18 @@ void UIPrefsDialog::setFromPrefs()
keepSortCB->setChecked(prefs.keepSort);
previewHtmlCB->setChecked(prefs.previewHtml);
- previewPlainPreCB->setChecked(prefs.previewPlainPre);
+ switch (prefs.previewPlainPre) {
+ case PrefsPack::PP_BR:
+ plainBRRB->setChecked(1);
+ break;
+ case PrefsPack::PP_PRE:
+ plainPRERB->setChecked(1);
+ break;
+ case PrefsPack::PP_PREWRAP:
+ default:
+ plainPREWRAPRB->setChecked(1);
+ break;
+ }
// Query terms color
qtermColorLE->setText(prefs.qtermcolor);
// Abstract snippet separator string
@@ -233,7 +244,14 @@ void UIPrefsDialog::accept()
prefs.useDesktopOpen = useDesktopOpenCB->isChecked();
prefs.keepSort = keepSortCB->isChecked();
prefs.previewHtml = previewHtmlCB->isChecked();
- prefs.previewPlainPre = previewPlainPreCB->isChecked();
+
+ if (plainBRRB->isChecked()) {
+ prefs.previewPlainPre = PrefsPack::PP_BR;
+ } else if (plainPRERB->isChecked()) {
+ prefs.previewPlainPre = PrefsPack::PP_PRE;
+ } else {
+ prefs.previewPlainPre = PrefsPack::PP_PREWRAP;
+ }
prefs.syntAbsLen = syntlenSB->value();
prefs.syntAbsCtx = syntctxSB->value();
diff --git a/src/query/docseqdb.cpp b/src/query/docseqdb.cpp
index c50db4f0..36baa7dd 100644
--- a/src/query/docseqdb.cpp
+++ b/src/query/docseqdb.cpp
@@ -182,12 +182,12 @@ bool DocSequenceDb::setQuery()
m_rescnt = -1;
m_needSetQuery = !m_q->setQuery(m_fsdata);
- if (0) {
+#if 0
HighlightData hld;
m_fsdata->getTerms(hld);
string str;
hld.toString(str);
fprintf(stderr, "DocSequenceDb::setQuery: terms: %s\n", str.c_str());
- }
+#endif
return !m_needSetQuery;
}