fix multiple items moving up/down

This commit is contained in:
Martin Rotter 2023-10-30 15:07:26 +01:00
parent 518eccfb86
commit b786b5aa20
1 changed files with 24 additions and 9 deletions

View File

@ -436,13 +436,36 @@ void FeedsView::deleteSelectedItem() {
} }
void FeedsView::moveSelectedItemUp() { void FeedsView::moveSelectedItemUp() {
for (RootItem* it : selectedItems()) { auto its = selectedItems();
auto std_its = boolinq::from(its)
.orderBy([](RootItem* it) {
return it->sortOrder();
})
.toStdList();
for (RootItem* it : std_its) {
m_sourceModel->changeSortOrder(it, false, false, it->sortOrder() - 1); m_sourceModel->changeSortOrder(it, false, false, it->sortOrder() - 1);
} }
m_proxyModel->invalidate(); m_proxyModel->invalidate();
} }
void FeedsView::moveSelectedItemDown() {
auto its = selectedItems();
auto std_its = boolinq::from(its)
.orderBy([](RootItem* it) {
return it->sortOrder();
})
.reverse()
.toStdList();
for (RootItem* it : std_its) {
m_sourceModel->changeSortOrder(it, false, false, it->sortOrder() + 1);
}
m_proxyModel->invalidate();
}
void FeedsView::moveSelectedItemTop() { void FeedsView::moveSelectedItemTop() {
for (RootItem* it : selectedItems()) { for (RootItem* it : selectedItems()) {
m_sourceModel->changeSortOrder(it, true, false); m_sourceModel->changeSortOrder(it, true, false);
@ -459,14 +482,6 @@ void FeedsView::moveSelectedItemBottom() {
m_proxyModel->invalidate(); m_proxyModel->invalidate();
} }
void FeedsView::moveSelectedItemDown() {
for (RootItem* it : selectedItems()) {
m_sourceModel->changeSortOrder(it, false, false, it->sortOrder() + 1);
}
m_proxyModel->invalidate();
}
void FeedsView::rearrangeCategoriesOfSelectedItem() { void FeedsView::rearrangeCategoriesOfSelectedItem() {
for (RootItem* it : selectedItems()) { for (RootItem* it : selectedItems()) {
m_sourceModel->sortDirectDescendants(it, RootItem::Kind::Category); m_sourceModel->sortDirectDescendants(it, RootItem::Kind::Category);