From a2fa6a433fbe1be3955e536d8eb78c53cf03d698 Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Thu, 18 Apr 2013 10:15:25 +0200 Subject: [PATCH] added option for external CSS style sheet for Snippets window --- src/qtgui/guiutils.cpp | 3 ++- src/qtgui/guiutils.h | 3 ++- src/qtgui/main.cpp | 4 ++-- src/qtgui/rclmain_w.cpp | 2 +- src/qtgui/snippets_w.cpp | 7 ++++++- src/qtgui/uiprefs.ui | 34 ++++++++++++++++++++++++++++++++++ src/qtgui/uiprefs_w.cpp | 39 +++++++++++++++++++++++++++++++-------- src/qtgui/uiprefs_w.h | 5 ++++- 8 files changed, 82 insertions(+), 15 deletions(-) diff --git a/src/qtgui/guiutils.cpp b/src/qtgui/guiutils.cpp index d164defb..6e069590 100644 --- a/src/qtgui/guiutils.cpp +++ b/src/qtgui/guiutils.cpp @@ -153,7 +153,8 @@ void rwSettings(bool writing) SETTING_RW(prefs.reslistheadertext, "/Recoll/prefs/reslist/headertext", String, ""); - SETTING_RW(prefs.stylesheetFile, "/Recoll/prefs/stylesheet", String, ""); + SETTING_RW(prefs.qssFile, "/Recoll/prefs/stylesheet", String, ""); + SETTING_RW(prefs.snipCssFile, "/Recoll/prefs/snippets/cssfile", String, ""); SETTING_RW(prefs.queryStemLang, "/Recoll/prefs/query/stemLang", String, "english"); SETTING_RW(prefs.useDesktopOpen, "/Recoll/prefs/useDesktopOpen", diff --git a/src/qtgui/guiutils.h b/src/qtgui/guiutils.h index 5cabb44b..cacb6c90 100644 --- a/src/qtgui/guiutils.h +++ b/src/qtgui/guiutils.h @@ -60,7 +60,8 @@ class PrefsPack { // Date strftime format QString reslistdateformat; string creslistdateformat; - QString stylesheetFile; + QString qssFile; + QString snipCssFile; QString queryStemLang; int mainwidth; int mainheight; diff --git a/src/qtgui/main.cpp b/src/qtgui/main.cpp index 36fe7d07..4c15a401 100644 --- a/src/qtgui/main.cpp +++ b/src/qtgui/main.cpp @@ -338,8 +338,8 @@ int main(int argc, char **argv) havereadsettings = true; // fprintf(stderr, "Settings done\n"); - if (!prefs.stylesheetFile.isEmpty()) { - applyStyleSheet(prefs.stylesheetFile); + if (!prefs.qssFile.isEmpty()) { + applyStyleSheet(prefs.qssFile); } QIcon icon; icon.addFile(QString::fromUtf8(":/images/recoll.png")); diff --git a/src/qtgui/rclmain_w.cpp b/src/qtgui/rclmain_w.cpp index 6cf6ea85..2a35fc28 100644 --- a/src/qtgui/rclmain_w.cpp +++ b/src/qtgui/rclmain_w.cpp @@ -1983,5 +1983,5 @@ bool RclMain::eventFilter(QObject *, QEvent *event) void RclMain::applyStyleSheet() { - ::applyStyleSheet(prefs.stylesheetFile); + ::applyStyleSheet(prefs.qssFile); } diff --git a/src/qtgui/snippets_w.cpp b/src/qtgui/snippets_w.cpp index 9f7ae7ce..82beb299 100644 --- a/src/qtgui/snippets_w.cpp +++ b/src/qtgui/snippets_w.cpp @@ -32,6 +32,7 @@ using namespace std; #ifdef SNIPPETS_WEBKIT #include #include +#include #else #include #endif @@ -100,6 +101,8 @@ void SnippetsW::init() ws->setFontFamily(QWebSettings::StandardFont, prefs.reslistfontfamily); ws->setFontSize(QWebSettings::DefaultFontSize, prefs.reslistfontsize); } + if (!prefs.snipCssFile.isEmpty()) + ws->setUserStyleSheetUrl(QUrl::fromLocalFile(prefs.snipCssFile)); #else connect(browser, SIGNAL(anchorClicked(const QUrl &)), this, SLOT(linkWasClicked(const QUrl &))); @@ -135,7 +138,9 @@ void SnippetsW::init() oss << "" "" + "content=\"text/html; charset=utf-8\">" + "" + "" "" "" ; diff --git a/src/qtgui/uiprefs.ui b/src/qtgui/uiprefs.ui index 9d430f2e..569bde68 100644 --- a/src/qtgui/uiprefs.ui +++ b/src/qtgui/uiprefs.ui @@ -394,6 +394,40 @@ + + + + + + Snippets window CSS file + + + false + + + + + + + Opens a dialog to select the Snippets window CSS style sheet file + + + Choose + + + + + + + Resets the Snippets window style + + + Reset + + + + + diff --git a/src/qtgui/uiprefs_w.cpp b/src/qtgui/uiprefs_w.cpp index 75595bf8..ff6c8a84 100644 --- a/src/qtgui/uiprefs_w.cpp +++ b/src/qtgui/uiprefs_w.cpp @@ -62,8 +62,11 @@ void UIPrefsDialog::init() connect(viewActionPB, SIGNAL(clicked()), this, SLOT(showViewAction())); connect(reslistFontPB, SIGNAL(clicked()), this, SLOT(showFontDialog())); connect(resetFontPB, SIGNAL(clicked()), this, SLOT(resetReslistFont())); - connect(stylesheetPB, SIGNAL(clicked()), this, SLOT(showStylesheetDialog())); + + connect(stylesheetPB, SIGNAL(clicked()),this, SLOT(showStylesheetDialog())); connect(resetSSPB, SIGNAL(clicked()), this, SLOT(resetStylesheet())); + connect(snipCssPB, SIGNAL(clicked()),this, SLOT(showSnipCssDialog())); + connect(resetSnipCssPB, SIGNAL(clicked()), this, SLOT(resetSnipCss())); connect(idxLV, SIGNAL(itemSelectionChanged()), this, SLOT(extradDbSelectChanged())); @@ -142,14 +145,22 @@ void UIPrefsDialog::setFromPrefs() } // Style sheet - stylesheetFile = prefs.stylesheetFile; - if (stylesheetFile.isEmpty()) { + qssFile = prefs.qssFile; + if (qssFile.isEmpty()) { stylesheetPB->setText(tr("Choose")); } else { - string nm = path_getsimple((const char *)stylesheetFile.toLocal8Bit()); + string nm = path_getsimple((const char *)qssFile.toLocal8Bit()); stylesheetPB->setText(QString::fromLocal8Bit(nm.c_str())); } + snipCssFile = prefs.snipCssFile; + if (snipCssFile.isEmpty()) { + snipCssPB->setText(tr("Choose")); + } else { + string nm = path_getsimple((const char *)snipCssFile.toLocal8Bit()); + snipCssPB->setText(QString::fromLocal8Bit(nm.c_str())); + } + paraFormat = prefs.reslistformat; headerText = prefs.reslistheadertext; @@ -225,8 +236,9 @@ void UIPrefsDialog::accept() prefs.reslistfontfamily = reslistFontFamily; prefs.reslistfontsize = reslistFontSize; - prefs.stylesheetFile = stylesheetFile; + prefs.qssFile = qssFile; QTimer::singleShot(0, m_mainWindow, SLOT(applyStyleSheet())); + prefs.snipCssFile = snipCssFile; prefs.reslistformat = paraFormat; prefs.reslistheadertext = headerText; if (prefs.reslistformat.trimmed().isEmpty()) { @@ -364,16 +376,27 @@ void UIPrefsDialog::showFontDialog() void UIPrefsDialog::showStylesheetDialog() { - stylesheetFile = myGetFileName(false, "Select stylesheet file", true); - string nm = path_getsimple((const char *)stylesheetFile.toLocal8Bit()); + qssFile = myGetFileName(false, "Select stylesheet file", true); + string nm = path_getsimple((const char *)qssFile.toLocal8Bit()); stylesheetPB->setText(QString::fromLocal8Bit(nm.c_str())); } void UIPrefsDialog::resetStylesheet() { - stylesheetFile = ""; + qssFile = ""; stylesheetPB->setText(tr("Choose")); } +void UIPrefsDialog::showSnipCssDialog() +{ + snipCssFile = myGetFileName(false, "Select snippets window CSS file", true); + string nm = path_getsimple((const char *)snipCssFile.toLocal8Bit()); + snipCssPB->setText(QString::fromLocal8Bit(nm.c_str())); +} +void UIPrefsDialog::resetSnipCss() +{ + snipCssFile = ""; + snipCssPB->setText(tr("Choose")); +} void UIPrefsDialog::resetReslistFont() { diff --git a/src/qtgui/uiprefs_w.h b/src/qtgui/uiprefs_w.h index 7433b2e6..1da11068 100644 --- a/src/qtgui/uiprefs_w.h +++ b/src/qtgui/uiprefs_w.h @@ -40,7 +40,8 @@ public: QString reslistFontFamily; int reslistFontSize; - QString stylesheetFile; + QString qssFile; + QString snipCssFile; virtual void init(); @@ -48,7 +49,9 @@ public slots: virtual void showFontDialog(); virtual void resetReslistFont(); virtual void showStylesheetDialog(); + virtual void showSnipCssDialog(); virtual void resetStylesheet(); + virtual void resetSnipCss(); virtual void showViewAction(); virtual void showViewAction(const QString& mt); virtual void addExtraDbPB_clicked();