mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-25 06:40:58 -04:00
FeedReader: The feed can be moved with drag and drop to a folder
This commit is contained in:
parent
571f709b50
commit
186976e209
10 changed files with 285 additions and 8 deletions
|
@ -84,9 +84,16 @@ FeedReaderDialog::FeedReaderDialog(RsFeedReader *feedReader, FeedReaderNotify *n
|
|||
connect(ui->feedAddButton, SIGNAL(clicked()), this, SLOT(newFeed()));
|
||||
connect(ui->feedProcessButton, SIGNAL(clicked()), this, SLOT(processFeed()));
|
||||
|
||||
connect(ui->feedTreeWidget, SIGNAL(feedReparent(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(feedTreeReparent(QTreeWidgetItem*,QTreeWidgetItem*)));
|
||||
|
||||
mFeedCompareRole = new RSTreeWidgetItemCompareRole;
|
||||
mFeedCompareRole->setRole(COLUMN_FEED_NAME, ROLE_FEED_SORT);
|
||||
|
||||
/* enable drag and drop */
|
||||
ui->feedTreeWidget->setAcceptDrops(true);
|
||||
ui->feedTreeWidget->setDragEnabled(true);
|
||||
ui->feedTreeWidget->setDragDropMode(QAbstractItemView::InternalMove);
|
||||
|
||||
/* initialize root item */
|
||||
mRootItem = new QTreeWidgetItem(ui->feedTreeWidget);
|
||||
QString name = tr("Message Folders");
|
||||
|
@ -395,6 +402,9 @@ void FeedReaderDialog::updateFeeds(uint32_t parentId, QTreeWidgetItem *parentIte
|
|||
mOpenFeedIds->removeAt(index);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* disable drop */
|
||||
item->setFlags(item->flags() & ~Qt::ItemIsDropEnabled);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -832,3 +842,30 @@ void FeedReaderDialog::processFeed()
|
|||
|
||||
mFeedReader->processFeed(feedId);
|
||||
}
|
||||
|
||||
void FeedReaderDialog::feedTreeReparent(QTreeWidgetItem *item, QTreeWidgetItem *newParent)
|
||||
{
|
||||
if (!item || ! newParent) {
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t feedId = item->data(COLUMN_FEED_DATA, ROLE_FEED_ID).toUInt();
|
||||
uint32_t parentId = newParent->data(COLUMN_FEED_DATA, ROLE_FEED_ID).toUInt();
|
||||
|
||||
if (feedId == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
RsFeedAddResult result = mFeedReader->setParent(feedId, parentId);
|
||||
if (FeedReaderStringDefs::showError(this, result, tr("Move feed"), tr("Cannot move feed."))) {
|
||||
return;
|
||||
}
|
||||
|
||||
bool expanded = item->isExpanded();
|
||||
item->parent()->removeChild(item);
|
||||
newParent->addChild(item);
|
||||
item->setExpanded(expanded);
|
||||
newParent->setExpanded(true);
|
||||
|
||||
calculateFeedItems();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue