QVariant PhraseModel::data(const QModelIndex &index, int role) const { int row = index.row(); int column = index.column(); if (row >= plist.count() || !index.isValid()) return QVariant(); Phrase *phrase = plist.at(row); if (role == Qt::DisplayRole || (role == Qt::ToolTipRole && column != 2)) { switch (column) { case 0: // source phrase return phrase->source().simplified(); case 1: // translation return phrase->target().simplified(); case 2: // definition return phrase->definition(); } } else if (role == Qt::EditRole && column != 2) { switch (column) { case 0: // source phrase return phrase->source(); case 1: // translation return phrase->target(); } } return QVariant(); }
void PhraseLVI::setPhrase( const Phrase& phrase ) { setText( SourceTextShown, phrase.source().simplifyWhiteSpace() ); setText( TargetTextShown, phrase.target().simplifyWhiteSpace() ); setText( DefinitionText, phrase.definition() ); setText( SourceTextOriginal, phrase.source() ); setText( TargetTextOriginal, phrase.target() ); }
void PhraseBookBox::enableDisable() { QModelIndex index = currentPhraseIndex(); sourceLed->blockSignals(true); targetLed->blockSignals(true); definitionLed->blockSignals(true); bool indexValid = index.isValid(); if (indexValid) { Phrase *p = phrMdl->phrase(index); sourceLed->setText(p->source().simplified()); targetLed->setText(p->target().simplified()); definitionLed->setText(p->definition()); } else { sourceLed->setText(QString()); targetLed->setText(QString()); definitionLed->setText(QString()); } sourceLed->setEnabled(indexValid); targetLed->setEnabled(indexValid); definitionLed->setEnabled(indexValid); removeBut->setEnabled(indexValid); sourceLed->blockSignals(false); targetLed->blockSignals(false); definitionLed->blockSignals(false); QWidget *f = QApplication::focusWidget(); if (f != sourceLed && f != targetLed && f != definitionLed) { QLineEdit *led = (sourceLed->text() == NewPhrase ? sourceLed : targetLed); led->setFocus(); led->selectAll(); } else { static_cast<QLineEdit*>(f)->selectAll(); } }
bool operator==( const Phrase& p, const Phrase& q ) { return p.source() == q.source() && p.target() == q.target() && p.definition() == q.definition(); }