Skip to content
Snippets Groups Projects
Commit b9d3cef2 authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

proper use of beginResetModel instead of extra connections

parent a213a595
No related branches found
No related tags found
1 merge request!2397InstrumentsSet and SamplesSet based on SetWithModel, which owns a QListModel
...@@ -45,8 +45,10 @@ public: ...@@ -45,8 +45,10 @@ public:
void clear() void clear()
{ {
m_qmodel->beginResetModel();
m_vec.clear(); m_vec.clear();
m_idx = -1; m_idx = -1;
m_qmodel->endResetModel();
emit SetBase::setChanged(); emit SetBase::setChanged();
} }
void delete_current() void delete_current()
...@@ -70,8 +72,10 @@ public: ...@@ -70,8 +72,10 @@ public:
void setCurrentIndex(size_t i) void setCurrentIndex(size_t i)
{ {
ASSERT(i < m_vec.size() || i == size_t(-1)); ASSERT(i < m_vec.size() || i == size_t(-1));
m_qmodel->beginResetModel();
if (i != m_idx) if (i != m_idx)
m_idx = i; m_idx = i;
m_qmodel->endResetModel();
emit SetBase::setChanged(); emit SetBase::setChanged();
} }
......
...@@ -27,10 +27,4 @@ InstrumentsQListView::InstrumentsQListView(InstrumentsSet* set) ...@@ -27,10 +27,4 @@ InstrumentsQListView::InstrumentsQListView(InstrumentsSet* set)
connect(this, &QListView::clicked, connect(this, &QListView::clicked,
[this, set](const QModelIndex& qi) { set->setCurrentIndex(qi.row()); }); [this, set](const QModelIndex& qi) { set->setCurrentIndex(qi.row()); });
disconnect(gDoc->instruments(), &InstrumentsSet::setChanged, nullptr, nullptr);
connect(gDoc->instruments(), &InstrumentsSet::setChanged, [this, set] {
setCurrentIndex(set->model()->index(set->currentIndex(), 0));
repaint();
});
} }
...@@ -27,12 +27,4 @@ SamplesQListView::SamplesQListView(SamplesSet* set) ...@@ -27,12 +27,4 @@ SamplesQListView::SamplesQListView(SamplesSet* set)
connect(this, &QListView::clicked, connect(this, &QListView::clicked,
[this, set](const QModelIndex& qi) { set->setCurrentIndex(qi.row()); }); [this, set](const QModelIndex& qi) { set->setCurrentIndex(qi.row()); });
disconnect(gDoc->samples(), &SamplesSet::setChanged, nullptr, nullptr);
connect(gDoc->samples(), &SamplesSet::setChanged, [this, set] {
setCurrentIndex(set->model()->index(set->currentIndex(), 0));
repaint();
});
// TODO reinvestigate connect(selectionModel(), &QItemSelectionModel::currentChanged,
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment