init UserSpecified templates in templatemanager

work/spdx
Michail Vourlakos 4 years ago
parent 08327326ff
commit 16c1a849b6

@ -46,15 +46,30 @@ Manager::~Manager()
void Manager::init() void Manager::init()
{ {
QDir systemTemplatesDir(m_corona->kPackage().filePath("templates")); //! Local Templates
QDir localTemplatesDir(Latte::configPath() + "/latte/templates");
if (!localTemplatesDir.exists()) {
QDir(Latte::configPath() + "/latte").mkdir("templates");
}
initLayoutTemplates(m_corona->kPackage().filePath("templates"));
initLayoutTemplates(Latte::configPath() + "/latte/templates");
initViewTemplates(m_corona->kPackage().filePath("templates"));
initViewTemplates(Latte::configPath() + "/latte/templates");
}
void Manager::initLayoutTemplates(const QString &path)
{
QDir templatesDir(path);
QStringList filter; QStringList filter;
filter.append(QString("*.layout.latte")); filter.append(QString("*.layout.latte"));
QStringList systemLayoutTemplates = systemTemplatesDir.entryList(filter, QDir::Files | QDir::Hidden | QDir::NoSymLinks); QStringList templates = templatesDir.entryList(filter, QDir::Files | QDir::Hidden | QDir::NoSymLinks);
for (int i=0; i<systemLayoutTemplates.count(); ++i) { for (int i=0; i<templates.count(); ++i) {
QString systemTemplatePath = systemTemplatesDir.path() + "/" + systemLayoutTemplates[i]; QString templatePath = templatesDir.path() + "/" + templates[i];
if (!m_layoutTemplates.containsId(systemTemplatePath)) { if (!m_layoutTemplates.containsId(templatePath)) {
CentralLayout layouttemplate(this, systemTemplatePath); CentralLayout layouttemplate(this, templatePath);
Data::Layout tdata = layouttemplate.data(); Data::Layout tdata = layouttemplate.data();
tdata.isTemplate = true; tdata.isTemplate = true;
@ -67,27 +82,25 @@ void Manager::init()
m_layoutTemplates << tdata; m_layoutTemplates << tdata;
} }
} }
}
filter.clear(); void Manager::initViewTemplates(const QString &path)
{
QDir templatesDir(path);
QStringList filter;
filter.append(QString("*.view.latte")); filter.append(QString("*.view.latte"));
QStringList systemViewTemplates = systemTemplatesDir.entryList(filter, QDir::Files | QDir::Hidden | QDir::NoSymLinks); QStringList templates = templatesDir.entryList(filter, QDir::Files | QDir::Hidden | QDir::NoSymLinks);
for (int i=0; i<systemViewTemplates.count(); ++i) { for (int i=0; i<templates.count(); ++i) {
QString systemViewTemplatePath = systemTemplatesDir.path() + "/" + systemViewTemplates[i]; QString templatePath = templatesDir.path() + "/" + templates[i];
if (!m_viewTemplates.containsId(systemViewTemplatePath)) { if (!m_viewTemplates.containsId(templatePath)) {
Data::Generic vdata; Data::Generic vdata;
vdata.id = systemViewTemplatePath; vdata.id = templatePath;
vdata.name = QFileInfo(systemViewTemplatePath).baseName(); vdata.name = QFileInfo(templatePath).baseName();
m_viewTemplates << vdata; m_viewTemplates << vdata;
} }
} }
//! Local Templates
QDir localTemplatesDir(Latte::configPath() + "/latte/templates");
if (!localTemplatesDir.exists()) {
QDir(Latte::configPath() + "/latte").mkdir("templates");
}
} }
Data::Layout Manager::layoutTemplateForName(const QString &layoutName) Data::Layout Manager::layoutTemplateForName(const QString &layoutName)

@ -73,6 +73,9 @@ signals:
void newLayoutAdded(const QString &path); void newLayoutAdded(const QString &path);
private: private:
void initLayoutTemplates(const QString &path);
void initViewTemplates(const QString &path);
void exposeTranslatedTemplateNames(); void exposeTranslatedTemplateNames();
QString uniqueLayoutTemplateName(QString name) const; QString uniqueLayoutTemplateName(QString name) const;

Loading…
Cancel
Save