diff --git a/app/layout/abstractlayout.cpp b/app/layout/abstractlayout.cpp index 070bce545..07f4719c0 100644 --- a/app/layout/abstractlayout.cpp +++ b/app/layout/abstractlayout.cpp @@ -254,6 +254,11 @@ void AbstractLayout::setLaunchers(QStringList launcherList) emit launchersChanged(); } +Type AbstractLayout::type() const +{ + return Type::Abstract; +} + QList combinedFreeEdges(const QList &edges1, const QList &edges2) { QList validFreeEdges; diff --git a/app/layout/abstractlayout.h b/app/layout/abstractlayout.h index 1dd07b3ee..c20016e57 100644 --- a/app/layout/abstractlayout.h +++ b/app/layout/abstractlayout.h @@ -33,6 +33,21 @@ namespace Plasma { class Types; } +namespace Latte { +namespace Layout { +Q_NAMESPACE + +enum Type { + Abstract = 0, + Generic, + Active, + Shared +}; +Q_ENUM_NS(Type); + +} +} + namespace Latte { namespace Layout { @@ -80,6 +95,8 @@ public: QStringList launchers() const; void setLaunchers(QStringList launcherList); + virtual Type type() const; + // STATIC static QString layoutName(const QString &fileName); static QList combinedFreeEdges(const QList &edges1, diff --git a/app/layout/activelayout.cpp b/app/layout/activelayout.cpp index c775476c7..ebc42067d 100644 --- a/app/layout/activelayout.cpp +++ b/app/layout/activelayout.cpp @@ -170,6 +170,11 @@ void ActiveLayout::setShowInMenu(bool show) emit showInMenuChanged(); } +Layout::Type ActiveLayout::type() const +{ + return Layout::Type::Active; +} + QStringList ActiveLayout::activities() const { return m_activities; diff --git a/app/layout/activelayout.h b/app/layout/activelayout.h index 6f4a02392..0705ab686 100644 --- a/app/layout/activelayout.h +++ b/app/layout/activelayout.h @@ -75,6 +75,8 @@ public: int viewsCount(QScreen *screen) const override; int viewsCount() const override; + Layout::Type type() const override; + //! Available edges for specific view in that screen QList availableEdgesForView(QScreen *scr, Latte::View *forView) const override; //! All free edges in that screen diff --git a/app/layout/genericlayout.cpp b/app/layout/genericlayout.cpp index dce94b811..9df05891f 100644 --- a/app/layout/genericlayout.cpp +++ b/app/layout/genericlayout.cpp @@ -55,6 +55,11 @@ GenericLayout::~GenericLayout() { } +Type GenericLayout::type() const +{ + return Type::Generic; +} + void GenericLayout::unloadContainments() { if (!m_corona) { diff --git a/app/layout/genericlayout.h b/app/layout/genericlayout.h index c115c1234..713c3bebc 100644 --- a/app/layout/genericlayout.h +++ b/app/layout/genericlayout.h @@ -62,7 +62,7 @@ class GenericLayout : public AbstractLayout Q_OBJECT Q_PROPERTY(int viewsCount READ viewsCount NOTIFY viewsCountChanged) -public: +public: GenericLayout(QObject *parent, QString layoutFile, QString assignedName = QString()); ~GenericLayout() override; @@ -79,6 +79,8 @@ public: virtual int viewsCount(QScreen *screen) const; virtual int viewsCount() const; + Type type() const override; + Latte::Corona *corona(); QStringList unloadedContainmentsIds(); diff --git a/app/layout/sharedlayout.cpp b/app/layout/sharedlayout.cpp index b647a6cb8..7df0ef384 100644 --- a/app/layout/sharedlayout.cpp +++ b/app/layout/sharedlayout.cpp @@ -55,6 +55,12 @@ bool SharedLayout::isCurrent() const return false; } +Layout::Type SharedLayout::type() const +{ + return Layout::Type::Shared; +} + + const QStringList SharedLayout::appliedActivities() { if (!m_corona) { diff --git a/app/layout/sharedlayout.h b/app/layout/sharedlayout.h index e48cdb12e..c61bc2df2 100644 --- a/app/layout/sharedlayout.h +++ b/app/layout/sharedlayout.h @@ -56,6 +56,8 @@ public: int viewsCount(QScreen *screen) const override; int viewsCount() const override; + Layout::Type type() const override; + //! Available edges for specific view in that screen QList availableEdgesForView(QScreen *scr, Latte::View *forView) const override; //! All free edges in that screen