3
0
mirror of https://github.com/Qortal/Brooklyn.git synced 2025-02-12 10:15:54 +00:00
Brooklyn/plasma/kcms/runners/plugininstaller/PackageKitConfirmationDialog.h
Scare Crowe d2ebfd0519 QortalOS Titan 5.60.12
Screw the description like that inbred T3Q
2022-03-05 21:17:59 +05:00

46 lines
1.9 KiB
C++

/*
SPDX-FileCopyrightText: 2020 Alexander Lohnau <alexander.lohnau@gmx.de>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#include <QDialog>
#include <QDialogButtonBox>
#include <QIcon>
#include <QLabel>
#include <QPushButton>
#include <QVBoxLayout>
#include <KIO/OpenFileManagerWindowJob>
#include <KLocalizedString>
class PackageKitConfirmationDialog : public QDialog
{
public:
PackageKitConfirmationDialog(const QString &packagePath, QWidget *parent = nullptr)
: QDialog(parent)
{
setWindowTitle(i18nc("@title:window", "Confirm Installation"));
setWindowIcon(QIcon::fromTheme(QStringLiteral("dialog-information")));
QVBoxLayout *layout = new QVBoxLayout(this);
QString msg = xi18nc("@info", "You are about to install a binary package. You should only install these from a trusted author/packager.");
QLabel *msgLabel = new QLabel(msg, this);
msgLabel->setWordWrap(true);
layout->addWidget(msgLabel);
auto *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
buttonBox->button(QDialogButtonBox::Ok)->setIcon(QIcon::fromTheme("emblem-warning"));
buttonBox->button(QDialogButtonBox::Ok)->setText(i18nc("@action:button", "Accept Risk And Continue"));
connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
QPushButton *highlightFileButton = new QPushButton(QIcon::fromTheme("document-open-folder"), i18nc("@action:button", "View File"), this);
connect(highlightFileButton, &QPushButton::clicked, this, [packagePath]() {
KIO::highlightInFileManager({QUrl::fromLocalFile(packagePath)});
});
buttonBox->addButton(highlightFileButton, QDialogButtonBox::HelpRole);
buttonBox->button(QDialogButtonBox::Cancel)->setFocus();
layout->addWidget(buttonBox);
}
};