Git commit ee0e39a0b6aab0e56c682fc671cf815d5dd5a851 by Alex Fiestas. Committed on 17/04/2012 at 16:28. Pushed by mklapetek into branch 'master'. Create the account once the wizard is done M +51 -0 owncloud.cpp M +9 -0 owncloud.h http://commits.kde.org/kaccounts-providers/ee0e39a0b6aab0e56c682fc671cf815d= 5dd5a851 diff --git a/owncloud.cpp b/owncloud.cpp index 152d0ea..a0d7f68 100644 --- a/owncloud.cpp +++ b/owncloud.cpp @@ -53,6 +53,47 @@ OwnCloudWizard::~OwnCloudWizard() = } = +void OwnCloudWizard::done(int result) +{ + if (result !=3D 1) { + return; + } + + WId windowId =3D 0; + if (qApp->activeWindow()) { + windowId =3D qApp->activeWindow()->winId(); + } + + Wallet *wallet =3D Wallet::openWallet(Wallet::NetworkWallet(), windowI= d, Wallet::Synchronous); + + if (!wallet->isOpen() || !wallet->isEnabled()) { + return; + } + + wallet->createFolder("WebAccounts"); + wallet->setFolder("WebAccounts"); + wallet->createFolder("owncloud"); + wallet->setFolder("owncloud"); + wallet->createFolder(m_username); + wallet->setFolder(m_username); + wallet->writePassword(m_username, m_password); + wallet->sync(); + wallet->deleteLater(); + + KConfigGroup config =3D KSharedConfig::openConfig("webaccounts")->grou= p("accounts").group("owncloud").group(m_username); + config.writeEntry("type", "owncloud"); + config.writeEntry("server", m_server.url()); + KConfigGroup group =3D config.group("services"); + QStringList keys =3D m_services.keys(); + Q_FOREACH(const QString &key, keys) { + group.writeEntry(key, m_services[key]); + } + + Q_EMIT newAccount("owncloud", m_username); + + QWizard::done(result); +} + void OwnCloudWizard::setUsername(const QString& username) { m_username =3D username; @@ -81,4 +122,14 @@ const QString OwnCloudWizard::password() const const KUrl OwnCloudWizard::server() const { return m_server; +} + +void OwnCloudWizard::activateOption(const QString& name, bool checked ) +{ + if (!checked) { + m_services[name] =3D 0; + return; + } + + m_services[name] =3D 2; } \ No newline at end of file diff --git a/owncloud.h b/owncloud.h index 984a6f6..a9629bd 100644 --- a/owncloud.h +++ b/owncloud.h @@ -30,6 +30,8 @@ class OwnCloudWizard : public QWizard explicit OwnCloudWizard(QWidget* parent =3D 0, Qt::WindowFlags fla= gs =3D 0); virtual ~OwnCloudWizard(); = + virtual void done(int result); + void setUsername(const QString &username); void setPassword(const QString &password); void setServer(const KUrl &server); @@ -38,10 +40,17 @@ class OwnCloudWizard : public QWizard const QString password() const; const KUrl server() const; = + void activateOption(const QString& name, bool checked); + + Q_SIGNALS: + void newAccount(const QString &type, const QString &name); + private: QString m_username; QString m_password; KUrl m_server; + + QHash m_services; }; = #endif //OWNCLOUD_H \ No newline at end of file