예제 #1
0
파일: Query.cpp 프로젝트: Aspenka/SSD
relation_data_t Query::getRelationModel(list_t values, Model * & model)
{
    relation_data_t rData;
    QList <Model *> list;
    if(!values.empty())
    {
        QStringList fields = model->getSchema()->getFields();
        int i = 0;
        while(i < values.size())
        {
            int j = i;
            Model * temp = new Model();
            temp->setSchema(model->getSchema());
            temp->setIsNew(false);
            while(values[j] != QPair <QString, QVariant> ("", ""))
            {
                if((fields.contains(values[j].first)) && (values[j].second != ""))
                {
                    temp->setField(values[j].first, values[j].second);
                }                
                j++;
            }
            list.append(temp);
            i = j + 1;
        }
    }
    rData.insert(rName, list);
    return rData;
}
예제 #2
0
파일: view.cpp 프로젝트: malloc47/term-do
string View::formatList(list_t &list, const string d1, const string sep, const string d2) {
  string output = "";
  if(list.empty()) return output;
  FOR_l(i,list)
    output = output + (i==0 || is_dir(list[i-1]) || is_opt(list[i-1]) ? "" : sep) + list.at(i);
  return d1 + output + d2;
}
예제 #3
0
파일: view.cpp 프로젝트: malloc47/term-do
list_t View::chopList(list_t list, const string prefix) {
  if(list.empty()) return list;
  FOR_l(i,list) {
    string item = list[i];
    // normal chop
    if(!item.compare(0,prefix.length(),prefix))
      list.at(i) = item.substr(prefix.length());
    else
      list.at(i) = "["+item+"]";
  }
예제 #4
0
파일: view.cpp 프로젝트: malloc47/term-do
string View::formatList(list_t &list, const string d1, const string sep, const string d2,const unsigned int length) { 
  string output = "";
  if(list.empty()) return output;
  if(list.size()==1 && list.front().size()==0) return output;
  FOR_l(i,list)
    if(output.length() + list.at(i).length() + sep.length()*2 +
       d2.length()*2 + string("... ").length() > length) {
      output = output + sep + "... ";
      break;
    }
    else
      output = output + (i==0 ? "" : sep) + list.at(i);;
  return d1 + output + d2;
}
예제 #5
0
    void prune_if (size_t max_size, pred op)
    {
        if (list_.empty())
            return;

        auto i (std::prev(list_.end()));
        while (size_ > max_size)
        {
            if (op(*i))
            {
                map_.erase(i->first);
                i = list_.erase(i);
                --size_;
            }
            if (i == list_.begin())
                return;

            --i;
        }
    }