File indexing completed on 2024-06-16 05:08:59
0001 /* 0002 SPDX-FileCopyrightText: 2020 Alexander Lohnau <alexander.lohnau@gmx.de> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include <QDialog> 0008 #include <QDialogButtonBox> 0009 #include <QIcon> 0010 #include <QLabel> 0011 #include <QPushButton> 0012 #include <QVBoxLayout> 0013 0014 #include <KIO/OpenFileManagerWindowJob> 0015 #include <KLocalizedString> 0016 0017 class PackageKitConfirmationDialog : public QDialog 0018 { 0019 public: 0020 PackageKitConfirmationDialog(const QString &packagePath, QWidget *parent = nullptr) 0021 : QDialog(parent) 0022 { 0023 setWindowTitle(i18nc("@title:window", "Confirm Installation")); 0024 setWindowIcon(QIcon::fromTheme(QStringLiteral("dialog-information"))); 0025 QVBoxLayout *layout = new QVBoxLayout(this); 0026 QString msg = xi18nc("@info", "You are about to install a binary package. You should only install these from a trusted author/packager."); 0027 QLabel *msgLabel = new QLabel(msg, this); 0028 msgLabel->setWordWrap(true); 0029 layout->addWidget(msgLabel); 0030 0031 auto *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); 0032 buttonBox->button(QDialogButtonBox::Ok)->setIcon(QIcon::fromTheme("emblem-warning")); 0033 buttonBox->button(QDialogButtonBox::Ok)->setText(i18nc("@action:button", "Accept Risk And Continue")); 0034 connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); 0035 connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); 0036 0037 QPushButton *highlightFileButton = new QPushButton(QIcon::fromTheme("document-open-folder"), i18nc("@action:button", "View File"), this); 0038 connect(highlightFileButton, &QPushButton::clicked, this, [packagePath]() { 0039 KIO::highlightInFileManager({QUrl::fromLocalFile(packagePath)}); 0040 }); 0041 buttonBox->addButton(highlightFileButton, QDialogButtonBox::HelpRole); 0042 buttonBox->button(QDialogButtonBox::Cancel)->setFocus(); 0043 layout->addWidget(buttonBox); 0044 } 0045 };