67 { |
67 { |
68 Q_UNUSED(parent); |
68 Q_UNUSED(parent); |
69 return mEntries.count(); |
69 return mEntries.count(); |
70 } |
70 } |
71 |
71 |
72 bool TsModel::insertRows(int row, int count, TsModelItem *item, const QModelIndex &parent) |
72 bool TsModel::insertRows(int row, int count, QScopedPointer<TsModelItem> &item, const QModelIndex &parent) |
73 { |
73 { |
74 beginInsertRows(parent, row, row+count-1); |
74 beginInsertRows(parent, row, row+count-1); |
75 mEntries.insert(row, item); |
75 mEntries.insert(row, item.data()); |
|
76 item.take(); |
76 endInsertRows(); |
77 endInsertRows(); |
77 return true; |
78 return true; |
78 } |
79 } |
79 |
80 |
80 bool TsModel::removeRows(int row, int count, const QModelIndex &parent) |
81 bool TsModel::removeRows(int row, int count, const QModelIndex &parent) |
95 endMoveRows(); |
96 endMoveRows(); |
96 return true; |
97 return true; |
97 } |
98 } |
98 |
99 |
99 |
100 |
100 bool TsModel::updateRows(int row, TsModelItem *item) |
101 bool TsModel::updateRows(int row, QScopedPointer<TsModelItem> &item) |
101 { |
102 { |
102 TsModelItem *oldItem = mEntries.at(row); |
103 TsModelItem *oldItem = mEntries.at(row); |
103 mEntries[row] = item; |
104 mEntries[row] = item.data(); |
|
105 item.take(); |
104 delete oldItem; |
106 delete oldItem; |
105 |
107 |
106 emit dataChanged(index(row),index(row)); |
108 emit dataChanged(index(row),index(row)); |
107 return true; |
109 return true; |
108 } |
110 } |
160 switch (changes[iter].first.changeType()) { |
162 switch (changes[iter].first.changeType()) { |
161 case TsTaskChangeInfo::EChangeDelete : |
163 case TsTaskChangeInfo::EChangeDelete : |
162 removeRows(changes[iter].first.oldOffset(), 1); |
164 removeRows(changes[iter].first.oldOffset(), 1); |
163 break; |
165 break; |
164 case TsTaskChangeInfo::EChangeInsert : |
166 case TsTaskChangeInfo::EChangeInsert : |
165 insertRows(changes[iter].first.newOffset(), 1, |
167 { |
166 new TsModelItem(changes[iter].second)); |
168 QScopedPointer<TsModelItem> item(new TsModelItem(changes[iter].second)); |
167 break; |
169 insertRows(changes[iter].first.newOffset(), 1, item); |
|
170 break; |
|
171 } |
168 case TsTaskChangeInfo::EChangeMove : |
172 case TsTaskChangeInfo::EChangeMove : |
169 moveRows(changes[iter].first.oldOffset(), changes[iter].first.newOffset()); |
173 moveRows(changes[iter].first.oldOffset(), changes[iter].first.newOffset()); |
170 break; |
174 break; |
171 case TsTaskChangeInfo::EChangeUpdate : |
175 case TsTaskChangeInfo::EChangeUpdate : |
172 updateRows(changes[iter].first.oldOffset(), |
176 { |
173 new TsModelItem(changes[iter].second)); |
177 QScopedPointer<TsModelItem> item(new TsModelItem(changes[iter].second)); |
174 break; |
178 updateRows(changes[iter].first.oldOffset(), item); |
|
179 break; |
|
180 } |
175 default: |
181 default: |
176 break; |
182 break; |
177 } |
183 } |
178 } |
184 } |
179 } |
185 } |