mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-08-24 10:14:13 -05:00
UI: Don't show native popup for YouTube auth message box
The native popup has the problem that it doesn't work for links, leaving us with an unclickable text where a link should be. Qt 6.6 has an option to disable the native dialog, so let's add this to make the link clickable again. Co-authored-by: derrod <dennis@obsproject.com>
This commit is contained in:
committed by
Lain
co-authored by
derrod
parent
e5472c775c
commit
839461dc9b
@@ -278,6 +278,11 @@ std::shared_ptr<Auth> YoutubeAuth::Login(QWidget *owner,
|
||||
dlg.setText(text);
|
||||
dlg.setTextFormat(Qt::RichText);
|
||||
dlg.setStandardButtons(QMessageBox::StandardButton::Cancel);
|
||||
#if defined(__APPLE__) && QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)
|
||||
/* We can't show clickable links with the native NSAlert, so let's
|
||||
* force the old non-native dialog instead. */
|
||||
dlg.setOption(QMessageBox::Option::DontUseNativeDialog);
|
||||
#endif
|
||||
|
||||
connect(&dlg, &QMessageBox::buttonClicked, &dlg,
|
||||
[&](QAbstractButton *) {
|
||||
@@ -311,7 +316,17 @@ std::shared_ptr<Auth> YoutubeAuth::Login(QWidget *owner,
|
||||
QScopedPointer<QThread> thread(CreateQThread(open_external_browser));
|
||||
thread->start();
|
||||
|
||||
#if defined(__APPLE__) && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) && \
|
||||
QT_VERSION < QT_VERSION_CHECK(6, 6, 0)
|
||||
const bool nativeDialogs =
|
||||
qApp->testAttribute(Qt::AA_DontUseNativeDialogs);
|
||||
App()->setAttribute(Qt::AA_DontUseNativeDialogs, true);
|
||||
dlg.exec();
|
||||
App()->setAttribute(Qt::AA_DontUseNativeDialogs, nativeDialogs);
|
||||
#else
|
||||
dlg.exec();
|
||||
#endif
|
||||
|
||||
if (dlg.result() == QMessageBox::Cancel ||
|
||||
dlg.result() == QDialog::Rejected)
|
||||
return nullptr;
|
||||
|
||||
Reference in New Issue
Block a user