1 /*
2     SPDX-FileCopyrightText: 2003, 2004 Jean-Baptiste Mardelle <bj@altern.org>
3     SPDX-FileCopyrightText: 2007, 2010, 2012, 2014, 2016 Rolf Eike Beer <kde@opensource.sf-tec.de>
4     SPDX-FileCopyrightText: 2016 Andrius Štikoans <andrius@stikonas.eu>
5     SPDX-License-Identifier: GPL-2.0-or-later
6 */
7 
8 #include "detailedconsole.h"
9 
10 #include <KLocalizedString>
11 #include <KMessageBox>
12 #include <QApplication>
13 #include <QDialogButtonBox>
14 #include <QPushButton>
15 
KgpgDetailedInfo(QWidget * parent,const QString & boxLabel,const QString & errormessage,const QStringList & keysList,const QString & caption)16 KgpgDetailedInfo::KgpgDetailedInfo(QWidget *parent, const QString &boxLabel, const QString &errormessage,
17 		const QStringList &keysList, const QString &caption)
18 	: QDialog(parent)
19 {
20 	if (!caption.isEmpty())
21 		setWindowTitle(caption);
22 	else
23 		setWindowTitle(i18n("Info"));
24 
25 	// FIXME: hopefully KMessageBox will provide a helper for this one day...
26 	// code copied from KMessageBox for now
27 	QPushButton *detailsButton = new QPushButton;
28 	detailsButton->setObjectName(QStringLiteral("detailsButton"));
29 	detailsButton->setText(QApplication::translate("KMessageBox", "&Details") + QStringLiteral(" >>"));
30 	detailsButton->setIcon(QIcon::fromTheme(QStringLiteral("help-about")));
31 
32 	QDialogButtonBox *buttonBox = new QDialogButtonBox(this);
33 	buttonBox->addButton(detailsButton, QDialogButtonBox::HelpRole);
34 	buttonBox->addButton(QDialogButtonBox::Ok);
35 	buttonBox->button(QDialogButtonBox::Ok)->setFocus();
36 
37 	QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok);
38 	okButton->setDefault(true);
39 	okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
40 	connect(buttonBox, &QDialogButtonBox::accepted, this, &KgpgDetailedInfo::accept);
41 	connect(buttonBox, &QDialogButtonBox::rejected, this, &KgpgDetailedInfo::reject);
42 	okButton->setDefault(true);
43 	setModal(true);
44 	KMessageBox::createKMessageBox(this, buttonBox, QMessageBox::Information, boxLabel, keysList, QString(), nullptr,
45 			KMessageBox::Options(), errormessage);
46 }
47