From 7fdc65eda8032c677e6b1cc3b50dc7ea3c422ada Mon Sep 17 00:00:00 2001 From: Trial97 Date: Thu, 13 Jun 2024 08:51:11 +0300 Subject: [PATCH] add tooltip to url button Signed-off-by: Trial97 --- launcher/minecraft/auth/steps/MSADeviceCodeStep.cpp | 4 ++-- launcher/ui/dialogs/MSALoginDialog.cpp | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/launcher/minecraft/auth/steps/MSADeviceCodeStep.cpp b/launcher/minecraft/auth/steps/MSADeviceCodeStep.cpp index c34351bf2..7df93d04d 100644 --- a/launcher/minecraft/auth/steps/MSADeviceCodeStep.cpp +++ b/launcher/minecraft/auth/steps/MSADeviceCodeStep.cpp @@ -46,6 +46,8 @@ MSADeviceCodeStep::MSADeviceCodeStep(AccountData* data) : AuthStep(data) { m_clientId = APPLICATION->getMSAClientID(); + connect(&m_expiration_timer, &QTimer::timeout, this, &MSADeviceCodeStep::abort); + connect(&m_pool_timer, &QTimer::timeout, this, &MSADeviceCodeStep::authenticateUser); } QString MSADeviceCodeStep::describe() @@ -133,11 +135,9 @@ void MSADeviceCodeStep::deviceAutorizationFinished() m_expiration_timer.setTimerType(Qt::VeryCoarseTimer); m_expiration_timer.setInterval(rsp.expires_in * 1000); m_expiration_timer.setSingleShot(true); - connect(&m_expiration_timer, &QTimer::timeout, this, &MSADeviceCodeStep::abort); m_expiration_timer.start(); m_pool_timer.setTimerType(Qt::VeryCoarseTimer); m_pool_timer.setSingleShot(true); - connect(&m_pool_timer, &QTimer::timeout, this, &MSADeviceCodeStep::authenticateUser); startPoolTimer(); } diff --git a/launcher/ui/dialogs/MSALoginDialog.cpp b/launcher/ui/dialogs/MSALoginDialog.cpp index 6f2937335..59b45a0e4 100644 --- a/launcher/ui/dialogs/MSALoginDialog.cpp +++ b/launcher/ui/dialogs/MSALoginDialog.cpp @@ -64,8 +64,11 @@ MSALoginDialog::MSALoginDialog(QWidget* parent) : QDialog(parent), ui(new Ui::MS ui->qr->setPixmap(QIcon((":/documents/login-qr.svg")).pixmap(QSize(150, 150))); ui->title->setText(tr("Login to %1").arg(BuildConfig.LAUNCHER_DISPLAYNAME)); connect(ui->loginButton, &QPushButton::clicked, this, [this] { - if (m_url.isValid()) - DesktopServices::openUrl(m_url); + if (m_url.isValid()) { + if (!DesktopServices::openUrl(m_url)) { + QApplication::clipboard()->setText(m_url.toString()); + } + } }); } @@ -104,6 +107,8 @@ MSALoginDialog::~MSALoginDialog() void MSALoginDialog::onTaskFailed(QString reason) { // Set message + m_authflow_task->disconnect(); + m_devicecode_task->disconnect(); ui->stackedWidget->setCurrentIndex(0); auto lines = reason.split('\n'); QString processed; @@ -127,6 +132,7 @@ void MSALoginDialog::onTaskFailed(QString reason) void MSALoginDialog::authorizeWithBrowser(const QUrl& url) { ui->stackedWidget->setCurrentIndex(1); + ui->loginButton->setToolTip(QString("
%1
").arg(url.toString())); m_url = url; }