void AdBlockSubscription::subscriptionDownloaded() { if (m_reply != qobject_cast<QNetworkReply*>(sender())) { return; } bool error = false; const QByteArray response = QString::fromUtf8(m_reply->readAll()).toUtf8(); if (m_reply->error() != QNetworkReply::NoError || !response.startsWith(QByteArray("[Adblock")) || !saveDownloadedData(response)) { error = true; } m_reply->manager()->deleteLater(); m_reply->deleteLater(); m_reply = 0; if (error) { emit subscriptionError(tr("Cannot load subscription!")); return; } loadSubscription(AdBlockManager::instance()->disabledRules()); emit subscriptionUpdated(); emit subscriptionChanged(); }
AdBlockSubscription* AdBlockManager::addSubscription(const QString &title, const QString &url) { if (title.isEmpty() || url.isEmpty()) { return 0; } QString fileName = QzTools::filterCharsFromFilename(title.toLower()) + ".txt"; QString filePath = QzTools::ensureUniqueFilename(DataPaths::currentProfilePath() + "/adblock/" + fileName); QByteArray data = QString("Title: %1\nUrl: %2\n[Adblock Plus 1.1.1]").arg(title, url).toLatin1(); QSaveFile file(filePath); if (!file.open(QFile::WriteOnly)) { qWarning() << "AdBlockManager: Cannot write to file" << filePath; return 0; } file.write(data); file.commit(); AdBlockSubscription* subscription = new AdBlockSubscription(title, this); subscription->setUrl(QUrl(url)); subscription->setFilePath(filePath); subscription->loadSubscription(m_disabledRules); m_subscriptions.insert(m_subscriptions.count() - 1, subscription); connect(subscription, SIGNAL(subscriptionUpdated()), mApp, SLOT(reloadUserStyleSheet())); connect(subscription, SIGNAL(subscriptionChanged()), this, SLOT(updateMatcher())); return subscription; }
const AdBlockRule* AdBlockSubscription::disableRule(int offset) { if (!IS_IN_ARRAY(offset, m_rules)) { return 0; } AdBlockRule* rule = m_rules[offset]; rule->setEnabled(false); AdBlockManager::instance()->addDisabledRule(rule->filter()); emit subscriptionChanged(); return rule; }
const AdBlockRule* AdBlockSubscription::enableRule(int offset) { if (IS_IN_ARRAY(offset, m_rules)) { AdBlockRule* rule = m_rules[offset]; rule->setEnabled(true); AdBlockManager::instance()->removeDisabledRule(rule->filter()); emit subscriptionChanged(); return rule; } else { return 0; } }
const AdBlockRule* AdBlockSubscription::disableRule(int offset) { if (!QzTools::containsIndex(m_rules, offset)) { return 0; } AdBlockRule* rule = m_rules[offset]; rule->setEnabled(false); AdBlockManager::instance()->addDisabledRule(rule->filter()); emit subscriptionChanged(); if (rule->isCssRule()) mApp->reloadUserStyleSheet(); return rule; }
void JContact::setContactSubscription(Jreen::RosterItem::SubscriptionType subscription) { d_func()->subscription = subscription; emit subscriptionChanged(subscription); }