on xenial help sign in
Testing.
commit8658165f2b361daa8282412cd19b840bafdb4eb2 authorPawel Stolowski <pawel.stolowski@canonical.com> dateThu 29 Aug 2013, 16:39 (13 years ago) parent5616be6
1 file changed+28−5
plugins/Unity/categories.cpp+28−5
plugins/Unity/categories.cpp+28−5
@@ -99,11 +99,25 @@ void Categories::onCategoryOrderChanged(std::vector<unsigned int> cat_order)
9999 }
100100
101101 if (static_cast<int>(pos) != old_pos) {
102− beginMoveRows(QModelIndex(), old_pos, old_pos, QModelIndex(), pos);
103102 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";
104113 endMoveRows();
105114 }
106115 }
116+
117+ Q_FOREACH(auto cat, m_categoryOrder)
118+ {
119+ qDebug() << "Category" << DeeListModel::data(createIndex(cat, 0),CategoryColumn::DISPLAY_NAME).toString();
120+ }
107121}
108122
109123void
@@ -124,13 +138,17 @@ Categories::onCountChanged()
124138{
125139 CategoryResults* results = qobject_cast<CategoryResults*>(sender());
126140 if (results) {
127− m_updatedCategories << results->categoryIndex();
141+ if (!m_updatedCategories.contains(results->categoryIndex())) {
142+ m_updatedCategories << results->categoryIndex();
143+ qDebug() << "Updated count of" << results->categoryIndex();
144+ }
128145 m_timer.start();
129146 }
130147}
131148
132149void Categories::onRowCountChanged()
133150{
151+ qDebug() << "Overriden model updated";
134152 QAbstractItemModel* model = qobject_cast<QAbstractItemModel*>(sender());
135153 // find the corresponding category index
136154 for (auto iter = m_overriddenCategories.begin(); iter != m_overriddenCategories.end(); ++iter) {
@@ -138,10 +156,11 @@ void Categories::onRowCountChanged()
138156 for (int i = 0; i < rowCount(); i++) {
139157 auto id = data(index(i), RoleCategoryId).toString();
140158 if (id != iter.key()) continue;
141− const int realIndex = m_categoryOrder.indexOf(i);
159+ const int mappedIndex = m_categoryOrder.indexOf(i);
142160 QVector<int> roles;
143161 roles.append(RoleCount);
144− QModelIndex changedIndex = index(realIndex);
162+ QModelIndex changedIndex = index(mappedIndex);
163+ qDebug() << "Overriden model" << id << "count update at index" << mappedIndex;
145164 Q_EMIT dataChanged(changedIndex, changedIndex, roles);
146165 break;
147166 }
@@ -260,13 +279,17 @@ Categories::data(const QModelIndex& index, int role) const
260279 return QVariant::fromValue(m_overriddenCategories[id]);
261280 }
262281 return QVariant::fromValue(getResults(realRow));
263− case RoleCount:
282+ case RoleCount:
264283 if (m_overriddenCategories.size() > 0)
265284 {
266285 auto id = DeeListModel::data(realIndex, CategoryColumn::ID).toString();
267286 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();
268289 return QVariant::fromValue(m_overriddenCategories[id]->rowCount());
290+ }
269291 }
292+ qDebug() << "Get count of cat" << realRow << "at pos" << index.row() << "Count=" << getResults(realIndex.row())->rowCount();
270293 return QVariant::fromValue(getResults(realIndex.row())->rowCount());
271294 case RoleCategoryIndex:
272295 return QVariant::fromValue(index.row()); // no remapping to realIndex