mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-31 12:00:16 -07:00
Redesign RSS base classes.
This commit is contained in:
parent
6f7ae728eb
commit
28ed981082
16 changed files with 232 additions and 266 deletions
|
@ -40,24 +40,11 @@
|
|||
|
||||
using namespace Rss;
|
||||
|
||||
Folder::Folder(Folder *parent, const QString &name)
|
||||
: m_parent(parent)
|
||||
, m_name(name)
|
||||
Folder::Folder(const QString &name)
|
||||
: m_name(name)
|
||||
{
|
||||
}
|
||||
|
||||
Folder::~Folder() {}
|
||||
|
||||
Folder *Folder::parent() const
|
||||
{
|
||||
return m_parent;
|
||||
}
|
||||
|
||||
void Folder::setParent(Folder *parent)
|
||||
{
|
||||
m_parent = parent;
|
||||
}
|
||||
|
||||
uint Folder::unreadCount() const
|
||||
{
|
||||
uint nbUnread = 0;
|
||||
|
@ -78,31 +65,6 @@ void Folder::removeChild(const QString &childId)
|
|||
}
|
||||
}
|
||||
|
||||
FolderPtr Folder::addFolder(const QString &name)
|
||||
{
|
||||
FolderPtr subfolder;
|
||||
if (!m_children.contains(name)) {
|
||||
subfolder = FolderPtr(new Folder(this, name));
|
||||
m_children[name] = subfolder;
|
||||
}
|
||||
else {
|
||||
subfolder = qSharedPointerDynamicCast<Folder>(m_children.value(name));
|
||||
}
|
||||
return subfolder;
|
||||
}
|
||||
|
||||
FeedPtr Folder::addStream(Manager *manager, const QString &url)
|
||||
{
|
||||
qDebug() << Q_FUNC_INFO << manager << url;
|
||||
FeedPtr stream(new Feed(manager, this, url));
|
||||
Q_ASSERT(stream);
|
||||
qDebug() << "Stream URL is " << stream->url();
|
||||
Q_ASSERT(!m_children.contains(stream->url()));
|
||||
m_children[stream->url()] = stream;
|
||||
stream->refresh();
|
||||
return stream;
|
||||
}
|
||||
|
||||
// Refresh All Children
|
||||
bool Folder::refresh()
|
||||
{
|
||||
|
@ -176,7 +138,8 @@ void Folder::rename(const QString &newName)
|
|||
Q_ASSERT(!m_parent->hasChild(newName));
|
||||
if (!m_parent->hasChild(newName)) {
|
||||
// Update parent
|
||||
m_parent->renameChildFolder(m_name, newName);
|
||||
FilePtr folder = m_parent->m_children.take(m_name);
|
||||
m_parent->m_children[newName] = folder;
|
||||
// Actually rename
|
||||
m_name = newName;
|
||||
}
|
||||
|
@ -224,20 +187,17 @@ QHash<QString, FeedPtr> Folder::getAllFeedsAsHash() const
|
|||
return ret;
|
||||
}
|
||||
|
||||
void Folder::addFile(const FilePtr &item)
|
||||
bool Folder::addFile(const FilePtr &item)
|
||||
{
|
||||
if (FeedPtr feed = qSharedPointerDynamicCast<Feed>(item)) {
|
||||
Q_ASSERT(!m_children.contains(feed->url()));
|
||||
m_children[feed->url()] = item;
|
||||
qDebug("Added feed %s to folder ./%s", qPrintable(feed->url()), qPrintable(m_name));
|
||||
Q_ASSERT(!m_children.contains(item->id()));
|
||||
if (!m_children.contains(item->id())) {
|
||||
m_children[item->id()] = item;
|
||||
// Update parent
|
||||
item->m_parent = this;
|
||||
return true;
|
||||
}
|
||||
else if (FolderPtr folder = qSharedPointerDynamicCast<Folder>(item)) {
|
||||
Q_ASSERT(!m_children.contains(folder->displayName()));
|
||||
m_children[folder->displayName()] = item;
|
||||
qDebug("Added folder %s to folder ./%s", qPrintable(folder->displayName()), qPrintable(m_name));
|
||||
}
|
||||
// Update parent
|
||||
item->setParent(this);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void Folder::removeAllItems()
|
||||
|
@ -245,6 +205,11 @@ void Folder::removeAllItems()
|
|||
m_children.clear();
|
||||
}
|
||||
|
||||
FilePtr Folder::child(const QString &childId)
|
||||
{
|
||||
return m_children.value(childId);
|
||||
}
|
||||
|
||||
void Folder::removeAllSettings()
|
||||
{
|
||||
FileHash::ConstIterator it = m_children.begin();
|
||||
|
@ -274,13 +239,6 @@ bool Folder::hasChild(const QString &childId)
|
|||
return m_children.contains(childId);
|
||||
}
|
||||
|
||||
void Folder::renameChildFolder(const QString &oldName, const QString &newName)
|
||||
{
|
||||
Q_ASSERT(m_children.contains(oldName));
|
||||
FilePtr folder = m_children.take(oldName);
|
||||
m_children[newName] = folder;
|
||||
}
|
||||
|
||||
FilePtr Folder::takeChild(const QString &childId)
|
||||
{
|
||||
return m_children.take(childId);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue