/* * SPDX-FileCopyrightText: 2021 Aleix Pol * SPDX-FileCopyrightText: 2021 Devin Lin * * SPDX-License-Identifier: GPL-2.0-or-later */ #pragma once #include #include #include #include #include #include #include #include class DisplaysModel : public QAbstractListModel { public: enum Roles { Model = Qt::DisplayRole, Geometry = Qt::UserRole, Position, Output, }; DisplaysModel(QObject *parent = nullptr); void createOutput(wl_output *output); Q_INVOKABLE void sendWindowToOutput(const QString &uuid, KWayland::Client::Output *output); QHash roleNames() const override; int rowCount(const QModelIndex &parent) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; private: KWayland::Client::PlasmaWindowManagement *m_windowManagement = nullptr; QVector m_outputs; };