mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-08 06:00:59 -07:00
parent
cecf2d28e6
commit
b8cd614775
12 changed files with 170 additions and 18 deletions
|
@ -65,6 +65,7 @@ RSSWidget::RSSWidget(QWidget *parent)
|
|||
m_ui->actionCopyFeedURL->setIcon(UIThemeManager::instance()->getIcon(u"edit-copy"_qs));
|
||||
m_ui->actionDelete->setIcon(UIThemeManager::instance()->getIcon(u"edit-clear"_qs));
|
||||
m_ui->actionDownloadTorrent->setIcon(UIThemeManager::instance()->getIcon(u"downloading"_qs, u"download"_qs));
|
||||
m_ui->actionEditFeedURL->setIcon(UIThemeManager::instance()->getIcon(u"edit-rename"_qs));
|
||||
m_ui->actionMarkItemsRead->setIcon(UIThemeManager::instance()->getIcon(u"task-complete"_qs, u"mail-mark-read"_qs));
|
||||
m_ui->actionNewFolder->setIcon(UIThemeManager::instance()->getIcon(u"folder-new"_qs));
|
||||
m_ui->actionNewSubscription->setIcon(UIThemeManager::instance()->getIcon(u"list-add"_qs));
|
||||
|
@ -101,6 +102,7 @@ RSSWidget::RSSWidget(QWidget *parent)
|
|||
// Feeds list actions
|
||||
connect(m_ui->actionDelete, &QAction::triggered, this, &RSSWidget::deleteSelectedItems);
|
||||
connect(m_ui->actionRename, &QAction::triggered, this, &RSSWidget::renameSelectedRSSItem);
|
||||
connect(m_ui->actionEditFeedURL, &QAction::triggered, this, &RSSWidget::editSelectedRSSFeedURL);
|
||||
connect(m_ui->actionUpdate, &QAction::triggered, this, &RSSWidget::refreshSelectedItems);
|
||||
connect(m_ui->actionNewFolder, &QAction::triggered, this, &RSSWidget::askNewFolder);
|
||||
connect(m_ui->actionNewSubscription, &QAction::triggered, this, &RSSWidget::on_newFeedButton_clicked);
|
||||
|
@ -158,12 +160,15 @@ void RSSWidget::displayRSSListMenu(const QPoint &pos)
|
|||
|
||||
if (selectedItems.size() == 1)
|
||||
{
|
||||
if (selectedItems.first() != m_feedListWidget->stickyUnreadItem())
|
||||
QTreeWidgetItem *selectedItem = selectedItems.first();
|
||||
if (selectedItem != m_feedListWidget->stickyUnreadItem())
|
||||
{
|
||||
menu->addAction(m_ui->actionRename);
|
||||
if (m_feedListWidget->isFeed(selectedItem))
|
||||
menu->addAction(m_ui->actionEditFeedURL);
|
||||
menu->addAction(m_ui->actionDelete);
|
||||
menu->addSeparator();
|
||||
if (m_feedListWidget->isFolder(selectedItems.first()))
|
||||
if (m_feedListWidget->isFolder(selectedItem))
|
||||
menu->addAction(m_ui->actionNewFolder);
|
||||
}
|
||||
}
|
||||
|
@ -420,6 +425,29 @@ void RSSWidget::renameSelectedRSSItem()
|
|||
} while (!ok);
|
||||
}
|
||||
|
||||
void RSSWidget::editSelectedRSSFeedURL()
|
||||
{
|
||||
QList<QTreeWidgetItem *> selectedItems = m_feedListWidget->selectedItems();
|
||||
if (selectedItems.size() != 1)
|
||||
return;
|
||||
|
||||
QTreeWidgetItem *item = selectedItems.first();
|
||||
RSS::Feed *rssFeed = qobject_cast<RSS::Feed *>(m_feedListWidget->getRSSItem(item));
|
||||
Q_ASSERT(rssFeed);
|
||||
if (Q_UNLIKELY(!rssFeed))
|
||||
return;
|
||||
|
||||
bool ok = false;
|
||||
QString newURL = AutoExpandableDialog::getText(this, tr("Please type a RSS feed URL")
|
||||
, tr("Feed URL:"), QLineEdit::Normal, rssFeed->url(), &ok).trimmed();
|
||||
if (!ok || newURL.isEmpty())
|
||||
return;
|
||||
|
||||
const nonstd::expected<void, QString> result = RSS::Session::instance()->setFeedURL(rssFeed, newURL);
|
||||
if (!result)
|
||||
QMessageBox::warning(this, u"qBittorrent"_qs, result.error(), QMessageBox::Ok);
|
||||
}
|
||||
|
||||
void RSSWidget::refreshSelectedItems()
|
||||
{
|
||||
for (QTreeWidgetItem *item : asConst(m_feedListWidget->selectedItems()))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue