29
29
namespace DU = util::directory;
31
31
QStringList filter("*.tmpl");
32
QStringList cssfilter("*.css");
33
34
// Preload global display templates from disk:
34
35
QDir td = DU::getDisplayTemplatesDir();
35
Q_FOREACH(QString file, td.entryList(filter, QDir::Files | QDir::Readable))
36
Q_FOREACH(const QString &file, td.entryList(filter, QDir::Files | QDir::Readable))
36
37
loadTemplate(td.canonicalPath() + "/" + file);
39
// Load app stylesheets
40
Q_FOREACH(const QString &file, td.entryList(cssfilter, QDir::Files | QDir::Readable))
41
loadCSSTemplate(td.canonicalPath() + "/" + file);
39
44
Preload user display templates from disk, overriding any global templates
40
45
with the same file name:
42
47
QDir utd = DU::getUserDisplayTemplatesDir();
43
Q_FOREACH(QString file, utd.entryList(filter, QDir::Files | QDir::Readable))
48
Q_FOREACH(const QString &file, utd.entryList(filter, QDir::Files | QDir::Readable))
44
49
loadTemplate(utd.canonicalPath() + "/" + file);
46
if (m_templateMap.contains(defaultTemplate())) {
51
if (m_cssMap.contains(defaultTemplateName())) {
47
52
errorMessage = QString::null;
49
54
errorMessage = QObject::tr("Default template \"%1\" not found!")
50
.arg(defaultTemplate());
55
.arg(defaultTemplateName());
54
const QString CDisplayTemplateMgr::fillTemplate( const QString& name, const QString& content, Settings& settings ) {
55
qDebug() << "CDisplayTemplateMgr::fillTemplate";
57
const QString templateName = m_templateMap.contains(name) ? name : defaultTemplate();
59
QString CDisplayTemplateMgr::fillTemplate(const QString &name,
60
const QString &content,
61
const Settings &settings)
63
const QString templateName = m_cssMap.contains(name) ? name : defaultTemplateName();
59
65
QString displayTypeString;
61
68
if (!settings.pageCSS_ID.isEmpty()) {
62
69
displayTypeString = settings.pageCSS_ID;
65
73
if (settings.modules.count()) {
93
103
qDebug() << "There were more than 1 module, create headers";
96
QList<const CSwordModuleInfo*>::iterator end_it = settings.modules.end();
98
for (QList<const CSwordModuleInfo*>::iterator it(settings.modules.begin()); it != end_it; ++it) {
106
Q_FOREACH(const CSwordModuleInfo *mi, settings.modules) {
99
107
header.append("<th style=\"width:")
100
108
.append(QString::number(int( 100.0 / (float)moduleCount )))
102
.append((*it)->name())
103
111
.append("</th>");
114
122
CLanguageMgr::LangMap langMap = CLanguageMgr::instance()->availableLanguages();
116
qDebug() << "langMap length:" << langMap.count();
117
qDebug() << "loop through langMap";
118
124
foreach(const CLanguageMgr::Language* lang, langMap) {
119
125
//const CLanguageMgr::Language* lang = *it;
120
//qDebug() << "foreach, lang: ";
123
127
//if (lang->isValid() && CBTConfig::get(lang).first) {
124
128
if (!lang->abbrev().isEmpty() && CBTConfig::get(lang).first) {
154
158
.arg(standardFont.italic() ? "italic" : "normal")
162
// Template stylesheet
158
165
// qWarning("Outputing unformated text");
159
const QString t = QString(m_templateMap[ templateName ]) //don't change the map's content directly, use a copy
166
const QString t = QString(m_templateMap[ "Basic.tmpl" ]) //don't change the map's content directly, use a copy
160
167
.replace("#TITLE#", settings.title)
161
168
.replace("#LANG_ABBREV#", settings.langAbbrev.isEmpty() ? QString("en") : settings.langAbbrev)
162
169
.replace("#DISPLAYTYPE#", displayTypeString)
163
170
.replace("#LANG_CSS#", langCSS)
164
171
.replace("#PAGE_DIRECTION#", settings.pageDirection)
165
.replace("#CONTENT#", newContent);
172
.replace("#CONTENT#", newContent)
173
.replace("#THEME_STYLE#", m_cssMap[ templateName ])
174
.replace("#MODTYPE#", displayTypeString)
175
.replace("#MODNAME#", moduleName)
176
.replace("#MODULE_STYLESHEET#", QString("")); // Let's fix this!
181
QString CDisplayTemplateMgr::activeTemplateName() {
182
const QString tn = CBTConfig::get(CBTConfig::displayStyle);
184
return defaultTemplateName();
170
189
void CDisplayTemplateMgr::loadTemplate(const QString &filename) {
171
190
QFile f(filename);
172
191
if (f.open(QIODevice::ReadOnly)) {