Use QInputDialog to get registration token
This commit is contained in:
parent
b56a1be0bd
commit
7d484a8228
@ -286,7 +286,6 @@ set(SRC_FILES
|
|||||||
src/dialogs/Logout.cpp
|
src/dialogs/Logout.cpp
|
||||||
src/dialogs/PreviewUploadOverlay.cpp
|
src/dialogs/PreviewUploadOverlay.cpp
|
||||||
src/dialogs/ReCaptcha.cpp
|
src/dialogs/ReCaptcha.cpp
|
||||||
src/dialogs/TokenRegistration.cpp
|
|
||||||
|
|
||||||
# Emoji
|
# Emoji
|
||||||
src/emoji/EmojiModel.cpp
|
src/emoji/EmojiModel.cpp
|
||||||
@ -498,7 +497,6 @@ qt5_wrap_cpp(MOC_HEADERS
|
|||||||
src/dialogs/Logout.h
|
src/dialogs/Logout.h
|
||||||
src/dialogs/PreviewUploadOverlay.h
|
src/dialogs/PreviewUploadOverlay.h
|
||||||
src/dialogs/ReCaptcha.h
|
src/dialogs/ReCaptcha.h
|
||||||
src/dialogs/TokenRegistration.h
|
|
||||||
|
|
||||||
# Emoji
|
# Emoji
|
||||||
src/emoji/EmojiModel.h
|
src/emoji/EmojiModel.h
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
//
|
//
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
#include <QInputDialog>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QMetaType>
|
#include <QMetaType>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
@ -25,7 +26,6 @@
|
|||||||
|
|
||||||
#include "dialogs/FallbackAuth.h"
|
#include "dialogs/FallbackAuth.h"
|
||||||
#include "dialogs/ReCaptcha.h"
|
#include "dialogs/ReCaptcha.h"
|
||||||
#include "dialogs/TokenRegistration.h"
|
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(mtx::user_interactive::Unauthorized)
|
Q_DECLARE_METATYPE(mtx::user_interactive::Unauthorized)
|
||||||
Q_DECLARE_METATYPE(mtx::user_interactive::Auth)
|
Q_DECLARE_METATYPE(mtx::user_interactive::Auth)
|
||||||
@ -483,22 +483,10 @@ RegisterPage::doUIA(const mtx::user_interactive::Unauthorized &unauthorized)
|
|||||||
mtx::user_interactive::Auth{session, mtx::user_interactive::auth::Dummy{}});
|
mtx::user_interactive::Auth{session, mtx::user_interactive::auth::Dummy{}});
|
||||||
|
|
||||||
} else if (current_stage == mtx::user_interactive::auth_types::registration_token) {
|
} else if (current_stage == mtx::user_interactive::auth_types::registration_token) {
|
||||||
auto dialog = new dialogs::TokenRegistration(this);
|
QString token = QInputDialog::getText(
|
||||||
|
this, tr("Registration token"), tr("Please enter a valid registration token."));
|
||||||
connect(dialog,
|
emit registrationWithAuth(mtx::user_interactive::Auth{
|
||||||
&dialogs::TokenRegistration::confirmation,
|
session, mtx::user_interactive::auth::RegistrationToken{token.toStdString()}});
|
||||||
this,
|
|
||||||
[this, session, dialog](std::string token) {
|
|
||||||
dialog->close();
|
|
||||||
dialog->deleteLater();
|
|
||||||
emit registrationWithAuth(mtx::user_interactive::Auth{
|
|
||||||
session, mtx::user_interactive::auth::RegistrationToken{token}});
|
|
||||||
});
|
|
||||||
|
|
||||||
connect(
|
|
||||||
dialog, &dialogs::TokenRegistration::cancel, this, &RegisterPage::errorOccurred);
|
|
||||||
|
|
||||||
dialog->show();
|
|
||||||
} else {
|
} else {
|
||||||
// use fallback
|
// use fallback
|
||||||
auto dialog = new dialogs::FallbackAuth(
|
auto dialog = new dialogs::FallbackAuth(
|
||||||
|
@ -1,62 +0,0 @@
|
|||||||
// SPDX-FileCopyrightText: 2021 Nheko Contributors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
#include <QLabel>
|
|
||||||
#include <QPushButton>
|
|
||||||
#include <QVBoxLayout>
|
|
||||||
|
|
||||||
#include "dialogs/TokenRegistration.h"
|
|
||||||
|
|
||||||
#include "Config.h"
|
|
||||||
#include "MatrixClient.h"
|
|
||||||
#include "ui/TextField.h"
|
|
||||||
|
|
||||||
using namespace dialogs;
|
|
||||||
|
|
||||||
TokenRegistration::TokenRegistration(QWidget *parent)
|
|
||||||
: QWidget(parent)
|
|
||||||
{
|
|
||||||
setAutoFillBackground(true);
|
|
||||||
setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint);
|
|
||||||
setWindowModality(Qt::WindowModal);
|
|
||||||
setAttribute(Qt::WA_DeleteOnClose, true);
|
|
||||||
|
|
||||||
auto layout = new QVBoxLayout(this);
|
|
||||||
layout->setSpacing(conf::modals::WIDGET_SPACING);
|
|
||||||
layout->setMargin(conf::modals::WIDGET_MARGIN);
|
|
||||||
|
|
||||||
auto buttonLayout = new QHBoxLayout();
|
|
||||||
buttonLayout->setSpacing(8);
|
|
||||||
buttonLayout->setMargin(0);
|
|
||||||
|
|
||||||
cancelBtn_ = new QPushButton(tr("Cancel"), this);
|
|
||||||
confirmBtn_ = new QPushButton(tr("Confirm"), this);
|
|
||||||
confirmBtn_->setDefault(true);
|
|
||||||
|
|
||||||
buttonLayout->addStretch(1);
|
|
||||||
buttonLayout->addWidget(cancelBtn_);
|
|
||||||
buttonLayout->addWidget(confirmBtn_);
|
|
||||||
|
|
||||||
tokenInput_ = new TextField(this);
|
|
||||||
tokenInput_->setLabel(tr("Registration token"));
|
|
||||||
|
|
||||||
QFont font;
|
|
||||||
font.setPointSizeF(font.pointSizeF() * conf::modals::LABEL_MEDIUM_SIZE_RATIO);
|
|
||||||
|
|
||||||
auto label = new QLabel(tr("Please enter a valid registration token."), this);
|
|
||||||
label->setFont(font);
|
|
||||||
|
|
||||||
layout->addWidget(label);
|
|
||||||
layout->addWidget(tokenInput_);
|
|
||||||
layout->addLayout(buttonLayout);
|
|
||||||
|
|
||||||
connect(confirmBtn_, &QPushButton::clicked, this, [this]() {
|
|
||||||
emit confirmation(tokenInput_->text().toStdString());
|
|
||||||
emit close();
|
|
||||||
});
|
|
||||||
connect(cancelBtn_, &QPushButton::clicked, this, [this]() {
|
|
||||||
emit cancel();
|
|
||||||
emit close();
|
|
||||||
});
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
// SPDX-FileCopyrightText: 2021 Nheko Contributors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <QWidget>
|
|
||||||
|
|
||||||
class QPushButton;
|
|
||||||
class QLabel;
|
|
||||||
class TextField;
|
|
||||||
|
|
||||||
namespace dialogs {
|
|
||||||
|
|
||||||
class TokenRegistration : public QWidget
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
TokenRegistration(QWidget *parent = nullptr);
|
|
||||||
|
|
||||||
signals:
|
|
||||||
void confirmation(std::string token);
|
|
||||||
void cancel();
|
|
||||||
|
|
||||||
private:
|
|
||||||
QPushButton *confirmBtn_;
|
|
||||||
QPushButton *cancelBtn_;
|
|
||||||
TextField *tokenInput_;
|
|
||||||
};
|
|
||||||
} // dialogs
|
|
Loading…
Reference in New Issue
Block a user