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 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)

View File

@ -29,6 +29,7 @@
#include <QFileDialog>
#include <QStandardItemModel>
#include <QLabel>
#include <QPushButton>
#if !defined(_WIN32) && !defined(__APPLE__)
#include <obs-nix-platform.h>
@ -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();
}