示例#1
0
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);
        }
    }
}
示例#2
0
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;
}