Redesign main core classes.

This commit is contained in:
Vladimir Golovnev (Glassez) 2015-04-19 18:17:47 +03:00
parent 60c0939e05
commit d16d1fdb3a
152 changed files with 11366 additions and 8967 deletions

View file

@ -31,7 +31,7 @@
#include <QDebug>
#include "rssfeed.h"
#include "rssmanager.h"
#include "qbtsession.h"
#include "core/bittorrent/session.h"
#include "rssfolder.h"
#include "core/preferences.h"
#include "core/qinisettings.h"
@ -39,7 +39,8 @@
#include "rssparser.h"
#include "core/misc.h"
#include "rssdownloadrulelist.h"
#include "core/downloadthread.h"
#include "core/net/downloadmanager.h"
#include "core/net/downloadhandler.h"
#include "core/fs_utils.h"
#include "core/logger.h"
@ -60,15 +61,15 @@ RssFeed::RssFeed(RssManager* manager, RssFolder* parent, const QString& url):
{
qDebug() << Q_FUNC_INFO << m_url;
// Listen for new RSS downloads
connect(manager->rssDownloader(), SIGNAL(downloadFinished(QString,QString)), SLOT(handleFinishedDownload(QString,QString)));
connect(manager->rssDownloader(), SIGNAL(downloadFailure(QString,QString)), SLOT(handleDownloadFailure(QString,QString)));
connect(manager->rssParser(), SIGNAL(feedTitle(QString,QString)), SLOT(handleFeedTitle(QString,QString)));
connect(manager->rssParser(), SIGNAL(newArticle(QString,QVariantHash)), SLOT(handleNewArticle(QString,QVariantHash)));
connect(manager->rssParser(), SIGNAL(feedParsingFinished(QString,QString)), SLOT(handleFeedParsingFinished(QString,QString)));
// Download the RSS Feed icon
m_iconUrl = iconUrl();
manager->rssDownloader()->downloadUrl(m_iconUrl);
Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(iconUrl());
connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(handleFinishedDownload(QString, QString)));
connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString)));
m_iconUrl = handler->url();
// Load old RSS articles
loadItemsFromDisk();
@ -159,12 +160,6 @@ void RssFeed::addArticle(const RssArticlePtr& article) {
}
}
QList<QNetworkCookie> RssFeed::feedCookies() const
{
QString feed_hostname = QUrl::fromEncoded(m_url.toUtf8()).host();
return Preferences::instance()->getHostNameQNetworkCookies(feed_hostname);
}
bool RssFeed::refresh()
{
if (m_loading) {
@ -173,7 +168,10 @@ bool RssFeed::refresh()
}
m_loading = true;
// Download the RSS again
m_manager->rssDownloader()->downloadUrl(m_url, feedCookies());
Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(m_url);
connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(handleFinishedDownload(QString, QString)));
connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString)));
m_url = handler->url(); // sync URL encoding
return true;
}
@ -307,7 +305,7 @@ QString RssFeed::iconUrl() const
}
// read and store the downloaded rss' informations
void RssFeed::handleFinishedDownload(const QString& url, const QString& filePath)
void RssFeed::handleFinishedDownload(const QString &url, const QString &filePath)
{
if (url == m_url) {
qDebug() << Q_FUNC_INFO << "Successfully downloaded RSS feed at" << url;
@ -320,10 +318,9 @@ void RssFeed::handleFinishedDownload(const QString& url, const QString& filePath
}
}
void RssFeed::handleDownloadFailure(const QString& url, const QString& error)
void RssFeed::handleDownloadFailure(const QString &url, const QString &error)
{
if (url != m_url)
return;
if (url != m_url) return;
m_inErrorState = true;
m_loading = false;
@ -369,12 +366,17 @@ void RssFeed::downloadArticleTorrentIfMatching(RssDownloadRuleList* rules, const
// Download the torrent
const QString& torrent_url = article->torrentUrl();
Logger::instance()->addMessage(tr("Automatically downloading %1 torrent from %2 RSS feed...").arg(article->title()).arg(displayName()));
connect(QBtSession::instance(), SIGNAL(newDownloadedTorrentFromRss(QString)), article.data(), SLOT(handleTorrentDownloadSuccess(const QString&)), Qt::UniqueConnection);
connect(BitTorrent::Session::instance(), SIGNAL(downloadFromUrlFinished(QString)), article.data(), SLOT(handleTorrentDownloadSuccess(const QString&)), Qt::UniqueConnection);
connect(article.data(), SIGNAL(articleWasRead()), SLOT(handleArticleStateChanged()), Qt::UniqueConnection);
if (torrent_url.startsWith("magnet:", Qt::CaseInsensitive))
QBtSession::instance()->addMagnetSkipAddDlg(torrent_url, matching_rule->savePath(), matching_rule->label(), matching_rule->addPaused());
else
QBtSession::instance()->downloadUrlAndSkipDialog(torrent_url, matching_rule->savePath(), matching_rule->label(), feedCookies(), matching_rule->addPaused());
BitTorrent::AddTorrentParams params;
params.savePath = matching_rule->savePath();
params.label = matching_rule->label();
if (matching_rule->addPaused() == RssDownloadRule::ALWAYS_PAUSED)
params.addPaused = TriStateBool::True;
else if (matching_rule->addPaused() == RssDownloadRule::NEVER_PAUSED)
params.addPaused = TriStateBool::False;
BitTorrent::Session::instance()->addTorrent(torrent_url, params);
}
void RssFeed::recheckRssItemsForDownload()
@ -426,7 +428,8 @@ void RssFeed::handleFeedParsingFinished(const QString& feedUrl, const QString& e
saveItemsToDisk();
}
void RssFeed::handleArticleStateChanged() {
void RssFeed::handleArticleStateChanged()
{
m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount);
}