Drag'n'Drop fixups.

1. Proper event handling
2. Allow folder moving
3. Allow moving into folders
This commit is contained in:
Nick Tiskov 2013-06-04 18:28:58 +04:00 committed by sledgehammer999
parent 933b2817ce
commit 8f12cfc817

View file

@ -173,19 +173,23 @@ void FeedListWidget::updateCurrentFeed(QTreeWidgetItem* new_item) {
} }
void FeedListWidget::dragMoveEvent(QDragMoveEvent * event) { void FeedListWidget::dragMoveEvent(QDragMoveEvent * event) {
QTreeWidget::dragMoveEvent(event);
QTreeWidgetItem *item = itemAt(event->pos()); QTreeWidgetItem *item = itemAt(event->pos());
// Prohibit dropping onto global unread counter
if (item == m_unreadStickyItem) { if (item == m_unreadStickyItem) {
event->ignore(); event->ignore();
} else { return;
if (item && isFolder(item)) }
event->ignore(); // Prohibit dragging of global unread counter
else {
if (selectedItems().contains(m_unreadStickyItem)) { if (selectedItems().contains(m_unreadStickyItem)) {
event->ignore(); event->ignore();
} else { return;
QTreeWidget::dragMoveEvent(event);
}
} }
// Prohibit dropping onto feeds
if (item && isFeed(item)) {
event->ignore();
return;
} }
} }