void OSLineEdit2::onModelObjectChangeInternal(bool startingup) { if( m_modelObject ) { OptionalString value; if (m_get) { value = (*m_get)(); } else if (m_getOptional){ value = (*m_getOptional)(); } else if (m_getOptionalBoolArg) { value = (*m_getOptionalBoolArg)(true); // TODO may want to pass a variable } else{ // unhandled OS_ASSERT(false); } std::string text; if (value) { text = *value; if (m_text != text) { m_text = text; this->blockSignals(true); this->setText(QString::fromStdString(m_text)); this->blockSignals(false); adjustWidth(); if (!startingup) m_timer.start(TIMEOUT_INTERVAL); } } } }
void OSLineEdit2::onEditingFinished() { if (m_modelObject && (m_set || m_setOptionalStringReturn || m_setVoidReturn)) { if (m_text != this->text().toStdString()) { m_text = this->text().toStdString(); auto result = false; if (m_set) { result = (*m_set)(m_text); } else if (m_setOptionalStringReturn) { auto optionalStringReturn = (*m_setOptionalStringReturn)(m_text); if (optionalStringReturn) { result = true; // TODO } result = true; } else if (m_setVoidReturn) { (*m_setVoidReturn)(m_text); result = true; } if (!result){ //restore onModelObjectChange(); } else { emit inFocus(true, hasData()); adjustWidth(); } } } }
void OSLineEdit2::onEditingFinished() { if(m_modelObject && m_set) { if (m_text != this->text().toStdString()) { m_text = this->text().toStdString(); bool result = (*m_set)(m_text); if (!result){ //restore onModelObjectChange(); } else { adjustWidth(); } } } }