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