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); } } }