8#include "virtualdesktops.h"
14 : QAbstractListModel(parent)
19 this, &VirtualDesktopModel::handleVirtualDesktopAdded);
21 this, &VirtualDesktopModel::handleVirtualDesktopRemoved);
23 m_virtualDesktops = manager->
desktops();
28 return VirtualDesktopManager::self()->createVirtualDesktop(position, name);
33 if (position < m_virtualDesktops.count()) {
34 VirtualDesktopManager::self()->removeVirtualDesktop(m_virtualDesktops[position]);
38void VirtualDesktopModel::handleVirtualDesktopAdded(
VirtualDesktop *desktop)
41 beginInsertRows(QModelIndex(), position, position);
42 m_virtualDesktops.insert(position, desktop);
46void VirtualDesktopModel::handleVirtualDesktopRemoved(VirtualDesktop *desktop)
48 const int index = m_virtualDesktops.indexOf(desktop);
49 Q_ASSERT(index != -1);
51 beginRemoveRows(QModelIndex(), index, index);
52 m_virtualDesktops.removeAt(index);
58 QHash<int, QByteArray>
roleNames = QAbstractListModel::roleNames();
63VirtualDesktop *VirtualDesktopModel::desktopFromIndex(
const QModelIndex &index)
const
65 if (!index.isValid() || index.row() < 0 || index.row() >= m_virtualDesktops.count()) {
68 return m_virtualDesktops[index.row()];
80 return QVariant::fromValue(desktop);
88 return parent.isValid() ? 0 : m_virtualDesktops.count();
93#include "moc_virtualdesktopmodel.cpp"
Manages the number of available virtual desktops, the layout of those and which virtual desktop is th...
void desktopAdded(KWin::VirtualDesktop *desktop)
QList< VirtualDesktop * > desktops() const
void desktopRemoved(KWin::VirtualDesktop *desktop)
KWin::VirtualDesktop * create(uint position, const QString &name=QString())
int rowCount(const QModelIndex &parent=QModelIndex()) const override
VirtualDesktopModel(QObject *parent=nullptr)
void remove(uint position)
QHash< int, QByteArray > roleNames() const override
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override