Ejemplo n.º 1
0
//! \todo implement WordRibbon::onWordCandidateReleased()
void WordRibbon::onWordCandidateReleased(const WordCandidate &candidate)
{
    if (candidate.source() == WordCandidate::SourcePrediction
        || candidate.source() == WordCandidate::SourceSpellChecking) {
        Q_EMIT wordCandidateSelected(candidate.word());
    } else if (candidate.source() == WordCandidate::SourceUser) {
        Q_EMIT userCandidateSelected(candidate.word());
    }
}
Ejemplo n.º 2
0
void LayoutUpdater::onWordCandidateReleased(const WordCandidate &candidate)
{
    Q_D(LayoutUpdater);

    if (d->layout
        && isWordRibbonVisible()
        && updateWordRibbon(d->layout, candidate, d->activeStyleAttributes(), DeactivateElement)) {
        if (candidate.source() == WordCandidate::SourcePrediction
            || candidate.source() == WordCandidate::SourceSpellChecking) {
            Q_EMIT wordCandidateSelected(candidate.word());
        } else if (candidate.source() == WordCandidate::SourceUser) {
            Q_EMIT userCandidateSelected(candidate.word());
        }
    }
}
Ejemplo n.º 3
0
bool updateWordRibbon(LayoutHelper *layout,
                      const WordCandidate &candidate,
                      const StyleAttributes *attributes,
                      ActivationPolicy policy)
{
    if (not layout || not attributes) {
        return false;
    }

    QVector<WordCandidate> &candidates(layout->wordRibbon()->rCandidates());

    for (int index = 0; index < candidates.count(); ++index) {
        WordCandidate &current(candidates[index]);

        if (current.label() == candidate.label()) {
            // in qml we don´t care about ( current.rect() == candidate.rect() )
            applyStyleToCandidate(&current, attributes, layout->orientation(), policy);
            layout->setWordRibbon(layout->wordRibbon());

            return true;
        }
    }

    return false;
}