Fix: Adding RSS rule with a new label doesn't add this label to UI.

This commit is contained in:
Nick Tiskov 2015-08-31 01:49:52 +03:00 committed by sledgehammer999
parent 87092e2716
commit c8b74215c0
6 changed files with 16 additions and 2 deletions

View file

@ -1605,6 +1605,13 @@ void Preferences::setTorrentLabels(const QStringList& labels)
setValue("TransferListFilters/customLabels", labels); setValue("TransferListFilters/customLabels", labels);
} }
void Preferences::addTorrentLabelExternal(const QString &label)
{
addTorrentLabel(label);
QString toEmit = label;
emit externalLabelAdded(toEmit);
}
void Preferences::addTorrentLabel(const QString& label) void Preferences::addTorrentLabel(const QString& label)
{ {
QStringList labels = value("TransferListFilters/customLabels").toStringList(); QStringList labels = value("TransferListFilters/customLabels").toStringList();

View file

@ -113,6 +113,7 @@ private:
signals: signals:
void changed(); void changed();
void externalLabelAdded(QString&);
public slots: public slots:
void save(); void save();
@ -403,6 +404,7 @@ public:
#endif #endif
QStringList getTorrentLabels() const; QStringList getTorrentLabels() const;
void setTorrentLabels(const QStringList& labels); void setTorrentLabels(const QStringList& labels);
void addTorrentLabelExternal(const QString &label);
void addTorrentLabel(const QString& label); void addTorrentLabel(const QString& label);
void removeTorrentLabel(const QString& label); void removeTorrentLabel(const QString& label);
bool recursiveDownloadDisabled() const; bool recursiveDownloadDisabled() const;

View file

@ -346,7 +346,7 @@ void AutomatedRssDownloader::saveEditedRule()
rule->setAddPaused(RssDownloadRule::AddPausedState(ui->comboAddPaused->currentIndex())); rule->setAddPaused(RssDownloadRule::AddPausedState(ui->comboAddPaused->currentIndex()));
// Save new label // Save new label
if (!rule->label().isEmpty()) if (!rule->label().isEmpty())
Preferences::instance()->addTorrentLabel(rule->label()); Preferences::instance()->addTorrentLabelExternal(rule->label());
rule->setIgnoreDays(ui->spinIgnorePeriod->value()); rule->setIgnoreDays(ui->spinIgnorePeriod->value());
//rule->setRssFeeds(getSelectedFeeds()); //rule->setRssFeeds(getSelectedFeeds());
// Save it // Save it

View file

@ -85,8 +85,12 @@ void RssDownloadRuleList::loadRulesFromVariantHash(const QVariantHash &h)
{ {
QVariantHash::ConstIterator it = h.begin(); QVariantHash::ConstIterator it = h.begin();
QVariantHash::ConstIterator itend = h.end(); QVariantHash::ConstIterator itend = h.end();
QStringList labels = Preferences::instance()->getTorrentLabels();
for ( ; it != itend; ++it) { for ( ; it != itend; ++it) {
RssDownloadRulePtr rule = RssDownloadRule::fromVariantHash(it.value().toHash()); RssDownloadRulePtr rule = RssDownloadRule::fromVariantHash(it.value().toHash());
// Hack to readd labels forgotten before fix
if (!labels.contains(rule->label()))
Preferences::instance()->addTorrentLabelExternal(rule->label());
if (rule && !rule->name().isEmpty()) if (rule && !rule->name().isEmpty())
saveRule(rule); saveRule(rule);
} }

View file

@ -815,6 +815,7 @@ TransferListFiltersWidget::TransferListFiltersWidget(QWidget *parent, TransferLi
connect(statusLabel, SIGNAL(toggled(bool)), pref, SLOT(setStatusFilterState(const bool))); connect(statusLabel, SIGNAL(toggled(bool)), pref, SLOT(setStatusFilterState(const bool)));
connect(labelLabel, SIGNAL(toggled(bool)), labelFilters, SLOT(toggleFilter(bool))); connect(labelLabel, SIGNAL(toggled(bool)), labelFilters, SLOT(toggleFilter(bool)));
connect(labelLabel, SIGNAL(toggled(bool)), pref, SLOT(setLabelFilterState(const bool))); connect(labelLabel, SIGNAL(toggled(bool)), pref, SLOT(setLabelFilterState(const bool)));
connect(pref, SIGNAL(externalLabelAdded(QString&)), labelFilters, SLOT(addItem(QString&)));
connect(trackerLabel, SIGNAL(toggled(bool)), trackerFilters, SLOT(toggleFilter(bool))); connect(trackerLabel, SIGNAL(toggled(bool)), trackerFilters, SLOT(toggleFilter(bool)));
connect(trackerLabel, SIGNAL(toggled(bool)), pref, SLOT(setTrackerFilterState(const bool))); connect(trackerLabel, SIGNAL(toggled(bool)), pref, SLOT(setTrackerFilterState(const bool)));
connect(this, SIGNAL(trackerSuccess(const QString &, const QString &)), trackerFilters, SLOT(trackerSuccess(const QString &, const QString &))); connect(this, SIGNAL(trackerSuccess(const QString &, const QString &)), trackerFilters, SLOT(trackerSuccess(const QString &, const QString &)));

View file

@ -97,7 +97,7 @@ public:
private slots: private slots:
// Redefine addItem() to make sure the list stays sorted // Redefine addItem() to make sure the list stays sorted
void addItem(QString &label, bool hasTorrent); void addItem(QString &label, bool hasTorrent = false);
void removeItem(const QString &label); void removeItem(const QString &label);
void removeSelectedLabel(); void removeSelectedLabel();
void removeUnusedLabels(); void removeUnusedLabels();