diff --git a/app/layout/centrallayout.cpp b/app/layout/centrallayout.cpp index 2c248ec0a..907299a64 100644 --- a/app/layout/centrallayout.cpp +++ b/app/layout/centrallayout.cpp @@ -251,6 +251,24 @@ Latte::View *CentralLayout::lastConfigViewFor() } } +Data::Layout CentralLayout::data() const +{ + Data::Layout cdata; + + cdata.name = name(); + cdata.icon = icon(); + cdata.backgroundStyle = backgroundStyle(); + cdata.color = color(); + cdata.background = customBackground(); + cdata.textColor = customTextColor(); + cdata.isLocked = !isWritable(); + cdata.isShownInMenu = showInMenu(); + cdata.hasDisabledBorders = disableBordersForMaximizedWindows(); + cdata.activities = activities(); + + return cdata; +} + void CentralLayout::loadConfig() { m_disableBordersForMaximizedWindows = m_layoutGroup.readEntry("disableBordersForMaximizedWindows", false); diff --git a/app/layout/centrallayout.h b/app/layout/centrallayout.h index db1de1074..b8cda0383 100644 --- a/app/layout/centrallayout.h +++ b/app/layout/centrallayout.h @@ -23,6 +23,7 @@ // local #include "genericlayout.h" +#include "../data/layoutdata.h" // Qt #include <QObject> @@ -83,6 +84,7 @@ public: int viewsCount() const override; Layout::Type type() const override; + Data::Layout data() const; void setLastConfigViewFor(Latte::View *view) override; Latte::View *lastConfigViewFor() override; diff --git a/app/templates/templatesmanager.cpp b/app/templates/templatesmanager.cpp index 51f5664ea..28ecb3ccf 100644 --- a/app/templates/templatesmanager.cpp +++ b/app/templates/templatesmanager.cpp @@ -19,6 +19,9 @@ #include "templatesmanager.h" +// local +#include "../layout/centrallayout.h" + // Qt #include <QDir> @@ -46,7 +49,20 @@ void Manager::init() QStringList systemLayoutTemplates = systemTemplatesDir.entryList(filter, QDir::Files | QDir::NoSymLinks); for (int i=0; i<systemLayoutTemplates.count(); ++i) { - qDebug() << "System layout template : " << systemLayoutTemplates[i]; + QString systemTemplatePath = systemTemplatesDir.path() + "/" + systemLayoutTemplates[i]; + if (!m_layoutTemplates.containsId(systemTemplatePath)) { + CentralLayout layouttemplate(this, systemTemplatePath); + + Data::Layout tdata = layouttemplate.data(); + tdata.isTemplate = true; + + if (tdata.name == DEFAULTLAYOUTTEMPLATENAME || tdata.name == EMPTYLAYOUTTEMPLATENAME) { + QByteArray templateNameChars = tdata.name.toUtf8(); + tdata.name = i18n(templateNameChars); + } + + m_layoutTemplates << tdata; + } } } diff --git a/app/templates/templatesmanager.h b/app/templates/templatesmanager.h index 32fe2e644..6e8a12bc1 100644 --- a/app/templates/templatesmanager.h +++ b/app/templates/templatesmanager.h @@ -23,6 +23,7 @@ // local #include "../lattecorona.h" #include "../data/layoutdata.h" +#include "../data/layoutstable.h" // Qt #include <QObject> @@ -53,7 +54,8 @@ private: private: Latte::Corona *m_corona; - QList<Data::Layout> m_layoutTemplates; + + Data::LayoutsTable m_layoutTemplates; };