File indexing completed on 2024-04-28 16:53:01

0001 /*
0002  *  SPDX-FileCopyrightText: 2013 Giorgos Tsiapaliokas <terietor@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef VIEW_H
0008 #define VIEW_H
0009 
0010 #include "privateheaders/containmentview.h"
0011 
0012 class ViewerCorona;
0013 
0014 class View : public PlasmaQuick::ContainmentView
0015 {
0016     Q_OBJECT
0017     Q_PROPERTY(bool konsoleVisible READ konsoleVisible CONSTANT);
0018 
0019 public:
0020     View(ViewerCorona *corona, bool konsoleVisible, QWindow *parent = nullptr);
0021     ~View() override;
0022 
0023     void addApplet(const QString &applet);
0024     void addContainment(const QString &containment);
0025     void addFormFactor(const QString &formFactor = QStringLiteral("planar"));
0026     void addLocation(const QString &location = QStringLiteral("floating"));
0027     void emitExternalData(const QString &data);
0028     bool konsoleVisible();
0029 
0030     Q_INVOKABLE void changeFormFactor(int formFactor);
0031     Q_INVOKABLE void changeLocation(int location);
0032     Q_INVOKABLE void takeScreenShot();
0033 
0034     static ViewerCorona *createCorona();
0035 
0036 protected:
0037     void resizeEvent(QResizeEvent *event) override;
0038     QString pluginFromPath(const QString &path) const;
0039 
0040 private:
0041     QString m_lastAppletName;
0042     bool m_konsoleVisible;
0043 };
0044 
0045 #endif // VIEW_H