FormGenAcceptResult FormGenRecordComposition::acceptsValueImpl(const QVariant &val) const { if( variantType(val) != QMetaType::QVariantHash ) return FormGenAcceptResult::reject({}, val); QVariantHash hash = val.toHash(); QStringList valueStringList; QSet<QString> processedTags; for( const auto &elm : mElements ) { auto elementAccepts = elm.element->acceptsValue(hash.value(elm.tag)); if( ! elementAccepts.acceptable ) { QString path = elm.tag; if( ! elementAccepts.path.isEmpty() ) path += QString("/%1").arg(elementAccepts.path); return FormGenAcceptResult::reject(path, elementAccepts.value); } valueStringList.append(FormGenElement::keyStringValuePair(elm.tag, elementAccepts.valueString)); processedTags.insert(elm.tag); } QSet<QString> remainingTags = hash.keys().toSet() - processedTags; if( ! remainingTags.isEmpty() ) return FormGenAcceptResult::reject(*remainingTags.cbegin(), hash.value(*remainingTags.cbegin())); return FormGenAcceptResult::accept(val, FormGenElement::objectString(valueStringList)); }
void TvmBarDataProxy::generate(const QSet<qint64>& rowKeys, int rowCount, int tvmRowIndex) { qDebug() << "qps::TvmBarDataProxy::generate(): tvm=" << _tvm.data(); if ( !getTvm() ) { resetArray(nullptr); return; } if ( tvmRowIndex >= rowCount ) { qWarning() << "qps::TvmBarDataProxy::generate(): Warning: row >= rowCount."; return; } // Generate empty rows for all tvms (ie for rowCount) QBarDataArray* barDataArray = new QBarDataArray{}; barDataArray->reserve(rowCount); for ( int r = 0; r < rowCount; r++ ) barDataArray->append(new QBarDataRow{}); // Generate a row with rowKeys.size() columns for the TVM QBarDataRow* tvmBarDataRow = new QBarDataRow(rowKeys.size()); auto i = _tvm->getMap().constBegin(); while ( i != _tvm->getMap().constEnd() ) { QSet<qint64>::const_iterator rowIndexIter = rowKeys.find(i.key()); if ( rowIndexIter != rowKeys.constEnd()) { int rowIndex = std::distance(rowKeys.cbegin(), rowIndexIter); if ( rowIndex >= 0 && rowIndex < tvmBarDataRow->size() ) (*tvmBarDataRow)[rowIndex].setValue( static_cast<float>(i.value())); } ++i; } barDataArray->replace(tvmRowIndex, tvmBarDataRow); // Finnaly replace empty tvm row with the tvm data row resetArray(barDataArray); }
QString ModelIndexer::findModel(const qmt::Uid &modelUid) { QMutexLocker locker(&d->indexerMutex); QSet<IndexedModel *> indexedModels = d->indexedModelsByUid.value(modelUid); if (indexedModels.isEmpty()) return QString(); IndexedModel *indexedModel = *indexedModels.cbegin(); QMT_ASSERT(indexedModel, return QString()); return indexedModel->file(); }
QString ModelIndexer::findDiagram(const qmt::Uid &modelUid, const qmt::Uid &diagramUid) { Q_UNUSED(modelUid); // avoid warning in release mode QMutexLocker locker(&d->indexerMutex); QSet<IndexedDiagramReference *> indexedDiagramReferences = d->indexedDiagramReferencesByDiagramUid.value(diagramUid); if (indexedDiagramReferences.isEmpty()) return QString(); IndexedDiagramReference *indexedDiagramReference = *indexedDiagramReferences.cbegin(); QMT_ASSERT(indexedDiagramReference, return QString()); QMT_ASSERT(indexedDiagramReference->modelUid() == modelUid, return QString()); return indexedDiagramReference->file(); }
char* ph_page_requested_urls(void *page) { ph::Page *p = (ph::Page*)page; QSet<QString> urlsList = p->requestedUrls(); QJsonArray urls; for(auto i=urlsList.cbegin(); i != urlsList.cend(); ++i) { urls.append(QJsonValue((*i))); } QByteArray requestedUrls = QJsonDocument(urls).toJson(); char *resultData = new char[requestedUrls.size() + 1]; qstrncpy(resultData, requestedUrls.data(), requestedUrls.size() + 1); return resultData; }
bool Store::deleteFlags(const PimItem::List &items, const QSet<QByteArray> &flags, bool &flagsChanged) { DataStore *store = connection()->storageBackend(); QVector<Flag> flagList; flagList.reserve(flags.size()); for (auto iter = flags.cbegin(), end = flags.cend(); iter != end; ++iter) { Flag flag = Flag::retrieveByName(QString::fromUtf8(*iter)); if (!flag.isValid()) { continue; } flagList.append(flag); } if (!store->removeItemsFlags(items, flagList, &flagsChanged)) { qCDebug(AKONADISERVER_LOG) << "Store::deleteFlags: Unable to remove item flags"; return false; } return true; }