Ejemplo n.º 1
0
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);
      }
    }
  }
}
Ejemplo n.º 2
0
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();
      }
    }
  }
}
Ejemplo n.º 3
0
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();
      }
    }
  }
}