File indexing completed on 2024-04-28 16:55:47
0001 /* 0002 * SPDX-FileCopyrightText: 2018 Red Hat Inc 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 * 0006 * SPDX-FileCopyrightText: 2018 Jan Grulich <jgrulich@redhat.com> 0007 */ 0008 0009 #include "screencastwidget.h" 0010 #include "waylandintegration.h" 0011 0012 #include <KLocalizedString> 0013 0014 ScreenCastWidget::ScreenCastWidget(QWidget *parent) 0015 : QListWidget(parent) 0016 { 0017 QMapIterator<quint32, WaylandIntegration::WaylandOutput> it(WaylandIntegration::screens()); 0018 while (it.hasNext()) { 0019 it.next(); 0020 QListWidgetItem *widgetItem = new QListWidgetItem(this); 0021 widgetItem->setData(Qt::UserRole, it.key()); 0022 if (it.value().outputType() == WaylandIntegration::WaylandOutput::Laptop) { 0023 widgetItem->setIcon(QIcon::fromTheme(QStringLiteral("computer-laptop"))); 0024 widgetItem->setText(i18n("Laptop screen\nModel: %1", it.value().model())); 0025 } else if (it.value().outputType() == WaylandIntegration::WaylandOutput::Monitor) { 0026 widgetItem->setIcon(QIcon::fromTheme(QStringLiteral("video-display"))); 0027 widgetItem->setText(i18n("Manufacturer: %1\nModel: %2", it.value().manufacturer(), it.value().model())); 0028 } else { 0029 widgetItem->setIcon(QIcon::fromTheme(QStringLiteral("video-television"))); 0030 widgetItem->setText(i18n("Manufacturer: %1\nModel: %2", it.value().manufacturer(), it.value().model())); 0031 } 0032 } 0033 } 0034 0035 ScreenCastWidget::~ScreenCastWidget() 0036 { 0037 } 0038 0039 QList<quint32> ScreenCastWidget::selectedScreens() const 0040 { 0041 QList<quint32> selectedScreens; 0042 0043 const auto selectedItems = this->selectedItems(); 0044 for (QListWidgetItem *item : selectedItems) { 0045 selectedScreens << item->data(Qt::UserRole).toUInt(); 0046 } 0047 0048 return selectedScreens; 0049 }