File indexing completed on 2024-04-28 04:55:45

0001 /*
0002     This file is part of Choqok, the KDE micro-blogging client
0003 
0004     SPDX-FileCopyrightText: 2010-2012 Mehrdad Momeny <mehrdad.momeny@gmail.com>
0005 
0006     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0007 */
0008 
0009 #include "ocsaccount.h"
0010 
0011 #include <Attica/ProviderManager>
0012 
0013 #include "ocsdebug.h"
0014 #include "ocsmicroblog.h"
0015 
0016 class OCSAccount::Private
0017 {
0018 public:
0019     QUrl providerUrl;
0020     Attica::Provider provider;
0021     OCSMicroblog *mBlog;
0022 };
0023 
0024 OCSAccount::OCSAccount(OCSMicroblog *parent, const QString &alias)
0025     : Account(parent, alias), d(new Private)
0026 {
0027     qCDebug(CHOQOK) << alias;
0028     d->mBlog = parent;
0029     setProviderUrl(QUrl(configGroup()->readEntry("ProviderUrl", QString())));
0030 }
0031 
0032 OCSAccount::~OCSAccount()
0033 {
0034     delete d;
0035 }
0036 
0037 void OCSAccount::writeConfig()
0038 {
0039     configGroup()->writeEntry("ProviderUrl", d->providerUrl.toString());
0040     Choqok::Account::writeConfig();
0041 }
0042 
0043 QUrl OCSAccount::providerUrl() const
0044 {
0045     return d->providerUrl;
0046 }
0047 
0048 void OCSAccount::setProviderUrl(const QUrl &url)
0049 {
0050     qCDebug(CHOQOK) << url;
0051     d->providerUrl = url;
0052     if (d->mBlog->isOperational()) {
0053         slotDefaultProvidersLoaded();
0054     } else {
0055         connect(d->mBlog, &OCSMicroblog::initialized, this,
0056                 &OCSAccount::slotDefaultProvidersLoaded);
0057     }
0058 }
0059 
0060 Attica::Provider OCSAccount::provider()
0061 {
0062     return d->provider;
0063 }
0064 
0065 void OCSAccount::slotDefaultProvidersLoaded()
0066 {
0067     d->provider = d->mBlog->providerManager()->providerByUrl(d->providerUrl);
0068 }
0069 
0070 #include "moc_ocsaccount.cpp"