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"