/* * SPDX-FileCopyrightText: 2018 Red Hat Inc * * SPDX-License-Identifier: LGPL-2.0-or-later * * SPDX-FileCopyrightText: 2018 Jan Grulich */ #include "remotedesktopdialog.h" #include "remotedesktopdialog_debug.h" #include "utils.h" #include #include #include #include #include RemoteDesktopDialog::RemoteDesktopDialog(const QString &appName, RemoteDesktopPortal::DeviceTypes deviceTypes, bool screenSharingEnabled, ScreenCastPortal::PersistMode persistMode, QObject *parent) : QuickDialog(parent) { const QVariantMap props = { {QStringLiteral("title"), i18nc("Title of the dialog that requests remote input privileges", "Remote control requested")}, {QStringLiteral("description"), buildDescription(appName, deviceTypes, screenSharingEnabled)}, {QStringLiteral("persistenceRequested"), persistMode != ScreenCastPortal::PersistMode::NoPersist} }; create(QStringLiteral("qrc:/RemoteDesktopDialog.qml"), props); } bool RemoteDesktopDialog::allowRestore() const { return m_theDialog->property("allowRestore").toBool(); } QString RemoteDesktopDialog::buildDescription(const QString &appName, RemoteDesktopPortal::DeviceTypes deviceTypes, bool screenSharingEnabled) { const QString applicationName = Utils::applicationName(appName); QString description = applicationName.isEmpty() ? i18nc("Unordered list with privileges granted to an external process", "An application requested access to:\n") : i18nc("Unordered list with privileges granted to an external process, included the app's name", "%1 requested access to remotely control:\n", applicationName); if (screenSharingEnabled) { description += i18nc("Will allow the app to see what's on the outputs, in markdown", " - Screens\n"); } if (deviceTypes != RemoteDesktopPortal::None) { description += i18nc("Will allow the app to send input events, in markdown", " - Input devices\n"); } return description; }