void tst_SynchronizeLists::unfiltered()
{
    QFETCH(QVector<QContactLocalId>, reference);
    QFETCH(QVector<QContactLocalId>, original);

    m_filterEnabled = false;
    m_cache = original;

    int c = 0;
    int r = 0;

    synchronizeList(this, m_cache, c, reference, r);

    if (c < m_cache.count())
        m_cache.remove(c, m_cache.count() - c);
    for (; r < reference.count(); ++r)
        m_cache.append(reference.at(r));

    if (m_cache != reference) {
        qDebug() << "expected" << reference;
        qDebug() << "actual  " << m_cache;
    }

    QCOMPARE(m_cache, reference);
}
Exemplo n.º 2
0
const vector< pair<string, size_t> > &oEvent::fillCourses(vector< pair<string, size_t> > &out, bool simple)
{
  out.clear();
  oCourseList::iterator it;
  synchronizeList(oLCourseId);

  Courses.sort();
  string b;
  for (it=Courses.begin(); it != Courses.end(); ++it) {
    if (!it->Removed){

      if (simple) //gdi.addItem(name, it->Name, it->Id);
        out.push_back(make_pair(it->Name, it->Id));
      else {
        b = it->Name + "\t(" + itos(it->nControls) + ")";
        //sprintf_s(bf, 16, "\t(%d)", it->nControls);
        //b+=bf;
        if (!it->getCourseProblems().empty())
          b = "[!] " + b;
        //gdi.addItem(name, b, it->Id);
        out.push_back(make_pair(b, it->Id));
      }
    }
  }
  return out;
}
Exemplo n.º 3
0
void oEvent::getClubs(vector<pClub> &c, bool sort) {
  if (sort) {
    synchronizeList(oLClubId);
    Clubs.sort();
  }
  c.clear();
  c.reserve(Clubs.size());

  for (oClubList::iterator it = Clubs.begin(); it != Clubs.end(); ++it) {
    if (!it->isRemoved())
     c.push_back(&*it);
  }
}
Exemplo n.º 4
0
void oEvent::calculateNumRemainingMaps()
{
  synchronizeList(oLCourseId, true, false);
  synchronizeList(oLRunnerId, false, true);

  for (oCourseList::iterator cit=Courses.begin();
    cit!=Courses.end();++cit) {
    int numMaps = cit->getNumberMaps();
    if (numMaps == 0)
      cit->tMapsRemaining = numeric_limits<int>::min();
    else
      cit->tMapsRemaining = numMaps;
  }

  list<oRunner>::const_iterator it;
  for (it=Runners.begin(); it != Runners.end(); ++it)
    if (!it->isRemoved() && it->getStatus()!=StatusDNS){
      pCourse pc = it->getCourse(false);

      if (pc && pc->tMapsRemaining != numeric_limits<int>::min())
        pc->tMapsRemaining--;
    }
}
Exemplo n.º 5
0
void SeasideCache::contactIdsAvailable()
{
#ifdef SEASIDE_SPARQL_QUERIES
    if (!isPopulated(m_fetchFilter)) {
        appendContacts(m_contactIdRequest.contacts());
        return;
    }
#endif

    synchronizeList(
            this,
            m_contacts[m_fetchFilter],
            m_cacheIndex,
            m_contactIdRequest.ids(),
            m_queryIndex);
}
Exemplo n.º 6
0
void oEvent::generateClubTableData(Table &table, oClub *addClub)
{
  oe->setupClubInfoData();
  if (addClub) {
    addClub->addTableRow(table);
    return;
  }
  synchronizeList(oLClubId);
  oClubList::iterator it;

  for (it=Clubs.begin(); it != Clubs.end(); ++it){
    if (!it->isRemoved()){
      it->addTableRow(table);
    }
  }
}
void tst_SynchronizeLists::unfiltered()
{
    QFETCH(QVector<quint32>, reference);
    QFETCH(QVector<quint32>, original);

    m_filterEnabled = false;
    m_cache = original;

    synchronizeList(this, m_cache, reference);

    if (m_cache != reference) {
        qDebug() << "expected" << reference;
        qDebug() << "actual  " << m_cache;
    }

    QCOMPARE(m_cache, reference);
}
Exemplo n.º 8
0
const vector< pair<string, size_t> > & oEvent::fillClubs(vector< pair<string, size_t> > &out)
{
  out.clear();
  //gdi.clearList(name);
  synchronizeList(oLClubId);
  Clubs.sort();

  oClubList::iterator it;

  for (it=Clubs.begin(); it != Clubs.end(); ++it){
    if (!it->Removed)
      out.push_back(make_pair(it->name, it->Id));
      //gdi.addItem(name, it->name, it->Id);
  }

  return out;
}
Exemplo n.º 9
0
//Returns true if data is changed.
bool oEvent::autoSynchronizeLists(bool SyncPunches)
{
  if (!HasDBConnection)
    return false;

  bool changed=false;
  string ot;

  int mask = getListMask(*this);
  if (mask == 0)
    return false;

  // Reset change data and store update status on objects
  // (which might be incorrectly changed during sql update)
  resetSQLChanged(true, false);

  //Synchronize ourself
  if (mask & oLEventId) {
    ot=sqlUpdated;
    msSynchronize(this);
    if (sqlUpdated!=ot) {
      changed=true;
      gdibase.setWindowTitle(getTitleName());
    }
  }

  //Controls
  if (mask & oLControlId) {
    int oc = sqlCounterControls;
    ot = sqlUpdateControls;
    synchronizeList(oLControlId, false, false);
    changed |= oc!=sqlCounterControls;
    changed |= ot!=sqlUpdateControls;
  }

  //Courses
  if (mask & oLCourseId) {
    int oc = sqlCounterCourses;
    ot = sqlUpdateCourses;
    synchronizeList(oLCourseId, false, false);
    changed |= oc!=sqlCounterCourses;
    changed |= ot!=sqlUpdateCourses;
  }

  //Classes
  if (mask & oLClassId) {
    int oc = sqlCounterClasses;
    ot = sqlUpdateClasses;
    synchronizeList(oLClassId, false, false);
    changed |= oc!=sqlCounterClasses;
    changed |= ot!=sqlUpdateClasses;
  }

  //Clubs
  if (mask & oLClubId) {
    int oc = sqlCounterClubs;
    ot = sqlUpdateClubs;
    synchronizeList(oLClubId, false, false);
    changed |= oc!=sqlCounterClubs;
    changed |= ot!=sqlUpdateClubs;
  }

  //Cards
  if (mask & oLCardId) {
    int oc = sqlCounterCards;
    ot = sqlUpdateCards;
    synchronizeList(oLCardId, false, false);
    changed |= oc!=sqlCounterCards;
    changed |= ot!=sqlUpdateCards;
  }

  //Runners
  if (mask & oLRunnerId) {
    int oc = sqlCounterRunners;
    ot = sqlUpdateRunners;
    synchronizeList(oLRunnerId, false, false);
    changed |= oc!=sqlCounterRunners;
    changed |= ot!=sqlUpdateRunners;
  }

  //Teams
  if (mask & oLTeamId) {
    int oc = sqlCounterTeams;
    ot = sqlUpdateTeams;
    synchronizeList(oLTeamId, false, false);
    changed |= oc!=sqlCounterTeams;
    changed |= ot!=sqlUpdateTeams;
  }

  if (SyncPunches && (mask & oLPunchId)) {
    //Punches
    int oc = sqlCounterPunches;
    ot = sqlUpdatePunches;
    synchronizeList(oLPunchId, false, false);
    changed |= oc!=sqlCounterPunches;
    changed |= ot!=sqlUpdatePunches;
  }

  if (changed) {
    if (needReEvaluate())
      reEvaluateChanged();

    reCalculateLeaderTimes(0);
    //Restore changed staus on object that might have been changed
    //during sql update, due to partial updates
    resetChangeStatus();
    return true;
  }

  return false;
}