AutomatedRssDownloader::~AutomatedRssDownloader() { // Save current item on exit saveEditedRule(); saveSettings(); delete m_editHotkey; delete m_deleteHotkey; delete m_ui; delete m_episodeRegex; }
void AutomatedRssDownloader::loadRulesList() { // Make sure we save the current item before clearing if (m_editedRule) { saveEditedRule(); } ui->listRules->clear(); foreach (const QString &rule_name, m_editableRuleList->ruleNames()) { QListWidgetItem *item = new QListWidgetItem(rule_name, ui->listRules); item->setFlags(item->flags()|Qt::ItemIsUserCheckable); if (m_editableRuleList->getRule(rule_name)->isEnabled()) item->setCheckState(Qt::Checked); else item->setCheckState(Qt::Unchecked); } if (ui->listRules->count() > 0 && !ui->listRules->currentItem()) ui->listRules->setCurrentRow(0); }
void AutomatedRssDownloader::updateRuleDefinitionBox() { const QList<QListWidgetItem *> selection = m_ui->listRules->selectedItems(); QListWidgetItem *currentRuleItem = ((selection.count() == 1) ? selection.first() : nullptr); if (m_currentRuleItem != currentRuleItem) { saveEditedRule(); // Save previous rule first m_currentRuleItem = currentRuleItem; //m_ui->listRules->setCurrentItem(m_currentRuleItem); } // Update rule definition box if (m_currentRuleItem) { m_currentRule = RSS::AutoDownloader::instance()->ruleByName(m_currentRuleItem->text()); m_ui->lineContains->setText(m_currentRule.mustContain()); m_ui->lineNotContains->setText(m_currentRule.mustNotContain()); if (!m_currentRule.episodeFilter().isEmpty()) m_ui->lineEFilter->setText(m_currentRule.episodeFilter()); else m_ui->lineEFilter->clear(); m_ui->checkBoxSaveDiffDir->setChecked(!m_currentRule.savePath().isEmpty()); m_ui->lineSavePath->setText(Utils::Fs::toNativePath(m_currentRule.savePath())); m_ui->checkRegex->blockSignals(true); m_ui->checkRegex->setChecked(m_currentRule.useRegex()); m_ui->checkRegex->blockSignals(false); m_ui->checkSmart->blockSignals(true); m_ui->checkSmart->setChecked(m_currentRule.useSmartFilter()); m_ui->checkSmart->blockSignals(false); m_ui->comboCategory->setCurrentIndex(m_ui->comboCategory->findText(m_currentRule.assignedCategory())); if (m_currentRule.assignedCategory().isEmpty()) m_ui->comboCategory->clearEditText(); int index = 0; if (m_currentRule.addPaused() == TriStateBool::True) index = 1; else if (m_currentRule.addPaused() == TriStateBool::False) index = 2; m_ui->comboAddPaused->setCurrentIndex(index); m_ui->spinIgnorePeriod->setValue(m_currentRule.ignoreDays()); QDateTime dateTime = m_currentRule.lastMatch(); QString lMatch; if (dateTime.isValid()) lMatch = tr("Last Match: %1 days ago").arg(dateTime.daysTo(QDateTime::currentDateTime())); else lMatch = tr("Last Match: Unknown"); m_ui->lblLastMatch->setText(lMatch); updateMustLineValidity(); updateMustNotLineValidity(); updateEpisodeFilterValidity(); updateFieldsToolTips(m_ui->checkRegex->isChecked()); m_ui->ruleDefBox->setEnabled(true); } else { m_currentRule = RSS::AutoDownloadRule(); clearRuleDefinitionBox(); m_ui->ruleDefBox->setEnabled(false); } updateFeedList(); updateMatchingArticles(); }