Mercurial > hg > svcore
comparison data/model/ModelDataTableModel.cpp @ 1527:710e6250a401 zoom
Merge from default branch
author | Chris Cannam |
---|---|
date | Mon, 17 Sep 2018 13:51:14 +0100 |
parents | ec9e65fcf749 |
children | 70e172e6cc59 |
comparison
equal
deleted
inserted
replaced
1324:d4a28d1479a8 | 1527:710e6250a401 |
---|---|
71 ModelDataTableModel::insertRow(int row, const QModelIndex &parent) | 71 ModelDataTableModel::insertRow(int row, const QModelIndex &parent) |
72 { | 72 { |
73 if (!m_model) return false; | 73 if (!m_model) return false; |
74 if (parent.isValid()) return false; | 74 if (parent.isValid()) return false; |
75 | 75 |
76 emit beginInsertRows(parent, row, row); | |
77 | |
78 Command *command = m_model->getInsertRowCommand(getUnsorted(row)); | 76 Command *command = m_model->getInsertRowCommand(getUnsorted(row)); |
79 | 77 |
80 if (command) { | 78 if (command) { |
81 emit addCommand(command); | 79 emit addCommand(command); |
82 } | 80 } |
83 | 81 |
84 emit endInsertRows(); | |
85 | |
86 return (command ? true : false); | 82 return (command ? true : false); |
87 } | 83 } |
88 | 84 |
89 bool | 85 bool |
90 ModelDataTableModel::removeRow(int row, const QModelIndex &parent) | 86 ModelDataTableModel::removeRow(int row, const QModelIndex &parent) |
91 { | 87 { |
92 if (!m_model) return false; | 88 if (!m_model) return false; |
93 if (parent.isValid()) return false; | 89 if (parent.isValid()) return false; |
94 | 90 |
95 emit beginRemoveRows(parent, row, row); | |
96 | |
97 Command *command = m_model->getRemoveRowCommand(getUnsorted(row)); | 91 Command *command = m_model->getRemoveRowCommand(getUnsorted(row)); |
98 | 92 |
99 if (command) { | 93 if (command) { |
100 emit addCommand(command); | 94 emit addCommand(command); |
101 } | 95 } |
102 | |
103 emit endRemoveRows(); | |
104 | 96 |
105 return (command ? true : false); | 97 return (command ? true : false); |
106 } | 98 } |
107 | 99 |
108 Qt::ItemFlags | 100 Qt::ItemFlags |
142 int | 134 int |
143 ModelDataTableModel::rowCount(const QModelIndex &parent) const | 135 ModelDataTableModel::rowCount(const QModelIndex &parent) const |
144 { | 136 { |
145 if (!m_model) return 0; | 137 if (!m_model) return 0; |
146 if (parent.isValid()) return 0; | 138 if (parent.isValid()) return 0; |
147 return m_model->getRowCount(); | 139 int count = m_model->getRowCount(); |
140 return count; | |
148 } | 141 } |
149 | 142 |
150 int | 143 int |
151 ModelDataTableModel::columnCount(const QModelIndex &parent) const | 144 ModelDataTableModel::columnCount(const QModelIndex &parent) const |
152 { | 145 { |
213 } | 206 } |
214 | 207 |
215 void | 208 void |
216 ModelDataTableModel::modelChanged() | 209 ModelDataTableModel::modelChanged() |
217 { | 210 { |
211 SVDEBUG << "ModelDataTableModel::modelChanged" << endl; | |
212 QModelIndex ix0; | |
213 QModelIndex ix1; | |
214 if (rowCount() > 0) { | |
215 ix0 = createIndex(0, 0); | |
216 int lastCol = columnCount() - 1; | |
217 if (lastCol < 0) lastCol = 0; | |
218 ix1 = createIndex(rowCount(), lastCol); | |
219 } | |
220 SVDEBUG << "emitting dataChanged from row " << ix0.row() << " to " << ix1.row() << endl; | |
221 emit dataChanged(ix0, ix1); | |
218 clearSort(); | 222 clearSort(); |
219 emit layoutChanged(); | 223 emit layoutChanged(); |
220 } | 224 } |
221 | 225 |
222 void | 226 void |
223 ModelDataTableModel::modelChangedWithin(sv_frame_t, sv_frame_t) | 227 ModelDataTableModel::modelChangedWithin(sv_frame_t f0, sv_frame_t f1) |
224 { | 228 { |
225 //!!! inefficient | 229 SVDEBUG << "ModelDataTableModel::modelChangedWithin(" << f0 << "," << f1 << ")" << endl; |
230 QModelIndex ix0 = getModelIndexForFrame(f0); | |
231 QModelIndex ix1 = getModelIndexForFrame(f1); | |
232 int row0 = ix0.row(); | |
233 int row1 = ix1.row(); | |
234 if (row0 > 0) { | |
235 ix0 = createIndex(row0 - 1, ix0.column(), (void *)0); | |
236 } | |
237 if (row1 + 1 < rowCount()) { | |
238 ix1 = createIndex(row1 + 1, ix1.column(), (void *)0); | |
239 } | |
240 SVDEBUG << "emitting dataChanged from row " << ix0.row() << " to " << ix1.row() << endl; | |
241 emit dataChanged(ix0, ix1); | |
226 clearSort(); | 242 clearSort(); |
227 emit layoutChanged(); | 243 emit layoutChanged(); |
228 } | 244 } |
229 | 245 |
230 void | 246 void |