blob: 079040ec2ea4bb04c07cc3e8d9fe4c461b0de49f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# Copyright (C) 2023 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from PySide6.QtCore import QAbstractListModel, Qt, Slot
from PySide6.QtMultimedia import QWindowCapture
class WindowListModel(QAbstractListModel):
def __init__(self, parent=None):
super().__init__(parent)
self._window_list = QWindowCapture.capturableWindows()
def rowCount(self, QModelIndex):
return len(self._window_list)
def data(self, index, role):
if role == Qt.DisplayRole:
window = self._window_list[index.row()]
return window.description()
return None
def window(self, index):
return self._window_list[index.row()]
@Slot()
def populate(self):
self.beginResetModel()
self._window_list = QWindowCapture.capturableWindows()
self.endResetModel()
|