Merge pull request #3730 from Gelmir/rss_save

Couple o' fixes to RSS
This commit is contained in:
sledgehammer999 2015-09-17 17:02:27 -05:00
commit 57ca831d4d
6 changed files with 18 additions and 2 deletions

View file

@ -1616,6 +1616,13 @@ void Preferences::setTorrentLabels(const QStringList& 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)
{
QStringList labels = value("TransferListFilters/customLabels").toStringList();

View file

@ -112,6 +112,7 @@ private slots:
signals:
void changed();
void externalLabelAdded(QString&);
public:
static void initInstance();
@ -399,6 +400,7 @@ public:
#endif
QStringList getTorrentLabels() const;
void setTorrentLabels(const QStringList& labels);
void addTorrentLabelExternal(const QString &label);
void addTorrentLabel(const QString& label);
void removeTorrentLabel(const QString& label);
bool recursiveDownloadDisabled() const;

View file

@ -248,7 +248,9 @@ void AutomatedRssDownloader::updateRuleDefinitionBox()
ui->lineEFilter->clear();
ui->saveDiffDir_check->setChecked(!rule->savePath().isEmpty());
ui->lineSavePath->setText(Utils::Fs::toNativePath(rule->savePath()));
ui->checkRegex->blockSignals(true);
ui->checkRegex->setChecked(rule->useRegex());
ui->checkRegex->blockSignals(false);
if (rule->label().isEmpty()) {
ui->comboLabel->setCurrentIndex(-1);
ui->comboLabel->clearEditText();
@ -344,7 +346,7 @@ void AutomatedRssDownloader::saveEditedRule()
rule->setAddPaused(RssDownloadRule::AddPausedState(ui->comboAddPaused->currentIndex()));
// Save new label
if (!rule->label().isEmpty())
Preferences::instance()->addTorrentLabel(rule->label());
Preferences::instance()->addTorrentLabelExternal(rule->label());
rule->setIgnoreDays(ui->spinIgnorePeriod->value());
//rule->setRssFeeds(getSelectedFeeds());
// Save it

View file

@ -85,8 +85,12 @@ void RssDownloadRuleList::loadRulesFromVariantHash(const QVariantHash &h)
{
QVariantHash::ConstIterator it = h.begin();
QVariantHash::ConstIterator itend = h.end();
QStringList labels = Preferences::instance()->getTorrentLabels();
for ( ; it != itend; ++it) {
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())
saveRule(rule);
}

View file

@ -820,6 +820,7 @@ TransferListFiltersWidget::TransferListFiltersWidget(QWidget *parent, TransferLi
connect(statusLabel, SIGNAL(toggled(bool)), pref, SLOT(setStatusFilterState(const bool)));
connect(labelLabel, SIGNAL(toggled(bool)), labelFilters, SLOT(toggleFilter(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)), pref, SLOT(setTrackerFilterState(const bool)));
connect(this, SIGNAL(trackerSuccess(const QString &, const QString &)), trackerFilters, SLOT(trackerSuccess(const QString &, const QString &)));

View file

@ -101,7 +101,7 @@ public:
private slots:
// 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 removeSelectedLabel();
void removeUnusedLabels();