void FileObjectEditDialog::saveAndMergeUrlChange() { QString newUrl = ui->editUrl->fullText(); QString existingUrl = m_fileObject.property(NIE::url()).toString(); if(newUrl == existingUrl) { return; } if(!newUrl.isEmpty()) { QString query = "Select DISTINCT ?r where {" "?r nie:url ?url . FILTER ( regex(?url, \"^" + newUrl + "$\"))" "}"; QList<Nepomuk2::Query::Result> queryResult = Nepomuk2::Query::QueryServiceClient::syncSparqlQuery(query); if(!queryResult.isEmpty() && queryResult.first().resource().uri() != m_fileObject.uri()) { kDebug() << "found a duplicate with url" << newUrl << "merge it"; KJob *job = Nepomuk2::mergeResources(queryResult.first().resource().uri(), m_fileObject.uri()); job->exec(); if(job->error() != 0) { kDebug() << job->errorString() << job->errorText(); } setResource(queryResult.first().resource()); } else { kDebug() << "set url to " << newUrl; QList<QUrl> fileObjectUri; fileObjectUri << m_fileObject.uri(); QVariantList fileObjectValue; fileObjectValue << newUrl; Nepomuk2::setProperty(fileObjectUri, NIE::url(), fileObjectValue); } } }
bool Nepomuk2::Indexer::clearIndexingData(const QUrl& url) { kDebug() << "Starting to clear"; KJob* job = Nepomuk2::clearIndexedData( url ); kDebug() << "Done"; job->exec(); if( job->error() ) { m_lastError = job->errorString(); kError() << m_lastError; return false; } return true; }