UI: Replace QMessageBox setButtonText with addButton

master
gxalpha 2022-07-19 18:04:09 +02:00 committed by Ryan Foster
parent 05c6a408e3
commit e3f416f3fc
2 changed files with 42 additions and 36 deletions

View File

@ -2122,16 +2122,15 @@ static int run_program(fstream &logFile, int argc, char *argv[])
QMessageBox::Yes | QMessageBox::Cancel); QMessageBox::Yes | QMessageBox::Cancel);
QMessageBox mb(QMessageBox::Question, QMessageBox mb(QMessageBox::Question,
QTStr("AlreadyRunning.Title"), QTStr("AlreadyRunning.Title"),
QTStr("AlreadyRunning.Text"), buttons, QTStr("AlreadyRunning.Text"));
nullptr); mb.addButton(QTStr("AlreadyRunning.LaunchAnyway"),
mb.setButtonText(QMessageBox::Yes, QMessageBox::YesRole);
QTStr("AlreadyRunning.LaunchAnyway")); QPushButton *cancelButton = mb.addButton(
mb.setButtonText(QMessageBox::Cancel, QTStr("Cancel")); QTStr("Cancel"), QMessageBox::NoRole);
mb.setDefaultButton(QMessageBox::Cancel); mb.setDefaultButton(cancelButton);
QMessageBox::StandardButton button; mb.exec();
button = (QMessageBox::StandardButton)mb.exec(); cancel_launch = mb.clickedButton() == cancelButton;
cancel_launch = button == QMessageBox::Cancel;
} }
if (cancel_launch) if (cancel_launch)

View File

@ -29,6 +29,7 @@
#include <QFileDialog> #include <QFileDialog>
#include <QStandardItemModel> #include <QStandardItemModel>
#include <QLabel> #include <QLabel>
#include <QPushButton>
#if !defined(_WIN32) && !defined(__APPLE__) #if !defined(_WIN32) && !defined(__APPLE__)
#include <obs-nix-platform.h> #include <obs-nix-platform.h>
@ -60,55 +61,61 @@ OBSMessageBox::question(QWidget *parent, const QString &title,
QMessageBox::StandardButtons buttons, QMessageBox::StandardButtons buttons,
QMessageBox::StandardButton defaultButton) QMessageBox::StandardButton defaultButton)
{ {
QMessageBox mb(QMessageBox::Question, title, text, buttons, parent); QMessageBox mb(QMessageBox::Question, title, text,
QMessageBox::NoButton, parent);
mb.setDefaultButton(defaultButton); mb.setDefaultButton(defaultButton);
if (buttons & QMessageBox::Ok)
mb.setButtonText(QMessageBox::Ok, QTStr("OK")); if (buttons & QMessageBox::Ok) {
#define translate_button(x) \ QPushButton *button = mb.addButton(QMessageBox::Ok);
if (buttons & QMessageBox::x) \ button->setText(QTStr("OK"));
mb.setButtonText(QMessageBox::x, QTStr(#x)); }
translate_button(Open); #define add_button(x) \
translate_button(Save); if (buttons & QMessageBox::x) { \
translate_button(Cancel); QPushButton *button = mb.addButton(QMessageBox::x); \
translate_button(Close); button->setText(QTStr(#x)); \
translate_button(Discard); }
translate_button(Apply); add_button(Open);
translate_button(Reset); add_button(Save);
translate_button(Yes); add_button(Cancel);
translate_button(No); add_button(Close);
translate_button(Abort); add_button(Discard);
translate_button(Retry); add_button(Apply);
translate_button(Ignore); add_button(Reset);
#undef translate_button add_button(Yes);
add_button(No);
add_button(Abort);
add_button(Retry);
add_button(Ignore);
#undef add_button
return (QMessageBox::StandardButton)mb.exec(); return (QMessageBox::StandardButton)mb.exec();
} }
void OBSMessageBox::information(QWidget *parent, const QString &title, void OBSMessageBox::information(QWidget *parent, const QString &title,
const QString &text) const QString &text)
{ {
QMessageBox mb(QMessageBox::Information, title, text, QMessageBox::Ok, QMessageBox mb(QMessageBox::Information, title, text,
parent); QMessageBox::NoButton, parent);
mb.setButtonText(QMessageBox::Ok, QTStr("OK")); mb.addButton(QTStr("OK"), QMessageBox::AcceptRole);
mb.exec(); mb.exec();
} }
void OBSMessageBox::warning(QWidget *parent, const QString &title, void OBSMessageBox::warning(QWidget *parent, const QString &title,
const QString &text, bool enableRichText) const QString &text, bool enableRichText)
{ {
QMessageBox mb(QMessageBox::Warning, title, text, QMessageBox::Ok, QMessageBox mb(QMessageBox::Warning, title, text, QMessageBox::NoButton,
parent); parent);
if (enableRichText) if (enableRichText)
mb.setTextFormat(Qt::RichText); mb.setTextFormat(Qt::RichText);
mb.setButtonText(QMessageBox::Ok, QTStr("OK")); mb.addButton(QTStr("OK"), QMessageBox::AcceptRole);
mb.exec(); mb.exec();
} }
void OBSMessageBox::critical(QWidget *parent, const QString &title, void OBSMessageBox::critical(QWidget *parent, const QString &title,
const QString &text) const QString &text)
{ {
QMessageBox mb(QMessageBox::Critical, title, text, QMessageBox::Ok, QMessageBox mb(QMessageBox::Critical, title, text,
parent); QMessageBox::NoButton, parent);
mb.setButtonText(QMessageBox::Ok, QTStr("OK")); mb.addButton(QTStr("OK"), QMessageBox::AcceptRole);
mb.exec(); mb.exec();
} }