30{
31 qCInfo(lc).noquote() << tr("Loading Textlee templates from %1").arg(dir);
32
33
34 #if defined USE_CUTELEE
35 auto loader = std::make_shared<Textlee::FileSystemTemplateLoader>();
36 auto cachedLoader = std::make_shared<Textlee::CachingLoaderDecorator>(loader);
37 #elif defined USE_GRANTLEE or defined USE_KTEXTTEMPLATE
38 auto loader = QSharedPointer<Textlee::FileSystemTemplateLoader>::create();
39 auto cachedLoader = QSharedPointer<Textlee::CachingLoaderDecorator>::create(loader);
40 #endif
41
42 loader->setTemplateDirs(QStringList{dir});
43 engine.addTemplateLoader(cachedLoader);
44
45
46 QDirIterator iter{QDir::cleanPath(dir), QDir::Files, QDirIterator::Subdirectories};
47 while (iter.hasNext()) {
48 const QString name = iter.next().mid(iter.path().size()+1);
49 qCDebug(lc).noquote() << tr("Loading template: %1").arg(name);
50 const Textlee::Template tmplate = engine.loadByName(name);
51 if (tmplate->error()) {
52 qCritical().noquote() << tr("Error loading template %1: %2")
53 .arg(name, tmplate->errorString());
54 return false;
55 }
56 templates.append(name);
57 }
58 qDebug(lc).noquote() << tr("Loaded %n template/s from %1", nullptr, templates.size()).arg(dir);
59 return true;
60}