improve templates signaling

work/spdx
Michail Vourlakos 4 years ago
parent 57fc8ec375
commit 440b4b5736

@ -150,7 +150,7 @@ void TabLayouts::initLayoutMenu()
m_newLayoutAction->setMenu(m_layoutTemplatesSubMenu); m_newLayoutAction->setMenu(m_layoutTemplatesSubMenu);
m_ui->newButton->setMenu(m_layoutTemplatesSubMenu); m_ui->newButton->setMenu(m_layoutTemplatesSubMenu);
connect(m_corona->templatesManager(), &Latte::Templates::Manager::templatesChanged, this, &TabLayouts::initLayoutTemplatesSubMenu); connect(m_corona->templatesManager(), &Latte::Templates::Manager::layoutTemplatesChanged, this, &TabLayouts::initLayoutTemplatesSubMenu);
m_copyLayoutAction = m_layoutMenu->addAction(i18nc("copy layout", "&Copy")); m_copyLayoutAction = m_layoutMenu->addAction(i18nc("copy layout", "&Copy"));
m_copyLayoutAction->setToolTip(i18n("Copy selected layout")); m_copyLayoutAction->setToolTip(i18n("Copy selected layout"));

@ -41,7 +41,8 @@ Manager::Manager(Latte::Corona *corona)
m_corona(corona) m_corona(corona)
{ {
KDirWatch::self()->addDir(Latte::configPath() + "/latte/templates", KDirWatch::WatchFiles); KDirWatch::self()->addDir(Latte::configPath() + "/latte/templates", KDirWatch::WatchFiles);
connect(KDirWatch::self(), &KDirWatch::deleted, this, &Manager::onCustomTemplateDeleted); connect(KDirWatch::self(), &KDirWatch::created, this, &Manager::onCustomTemplatesCountChanged);
connect(KDirWatch::self(), &KDirWatch::deleted, this, &Manager::onCustomTemplatesCountChanged);
} }
Manager::~Manager() Manager::~Manager()
@ -50,22 +51,30 @@ Manager::~Manager()
void Manager::init() void Manager::init()
{ {
m_layoutTemplates.clear();
m_viewTemplates.clear();
//! Local Templates //! Local Templates
QDir localTemplatesDir(Latte::configPath() + "/latte/templates"); QDir localTemplatesDir(Latte::configPath() + "/latte/templates");
if (!localTemplatesDir.exists()) { if (!localTemplatesDir.exists()) {
QDir(Latte::configPath() + "/latte").mkdir("templates"); QDir(Latte::configPath() + "/latte").mkdir("templates");
} }
initLayoutTemplates();
initViewTemplates();
}
void Manager::initLayoutTemplates()
{
m_layoutTemplates.clear();
initLayoutTemplates(m_corona->kPackage().filePath("templates")); initLayoutTemplates(m_corona->kPackage().filePath("templates"));
initLayoutTemplates(Latte::configPath() + "/latte/templates"); initLayoutTemplates(Latte::configPath() + "/latte/templates");
emit layoutTemplatesChanged();
}
void Manager::initViewTemplates()
{
m_viewTemplates.clear();
initViewTemplates(m_corona->kPackage().filePath("templates")); initViewTemplates(m_corona->kPackage().filePath("templates"));
initViewTemplates(Latte::configPath() + "/latte/templates"); initViewTemplates(Latte::configPath() + "/latte/templates");
emit viewTemplatesChanged();
emit templatesChanged();
} }
void Manager::initLayoutTemplates(const QString &path) void Manager::initLayoutTemplates(const QString &path)
@ -172,20 +181,17 @@ QString Manager::newLayout(QString layoutName, QString layoutTemplate)
bool Manager::exportTemplate(const QString &originFile, const QString &destinationFile, const Data::AppletsTable &approvedApplets) bool Manager::exportTemplate(const QString &originFile, const QString &destinationFile, const Data::AppletsTable &approvedApplets)
{ {
bool result = Latte::Layouts::Storage::self()->exportTemplate(originFile, destinationFile, approvedApplets); return Latte::Layouts::Storage::self()->exportTemplate(originFile, destinationFile, approvedApplets);
if (result) {
init();
} }
return result; void Manager::onCustomTemplatesCountChanged(const QString &file)
}
void Manager::onCustomTemplateDeleted(const QString &file)
{ {
qDebug() << " file removed ::: " << file;
if (file.startsWith(Latte::configPath() + "/latte/templates")) { if (file.startsWith(Latte::configPath() + "/latte/templates")) {
init(); if (file.endsWith(".layout.latte")) {
initLayoutTemplates();
} else if (file.endsWith(".view.latte")) {
initViewTemplates();
}
} }
} }

@ -74,12 +74,16 @@ public:
signals: signals:
void newLayoutAdded(const QString &path); void newLayoutAdded(const QString &path);
void templatesChanged(); void layoutTemplatesChanged();
void viewTemplatesChanged();
private slots: private slots:
void onCustomTemplateDeleted(const QString &file); void onCustomTemplatesCountChanged(const QString &file);
private: private:
void initLayoutTemplates();
void initViewTemplates();
void initLayoutTemplates(const QString &path); void initLayoutTemplates(const QString &path);
void initViewTemplates(const QString &path); void initViewTemplates(const QString &path);

Loading…
Cancel
Save