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;
    }
}
Esempio n. 2
0
    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());
    }
Esempio n. 3
0
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);
  }
Esempio n. 4
0
 table_base::row_iterator table_base::row_interface::end() const {
     return row_iterator(alloc(fact_row_iterator, *this, true));
 }
Esempio n. 5
0
 table_base::row_iterator table_base::row_interface::begin() const {
     return row_iterator(alloc(fact_row_iterator, *this, false));
 }
Esempio n. 6
0
 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);
  }
Esempio n. 9
0
 row_iterator row_begin(size_t i) const {
     return row_iterator(backend::row_begin(A, i / 2), i % 2 == 0);
 }