diff --git a/src/kmessagebox.h b/src/kmessagebox.h --- a/src/kmessagebox.h +++ b/src/kmessagebox.h @@ -323,6 +323,20 @@ const QString &dontAskAgainName = QString(), Options options = Notify); +/** + * Display a "warning" dialog with a collapsible "Details" section. + * + * @since 5.61 + */ +KWIDGETSADDONS_EXPORT ButtonCode warningContinueCancelDetailed(QWidget *parent, + const QString &text, + const QString &caption = QString(), + const KGuiItem &buttonContinue = KStandardGuiItem::cont(), + const KGuiItem &buttonCancel = KStandardGuiItem::cancel(), + const QString &dontAskAgainName = QString(), + Options options = Notify, + const QString &details = QString()); + /** * Display a "warning" dialog with a listbox to show information to the user. * diff --git a/src/kmessagebox.cpp b/src/kmessagebox.cpp --- a/src/kmessagebox.cpp +++ b/src/kmessagebox.cpp @@ -649,7 +649,8 @@ const KGuiItem &buttonContinue_, const KGuiItem &buttonCancel_, const QString &dontAskAgainName, - Options options) + Options options, + const QString &details) { if (!shouldBeShownContinue(dontAskAgainName)) { delete dialog; @@ -673,7 +674,7 @@ bool checkboxResult = false; const int result = createKMessageBox(dialog, buttonBox, QMessageBox::Warning, text, strlist, dontAskAgainName.isEmpty() ? QString() : QApplication::translate("KMessageBox", "Do not ask again"), - &checkboxResult, options); + &checkboxResult, options, details); if (result != QDialogButtonBox::Yes) { return Cancel; @@ -693,7 +694,21 @@ Options options) { return warningContinueCancelListInternal(new QDialog(parent), text, strlist, caption, buttonContinue, buttonCancel, - dontAskAgainName, options); + dontAskAgainName, options, QString()); +} + + +ButtonCode warningContinueCancelDetailed(QWidget *parent, + const QString &text, + const QString &caption, + const KGuiItem &buttonContinue, + const KGuiItem &buttonCancel, + const QString &dontAskAgainName, + Options options, + const QString &details) +{ + return warningContinueCancelListInternal(new QDialog(parent), text, QStringList(), caption, + buttonContinue, buttonCancel, dontAskAgainName, options, details); } ButtonCode warningYesNoCancel(QWidget *parent, const QString &text, @@ -941,7 +956,7 @@ buttonYes, buttonNo, dontShow, options); case WarningContinueCancel: return warningContinueCancelListInternal(dialog, text, QStringList(), caption, - KGuiItem(buttonYes.text()), buttonCancel, dontShow, options); + KGuiItem(buttonYes.text()), buttonCancel, dontShow, options, QString()); case WarningYesNoCancel: return warningYesNoCancelListInternal(dialog, text, QStringList(), caption, buttonYes, buttonNo, buttonCancel, dontShow, options); @@ -1049,7 +1064,7 @@ Options options) { return warningContinueCancelListInternal(createWIdDialog(parent_id), text, strlist, caption, buttonContinue, buttonCancel, - dontAskAgainName, options); + dontAskAgainName, options, QString()); } ButtonCode warningYesNoCancelWId(WId parent_id, const QString &text,