viewsdialog:update remove to multiple selection

work/spdx
Michail Vourlakos
parent 073d6c1d60
commit f273da26db

@ -174,6 +174,24 @@ const Latte::Data::View Views::selectedViewCurrentData() const
}
}
const Data::ViewsTable Views::selectedViewsCurrentData() const
{
Data::ViewsTable selectedviews;
if (!hasSelectedView()) {
return selectedviews;
}
QModelIndexList layoutidindexes = m_view->selectionModel()->selectedRows(Model::Views::IDCOLUMN);
for(int i=0; i<layoutidindexes.count(); ++i) {
QString selectedid = layoutidindexes[i].data(Qt::UserRole).toString();
selectedviews << m_model->currentData(selectedid);
}
return selectedviews;
}
const Latte::Data::View Views::selectedViewOriginalData() const
{
int selectedRow = m_view->currentIndex().row();
@ -218,17 +236,19 @@ void Views::duplicateSelectedView()
void Views::removeSelected()
{
int row = m_view->currentIndex().row();
if (row < 0) {
if (!hasSelectedView()) {
return;
}
row = qMin(row, m_proxyModel->rowCount() - 1);
m_view->selectRow(row);
Data::ViewsTable selectedviews = selectedViewsCurrentData();;
int selectionheadrow = m_model->rowForId(selectedviews[0].id);
for (int i=0; i<selectedviews.rowCount(); ++i) {
m_model->removeView(selectedviews[i].id);
}
Latte::Data::View selected = selectedViewCurrentData();
m_model->removeView(selected.id);
m_view->selectRow(qMax(0, selectionheadrow-1));
}
void Views::selectRow(const QString &id)

@ -76,6 +76,8 @@ public:
const Latte::Data::View selectedViewCurrentData() const;
const Latte::Data::View selectedViewOriginalData() const;
const Data::ViewsTable selectedViewsCurrentData() const;
const Latte::Data::View appendViewFromViewTemplate(const Data::View &view);
void selectRow(const QString &id);

@ -258,7 +258,6 @@ void ViewsHandler::removeSelectedView()
return;
}
Latte::Data::View selectedView = m_viewsController->selectedViewCurrentData();
m_viewsController->removeSelected();
}

Loading…
Cancel
Save