diff --git a/src/qtgui/main.cpp b/src/qtgui/main.cpp
index b6465692..95cb425a 100644
--- a/src/qtgui/main.cpp
+++ b/src/qtgui/main.cpp
@@ -173,6 +173,19 @@ static void sigcleanup(int)
exit(1);
}
+void applyStyleSheet(const QString& ssfname)
+{
+ const char *cfname = (const char *)ssfname.toLocal8Bit();
+ LOGDEB0(("Applying style sheet: [%s]\n", cfname));
+ if (cfname && *cfname) {
+ string stylesheet;
+ file_to_string(cfname, stylesheet);
+ qApp->setStyleSheet(QString::fromAscii(stylesheet.c_str()));
+ } else {
+ qApp->setStyleSheet(QString());
+ }
+}
+
extern void qInitImages_recoll();
static const char *thisprog;
@@ -316,11 +329,7 @@ int main(int argc, char **argv)
// fprintf(stderr, "Settings done\n");
if (!prefs.stylesheetFile.isEmpty()) {
- string stylesheet;
- file_to_string((const char *)prefs.stylesheetFile.toLocal8Bit(),
- stylesheet);
- if (!stylesheet.empty())
- app.setStyleSheet(QString::fromAscii(stylesheet.c_str()));
+ applyStyleSheet(prefs.stylesheetFile);
}
// Create main window and set its size to previous session's
diff --git a/src/qtgui/rclmain_w.cpp b/src/qtgui/rclmain_w.cpp
index 307bf104..7d1065d5 100644
--- a/src/qtgui/rclmain_w.cpp
+++ b/src/qtgui/rclmain_w.cpp
@@ -954,7 +954,7 @@ void RclMain::showRTITool(bool modal)
void RclMain::showUIPrefs()
{
if (uiprefs == 0) {
- uiprefs = new UIPrefsDialog(0);
+ uiprefs = new UIPrefsDialog(this);
connect(new QShortcut(quitKeySeq, uiprefs), SIGNAL (activated()),
this, SLOT (fileExit()));
connect(uiprefs, SIGNAL(uiprefsDone()), this, SLOT(setUIPrefs()));
@@ -970,7 +970,7 @@ void RclMain::showUIPrefs()
void RclMain::showExtIdxDialog()
{
if (uiprefs == 0) {
- uiprefs = new UIPrefsDialog(0);
+ uiprefs = new UIPrefsDialog(this);
connect(new QShortcut(quitKeySeq, uiprefs), SIGNAL (activated()),
this, SLOT (fileExit()));
connect(uiprefs, SIGNAL(uiprefsDone()), this, SLOT(setUIPrefs()));
@@ -1822,3 +1822,8 @@ bool RclMain::eventFilter(QObject *, QEvent *event)
}
return false;
}
+
+void RclMain::applyStyleSheet()
+{
+ ::applyStyleSheet(prefs.stylesheetFile);
+}
diff --git a/src/qtgui/rclmain_w.h b/src/qtgui/rclmain_w.h
index 2e245e76..7aac7b33 100644
--- a/src/qtgui/rclmain_w.h
+++ b/src/qtgui/rclmain_w.h
@@ -132,6 +132,7 @@ public slots:
virtual void onSortDataChanged(DocSeqSortSpec);
virtual void resultCount(int);
virtual void showQueryDetails();
+ virtual void applyStyleSheet();
signals:
void docSourceChanged(RefCntr);
diff --git a/src/qtgui/recoll.h b/src/qtgui/recoll.h
index a7a265de..77b01a70 100644
--- a/src/qtgui/recoll.h
+++ b/src/qtgui/recoll.h
@@ -22,6 +22,8 @@
#include "rcldb.h"
#include "ptmutex.h"
+#include
+
// Misc declarations in need of sharing between the UI files
// Open the database if needed. We now force a close/open by default
@@ -42,6 +44,8 @@ extern Rcl::Db *rcldb;
extern int recollNeedsExit;
extern void startManual(const string& helpindex);
+extern void applyStyleSheet(const QString&);
+
#ifdef RCL_USE_ASPELL
class Aspell;
extern Aspell *aspell;
diff --git a/src/qtgui/uiprefs_w.cpp b/src/qtgui/uiprefs_w.cpp
index 47d5256b..0866a1c5 100644
--- a/src/qtgui/uiprefs_w.cpp
+++ b/src/qtgui/uiprefs_w.cpp
@@ -40,6 +40,7 @@
#include
#include
#include
+#include
#include "recoll.h"
#include "guiutils.h"
@@ -50,6 +51,7 @@
#include "viewaction_w.h"
#include "debuglog.h"
#include "editdialog.h"
+#include "rclmain_w.h"
void UIPrefsDialog::init()
{
@@ -204,6 +206,7 @@ void UIPrefsDialog::accept()
prefs.reslistfontfamily = reslistFontFamily;
prefs.reslistfontsize = reslistFontSize;
prefs.stylesheetFile = stylesheetFile;
+ QTimer::singleShot(0, m_mainWindow, SLOT(applyStyleSheet()));
prefs.reslistformat = paraFormat;
prefs.reslistheadertext = headerText;
if (prefs.reslistformat.trimmed().isEmpty()) {
diff --git a/src/qtgui/uiprefs_w.h b/src/qtgui/uiprefs_w.h
index 8c17d059..502af636 100644
--- a/src/qtgui/uiprefs_w.h
+++ b/src/qtgui/uiprefs_w.h
@@ -23,14 +23,15 @@
class QDialog;
class ViewAction;
+class RclMain;
class UIPrefsDialog : public QDialog, public Ui::uiPrefsDialogBase
{
Q_OBJECT
public:
- UIPrefsDialog(QDialog* parent = 0)
- : QDialog(parent)
+ UIPrefsDialog(RclMain* parent)
+ : QDialog((QWidget*)parent), m_mainWindow(parent)
{
setupUi(this);
init();
@@ -71,7 +72,7 @@ private:
QString headerText;
void setFromPrefs();
ViewAction *m_viewAction;
-
+ RclMain *m_mainWindow;
};
#endif /* _UIPREFS_W_H_INCLUDED_ */
diff --git a/website/BUGS.html b/website/BUGS.html
index 16a256da..8824ad78 100644
--- a/website/BUGS.html
+++ b/website/BUGS.html
@@ -35,9 +35,11 @@
supposedly fixed in later versions. Bugs listed in the
topmost section may also exist in older versions.
-
+
+ - The application style sheet is not reapplied when changed
+ from the preferences menu, you have to restart the GUI.
- It will sometimes happen that the result list paragraph format
stored in the Qt preferences file will get garbled,
causing result lists with no displayed paragraphs (the
@@ -45,31 +47,33 @@
mode, but not in list mode). The workaround is to go to
Preferences->Query configuration->User interface
-
- and erase the result paragraph format string (^A DEL in the text area),
- this will reset the string to the default value.
+ and erase the result paragraph format string
+ (^A DEL in the text area), this will reset the string to the
+ default value.
- Real time indexer: when running with gamin on FreeBSD, the
indexer can deadlock in the gamin dialog in some
cases.
- - Real time indexer: file move events are not detected when
- running with inotify (at least for recent
- versions). Workaround: restart indexer from time to time.
- - Real time indexer: directory moves are not handled at
- all. Workaround: restart indexer from time to time.
- - Cancelling a preview in the GUI will also cancel the indexing
- thread if it is running.
- After an upgrade, the recoll GUI sometimes crashes on
startup. This is fixed by removing (back it up just in case)
~/.config/Recoll.org/recoll.conf, the QSettings storage for
recoll.
+
+
+
+
+
+ Real time indexer: directory moves are not handled at
+ all. Workaround: restart indexer from time to time.
+ Real time indexer: file move events are not detected when
+ running with inotify (at least for recent
+ versions). Workaround: restart indexer from time to time.
+ Cancelling a preview in the GUI will also cancel the indexing
+ thread if it is running.
Under Solaris, it is necessary to perform the initial
indexing with the recollindex program. For some unknown reason,
the recoll index thread does not work for creating the database.
The only idea I have is a problem with exception handling (recoll
catches an exception while trying the yet inexistant db).
-
-
-
diff --git a/website/download.html b/website/download.html
index 1749ad8b..a92d0105 100644
--- a/website/download.html
+++ b/website/download.html
@@ -360,7 +360,7 @@ I now use the OpenSUSE build service to create Recoll OpenSUSE packages.
- Most of the translations for 1.16 are incomplete
+
Most of the translations for 1.17 are incomplete
The source translation files are included in the source
release. If your language has some english messages left and
you want to take a shot at fixing the problem, you can send
diff --git a/website/release-1.17.html b/website/release-1.17.html
index 474113fd..0f6ec868 100644
--- a/website/release-1.17.html
+++ b/website/release-1.17.html
@@ -78,6 +78,12 @@
+ - GUI/config: new set of dialogs to set up the indexing
+ schedule, either as automatic real time indexing started
+ with the user session or as discrete cron entries. This
+ will take care of the details of autostart files or crontab
+ editing.
+
- Search: Recoll now supports filtering on file sizes. This
is accessible from the advanced search panel, or from the
query langage (ie: "size>10k size<1m"). For
@@ -111,12 +117,6 @@
filtering on file dates and sizes, and has been split into two
tabs: for search terms, and for filtering.
- - GUI/config: new set of dialogs to set up the indexing
- schedule, either as automatic real time indexing started
- with the user session or as discrete cron entries. This
- will take care of the details of autostart files or crontab
- editing.
-
- GUI: use Shift+PageUp instead of Shift+Home to rewind the
result list to the first page. Shift+Home is useful in the
search entry.