/* SPDX-FileCopyrightText: 2021 Michail Vourlakos SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef CLONEDVIEW_H #define CLONEDVIEW_H // local #include #include "originalview.h" #include "indicator/indicator.h" #include "view.h" namespace Latte { class ClonedView : public View { Q_OBJECT public: static const int ERRORAPPLETID = -999; ClonedView(Plasma::Corona *corona, Latte::OriginalView *originalView, QScreen *targetScreen = nullptr, bool byPassX11WM = false); ~ClonedView(); bool isOriginal() const override; bool isCloned() const override; bool isSingle() const override; bool isPreferredForShortcuts() const override; int groupId() const override; Latte::Types::ScreensGroup screensGroup() const override; ViewPart::Indicator *indicator() const override; Latte::Data::View data() const override; protected: void showConfigurationInterface(Plasma::Applet *applet) override; private slots: void initSync(); void onOriginalAppletConfigPropertyChanged(const int &id, const QString &key, const QVariant &value); void onOriginalAppletInScheduledDestructionChanged(const int &id, const bool &enabled); void onOriginalAppletRemoved(const int &id); void onOriginalAppletsOrderChanged(); void onOriginalAppletsInLockedZoomChanged(const QList &originalapplets); void onOriginalAppletsDisabledColoringChanged(const QList &originalapplets); void updateContainmentConfigProperty(const QString &key, const QVariant &value); void updateOriginalAppletConfigProperty(const int &clonedid, const QString &key, const QVariant &value); void updateAppletIdsHash(); private: bool isTranslatableToClonesOrder(const QList &originalOrder); bool hasOriginalAppletId(const int &clonedid); int originalAppletId(const int &clonedid); QList translateToClonesOrder(const QList &originalIds); private: static QStringList CONTAINMENTMANUALSYNCEDPROPERTIES; QPointer m_originalView; QHash m_currentAppletIds; }; } #endif