void QAutoGenModelDialog::slotPropertiesValueChanged(int row, int col) { QString strParam = m_tableProperties->text(row, 0); std::map<QString, AutoGenParameter>::iterator iterParam = m_pParams->find(strParam); if (iterParam != m_pParams->end()) { if (col == 1 && m_tableProperties->item(row, 1) != NULL) { QString strText = ((QComboTableItem *)m_tableProperties->item(row, 1))->currentText(); switch (iterParam->second.eType & (~AutoGenParamTypeNoRandom)) { case AutoGenParamTypeFixed: case AutoGenParamTypeRandom: case AutoGenParamTypeFile: if ((iterParam->second.eType & AutoGenParamTypeNoRandom) != AutoGenParamTypeNoRandom && strText.compare(COMBOITEM_RANDOM) == 0) iterParam->second.eType = AutoGenParamTypeRandom; else if (strText.compare(COMBOITEM_FILE) == 0) iterParam->second.eType = AutoGenParamTypeFile; else iterParam->second.eType = AutoGenParamTypeFixed; m_tableProperties->clearCell(row, 2); AddTableItem(m_tableProperties, row, iterParam->first, iterParam->second); break; default: break; // no actual change here } } else if (col == 2) { iterParam->second.strValue = m_tableProperties->text(row, 2); } } }
void QAutoGenDialog::slotVehicleTypeActivated(int index) { m_buttonOK->setEnabled(index > -1); disconnect(m_tableProperties, SIGNAL(valueChanged(int, int)), this, SLOT(slotPropertiesValueChanged(int, int ))); if (index > -1) { int iRow; std::map<QString, std::map<QString, AutoGenParameter> >::iterator iterModel = index > -1 && index < m_comboVehicleType->count() ? m_mapModels.find(m_comboVehicleType->text(index)) : m_mapModels.end(); if (iterModel != m_mapModels.end()) { std::map<QString, std::map<QString, ModelParameter> >::iterator iterParams = m_pMapParams->find(iterModel->first); std::map<QString, ModelParameter>::iterator iterParam; std::map<QString, AutoGenParameter>::iterator iterValue; m_tableProperties->setNumRows(0); m_tableProperties->setNumRows(iterModel->second.size()); for (iterValue = iterModel->second.begin(), iRow = 0; iterValue != iterModel->second.end(); ++iterValue, iRow++) { iterParam = iterParams->second.find(iterValue->first); m_tableProperties->setText(iRow, 0, iterValue->first); if (iterParam != iterParams->second.end()) m_tableProperties->setRowReadOnly(iRow, !AddTableItem(m_tableProperties, iRow, iterValue->second, true)); } m_tableProperties->sortColumn(0, true, true); } else m_tableProperties->setNumRows(0); } else m_tableProperties->setNumRows(0); connect(m_tableProperties, SIGNAL(valueChanged(int, int)), this, SLOT(slotPropertiesValueChanged(int, int ))); m_tableProperties->adjustColumn(0); }
void QAutoGenModelDialog::InitializeModelParams() { int iRow; std::map<QString, ModelParameter>::iterator iterParam; std::map<QString, AutoGenParameter>::iterator iterValue; disconnect(m_tableProperties, SIGNAL(valueChanged(int, int)), this, SLOT(slotPropertiesValueChanged(int, int ))); m_tableProperties->setNumRows(0); for (iterValue = m_pParams->begin(), iRow = 0; iterValue != m_pParams->end(); ++iterValue) { iterParam = m_pModelParams->find(iterValue->first); m_tableProperties->insertRows(iRow); m_tableProperties->setText(iRow, 0, iterValue->first); if (iterParam != m_pModelParams->end()) m_tableProperties->setRowReadOnly(iRow, !AddTableItem(m_tableProperties, iRow, iterValue->first, iterValue->second, true, (iterValue->second.eType == AutoGenParamTypeNewModel && m_pAssocModelTypeMap->find(iterValue->first) != m_pAssocModelTypeMap->end()))); else m_tableProperties->setRowReadOnly(iRow, true); iRow++; } m_tableProperties->sortColumn(0, true, true); connect(m_tableProperties, SIGNAL(valueChanged(int, int)), this, SLOT(slotPropertiesValueChanged(int, int ))); m_tableProperties->adjustColumn(0); }
void QAutoGenDialog::slotPropertiesValueChanged(int row, int col) { QString strParam = m_tableProperties->text(row, 0); std::map<QString, std::map<QString, AutoGenParameter> >::iterator iterModel = m_mapModels.find(m_comboVehicleType->currentText()); if (iterModel != m_mapModels.end()) { std::map<QString, AutoGenParameter>::iterator iterParam = iterModel->second.find(strParam); if (iterParam != iterModel->second.end()) { if (col == 1) { QString strText = ((Q3ComboTableItem *)m_tableProperties->item(row, 1))->currentText(); switch (iterParam->second.eType & (~AutoGenParamTypeNoRandom)) { case AutoGenParamTypeFixed: case AutoGenParamTypeRandom: case AutoGenParamTypeFile: if ((iterParam->second.eType & AutoGenParamTypeNoRandom) != AutoGenParamTypeNoRandom && strText.compare(COMBOITEM_RANDOM) == 0) iterParam->second.eType = AutoGenParamTypeRandom; else if (strText.compare(COMBOITEM_FILE) == 0) iterParam->second.eType = AutoGenParamTypeFile; else iterParam->second.eType = AutoGenParamTypeFixed; m_tableProperties->clearCell(row, 2); AddTableItem(m_tableProperties, row, iterParam->second); break; default: break; } } else if (col == 2) { iterParam->second.strValue = m_tableProperties->text(row, 2); } } } }