Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
PhosphorShell::ToplevelListModel Class Reference

QAbstractListModel view of the live toplevel set. More...

#include <phosphor-shell/include/PhosphorShell/Toplevels.h>

Inheritance diagram for PhosphorShell::ToplevelListModel:
[legend]

Public Types

enum  Role { ToplevelRole = Qt::UserRole + 1 }
 

Public Member Functions

 ToplevelListModel (PhosphorWayland::ForeignToplevelManager *manager, QObject *parent=nullptr)
 
 ~ToplevelListModel () override
 
int rowCount (const QModelIndex &parent={}) const override
 
QVariant data (const QModelIndex &index, int role) const override
 
QHash< int, QByteArray > roleNames () const override
 

Detailed Description

QAbstractListModel view of the live toplevel set.

Translates ForeignToplevelManager's toplevelAdded / toplevelRemoved signals into proper beginInsertRows / beginRemoveRows model events, so a Repeater { model: Toplevels.model } patches one delegate in / out per change instead of rebuilding the whole list (which is what happens when model: is bound to a QList<...> value property — every change re-evaluates the binding and resets every delegate).

Roles:

  • toplevel — the ForeignToplevel* for the row.

Usage from QML:

Repeater {
    model: Toplevels.model
    delegate: Rectangle {
        required property var toplevel
        Text { text: toplevel.title }
    }
}

Member Enumeration Documentation

◆ Role

Enumerator
ToplevelRole 

Constructor & Destructor Documentation

◆ ToplevelListModel()

PhosphorShell::ToplevelListModel::ToplevelListModel ( PhosphorWayland::ForeignToplevelManager manager,
QObject *  parent = nullptr 
)
explicit

◆ ~ToplevelListModel()

PhosphorShell::ToplevelListModel::~ToplevelListModel ( )
override

Member Function Documentation

◆ data()

QVariant PhosphorShell::ToplevelListModel::data ( const QModelIndex &  index,
int  role 
) const
override

◆ roleNames()

QHash< int, QByteArray > PhosphorShell::ToplevelListModel::roleNames ( ) const
override

◆ rowCount()

int PhosphorShell::ToplevelListModel::rowCount ( const QModelIndex &  parent = {}) const
override

The documentation for this class was generated from the following file: