void OSIntegerEdit2::onEditingFinished() { emit inFocus(true, hasData()); QString text = this->text(); if (text.isEmpty() || m_text == text) return; if (m_modelObject) { std::string str = this->text().toStdString(); boost::regex autore("[aA][uU][tT][oO]"); ModelObject modelObject = m_modelObject.get(); if (str.empty()) { if (m_reset) { (*m_reset)(); } } else if (boost::regex_search(str,autore)) { if (m_isAutosized) { if (m_autosize) { (*m_autosize)(); } else if (m_reset) { (*m_reset)(); } } if (m_isAutocalculated) { if (m_autocalculate) { (*m_autocalculate)(); } else if (m_reset) { (*m_reset)(); } } } else { try { int value = boost::lexical_cast<int>(str); setPrecision(str); if (m_set) { QString text = this->text(); if (text.isEmpty() || m_text == text) return; bool result = (*m_set)(value); if (!result){ //restore refreshTextAndLabel(); } } } catch (...) { // restore refreshTextAndLabel(); } } } }
void OSDoubleEdit2::onEditingFinished() { if (m_modelObject) { std::string str = this->text().toStdString(); boost::regex autore("[aA][uU][tT][oO]"); ModelObject modelObject = m_modelObject.get(); if (str.empty()) { if (m_reset) { (*m_reset)(); } } else if (boost::regex_search(str,autore)) { if (m_isAutosized) { if (m_autosize) { (*m_autosize)(); } else if (m_reset) { (*m_reset)(); } } if (m_isAutocalculated) { if (m_autocalculate) { (*m_autocalculate)(); } else if (m_reset) { (*m_reset)(); } } } else { try { double value = boost::lexical_cast<double>(str); setPrecision(str); if (m_set) { (*m_set)(value); } } catch (...) {} } } }
void OSIntegerEdit::onEditingFinished() { if (m_modelObject) { std::string str = this->text().toStdString(); boost::regex autore("[aA][uU][tT][oO]"); ModelObject modelObject = m_modelObject.get(); if (str.empty()) { modelObject.resetAttribute(m_property); } else if (boost::regex_search(str,autore)) { if (m_isAutosizedProperty) { if (modelObject.isSettableAttribute(*m_isAutosizedProperty)) { modelObject.setAttribute(*m_isAutosizedProperty,true); } else { modelObject.resetAttribute(m_property); } } if (m_isAutocalculatedProperty) { if (modelObject.isSettableAttribute(*m_isAutocalculatedProperty)) { modelObject.setAttribute(*m_isAutocalculatedProperty,true); } else { modelObject.resetAttribute(m_property); } } } else { try { int value = boost::lexical_cast<int>(str); setPrecision(str); modelObject.setAttribute(m_property,value); } catch (...) {} } } }