Gui: add parameter to adjust the date format used in the result list

This commit is contained in:
Jean-Francois Dockes 2012-02-01 14:25:54 +01:00
parent 3fa907a2eb
commit 71383023a5
7 changed files with 240 additions and 166 deletions

View File

@ -134,6 +134,11 @@ void rwSettings(bool writing)
SETTING_RW(prefs.abssep, "/Recoll/prefs/reslist/abssep", String,"…");
if (!writing && prefs.abssep == "")
prefs.abssep = "…";
SETTING_RW(prefs.reslistdateformat, "/Recoll/prefs/reslist/dateformat",
String," %Y-%m-%d %H:%M:%S %z");
if (!writing && prefs.reslistdateformat == "")
prefs.reslistdateformat = " %Y-%m-%d %H:%M:%S %z";
prefs.creslistdateformat = (const char*)prefs.reslistdateformat.toUtf8();
SETTING_RW(prefs.reslistfontfamily, "/Recoll/prefs/reslist/fontFamily", String,
"");

View File

@ -50,6 +50,9 @@ class PrefsPack {
string creslistformat;
// Abstract snippet separator
QString abssep;
// Date strftime format
QString reslistdateformat;
string creslistdateformat;
QString stylesheetFile;
QString queryStemLang;
int mainwidth;

View File

@ -71,6 +71,7 @@ public:
virtual string trans(const string& in);
virtual string detailsLink();
virtual const string &parFormat();
virtual const string &dateFormat();
virtual string nextUrl();
virtual string prevUrl();
virtual string pageTop();
@ -140,6 +141,10 @@ const string& QtGuiResListPager::parFormat()
{
return prefs.creslistformat;
}
const string& QtGuiResListPager::dateFormat()
{
return prefs.creslistdateformat;
}
string QtGuiResListPager::nextUrl()
{

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>530</width>
<height>559</height>
<height>446</height>
</rect>
</property>
<property name="windowTitle">
@ -22,7 +22,7 @@
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
<number>3</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
@ -31,36 +31,6 @@
<layout class="QVBoxLayout">
<item>
<layout class="QVBoxLayout">
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="textLabel1">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Number of entries in a result page</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="pageLenSB">
<property name="minimum">
<number>1</number>
</property>
<property name="value">
<number>8</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout">
<item>
@ -85,109 +55,6 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="textLabel4">
<property name="text">
<string>Result list font</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="reslistFontPB">
<property name="toolTip">
<string>Opens a dialog to select the result list font</string>
</property>
<property name="text">
<string>Helvetica-10</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="resetFontPB">
<property name="toolTip">
<string>Resets the result list font to the system default</string>
</property>
<property name="text">
<string>Reset</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="textLabel1_4">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Defines the format for each result list paragraph. Use qt html format and printf-like replacements:&lt;br&gt;%A Abstract&lt;br&gt; %D Date&lt;br&gt; %I Icon image name&lt;br&gt; %K Keywords (if any)&lt;br&gt; %L Preview and Edit links&lt;br&gt; %M Mime type&lt;br&gt; %N Result number&lt;br&gt; %R Relevance percentage&lt;br&gt; %S Size information&lt;br&gt; %T Title&lt;br&gt; %U Url&lt;br&gt;</string>
</property>
<property name="text">
<string>Result paragraph&lt;br&gt;format string</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QTextEdit" name="rlfTE">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="tabChangesFocus">
<bool>true</bool>
</property>
<property name="text" stdset="0">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="textLabelAbss">
<property name="text">
<string>Abstract snippet separator</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="abssepLE">
<property name="minimumSize">
<size>
<width>30</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout">
<item>
@ -255,6 +122,29 @@
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="previewHtmlCB">
<property name="text">
<string>Prefer Html to plain text for preview.</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="previewPlainPreCB">
<property name="toolTip">
<string>Lines in PRE text are not folded. Using BR loses some indentation.</string>
</property>
<property name="text">
<string>Use &lt;PRE&gt; tags instead of &lt;BR&gt;to display plain text as html in preview.</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="useDesktopOpenCB">
<property name="text">
@ -313,27 +203,188 @@
</widget>
</item>
<item>
<widget class="QCheckBox" name="previewHtmlCB">
<property name="text">
<string>Prefer Html to plain text for preview.</string>
<spacer name="spacer4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="checked">
<bool>false</bool>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
</widget>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>70</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Result List</string>
</attribute>
<layout class="QVBoxLayout">
<item>
<layout class="QVBoxLayout">
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="textLabel1">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Number of entries in a result page</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="pageLenSB">
<property name="minimum">
<number>1</number>
</property>
<property name="value">
<number>8</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="previewPlainPreCB">
<property name="toolTip">
<string>Lines in PRE text are not folded. Using BR loses indentation.</string>
</property>
<property name="text">
<string>Use &lt;PRE&gt; tags instead of &lt;BR&gt;to display plain text as html.</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="textLabel4">
<property name="text">
<string>Result list font</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="reslistFontPB">
<property name="toolTip">
<string>Opens a dialog to select the result list font</string>
</property>
<property name="text">
<string>Helvetica-10</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="resetFontPB">
<property name="toolTip">
<string>Resets the result list font to the system default</string>
</property>
<property name="text">
<string>Reset</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="textLabel1_4">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Defines the format for each result list paragraph. Use qt html format and printf-like replacements:&lt;br&gt;%A Abstract&lt;br&gt; %D Date&lt;br&gt; %I Icon image name&lt;br&gt; %K Keywords (if any)&lt;br&gt; %L Preview and Edit links&lt;br&gt; %M Mime type&lt;br&gt; %N Result number&lt;br&gt; %R Relevance percentage&lt;br&gt; %S Size information&lt;br&gt; %T Title&lt;br&gt; %U Url&lt;br&gt; Go to http://www.recoll.org/custom.html for examples.</string>
</property>
<property name="text">
<string>Result paragraph&lt;br&gt;format string</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QTextEdit" name="rlfTE">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="tabChangesFocus">
<bool>true</bool>
</property>
<property name="text" stdset="0">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="textLabelDateFormat">
<property name="text">
<string>Date format (strftime(3))</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="dateformatLE">
<property name="minimumSize">
<size>
<width>30</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="textLabelAbss">
<property name="text">
<string>Abstract snippet separator</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="abssepLE">
<property name="minimumSize">
<size>
<width>30</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
@ -344,19 +395,19 @@
<string>Search parameters</string>
</attribute>
<layout class="QVBoxLayout">
<item>
<widget class="QCheckBox" name="collapseDupsCB">
<property name="toolTip">
<string>If checked, results with the same content under different names will only be shown once.</string>
</property>
<property name="text">
<string>Hide duplicate results.</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="collapseDupsCB">
<property name="toolTip">
<string>If checked, results with the same content under different names will only be shown once.</string>
</property>
<property name="text">
<string>Hide duplicate results.</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout">
<item>

View File

@ -106,6 +106,7 @@ void UIPrefsDialog::setFromPrefs()
qtermColorLE->setText(prefs.qtermcolor);
// Abstract snippet separator string
abssepLE->setText(prefs.abssep);
dateformatLE->setText(prefs.reslistdateformat);
// Result list font family and size
reslistFontFamily = prefs.reslistfontfamily;
@ -194,6 +195,8 @@ void UIPrefsDialog::accept()
prefs.qtermcolor = qtermColorLE->text();
prefs.abssep = abssepLE->text();
prefs.reslistdateformat = dateformatLE->text();
prefs.creslistdateformat = (const char*)prefs.reslistdateformat.toUtf8();
prefs.reslistfontfamily = reslistFontFamily;
prefs.reslistfontsize = reslistFontSize;

View File

@ -161,7 +161,7 @@ void ResListPager::displayDoc(RclConfig *config,
time_t mtime = doc.dmtime.empty() ?
atol(doc.fmtime.c_str()) : atol(doc.dmtime.c_str());
struct tm *tm = localtime(&mtime);
strftime(datebuf, 99, "&nbsp;%Y-%m-%d&nbsp;%H:%M:%S&nbsp;%z", tm);
strftime(datebuf, 99, dateFormat().c_str(), tm);
}
// Size information. We print both doc and file if they differ a lot
@ -414,3 +414,9 @@ const string &ResListPager::parFormat()
return cstr_format;
}
const string &ResListPager::dateFormat()
{
static const string cstr_format("&nbsp;%Y-%m-%d&nbsp;%H:%M:%S&nbsp;%z");
return cstr_format;
}

View File

@ -106,6 +106,7 @@ public:
virtual string trans(const string& in);
virtual string detailsLink();
virtual const string &parFormat();
virtual const string &dateFormat();
virtual string nextUrl();
virtual string prevUrl();
virtual string pageTop() {return string();}