diff --git a/images/spinner.gif b/images/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..b97e8d9c8660ab1f83eefd0cb7317fb876034e1b Binary files /dev/null and b/images/spinner.gif differ diff --git a/ressources.qrc b/ressources.qrc index 66f70a7ee0d212b251d9a801a33c6a8327d2538d..1b6660e1c05180b1b16f71bb6beb07415a72cef4 100644 --- a/ressources.qrc +++ b/ressources.qrc @@ -21,5 +21,6 @@ <file>images/sort-variant.png</file> <file>images/arrow-down.png</file> <file>images/arrow-up.png</file> + <file>images/spinner.gif</file> </qresource> </RCC> diff --git a/wizarddialog.cpp b/wizarddialog.cpp index ae21ae3ae5b67a2e9bc7b58f11b36e2acca72696..b281d0cc175b85a8eccf473dbaf6159a6cb7c773 100644 --- a/wizarddialog.cpp +++ b/wizarddialog.cpp @@ -19,7 +19,10 @@ #include "wizarddialog.h" #include "ui_wizarddialog.h" +#include <QMovie> + #include "accountmodel.h" +#include "account.h" #include "utils.h" @@ -33,6 +36,14 @@ WizardDialog::WizardDialog(QWidget *parent) : this->setWindowFlags(Qt::FramelessWindowHint); this->setFixedSize(this->width(),this->height()); ui->buttonBox->setEnabled(false); + + ui->spinnerLabel->hide(); + QMovie* movie = new QMovie(":images/spinner.gif"); + if (movie->isValid()) + { + ui->spinnerLabel->setMovie(movie); + movie->start(); + } } WizardDialog::~WizardDialog() @@ -43,32 +54,34 @@ WizardDialog::~WizardDialog() void WizardDialog::accept() { - ui->label->setText("Working..."); + //ui->spinnerLabel->show(); + ui->label->setText("Please wait while we create your account."); ui->buttonBox->setEnabled(false); ui->usernameEdit->setEnabled(false); - QtConcurrent::run(this, &WizardDialog::setup).waitForFinished(); -} + repaint(); -void -WizardDialog::endSetup() -{ - QDialog::accept(); -} + Utils::CreateStartupLink(); -void -WizardDialog::setup() -{ auto account = AccountModel::instance()->add(ui->usernameEdit->text(), Account::Protocol::RING); AccountModel::instance()->ip2ip()->setRingtonePath(Utils::GetRingtonePath()); account->setRingtonePath(Utils::GetRingtonePath()); - AccountModel::instance()->save(); - Utils::CreateStartupLink(); - endSetup(); + account->setUpnpEnabled(true); + + connect(account, SIGNAL(changed(Account*)), this, SLOT(endSetup(Account*))); + + account->performAction(Account::EditAction::SAVE); +} + +void +WizardDialog::endSetup(Account* a) +{ + Q_UNUSED(a) + QDialog::accept(); } void WizardDialog::on_usernameEdit_textChanged(const QString &arg1) { - ui->buttonBox->setEnabled(!arg1.isEmpty()); + ui->buttonBox->setEnabled(!arg1.isEmpty()); } diff --git a/wizarddialog.h b/wizarddialog.h index 1a03e27a980d16e02119c6094252b08c0334b129..b3445e6c3f981d812dbbdfdf296540e0ed6954b6 100644 --- a/wizarddialog.h +++ b/wizarddialog.h @@ -22,6 +22,8 @@ #include <QDialog> #include <QtConcurrent/QtConcurrent> +#include "account.h" + namespace Ui { class WizardDialog; } @@ -38,13 +40,14 @@ private slots: void on_usernameEdit_textChanged(const QString &arg1); void accept(); - void endSetup(); - private: Ui::WizardDialog *ui; private: void setup(); + +private slots: + void endSetup(Account* a); }; #endif // WIZARDDIALOG_H diff --git a/wizarddialog.ui b/wizarddialog.ui index 0ed6d260dce4afa9920eb36954abe693926aa19d..a0d9c5ed3c9e1bb186fbc6bfbd2a91fa2098caa8 100644 --- a/wizarddialog.ui +++ b/wizarddialog.ui @@ -435,7 +435,17 @@ <string/> </property> <property name="pixmap"> - <pixmap>:/images/logo-ring-standard-coul.png</pixmap> + <pixmap resource="ressources.qrc">:/images/logo-ring-standard-coul.png</pixmap> + </property> + <property name="scaledContents"> + <bool>true</bool> + </property> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QLabel" name="spinnerLabel"> + <property name="text"> + <string/> </property> <property name="scaledContents"> <bool>true</bool> @@ -471,7 +481,9 @@ </item> </layout> </widget> - <resources/> + <resources> + <include location="ressources.qrc"/> + </resources> <connections> <connection> <sender>buttonBox</sender>