summaryrefslogtreecommitdiff
path: root/src/backend/managers/cdisplaytemplatemgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/managers/cdisplaytemplatemgr.cpp')
-rw-r--r--src/backend/managers/cdisplaytemplatemgr.cpp54
1 files changed, 30 insertions, 24 deletions
diff --git a/src/backend/managers/cdisplaytemplatemgr.cpp b/src/backend/managers/cdisplaytemplatemgr.cpp
index fbeb921..734d912 100644
--- a/src/backend/managers/cdisplaytemplatemgr.cpp
+++ b/src/backend/managers/cdisplaytemplatemgr.cpp
@@ -2,7 +2,7 @@
*
* This file is part of BibleTime's source code, http://www.bibletime.info/.
*
-* Copyright 1999-2011 by the BibleTime developers.
+* Copyright 1999-2014 by the BibleTime developers.
* The BibleTime source code is licensed under the GNU General Public License version 2.0.
*
**********/
@@ -13,7 +13,7 @@
#include <QFileInfo>
#include <QStringList>
#include <QTextStream>
-#include "backend/config/cbtconfig.h"
+#include "backend/config/btconfig.h"
#include "backend/drivers/cswordmoduleinfo.h"
#include "backend/managers/clanguagemgr.h"
#include "util/directory.h"
@@ -21,6 +21,15 @@
#define CSSTEMPLATEBASE "Basic.tmpl"
+namespace {
+
+inline QString readFileToString(const QString & filename) {
+ QFile f(filename);
+ return f.open(QIODevice::ReadOnly) ? QTextStream(&f).readAll() : QString();
+}
+
+} // anonymous namespace
+
CDisplayTemplateMgr * CDisplayTemplateMgr::m_instance = 0;
CDisplayTemplateMgr::CDisplayTemplateMgr(QString & errorMessage) {
@@ -57,7 +66,7 @@ CDisplayTemplateMgr::CDisplayTemplateMgr(QString & errorMessage) {
loadCSSTemplate(td.canonicalPath() + "/" + file);
// Load user app stylesheets
Q_FOREACH(const QString & file, utd.entryList(cssfilter, readableFileFilter))
- loadCSSTemplate(td.canonicalPath() + "/" + file);
+ loadCSSTemplate(utd.canonicalPath() + "/" + file);
}
}
@@ -145,12 +154,7 @@ QString CDisplayTemplateMgr::fillTemplate(const QString & name,
QString langCSS;
{
- /*
- At first append the font standard settings for all languages without
- configured font. Create a dummy language (the langmap may be empty).
- */
- const CLanguageMgr::Language lang(QString("en"), QString("English"), QString::null);
- const QFont f = CBTConfig::getDefault(&lang);
+ const QFont & f = btConfig().getDefaultFont();
langCSS.append("#content{font-family:").append(f.family())
.append(";font-size:").append(QString::number(f.pointSizeF(), 'f'))
.append("pt;font-weight:").append(f.bold() ? "bold" : "normal")
@@ -160,8 +164,12 @@ QString CDisplayTemplateMgr::fillTemplate(const QString & name,
{
const CLanguageMgr::LangMap & langMap = CLanguageMgr::instance()->availableLanguages();
Q_FOREACH (const CLanguageMgr::Language * lang, langMap) {
- if (!lang->abbrev().isEmpty() && CBTConfig::get(lang).first) {
- const QFont f = CBTConfig::get(lang).second;
+ if (lang->abbrev().isEmpty())
+ continue;
+
+ BtConfig::FontSettingsPair fp = btConfig().getFontForLanguage(*lang);
+ if (fp.first) {
+ const QFont & f = fp.second;
langCSS.append("*[lang=").append(lang->abbrev()).append("]{")
.append("font-family:").append(f.family())
@@ -188,28 +196,26 @@ QString CDisplayTemplateMgr::fillTemplate(const QString & name,
.replace("#DISPLAY_TEMPLATES_PATH#", DU::getDisplayTemplatesDir().absolutePath());
if (templateIsCss)
- output.replace("#THEME_STYLE#", m_cssMap[name]);
+ output.replace("#THEME_STYLE#", readFileToString(m_cssMap[name]));
return output;
}
QString CDisplayTemplateMgr::activeTemplateName() {
- const QString tn = CBTConfig::get(CBTConfig::displayStyle);
- if (tn.isEmpty())
- return defaultTemplateName();
-
- return tn;
+ const QString tn = btConfig().value<QString>("GUI/activeTemplateName",
+ QString());
+ return (tn.isEmpty()
+ || !instance()->m_availableTemplateNamesCache.contains(tn))
+ ? defaultTemplateName()
+ : tn;
}
void CDisplayTemplateMgr::loadTemplate(const QString & filename) {
Q_ASSERT(filename.endsWith(".tmpl"));
Q_ASSERT(QFileInfo(filename).isFile());
- QFile f(filename);
- if (f.open(QIODevice::ReadOnly)) {
- const QString fileContent(QTextStream(&f).readAll());
- if (!fileContent.isEmpty())
- m_templateMap.insert(QFileInfo(f).fileName(), fileContent);
- }
+ const QString templateString = readFileToString(filename);
+ if (!templateString.isEmpty())
+ m_templateMap.insert(QFileInfo(filename).fileName(), templateString);
}
void CDisplayTemplateMgr::loadCSSTemplate(const QString & filename) {
@@ -217,5 +223,5 @@ void CDisplayTemplateMgr::loadCSSTemplate(const QString & filename) {
const QFileInfo fi(filename);
Q_ASSERT(fi.isFile());
if (fi.isReadable())
- m_cssMap.insert(fi.fileName(), fi.absoluteFilePath());
+ m_cssMap.insert(fi.fileName(), filename);
}