File indexing completed on 2024-05-05 04:34:54
0001 /* SPDX-FileCopyrightText: 2022 Noah Davis <noahadvs@gmail.com> 0002 * SPDX-License-Identifier: LGPL-2.0-or-later 0003 */ 0004 0005 #include "RecordingModeModel.h" 0006 0007 #include <KGlobalAccel> 0008 #include <KLocalizedString> 0009 0010 #include <QApplication> 0011 #include <QDBusConnection> 0012 #include <QDBusMessage> 0013 #include <QDBusPendingCall> 0014 #include <QDBusPendingReply> 0015 #include <QScreen> 0016 #include <qnamespace.h> 0017 0018 using namespace Qt::StringLiterals; 0019 0020 RecordingModeModel::RecordingModeModel(VideoPlatform::RecordingModes modes, QObject *parent) 0021 : QAbstractListModel(parent) 0022 , m_modes(modes) 0023 { 0024 m_roleNames[RecordingModeRole] = "recordingMode"_ba; 0025 m_roleNames[Qt::DisplayRole] = "display"_ba; 0026 0027 if (modes & VideoPlatform::Region) { 0028 m_data.append({VideoPlatform::Region, i18nc("@item recording mode", "Rectangular Region")}); 0029 } 0030 if (modes & VideoPlatform::Region) { 0031 m_data.append({VideoPlatform::Screen, i18nc("@item recording mode", "Full Screen")}); 0032 } 0033 if (modes & VideoPlatform::Window) { 0034 m_data.append({VideoPlatform::Window, i18nc("@item recording mode", "Window")}); 0035 } 0036 } 0037 0038 QHash<int, QByteArray> RecordingModeModel::roleNames() const 0039 { 0040 return m_roleNames; 0041 } 0042 0043 QVariant RecordingModeModel::data(const QModelIndex &index, int role) const 0044 { 0045 int row = index.row(); 0046 QVariant ret; 0047 if (!checkIndex(index, CheckIndexOption::IndexIsValid)) { 0048 return ret; 0049 } 0050 if (role == RecordingModeRole) { 0051 ret = m_data.at(row).mode; 0052 } else if (role == Qt::DisplayRole) { 0053 ret = m_data.at(row).label; 0054 } 0055 return ret; 0056 } 0057 0058 int RecordingModeModel::rowCount(const QModelIndex &parent) const 0059 { 0060 Q_UNUSED(parent) 0061 return m_data.size(); 0062 } 0063 0064 int RecordingModeModel::indexOfRecordingMode(VideoPlatform::RecordingMode mode) const 0065 { 0066 int finalIndex = -1; 0067 for (int i = 0; i < m_data.length(); ++i) { 0068 if (m_data[i].mode == mode) { 0069 finalIndex = i; 0070 break; 0071 } 0072 } 0073 return finalIndex; 0074 } 0075 0076 #include "moc_RecordingModeModel.cpp"