本文整理汇总了C++中MediaQuery::select方法的典型用法代码示例。如果您正苦于以下问题:C++ MediaQuery::select方法的具体用法?C++ MediaQuery::select怎么用?C++ MediaQuery::select使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MediaQuery
的用法示例。
在下文中一共展示了MediaQuery::select方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: run
void AudioStreamListEngine::run()
{
QThread::setTerminationEnabled(true);
m_stop = false;
if (m_updateSourceInfo || m_removeSourceInfo) {
NepomukListEngine::run();
return;
}
//Create media list based on engine argument and filter
QList<MediaItem> mediaList;
MediaVocabulary mediaVocabulary = MediaVocabulary();
QString engineArg = m_mediaListProperties.engineArg();
QString engineFilter = m_mediaListProperties.engineFilter();
if (m_nepomukInited) {
if (engineArg.isEmpty()) {
MediaQuery query;
QStringList bindings;
bindings.append(mediaVocabulary.mediaResourceBinding());
bindings.append(mediaVocabulary.mediaResourceUrlBinding());
bindings.append(mediaVocabulary.titleBinding());
bindings.append(mediaVocabulary.ratingBinding());
bindings.append(mediaVocabulary.descriptionBinding());
bindings.append(mediaVocabulary.artworkBinding());
//bindings.append(mediaVocabulary.genreBinding());
query.select(bindings, MediaQuery::Distinct);
query.startWhere();
query.addCondition(mediaVocabulary.hasTypeAudioStream(MediaQuery::Required));
query.addCondition(mediaVocabulary.hasTitle(MediaQuery::Required));
query.addCondition(mediaVocabulary.hasRating(MediaQuery::Optional));
query.addCondition(mediaVocabulary.hasDescription(MediaQuery::Optional));
query.addCondition(mediaVocabulary.hasArtwork(MediaQuery::Optional));
query.endWhere();
QStringList orderByBindings;
orderByBindings.append(mediaVocabulary.titleBinding());
query.orderBy(orderByBindings);
Soprano::QueryResultIterator it = query.executeSelect(m_mainModel);
//Build media list from results
while( it.next() ) {
if (m_stop) {
return;
}
MediaItem mediaItem = Utilities::mediaItemFromIterator(it, QString("Audio Stream"), m_mediaListProperties.lri);
if (!mediaItem.url.startsWith(QLatin1String("nepomuk:/"))) {
mediaList.append(mediaItem);
}
}
m_mediaListProperties.summary = i18np("1 stream", "%1 streams", mediaList.count());
MediaItem mediaItem;
mediaItem.type = "Audio";
mediaItem.url.clear();
mediaItem.title = i18n("New Audio Stream");
mediaItem.subTitle = i18n("Edit info to create new audio stream");
mediaItem.artwork = KIcon("text-html");
mediaItem.fields["title"] = i18n("Untitled");
mediaItem.fields["audioType"] = "Audio Stream";
mediaItem.fields["isTemplate"] = true;
mediaList.append(mediaItem);
m_mediaListProperties.type = QString("Sources");
} else if (engineArg.toLower() == "search") {
MediaQuery query;
QStringList bindings;
bindings.append(mediaVocabulary.mediaResourceBinding());
bindings.append(mediaVocabulary.mediaResourceUrlBinding());
bindings.append(mediaVocabulary.titleBinding());
bindings.append(mediaVocabulary.ratingBinding());
bindings.append(mediaVocabulary.descriptionBinding());
bindings.append(mediaVocabulary.artworkBinding());
//bindings.append(mediaVocabulary.genreBinding());
query.select(bindings, MediaQuery::Distinct);
query.startWhere();
query.addCondition(mediaVocabulary.hasTypeAudioStream(MediaQuery::Required));
query.addCondition(mediaVocabulary.hasTitle(MediaQuery::Required));
query.addCondition(mediaVocabulary.hasRating(MediaQuery::Optional));
query.addCondition(mediaVocabulary.hasDescription(MediaQuery::Optional));
query.addCondition(mediaVocabulary.hasArtwork(MediaQuery::Optional));
query.startFilter();
query.addFilterConstraint(mediaVocabulary.titleBinding(), engineFilter, MediaQuery::Contains);
query.addFilterOr();
query.addFilterConstraint(mediaVocabulary.descriptionBinding(), engineFilter, MediaQuery::Contains);
query.endFilter();
query.endWhere();
QStringList orderByBindings;
orderByBindings.append(mediaVocabulary.titleBinding());
query.orderBy(orderByBindings);
Soprano::QueryResultIterator it = query.executeSelect(m_mainModel);
//Build media list from results
while( it.next() ) {
MediaItem mediaItem = Utilities::mediaItemFromIterator(it, QString("Audio Stream"), m_mediaListProperties.lri);
//.........这里部分代码省略.........
示例2: start
//.........这里部分代码省略.........
Nepomuk2::Variant value = resource.property(property);
if (value.toResource().hasType(Nepomuk2::Vocabulary::NFO::Image())) {
resource.removeProperty(property);
resource.setProperty(mediaVocabulary.artwork(), value);
}
}
property = QUrl("http://www.semanticdesktop.org/ontologies/nmm#genre");
if (resource.hasProperty(property)) {
Nepomuk2::Variant value = resource.property(property);
resource.removeProperty(property);
resource.setProperty(mediaVocabulary.genre(), value);
}
property = QUrl("http://www.semanticdesktop.org/ontologies/nmm#releaseDate");
if (resource.hasProperty(property)) {
Nepomuk2::Variant value = resource.property(property);
resource.removeProperty(property);
resource.setProperty(mediaVocabulary.releaseDate(), value);
}
property = Soprano::Vocabulary::Xesam::useCount();
if (resource.hasProperty(property)) {
Nepomuk2::Variant value = resource.property(property);
resource.removeProperty(property);
resource.setProperty(mediaVocabulary.playCount(), value);
}
property = Soprano::Vocabulary::Xesam::lastUsed();
if (resource.hasProperty(property)) {
Nepomuk2::Variant value = resource.property(property);
resource.removeProperty(property);
resource.setProperty(mediaVocabulary.lastPlayed(), value);
}
emit infoMessage(i18n("<b>Updating video types and properties</b><br>%1 video items done...", i));
QApplication::processEvents();
}
//Fix screwed up properties
MediaQuery query;
QStringList bindings;
bindings.append(mediaVocabulary.mediaResourceBinding());
bindings.append(mediaVocabulary.ratingBinding());
query.select(bindings, MediaQuery::Distinct);
query.startWhere();
query.addCondition(mediaVocabulary.hasTypeAnyAudio(MediaQuery::Required));
query.addCondition(mediaVocabulary.hasRating(MediaQuery::Required, 10, MediaQuery::GreaterThan));
query.endWhere();
it = m_mainModel->executeQuery(query.query(), Soprano::Query::QueryLanguageSparql);
emit infoMessage(i18n("<b>Updating audio types and properties</b><br>0 items updated..."));
QApplication::processEvents();
i = 0;
while( it.next() && !m_stopUpdate) {
QApplication::processEvents();
i++;
Nepomuk2::Resource resource = Nepomuk2::Resource(it.binding("r").uri());
QUrl property = QUrl("http://www.semanticdesktop.org/ontologies/2007/08/15/nao#numericRating");
if (resource.hasProperty(property)) {
int rating = resource.property(property).toInt();
if (rating > 10) {
resource.removeProperty(property);
}
}
emit infoMessage(i18n("<b>Cleaning up erroneous audio properties</b><br>%1 audio items done...", i));
QApplication::processEvents();
}
MediaQuery query1;
bindings.clear();
bindings.append(mediaVocabulary.mediaResourceBinding());
bindings.append(mediaVocabulary.ratingBinding());
query1.select(bindings, MediaQuery::Distinct);
query1.startWhere();
query1.addCondition(mediaVocabulary.hasTypeAnyVideo(MediaQuery::Required));
query1.addCondition(mediaVocabulary.hasRating(MediaQuery::Required, 10, MediaQuery::GreaterThan));
query1.endWhere();
it = m_mainModel->executeQuery(query.query(), Soprano::Query::QueryLanguageSparql);
emit infoMessage(i18n("<b>Updating audio types and properties</b><br>0 items updated..."));
QApplication::processEvents();
i = 0;
while( it.next() && !m_stopUpdate) {
QApplication::processEvents();
i++;
Nepomuk2::Resource resource = Nepomuk2::Resource(it.binding("r").uri());
QUrl property = QUrl("http://www.semanticdesktop.org/ontologies/2007/08/15/nao#numericRating");
if (resource.hasProperty(property)) {
int rating = resource.property(property).toInt();
if (rating > 10) {
resource.removeProperty(property);
}
}
emit infoMessage(i18n("<b>Cleaning up erroneous video properties</b><br>%1 video items done...", i));
QApplication::processEvents();
}
if (!m_stopUpdate) {
emit infoMessage(i18n("<b>Update complete.</b>"));
} else {
emit infoMessage(i18n("<b>Update stopped.</b>"));
}
emit done();
}
示例3: run
void SemanticsListEngine::run()
{
QThread::setTerminationEnabled(true);
m_stop = false;
if (m_updateSourceInfo || m_removeSourceInfo) {
NepomukListEngine::run();
return;
}
//Create media list based on engine argument and filter
QList<MediaItem> mediaList;
MediaVocabulary mediaVocabulary = MediaVocabulary();
QString engineArg = m_mediaListProperties.engineArg();
QString engineFilter = m_mediaListProperties.engineFilter();
QStringList engineFilterList = m_mediaListProperties.engineFilterList();
//Parse filter
QString mediaType;
QString groupByCategoryType;
QString groupByField;
QString limitFilter;
int originalGenreLimit = 0;
if (engineFilterList.count() != 0) {
mediaType = engineFilterList.at(0);
if (engineFilterList.filter("groupBy=").count() != 0) {
QString groupByFilter = engineFilterList.filter("groupBy=").at(0);
groupByField = groupByFilter.remove("groupBy=").trimmed();
if (groupByField == "artist") {
groupByCategoryType = "Artist";
} else if (groupByField == "album") {
groupByCategoryType = "Album";
} else if (groupByField == "genre") {
if (mediaType == "audio") {
groupByCategoryType = "AudioGenre";
} else if (mediaType == "video") {
groupByCategoryType = "VideoGenre";
}
} else if (groupByField == "seriesName") {
groupByCategoryType = "TV Series";
} else if (groupByField == "actor") {
groupByCategoryType = "Actor";
} else if (groupByField == "director") {
groupByCategoryType = "Director";
} else if (groupByField == "tag") {
if (mediaType == "audio") {
groupByCategoryType = "AudioTag";
} else if (mediaType == "video") {
groupByCategoryType = "VideoTag";
}
}
}
if (engineFilterList.filter("limit=").count() !=0) {
limitFilter = engineFilterList.filter("limit=").at(0);
if (groupByField == "genre") {
originalGenreLimit = m_mediaListProperties.filterValue(limitFilter).trimmed().toInt();
int originalFilterIndex = engineFilterList.indexOf(limitFilter);
limitFilter = QString("%1%2%3").arg(m_mediaListProperties.filterField(limitFilter))
.arg(m_mediaListProperties.filterOperator(limitFilter))
.arg(m_mediaListProperties.filterValue(limitFilter).trimmed().toInt()*3);
engineFilterList.replace(originalFilterIndex, limitFilter);
}
}
}
if (m_nepomukInited) {
if (engineArg.toLower() == "frequent") {
mediaList.clear();
if (mediaType == "audio" || mediaType == "video") {
MediaQuery query;
bool ignoreZeros = false;
if (groupByCategoryType.isEmpty()) {
QStringList bindings;
bindings.append(mediaVocabulary.mediaResourceBinding());
bindings.append(mediaVocabulary.mediaResourceUrlBinding());
bindings.append(mediaVocabulary.playCountBinding());
query.select(bindings, MediaQuery::Distinct);
query.startWhere();
if (mediaType == "audio") {
query.addCondition(mediaVocabulary.hasTypeAnyAudio(MediaQuery::Required));
} else if (mediaType == "video") {
query.addCondition(mediaVocabulary.hasTypeAnyVideo(MediaQuery::Required));
}
query.addLRIFilterConditions(engineFilterList, mediaVocabulary);
if (m_mediaListProperties.filterForField("playCount").isEmpty()) {
query.addCondition(mediaVocabulary.hasPlayCount(MediaQuery::Required, 0, MediaQuery::GreaterThan));
ignoreZeros = true;
}
query.addCondition(mediaVocabulary.hasLastPlayed(MediaQuery::Optional));
query.endWhere();
QStringList orderByBindings;
QList<MediaQuery::Order> order;
orderByBindings.append(mediaVocabulary.playCountBinding());
order.append(MediaQuery::Descending);
orderByBindings.append(mediaVocabulary.lastPlayedBinding());
order.append(MediaQuery::Descending);
query.orderBy(orderByBindings, order);
} else {
QStringList bindings;
//.........这里部分代码省略.........