diff --git a/saoriaddaccountdialog.cpp b/saoriaddaccountdialog.cpp index 828f04a..76e6aa2 100644 --- a/saoriaddaccountdialog.cpp +++ b/saoriaddaccountdialog.cpp @@ -49,7 +49,7 @@ ui->getAccessToken_pushButton->setEnabled(false); ui->authorizeCode_lineEdit->setEnabled(false); connect(ui->instanceUrl_comboBox,&QComboBox::editTextChanged,[this](QString) { - m_instance = SaoriApplication::findInstance(ui->instanceUrl_comboBox->currentText()); + m_instance = SaoriApplication::findInstance(QUrl(ui->instanceUrl_comboBox->currentText())); if (m_instance != nullptr) ui->openWebBrowser_pushButton->setEnabled(true); else ui->openWebBrowser_pushButton->setEnabled(false); }); @@ -110,3 +110,21 @@ return; } + +void SaoriAddAccountDialog::on_check_pushButton_clicked() +{ + if (SaoriApplication::findInstance(QUrl(ui->instanceUrl_comboBox->currentText())) == nullptr) { + auto instance = new Saoridon(QUrl(ui->instanceUrl_comboBox->currentText()),this); + connect(instance,&Saoridon::instanceInfomationChanged,this,[=](){ + if (!instance->instanceInfo("uri").isEmpty()) { + instance->clientRedistration(); + if (!instance->clientSecret().isEmpty()) { + instance->setParent(SaoriApplication::saori()); + SaoriApplication::getInstanceList()->append(instance); + ui->instanceUrl_comboBox->addItem(instance->instance().toString()); + ui->instanceUrl_comboBox->setEditText(instance->instance().toString()); + } + } + }); + } +} diff --git a/saoriaddaccountdialog.h b/saoriaddaccountdialog.h index ad5c13c..a94021e 100644 --- a/saoriaddaccountdialog.h +++ b/saoriaddaccountdialog.h @@ -52,6 +52,8 @@ void on_getAccessToken_pushButton_clicked(); + void on_check_pushButton_clicked(); + private: Ui::SaoriAddAccountDialog *ui; }; diff --git a/saoriaddaccountdialog.ui b/saoriaddaccountdialog.ui index 11d3d82..6647133 100644 --- a/saoriaddaccountdialog.ui +++ b/saoriaddaccountdialog.ui @@ -66,7 +66,7 @@ - + Check