on xenial help sign in
Testing.
8658165Pawel Stolowski
plugins/Unity/categories.cpp+28−5
@@ -99,11 +99,25 @@ void Categories::onCategoryOrderChanged(std::vector<unsigned int> cat_order)
99 }
99 }
100
100
101 if (static_cast<int>(pos) != old_pos) {
101 if (static_cast<int>(pos) != old_pos) {
102− beginMoveRows(QModelIndex(), old_pos, old_pos, QModelIndex(), pos);
103 m_categoryOrder.move(old_pos, pos);
102 m_categoryOrder.move(old_pos, pos);
103+ int target_pos = pos;
104+ //if (pos > old_pos)
105+ // target_pos = target_pos - old_pos;
106+ bool status = beginMoveRows(QModelIndex(), old_pos, old_pos, QModelIndex(), target_pos);
107+ if (status != true)
108+ qWarning("!!!!!!!!!!!!!!!!!!!!!!!");
109+
110+ qDebug() << "Moving category" << cat <<
111+ DeeListModel::data(createIndex(cat, 0),CategoryColumn::DISPLAY_NAME).toString()
112+ << ":" << old_pos << "->" << pos << target_pos << "g";
104 endMoveRows();
113 endMoveRows();
105 }
114 }
106 }
115 }
116+
117+ Q_FOREACH(auto cat, m_categoryOrder)
118+ {
119+ qDebug() << "Category" << DeeListModel::data(createIndex(cat, 0),CategoryColumn::DISPLAY_NAME).toString();
120+ }
107}
121}
108
122
109void
123void
@@ -124,13 +138,17 @@ Categories::onCountChanged()
124{
138{
125 CategoryResults* results = qobject_cast<CategoryResults*>(sender());
139 CategoryResults* results = qobject_cast<CategoryResults*>(sender());
126 if (results) {
140 if (results) {
141+ if (!m_updatedCategories.contains(results->categoryIndex())) {
142+ m_updatedCategories << results->categoryIndex();
127− m_updatedCategories << results->categoryIndex();
143+ qDebug() << "Updated count of" << results->categoryIndex();
144+ }
128 m_timer.start();
145 m_timer.start();
129 }
146 }
130}
147}
131
148
132void Categories::onRowCountChanged()
149void Categories::onRowCountChanged()
133{
150{
151+ qDebug() << "Overriden model updated";
134 QAbstractItemModel* model = qobject_cast<QAbstractItemModel*>(sender());
152 QAbstractItemModel* model = qobject_cast<QAbstractItemModel*>(sender());
135 // find the corresponding category index
153 // find the corresponding category index
136 for (auto iter = m_overriddenCategories.begin(); iter != m_overriddenCategories.end(); ++iter) {
154 for (auto iter = m_overriddenCategories.begin(); iter != m_overriddenCategories.end(); ++iter) {
@@ -138,10 +156,11 @@ void Categories::onRowCountChanged()
138 for (int i = 0; i < rowCount(); i++) {
156 for (int i = 0; i < rowCount(); i++) {
139 auto id = data(index(i), RoleCategoryId).toString();
157 auto id = data(index(i), RoleCategoryId).toString();
140 if (id != iter.key()) continue;
158 if (id != iter.key()) continue;
141− const int realIndex = m_categoryOrder.indexOf(i);
159+ const int mappedIndex = m_categoryOrder.indexOf(i);
142 QVector<int> roles;
160 QVector<int> roles;
143 roles.append(RoleCount);
161 roles.append(RoleCount);
144− QModelIndex changedIndex = index(realIndex);
162+ QModelIndex changedIndex = index(mappedIndex);
163+ qDebug() << "Overriden model" << id << "count update at index" << mappedIndex;
145 Q_EMIT dataChanged(changedIndex, changedIndex, roles);
164 Q_EMIT dataChanged(changedIndex, changedIndex, roles);
146 break;
165 break;
147 }
166 }
@@ -260,13 +279,17 @@ Categories::data(const QModelIndex& index, int role) const
260 return QVariant::fromValue(m_overriddenCategories[id]);
279 return QVariant::fromValue(m_overriddenCategories[id]);
261 }
280 }
262 return QVariant::fromValue(getResults(realRow));
281 return QVariant::fromValue(getResults(realRow));
263− case RoleCount:
282+ case RoleCount:
264 if (m_overriddenCategories.size() > 0)
283 if (m_overriddenCategories.size() > 0)
265 {
284 {
266 auto id = DeeListModel::data(realIndex, CategoryColumn::ID).toString();
285 auto id = DeeListModel::data(realIndex, CategoryColumn::ID).toString();
267 if (m_overriddenCategories.find(id) != m_overriddenCategories.end())
286 if (m_overriddenCategories.find(id) != m_overriddenCategories.end())
287+ {
288+ qDebug() << "Get count of cat" << realRow << "at pos" << index.row() << "Count=" << m_overriddenCategories[id]->rowCount();
268 return QVariant::fromValue(m_overriddenCategories[id]->rowCount());
289 return QVariant::fromValue(m_overriddenCategories[id]->rowCount());
290+ }
269 }
291 }
292+ qDebug() << "Get count of cat" << realRow << "at pos" << index.row() << "Count=" << getResults(realIndex.row())->rowCount();
270 return QVariant::fromValue(getResults(realIndex.row())->rowCount());
293 return QVariant::fromValue(getResults(realIndex.row())->rowCount());
271 case RoleCategoryIndex:
294 case RoleCategoryIndex:
272 return QVariant::fromValue(index.row()); // no remapping to realIndex
295 return QVariant::fromValue(index.row()); // no remapping to realIndex