22
33#include < utils/misc.h>
44
5+ #include < QShowEvent>
56#include < QtGui/QClipboard>
67
78#include " services/settingsservice.h"
@@ -11,31 +12,32 @@ WebSocketTokenDialog::WebSocketTokenDialog(QWidget *parent)
1112 : MasterDialog(parent), ui(new Ui::WebSocketTokenDialog) {
1213 ui->setupUi (this );
1314 afterSetupUI ();
15+ }
16+
17+ QString WebSocketTokenDialog::generateToken () const { return Utils::Misc::generateRandomString (8 ); }
18+
19+ WebSocketTokenDialog::~WebSocketTokenDialog () { delete ui; }
1420
21+ void WebSocketTokenDialog::loadTokenFromSettings () {
1522 SettingsService settings;
16- QString token = settings.value (QStringLiteral (" webSocketServerService/token" )).toString ();
23+ _initialToken = settings.value (QStringLiteral (" webSocketServerService/token" )).toString ();
1724
18- if (token.isEmpty ()) {
19- on_generateButton_clicked ();
25+ if (_initialToken.isEmpty ()) {
26+ ui->tokenLineEdit ->setText (generateToken ());
27+ on_copyButton_clicked ();
2028 } else {
21- ui->tokenLineEdit ->setText (token );
29+ ui->tokenLineEdit ->setText (_initialToken );
2230 on_copyButton_clicked ();
2331 }
2432}
2533
26- QString WebSocketTokenDialog::generateToken () const { return Utils::Misc::generateRandomString (8 ); }
27-
28- WebSocketTokenDialog::~WebSocketTokenDialog () { delete ui; }
29-
3034void WebSocketTokenDialog::on_copyButton_clicked () {
3135 QClipboard *clipboard = QApplication::clipboard ();
3236 clipboard->setText (ui->tokenLineEdit ->text ());
3337}
3438
3539void WebSocketTokenDialog::on_generateButton_clicked () {
3640 QString token = generateToken ();
37- SettingsService settings;
38- settings.setValue (QStringLiteral (" webSocketServerService/token" ), token);
3941 ui->tokenLineEdit ->setText (token);
4042 on_copyButton_clicked ();
4143}
@@ -44,3 +46,16 @@ void WebSocketTokenDialog::on_buttonBox_accepted() {
4446 SettingsService settings;
4547 settings.setValue (QStringLiteral (" webSocketServerService/token" ), ui->tokenLineEdit ->text ());
4648}
49+
50+ void WebSocketTokenDialog::reject () {
51+ SettingsService settings;
52+ settings.setValue (QStringLiteral (" webSocketServerService/token" ), _initialToken);
53+ ui->tokenLineEdit ->setText (_initialToken.isEmpty () ? generateToken () : _initialToken);
54+
55+ MasterDialog::reject ();
56+ }
57+
58+ void WebSocketTokenDialog::showEvent (QShowEvent *event) {
59+ loadTokenFromSettings ();
60+ MasterDialog::showEvent (event);
61+ }
0 commit comments