From e3f416f3fc72db49d1ba71b8423454d053a9d6bf Mon Sep 17 00:00:00 2001 From: gxalpha Date: Tue, 19 Jul 2022 18:04:09 +0200 Subject: [PATCH] UI: Replace QMessageBox setButtonText with addButton --- UI/obs-app.cpp | 17 ++++++------- UI/qt-wrappers.cpp | 61 ++++++++++++++++++++++++++-------------------- 2 files changed, 42 insertions(+), 36 deletions(-) diff --git a/UI/obs-app.cpp b/UI/obs-app.cpp index 691a29c4f..d292705cc 100644 --- a/UI/obs-app.cpp +++ b/UI/obs-app.cpp @@ -2122,16 +2122,15 @@ static int run_program(fstream &logFile, int argc, char *argv[]) QMessageBox::Yes | QMessageBox::Cancel); QMessageBox mb(QMessageBox::Question, QTStr("AlreadyRunning.Title"), - QTStr("AlreadyRunning.Text"), buttons, - nullptr); - mb.setButtonText(QMessageBox::Yes, - QTStr("AlreadyRunning.LaunchAnyway")); - mb.setButtonText(QMessageBox::Cancel, QTStr("Cancel")); - mb.setDefaultButton(QMessageBox::Cancel); + QTStr("AlreadyRunning.Text")); + mb.addButton(QTStr("AlreadyRunning.LaunchAnyway"), + QMessageBox::YesRole); + QPushButton *cancelButton = mb.addButton( + QTStr("Cancel"), QMessageBox::NoRole); + mb.setDefaultButton(cancelButton); - QMessageBox::StandardButton button; - button = (QMessageBox::StandardButton)mb.exec(); - cancel_launch = button == QMessageBox::Cancel; + mb.exec(); + cancel_launch = mb.clickedButton() == cancelButton; } if (cancel_launch) diff --git a/UI/qt-wrappers.cpp b/UI/qt-wrappers.cpp index 6e1f07e85..d75178c6a 100644 --- a/UI/qt-wrappers.cpp +++ b/UI/qt-wrappers.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #if !defined(_WIN32) && !defined(__APPLE__) #include @@ -60,55 +61,61 @@ OBSMessageBox::question(QWidget *parent, const QString &title, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton) { - QMessageBox mb(QMessageBox::Question, title, text, buttons, parent); + QMessageBox mb(QMessageBox::Question, title, text, + QMessageBox::NoButton, parent); mb.setDefaultButton(defaultButton); - if (buttons & QMessageBox::Ok) - mb.setButtonText(QMessageBox::Ok, QTStr("OK")); -#define translate_button(x) \ - if (buttons & QMessageBox::x) \ - mb.setButtonText(QMessageBox::x, QTStr(#x)); - translate_button(Open); - translate_button(Save); - translate_button(Cancel); - translate_button(Close); - translate_button(Discard); - translate_button(Apply); - translate_button(Reset); - translate_button(Yes); - translate_button(No); - translate_button(Abort); - translate_button(Retry); - translate_button(Ignore); -#undef translate_button + + if (buttons & QMessageBox::Ok) { + QPushButton *button = mb.addButton(QMessageBox::Ok); + button->setText(QTStr("OK")); + } +#define add_button(x) \ + if (buttons & QMessageBox::x) { \ + QPushButton *button = mb.addButton(QMessageBox::x); \ + button->setText(QTStr(#x)); \ + } + add_button(Open); + add_button(Save); + add_button(Cancel); + add_button(Close); + add_button(Discard); + add_button(Apply); + add_button(Reset); + add_button(Yes); + add_button(No); + add_button(Abort); + add_button(Retry); + add_button(Ignore); +#undef add_button return (QMessageBox::StandardButton)mb.exec(); } void OBSMessageBox::information(QWidget *parent, const QString &title, const QString &text) { - QMessageBox mb(QMessageBox::Information, title, text, QMessageBox::Ok, - parent); - mb.setButtonText(QMessageBox::Ok, QTStr("OK")); + QMessageBox mb(QMessageBox::Information, title, text, + QMessageBox::NoButton, parent); + mb.addButton(QTStr("OK"), QMessageBox::AcceptRole); mb.exec(); } void OBSMessageBox::warning(QWidget *parent, const QString &title, const QString &text, bool enableRichText) { - QMessageBox mb(QMessageBox::Warning, title, text, QMessageBox::Ok, + QMessageBox mb(QMessageBox::Warning, title, text, QMessageBox::NoButton, parent); if (enableRichText) mb.setTextFormat(Qt::RichText); - mb.setButtonText(QMessageBox::Ok, QTStr("OK")); + mb.addButton(QTStr("OK"), QMessageBox::AcceptRole); mb.exec(); } void OBSMessageBox::critical(QWidget *parent, const QString &title, const QString &text) { - QMessageBox mb(QMessageBox::Critical, title, text, QMessageBox::Ok, - parent); - mb.setButtonText(QMessageBox::Ok, QTStr("OK")); + QMessageBox mb(QMessageBox::Critical, title, text, + QMessageBox::NoButton, parent); + mb.addButton(QTStr("OK"), QMessageBox::AcceptRole); mb.exec(); }