bool QGalleryTrackerResultSetPrivate::parseRows( const QDBusPendingCall &call, int limit, bool reset) { QDBusReply<QVector<QStringList> > reply(call); typedef QVector<QStringList>::const_iterator iterator; const QVector<QStringList> resultSet = reply.value(); QVector<QVariant> &values = iCache.values; if (reset) { values.clear(); iCache.count = 0; } iCache.count += resultSet.count(); values.reserve(iCache.count * tableWidth); for (iterator it = resultSet.begin(), end = resultSet.end(); it != end; ++it) { for (int i = 0, count = qMin(valueOffset, it->count()); i < count; ++i) values.append(it->at(i)); for (int i = valueOffset, count = qMin(tableWidth, it->count()); i < count; ++i) values.append(valueColumns.at(i - valueOffset)->toVariant(it->at(i))); // The rows should all have a count equal to tableWidth, but check just in case. for (int i = qMin(tableWidth, it->count()); i < tableWidth; ++i) values.append(QVariant()); } if (resultSet.count() <= limit) { if (!values.isEmpty() && !sortCriteria.isEmpty()) { correctRows( row_iterator(values.begin(), tableWidth), row_iterator(values.end(), tableWidth), sortCriteria.constBegin(), sortCriteria.constEnd()); } synchronize(); return true; } else { return false; } }
row_iterator row_begin(size_t i) const { col.clear(); val.clear(); build_row(i, col, val); return row_iterator(col.begin(), col.end(), val.begin()); }
inline typename SpCol<eT>::row_iterator SpCol<eT>::end_row(const uword row_num) { arma_extra_debug_sigprint(); arma_debug_check( (row_num >= SpMat<eT>::n_rows), "end_row(): index out of bounds"); return row_iterator(*this, row_num + 1, 0); }
table_base::row_iterator table_base::row_interface::end() const { return row_iterator(alloc(fact_row_iterator, *this, true)); }
table_base::row_iterator table_base::row_interface::begin() const { return row_iterator(alloc(fact_row_iterator, *this, false)); }
row_iterator row_begin(size_t i) const { return row_iterator(A, i); }
inline typename SpSubview<eT>::row_iterator SpSubview<eT>::end_row(const uword row_num) { return row_iterator(*this, row_num + 1, 0); }
inline typename SpSubview<eT>::row_iterator SpSubview<eT>::end_row() { return row_iterator(*this, n_nonzero); }
row_iterator row_begin(size_t i) const { return row_iterator(backend::row_begin(A, i / 2), i % 2 == 0); }