void LayoutUpdater::onWordCandidatesChanged(const WordCandidateList &candidates) { Q_D(LayoutUpdater); if (not d->layout || not isWordRibbonVisible()) { qWarning() << __PRETTY_FUNCTION__ << "No layout specified or word ribbon not visible."; return; } // Copy WordRibbon instance in order to preserve geometry and styling: d->layout->wordRibbon()->clearCandidates(); const StyleAttributes * const attributes(d->activeStyleAttributes()); const LayoutHelper::Orientation orientation(d->layout->orientation()); const int candidate_width(attributes->keyAreaWidth(orientation) / (orientation == LayoutHelper::Landscape ? 6 : 4)); for (int index = 0; index < candidates.count(); ++index) { WordCandidate word_candidate(candidates.at(index)); // FIXME candidate height needs to come from word ribbon height word_candidate.rArea().setSize(QSize(word_candidate.source() == WordCandidate::SourceUser ? attributes->keyAreaWidth(orientation) : candidate_width, 56)); word_candidate.setOrigin(QPoint(index * candidate_width, 0)); applyStyleToCandidate(&word_candidate, d->activeStyleAttributes(), orientation, DeactivateElement); d->layout->wordRibbon()->appendCandidate(word_candidate); } }
void WordRibbon::onWordCandidatesChanged(const WordCandidateList &candidates) { clearCandidates(); for (int index = 0; index < candidates.count(); ++index) { WordCandidate word_candidate(candidates.at(index)); appendCandidate(word_candidate); } }