25 #include <attica/listjob.h>
26 #include <attica/postjob.h>
27 #include <attica/accountbalance.h>
38 connect(&providerManager, SIGNAL(defaultProvidersLoaded()),
this, SLOT(defaultProvidersLoaded()));
39 providerManager.loadDefaultProviders();
44 if (! providerManager.providerFiles().contains(file)) {
46 foreach (
const QUrl& url, providerManager.defaultProviderFiles() ) {
47 providerManager.removeProviderFileFromDefaultProviders(url);
49 providerManager.addProviderFile(file);
53 void AtticaHelper::defaultProvidersLoaded()
56 foreach(Attica::Provider p, providerManager.providers()) {
58 providers.append(p.name());
66 foreach(Attica::Provider p, providerManager.providers()) {
76 return currentProvider;
81 Attica::PostJob* checkLoginJob = currentProvider.checkLogin(name, password);
82 connect(checkLoginJob, SIGNAL(finished(Attica::BaseJob*)),
this, SLOT(checkLoginFinished(Attica::BaseJob*)));
83 checkLoginJob->start();
86 void AtticaHelper::checkLoginFinished(Attica::BaseJob* baseJob)
88 emit
loginChecked(baseJob->metadata().error() == Attica::Metadata::NoError);
93 if (currentProvider.isValid() && currentProvider.hasCredentials()) {
94 if (currentProvider.loadCredentials(name, password)) {
104 return currentProvider.saveCredentials(name, password);
109 m_configuredCategories = configuredCategories;
110 Attica::ListJob<Attica::Category>* job = currentProvider.requestCategories();
111 connect(job, SIGNAL(finished(Attica::BaseJob*)),
this, SLOT(
categoriesLoaded(Attica::BaseJob*)));
117 Attica::ListJob<Attica::Category>* listJob =
static_cast<Attica::ListJob<Attica::Category>*
>(baseJob);
118 Attica::Category::List newCategories = listJob->itemList();
120 if (m_configuredCategories.isEmpty()) {
121 kWarning() <<
"No category was set in knsrc file. Adding all categories.";
122 Q_FOREACH(
const Attica::Category& category, newCategories) {
123 m_validCategories.append(category);
126 Q_FOREACH(
const Attica::Category& category, newCategories) {
127 if (m_configuredCategories.contains(category.name())) {
128 m_validCategories.append(category);
138 Attica::ListJob<Attica::Content>* userContent = currentProvider.searchContentsByPerson(m_validCategories, m_username);
140 userContent->start();
145 Attica::ListJob<Attica::Content>* contentList =
static_cast<Attica::ListJob<Attica::Content>*
>(baseJob);
146 m_userCreatedContent = contentList->itemList();
152 Attica::ListJob<Attica::License> *licenseJob = currentProvider.requestLicenses();
153 connect(licenseJob, SIGNAL(finished(Attica::BaseJob*)),
this, SLOT(
licensesLoaded(Attica::BaseJob*)));
159 Attica::ListJob<Attica::License>* licenseList =
static_cast<Attica::ListJob<Attica::License>*
>(baseJob);
166 Attica::ItemJob<Attica::Content> *contentJob = currentProvider.requestContent(contentId);
167 connect(contentJob, SIGNAL(finished(Attica::BaseJob*)),
this, SLOT(
detailsLinkLoaded(Attica::BaseJob*)));
173 Attica::ItemJob<Attica::Content>* contentItemJob =
static_cast<Attica::ItemJob<Attica::Content>*
>(baseJob);
174 Attica::Content content = contentItemJob->result();
181 Attica::ItemJob<Attica::Content> *contentJob = currentProvider.requestContent(contentId);
182 connect(contentJob, SIGNAL(finished(Attica::BaseJob*)),
this, SLOT(
contentLoaded(Attica::BaseJob*)));
189 Attica::ItemJob<Attica::AccountBalance> *job = currentProvider.requestAccountBalance();
190 connect(job, SIGNAL(finished(Attica::BaseJob*)),
this, SLOT(
currencyLoaded(Attica::BaseJob*)));
196 Attica::ItemJob<Attica::AccountBalance>* balanceJob =
static_cast<Attica::ItemJob<Attica::AccountBalance>*
>(baseJob);
197 Attica::AccountBalance balance = balanceJob->result();
203 Attica::ItemJob<Attica::Content>* contentItemJob =
static_cast<Attica::ItemJob<Attica::Content>*
>(baseJob);
205 const Attica::Content content(contentItemJob->result());
208 for (
int previewNum = 1; previewNum <=3; ++previewNum) {
209 KUrl url = content.smallPreviewPicture(QString::number(previewNum));
210 if (! url.isEmpty()) {
211 m_previewJob[previewNum-1] = KIO::get(url, KIO::NoReload, KIO::HideProgressInfo);
212 connect(m_previewJob[previewNum-1], SIGNAL(result(
KJob*)), SLOT(slotPreviewDownload(
KJob*)));
213 connect(m_previewJob[previewNum-1], SIGNAL(data(
KIO::Job*,QByteArray)), SLOT(slotPreviewData(
KIO::Job*,QByteArray)));
219 void AtticaHelper::slotPreviewData(
KIO::Job *job,
const QByteArray& buf)
221 if (job == m_previewJob[0]) {
222 m_previewBuffer[0].append(buf);
223 }
else if (job == m_previewJob[1]) {
224 m_previewBuffer[1].append(buf);
225 }
else if (job == m_previewJob[2]) {
226 m_previewBuffer[2].append(buf);
230 void AtticaHelper::slotPreviewDownload(
KJob *job)
233 if (job == m_previewJob[0]) {
235 }
else if (job == m_previewJob[1]) {
237 }
else if (job == m_previewJob[2]) {
240 Q_ASSERT(previewNum != -1);
242 m_previewBuffer[previewNum-1].clear();
246 image.loadFromData(m_previewBuffer[previewNum-1]);
247 m_previewBuffer[previewNum-1].clear();
252 #include "atticahelper.moc"